/* ── Index-specific sidebar overrides ── */
.side-nav {
    gap: 0;
    background: rgba(252,246,235,0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.side-nav-name {
    font-family: var(--serif);
    font-size: 26px;
    letter-spacing: -0.01em;
    margin-bottom: 3rem;
    color: var(--fg);
    text-decoration: none;
    display: block;
}

.side-nav-links {
    gap: 0.5rem;
}

    .side-nav-links a {
        font-size: 48px;
    }

/* ── Sections ── */
section {
    padding: 2.5rem 0;
}

.sec-label {
    font-size: 30px;
    letter-spacing: 0.08em;
    color: var(--fg-mid);
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 3.5rem;
}

/* ── Prose width ── */
.intro-bio,
.intro-status,
.ethos-lead,
.ethos-content p,
.case-card p,
.cv-bullets,
.cv-contact {
    max-width: 68ch;
}

/* ── ① ETHOS / HERO ── */
#ethos,
#profile {
    padding-top: 0;
}

/* Container that sets the height for the background to fill */
.profile-hero-area {
    position: relative;
}

/* Full-width background — centred in viewport, capped at 1920px */
.profile-hero-bg {
    position: absolute;
    inset: 0;
    left: calc((100vw - min(100vw, 1920px)) / 2 - 240px);
    width: min(100vw, 1920px);
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

    /* Photo layer */
    .profile-hero-bg::before {
        content: '';
        position: absolute;
        inset: 0;
        background-image: url('../index_top_image.jpg');
        background-size: cover;
        background-position: center 44%;
        background-repeat: no-repeat;
    }

    /* Grain + overlay layer on top of photo */
    .profile-hero-bg::after {
        content: '';
        position: absolute;
        inset: 0;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.68' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='280' height='280' filter='url(%23grain)' opacity='0.3'/%3E%3C/svg%3E"), linear-gradient(to bottom, rgba(252,246,235,0.65) 0%, rgba(252,246,235,0.65) 65%, rgba(252,246,235,1) 100% );
        background-blend-mode: multiply, normal;
    }

/* Text uses normal .wrap so it stays aligned with the content below */
.profile-hero-text {
    position: relative;
    z-index: 1;
    padding-top: 6rem;
    padding-bottom: 7rem;
}

    .profile-hero-text .intro-name {
        text-shadow: 0 0 40px rgba(255,255,255,0.9), 0 2px 12px rgba(255,255,255,0.6);
    }

    .profile-hero-text .intro-eyebrow {
        font-size: 30px;
        font-weight: 600;
        color: #000000;
        text-shadow: 0 0 30px rgba(255,255,255,0.9), 0 2px 8px rgba(255,255,255,0.6);
    }

.intro-name {
    font-family: var(--serif);
    font-size: clamp(53px, 9.6vw, 74px);
    line-height: 1.05;
    letter-spacing: -0.025em;
    margin-bottom: 1.75rem;
}

.intro-eyebrow {
    font-size: 24px;
    letter-spacing: 0.01em;
    color: var(--fg-mid);
    margin-bottom: 1.25rem;
}

.intro-bio {
    font-size: 25px;
    color: var(--fg-mid);
    line-height: 1.75;
    margin-bottom: 2.5rem;
}

.intro-status {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 17px;
    color: var(--fg-mid);
}

.status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #5d9e6f;
    flex-shrink: 0;
}

.ethos-lead {
    font-family: var(--serif);
    font-size: 34px;
    line-height: 1.3;
    letter-spacing: -0.015em;
    margin-bottom: 3rem;
    max-width: 52ch;
}

.ethos-list {
    list-style: none;
}

.ethos-item {
    padding: 1.75rem 0;
    border-top: 0.5px solid var(--border);
}

    .ethos-item:last-child {
        border-bottom: 0.5px solid var(--border);
    }

.ethos-num {
    font-size: 30px;
    letter-spacing: 0.05em;
    color: var(--fg-mid);
    padding-top: 3px;
}

.ethos-content h3 {
    font-size: 28px;
    font-weight: 500;
    margin-bottom: 0.45rem;
}

.ethos-content p {
    font-size: 25px;
    color: var(--fg-mid);
    line-height: 1.75;
}

/* ── ② WORK ── */
.work-sublabel {
    font-size: 20px;
    letter-spacing: 0.08em;
    color: var(--fg-muted);
    text-transform: uppercase;
    margin-bottom: 1.5rem;
}

.case-list {
    list-style: none;
}

.case-card {
    padding: 2.25rem 0;
    border-top: 0.5px solid var(--border);
    position: relative;
}

    .case-card:last-child {
        border-bottom: 0.5px solid var(--border);
    }

/* Stretchy link — makes the whole card clickable */
.case-link::before {
    content: '';
    position: absolute;
    inset: 0;
}

.case-tags {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.8rem;
}

.tag {
    font-size: 15px;
    letter-spacing: 0.03em;
    color: var(--bg);
    background: var(--fg-mid);
    padding: 5px 13px;
    border-radius: 100px;
}

.case-card h2 {
    font-family: var(--sans);
    font-size: 41px;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin-bottom: 0.65rem;
}

.case-card p {
    font-size: 25px;
    color: var(--fg-mid);
    line-height: 1.75;
    margin-bottom: 1.5rem;
}

.case-meta {
    display: flex;
    gap: 2.5rem;
    margin-bottom: 1.5rem;
}

.meta-label {
    font-size: 13px;
    letter-spacing: 0.06em;
    color: var(--fg-muted);
    margin-bottom: 2px;
}

.meta-val {
    font-size: 16px;
    color: var(--fg-mid);
}

.case-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 22px;
    color: var(--fg);
    text-decoration: underline;
    text-underline-offset: 3px;
    padding-bottom: 2px;
    transition: gap 0.15s;
}

    .case-link:hover {
        gap: 0.65rem;
    }

.proj-section {
    margin-top: 4rem;
}

.proj-list {
    list-style: none;
}

.proj-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem 0;
    border-top: 0.5px solid var(--border);
}

    .proj-item:last-child {
        border-bottom: 0.5px solid var(--border);
    }

.proj-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    width: 100%;
    text-decoration: none;
}

    .proj-link:hover .proj-name {
        color: var(--fg);
    }

.proj-name {
    font-size: 25px;
    font-weight: 500;
    margin-bottom: 2px;
    transition: color 0.12s;
}

.proj-sub {
    font-size: 20px;
    color: var(--fg-muted);
}

.proj-year {
    font-size: 16px;
    color: var(--fg-muted);
    white-space: nowrap;
    flex-shrink: 0;
}

/* ── ③ RESUME ── */
.cv-header {
    margin-bottom: 3rem;
}

.cv-name {
    font-family: var(--serif);
    font-size: 41px;
    letter-spacing: -0.02em;
    margin-bottom: 0.4rem;
}

.cv-contact {
    font-size: 19px;
    color: var(--fg-mid);
    line-height: 1.8;
}

    .cv-contact a {
        color: var(--fg-mid);
        border-bottom: 0.5px solid var(--border-md);
    }

        .cv-contact a:hover {
            color: var(--fg);
        }

.cv-section {
    margin-bottom: 2.75rem;
}

.cv-sec-title {
    font-size: 20px;
    letter-spacing: 0.08em;
    color: var(--fg-muted);
    text-transform: uppercase;
    padding-bottom: 0.65rem;
    border-bottom: 0.5px solid var(--border);
    margin-bottom: 0;
}

.cv-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    padding: 2rem 0;
    border-bottom: 0.5px solid var(--border);
    align-items: start;
}

    .cv-row:last-child {
        border-bottom: none;
    }

.cv-role {
    font-size: 22px;
    font-weight: 500;
    line-height: 1.4;
    margin-bottom: 2px;
}

.cv-company {
    font-size: 19px;
    color: var(--fg-mid);
    line-height: 1.5;
    margin-bottom: 0.6rem;
}

.cv-bullets {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

    .cv-bullets li {
        font-size: 22px;
        color: var(--fg-mid);
        line-height: 1.7;
        padding-left: 1rem;
        position: relative;
    }

        .cv-bullets li::before {
            content: '—';
            position: absolute;
            left: 0;
            color: var(--fg-muted);
            font-size: 13px;
            top: 5px;
        }

.cv-date {
    font-size: 14px;
    color: var(--fg-muted);
    white-space: nowrap;
    padding-top: 2px;
}

.cv-skills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding-top: 1rem;
}

.cv-skill {
    font-size: 16px;
    color: var(--bg);
    background: var(--fg-mid);
    padding: 5px 13px;
    border-radius: 100px;
}

.cv-download {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 16px;
    color: var(--fg-mid);
    border: 0.5px solid var(--border-md);
    padding: 8px 16px;
    border-radius: 100px;
    margin-top: 2.5rem;
    transition: color 0.15s, border-color 0.15s;
    cursor: pointer;
}

    .cv-download:hover {
        color: var(--fg);
        border-color: var(--fg);
    }

/* ── Responsive overrides ── */
@media (max-width: 700px) {
    .side-nav {
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
        gap: 1rem;
    }

    .side-nav-name {
        margin-bottom: 0;
        font-size: 22px;
    }

    .side-nav-links {
        flex-direction: row;
        gap: 1rem;
    }

        .side-nav-links a {
            font-size: 26px;
        }

    .ethos-item {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .case-meta {
        flex-wrap: wrap;
        gap: 1.25rem;
    }

    .cv-row {
        grid-template-columns: 1fr;
    }

    .cv-date {
        padding-top: 0;
    }
}
