/* ─── Reset ─────────────────────────────────────────── */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    overscroll-behavior: none;
    height: 100%;
}

:root {
    /* Section spacing controls (edit these to tune vertical rhythm) */
    --section-padding-y: 52px;
    --section-padding-x: 48px;
    --section-gap: 0px;

    --section-padding-y-mobile: 36px;
    --section-padding-x-mobile: 24px;
    --section-gap-mobile: 0px;
}

body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background: #0b0f14;
    color: #d8dee9;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

/* ─── Hero ──────────────────────────────────────────── */
/* ── Hero spacer (holds scroll height; image is fixed behind) ── */
.hero {
    position: relative;
    height: 100vh;
    width: 100%;
}

/* Image pinned to viewport — never scrolls */
.hero-img {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    object-fit: cover;
    object-position: center 70%;
    z-index: 0;
}



/* Name + scroll hint fixed at bottom, above fade */
.hero-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 40px 48px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    z-index: 2;
    transition: opacity 0.5s ease;
}

.hero-footer.hidden {
    opacity: 0;
    pointer-events: none;
}

.hero-name {
    font-size: clamp(1.6em, 3.5vw, 2.6em);
    font-weight: 300;
    letter-spacing: 0.06em;
    color: #fff;
    line-height: 1.15;
    text-shadow: 0 1px 8px rgba(0,0,0,0.35);
}

.hero-scroll {
    font-size: 0.72em;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #fff;
    opacity: 0.75;
    text-shadow: 0 1px 6px rgba(0,0,0,0.35);
}

/* ── Content that slides over the fixed image ───────── */
.content-over-hero {
    position: relative;
    z-index: 3;
    background: #0b0f14;
    overflow: hidden;
}

/* Subtle animated engineering lines: low-density and low-opacity */
.content-over-hero::before,
.content-over-hero::after {
    content: '';
    position: absolute;
    inset: -20%;
    pointer-events: none;
    z-index: 0;
}

.content-over-hero::before {
    background:
        repeating-linear-gradient(
            122deg,
            transparent 0 120px,
            rgba(86, 156, 255, 0.14) 120px 122px,
            transparent 122px 260px,
            rgba(82, 232, 224, 0.1) 260px 262px,
            transparent 262px 420px
        );
    animation: flow-lines-a 26s linear infinite;
}

.content-over-hero::after {
    background:
        repeating-linear-gradient(
            58deg,
            transparent 0 170px,
            rgba(255, 128, 87, 0.11) 170px 172px,
            transparent 172px 340px,
            rgba(168, 120, 255, 0.09) 340px 342px,
            transparent 342px 520px
        );
    animation: flow-lines-b 34s linear infinite;
}

@keyframes flow-lines-a {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(-180px, -80px, 0);
    }
}

@keyframes flow-lines-b {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(140px, -120px, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .content-over-hero::before,
    .content-over-hero::after {
        animation: none;
    }
}

/* ─── Content sections ──────────────────────────────── */
.section {
    padding: var(--section-padding-y) var(--section-padding-x);
    max-width: 960px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.section + .section {
    margin-top: var(--section-gap);
}

.section-label,
.title-kicker {
    display: block;
    font-size: 0.72em;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #7f8a99;
    margin-bottom: 28px;
    font-weight: 400;
}

.title-solid {
    display: block;
    font-size: clamp(2.1em, 5vw, 3.8em);
    line-height: 0.95;
    letter-spacing: -0.04em;
    font-weight: 700;
    color: #f7fafc;
    margin-bottom: 18px;
}

.title-solid--compact {
    margin-bottom: 12px;
}

.section h1 {
    font-size: clamp(1.6em, 3vw, 2.4em);
    font-weight: 300;
    letter-spacing: 0.03em;
    color: #f1f5f9;
    margin-bottom: 24px;
    line-height: 1.2;
}

.section h2 {
    font-size: 0.9em;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #e5e7eb;
    margin-bottom: 12px;
    margin-top: 40px;
}

.section p {
    font-size: 0.95em;
    line-height: 1.85;
    color: #9aa4b2;
    margin-bottom: 20px;
    max-width: 580px;
}

.section a {
    color: #dbe3ef;
    border-bottom: 1px solid currentColor;
    transition: opacity 0.2s;
}

.section a:hover {
    opacity: 0.45;
}

.section-rule {
    border: none;
    border-top: 1px solid #222a33;
    margin: 0;
}

/* ─── Site footer ───────────────────────────────────── */
.site-footer {
    padding: 48px;
    font-size: 0.72em;
    letter-spacing: 0.14em;
    color: #6b7788;
    text-transform: uppercase;
    border-top: 1px solid #222a33;
    position: relative;
    z-index: 1;
}

/* ─── Non-hero pages (fixed nav offset) ────────────── */
.page-wrap {
    position: relative;
    z-index: 3;
    background: #0b0f14;
    overflow: hidden;
    padding-top: 72px;
}

/* Animated background lines for non-hero pages */
.page-wrap::before,
.page-wrap::after {
    content: '';
    position: absolute;
    inset: -20%;
    pointer-events: none;
    z-index: 0;
}

.page-wrap::before {
    background:
        repeating-linear-gradient(
            122deg,
            transparent 0 120px,
            rgba(86, 156, 255, 0.14) 120px 122px,
            transparent 122px 260px,
            rgba(82, 232, 224, 0.1) 260px 262px,
            transparent 262px 420px
        );
    animation: flow-lines-a 26s linear infinite;
}

.page-wrap::after {
    background:
        repeating-linear-gradient(
            58deg,
            transparent 0 170px,
            rgba(255, 128, 87, 0.11) 170px 172px,
            transparent 172px 340px,
            rgba(168, 120, 255, 0.09) 340px 342px,
            transparent 342px 520px
        );
    animation: flow-lines-b 34s linear infinite;
}

/* ─── Mobile ────────────────────────────────────────── */
@media (max-width: 768px) {
    .hero-footer {
        padding: 28px;
    }

    :root {
        --section-padding-y: var(--section-padding-y-mobile);
        --section-padding-x: var(--section-padding-x-mobile);
        --section-gap: var(--section-gap-mobile);
    }

    .section {
        padding: var(--section-padding-y) var(--section-padding-x);
    }

    .site-footer {
        padding: 36px 24px;
    }

    .page-wrap {
        padding-top: 60px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-wrap::before,
    .page-wrap::after {
        animation: none;
    }
}
