  :root {
    --parchment: #EDE0D0;
    --white: #FFFFFF;
    --ox: #6B1F2A;
    --ox-deep: #4A1219;
    --espresso: #1A1714;
    --stone: #6B6460;
    --stone-light: #A89E99;
    /* Spacing tokens */
    --pad-desktop: 64px;
    --pad-tablet:  40px;
    --pad-mobile:  24px;
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body {
    background: var(--parchment);
    color: var(--espresso);
    font-family: 'DM Sans', sans-serif;
    font-size: 17px; line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }
  body::before {
    content: ''; position: fixed; inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    pointer-events: none; z-index: 999; opacity: 0.45;
  }

  /* ─────────────────────────────
     TEXT ANIMATION SYSTEM
     Each animatable unit is a .line-wrap > .line-inner
     .line-wrap clips overflow; .line-inner slides up
     JS adds .lines-visible to parent to fire cascade
  ───────────────────────────── */
  .line-wrap {
    display: block;
    overflow: hidden;
    /* small vertical breathing room so descenders don't clip */
    padding-bottom: 0.08em;
    margin-bottom: -0.08em;
  }
  .line-inner {
    display: block;
    transform: translateY(105%);
    opacity: 0;
    transition: transform 0.72s cubic-bezier(0.16, 1, 0.3, 1),
                opacity   0.5s  ease;
  }

  /* When parent gets .lines-visible, cascade each child */
  .lines-visible .line-inner { transform: translateY(0); opacity: 1; }

  /* Staggered delays — up to 8 lines */
  .lines-visible .l1 { transition-delay: 0s; }
  .lines-visible .l2 { transition-delay: 0.1s; }
  .lines-visible .l3 { transition-delay: 0.2s; }
  .lines-visible .l4 { transition-delay: 0.3s; }
  .lines-visible .l5 { transition-delay: 0.4s; }
  .lines-visible .l6 { transition-delay: 0.5s; }
  .lines-visible .l7 { transition-delay: 0.6s; }
  .lines-visible .l8 { transition-delay: 0.7s; }

  /* Fade-only elements (labels, sub, cta, attr) */
  .fade-up {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  .lines-visible .fade-up { opacity: 1; transform: translateY(0); }
  .lines-visible .f1 { transition-delay: 0.05s; }
  .lines-visible .f2 { transition-delay: 0.55s; }
  .lines-visible .f3 { transition-delay: 0.75s; }
  .lines-visible .f4 { transition-delay: 0.9s; }
  .lines-visible .f5 { transition-delay: 1.05s; }
  .lines-visible .f6 { transition-delay: 1.2s; }
  .lines-visible .f7 { transition-delay: 1.35s; }
  .lines-visible .f8 { transition-delay: 1.5s; }

  /* Hero fires on load, not scroll */
  .hero-text.lines-visible .line-inner { transform: translateY(0); opacity: 1; }

  /* ─────────────────────────────
     HERO
  ───────────────────────────── */
  .hero-outer {
    background: var(--parchment); min-height: 100svh;
    display: flex; align-items: center;
    position: relative; overflow: hidden;
  }
  .hero-svg-wrap {
    position: absolute; right: -40px; top: 50%;
    transform: translateY(-50%);
    width: 52vw; max-width: 780px; height: 90vh;
    opacity: 0; animation: fadeIn 0.6s ease forwards 0.5s;
    pointer-events: none;
  }
  .hero-svg-wrap svg { width: 100%; height: 100%; }
  .hero-inner {
    position: relative; z-index: 2;
    max-width: 1300px; margin: 0 auto;
    padding: 0 var(--pad-desktop); width: 100%;
  }
  .hero-text {
    max-width: 640px;
    padding: clamp(100px, 12vh, 138px) 0 clamp(44px, 7vh, 82px);
  }
  .hero-tag {
    font-size: 11px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--ox); margin-bottom: 28px;
    display: flex; align-items: center; gap: 12px;
  }
  .hero-tag::before { content: ''; width: 28px; height: 1px; background: var(--ox); flex-shrink: 0; }
  .hero-outer h1 {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(44px, 5.2vw, 72px);
    font-weight: 400; line-height: 1.06; letter-spacing: -0.02em;
    color: var(--espresso);
    margin-bottom: 20px;
  }
  .hero-outer h1 em { font-style: italic; color: var(--ox); font-weight: 300; }
  .hero-sub {
    font-size: 16px; color: var(--stone);
    max-width: 560px; line-height: 1.68;
    margin-bottom: 30px;
  }

  /* ─────────────────────────────
     BUTTON
  ───────────────────────────── */
  .btn {
    display: inline-block; font-size: 11px; font-weight: 500;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--white); background: var(--ox);
    padding: 14px 36px; text-decoration: none;
    transition: background 0.2s, transform 0.15s;
  }
  .btn:hover { background: var(--ox-deep); transform: translateY(-1px); }

  /* ─────────────────────────────
     LOGO STRIP
  ───────────────────────────── */
  .logo-strip {
    border-top: 1px solid rgba(107,31,42,0.14);
    border-bottom: 1px solid rgba(107,31,42,0.14);
    padding: 32px var(--pad-desktop);
    background: var(--white);
  }
  .logo-strip-inner {
    max-width: 1100px; margin: 0 auto;
    display: flex; align-items: center; flex-wrap: wrap; gap: 20px;
  }
  .logo-strip-label {
    font-size: 10px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase;
    color: rgba(107,31,42,0.72); white-space: nowrap;
    margin-right: 24px;
  }
  .logo-items { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
  .logo-item {
    font-size: 11px; font-weight: 500; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--stone); opacity: 0.6;
  }
  .logo-div { width: 1px; height: 11px; background: rgba(107,31,42,0.22); flex-shrink: 0; }

  /* ─────────────────────────────
     SECTIONS
  ───────────────────────────── */
  .section-wrap { position: relative; overflow: hidden; }
  .section-inner {
    max-width: 1100px; margin: 0 auto;
    padding: 110px var(--pad-desktop);
    position: relative; z-index: 2;
  }
  .section-white { background: var(--white); }
  .section-parchment { background: var(--parchment); }
  .section-geo { position: absolute; pointer-events: none; z-index: 1; }
  .section-cred .section-inner { padding-top: 88px; }
  @media (min-width: 601px) {
    .section-cred .testimonial-quote {
      max-width: min(640px, calc(100% - 180px));
    }
  }

  .label {
    font-size: 10px; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--ox); margin-bottom: 24px;
    display: flex; align-items: center; gap: 12px;
  }
  .label::before { content: ''; width: 22px; height: 1px; background: var(--ox); flex-shrink: 0; }

  /* ─────────────────────────────
     TESTIMONIAL
  ───────────────────────────── */
  .testimonial-quote {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(24px, 2.8vw, 38px);
    font-weight: 300; font-style: italic;
    line-height: 1.4; color: var(--espresso); max-width: 740px;
    text-wrap: pretty;
    margin-bottom: 32px;
  }
  .testimonial-secondary {
    margin-top: 44px;
    padding-top: 44px;
  }
  .t-open {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 80px; line-height: 0.5;
    color: var(--ox); margin-bottom: 20px;
    font-style: normal; font-weight: 300;
  }
  .t-attr strong {
    display: block; font-size: 13px; font-weight: 500;
    color: var(--espresso); letter-spacing: 0.04em;
    margin-bottom: 2px;
  }
  .t-attr span { font-size: 12px; color: var(--stone); }

  /* ─────────────────────────────
     PROBLEM
  ───────────────────────────── */
  .problem-text h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(34px, 4.2vw, 56px);
    font-weight: 400; line-height: 1.15;
    max-width: 580px; margin-bottom: 24px; letter-spacing: -0.01em;
  }
  .problem-text p {
    font-size: 16px; color: var(--stone);
    max-width: 460px; line-height: 1.78;
  }

  /* ─────────────────────────────
     SCOPE
  ───────────────────────────── */
  .includes-text h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(30px, 3.7vw, 48px);
    font-weight: 400; line-height: 1.18;
    max-width: 560px; margin-bottom: 18px; letter-spacing: -0.01em;
  }
  .includes-text p {
    font-size: 16px; color: var(--stone);
    max-width: 520px; line-height: 1.7;
    margin-bottom: 22px;
  }
  .includes-list {
    list-style: none;
    max-width: 620px;
    display: grid;
    gap: 0;
  }
  .includes-list li {
    position: relative;
    padding: 14px 0 14px 28px;
    color: var(--stone);
    font-size: 16px;
    line-height: 1.6;
    border-top: 1px solid rgba(107,31,42,0.14);
  }
  .includes-list li:last-child { border-bottom: 1px solid rgba(107,31,42,0.14); }
  .includes-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 14px;
    height: 1px;
    background: rgba(107,31,42,0.65);
    transform: translateY(-50%);
  }


  /* ─────────────────────────────
     ABOUT
  ───────────────────────────── */
  .about-grid {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 80px; align-items: start;
  }
  .about-left h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(38px, 4.5vw, 60px);
    font-weight: 400; line-height: 1.08; margin-bottom: 0; letter-spacing: -0.01em;
  }
  .about-creds {
    margin-top: 36px; padding-top: 28px;
    border-top: 1px solid rgba(107,31,42,0.16);
    display: flex; flex-direction: column; gap: 10px;
  }
  .cred-item {
    font-size: 11px; letter-spacing: 0.06em; color: var(--stone);
    display: flex; align-items: center; gap: 12px; text-transform: uppercase;
  }
  .cred-item::before {
    content: '';
    width: 18px;
    height: 1px;
    background: rgba(107,31,42,0.5);
    flex-shrink: 0;
  }
  .about-right p {
    font-size: 16px; color: var(--stone); line-height: 1.82; margin-bottom: 20px;
  }
  .about-right p:last-of-type { margin-bottom: 0; }
  .about-right p strong { color: var(--espresso); font-weight: 500; }

  /* ─────────────────────────────
     CLOSE
  ───────────────────────────── */
  .close-wrap {
    text-align: center; padding: 130px var(--pad-desktop);
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: var(--white);
    position: relative; overflow: hidden;
  }
  .close-wrap h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(34px, 4.5vw, 60px);
    font-weight: 400; line-height: 1.15; margin-bottom: 44px; letter-spacing: -0.01em;
    position: relative; z-index: 2;
  }
  .close-wrap .btn { position: relative; z-index: 2; }

  /* ─────────────────────────────
     FOOTER
  ───────────────────────────── */
  footer {
    padding: 28px var(--pad-desktop);
    border-top: 1px solid rgba(107,31,42,0.14);
    background: var(--parchment);
    display: flex; justify-content: space-between; align-items: center;
  }
  .footer-copy { font-size: 11px; letter-spacing: 0.04em; color: var(--stone-light); }

  /* ─────────────────────────────
     SVG DRAW SYSTEM
  ───────────────────────────── */
  .gf { transform-box: fill-box; transform-origin: center; }
  @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

  /* ─────────────────────────────
     TABLET  ≤ 960px
  ───────────────────────────── */
  @media (max-width: 960px) {
    :root {
      --pad-desktop: var(--pad-tablet);
    }
    /* Hero: shrink SVG, let text breathe */
    .hero-svg-wrap {
      width: 55vw; right: -60px; opacity: 0.6;
      animation: fadeIn 0.6s ease forwards 0.5s;
    }
    .hero-text { max-width: 100%; padding: 140px 0 100px; }
    .hero-outer h1 { font-size: clamp(42px, 5.8vw, 62px); }

    /* About: stack */
    .about-grid { grid-template-columns: 1fr; gap: 48px; }
    .about-left h2 { font-size: clamp(38px, 6vw, 52px); }

    /* Sections */
    .section-inner { padding: 90px var(--pad-tablet); }
    .close-wrap { padding: 100px var(--pad-tablet); }
    .section-cred .section-inner { padding-top: 72px; }

    /* Logo strip */
    .logo-strip { padding: 28px var(--pad-tablet); }
    .logo-strip-label { display: none; } /* too cramped at tablet */
  }

  /* ─────────────────────────────
     MOBILE  ≤ 600px
  ───────────────────────────── */
  @media (max-width: 600px) {
    :root { --pad-desktop: var(--pad-mobile); }

    /* Hero — full width, no SVG overlay */
    .hero-svg-wrap { display: none; }
    .hero-inner { padding: 0 var(--pad-mobile); }
    .hero-text { padding: 110px 0 78px; }
    .hero-outer h1 { font-size: clamp(40px, 10vw, 54px); line-height: 1.08; }
    .hero-sub { font-size: 15px; max-width: 100%; }

    /* Logo strip — wrap nicely */
    .logo-strip { padding: 24px var(--pad-mobile); }
    .logo-strip-inner { gap: 12px; }
    .logo-items { gap: 20px; }
    .logo-item { font-size: 10px; }
    .logo-div { display: none; }

    /* Sections */
    .section-inner { padding: 72px var(--pad-mobile); }
    .section-geo { display: none; } /* too cluttered on small screens */
    .section-cred .section-inner { padding-top: 56px; }

    /* Testimonial */
    .testimonial-quote { font-size: clamp(22px, 6vw, 30px); }
    .t-open { font-size: 60px; }

    /* Problem */
    .problem-text h2 { font-size: clamp(30px, 8vw, 42px); }
    .includes-text h2 { font-size: clamp(28px, 7vw, 40px); }
    .includes-list li { font-size: 15px; padding: 12px 0 12px 24px; }

    /* About — single column */
    .about-grid { grid-template-columns: 1fr; gap: 40px; }
    .about-left h2 { font-size: clamp(34px, 9vw, 46px); }
    .about-creds { gap: 8px; }
    .cred-item { font-size: 10px; }
    .about-right p { font-size: 15px; }

    /* Close */
    .close-wrap { padding: 80px var(--pad-mobile); }
    .close-wrap h2 { font-size: clamp(30px, 8vw, 44px); }

    /* Footer */
    footer {
      padding: 20px var(--pad-mobile);
      flex-direction: column; gap: 6px; text-align: center;
    }

    /* Button — full width on mobile */
    .btn { padding: 16px 28px; font-size: 11px; }

  }

  /* ─────────────────────────────
     REDUCED MOTION
  ───────────────────────────── */
  @media (prefers-reduced-motion: reduce) {
    .line-inner { transform: none; opacity: 1; transition: none; }
    .fade-up { opacity: 1; transform: none; transition: none; }
  }
