/* ============================================================
   Vertical.market — styles
   Palette matched to the Vertek/Echo dashboard (gojiberry coral).
   Signatures: Schibsted Grotesk display + JetBrains Mono terminal numerals,
   a ".market" market-board/ticker motif, grain texture, restrained
   blooms, asymmetric section intros, dominant comparison table.
   ============================================================ */

:root{
  --coral:#FB5E47;
  --coral-deep:#F2542D;
  --coral-700:#D8421F;
  --coral-50:#FFF3F0;
  --coral-100:#FFE4DD;
  --coral-200:#FFC8BB;
  --coral-300:#FFA593;

  --ink:#1C1917;
  --ink-soft:#2A2522;
  --body:#57534E;
  --muted:#A8A29E;
  --paper:#FAFAF9;
  --surface:#F4F2EF;
  --card:#FFFFFF;
  --line:#EFEDE8;
  --line-2:#E5E1DA;
  --success:#0E8A5F;

  --wrap:1180px;
  --r:20px;
  --r-sm:13px;

  --ff-display:"Schibsted Grotesk", "Hanken Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;
  --ff-body:"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ff-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --shadow-sm:0 1px 2px rgba(28,25,23,.04), 0 1px 3px rgba(28,25,23,.04);
  --shadow:0 1px 3px rgba(28,25,23,.04), 0 22px 48px -30px rgba(28,25,23,.16);
  --shadow-lg:0 4px 16px rgba(28,25,23,.05), 0 48px 92px -50px rgba(28,25,23,.24);
  --shadow-coral:0 16px 44px -20px rgba(251,94,71,.45);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}
body{
  font-family:var(--ff-body);
  color:var(--body);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:200}
.skip:focus{left:16px;top:12px}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:28px;width:100%}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--ff-display);color:var(--ink);font-weight:700;line-height:1.04;letter-spacing:-.02em}
h1{font-size:clamp(2.7rem,6.4vw,4.7rem);font-weight:700}
h2{font-size:clamp(2rem,4.4vw,3.25rem);font-weight:700}
h3{font-size:1.42rem;font-weight:600;letter-spacing:-.015em}
.ink-coral{color:var(--coral);font-style:normal}
strong{color:var(--ink);font-weight:600}

.eyebrow{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--ff-mono);font-size:.72rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--coral-deep);
  background:var(--coral-50);border:1px solid var(--coral-100);
  padding:.42em .8em;border-radius:999px;margin-bottom:1.3rem;
}
.eyebrow .num{font-weight:700;color:var(--coral);opacity:.85}
.eyebrow.bare{background:transparent;border:0;padding:0;margin-bottom:1rem}
.eyebrow.on-dark{color:var(--coral-200);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}

.sec-head{max-width:560px;margin-bottom:3.2rem}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-sub{margin-top:1rem;font-size:1.06rem;color:var(--body)}
.sec-head.on-dark h2{color:#fff}
.sec-head.on-dark .sec-sub{color:#c9c4be}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--ff-body);font-weight:600;font-size:.98rem;
  padding:.85em 1.4em;border-radius:12px;border:1.5px solid transparent;
  cursor:pointer;transition:transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;text-decoration:none;
}
.btn:hover,.btn:focus{text-decoration:none}
.btn span{transition:transform .2s ease}
.btn:hover span{transform:translateX(3px)}
.btn-coral{background:var(--coral);color:#fff;box-shadow:var(--shadow-coral)}
.btn-coral:hover{background:var(--coral-deep);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-1px)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#000;transform:translateY(-1px)}
.btn-sm{padding:.62em 1.05em;font-size:.9rem;border-radius:10px}
.btn-lg{padding:1.05em 1.8em;font-size:1.06rem}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:100;background:rgba(250,250,249,.82);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid transparent;transition:border-color .25s ease, box-shadow .25s ease}
.site-head.scrolled{border-bottom-color:var(--line);box-shadow:0 6px 24px -18px rgba(28,25,23,.4)}
.head-inner{display:flex;align-items:center;justify-content:space-between;height:68px;gap:1.5rem}
.brand{display:inline-flex;align-items:baseline;font-family:var(--ff-display);font-weight:600;font-size:1.32rem;letter-spacing:-.02em;color:var(--ink)}
.vmark{height:1.2em;width:auto;align-self:baseline;margin-right:-.02em;transform:translate(.05em,.08em)}
.brand-dot{font-family:var(--ff-mono);font-weight:500;font-size:.92em;color:var(--coral)}
.nav{display:flex;gap:1.7rem;font-size:.95rem;font-weight:500;color:var(--body)}
.nav a{position:relative;padding:.2em 0;transition:color .2s ease}
.nav a:hover{color:var(--coral)}
.head-cta{display:flex;gap:.6rem;align-items:center}

/* ---------- ticker rail (.market signature) ---------- */
.ticker{background:var(--ink);color:#fff;overflow:hidden;border-bottom:1px solid #2a2522}
.ticker-track{display:inline-flex;gap:2.4rem;padding:.55rem 0;white-space:nowrap;animation:ticker 38s linear infinite;font-family:var(--ff-mono);font-size:.78rem;letter-spacing:.05em}
.ticker:hover .ticker-track{animation-play-state:paused}
.tk{color:#d6d3d1}
.tk .up{color:#34d399;font-style:normal;font-size:.7em;margin-left:.15em}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- bloom + grain ---------- */
.bloom{position:absolute;border-radius:50%;filter:blur(90px);opacity:.9;pointer-events:none;z-index:0}
.bloom-a{width:780px;height:780px;top:-260px;right:-200px;background:radial-gradient(circle,var(--coral-300),var(--coral-100) 42%,transparent 72%);opacity:.7}
.bloom-b{width:660px;height:660px;bottom:-320px;left:-220px;background:radial-gradient(circle,var(--coral-200),var(--coral-50) 48%,transparent 74%)}
.bloom-c{width:680px;height:680px;top:-200px;right:-160px;background:radial-gradient(circle,var(--coral-300),var(--coral-100) 44%,transparent 72%);opacity:.6}
.bloom-d{width:980px;height:640px;top:-220px;left:50%;transform:translateX(-50%);background:radial-gradient(ellipse,var(--coral-300),var(--coral-100) 40%,transparent 68%);opacity:.85}
.bloom-e{width:620px;height:620px;top:-200px;right:-180px;background:radial-gradient(circle,var(--coral-200),var(--coral-50) 46%,transparent 74%);opacity:.6}
.bloom-f{width:600px;height:600px;bottom:-240px;left:-200px;background:radial-gradient(circle,var(--coral-200),var(--coral-50) 48%,transparent 74%);opacity:.55}
/* warm washes bleed through the light mid-sections (gojiberry atmosphere) */
.band, .who{position:relative;overflow:hidden}
.band>.wrap, .who>.wrap{position:relative;z-index:1}
.grain{position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}

/* ---------- hero (pins to viewport, recedes BEHIND the rising page) ---------- */
.hero{position:sticky;top:0;z-index:1;min-height:52svh;display:grid;align-items:start;padding:clamp(3rem,5.5vh,4.5rem) 0 0}
.hero h1{font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.07}
.hero-grid{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(2.4rem,4.5vw,3.4rem)}
.hero-copy{display:flex;flex-direction:column;align-items:center;max-width:820px}
.hero-copy h1{margin:.25em 0 .5em}
.lede{font-size:1.18rem;max-width:36em;margin-inline:auto;color:var(--body)}
.hero-actions{display:flex;gap:.8rem;margin:2rem 0 1.4rem;flex-wrap:wrap;justify-content:center}
.pills{list-style:none;display:flex;gap:1.3rem;flex-wrap:wrap;justify-content:center;font-size:.92rem;font-weight:500;color:var(--ink)}
.pills .chk{color:var(--coral);font-style:normal;margin-right:.35em;font-weight:700}

/* hero room (signature visual) */
.hero-room{width:100%;max-width:780px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);overflow:hidden;transform:none}
.room-head{display:flex;align-items:center;gap:.6rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--line);font-size:.84rem;font-weight:600;color:var(--ink)}
.room-dot{width:9px;height:9px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px rgba(14,138,95,.18)}
.room-name{flex:1}
.room-live{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.12em;color:var(--success);border:1px solid rgba(14,138,95,.3);border-radius:5px;padding:.1em .4em}
.room-id{flex:1;display:flex;flex-direction:column;line-height:1.25}
.room-id b{font-size:.86rem;color:var(--ink)}
.room-id span{font-size:.66rem;font-weight:500;color:var(--muted)}
.room-feed{padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.7rem;background:linear-gradient(180deg,var(--paper),#fff)}
.msg{display:flex;gap:.6rem;align-items:flex-start}
.msg .av,.typing .av{flex:none;width:36px;height:36px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:var(--surface)}
.bubble{background:#fff;border:1px solid var(--line);border-radius:3px 13px 13px 13px;padding:.5rem .75rem;box-shadow:0 1px 2px rgba(28,25,23,.04);max-width:84%}
.bubble b{display:block;font-size:.76rem;color:var(--ink);margin-bottom:.12rem}
.bubble p{font-size:.82rem;line-height:1.4;color:var(--body)}
.join{display:flex;align-items:center;gap:.55rem;padding:.3rem 0 .3rem .1rem}
.join-av{flex:none;width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:var(--surface)}
.join-name{font-size:.78rem;color:var(--ink);font-weight:600}
.join-name em{font-style:normal;color:var(--muted);font-weight:500}
.lead-callout{display:inline-flex;align-items:center;gap:.3rem;margin-left:.35rem;font-family:var(--ff-mono);font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--coral)}
.lead-arrow{flex:none;transform:translateY(-1px)}
.brandref{color:var(--coral-deep);font-weight:600}
.typing{display:flex;align-items:center;gap:.6rem}
.dots{display:inline-flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:.55rem .7rem}
.dots i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:typing 1.3s infinite}
.dots i:nth-child(2){animation-delay:.18s}
.dots i:nth-child(3){animation-delay:.36s}
@keyframes typing{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.room-foot{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1.1rem;border-top:1px solid var(--line);font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.03em;color:var(--muted)}
.room-foot .lead-count{color:var(--coral-deep);font-weight:700}

/* ---------- go-behind scroll: hero pins; ONLY the chat card rises over it ---------- */
.scene{position:relative}                  /* contains the sticky hero so it releases right after the card */
.scene-spacer{height:20svh}                /* desktop only: holds the next section below the fold until the card has risen */
.room-stage{                               /* transparent — the card alone passes over the header */
  position:relative;z-index:2;
  height:24svh;                            /* FIXED, short → the page releases & scrolls on here (max pin distance) */
  padding-top:clamp(.4rem,1.5vw,1rem);     /* card overflows this box (overflow visible) — no layout effect */
}
.room-stage-inner{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}
.room-stage .hero-room{text-align:left}

@keyframes heroRecede{
  from{transform:translateY(0) scale(1);opacity:1}
  45%{opacity:.96}                                          /* barely fades — it disappears by going BEHIND the card, not by fading out */
  to{transform:translateY(24svh) scale(.80);opacity:.92}    /* sinks & shrinks so the rising card fully covers it (incl. the eyebrow) */
}
@keyframes cardRise{
  from{transform:translateY(0)}        /* card already sits half-shown just below the headline */
  to{transform:translateY(-26svh)}     /* climbs high enough that its top edge clears the eyebrow — nothing peeks above it */
}
@keyframes navHide{
  to{transform:translateY(-100%);opacity:0}   /* nav drifts up & fades out as you scroll in */
}
/* Pure-CSS scroll-driven motion where supported (Chrome/Edge/Safari);
   JS in main.js drives the identical motion as a fallback elsewhere. */
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    .hero-grid{
      animation:heroRecede linear both;
      animation-timeline:scroll(root);
      animation-range:0 24vh;          /* headline travels up over the same track as the card */
    }
    .room-stage .hero-room{
      animation:cardRise linear both;
      animation-timeline:scroll(root);
      animation-range:0 24vh;          /* finishes climbing exactly when the page releases */
    }
    .site-head{
      animation:navHide linear both;
      animation-timeline:scroll(root);
      animation-range:0 18vh;          /* nav fades & lifts away early in the scroll */
    }
  }
}
/* No pin / no motion for users who prefer reduced motion */
@media (prefers-reduced-motion:reduce){
  .hero{position:relative;min-height:0}
  .room-stage{height:auto}
  .scene-spacer{display:none}
}

/* ---------- operator wall ---------- */
.wall{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.wall .wrap{padding-block:1.6rem}
.wall-label{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:1rem}
.wall-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem 1.9rem}
.trade{display:inline-flex;align-items:center;gap:.5em;font-family:var(--ff-body);font-size:1.02rem;font-weight:600;color:var(--muted);transition:color .2s, transform .2s}
.trade svg{width:20px;height:20px;flex:none}
.trade:hover{color:var(--coral-deep);transform:translateY(-1px)}
.trade.more{color:var(--coral-deep)}

/* ---------- generic section spacing ---------- */
section.band,.how,.compare,.who,.conf,.faq{padding-block:clamp(4rem,8vw,7rem)}

/* ---------- problem (asymmetric split) ---------- */
.split{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.split-intro{position:sticky;top:96px}
.split-intro h2{margin-bottom:1rem}
.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:.5rem}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.4rem 1.5rem;transition:transform .2s, box-shadow .2s, border-color .2s}
.stat:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line-2)}
.stat-k{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.stat-v{display:block;font-family:var(--ff-display);font-size:1.5rem;font-weight:600;color:var(--ink);margin:.35rem 0 .7rem}
.stat-v i{font-style:normal;font-size:.8rem;vertical-align:middle}
.stat p{font-size:.92rem}
.stat-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--coral-50);color:var(--coral-deep);border:1px solid var(--coral-100);margin-bottom:1.15rem;transition:background .2s, color .2s, border-color .2s}
.stat-icon svg{width:22px;height:22px}
.stat:hover .stat-icon{background:var(--coral);color:#fff;border-color:var(--coral)}
.stat-trend{display:inline-flex;align-items:center;gap:.45em;font-family:var(--ff-mono);font-size:.66rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--coral-deep);background:var(--coral-50);border:1px solid var(--coral-100);border-radius:999px;padding:.4em .75em}
.stat-trend svg{width:13px;height:13px;flex:none}
.band-cta{display:flex;justify-content:center;margin-top:clamp(2.5rem,5vw,3.6rem)}
.down{color:var(--coral-deep)}.up-bad{color:var(--coral-deep)}.flat{color:var(--muted)}.up{color:var(--success)}

/* ---------- the shift (dark) ---------- */
/* compact, separator-style band */
.shift{position:relative;background:var(--ink);color:#fff;overflow:hidden;padding-block:clamp(2.2rem,4.5vw,3.4rem);text-align:center}
.shift .wrap{position:relative;z-index:1;max-width:980px}
.shift .eyebrow{margin-bottom:.85rem}
.shift-line{font-family:var(--ff-display);font-size:clamp(1.25rem,2.8vw,2rem);line-height:1.22;letter-spacing:-.015em;color:#fff;font-weight:500;margin:0}

/* ---------- how it works (feature rows) ---------- */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-block:clamp(1.8rem,3vw,2.6rem)}
.feature+.feature{border-top:1px solid var(--line)}
.feature.reverse .feat-copy{order:2}
.feat-no{font-family:var(--ff-mono);font-size:.82rem;font-weight:700;color:var(--coral);letter-spacing:.1em;display:block;margin-bottom:.7rem}
.feat-copy h3{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:.8rem}
.ticks{list-style:none;margin-top:1.2rem;display:flex;flex-direction:column;gap:.55rem}
.ticks li{position:relative;padding-left:1.6rem;font-size:.96rem;color:var(--body)}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--coral);font-weight:700}

/* feature mock visuals */
.feat-visual{display:flex;justify-content:center}
/* glossy 3D object stage (gojiberry-style render in a soft card) */
.obj-stage{position:relative;width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:1.6rem 1.4rem 1.2rem;display:flex;flex-direction:column;align-items:center}
.obj-stage img{width:100%;max-width:300px;height:auto;display:block}
.obj-tag{margin-top:.3rem;font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mock{width:100%;max-width:360px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:1.4rem}
.mock-feed .mk-row{display:flex;align-items:center;gap:.7rem;margin-bottom:.85rem}
.mk-av{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--coral-50);color:var(--coral-deep);border:1px dashed var(--coral-200);font-weight:700}
.mk-bar{height:9px;border-radius:6px;background:var(--surface)}
.mk-bar.w70{width:70%}.mk-bar.w90{width:90%}.mk-bar.w55{width:55%}.mk-bar.w80{width:80%}
.mk-tag{display:inline-block;margin-top:.5rem;font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.08em;color:var(--muted)}
.mock-lock{text-align:left}
.lock-badge{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--coral-deep);background:var(--coral-50);border:1px solid var(--coral-200);border-radius:6px;padding:.2em .55em;display:inline-block;margin-bottom:.8rem}
.mock-lock b{font-family:var(--ff-display);font-size:1.25rem;color:var(--ink);display:block}
.mock-lock>p{font-size:.9rem;margin-top:.2rem;margin-bottom:1rem}
.lock-rows{display:flex;flex-direction:column;gap:.45rem}
.lock-rows span{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted);padding:.5rem .7rem;background:var(--surface);border-radius:8px;text-decoration:line-through}
.lock-rows i{font-style:normal;font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.08em;color:var(--coral-deep);text-decoration:none;align-self:center}
/* community constellation (feature row 03) */
.constellation{width:100%;max-width:440px;margin-inline:auto}
.constellation svg{width:100%;height:auto;display:block;overflow:visible}
.cn-pulse{opacity:.4;animation:cnPulse 2.8s ease-out infinite}
@keyframes cnPulse{0%{r:34px;opacity:.45}70%,100%{r:78px;opacity:0}}
@media (prefers-reduced-motion:reduce){.cn-pulse{animation:none;opacity:0}}

/* ---- How: animated step visuals (replace static PNGs) ---- */
.obj-stage.is-anim{gap:0;padding:1.3rem 1.2rem 1.05rem}
.obj-stage.is-anim .obj-tag{margin-top:1rem}

/* shared header strip */
.fr-head{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:.85rem}
.fr-live{display:inline-flex;align-items:center;gap:.45em;font-family:var(--ff-mono);font-size:.6rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--success)}
.fr-live i{width:7px;height:7px;border-radius:50%;background:var(--success);animation:frLive 2.2s ease-out infinite}
@keyframes frLive{0%{box-shadow:0 0 0 0 rgba(14,138,95,.5)}70%,100%{box-shadow:0 0 0 7px rgba(14,138,95,0)}}
.fr-count{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.04em;color:var(--muted)}
.fr-count b{color:var(--ink);font-weight:700}

/* step 01 — community feed populating + travelling activity */
.fr-feed{list-style:none;width:100%;display:flex;flex-direction:column;gap:.5rem;margin:0}
.fr-feed li{display:flex;align-items:center;gap:.7rem;padding:.5rem .65rem;border:1px solid var(--line);border-radius:11px;background:var(--paper)}
.fr-av{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--coral-300),var(--coral));color:#fff;font-family:var(--ff-mono);font-size:.58rem;font-weight:700;letter-spacing:.02em}
.fr-av.g{background:linear-gradient(135deg,#C9C2BA,#8E867C)}
.fr-who{display:flex;flex-direction:column;flex:1;min-width:0}
.fr-name{font-family:var(--ff-body);font-weight:600;font-size:.82rem;color:var(--ink);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-role{font-size:.7rem;color:var(--muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-role b{color:var(--coral-deep);font-weight:600}

/* step 02 — one category slot: competitors locked out, you have lead access */
.fr-lock{display:inline-flex;align-items:center;gap:.45em;font-family:var(--ff-mono);font-size:.6rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--coral-deep)}
.fr-lock svg{width:9px;height:11px;display:block}
.slots{list-style:none;width:100%;display:flex;flex-direction:column;gap:.5rem;margin:0}
.slot{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:11px;background:var(--paper)}
.slot-dot{width:16px;height:16px;border-radius:50%;flex:none;border:1.5px solid var(--line-2)}
.slot-co{flex:1;min-width:0;font-family:var(--ff-body);font-size:.8rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot-tag{flex:none;font-family:var(--ff-mono);font-size:.55rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.32em .6em;border-radius:999px;white-space:nowrap}
.slot-tag.no{color:var(--muted);background:var(--surface);border:1px solid var(--line-2)}
.slot-tag.yes{color:#fff;background:var(--coral)}
.slot.muted{opacity:.55;animation:slotDim 5.5s ease-in-out infinite;animation-delay:calc(var(--i) * .8s)}
.slot.muted .slot-co{color:var(--muted);font-weight:500}
.slot.you{position:relative;border-color:var(--coral);background:linear-gradient(180deg,var(--coral-50),#fff)}
.slot.you .slot-dot{background:var(--coral);border-color:var(--coral)}
.slot.you .slot-co{color:var(--coral-deep)}
.slot.you::after{content:"";position:absolute;inset:-1.5px;border-radius:12px;border:1.5px solid var(--coral);opacity:.55;animation:slotPulse 2.6s ease-out infinite}
@keyframes slotPulse{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(1.05);opacity:0}}
@keyframes slotDim{0%,100%{opacity:.45}45%,55%{opacity:.78}}

@media (prefers-reduced-motion:reduce){
  .fr-live i{animation:none;box-shadow:none}
  .slot.muted{animation:none;opacity:.55}
  .slot.you::after{animation:none;opacity:0}
}
.mock-spot{text-align:left}
.mock-spot .spot-tag{margin-bottom:.6rem}
.mock-spot b{font-family:var(--ff-display);font-size:1.3rem;color:var(--ink);display:block}
.mock-spot>p{font-size:.95rem;font-style:italic;color:var(--body);margin:.4rem 0 1rem}
.spot-meta{font-family:var(--ff-mono);font-size:.72rem;color:var(--success);border-top:1px solid var(--line);padding-top:.7rem}

/* ---------- comparison (the peak) ---------- */
.compare{background:var(--surface);border-block:1px solid var(--line)}
.ctable{max-width:920px;margin-inline:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);overflow:hidden}
.ct-head,.ct-row{display:grid;grid-template-columns:1.1fr 1.35fr 1.55fr;align-items:stretch}
.ct-head{background:var(--ink);color:#fff}
.ct-col{padding:1.1rem 1.3rem;font-weight:600;font-size:.98rem;display:flex;align-items:center}
.ct-old{color:#a8a29e;font-family:var(--ff-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.ct-new{color:#fff;background:var(--coral);font-family:var(--ff-display);font-size:1.15rem;letter-spacing:-.01em}
.ct-row{border-top:1px solid var(--line)}
.ct-rowlabel{padding:1.05rem 1.3rem;font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center}
.ct-cell{padding:1.05rem 1.3rem;font-size:.96rem;display:flex;align-items:center;gap:.6em}
.ct-cell i{font-style:normal;flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;font-weight:700}
.ct-cell.old{color:var(--muted)}
.ct-cell.old .x{background:#f3f1ee;color:#b6afa8}
.ct-cell.new{color:var(--ink);font-weight:500;background:linear-gradient(90deg,var(--coral-50),transparent)}
.ct-cell.new .v{background:var(--coral);color:#fff}
.ct-cta{grid-column:1/-1;display:flex;justify-content:center;padding:1.6rem;border-top:1px solid var(--line);background:linear-gradient(180deg,#fff,var(--coral-50))}

/* ---------- who it's for ---------- */
.who-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.who-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;transition:transform .2s, box-shadow .2s, border-color .2s}
.who-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--coral-200)}
.wc-i{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:var(--coral-50);color:var(--coral-deep);font-size:1.15rem;margin-bottom:1rem;border:1px solid var(--coral-100)}
.who-card h3{font-size:1.18rem;margin-bottom:.4rem}
.who-card p{font-size:.92rem}

/* ---------- conferences ---------- */
.conf{position:relative;overflow:hidden;background:var(--paper)}
.conf-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.conf-copy h2{margin:.2em 0 1rem}
.conf-copy p{font-size:1.06rem;max-width:34em;margin-bottom:1.7rem}
/* journey ascent graphic (right column) */
.conf-viz{position:relative;overflow:hidden;background:var(--ink);border-radius:var(--r);padding:1.5rem 1.6rem 1.5rem;box-shadow:var(--shadow-lg)}
.conf-tag{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--coral-200);display:block;margin-bottom:.2rem;position:relative}
.ascent{display:block;width:100%;height:auto;overflow:visible}
.asc-track{stroke:#39322e;stroke-width:3;stroke-linecap:round;fill:none}
.asc-lit{stroke:var(--coral);stroke-width:3;stroke-linecap:round;fill:none;stroke-dasharray:250;stroke-dashoffset:250;filter:drop-shadow(0 0 5px rgba(251,94,71,.55))}
.asc-node .ring{fill:#221e1b;stroke:#3a332f;stroke-width:2}
.asc-node .ic{fill:#fff}
.asc-node .hole{fill:#221e1b}
.n3 .ring{fill:var(--coral);stroke:none}
.n3 .ic{fill:var(--ink)}
.asc-glow{opacity:0}
.asc-marker{fill:#fff;transform-box:view-box;filter:drop-shadow(0 0 7px rgba(251,94,71,.95))}
.asc-pulse{fill:none;stroke:var(--coral);stroke-width:2;opacity:0}
.asc-title{font-family:var(--ff-display);font-weight:600;font-size:18px;fill:#fff}
.asc-title.big{font-size:23px}
.asc-sub{font-family:var(--ff-mono);font-size:11px;letter-spacing:.02em;fill:#a8a29e}
.asc-sub.coral{fill:var(--coral-200)}
.conf-grid.in .asc-lit{animation:ascDraw 2.3s cubic-bezier(.4,.1,.2,1) .2s forwards}
.conf-grid.in .asc-marker{animation:ascClimb 2.3s cubic-bezier(.4,.1,.2,1) .2s forwards}
.conf-grid.in .asc-glow{animation:ascGlowIn 1s ease 2.1s forwards}
.conf-grid.in .asc-pulse{animation:ascPulse 2.6s ease-out 2.4s infinite}
@keyframes ascDraw{0%{stroke-dashoffset:250}43%{stroke-dashoffset:125}57%{stroke-dashoffset:125}100%{stroke-dashoffset:0}}
@keyframes ascClimb{0%{transform:translate(0,0)}43%{transform:translate(46px,-113px)}57%{transform:translate(46px,-113px)}100%{transform:translate(92px,-226px)}}
@keyframes ascGlowIn{to{opacity:.95}}
@keyframes ascPulse{0%{r:22px;opacity:.5}70%,100%{r:48px;opacity:0}}
@media (prefers-reduced-motion:reduce){
  .asc-lit{stroke-dashoffset:0}
  .asc-marker{transform:translate(92px,-226px)}
  .asc-glow{opacity:.95}
  .asc-pulse{display:none}
}

/* ---------- proof / market board (dark) ---------- */
.proof{position:relative;background:var(--ink);color:#fff;overflow:hidden;padding-block:clamp(4.5rem,9vw,7rem)}
.proof .wrap{position:relative;z-index:1}
.proof .sec-head{margin-bottom:2.6rem}
.board{max-width:920px;margin:0 auto 3rem;border:1px solid #2c2724;border-radius:var(--r);overflow:hidden;background:#161311}
.board-bar{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1.1rem;background:#0f0d0c;border-bottom:1px solid #2c2724;font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.14em;color:#a8a29e}
.board-bar .blink{color:#34d399;animation:blink 1.6s steps(2) infinite}
@keyframes blink{50%{opacity:.35}}
.board-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.board-cell{padding:1.7rem 1.4rem;border-right:1px solid #2c2724;display:flex;flex-direction:column;gap:.5rem}
.board-cell:last-child{border-right:none}
.bc-k{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.1em;color:#78716c}
.bc-v{font-family:var(--ff-display);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:600;color:#fff;line-height:1}
.bc-d{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.06em;color:#a8a29e}
.bc-d.up{color:#34d399}

.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.quote{background:#1f1b19;border:1px solid #2c2724;border-radius:var(--r);padding:1.5rem}
.quote blockquote{font-family:var(--ff-display);font-size:1.06rem;line-height:1.4;color:#f5f5f4;font-weight:400}
.quote figcaption{display:flex;align-items:center;gap:.6rem;margin-top:1.2rem;font-size:.82rem;color:#a8a29e}
.q-av{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--coral);color:#fff;font-family:var(--ff-mono);font-size:.62rem;font-weight:700}
.proof-note{text-align:center;margin-top:1.6rem;font-size:.82rem;color:#78716c}

/* ---------- faq ---------- */
.acc{max-width:780px;margin-inline:auto}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;list-style:none;padding:1.3rem .4rem;font-family:var(--ff-display);font-size:1.16rem;color:var(--ink);font-weight:500}
.acc summary::-webkit-details-marker{display:none}
.acc summary i{font-style:normal;font-family:var(--ff-mono);font-size:1.3rem;color:var(--coral);transition:transform .25s ease;flex:none}
.acc details[open] summary i{transform:rotate(45deg)}
.acc details>div{overflow:hidden;max-height:0;transition:max-height .3s ease}
.acc details[open]>div{max-height:320px}
.acc details>div p{padding:0 .4rem 1.4rem;font-size:.98rem;max-width:62ch}

/* ---------- final cta ---------- */
.cta{position:relative;overflow:hidden;text-align:center;padding-block:clamp(4.5rem,9vw,7rem);background:var(--surface);border-top:1px solid var(--line)}
.cta .wrap{position:relative;z-index:1}
.cta h2{font-size:clamp(2.3rem,5.5vw,4rem);margin-bottom:1rem}
.cta p{font-size:1.12rem;max-width:34em;margin:0 auto 2rem;color:var(--body)}
.cta-actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:#c9c4be;padding-top:3.4rem}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:2rem;padding-bottom:2.6rem;border-bottom:1px solid #2c2724}
.foot-brand .brand{color:#fff;font-size:1.4rem}
.foot-brand .brand-dot{color:var(--coral)}
.foot-brand p{margin-top:.7rem;font-size:.92rem;color:#a8a29e;max-width:22em}
.foot-col h4{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#78716c;margin-bottom:1rem;font-weight:500}
.foot-col a{display:block;font-size:.92rem;color:#d6d3d1;padding:.3rem 0;transition:color .15s}
.foot-col a:hover{color:var(--coral)}
.foot-base{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:1.5rem;font-size:.8rem;color:#78716c;flex-wrap:wrap}
.foot-tick{font-family:var(--ff-mono);letter-spacing:.08em;color:#57534e}
.foot-tick{color:#57534e}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .ticker-track,.board-bar .blink,.dots i{animation:none}
  html{scroll-behavior:auto}
}

/* ---------- responsive ---------- */
@media (max-width:920px){
  .hero-grid,.split,.feature,.feature.reverse,.conf-grid{grid-template-columns:1fr}
  .feature.reverse .feat-copy{order:0}
  .split-intro{position:static}
  .hero-room{transform:none;max-width:440px;margin-top:.5rem}
  .who-grid{grid-template-columns:1fr 1fr}
  .stat-cards{grid-template-columns:1fr 1fr}
  .quotes{grid-template-columns:1fr}
  .board-grid{grid-template-columns:1fr 1fr}
  .board-cell:nth-child(2){border-right:none}
  .board-cell:nth-child(1),.board-cell:nth-child(2){border-bottom:1px solid #2c2724}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  .nav,.head-cta .btn-ghost{display:none}
  .stat-cards,.who-grid{grid-template-columns:1fr}
  .ct-head,.ct-row{grid-template-columns:.9fr 1fr 1.2fr}
  .ct-rowlabel{font-size:.6rem;padding-inline:.8rem}
  .ct-cell{padding-inline:.8rem;font-size:.84rem}
  .ct-old{font-size:.62rem;padding-inline:.8rem}
  .ct-new{font-size:.92rem;padding-inline:.8rem}
  .foot-grid{grid-template-columns:1fr}
  .foot-base{justify-content:flex-start}
  .foot-tick{display:none}
}

/* ---------- mobile: drop the sticky-overlap hero → clean static stack (headline → card → page) ---------- */
@media (max-width:768px){
  .hero{position:relative;min-height:0;padding:clamp(3rem,9vw,4.5rem) 0 0;overflow-x:clip}
  .hero-grid{animation:none;transform:none;opacity:1}
  .room-stage{height:auto;padding:clamp(1.75rem,6vw,3rem) 0 0}
  .room-stage .hero-room{animation:none;transform:none}
  .scene-spacer{display:none}
  /* headline: let it wrap naturally (no forced breaks) & fit narrow screens */
  .hero h1{font-size:clamp(2.1rem,8.5vw,3.4rem)}
  .hero h1 br{display:none}
  .lede{font-size:1.06rem}
  .wrap{padding-inline:22px}
}
