  :root{
    --paper:#fbfaf5;
    --card:#ffffff;
    --ink:#171717;
    --ink-muted:#5c5c5c;
    --ink-faint:#9a9a9a;
    --pink:#ff8fb8;
    --pink-deep:#e14f86;
    --gold:#f2c14e;
    --lavender:#c9b8ea;
    --line: rgba(23,23,23,0.14);
    --line-strong: rgba(23,23,23,0.28);
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }

  body{
    margin:0;
    background:
      radial-gradient(ellipse 1000px 750px at 85% -5%, rgba(255,143,184,0.24), transparent 55%),
      radial-gradient(ellipse 900px 700px at 5% 15%, rgba(201,184,234,0.24), transparent 55%),
      radial-gradient(ellipse 800px 650px at 55% 45%, rgba(191,210,232,0.18), transparent 55%),
      radial-gradient(ellipse 850px 650px at 12% 75%, rgba(242,193,78,0.18), transparent 55%),
      radial-gradient(ellipse 750px 600px at 95% 90%, rgba(201,184,234,0.20), transparent 55%),
      var(--paper);
    background-attachment:fixed;
    color:var(--ink);
    font-family:'Inter', system-ui, sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  a{ color:inherit; }

  .wrap{ max-width:1080px; margin:0 auto; padding:0 24px; }

  /* ---------- ticker ---------- */
  .ticker{
    background:var(--ink);
    color:var(--paper);
    overflow:hidden;
    white-space:nowrap;
    padding:9px 0;
  }
  .ticker-track{
    display:inline-block;
    animation: scrollTicker 26s linear infinite;
    font-family:'Space Grotesk', sans-serif;
    font-size:12px;
    font-weight:600;
    letter-spacing:0.04em;
    text-transform:uppercase;
  }
  .ticker-track span{ margin:0 22px; }
  .ticker-track span::after{ content:"✦"; margin-left:22px; opacity:0.5; }
  @keyframes scrollTicker{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

  /* ---------- nav ---------- */
  .topbar{
    padding:22px 0;
    border-bottom:2px solid var(--ink);
  }
  .topbar-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    max-width:1080px;
    margin:0 auto;
    padding:0 24px;
    flex-wrap:wrap;
    gap:14px;
  }
  .wordmark{
    display:flex;
    align-items:center;
    gap:9px;
    font-family:'Space Grotesk', sans-serif;
    font-weight:700;
    font-size:18px;
    letter-spacing:-0.01em;
    color:var(--ink);
  }
  .wordmark .dim{ color:var(--pink-deep); }
  .brand-icon{ flex:0 0 auto; display:block; }
  .nav-links{
    display:flex;
    gap:22px;
    font-family:'Space Grotesk', sans-serif;
    font-size:11.5px;
    font-weight:600;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-muted);
  }
  .nav-links a{ text-decoration:none; transition:color .15s ease; }
  .nav-links a:hover{ color:var(--pink-deep); }
  @media (max-width:640px){ .nav-links{ display:none; } }

  /* ---------- hero (collage) ---------- */
  .hero-zone{
    position:relative;
    padding:60px 0 120px;
    overflow:hidden;
  }
  .hero{
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:20px;
    align-items:center;
    position:relative;
    z-index:2;
  }
  @media (max-width:760px){
    .hero{ grid-template-columns:1fr; }
    .hero-collage{ height:280px !important; margin-top:20px; }
  }

  h1{
    font-family:'Fraunces', serif;
    font-optical-sizing:auto;
    font-weight:560;
    font-size:clamp(38px, 4.4vw, 68px);
    line-height:1.08;
    letter-spacing:-0.01em;
    margin:0 0 22px;
    max-width:14ch;
    color:var(--ink);
  }
  h1 .script{
    font-family:'Caveat', cursive;
    font-weight:700;
    color:var(--pink-deep);
    font-size:1.18em;
  }
  .lede{
    font-size:19px;
    color:var(--ink-muted);
    max-width:48ch;
    margin:0 0 30px;
    line-height:1.55;
  }
  .hero-cta{
    background:var(--ink);
    color:var(--paper);
    border:none;
    border-radius:999px;
    font-family:'Space Grotesk', sans-serif;
    font-size:13.5px;
    font-weight:700;
    letter-spacing:0.05em;
    text-transform:uppercase;
    padding:16px 30px;
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease;
    box-shadow:4px 4px 0 var(--pink);
  }
  .hero-cta:hover{ transform:translate(-3px,-3px) rotate(-1.5deg); box-shadow:7px 7px 0 var(--pink); }
  .hero-cta:active{ transform:translate(0,0) rotate(0deg); box-shadow:2px 2px 0 var(--pink); }
  .hero-cta:active{ transform:translate(0,0); box-shadow:2px 2px 0 var(--pink); }
  .hero-cta:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }

  /* collage visual */
  .hero-collage{ position:relative; height:440px; perspective:900px; }
  .collage-layer{ position:relative; inset:0; transition:transform .12s ease-out; transform-style:preserve-3d; height:100%; }
  .layer-back, .layer-mid, .layer-front{ position:absolute; inset:0; }
  .layer-back{ transform:translateZ(-40px); }
  .layer-mid{ transform:translateZ(0px); }
  .layer-front{ transform:translateZ(40px); }

  .hero-arrow{
    position:absolute;
    top:-6px; left:-64px;
    z-index:5;
    opacity:0.85;
    animation: arrowWiggle 1.4s cubic-bezier(.45,0,.55,1) infinite;
  }
  @media (max-width:1060px){ .hero-arrow{ display:none; } }
  @keyframes arrowWiggle{
    0%, 100%{ transform:translateX(0) rotate(0deg); }
    50%{ transform:translateX(4px) rotate(-2deg); }
  }

  .note-card{
    position:absolute;
    background:var(--card);
    border:1.5px solid var(--ink);
    border-radius:8px;
    padding:24px 18px;
    text-align:center;
    animation: bob 3.2s cubic-bezier(.45,0,.55,1) infinite, popIn .6s cubic-bezier(.34,1.56,.64,1) backwards;
  }
  .note-card.main{
    top:30px; left:40px; width:250px;
    box-shadow:9px 9px 0 var(--lavender), 0 18px 36px rgba(23,23,23,0.14);
    z-index:3;
    --rot: rotate(-4deg);
    animation-delay:0s, .1s;
  }
  .note-card.behind{
    top:100px; left:168px; width:190px;
    padding:22px 16px;
    box-shadow:6px 6px 0 var(--gold), 0 12px 26px rgba(23,23,23,0.10);
    z-index:1;
    --rot: rotate(9deg);
    animation-delay:.9s, .3s;
  }
  .note-card.tiny{
    top:-24px; left:170px; width:120px;
    padding:14px 10px;
    box-shadow:4px 4px 0 var(--pink), 0 8px 18px rgba(23,23,23,0.10);
    z-index:0;
    --rot: rotate(-14deg);
    animation-delay:1.6s, .5s;
  }
  .note-card.tiny .n{ font-size:32px; }
  .note-card .n{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:600;
    font-size:76px;
    line-height:1;
    color:var(--ink);
  }
  .note-card.behind .n{ font-size:50px; }
  .note-card .cap{
    font-family:'Space Grotesk', sans-serif;
    font-size:10px;
    font-weight:700;
    letter-spacing:0.09em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-top:6px;
  }
  @keyframes bob{
    0%, 100%{ transform:var(--rot, rotate(0deg)) translateY(0) rotate(0deg); }
    25%{ transform:var(--rot, rotate(0deg)) translateY(-16px) rotate(3deg); }
    50%{ transform:var(--rot, rotate(0deg)) translateY(2px) rotate(-2deg); }
    75%{ transform:var(--rot, rotate(0deg)) translateY(-8px) rotate(1deg); }
  }
  @keyframes popIn{
    0%{ opacity:0; transform:var(--rot, rotate(0deg)) scale(0.3) translateY(30px); }
    100%{ opacity:1; transform:var(--rot, rotate(0deg)) scale(1) translateY(0); }
  }

  /* flip-numeral: cycles through digits before settling, with a punchy bounce */
  .flip-n{ display:inline-block; }
  .flip-n.flipping{ animation: flipDigit .32s cubic-bezier(.34,1.56,.64,1) 6; }
  @keyframes flipDigit{
    0%{ transform:rotateX(0deg) scale(1); opacity:1; }
    40%{ transform:rotateX(100deg) scale(1.3); opacity:0.2; }
    60%{ transform:rotateX(-100deg) scale(1.3); opacity:0.2; }
    100%{ transform:rotateX(0deg) scale(1); opacity:1; }
  }

  .tape-piece{
    position:absolute;
    top:14px; left:56px;
    width:54px; height:20px;
    background:var(--gold);
    opacity:0.85;
    border:1px solid var(--ink);
    transform:rotate(-8deg);
    z-index:4;
  }

  .sticker-circle{
    position:absolute;
    top:-10px; right:10px;
    width:118px; height:118px;
    border-radius:50%;
    background:var(--pink);
    border:1.5px solid var(--ink);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    font-family:'Space Grotesk', sans-serif;
    font-size:12.5px;
    font-weight:700;
    letter-spacing:0.03em;
    text-transform:uppercase;
    padding:8px;
    line-height:1.3;
    z-index:4;
    box-shadow:0 14px 28px rgba(23,23,23,0.16);
    animation: spinSlow 7s linear infinite, popIn .6s cubic-bezier(.34,1.56,.64,1) .7s backwards;
  }

  @keyframes spinSlow{ from{ transform:rotate(8deg); } to{ transform:rotate(368deg); } }

  .orbit-ring{
    position:absolute;
    border:1.5px dashed var(--line-strong);
    border-radius:50%;
  }
  .orbit-ring.r1{
    top:-34px; right:0px;
    width:150px; height:150px;
    animation: spinSlow 16s linear infinite reverse;
  }
  .orbit-ring.r2{
    top:-8px; right:-30px;
    width:210px; height:210px;
    border-color:var(--pink);
    opacity:0.4;
    animation: spinSlow 22s linear infinite;
  }

  .star{ position:absolute; color:var(--ink); animation: twinkle 1.6s cubic-bezier(.45,0,.55,1) infinite; }
  .star.s1{ top:210px; right:-10px; font-size:36px; transform:rotate(12deg); color:var(--gold); animation-delay:.2s; }
  .star.s2{ bottom:36px; left:46px; font-size:24px; transform:rotate(-10deg); color:var(--pink-deep); animation-delay:.55s; }
  .star.s3{ bottom:88px; right:80px; font-size:20px; transform:rotate(20deg); animation-delay:.95s; }
  .star.s4{ top:70px; left:-14px; font-size:18px; transform:rotate(-16deg); color:var(--lavender); animation-delay:.35s; }
  .star.s5{ top:2px; left:220px; font-size:16px; transform:rotate(28deg); color:var(--pink); animation-delay:.8s; }
  @keyframes twinkle{
    0%, 100%{ opacity:0.4; transform:scale(0.7) rotate(var(--r,0deg)); }
    50%{ opacity:1; transform:scale(1.4) rotate(var(--r,0deg)); }
  }

  .dot-confetti{ position:absolute; width:9px; height:9px; border-radius:50%; animation: twinkle 2s cubic-bezier(.45,0,.55,1) infinite; }
  .dot-confetti.c1{ top:250px; right:130px; background:var(--gold); animation-delay:.4s; }
  .dot-confetti.c2{ bottom:10px; left:130px; background:var(--pink-deep); width:6px; height:6px; animation-delay:1.1s; }
  .dot-confetti.c3{ top:40px; right:-20px; background:var(--lavender); width:7px; height:7px; animation-delay:.7s; }

  .reveal{ opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* ---------- what's in a name ---------- */
  #whats-in-a-name{ padding:52px 0 8px; }
  .section-eyebrow{
    font-family:'Space Grotesk', sans-serif;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--pink-deep);
    margin-bottom:14px;
  }
  .section-title{
    font-family:'Fraunces', serif;
    font-weight:560;
    font-size:34px;
    margin:0 0 22px;
    color:var(--ink);
  }
  .essay{ max-width:78ch; }
  .reduction-card{
    float:right;
    margin:6px 0 18px 26px;
    width:180px;
    background:var(--card);
    border:1.5px solid var(--ink);
    border-radius:12px;
    padding:18px 16px;
    text-align:center;
    box-shadow:6px 6px 0 var(--lavender);
    transform:rotate(3deg);
  }
  @media (max-width:640px){ .reduction-card{ float:none; margin:0 0 24px; width:100%; max-width:220px; } }
  .rc-label{
    font-family:'Space Grotesk', sans-serif;
    font-size:9.5px;
    font-weight:700;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-bottom:10px;
  }
  .rc-letters{ font-family:'Space Grotesk', sans-serif; font-size:15px; font-weight:700; color:var(--ink); letter-spacing:0.02em; }
  .rc-nums{ font-family:'Space Grotesk', sans-serif; font-size:13px; font-weight:600; color:var(--gold); margin-top:4px; }
  .rc-line{ border-top:1px dashed var(--line-strong); margin:12px 0; }
  .rc-total{ font-family:'Fraunces', serif; font-style:italic; font-size:20px; color:var(--ink); }
  .rc-arrow{ color:var(--ink-faint); font-style:normal; font-size:14px; }
  .rc-final{ color:var(--pink-deep); font-weight:600; }

  .essay p{ font-size:16.5px; color:var(--ink-muted); margin:0 0 16px; }
  .essay p:last-child{ margin-bottom:0; }
  .quote{
    margin:26px 0 0;
    padding:20px 24px;
    background:var(--card);
    border:2px solid var(--ink);
    border-radius:10px;
    transform:rotate(-1deg);
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:16.5px;
    color:var(--ink);
    max-width:58ch;
  }
  .quote span{
    display:block;
    margin-top:8px;
    font-family:'Space Grotesk', sans-serif;
    font-style:normal;
    font-size:11.5px;
    letter-spacing:0.05em;
    color:var(--ink-faint);
  }

  /* ---------- who this is for ---------- */
  #who-for{ padding:50px 0 8px; }
  .who-grid{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:24px;
  }
  @media (max-width:760px){ .who-grid{ grid-template-columns:1fr; } }
  .who-card{
    background:var(--card);
    border:2px solid var(--ink);
    border-radius:12px;
    padding:24px 22px;
    position:relative;
  }
  .who-card:nth-child(1){ transform:rotate(-1.2deg); }
  .who-card:nth-child(2){ transform:rotate(0.8deg); }
  .who-card:nth-child(3){ transform:rotate(-0.6deg); }
  .who-card .tape{
    position:absolute;
    top:-10px; left:24px;
    width:46px; height:18px;
    background:var(--gold);
    opacity:0.85;
    transform:rotate(-4deg);
    border:1px solid var(--line-strong);
  }
  .who-label{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:600;
    font-size:18px;
    color:var(--pink-deep);
    margin-bottom:10px;
  }
  .who-card p{ margin:0; font-size:14px; color:var(--ink-muted); }

  /* ---------- testimonials ---------- */
  #testimonials{ padding:50px 0 8px; }
  .testimonial-grid{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:24px;
  }
  @media (max-width:760px){ .testimonial-grid{ grid-template-columns:1fr; } }
  .testimonial-card{
    background:var(--card);
    border:1.5px dashed var(--line-strong);
    border-radius:12px;
    padding:22px 20px;
    position:relative;
    min-height:150px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  .testimonial-card:nth-child(1){ transform:rotate(-1deg); }
  .testimonial-card:nth-child(2){ transform:rotate(0.7deg); }
  .testimonial-card:nth-child(3){ transform:rotate(-0.5deg); }
  .testimonial-card .tape{
    position:absolute;
    top:-10px; left:20px;
    width:42px; height:16px;
    background:var(--lavender);
    opacity:0.85;
    transform:rotate(-3deg);
    border:1px solid var(--line-strong);
  }
  .quote-text{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:15px;
    color:var(--ink-faint);
    margin:8px 0 16px;
  }
  .attribution{
    font-family:'Space Grotesk', sans-serif;
    font-size:11px;
    letter-spacing:0.03em;
    color:var(--ink-faint);
  }
  .testimonial-note{
    margin-top:18px;
    font-size:13px;
    color:var(--ink-faint);
    font-style:italic;
  }

  /* ---------- included ---------- */
  #included{ padding:56px 0 8px; }
  .service-list{ display:flex; flex-direction:column; gap:14px; }
  .service-row{
    display:grid;
    grid-template-columns:52px 1fr;
    gap:18px;
    background:var(--card);
    border:2px solid var(--ink);
    border-radius:10px;
    padding:18px 22px;
  }
  .service-row:nth-child(odd){ transform:rotate(-0.4deg); }
  .service-row:nth-child(even){ transform:rotate(0.4deg); }
  .service-row .num{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:22px;
    color:var(--pink-deep);
  }
  .service-row .body b{ display:block; font-weight:700; font-size:15px; color:var(--ink); margin-bottom:4px; }
  .service-row .body span{ color:var(--ink-muted); font-size:14px; }

  .method-note{
    margin-top:24px;
    background:var(--lavender);
    border:2px solid var(--ink);
    border-radius:10px;
    padding:18px 22px;
    font-size:13.5px;
    color:var(--ink);
  }
  .method-note b{ font-family:'Space Grotesk', sans-serif; }

  /* ---------- onboarding ---------- */
  #onboarding{ padding:56px 0 8px; }
  .onb-head{ margin-bottom:26px; }
  .steps-progress{ display:flex; gap:8px; margin-top:16px; }
  .steps-progress .dot{
    width:26px; height:5px;
    background:var(--card);
    border:2px solid var(--ink);
    border-radius:999px;
    transition:background .3s ease, width .3s ease;
  }
  .steps-progress .dot.active{ background:var(--pink-deep); width:34px; }
  .steps-progress .dot.done{ background:var(--lavender); }

  .onb-panel{
    position:relative;
    background:var(--card);
    border:2.5px solid var(--ink);
    border-radius:22px;
    padding:48px 44px;
    max-width:640px;
    margin:0 auto;
    box-shadow:9px 9px 0 var(--lavender);
  }
  .onb-panel::before{
    content:"";
    position:absolute;
    top:-16px; left:36px;
    width:60px; height:16px;
    background:var(--gold);
    opacity:0.9;
    transform:rotate(-3deg);
    border:1.5px solid var(--ink);
  }
  .onb-decor{ position:relative; max-width:640px; margin:0 auto; height:0; }
  .onb-decor .star{ position:absolute; animation: twinkle 3.4s ease-in-out infinite; }
  .onb-decor .star.d1{ top:14px; right:6px; font-size:30px; color:var(--gold); transform:rotate(14deg); animation-delay:.3s; }
  .onb-decor .star.d2{ top:170px; left:-30px; font-size:22px; color:var(--pink-deep); transform:rotate(-12deg); animation-delay:1.2s; }
  .onb-decor .star.d3{ top:80px; right:-24px; font-size:18px; color:var(--ink); transform:rotate(20deg); animation-delay:2s; }
  @media (max-width:700px){ .onb-decor{ display:none; } }
  .step-title{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:600;
    font-size:28px;
    margin:0 0 8px;
    color:var(--ink);
  }
  .step-sub{ color:var(--ink-muted); font-size:15.5px; line-height:1.6; margin:0 0 30px; max-width:48ch; }

  .field{ display:grid; gap:9px; margin-bottom:22px; }
  .field label{
    font-family:'Space Grotesk', sans-serif;
    font-size:11px;
    font-weight:700;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-muted);
  }
  .field .optional{ text-transform:none; letter-spacing:0; font-weight:400; color:var(--ink-faint); }
  .field input, .field textarea{
    background:var(--paper);
    border:2px solid var(--line-strong);
    border-radius:12px;
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-size:17px;
    padding:15px 18px;
    outline:none;
    transition:border-color .15s ease, box-shadow .15s ease;
    width:100%;
    resize:vertical;
  }
  .field textarea{ min-height:100px; }
  .field input::placeholder, .field textarea::placeholder{ color:var(--ink-faint); }
  .field input:focus-visible, .field textarea:focus-visible{ border-color:var(--pink-deep); box-shadow:0 0 0 4px rgba(225,79,134,0.12); }
  .field input[type="date"]{ color-scheme: light; }

  .dob-row{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:10px; }
  @media (max-width:480px){ .dob-row{ grid-template-columns:1fr; } }
  .dob-row select, .dob-row input, .field select{
    background:var(--paper);
    border:2px solid var(--line-strong);
    border-radius:12px;
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-size:17px;
    padding:15px 14px;
    outline:none;
    transition:border-color .15s ease, box-shadow .15s ease;
    width:100%;
    appearance:none;
  }
  .dob-row select, .field select{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%235c5c5c' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 14px center;
    padding-right:36px;
  }
  .dob-row input::-webkit-outer-spin-button,
  .dob-row input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
  .dob-row input[type="number"]{ -moz-appearance:textfield; }
  .dob-row select:focus-visible, .dob-row input:focus-visible, .field select:focus-visible{ border-color:var(--pink-deep); box-shadow:0 0 0 4px rgba(225,79,134,0.12); }

  .step-nav{ display:flex; justify-content:space-between; align-items:center; margin-top:12px; }
  .btn{
    font-family:'Space Grotesk', sans-serif;
    font-size:14.5px;
    font-weight:700;
    letter-spacing:0.03em;
    padding:15px 30px;
    border-radius:999px;
    border:2px solid var(--ink);
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn-primary{ background:var(--ink); color:var(--paper); box-shadow:4px 4px 0 var(--pink); }
  .btn-primary:hover{ transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--pink); }
  .btn-ghost{ background:transparent; color:var(--ink-muted); border-color:var(--line-strong); }
  .btn-ghost:hover{ color:var(--ink); border-color:var(--ink); }
  .btn:active{ transform:translateY(0); }
  .btn:focus-visible{ outline:2px solid var(--pink-deep); outline-offset:3px; }
  .btn:disabled{ opacity:0.4; cursor:not-allowed; }

  .field-error{ font-size:12.5px; color:var(--pink-deep); margin-top:-10px; display:none; }
  .field-error.show{ display:block; }

  .review-list{ display:grid; gap:14px; margin-bottom:24px; }
  .review-row{
    display:flex; justify-content:space-between; gap:16px;
    padding:12px 0; border-bottom:1px dashed var(--line-strong); font-size:14px;
  }
  .review-row .rk{
    font-family:'Space Grotesk', sans-serif; font-size:10.5px; font-weight:700;
    letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-muted); flex:0 0 auto;
  }
  .review-row .rv{ text-align:right; color:var(--ink); }

  .onb-done{
    background:var(--gold);
    border:2px solid var(--ink);
    border-radius:14px;
    padding:32px 28px;
    max-width:560px;
    margin:0 auto;
    text-align:left;
  }
  .onb-done h3{ font-family:'Fraunces', serif; font-style:italic; font-weight:600; font-size:22px; margin:0 0 10px; }
  .onb-done p{ color:var(--ink); margin:0 0 18px; max-width:56ch; }
  .fallback-box{
    background:var(--card);
    border:2px solid var(--ink);
    border-radius:10px;
    padding:16px 18px;
    font-family:'Space Grotesk', sans-serif;
    font-size:13px;
    color:var(--ink);
    white-space:pre-wrap;
    margin-bottom:14px;
  }

  #onboarding .hidden{ display:none; }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ transition:none !important; animation:none !important; }
    .reveal{ opacity:1; transform:none; }
    .ticker-track{ animation:none; }
  }

  /* ---------- site footer ---------- */
  .site-footer{
    background:var(--ink);
    color:var(--paper);
    margin-top:60px;
    padding:56px 0 0;
    width:100%;
    box-sizing:border-box;
  }
  .footer-top{
    display:grid;
    grid-template-columns:1fr 1fr 1fr 1.3fr;
    gap:32px;
    padding-bottom:44px;
    border-bottom:1px solid rgba(251,250,245,0.16);
  }
  @media (max-width:760px){
    .footer-top{ grid-template-columns:1fr 1fr; }
    .footer-col.newsletter{ grid-column:1 / -1; margin-top:20px; }
  }
  .footer-col h4{
    font-family:'Space Grotesk', sans-serif;
    font-size:11px;
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--gold);
    margin:0 0 18px;
  }
  .footer-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
  .footer-col a{
    font-size:14px;
    color:rgba(251,250,245,0.82);
    text-decoration:none;
  }
  .footer-col a:hover{ color:var(--paper); text-decoration:underline; }
  .footer-col.newsletter h4{ color:var(--pink); }
  .footer-col.newsletter p{ font-size:13.5px; color:rgba(251,250,245,0.7); margin:0 0 16px; max-width:34ch; }
  .newsletter-form{ display:flex; gap:10px; flex-wrap:wrap; }
  .newsletter-form input{
    flex:1 1 180px;
    background:transparent;
    border:none;
    border-bottom:1.5px solid rgba(251,250,245,0.4);
    color:var(--paper);
    font-family:'Inter', sans-serif;
    font-size:14px;
    padding:9px 2px;
    outline:none;
  }
  .newsletter-form input::placeholder{ color:rgba(251,250,245,0.45); }
  .newsletter-form input:focus-visible{ border-color:var(--pink); }
  .newsletter-form button{
    background:var(--pink);
    color:var(--ink);
    border:none;
    border-radius:999px;
    font-family:'Space Grotesk', sans-serif;
    font-size:12px;
    font-weight:700;
    letter-spacing:0.05em;
    text-transform:uppercase;
    padding:11px 20px;
    cursor:pointer;
  }
  .newsletter-form button:hover{ background:var(--gold); }
  .newsletter-note{ font-size:12px; color:rgba(251,250,245,0.55); margin-top:10px; }

  .footer-bottom{
    text-align:center;
    padding:38px 0 44px;
  }
  .footer-wordmark{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    font-family:'Space Grotesk', sans-serif;
    font-weight:700;
    font-size:24px;
    letter-spacing:-0.01em;
    color:var(--paper);
    margin-bottom:10px;
  }
  .footer-wordmark .dim{ color:var(--gold); }
  .footer-copyright{
    font-family:'Space Grotesk', sans-serif;
    font-size:11.5px;
    letter-spacing:0.04em;
    color:rgba(251,250,245,0.5);
  }

  /* ---------- simple content pages ---------- */
  .page-hero{ padding:52px 0 30px; }
  .page-hero h1{
    font-family:'Fraunces', serif;
    font-weight:560;
    font-size:clamp(30px, 4.4vw, 44px);
    line-height:1.14;
    margin:0 0 14px;
    color:var(--ink);
  }
  .page-hero .lede{ font-size:16px; color:var(--ink-muted); max-width:56ch; margin:0; }
  .page-body{ padding:10px 0 60px; max-width:70ch; }
  .page-body h2{
    font-family:'Fraunces', serif;
    font-weight:560;
    font-size:21px;
    margin:34px 0 12px;
    color:var(--ink);
  }
  .page-body h2:first-child{ margin-top:0; }
  .page-body p{ font-size:15px; color:var(--ink-muted); margin:0 0 14px; }
  .page-body ul{ margin:0 0 14px; padding-left:20px; }
  .page-body li{ font-size:15px; color:var(--ink-muted); margin-bottom:8px; }
  .page-body a{ color:var(--pink-deep); text-decoration:underline; }
  .back-link{
    display:inline-block;
    margin-bottom:24px;
    font-family:'Space Grotesk', sans-serif;
    font-size:12.5px;
    font-weight:600;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:var(--ink-muted);
    text-decoration:none;
  }
  .back-link:hover{ color:var(--ink); }
  .contact-box{
    background:var(--card);
    border:1.5px solid var(--ink);
    border-radius:12px;
    padding:24px 26px;
    margin-top:24px;
    box-shadow:5px 5px 0 var(--lavender);
  }
  .contact-box a{ font-weight:600; }
