@font-face {
    font-family: "Google Sans";
    src: url("Google_Sans,Oswald/Google_Sans/GoogleSans-VariableFont_GRAD,opsz,wght.ttf") format("truetype-variations");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Google Sans";
    src: url("Google_Sans,Oswald/Google_Sans/GoogleSans-Italic-VariableFont_GRAD,opsz,wght.ttf") format("truetype-variations");
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Oswald";
    src: url("Google_Sans,Oswald/Oswald/Oswald-VariableFont_wght.ttf") format("truetype-variations");
    font-weight: 200 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --color-bg: #000;
    --color-cream: #eaebde;
    --color-cream-strong: #f4f5ec;
    --color-cream-mid: rgba(234, 235, 222, 0.88);
    --color-cream-dim: rgba(234, 235, 222, 0.55);
    --color-hairline: rgba(234, 235, 222, 0.15);
    --color-orange: #6b9dc9;

    /* ── Liquid Glass tokens ── */
    --glass-white: rgba(255, 255, 255, 0.06);
    --glass-white-md: rgba(255, 255, 255, 0.12);
    --glass-white-lg: rgba(255, 255, 255, 0.2);
    --glass-border: rgba(255, 255, 255, 0.14);
    --glass-border-subtle: rgba(255, 255, 255, 0.08);
    --glass-border-bright: rgba(255, 255, 255, 0.28);
    --glass-light: rgba(255, 255, 255, 0.65);
    --glass-light-md: rgba(255, 255, 255, 0.82);
    --glass-light-border: rgba(15, 23, 42, 0.08);
    --glass-light-border-md: rgba(15, 23, 42, 0.14);
    --blur-sm: blur(8px);
    --blur-md: blur(18px);
    --blur-lg: blur(32px);
    --shadow-glass: 0 8px 32px rgba(0, 0, 0, 0.28),
                    inset 0 1px 0 rgba(255, 255, 255, 0.18);
    --shadow-glass-light: 0 8px 32px rgba(15, 23, 42, 0.08),
                          inset 0 1px 0 rgba(255, 255, 255, 0.9);
    --shadow-float: 0 24px 60px rgba(0, 0, 0, 0.38),
                    0 4px 16px rgba(0, 0, 0, 0.2);
    --shadow-float-light: 0 28px 70px rgba(15, 23, 42, 0.14),
                          0 6px 18px rgba(15, 23, 42, 0.06);
    --reflection-top: linear-gradient(135deg,
        rgba(255, 255, 255, 0.32) 0%,
        rgba(255, 255, 255, 0) 45%);
    --reflection-top-light: linear-gradient(135deg,
        rgba(255, 255, 255, 0.85) 0%,
        rgba(255, 255, 255, 0) 45%);
    --reflection-inner: inset 0 1px 1px rgba(255, 255, 255, 0.45),
                        inset 0 -1px 1px rgba(0, 0, 0, 0.1);
    --ease-glass: cubic-bezier(0.22, 0.68, 0, 1.2);
    --ease-liquid: cubic-bezier(0.34, 1.56, 0.64, 1);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
}

html,
body {
    margin: 0;
    padding: 0;
    background: var(--color-bg);
    color: var(--color-cream);
    font-family: "Google Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ---------- Site header (transparent, adaptive theme, fades in after 1s) ---------- */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding: 0.75rem 0;
    background: transparent;
    backdrop-filter: blur(10px) saturate(1.1);
    -webkit-backdrop-filter: blur(10px) saturate(1.1);
    opacity: 0;
    transform: translateY(-100%);
    transition:
        opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.7s cubic-bezier(0.16, 1, 0.3, 1),
        background 0.4s ease;
    pointer-events: none;
    will-change: transform, opacity;
}

.site-header::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.08), transparent);
    pointer-events: none;
    z-index: -1;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.site-header[data-theme="dark"]::after {
    opacity: 1;
}

.site-header[data-theme="light"]::after {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.35), transparent);
    opacity: 1;
}

.site-header.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.site-header__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 clamp(1rem, 3vw, 2rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.site-header__logo {
    display: block;
    flex-shrink: 0;
    line-height: 0;
}

.site-header__logo img {
    display: block;
    height: 54px;
    width: auto;
    transition: filter 0.4s ease;
}

.site-header[data-theme="dark"] .site-header__logo img {
    filter: brightness(0) invert(1);
}

.site-header__nav {
    display: flex;
    align-items: center;
    gap: clamp(0.85rem, 2vw, 1.75rem);
}

.site-header__nav a {
    position: relative;
    padding: 0.4rem 0;
    color: #1a201c;
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.005em;
    cursor: pointer;
    transition: color 0.25s ease;
}

.site-header[data-theme="dark"] .site-header__nav a {
    color: #f4f5ec;
}

.site-header[data-theme="dark"] .site-header__nav a:hover {
    color: #a3c1dd;
}

.site-header[data-theme="dark"] .site-header__nav a::after {
    background: #a3c1dd;
}

.site-header[data-theme="dark"] .site-header__burger span {
    background: #f4f5ec;
}

.site-header__nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1.5px;
    background: #3a6a9a;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.35s cubic-bezier(0.65, 0, 0.35, 1);
}

.site-header__nav a:hover {
    color: #3a6a9a;
}

.site-header__nav a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

.site-header__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1.15rem;
    background: #c15238;
    color: #ffffff;
    text-decoration: none;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.005em;
    box-shadow: 0 8px 18px rgba(193, 82, 56, 0.25);
    transition:
        transform 0.25s ease,
        background 0.25s ease,
        box-shadow 0.25s ease;
    flex-shrink: 0;
}

.site-header__cta:hover {
    background: #d15c40;
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(193, 82, 56, 0.35);
}

.site-header__cta-arrow {
    width: 0.95rem;
    height: 0.95rem;
    display: block;
    transition: transform 0.25s ease;
}

.site-header__cta:hover .site-header__cta-arrow {
    transform: translateX(2px);
}

/* Mobile burger */
.site-header__burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 8px;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.site-header__burger span {
    display: block;
    width: 100%;
    height: 2px;
    background: #14181a;
    border-radius: 2px;
    transform-origin: center;
    transition: transform 0.3s ease, opacity 0.2s ease;
}

.site-header__burger[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.site-header__burger[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}
.site-header__burger[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.site-header__mobile {
    display: none;
    padding: 1rem 1.25rem 1.5rem;
    border-top: 1px solid rgba(20, 30, 25, 0.06);
    background: rgba(255, 255, 255, 0.94);
}

.site-header__mobile-nav {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.site-header__mobile-nav a {
    color: #14181a;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    padding: 0.35rem 0;
    cursor: pointer;
}

.site-header__mobile-cta {
    margin-top: 0.5rem;
    padding: 0.85rem 1.25rem !important;
    background: #c15238;
    color: #ffffff !important;
    text-align: center;
    border-radius: 999px;
    font-weight: 700 !important;
}

@media (max-width: 900px) {
    .site-header__nav,
    .site-header__cta {
        display: none;
    }
    .site-header__burger {
        display: flex;
    }
    .site-header__mobile[data-open="true"] {
        display: block;
    }
}

/* ---------- Hero ---------- */
.hero {
    position: relative;
    width: 100%;
    height: 500vh;
}

.hero__sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.hero__canvas {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse at center,
        rgba(0, 0, 0, 0.45) 0%,
        rgba(0, 0, 0, 0.7) 100%
    );
    pointer-events: none;
}

.hero__content {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    padding: 8vh clamp(2rem, 7vw, 6rem);
    gap: 1.75rem;
    max-width: min(60rem, 92%);
    will-change: opacity;
}

@media (max-width: 720px) {
    .hero__content {
        padding: 6vh clamp(1.25rem, 5vw, 2rem);
        gap: 1.25rem;
    }
}

/* ---------- Scroll-driven reveal ---------- */
.stage {
    --t: 0;
    --t-rise: 0;
    opacity: var(--t);
    transform: translateY(calc((1 - var(--t-rise)) * 32px));
    will-change: opacity, transform;
}

.line {
    --t: 0;
    --t-rise: 0;
    display: block;
    padding: 0.06em 0;
}

.line__inner {
    display: block;
    transform: translateY(calc((1 - var(--t-rise)) * 40px));
    opacity: calc(var(--t) * 0.7 + 0.3);
    filter: blur(calc((1 - var(--t-rise)) * 14px));
    will-change: transform, opacity, filter;
    color: inherit;
}

.line--primary {
    color: var(--color-cream-strong);
}

.line--secondary {
    color: var(--color-orange);
}

.line--primary + .line--secondary {
    margin-top: 0;
}

.line {
    padding: 0.02em 0;
}

/* ---------- Hero Pre-Headline (small, left-aligned, above headline) ---------- */
.hero__pre-headline {
    --t: 1;
    --t-rise: 1;
    margin: 0 0 -1rem;
    max-width: 100%;
    color: var(--color-cream-strong);
    font-family: "Oswald", "Google Sans", sans-serif;
    font-size: clamp(0.78rem, 0.95vw, 0.98rem);
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.55);
    opacity: var(--t);
    filter: blur(calc((1 - var(--t-rise)) * 6px));
    will-change: opacity, filter;
    white-space: nowrap;
}

.hero__pre-headline-inner {
    display: inline-block;
}

@media (max-width: 720px) {
    .hero__pre-headline {
        letter-spacing: 0.12em;
        white-space: normal;
    }
}

/* ---------- Headline ---------- */
.headline {
    margin: 0;
    font-size: clamp(1.55rem, 3.6vw, 3.15rem);
    line-height: 1.04;
    letter-spacing: -0.025em;
    font-weight: 700;
    max-width: 32ch;
}

/* ---------- Body copy (Sub-Headline) — slide from left ---------- */
.stage.stage--body {
    position: relative;
    transform: translateX(calc((1 - var(--t-rise)) * -50px));
}

.body-copy {
    max-width: 44rem;
    margin: 0;
    color: var(--color-cream-mid);
    font-size: clamp(1.05rem, 1.25vw, 1.2rem);
    line-height: 1.6;
    font-weight: 400;
}

.body-copy strong {
    color: var(--color-cream-strong);
    font-weight: 600;
}

.body-copy em {
    font-style: italic;
    color: var(--color-orange);
    font-weight: 500;
}

/* ---------- Hero CTA — scale-in with subtle overshoot ---------- */
.stage.hero__cta-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.85rem;
    margin-top: 0.25rem;
    transform-origin: center center;
    transform: scale(
        calc(
            0.82
            + min(var(--t-rise), 0.7) * 0.329
            - max(0, var(--t-rise) - 0.7) * 0.167
        )
    );
}

.hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    padding: 1.05rem 1.9rem;
    background: #c15238;
    color: #ffffff;
    text-decoration: none;
    border-radius: 999px;
    font-size: clamp(1rem, 1.15vw, 1.1rem);
    font-weight: 700;
    letter-spacing: 0.005em;
    box-shadow: 0 14px 34px rgba(193, 82, 56, 0.42), 0 2px 6px rgba(0, 0, 0, 0.25);
    transition:
        transform 0.25s ease,
        background 0.25s ease,
        box-shadow 0.25s ease;
}

.hero__cta:hover {
    background: #d15c40;
    transform: translateY(-2px);
    box-shadow: 0 18px 42px rgba(193, 82, 56, 0.5), 0 3px 8px rgba(0, 0, 0, 0.3);
}

.hero__cta-emoji {
    font-size: 1.2em;
    line-height: 1;
    display: inline-block;
    transform: translateY(-1px);
}

.hero__cta-note {
    margin: 0;
    color: var(--color-cream-dim);
    font-size: clamp(0.8rem, 0.9vw, 0.9rem);
    line-height: 1.5;
    font-weight: 400;
    letter-spacing: 0.01em;
    max-width: 32rem;
    text-align: center;
}

/* ---------- Hero CTA anchor (travels from left to center on scroll) ---------- */
.hero__cta-anchor {
    --cta-move: 0;
    position: absolute;
    left: calc(clamp(2rem, 7vw, 6rem) + (50vw - clamp(2rem, 7vw, 6rem)) * var(--cta-move));
    top: calc(76vh - 10vh * var(--cta-move));
    transform: translate(calc(-50% * var(--cta-move)), calc(-50% * var(--cta-move)));
    pointer-events: none;
    z-index: 5;
    will-change: top, left, transform;
}

.hero__cta-anchor .hero__cta {
    pointer-events: auto;
}

@media (max-width: 720px) {
    .hero__cta-anchor {
        left: calc(clamp(1.25rem, 5vw, 2rem) + (50vw - clamp(1.25rem, 5vw, 2rem)) * var(--cta-move));
        top: calc(80vh - 12vh * var(--cta-move));
    }
}

/* ============================================================
   Scroll progress — car driving from left to right
============================================================ */
.scroll-progress {
    position: fixed;
    bottom: clamp(1rem, 2vh, 1.75rem);
    left: max(1.5rem, 3vw);
    right: max(1.5rem, 3vw);
    z-index: 90;
    pointer-events: none;
    opacity: 0;
    transform: translateY(24px);
    transition:
        opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.scroll-progress.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.scroll-progress__track {
    position: relative;
    height: 3px;
    background: rgba(163, 193, 221, 0.18);
    border-radius: 999px;
    overflow: hidden;
    box-shadow:
        0 1px 3px rgba(0, 0, 0, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.scroll-progress__fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: var(--progress, 0%);
    background: linear-gradient(90deg,
        #3a6a9a 0%,
        #6b9dc9 50%,
        #a3c1dd 100%);
    border-radius: 999px;
    box-shadow: 0 0 12px rgba(107, 157, 201, 0.4);
    transition: width 0.15s linear;
}

.scroll-progress__car {
    position: absolute;
    bottom: -12px;
    left: var(--progress, 0%);
    width: clamp(70px, 8vw, 110px);
    height: auto;
    transform: translateX(-50%);
    transition: left 0.15s linear;
    will-change: left;
    filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.4));
    pointer-events: none;
}

@media (max-width: 600px) {
    .scroll-progress {
        bottom: 1rem;
    }
    .scroll-progress__car {
        width: 60px;
        bottom: -8px;
    }
}

/* ============================================================
   Common section framework
============================================================ */
.section {
    position: relative;
    padding: clamp(5rem, 11vh, 9rem) 0;
    overflow: hidden;
}

.section__inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 clamp(1.5rem, 4vw, 3rem);
    position: relative;
}

.eyebrow {
    display: inline-block;
    font-family: "Oswald", "Google Sans", sans-serif;
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #3a6a9a;
    margin: 0 0 1.5rem;
    position: relative;
    padding-left: 3rem;
}

.eyebrow::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 2rem;
    height: 1px;
    background: #3a6a9a;
    transform: translateY(-50%);
}

[data-header-theme="dark"] .eyebrow,
.pain .eyebrow,
.offer .eyebrow,
.scarcity .eyebrow {
    color: #a3c1dd;
}
[data-header-theme="dark"] .eyebrow::before,
.pain .eyebrow::before,
.offer .eyebrow::before,
.scarcity .eyebrow::before {
    background: #a3c1dd;
}

.eyebrow--warning {
    color: #6b9dc9 !important;
}
.eyebrow--warning::before {
    background: #6b9dc9 !important;
}

.eyebrow--centered {
    padding-left: 3rem;
    padding-right: 3rem;
}
.eyebrow--centered::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 2rem;
    height: 1px;
    background: currentColor;
    transform: translateY(-50%);
    opacity: 0.5;
}

.section-headline {
    margin: 0 0 2.5rem;
    font-size: clamp(2rem, 4.4vw, 3.5rem);
    line-height: 1.05;
    letter-spacing: -0.025em;
    font-weight: 700;
    max-width: 24ch;
    color: #1a201c;
}

.section-headline span {
    color: #3a6a9a;
    display: block;
}

[data-header-theme="dark"] .section-headline {
    color: #f4f5ec;
}
[data-header-theme="dark"] .section-headline span {
    color: #a3c1dd;
}

/* Reveal base — cinematic blur-in slide (matches hero blur effect) */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    filter: blur(14px);
    transition:
        opacity 1.1s cubic-bezier(0.16, 1, 0.3, 1),
        transform 1.1s cubic-bezier(0.16, 1, 0.3, 1),
        filter 1.1s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform, filter;
}
.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}

/* ============================================================
   Section 2 — Pain & Agitation
============================================================ */
.pain {
    background: #0e2540;
    color: var(--color-cream);
    position: relative;
    overflow: hidden;
}

.pain::before,
.pain::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    opacity: 0.45;
    pointer-events: none;
    z-index: 0;
    animation: blob-drift 22s ease-in-out infinite alternate;
}

.pain::before {
    width: 520px;
    height: 520px;
    background: radial-gradient(circle, #3a6a9a 0%, transparent 70%);
    top: -160px;
    left: -140px;
}

.pain::after {
    width: 440px;
    height: 440px;
    background: radial-gradient(circle, #6b9dc9 0%, transparent 70%);
    bottom: -140px;
    right: -100px;
    animation-delay: -8s;
    opacity: 0.35;
}

.pain > .section__inner {
    position: relative;
    z-index: 1;
}

@keyframes blob-drift {
    0%   { transform: translate(0, 0) scale(1); }
    50%  { transform: translate(50px, -30px) scale(1.08); }
    100% { transform: translate(-30px, 40px) scale(0.94); }
}

.pain__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}

.pain-card {
    position: relative;
    background: var(--glass-white);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    padding: 2.5rem 1.85rem 2.25rem;
    backdrop-filter: var(--blur-md);
    -webkit-backdrop-filter: var(--blur-md);
    box-shadow: var(--shadow-glass);
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.6s var(--ease-glass),
                background 0.4s ease,
                border-color 0.4s ease,
                box-shadow 0.4s ease;
}

.pain-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--reflection-top);
    pointer-events: none;
    border-radius: inherit;
    z-index: -1;
}

.pain-card::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    background: linear-gradient(135deg,
        rgba(163, 193, 221, 0.18) 0%,
        rgba(163, 193, 221, 0) 40%,
        rgba(163, 193, 221, 0.06) 100%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
    z-index: -1;
}

.pain-card {
    z-index: 1;
}

.pain-card:hover {
    z-index: 10;
    transform: translateY(-22px) scale(1.06);
    background: var(--glass-white-lg);
    border-color: var(--glass-border-bright);
    box-shadow:
        0 50px 100px rgba(0, 0, 0, 0.6),
        0 22px 40px rgba(0, 0, 0, 0.4),
        0 0 60px rgba(163, 193, 221, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.pain__grid:hover .pain-card:not(:hover) {
    opacity: 0.4;
    transform: scale(0.97);
    filter: blur(2px);
}

.pain-card:hover::after {
    opacity: 1;
}

.pain-card__number {
    position: absolute;
    top: 1.75rem;
    right: 1.75rem;
    font-family: "Oswald", sans-serif;
    font-size: 2.75rem;
    font-weight: 700;
    line-height: 1;
    color: rgba(163, 193, 221, 0.2);
    letter-spacing: -0.02em;
    z-index: 1;
    transition: color 0.4s ease;
}

.pain-card:hover .pain-card__number {
    color: rgba(163, 193, 221, 0.55);
}

.pain-card__icon {
    display: inline-flex;
    width: 3.75rem;
    height: 3.75rem;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(163, 193, 221, 0.13);
    color: #a3c1dd;
    margin-bottom: 1.5rem;
    position: relative;
    z-index: 1;
}

.pain-card__icon svg {
    width: 2rem;
    height: 2rem;
}

.pain-card__title {
    margin: 0 0 0.75rem;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: #f4f5ec;
}

.pain-card__text {
    margin: 0;
    color: rgba(234, 235, 222, 0.75);
    font-size: 0.98rem;
    line-height: 1.6;
}

.pain__truth {
    margin: 4rem auto 0;
    padding: 2.5rem clamp(1.75rem, 4vw, 3rem);
    background: var(--glass-white);
    backdrop-filter: var(--blur-lg);
    -webkit-backdrop-filter: var(--blur-lg);
    border: 1px solid var(--glass-border);
    border-left: 3px solid #a3c1dd;
    border-radius: 16px;
    max-width: 60rem;
    position: relative;
    box-shadow: var(--shadow-glass);
    overflow: hidden;
    isolation: isolate;
}

.pain__truth::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--reflection-top);
    pointer-events: none;
    border-radius: inherit;
    z-index: -1;
}


.pain__truth-eyebrow {
    margin: 0 0 0.75rem;
    font-family: "Oswald", sans-serif;
    font-size: 0.82rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #a3c1dd;
    font-weight: 500;
}

.pain__truth-text {
    margin: 0;
    font-size: clamp(1.15rem, 1.65vw, 1.55rem);
    line-height: 1.5;
    color: #f4f5ec;
    font-weight: 400;
}

.pain__truth-text em {
    font-style: italic;
    color: #a3c1dd;
}

.pain__truth-text strong {
    color: #ffffff;
    font-weight: 700;
}

/* ============================================================
   Section 3 — Solution
============================================================ */
.solution {
    background: #f4f5ec;
    color: #1a201c;
}

.solution__intro {
    max-width: 54rem;
    margin: 0 0 1.5rem;
    font-size: clamp(1.1rem, 1.4vw, 1.3rem);
    line-height: 1.65;
    color: #2f3a48;
}

.solution__intro strong {
    color: #1a201c;
    font-weight: 600;
}

.solution__question {
    margin: 0 0 3rem;
    font-size: 1.05rem;
    font-weight: 600;
    color: #3a6a9a;
    font-family: "Oswald", sans-serif;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.solution__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 1rem;
}

.solution-card {
    position: relative;
    background: var(--glass-light);
    border: 1px solid var(--glass-light-border);
    border-radius: 24px;
    padding: 2.75rem 2rem 2rem;
    backdrop-filter: var(--blur-md);
    -webkit-backdrop-filter: var(--blur-md);
    box-shadow: var(--shadow-glass-light);
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.6s var(--ease-glass),
                background 0.4s ease,
                border-color 0.4s ease,
                box-shadow 0.4s ease;
}

.solution-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--reflection-top-light);
    pointer-events: none;
    border-radius: inherit;
    z-index: -1;
}

.solution-card {
    z-index: 1;
}

.solution-card:hover {
    z-index: 10;
    transform: translateY(-22px) scale(1.06);
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(15, 23, 42, 0.18);
    box-shadow:
        0 56px 100px rgba(15, 23, 42, 0.24),
        0 24px 44px rgba(15, 23, 42, 0.14),
        0 0 60px rgba(58, 106, 154, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 1);
}

.solution__grid:hover .solution-card:not(:hover) {
    opacity: 0.4;
    transform: scale(0.97);
    filter: blur(2px);
}

.solution-card__check {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: linear-gradient(135deg, #3a6a9a 0%, #4a7ba8 100%);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 16px rgba(58, 106, 154, 0.35),
                inset 0 1px 0 rgba(255, 255, 255, 0.3);
    z-index: 2;
}

.solution-card__check svg {
    width: 1.15rem;
    height: 1.15rem;
    display: block;
}

.solution-card__icon {
    display: block;
    width: 3.5rem;
    height: 3.5rem;
    color: #3a6a9a;
    margin: 0.85rem 0 1.5rem;
}

.solution-card__icon svg {
    width: 100%;
    height: 100%;
}

.solution-card__title {
    margin: 0 0 0.85rem;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.015em;
    color: #1a201c;
}

.solution-card__text {
    margin: 0;
    color: #4a5548;
    font-size: 1rem;
    line-height: 1.6;
}

.solution-card__text strong {
    color: #1a201c;
    font-weight: 600;
}

/* ============================================================
   Section 4 — Offer (Grand Slam)
============================================================ */
.offer {
    background: #0e2540;
    color: var(--color-cream);
    position: relative;
    overflow: hidden;
}

.offer::before,
.offer::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(100px);
    pointer-events: none;
    z-index: 0;
    animation: blob-drift 26s ease-in-out infinite alternate;
}

.offer::before {
    width: 580px;
    height: 580px;
    background: radial-gradient(circle, #3a6a9a 0%, transparent 70%);
    top: 20%;
    right: -180px;
    opacity: 0.4;
    animation-delay: -6s;
}

.offer::after {
    width: 460px;
    height: 460px;
    background: radial-gradient(circle, #a3c1dd 0%, transparent 70%);
    bottom: -160px;
    left: 10%;
    opacity: 0.3;
    animation-delay: -14s;
}

.offer > .section__inner {
    position: relative;
    z-index: 1;
}
.offer > .offer__badge {
    z-index: 3;
}

.offer__badge {
    position: absolute;
    top: clamp(2.5rem, 6vh, 5rem);
    right: clamp(2rem, 5vw, 4.5rem);
    width: 180px;
    height: 180px;
    color: #a3c1dd;
    animation: badgeSpin 26s linear infinite;
    z-index: 3;
    pointer-events: none;
    opacity: 1;
    filter: drop-shadow(0 0 24px rgba(163, 193, 221, 0.35));
}

@keyframes badgeSpin {
    to { transform: rotate(360deg); }
}

.offer__intro {
    max-width: 54rem;
    margin: 0 0 1.5rem;
    font-size: clamp(1.1rem, 1.4vw, 1.3rem);
    line-height: 1.65;
    color: rgba(234, 235, 222, 0.85);
}

.offer__intro strong {
    color: #f4f5ec;
    font-weight: 600;
}

.offer__subintro {
    max-width: 52rem;
    margin: 0 0 3rem;
    font-size: 1.1rem;
    line-height: 1.6;
    color: rgba(234, 235, 222, 0.9);
}

.offer__subintro em {
    color: #a3c1dd;
    font-style: normal;
    font-weight: 600;
}

.offer__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
}

.offer-card {
    position: relative;
    background: var(--glass-white);
    border: 1px solid rgba(163, 193, 221, 0.24);
    border-radius: 24px;
    padding: 3rem 2rem 2.25rem;
    backdrop-filter: var(--blur-lg);
    -webkit-backdrop-filter: var(--blur-lg);
    box-shadow: var(--shadow-glass);
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.6s var(--ease-glass),
                background 0.4s ease,
                border-color 0.4s ease,
                box-shadow 0.4s ease;
}

.offer-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--reflection-top);
    pointer-events: none;
    border-radius: inherit;
    z-index: -1;
}

.offer-card::after {
    content: "";
    position: absolute;
    top: -50%;
    right: -20%;
    width: 60%;
    height: 200%;
    background: linear-gradient(90deg,
        transparent,
        rgba(163, 193, 221, 0.14),
        transparent);
    transform: rotate(20deg);
    transition: transform 1.1s ease;
    pointer-events: none;
    z-index: -1;
}

.offer-card {
    z-index: 1;
}

.offer-card:hover {
    z-index: 10;
    transform: translateY(-22px) scale(1.06);
    background: var(--glass-white-lg);
    border-color: rgba(163, 193, 221, 0.7);
    box-shadow:
        0 50px 100px rgba(0, 0, 0, 0.6),
        0 22px 40px rgba(0, 0, 0, 0.4),
        0 0 70px rgba(163, 193, 221, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.offer__grid:hover .offer-card:not(:hover) {
    opacity: 0.4;
    transform: scale(0.97);
    filter: blur(2px);
}

.offer-card:hover::after {
    transform: rotate(20deg) translateX(-80%);
}

.offer-card__ribbon {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    padding: 0.35rem 0.85rem;
    background: #a3c1dd;
    color: #0e2540;
    font-family: "Oswald", sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-radius: 3px;
    z-index: 2;
}

.offer-card__icon {
    display: block;
    width: 3rem;
    height: 3rem;
    color: #a3c1dd;
    margin-bottom: 1.5rem;
    position: relative;
    z-index: 1;
}

.offer-card__icon svg {
    width: 100%;
    height: 100%;
}

.offer-card__title {
    margin: 0 0 0.85rem;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: #f4f5ec;
    position: relative;
    z-index: 1;
}

.offer-card__text {
    margin: 0;
    color: rgba(234, 235, 222, 0.8);
    font-size: 0.98rem;
    line-height: 1.6;
    position: relative;
    z-index: 1;
}

.offer-card__text strong {
    color: #ffffff;
    font-weight: 600;
}

/* ============================================================
   Section 5 — Personas
============================================================ */
.personas {
    background: #e6ecf1;
    color: #1a201c;
}

.personas__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
    margin-top: 2rem;
}

.persona-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--glass-light);
    border: 1px solid var(--glass-light-border);
    border-radius: 26px;
    padding: 1.5rem 1.5rem 2rem;
    gap: 1rem;
    backdrop-filter: var(--blur-md);
    -webkit-backdrop-filter: var(--blur-md);
    box-shadow: var(--shadow-glass-light);
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.6s var(--ease-glass),
                background 0.4s ease,
                border-color 0.4s ease,
                box-shadow 0.4s ease;
}

.persona-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--reflection-top-light);
    pointer-events: none;
    border-radius: inherit;
    z-index: -1;
}

.persona-card {
    z-index: 1;
}

.persona-card:hover {
    z-index: 10;
    transform: translateY(-22px) scale(1.06);
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(15, 23, 42, 0.18);
    box-shadow:
        0 60px 110px rgba(15, 23, 42, 0.26),
        0 26px 48px rgba(15, 23, 42, 0.14),
        0 0 60px rgba(58, 106, 154, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 1);
}

.personas__grid:hover .persona-card:not(:hover) {
    opacity: 0.4;
    transform: scale(0.97);
    filter: blur(2px);
}

.persona-card__illo {
    height: 220px;
    background: linear-gradient(135deg, #e6ecf1 0%, #d5dfe8 100%);
    border-radius: 18px;
    margin-bottom: 0.5rem;
    overflow: hidden;
    position: relative;
    isolation: isolate;
}

.persona-card__illo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(15, 23, 42, 0.15) 100%);
    pointer-events: none;
    z-index: 1;
}

.persona-card__illo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(0.22, 0.68, 0, 1.2);
}

.persona-card:hover .persona-card__illo img {
    transform: scale(1.05);
}

.persona-card__tag {
    display: inline-block;
    padding: 0.35rem 0.9rem;
    background: rgba(58, 106, 154, 0.1);
    color: #3a6a9a;
    font-family: "Oswald", sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-radius: 999px;
    align-self: flex-start;
}

.persona-card__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: #1a201c;
}

.persona-card__text {
    margin: 0;
    color: #4a5548;
    font-size: 0.98rem;
    line-height: 1.6;
    flex: 1;
}

.persona-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 0.75rem;
    padding: 0.85rem 1.35rem;
    background: transparent;
    color: #3a6a9a;
    text-decoration: none;
    border: 1.5px solid #3a6a9a;
    border-radius: 14px;
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.35;
    align-self: flex-start;
    text-align: left;
    transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.persona-card__cta:hover {
    background: #3a6a9a;
    color: #ffffff;
    transform: translateX(3px);
}

.persona-card__cta svg {
    width: 1rem;
    height: 1rem;
    transition: transform 0.3s ease;
}

.persona-card__cta:hover svg {
    transform: translateX(2px);
}

/* ============================================================
   Section 6 — Scarcity
============================================================ */
.scarcity {
    background: #1a1e18;
    color: var(--color-cream);
}

.scarcity::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 20% 30%, rgba(107, 157, 201, 0.10) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(163, 193, 221, 0.05) 0%, transparent 50%);
    pointer-events: none;
}

.scarcity__inner {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: clamp(2rem, 6vw, 5rem);
    align-items: center;
    position: relative;
}

.scarcity .section-headline span {
    color: #6b9dc9;
}

.scarcity__meter {
    position: relative;
    width: 340px;
    height: 340px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

.scarcity__gauge {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 0 24px rgba(107, 157, 201, 0.25));
}

.scarcity__arc {
    transition: stroke-dashoffset 2.4s cubic-bezier(0.16, 1, 0.3, 1) 0.2s;
}

.scarcity__meter.is-visible .scarcity__arc {
    stroke-dashoffset: 175;
}

.scarcity__meter-label {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    pointer-events: none;
    gap: 0.25rem;
}

.scarcity__meter-number {
    font-family: "Oswald", sans-serif;
    font-size: 6rem;
    font-weight: 700;
    line-height: 0.95;
    color: #6b9dc9;
    letter-spacing: -0.02em;
}

.scarcity__meter-suffix {
    font-family: "Oswald", sans-serif;
    font-size: 0.82rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: rgba(234, 235, 222, 0.65);
    font-weight: 500;
}

.scarcity__body {
    max-width: 42rem;
    margin: 0 0 1.15rem;
    font-size: 1.05rem;
    line-height: 1.7;
    color: rgba(234, 235, 222, 0.82);
}

.scarcity__body strong {
    color: #6b9dc9;
    font-weight: 600;
}

.scarcity__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin-top: 1.25rem;
    padding: 1.05rem 1.85rem;
    background: #3a6a9a;
    color: #ffffff;
    text-decoration: none;
    border-radius: 999px;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.005em;
    box-shadow: 0 14px 34px rgba(58, 106, 154, 0.45);
    transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.scarcity__cta:hover {
    background: #4a7fb3;
    transform: translateY(-2px);
    box-shadow: 0 18px 42px rgba(58, 106, 154, 0.55);
}

.scarcity__cta svg {
    width: 1.05rem;
    height: 1.05rem;
    transition: transform 0.3s ease;
}

.scarcity__cta:hover svg {
    transform: translateX(3px);
}

/* ============================================================
   Section 7 — Final CTA (Godfather)
============================================================ */
.final {
    background: #f4f5ec;
    color: #1a201c;
    text-align: center;
    padding: clamp(6rem, 12vh, 10rem) 0;
}

.final__inner {
    max-width: 48rem;
    text-align: center;
}

.final .eyebrow {
    margin-left: auto;
    margin-right: auto;
}

.final .section-headline {
    max-width: none;
    margin-left: auto;
    margin-right: auto;
}

.final__coffee {
    width: 96px;
    height: 96px;
    color: #3a6a9a;
    margin: 0 auto 1.75rem;
}

.final__coffee svg {
    width: 100%;
    height: 100%;
}

.final__coffee .steam {
    transform-origin: bottom;
    animation: steamRise 3.2s ease-in-out infinite;
    opacity: 0.5;
}
.final__coffee .steam--2 { animation-delay: 0.7s; }
.final__coffee .steam--3 { animation-delay: 1.4s; }

@keyframes steamRise {
    0%, 100% { opacity: 0.25; transform: translateY(2px); }
    50% { opacity: 0.85; transform: translateY(-3px); }
}

.final__lede {
    margin: 0 auto 2.75rem;
    max-width: 42rem;
    font-size: clamp(1.1rem, 1.35vw, 1.25rem);
    line-height: 1.65;
    color: #2f3a48;
}

.final__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    padding: 1.35rem 2.4rem;
    background: #c15238;
    color: #ffffff;
    text-decoration: none;
    border-radius: 999px;
    font-size: clamp(1rem, 1.2vw, 1.1rem);
    font-weight: 700;
    letter-spacing: 0.005em;
    box-shadow: 0 16px 40px rgba(193, 82, 56, 0.32),
                0 4px 10px rgba(0, 0, 0, 0.06);
    transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.final__cta:hover {
    background: #d15c40;
    transform: translateY(-3px);
    box-shadow: 0 22px 50px rgba(193, 82, 56, 0.44),
                0 6px 14px rgba(0, 0, 0, 0.08);
}

.final__cta svg {
    width: 1.15rem;
    height: 1.15rem;
    transition: transform 0.3s ease;
}

.final__cta:hover svg {
    transform: translateX(3px);
}

.final__note {
    margin: 1.15rem auto 0;
    font-size: 0.9rem;
    color: #6a7168;
    line-height: 1.5;
}

/* ============================================================
   Staggered reveal delays for grids
============================================================ */
.pain__grid .pain-card:nth-child(1) { transition-delay: 0s; }
.pain__grid .pain-card:nth-child(2) { transition-delay: 0.13s; }
.pain__grid .pain-card:nth-child(3) { transition-delay: 0.26s; }

.solution__grid .solution-card:nth-child(1) { transition-delay: 0s; }
.solution__grid .solution-card:nth-child(2) { transition-delay: 0.15s; }
.solution__grid .solution-card:nth-child(3) { transition-delay: 0.30s; }

.offer__grid .offer-card:nth-child(1) { transition-delay: 0s; }
.offer__grid .offer-card:nth-child(2) { transition-delay: 0.15s; }
.offer__grid .offer-card:nth-child(3) { transition-delay: 0.30s; }

.personas__grid .persona-card:nth-child(1) { transition-delay: 0s; }
.personas__grid .persona-card:nth-child(2) { transition-delay: 0.15s; }
.personas__grid .persona-card:nth-child(3) { transition-delay: 0.30s; }

/* ── Unified card reveal — slide up from below, land in place (no blur) ── */
.pain-card.reveal,
.solution-card.reveal,
.offer-card.reveal,
.persona-card.reveal {
    opacity: 0;
    transform: translateY(70px);
    filter: none;
    transition:
        opacity 0.85s cubic-bezier(0.22, 0.68, 0, 1.15),
        transform 0.85s cubic-bezier(0.22, 0.68, 0, 1.15),
        background 0.4s ease,
        border-color 0.4s ease,
        box-shadow 0.4s ease;
}

.pain-card.reveal.is-visible,
.solution-card.reveal.is-visible,
.offer-card.reveal.is-visible,
.persona-card.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================================
   Section responsiveness
============================================================ */
@media (max-width: 960px) {
    .pain__grid,
    .solution__grid,
    .offer__grid,
    .personas__grid {
        grid-template-columns: 1fr;
    }
    .scarcity__inner {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .scarcity__body {
        margin-left: auto;
        margin-right: auto;
    }
    .offer__badge {
        width: 100px;
        height: 100px;
        top: 1.5rem;
        right: 1rem;
    }
}

@media (max-width: 600px) {
    .section {
        padding: clamp(4rem, 8vh, 6rem) 0;
    }
    .scarcity__meter {
        width: 260px;
        height: 260px;
    }
    .scarcity__meter-number {
        font-size: 4.5rem;
    }
    .pain__truth {
        padding: 2rem 1.5rem;
    }
}

/* ============================================================
   Premium visual layer — chapter numbers, ornaments, effects
============================================================ */

/* ── Global film-grain noise overlay ── */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 200;
    opacity: 0.045;
    mix-blend-mode: overlay;
}

/* ── Chapter numbers (roman) as section watermarks ── */
.section__chapter {
    position: absolute;
    top: clamp(1.5rem, 4vh, 3rem);
    right: clamp(1.5rem, 5vw, 4rem);
    font-family: "Oswald", serif;
    font-size: clamp(4rem, 8vw, 7.5rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.02em;
    color: rgba(163, 193, 221, 0.09);
    pointer-events: none;
    z-index: 1;
    user-select: none;
}

.section__chapter--light {
    color: rgba(58, 106, 154, 0.09);
}

@media (max-width: 720px) {
    .section__chapter {
        top: 1rem;
        right: 1rem;
    }
}

/* ============================================================
   Section 2 — Textmarker highlight behind "Probleme"
============================================================ */
.section-headline .highlight-scribble {
    position: relative;
    display: inline-block;
    color: #a3c1dd !important;
    width: auto;
}

.section-headline .highlight-scribble::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.05em;
    height: 0.14em;
    background: linear-gradient(
        90deg,
        #a3c1dd 0%,
        #a3c1dd 35%,
        rgba(255, 255, 255, 0.95) 50%,
        #a3c1dd 65%,
        #a3c1dd 100%
    );
    background-size: 220% 100%;
    background-position: 100% 0;
    border-radius: 3px;
    transform: scaleX(0) skewX(-6deg);
    transform-origin: left center;
    transition: transform 1s cubic-bezier(0.65, 0, 0.35, 1) 0.5s;
    pointer-events: none;
    box-shadow: 0 0 8px rgba(163, 193, 221, 0.35);
}

.section-headline.reveal.is-visible .highlight-scribble::before {
    animation: line-shimmer 3.2s linear infinite 1.6s;
}

@keyframes line-shimmer {
    0%   { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.section-headline.reveal.is-visible .highlight-scribble::before {
    transform: scaleX(1) skewX(-6deg);
}

/* ============================================================
   Section 3 — "20" watermark + ornamental divider
============================================================ */
.solution__watermark {
    position: absolute;
    top: 4.5rem;
    left: clamp(-2rem, -2vw, 0rem);
    font-family: "Oswald", serif;
    font-size: clamp(10rem, 24vw, 22rem);
    font-weight: 700;
    line-height: 0.85;
    letter-spacing: -0.05em;
    color: transparent;
    -webkit-text-stroke: 2px rgba(58, 106, 154, 0.13);
    background: linear-gradient(180deg, rgba(58, 106, 154, 0.08) 0%, rgba(58, 106, 154, 0) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    pointer-events: none;
    z-index: 0;
    user-select: none;
}

@media (max-width: 900px) {
    .solution__watermark {
        top: 3rem;
        font-size: 8rem;
        opacity: 0.6;
    }
}

.section-divider {
    display: flex;
    align-items: center;
    gap: 1rem;
    max-width: 24rem;
    margin: 3rem 0 2rem;
}

.section-divider__line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(58, 106, 154, 0.35), transparent);
}

.section-divider__diamond {
    width: 10px;
    height: 10px;
    background: #3a6a9a;
    transform: rotate(45deg);
    flex-shrink: 0;
    box-shadow:
        0 0 0 4px rgba(58, 106, 154, 0.12),
        0 0 0 8px rgba(58, 106, 154, 0.05);
}

/* Animated check drawing */
.solution-card__check svg path {
    stroke-dasharray: 40;
    stroke-dashoffset: 40;
    transition: stroke-dashoffset 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.4s;
}

.solution-card.reveal.is-visible .solution-card__check svg path {
    stroke-dashoffset: 0;
}

/* ============================================================
   Section 4 — Confetti sparks + Wert-Stack
============================================================ */
.offer__sparks {
    position: absolute;
    top: clamp(2rem, 6vh, 4.5rem);
    right: clamp(0.5rem, 3vw, 2.5rem);
    width: 340px;
    height: 340px;
    pointer-events: none;
    z-index: 2;
}

.offer__spark {
    position: absolute;
    width: 7px;
    height: 7px;
    background: #a3c1dd;
    border-radius: 50%;
    opacity: 0;
    animation: spark-emit 2.2s ease-in-out infinite;
    box-shadow: 0 0 10px rgba(163, 193, 221, 0.75);
}

.offer__spark:nth-child(1)  { top: 20%; left: 10%;  animation-delay: 0.0s; }
.offer__spark:nth-child(2)  { top: 40%; left: 85%;  animation-delay: 0.15s; width: 5px; height: 5px; }
.offer__spark:nth-child(3)  { top: 75%; left: 15%;  animation-delay: 0.3s; }
.offer__spark:nth-child(4)  { top: 15%; left: 60%;  animation-delay: 0.45s; width: 6px; height: 6px; }
.offer__spark:nth-child(5)  { top: 60%; left: 92%;  animation-delay: 0.6s; }
.offer__spark:nth-child(6)  { top: 85%; left: 50%;  animation-delay: 0.75s; width: 5px; height: 5px; }
.offer__spark:nth-child(7)  { top: 8%;  left: 30%;  animation-delay: 0.9s; width: 4px; height: 4px; }
.offer__spark:nth-child(8)  { top: 50%; left: 5%;   animation-delay: 1.05s; width: 6px; height: 6px; }
.offer__spark:nth-child(9)  { top: 30%; left: 45%;  animation-delay: 1.2s; width: 5px; height: 5px; }
.offer__spark:nth-child(10) { top: 65%; left: 30%;  animation-delay: 1.35s; width: 4px; height: 4px; background: #ffffff; }
.offer__spark:nth-child(11) { top: 12%; left: 80%;  animation-delay: 1.5s; width: 6px; height: 6px; }
.offer__spark:nth-child(12) { top: 90%; left: 78%;  animation-delay: 1.65s; }
.offer__spark:nth-child(13) { top: 25%; left: 25%;  animation-delay: 1.8s; width: 5px; height: 5px; background: #ffffff; }
.offer__spark:nth-child(14) { top: 55%; left: 62%;  animation-delay: 0.05s; width: 4px; height: 4px; }
.offer__spark:nth-child(15) { top: 42%; left: 22%;  animation-delay: 0.2s; width: 5px; height: 5px; }
.offer__spark:nth-child(16) { top: 70%; left: 68%;  animation-delay: 0.35s; }
.offer__spark:nth-child(17) { top: 5%;  left: 48%;  animation-delay: 0.5s; width: 4px; height: 4px; }
.offer__spark:nth-child(18) { top: 82%; left: 8%;   animation-delay: 0.65s; width: 5px; height: 5px; background: #ffffff; }

@keyframes spark-emit {
    0%   { opacity: 0; transform: scale(0) translateY(0); }
    20%  { opacity: 1; transform: scale(1.4) translateY(-4px); }
    50%  { opacity: 0.9; transform: scale(1) translateY(-10px); }
    100% { opacity: 0; transform: scale(0.5) translateY(-24px); }
}

@media (max-width: 720px) {
    .offer__sparks {
        width: 220px;
        height: 220px;
    }
}

.offer__stack {
    margin: 4rem auto 0;
    max-width: 44rem;
    padding: 2.25rem 2rem;
    background: var(--glass-white);
    border: 1px solid rgba(163, 193, 221, 0.28);
    border-radius: 22px;
    backdrop-filter: var(--blur-lg);
    -webkit-backdrop-filter: var(--blur-lg);
    box-shadow: var(--shadow-glass);
    position: relative;
    isolation: isolate;
}

.offer__stack::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--reflection-top);
    border-radius: inherit;
    pointer-events: none;
    z-index: -1;
}

.offer__stack-title {
    margin: 0 0 1.25rem;
    font-family: "Oswald", sans-serif;
    font-size: 0.9rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #a3c1dd;
    font-weight: 500;
    text-align: center;
}

.offer__stack-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.offer__stack-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.9rem 0;
    border-bottom: 1px dashed rgba(163, 193, 221, 0.22);
    font-size: 1rem;
    color: rgba(234, 235, 222, 0.9);
}

.offer__stack-emoji {
    display: inline-block;
    margin-right: 0.75rem;
    font-size: 1.05rem;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
}

.offer__stack-value {
    font-family: "Oswald", sans-serif;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #f4f5ec;
}

.offer__stack-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.2rem 0 0.35rem;
    margin-top: 0.35rem;
    border-top: 2px solid rgba(163, 193, 221, 0.4);
    font-family: "Oswald", sans-serif;
    font-size: 1.05rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #f4f5ec;
    font-weight: 500;
}

.offer__stack-total strong {
    font-size: 1.6rem;
    background: linear-gradient(90deg, #a3c1dd, #ffffff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 700;
}

.offer__stack-footnote {
    margin: 1.5rem 0 0;
    font-size: 0.8rem;
    text-align: center;
    color: rgba(234, 235, 222, 0.5);
    letter-spacing: 0.02em;
}

/* ============================================================
   Section 5 — Avatar-Cluster + Card-Nummerierung
============================================================ */
.personas__social {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin: 0 0 3rem;
}

.avatar-cluster {
    display: flex;
    align-items: center;
    padding: 4px;
}

.avatar-cluster__item {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 2px solid #ffffff;
    background: linear-gradient(135deg, var(--from, #6b9dc9), var(--to, #3a6a9a));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    line-height: 1;
    margin-left: -10px;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.15);
    flex-shrink: 0;
    transition: transform 0.3s var(--ease-liquid);
}

.avatar-cluster__item:first-child { margin-left: 0; }

.avatar-cluster:hover .avatar-cluster__item {
    transform: translateX(2px);
}

.avatar-cluster__item--more {
    background: rgba(58, 106, 154, 0.12);
    color: #3a6a9a;
    font-family: "Oswald", sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
}

.personas__social-text {
    margin: 0;
    font-size: 0.95rem;
    color: #4a5548;
    line-height: 1.5;
}

.personas__social-text strong {
    color: #1a201c;
    font-weight: 600;
}

.persona-card__num {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    z-index: 3;
    font-family: "Oswald", sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: #1a201c;
    letter-spacing: -0.01em;
    line-height: 1;
    background: rgba(255, 255, 255, 0.9);
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.1);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.persona-card__num span {
    font-size: 0.75rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.5);
    letter-spacing: 0.05em;
}

/* ============================================================
   Section 6 — 80-Slot-Grid + Live-Ticker + Timestamp
============================================================ */
.scarcity__slots {
    margin: 4rem auto 0;
    max-width: 60rem;
    padding: 2rem 2rem 1.5rem;
    background: var(--glass-white);
    border: 1px solid var(--glass-border);
    border-radius: 20px;
    backdrop-filter: var(--blur-lg);
    -webkit-backdrop-filter: var(--blur-lg);
    box-shadow: var(--shadow-glass);
    position: relative;
    z-index: 2;
    isolation: isolate;
}

.scarcity__slots::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--reflection-top);
    border-radius: inherit;
    pointer-events: none;
    z-index: -1;
}

.scarcity__slots-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.scarcity__slots-title {
    margin: 0 0 0.35rem;
    font-family: "Oswald", sans-serif;
    font-size: 0.85rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #f4f5ec;
    font-weight: 500;
}

.scarcity__slots-time {
    margin: 0;
    font-size: 0.8rem;
    color: rgba(234, 235, 222, 0.55);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.scarcity__pulse {
    display: inline-block;
    width: 8px;
    height: 8px;
    background: #4ade80;
    border-radius: 50%;
    animation: pulse-dot 2s ease-in-out infinite;
    box-shadow: 0 0 8px rgba(74, 222, 128, 0.6);
}

@keyframes pulse-dot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.4; transform: scale(0.75); }
}

.scarcity__slots-summary {
    text-align: right;
}

.scarcity__slots-count {
    display: block;
    font-family: "Oswald", sans-serif;
    font-size: 1.75rem;
    line-height: 1;
    color: rgba(234, 235, 222, 0.6);
    letter-spacing: -0.01em;
}

.scarcity__slots-count strong {
    color: #6b9dc9;
    font-weight: 700;
}

.scarcity__slots-label {
    display: block;
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(234, 235, 222, 0.45);
    margin-top: 0.2rem;
}

.scarcity__slots-grid {
    display: grid;
    grid-template-columns: repeat(20, 1fr);
    gap: 6px;
    padding: 0.75rem 0;
}

@media (max-width: 900px) {
    .scarcity__slots-grid {
        grid-template-columns: repeat(16, 1fr);
    }
}

@media (max-width: 600px) {
    .scarcity__slots-grid {
        grid-template-columns: repeat(10, 1fr);
    }
}

.slot-dot {
    aspect-ratio: 1;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.05);
    transition: background 0.3s ease, transform 0.3s ease;
}

.slot-dot.is-taken {
    background: #6b9dc9;
    border-color: rgba(107, 157, 201, 0.9);
    box-shadow: 0 0 8px rgba(107, 157, 201, 0.4);
    animation: slot-fill 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes slot-fill {
    from { transform: scale(0.4); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.scarcity__slots-legend {
    display: flex;
    justify-content: center;
    gap: 1.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.scarcity__slots-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    color: rgba(234, 235, 222, 0.65);
    letter-spacing: 0.06em;
}

.dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    display: inline-block;
}

.dot--taken {
    background: #6b9dc9;
    box-shadow: 0 0 6px rgba(107, 157, 201, 0.45);
}

.dot--free {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.scarcity__ticker-wrap {
    display: flex;
    justify-content: center;
    margin: 2.5rem auto 0;
    padding: 0 clamp(1.5rem, 4vw, 3rem);
    position: relative;
    z-index: 2;
}

.scarcity__ticker {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 1.35rem 0.55rem 0.5rem;
    background: rgba(107, 157, 201, 0.15);
    border: 1px solid rgba(107, 157, 201, 0.4);
    border-radius: 999px;
    font-size: 0.9rem;
    color: rgba(234, 235, 222, 0.9);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow:
        0 8px 24px rgba(107, 157, 201, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.scarcity__ticker-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: linear-gradient(135deg, #6b9dc9, #3a6a9a);
    font-size: 1.15rem;
    line-height: 1;
    border: 2px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    flex-shrink: 0;
    transition: transform 0.4s var(--ease-liquid);
}

.scarcity__ticker-avatar.is-swapping {
    transform: scale(0.85) rotate(-8deg);
}

.scarcity__ticker-dot {
    width: 8px;
    height: 8px;
    background: #6b9dc9;
    border-radius: 50%;
    animation: pulse-dot 1.8s ease-in-out infinite;
    box-shadow: 0 0 10px rgba(107, 157, 201, 0.75);
    flex-shrink: 0;
}

.scarcity__ticker-label {
    font-family: "Oswald", sans-serif;
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #6b9dc9;
    font-weight: 600;
}

.scarcity__ticker-msg {
    color: #f4f5ec;
    animation: ticker-fade 0.6s ease;
}

@keyframes ticker-fade {
    from { opacity: 0; transform: translateX(4px); }
    to { opacity: 1; transform: translateX(0); }
}

/* ============================================================
   Section 7 — Signature + Trust Badges + Location
============================================================ */
.final__signature {
    margin: -0.5rem auto 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: max-content;
}

.final__signature img {
    height: clamp(5rem, 10vw, 7.5rem);
    width: auto;
    display: block;
}

.final__trust {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin: 3rem auto 2rem;
    max-width: 44rem;
    padding: 1.75rem 1.5rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

@media (max-width: 720px) {
    .final__trust {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.75rem 1rem;
    }
}

.trust-item {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
}

.trust-item__value {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #3a6a9a;
    font-family: "Oswald", sans-serif;
}

.trust-item__value svg {
    width: 1.75rem;
    height: 1.75rem;
}

.trust-item__stars {
    color: #f5a623;
    font-size: 0.9rem;
    letter-spacing: 0.02em;
    line-height: 1;
}

.trust-item__num {
    font-size: 1.35rem;
    font-weight: 700;
    color: #1a201c;
    letter-spacing: -0.01em;
    line-height: 1;
}

.trust-item__label {
    font-size: 0.78rem;
    color: #6a7168;
    letter-spacing: 0.01em;
    line-height: 1.35;
}

.final__location {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    margin: 0 auto;
    font-size: 0.9rem;
    color: #4a5548;
    letter-spacing: 0.005em;
}

.final__location svg {
    width: 1.1rem;
    height: 1.1rem;
    color: #3a6a9a;
    flex-shrink: 0;
}

/* ============================================================
   Site Footer — Premium Navy
============================================================ */
.site-footer {
    background: #0e2540;
    color: #a3c1dd;
    padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 2.5rem) 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    font-size: 0.9rem;
    line-height: 1.65;
}

.site-footer__inner {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1.2fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.site-footer__brand {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.site-footer__logo {
    display: block;
    height: 96px;
    width: auto;
    max-width: 320px;
    object-fit: contain;
    align-self: flex-start;
    filter: brightness(0) invert(1);
    opacity: 0.95;
}

.site-footer__tagline {
    margin: 0;
    max-width: 22rem;
    color: #a3c1dd;
    font-size: 0.9rem;
    line-height: 1.6;
    font-style: italic;
}

.site-footer__label {
    margin: 0 0 1rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #6b9dc9;
}

.site-footer__addr {
    margin: 0;
    color: #a3c1dd;
    font-style: normal;
    line-height: 1.75;
}

.site-footer__addr strong {
    display: block;
    color: #f4f5ec;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.site-footer__contacts {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.site-footer__contacts li {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 0.75rem;
    align-items: baseline;
}

.site-footer__contacts li > span:first-child {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(163, 193, 221, 0.55);
}

.site-footer__contacts a,
.site-footer__contacts li > span:last-child {
    color: #f4f5ec;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.25s ease;
}

.site-footer__contacts a:hover {
    color: #6b9dc9;
}

.site-footer__meta {
    max-width: 1180px;
    margin: clamp(2.5rem, 5vw, 4rem) auto 0;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    font-size: 0.78rem;
    color: rgba(163, 193, 221, 0.6);
}

.site-footer__meta p { margin: 0; }

.site-footer__legal {
    display: flex;
    gap: 1.5rem;
}

.site-footer__legal a {
    color: rgba(163, 193, 221, 0.7);
    text-decoration: none;
    transition: color 0.25s ease;
}

.site-footer__legal a:hover {
    color: #6b9dc9;
}

.site-footer__credit {
    max-width: 1180px;
    margin: 2rem auto 0;
    padding-top: 1.5rem;
    text-align: center;
    font-size: 0.78rem;
    color: rgba(163, 193, 221, 0.55);
    letter-spacing: 0.04em;
}

.site-footer__credit span {
    color: #6b9dc9;
    font-size: 0.95em;
    margin: 0 0.15rem;
}

@media (max-width: 800px) {
    .site-footer__inner {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }
    .site-footer__meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    .site-footer__contacts li {
        grid-template-columns: 4.5rem 1fr;
    }
}
