body {
    background: var(--bg-primary);
    color: var(--text-primary);
    font-family: var(--font-body);
    line-height: 1.6;
}

.container {
    width: min(100% - 48px, var(--container));
    margin-inline: auto;
}


/* HEADER */

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;

    background: rgba(7, 9, 13, 0.94);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(16px);
}

.header-inner {
    min-height: 82px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: var(--space-xl);
}


/* HERO */

.hero {
    position: relative;
    min-height: 680px;

    display: flex;
    align-items: center;

    background:
    linear-gradient(
        90deg,
        rgba(4, 5, 8, 0.98) 0%,
                    rgba(6, 7, 12, 0.82) 42%,
                    rgba(8, 5, 14, 0.45) 70%,
                    rgba(8, 5, 14, 0.25) 100%
    ),
    url("../assets/backgrounds/hero.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    overflow: hidden;
}

.hero::after {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
    linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.08),
                    rgba(0, 0, 0, 0.25)
    );
}

.hero-inner {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: var(--space-4xl);

    align-items: center;
}

.hero-content {
    max-width: 760px;
}


/* CAPABILITIES */

.capabilities {
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.capability-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
}


/* FEATURE PANELS */

.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    border-bottom: 1px solid var(--border);
}

.feature-panel {
    min-height: 360px;

    padding: 64px;

    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    border-right: 1px solid var(--border);

    background: var(--bg-secondary);
}

.feature-panel:last-child {
    border-right: none;
}

.feature-panel-accent {
    background:
    radial-gradient(
        circle at center,
        rgba(141, 66, 181, 0.2),
                    transparent 60%
    ),
    var(--bg-secondary);
}


/* STANDARD CONTENT SECTIONS */

.section {
    padding-block: 96px;
}

.section-alt {
    background: var(--bg-secondary);
}

.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: var(--space-xl);

    margin-bottom: 40px;
}

.card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    gap: 24px;
}


/* CTA */

.cta-section {
    padding-block: 120px;

    text-align: center;

    background:
    radial-gradient(
        circle at 50% 30%,
        rgba(151, 75, 190, 0.2),
                    transparent 45%
    ),
    var(--bg-tertiary);

    border-top: 1px solid var(--border);
}

.cta-inner {
    max-width: 850px;
}


/* FOOTER */

.site-footer {
    padding-top: 54px;

    background: #05070a;
    border-top: 1px solid var(--border);
}

.footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: var(--space-xl);

    padding-bottom: 42px;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;

    padding-block: 20px;

    color: var(--text-muted);
    font-size: 0.78rem;

    border-top: 1px solid var(--border);
}


/* RESPONSIVE */

@media (max-width: 1100px) {

    .desktop-nav {
        display: none;
    }

    .capability-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .feature-grid {
        grid-template-columns: 1fr;
    }

    .feature-panel {
        border-right: none;
        border-bottom: 1px solid var(--border);
    }

}

@media (max-width: 760px) {

    .container {
        width: min(100% - 32px, var(--container));
    }

    .site-header .button {
        display: none;
    }

    .hero {
        min-height: 620px;
    }

    .hero-inner {
        grid-template-columns: 1fr;
    }

    .hero-side {
        display: none;
    }

    .capability-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .card-grid {
        grid-template-columns: 1fr;
    }

    .section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .feature-panel {
        min-height: auto;
        padding: 48px 24px;
    }

    .footer-inner,
    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }
    /* =========================
     *  INNER PAGE HERO
     = *======================== */

    .page-hero {
        position: relative;

        min-height: 520px;

        display: flex;
        align-items: center;

        border-bottom: 1px solid var(--border);

        background:
        linear-gradient(
            90deg,
            rgba(4, 5, 8, 0.97),
                        rgba(8, 6, 14, 0.76)
        ),
        url("../assets/backgrounds/mountain-cta.jpg");

        background-size: cover;
        background-position: center;
    }

    .page-hero-inner {
        position: relative;
        z-index: 2;
    }

    .page-hero-content {
        max-width: 850px;
    }

    .page-hero h1 {
        max-width: 1000px;

        font-family: var(--font-display);

        font-size: clamp(3rem, 6vw, 5.5rem);
        font-weight: 400;

        line-height: 1.02;
    }

    .page-hero-description {
        max-width: 720px;

        margin-top: 28px;

        color: var(--text-secondary);

        font-size: 1.05rem;
    }


    /* =========================
     *  ABOUT PAGE
     = *======================== */

    .about-two-column {
        display: grid;
        grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1.25fr);

        gap: 96px;
    }

    .about-two-column h2 {
        font-family: var(--font-display);

        font-size: clamp(2.2rem, 4vw, 3.6rem);
        font-weight: 400;

        line-height: 1.1;
    }

    .about-copy {
        display: flex;
        flex-direction: column;

        gap: 22px;
    }

    .about-copy p {
        color: var(--text-secondary);

        font-size: 1rem;
        line-height: 1.8;
    }


    /* PROCESS */

    .process-grid {
        display: grid;
        grid-template-columns: repeat(5, 1fr);

        gap: 1px;

        background: var(--border);

        border: 1px solid var(--border);
    }

    .process-card {
        min-height: 280px;

        padding: 36px 28px;

        background: var(--bg-primary);
    }

    .process-number {
        display: block;

        margin-bottom: 42px;

        color: var(--purple);

        font-size: 0.72rem;
        font-weight: 600;

        letter-spacing: 0.18em;
    }

    .process-card h3 {
        color: var(--gold);

        font-family: var(--font-display);

        font-size: 1.45rem;
        font-weight: 400;
    }

    .process-card p {
        margin-top: 14px;

        color: var(--text-secondary);

        font-size: 0.88rem;
    }


    /* CURRENT FOCUS */

    .focus-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);

        gap: 20px;
    }

    .focus-card {
        min-height: 230px;

        padding: 30px;

        border: 1px solid var(--border);
        border-radius: var(--radius-md);

        background: var(--surface);

        transition:
        transform var(--transition),
        border-color var(--transition);
    }

    .focus-card:hover {
        transform: translateY(-4px);

        border-color: var(--purple-soft);
    }

    .focus-card h3 {
        color: var(--gold);

        font-family: var(--font-display);

        font-size: 1.45rem;
        font-weight: 400;
    }

    .focus-card p {
        margin-top: 14px;

        color: var(--text-secondary);

        font-size: 0.9rem;
    }


    /* DIRECTION */

    .direction-panel {
        max-width: 1000px;

        padding: 64px;

        border: 1px solid var(--border);
        border-radius: var(--radius-lg);

        background:
        radial-gradient(
            circle at 90% 20%,
            rgba(156, 73, 198, 0.16),
                        transparent 40%
        ),
        var(--surface);
    }

    .direction-panel h2 {
        max-width: 760px;

        font-family: var(--font-display);

        font-size: clamp(2.3rem, 4vw, 4rem);
        font-weight: 400;

        line-height: 1.08;
    }

    .direction-panel > p:not(.eyebrow) {
        max-width: 700px;

        margin-top: 24px;

        color: var(--text-secondary);
    }


    /* RESPONSIVE */

    @media (max-width: 1000px) {

        .about-two-column {
            grid-template-columns: 1fr;

            gap: 42px;
        }

        .process-grid {
            grid-template-columns: repeat(2, 1fr);
        }

        .focus-grid {
            grid-template-columns: repeat(2, 1fr);
        }

    }

    @media (max-width: 700px) {

        .page-hero {
            min-height: 460px;
        }

        .process-grid,
        .focus-grid {
            grid-template-columns: 1fr;
        }

        .direction-panel {
            padding: 36px 24px;
        }

    }
    /* =========================
     *  PROJECTS PAGE
     = *======================== */

    .projects-toolbar {
        position: sticky;
        top: 82px;
        z-index: 50;

        padding-block: 18px;

        border-bottom: 1px solid var(--border);

        background: rgba(7, 9, 13, 0.94);
        backdrop-filter: blur(16px);
    }

    .projects-toolbar-inner {
        overflow-x: auto;
    }

    .project-filters {
        display: flex;

        gap: 10px;

        min-width: max-content;
    }

    .project-filter {
        padding: 10px 16px;

        color: var(--text-secondary);
        background: transparent;

        border: 1px solid var(--border);
        border-radius: var(--radius-sm);

        cursor: pointer;

        font-size: 0.72rem;
        font-weight: 600;

        text-transform: uppercase;
        letter-spacing: 0.1em;

        transition:
        color var(--transition),
        border-color var(--transition),
        background var(--transition);
    }

    .project-filter:hover {
        color: var(--gold);
        border-color: var(--gold-soft);
    }

    .project-filter.is-active {
        color: #090a0d;
        background: var(--gold);

        border-color: var(--gold);
    }


    /* PROJECT GRID */

    .projects-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 28px;
    }

    .project-card {
        overflow: hidden;

        border: 1px solid var(--border);
        border-radius: var(--radius-md);

        background: var(--surface);

        transition:
        transform var(--transition),
        border-color var(--transition);
    }

    .project-card:hover {
        transform: translateY(-5px);

        border-color: var(--purple-soft);
    }

    .project-card[hidden] {
        display: none;
    }


    /* PROJECT IMAGE */

    .project-card-image {
        position: relative;

        min-height: 330px;

        background-size: cover;
        background-position: center;

        border-bottom: 1px solid var(--border);
    }

    .project-card-image::after {
        content: "";

        position: absolute;
        inset: 0;

        background:
        linear-gradient(
            180deg,
            transparent 45%,
            rgba(5, 7, 10, 0.75)
        );
    }

    .project-card-image-placeholder {
        background:
        radial-gradient(
            circle at 70% 30%,
            rgba(177, 84, 220, 0.22),
                        transparent 36%
        ),
        linear-gradient(
            135deg,
            #17131f,
            #080a0f
        );
    }


    /* STATUS */

    .project-status {
        position: absolute;

        top: 20px;
        right: 20px;

        z-index: 2;

        padding: 7px 10px;

        color: var(--gold);

        background: rgba(5, 7, 10, 0.82);

        border: 1px solid rgba(215, 173, 97, 0.55);
        border-radius: var(--radius-sm);

        font-size: 0.62rem;
        font-weight: 600;

        text-transform: uppercase;
        letter-spacing: 0.12em;
    }


    /* PROJECT CONTENT */

    .project-card-body {
        padding: 30px;
    }

    .project-card-meta {
        display: flex;
        flex-wrap: wrap;

        gap: 8px;

        margin-bottom: 14px;
    }

    .project-card-meta span {
        color: var(--purple);

        font-size: 0.64rem;
        font-weight: 600;

        text-transform: uppercase;
        letter-spacing: 0.12em;
    }

    .project-card h2 {
        font-family: var(--font-display);

        font-size: clamp(1.7rem, 3vw, 2.3rem);
        font-weight: 400;

        line-height: 1.12;
    }

    .project-card-body > p {
        margin-top: 16px;

        color: var(--text-secondary);

        font-size: 0.92rem;

        line-height: 1.7;
    }


    /* TECHNOLOGIES */

    .project-tech {
        display: flex;
        flex-wrap: wrap;

        gap: 8px;

        margin-top: 22px;
    }

    .project-tech span {
        padding: 7px 9px;

        color: var(--text-secondary);
        background: var(--bg-primary);

        border: 1px solid var(--border);
        border-radius: 999px;

        font-size: 0.66rem;
    }


    /* RESPONSIVE */

    @media (max-width: 900px) {

        .projects-grid {
            grid-template-columns: 1fr;
        }

    }

    @media (max-width: 700px) {

        .projects-toolbar {
            top: 70px;
        }

        .project-card-image {
            min-height: 240px;
        }

        .project-card-body {
            padding: 24px;
        }

    }
    /* =========================
     *  WRITEUPS PAGE
     = *======================== */

    .writeups-toolbar {
        position: sticky;
        top: 82px;
        z-index: 50;

        padding-block: 18px;

        border-bottom: 1px solid var(--border);

        background: rgba(7, 9, 13, 0.94);
        backdrop-filter: blur(16px);
    }

    .writeups-toolbar-inner {
        overflow-x: auto;
    }

    .writeup-filters {
        display: flex;
        gap: 10px;

        min-width: max-content;
    }

    .writeup-filter {
        padding: 10px 16px;

        color: var(--text-secondary);
        background: transparent;

        border: 1px solid var(--border);
        border-radius: var(--radius-sm);

        cursor: pointer;

        font-size: 0.72rem;
        font-weight: 600;

        text-transform: uppercase;
        letter-spacing: 0.1em;

        transition:
        color var(--transition),
        border-color var(--transition),
        background var(--transition);
    }

    .writeup-filter:hover {
        color: var(--gold);
        border-color: var(--gold-soft);
    }

    .writeup-filter.is-active {
        color: #08090c;

        background: var(--gold);
        border-color: var(--gold);
    }


    /* FEATURED */

    .featured-writeup {
        display: grid;
        grid-template-columns: 1.1fr 0.9fr;

        overflow: hidden;

        min-height: 500px;

        border: 1px solid var(--border);
        border-radius: var(--radius-lg);

        background: var(--surface);
    }

    .featured-writeup-image {
        background-size: cover;
        background-position: center;
    }

    .featured-writeup-content {
        padding: 64px;

        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .featured-writeup-content h2 {
        margin-top: 18px;

        font-family: var(--font-display);

        font-size: clamp(2.4rem, 4vw, 4rem);
        font-weight: 400;

        line-height: 1.05;
    }

    .featured-writeup-content > p:not(.eyebrow) {
        margin-top: 22px;

        color: var(--text-secondary);

        line-height: 1.75;
    }

    .featured-writeup-content .button {
        align-self: flex-start;

        margin-top: 28px;
    }


    /* GRID */

    .writeups-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);

        gap: 24px;
    }

    .writeup-card {
        overflow: hidden;

        border: 1px solid var(--border);
        border-radius: var(--radius-md);

        background: var(--surface);

        transition:
        transform var(--transition),
        border-color var(--transition);
    }

    .writeup-card:hover {
        transform: translateY(-4px);

        border-color: var(--purple-soft);
    }

    .writeup-card[hidden] {
        display: none;
    }

    .writeup-card-image {
        min-height: 240px;

        background-size: cover;
        background-position: center;

        border-bottom: 1px solid var(--border);
    }

    .writeup-card-placeholder {
        background:
        radial-gradient(
            circle at 65% 30%,
            rgba(171, 78, 218, 0.22),
                        transparent 35%
        ),
        linear-gradient(
            135deg,
            #17131f,
            #080a0f
        );
    }

    .writeup-card-body {
        padding: 26px;
    }

    .writeup-meta {
        display: flex;
        flex-wrap: wrap;

        gap: 8px;
    }

    .writeup-meta span {
        color: var(--purple);

        font-size: 0.65rem;
        font-weight: 600;

        text-transform: uppercase;
        letter-spacing: 0.11em;
    }

    .writeup-card h3 {
        margin-top: 14px;

        font-family: var(--font-display);

        font-size: 1.55rem;
        font-weight: 400;

        line-height: 1.15;
    }

    .writeup-card-body > p {
        margin-top: 14px;

        color: var(--text-secondary);

        font-size: 0.9rem;
        line-height: 1.65;
    }

    .writeup-footer {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;

        gap: 16px;

        margin-top: 24px;
    }

    .writeup-footer > span {
        color: var(--text-muted);

        font-size: 0.72rem;
    }

    .writeup-footer .text-link {
        margin-top: 0;
    }


    /* RESPONSIVE */

    @media (max-width: 1050px) {

        .writeups-grid {
            grid-template-columns: repeat(2, 1fr);
        }

        .featured-writeup {
            grid-template-columns: 1fr;
        }

        .featured-writeup-image {
            min-height: 360px;
        }

    }

    @media (max-width: 700px) {

        .writeups-toolbar {
            top: 70px;
        }

        .writeups-grid {
            grid-template-columns: 1fr;
        }

        .featured-writeup-content {
            padding: 36px 24px;
        }

        .featured-writeup-image {
            min-height: 260px;
        }

    }
    /* =========================
     *  SKILLS PAGE
     = *======================== */

    .skills-category-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 24px;
    }

    .skill-category-card {
        min-height: 360px;

        padding: 34px;

        border: 1px solid var(--border);
        border-radius: var(--radius-md);

        background:
        radial-gradient(
            circle at 90% 5%,
            rgba(153, 70, 194, 0.12),
                        transparent 34%
        ),
        var(--surface);

        transition:
        transform var(--transition),
        border-color var(--transition);
    }

    .skill-category-card:hover {
        transform: translateY(-4px);

        border-color: var(--purple-soft);
    }

    .skill-category-header {
        display: flex;
        align-items: center;

        gap: 18px;
    }

    .skill-category-header .eyebrow {
        margin-bottom: 4px;
    }

    .skill-icon {
        flex: 0 0 auto;

        width: 58px;
        height: 58px;

        display: grid;
        place-items: center;

        color: var(--purple);

        border: 1px solid var(--border);
        border-radius: var(--radius-md);

        background: var(--bg-primary);

        font-family: var(--font-display);
        font-size: 1.45rem;
    }

    .skill-category-card h3 {
        color: var(--gold);

        font-family: var(--font-display);

        font-size: 1.7rem;
        font-weight: 400;
    }

    .skill-category-description {
        margin-top: 24px;

        color: var(--text-secondary);

        line-height: 1.75;
    }

    .skill-tags {
        display: flex;
        flex-wrap: wrap;

        gap: 8px;

        margin-top: 24px;
    }

    .skill-tags span {
        padding: 7px 10px;

        color: var(--text-secondary);

        background: var(--bg-primary);

        border: 1px solid var(--border);
        border-radius: 999px;

        font-size: 0.68rem;
    }

    .skill-category-card .text-link {
        margin-top: 28px;
    }


    /* TOOL GRID */

    .tool-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));

        gap: 12px;
    }

    .tool-card {
        min-height: 130px;

        padding: 22px;

        display: flex;
        flex-direction: column;
        justify-content: flex-end;

        border: 1px solid var(--border);
        border-radius: var(--radius-sm);

        background: var(--bg-primary);

        transition:
        border-color var(--transition),
        transform var(--transition);
    }

    .tool-card:hover {
        transform: translateY(-3px);

        border-color: var(--gold-soft);
    }

    .tool-name {
        color: var(--text-primary);

        font-family: var(--font-display);

        font-size: 1.15rem;
    }

    .tool-type {
        margin-top: 5px;

        color: var(--text-muted);

        font-size: 0.67rem;

        text-transform: uppercase;
        letter-spacing: 0.1em;
    }


    /* RESPONSIVE */

    @media (max-width: 1000px) {

        .tool-grid {
            grid-template-columns: repeat(3, 1fr);
        }

    }

    @media (max-width: 800px) {

        .skills-category-grid {
            grid-template-columns: 1fr;
        }

        .tool-grid {
            grid-template-columns: repeat(2, 1fr);
        }

    }

    @media (max-width: 500px) {

        .tool-grid {
            grid-template-columns: 1fr;
        }

        .skill-category-card {
            padding: 26px;
        }

    }
    /* =========================
     *  CONTACT PAGE
     = *======================== */

    .contact-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 24px;
    }

    .contact-card {
        min-height: 340px;

        padding: 36px;

        border: 1px solid var(--border);
        border-radius: var(--radius-md);

        background:
        radial-gradient(
            circle at 90% 5%,
            rgba(153, 70, 194, 0.12),
                        transparent 34%
        ),
        var(--surface);

        transition:
        transform var(--transition),
        border-color var(--transition);
    }

    .contact-card:hover {
        transform: translateY(-4px);

        border-color: var(--purple-soft);
    }

    .contact-card-icon {
        width: 58px;
        height: 58px;

        display: grid;
        place-items: center;

        margin-bottom: 32px;

        color: var(--purple);

        border: 1px solid var(--border);
        border-radius: var(--radius-md);

        background: var(--bg-primary);

        font-family: var(--font-display);
        font-size: 1.3rem;
    }

    .contact-card h2 {
        font-family: var(--font-display);

        font-size: 1.8rem;
        font-weight: 400;
    }

    .contact-card > p:not(.eyebrow) {
        margin-top: 16px;

        color: var(--text-secondary);

        line-height: 1.75;
    }

    .contact-card .text-link {
        margin-top: 28px;
    }


    /* CONTACT REASONS */

    .contact-reasons {
        display: flex;
        flex-direction: column;

        gap: 1px;

        background: var(--border);

        border: 1px solid var(--border);
    }

    .contact-reason {
        display: grid;
        grid-template-columns: 70px 1fr;

        gap: 24px;

        padding: 30px;

        background: var(--bg-primary);
    }

    .contact-reason-number {
        color: var(--purple);

        font-size: 0.72rem;
        font-weight: 600;

        letter-spacing: 0.18em;
    }

    .contact-reason h3 {
        color: var(--gold);

        font-family: var(--font-display);

        font-size: 1.35rem;
        font-weight: 400;
    }

    .contact-reason p {
        margin-top: 10px;

        color: var(--text-secondary);

        font-size: 0.9rem;
        line-height: 1.65;
    }


    /* CONTACT PANEL */

    .contact-panel {
        max-width: 920px;

        padding: 64px;

        border: 1px solid var(--border);
        border-radius: var(--radius-lg);

        background:
        radial-gradient(
            circle at 90% 20%,
            rgba(151, 73, 197, 0.16),
                        transparent 42%
        ),
        var(--surface);
    }

    .contact-panel h2 {
        max-width: 700px;

        font-family: var(--font-display);

        font-size: clamp(2.4rem, 4vw, 4rem);
        font-weight: 400;

        line-height: 1.08;
    }

    .contact-panel > p:not(.eyebrow) {
        max-width: 720px;

        margin-top: 22px;

        color: var(--text-secondary);

        line-height: 1.75;
    }

    .contact-panel .button {
        margin-top: 30px;
    }


    /* RESPONSIVE */

    @media (max-width: 800px) {

        .contact-grid {
            grid-template-columns: 1fr;
        }

        .contact-panel {
            padding: 38px 26px;
        }

    }

    @media (max-width: 550px) {

        .contact-reason {
            grid-template-columns: 1fr;

            gap: 10px;
        }

    }
}
