@font-face {
  font-family: "Minecraftia";
  src: url("/fonts/Minecraftia.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
    font-family: JetBrainsMono;
    src: url("/fonts/JetBrainsMono-VariableFont_wght.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
}

/* Global Styles */
body {
    margin: 0;
    padding: 0;
    background-color: rgb(17, 17, 17);
    color: #fff;
    font-family: JetBrainsMono, sans-serif;
}

.icon {
    width: 1.2em;
    height: 1.2em;
    fill: currentColor;
}

/* Text Fonts */
.minecraftia-text {
    font-family: "Minecraftia", sans-serif;
    image-rendering: pixelated; /* Ensures sharp edges */
}

/* Animated Text Styles */
.wave-letter {
    display: inline-block;
    animation: wave 1.2s infinite ease-in-out;
    animation-delay: calc(var(--i) * 0.2s - 5s);
    animation-fill-mode: both;
}
@keyframes wave {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-3px);
    }
}

.obfuscated {
    color: red; 
}

/* Website Header */
#titlecard {
    color: #fff;
    text-align: center;
    border-radius: 8px;
    line-height: 3rem;
    
    margin-bottom: 5rem;
    padding: 0;
}

/* Login Section */
.login-with-discord__button {
    display: flex;
    justify-content: center;
    align-items: center;
    
    width: fit-content;
    margin: 2rem auto;
    padding: 1rem 1rem;
    border-radius: 5px;
    gap: 1rem;

    background-image: radial-gradient(circle at top left, #7289da, #5865f2 40%);
    color: white;

    font-size: inherit;
    font-weight: inherit;
    text-decoration: none;
}

/* Download Section */
.download-button {
    display: flex;
    justify-content: center;
    align-items: center;
    
    width: fit-content;
    margin: 2rem auto;
    padding: 1.5rem 2rem;
    border-radius: 5px;
    gap: 1rem;

    background-image: radial-gradient(circle at top left, #ff6565, #ff0000 40%);
    color: white;

    font-size: 1.25rem;
    font-weight: 600;
    text-decoration: none;
}

/* Sister Links */
.sister-links {
    display: flex;
    flex-direction: column;
    margin: 1rem auto;
    max-width: 1300px;
    padding-inline: 1.5rem;
}

.sister-links__list {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 3rem;
    list-style: none;
    padding: 0;
}
.sister-links__list li {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;

    border: 1px solid #333;
    border-radius: 8px;
    padding: 0.75rem 0.75rem;
}
.sister-links__list p {
    margin: 0;
}
.sister-links__list a {
    color: red;
    text-decoration: none;
}

/* Install Guide */
.install-guide {
    display: flex;
    flex-direction: column;
    margin: 5rem auto;
    max-width: 1300px;
    padding-inline: 1.5rem;
}

.step-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    list-style: none;
    gap: 1.5rem;
    padding: 0;
    margin: 0;
}

@property --glow-opacity {
    syntax: '<number>';
    inherits: false;
    initial-value: 0;
}
.step-card {
    --glow-opacity: 0;
    --mouse-x: 0px;
    --mouse-y: 0px;

    align-items: start;
    padding: 0 1.5rem;

    border: 1px solid transparent;
    border-radius: 12px;

    background: 
        radial-gradient(circle at top left, #1a1a1a 30% , #242424) padding-box,
        radial-gradient(circle at var(--mouse-x) var(--mouse-y), rgba(255, 0, 0, var(--glow-opacity)), transparent 50%) border-box,
        linear-gradient(#333, #333) border-box;

    transition: --glow-opacity 0.2s ease;
}
.step-card:hover {
    --glow-opacity: 1;
}
.step-card p {
    margin-top: -0.6rem;
}

/* Timeline */
.timeline {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    margin: 5rem auto;
    max-width: 1300px;
    padding-inline: 1.5rem;
}

.timeline-grid {
    display: grid;
    position: relative;
    grid-template-columns: 1fr;
    gap: 3rem;
    padding: 0;
    margin: 0;

    list-style: none;
}
.timeline-grid::before { /* Vertical Line */
    content: "";
    position: absolute;

    top: 0;
    bottom: 0;
    left: 80px;
    transform: translateX(-50%);

    width: 3px;
    background-color: #333;

    z-index: -1;
}

.timeline-card {
    display: flex;
    gap: 1.5rem;

    border: #333 solid 2px;
    border-radius: 12px;
    background: radial-gradient(circle at top left, #1a1a1a 30% , #252525) padding-box;
    overflow: hidden;

    z-index: 1;
}
.timeline-card_image {
    width: 150px;
    height: 100%;
    object-fit: cover;
}

.timeline-card--future {
    position: relative;
    
    padding: 0 1.5rem;

    border-radius: 12px;
    background: radial-gradient(circle at top left, #1a1a1a 30% , #252525) padding-box;
}
@property --angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}
.timeline-card--future::after, .timeline-card--future::before {
    content: "";
    position: absolute;
    
    /* Maps perfectly to the parent edges */
    inset: -1px;
    /* Creates the 1px border gap internally */
    padding: 1px; 
    border-radius: inherit;
    
    background-image: conic-gradient(from var(--angle), rgba(255, 0, 0, 0.589), red, red, rgba(255, 0, 0, 0.589));
    animation: 3s spin linear infinite;

    z-index: -1;
}
.timeline-card--future::before {
    filter:blur(1rem);
    opacity: 0.5;
}
@keyframes spin {
    0% {--angle: 0deg;}
    100% {--angle: 360deg;}
}