/* ============================================================================
   Soarcery marketing site - shared styles (site.css)
   Mystic design system. Dark only. Three lights: purple=us/AI, teal=safe/yes,
   orange=uncertain/attention, red=bad/no. DM Sans + Geist Mono.
   Tokens mirror soarcery-design/colors_and_type.css.
   ========================================================================== */

:root{
  /* three lights */
  --purple:#7C3AED; --purple-300:#C4B5FD; --purple-400:#A78BFA; --purple-500:#8B5CF6; --purple-600:#7C3AED; --purple-700:#6D28D9;
  --purple-glow:rgba(124,58,237,.45);
  --orange:#F97316; --orange-300:#FDBA74; --orange-400:#FB923C; --orange-glow:rgba(249,115,22,.40);
  --teal:#14B8A6; --teal-300:#5EEAD4; --teal-400:#2DD4BF; --teal-glow:rgba(20,184,166,.40);
  --destructive:#ef4444; --destructive-300:#FCA5A5;
  /* surfaces */
  --bg:#050508; --bg-card:#0c0c12; --bg-secondary:#141420; --bg-accent:#1a1a2e; --bg-sidebar:#080810;
  /* foreground */
  --fg:#e4e4e7; --fg-secondary:#d4d4d8; --fg-muted:#a8a8b3; --fg-faint:rgba(228,228,231,.6);
  /* lines */
  --border:rgba(255,255,255,.10); --border-strong:rgba(255,255,255,.18); --border-primary:rgba(124,58,237,.40);
  /* type */
  --font-sans:'DM Sans',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  /* radius */
  --radius-md:8px; --radius-lg:10px; --radius-xl:14px; --radius-2xl:18px; --radius-3xl:24px;
  --pattern-dot-grid:radial-gradient(rgba(124,58,237,.035) 1px,transparent 1px);
  --maxw:1200px;
  --nav-h:68px;
}

*{box-sizing:border-box}
html{color-scheme:dark; scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); background-image:var(--pattern-dot-grid); background-size:24px 24px;
  color:var(--fg); font-family:var(--font-sans); font-weight:500; letter-spacing:.01em; font-size:16px;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden;
}
h1,h2,h3,h4,h5{font-family:var(--font-sans); font-weight:600; letter-spacing:-.02em; margin:0; line-height:1.08; color:var(--fg)}
p{margin:0; line-height:1.62; color:var(--fg-secondary)}
a{color:var(--purple-400); text-decoration:none; transition:color .15s}
a:hover{color:var(--purple-300)}
img,svg{display:block; max-width:100%}
ul{margin:0}
:focus-visible{outline:2px solid var(--purple); outline-offset:3px; border-radius:4px}

/* ---- layout ---- */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
.wrap-narrow{max-width:820px; margin:0 auto; padding:0 24px}
section{position:relative; padding:104px 0}
section.tight{padding:72px 0}
@media(max-width:680px){section{padding:72px 0}}

/* ---- eyebrow ---- */
.eyebrow{display:inline-flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:12px; font-weight:500;
  text-transform:uppercase; letter-spacing:.18em; color:var(--fg-muted)}
.eyebrow.tone-purple{color:var(--purple-300)} .eyebrow.tone-orange{color:var(--orange-300)} .eyebrow.tone-teal{color:var(--teal-300)}
.eyebrow .tick{width:18px; height:1px; background:currentColor; opacity:.5}

/* ---- section heads ---- */
.sec-head{max-width:720px; margin:0 auto 60px; text-align:center}
.sec-head.left{margin-left:0; text-align:left}
.sec-head h2{font-size:clamp(30px,4vw,44px); letter-spacing:-.03em; margin:18px 0 0; text-wrap:balance}
.sec-head p{font-size:clamp(16px,1.6vw,18px); color:var(--fg-muted); margin-top:18px; line-height:1.6}

/* ---- buttons ---- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid transparent; border-radius:var(--radius-md);
  font-family:var(--font-sans); font-weight:600; letter-spacing:-.01em; cursor:pointer; white-space:nowrap; text-decoration:none;
  transition:transform .18s ease,box-shadow .2s,background .2s,border-color .2s,color .15s}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn svg{width:1.05em; height:1.05em}
.btn-lg{padding:14px 24px; font-size:15px}
.btn-md{padding:10px 17px; font-size:14px}
.btn-sm{padding:7px 13px; font-size:13px}
.btn-cast{background:var(--purple); color:#fff; box-shadow:0 0 24px var(--purple-glow)}
.btn-cast:hover{background:var(--purple-500); box-shadow:0 0 34px var(--purple-glow); color:#fff}
.btn-ghost{background:transparent; color:var(--fg-secondary); border-color:var(--border-strong)}
.btn-ghost:hover{background:rgba(255,255,255,.04); border-color:var(--fg-faint); color:var(--fg)}
.btn-soft{background:rgba(124,58,237,.12); color:var(--purple-300); border-color:var(--border-primary)}
.btn-soft:hover{background:rgba(124,58,237,.2); color:var(--purple-300)}
.btn-link{color:var(--purple-300); padding:0; background:none}
.btn-link:hover{color:#fff}
.btn-link .arr{transition:transform .2s}
.btn-link:hover .arr{transform:translateX(3px)}
.btn-full{width:100%}

/* ---- rune badges ---- */
.rune{display:inline-flex; align-items:center; gap:6px; border:1px solid; border-radius:9999px; padding:3px 11px;
  font-family:var(--font-mono); font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap}
.rune .dot{width:6px; height:6px; border-radius:9999px; background:currentColor; box-shadow:0 0 6px currentColor}
.rune-purple{color:var(--purple-300); border-color:var(--border-primary); background:rgba(124,58,237,.1)}
.rune-teal{color:var(--teal-300); border-color:rgba(20,184,166,.4); background:rgba(20,184,166,.1)}
.rune-orange{color:var(--orange-300); border-color:rgba(249,115,22,.4); background:rgba(249,115,22,.1)}
.rune-red{color:var(--destructive-300); border-color:rgba(239,68,68,.4); background:rgba(239,68,68,.1)}
.rune-muted{color:var(--fg-muted); border-color:var(--border-strong); background:transparent}

/* ---- cards ---- */
.card{position:relative; border:1px solid var(--border); border-radius:var(--radius-xl); background:var(--bg-card); padding:26px;
  transition:border-color .18s,background .18s,transform .18s}
.card-hover:hover{border-color:var(--border-primary); background:rgba(124,58,237,.045); transform:translateY(-2px)}
.card h3{font-size:19px; margin:16px 0 9px; letter-spacing:-.02em}
.card p{font-size:14.5px; color:var(--fg-muted)}
.ico{width:42px; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border); background:rgba(255,255,255,.02)}
.ico svg{width:21px; height:21px; stroke-width:1.5}
.ico.p{color:var(--purple-300); border-color:var(--border-primary); background:rgba(124,58,237,.08)}
.ico.t{color:var(--teal-300); border-color:rgba(20,184,166,.35); background:rgba(20,184,166,.08)}
.ico.o{color:var(--orange-300); border-color:rgba(249,115,22,.35); background:rgba(249,115,22,.08)}

/* ---- grids ---- */
.grid{display:grid; gap:20px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)} .grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

/* ============================================================================
   HEADER / mega menu  (injected by site.js)
   ========================================================================== */
.site-header{position:sticky; top:0; z-index:100; border-bottom:1px solid transparent; transition:background .25s,border-color .25s,backdrop-filter .25s}
.site-header.scrolled{background:rgba(5,5,8,.8); backdrop-filter:blur(14px); border-bottom-color:var(--border)}
.nav-row{display:flex; align-items:center; justify-content:space-between; height:var(--nav-h); gap:16px}
.brand{display:flex; align-items:center; gap:10px; font-weight:600; font-size:18px; letter-spacing:-.02em; color:var(--fg); flex-shrink:0}
.brand:hover{color:var(--fg)}
.brand svg, .brand img{width:28px; height:28px}
.nav-primary{display:flex; align-items:center; gap:4px; flex:1; justify-content:center}
.nav-item{position:relative}
.nav-trigger{display:inline-flex; align-items:center; gap:5px; padding:8px 11px; border-radius:var(--radius-md); background:none; border:0;
  color:var(--fg-muted); font-family:var(--font-sans); font-size:14.5px; font-weight:500; cursor:pointer; transition:color .15s,background .15s}
.nav-trigger:hover, .nav-item.open .nav-trigger, .nav-trigger[aria-current="page"]{color:var(--fg); background:rgba(255,255,255,.04)}
.nav-trigger .chev{width:13px; height:13px; transition:transform .2s; opacity:.7}
.nav-item.open .nav-trigger .chev{transform:rotate(180deg)}
.nav-actions{display:flex; align-items:center; gap:8px; flex-shrink:0}
.nav-login{color:var(--fg-muted); font-size:14.5px; font-weight:500; padding:8px 6px}
.nav-login:hover{color:var(--fg)}

/* mega panel - fixed + JS-clamped to the viewport so it never overflows the page */
.mega{position:fixed; top:calc(var(--nav-h) + 14px); left:0; transform:translateY(-6px); width:max-content; max-width:min(720px,calc(100vw - 32px));
  background:rgba(10,10,16,.97); backdrop-filter:blur(18px); border:1px solid var(--border-strong); border-radius:var(--radius-2xl);
  box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(124,58,237,.06); padding:22px; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s,transform .2s,visibility .2s; z-index:120}
.nav-item.open .mega{opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0)}
/* invisible hover bridge across the gap between the trigger and the panel, so the pointer never leaves the nav item while crossing */
.mega::before{content:""; position:absolute; left:0; right:0; bottom:100%; height:36px}
.mega-grid{display:grid; gap:6px}
.mega-grid.cols-2{grid-template-columns:1fr 1fr; gap:6px 28px}
.mega-col-head{font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--fg-faint); padding:8px 12px 6px; margin-top:6px}
.mega-link{display:flex; gap:13px; align-items:flex-start; padding:11px 12px; border-radius:var(--radius-lg); border:1px solid transparent; transition:background .14s,border-color .14s}
.mega-link:hover{background:rgba(124,58,237,.07); border-color:var(--border-primary)}
.mega-link .mi{width:36px; height:36px; border-radius:10px; flex-shrink:0; display:flex; align-items:center; justify-content:center; position:relative;
  border:1px solid var(--border-primary); background:linear-gradient(150deg,rgba(124,58,237,.28),rgba(124,58,237,.05)); color:#C4B5FD;
  box-shadow:inset 0 0 12px rgba(124,58,237,.18)}
.mega-link .mi::after{content:""; position:absolute; top:-2px; right:-2px; width:6px; height:6px; border-radius:50%; background:radial-gradient(circle,#fff,transparent 70%); opacity:.55}
.mega-link .mi svg{width:18px; height:18px; stroke-width:1.7}
.mega-link.t .mi{color:#5EEAD4; border-color:rgba(20,184,166,.4); background:linear-gradient(150deg,rgba(20,184,166,.28),rgba(20,184,166,.05)); box-shadow:inset 0 0 12px rgba(20,184,166,.18)}
.mega-link.o .mi{color:#FDBA74; border-color:rgba(249,115,22,.4); background:linear-gradient(150deg,rgba(249,115,22,.28),rgba(249,115,22,.05)); box-shadow:inset 0 0 12px rgba(249,115,22,.18)}
.mega-link .mt{font-size:14.5px; font-weight:600; color:var(--fg); letter-spacing:-.01em}
.mega-link .md{font-size:12.5px; color:var(--fg-muted); margin-top:2px; line-height:1.45; max-width:30ch}
.mega-foot{margin-top:16px; padding-top:16px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:16px}
.mega-foot .blurb{font-size:13px; color:var(--fg-muted)}

/* mobile */
.nav-burger{display:none; width:42px; height:42px; border:1px solid var(--border-strong); border-radius:var(--radius-md); background:rgba(255,255,255,.03);
  align-items:center; justify-content:center; cursor:pointer; color:var(--fg)}
.nav-burger svg{width:20px; height:20px}
.mobile-nav{display:none}
@media(max-width:1080px){
  .nav-primary, .nav-actions .nav-login, .nav-actions .btn-ghost{display:none}
  .nav-burger{display:flex}
  .mobile-nav{display:block; position:fixed; inset:var(--nav-h) 0 0; z-index:90; background:rgba(5,5,8,.98); backdrop-filter:blur(12px);
    padding:18px 24px 48px; overflow-y:auto; transform:translateX(100%); transition:transform .3s ease; visibility:hidden}
  .mobile-nav.open{transform:translateX(0); visibility:visible}
  .m-sec{border-bottom:1px solid var(--border); padding:6px 0}
  .m-sec>summary{display:flex; align-items:center; justify-content:space-between; padding:14px 4px; font-size:17px; font-weight:600; color:var(--fg); cursor:pointer; list-style:none}
  .m-sec>summary::-webkit-details-marker{display:none}
  .m-sec>summary .chev{width:16px; height:16px; transition:transform .2s; color:var(--fg-muted)}
  .m-sec[open]>summary .chev{transform:rotate(180deg)}
  .m-links{padding:2px 4px 14px; display:grid; gap:2px}
  .m-links a{color:var(--fg-muted); font-size:15px; padding:9px 8px; border-radius:8px}
  .m-links a:hover{color:var(--fg); background:rgba(255,255,255,.04)}
  .m-cta{margin-top:22px; display:grid; gap:12px}
}

/* ============================================================================
   HERO kit
   ========================================================================== */
.field{pointer-events:none; position:absolute; inset:0; z-index:0; overflow:hidden}
.halo{position:absolute; border-radius:9999px; filter:blur(90px)}
.halo-p{top:-25%; left:2%; width:60vw; height:60vw; max-width:780px; max-height:780px; opacity:.5; background:radial-gradient(circle,var(--purple-glow),transparent 60%)}
.halo-o{bottom:-35%; right:-10%; width:46vw; height:46vw; opacity:.24; background:radial-gradient(circle,var(--orange-glow),transparent 60%)}
.halo-t{top:24%; right:14%; width:34vw; height:34vw; opacity:.2; background:radial-gradient(circle,var(--teal-glow),transparent 60%)}
.grid-floor{position:absolute; inset:auto 0 0 0; height:55%; z-index:0; pointer-events:none;
  background-image:linear-gradient(rgba(124,58,237,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.08) 1px,transparent 1px);
  background-size:48px 48px; mask-image:linear-gradient(to top,#000,transparent); -webkit-mask-image:linear-gradient(to top,#000,transparent);
  transform:perspective(620px) rotateX(58deg); transform-origin:bottom; opacity:.5}

.hero{position:relative; overflow:hidden; padding:128px 0 96px}
@media(max-width:680px){.hero{padding:80px 0 64px}}
.hero-center{position:relative; z-index:1; text-align:center; max-width:880px; margin:0 auto}
.hero h1{font-size:clamp(40px,6.2vw,68px); line-height:1.03; letter-spacing:-.035em; margin:22px 0 0; text-wrap:balance}
.grad{background:linear-gradient(108deg,#fff 8%,var(--purple-300) 52%,var(--purple-400) 92%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent}
.hero .sub{font-size:clamp(17px,1.9vw,20px); line-height:1.55; color:var(--fg-muted); max-width:680px; margin:24px auto 0}
.hero-center .sub{margin-left:auto; margin-right:auto}
.hero .sub b{color:var(--fg-secondary); font-weight:600}
.cta-row{display:flex; gap:14px; margin-top:38px; flex-wrap:wrap}
.hero-center .cta-row{justify-content:center}
.trustline{margin-top:30px; font-family:var(--font-mono); font-size:12.5px; letter-spacing:.03em; color:var(--fg-faint)}
.hat{width:74px; height:74px; transform-origin:center bottom}
.hero-center .hat{margin:0 auto 6px}

/* split hero */
.hero-split{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; position:relative; z-index:1}
@media(max-width:940px){.hero-split{grid-template-columns:1fr; gap:40px}}
.hero-split h1{font-size:clamp(38px,5vw,60px)}
.hero-split .sub{margin-left:0}

/* page hero (interior, shorter) */
.phero{position:relative; overflow:hidden; padding:120px 0 64px}
.phero-inner{position:relative; z-index:1; max-width:760px}
.phero.center .phero-inner{margin:0 auto; text-align:center}
.phero h1{font-size:clamp(36px,5vw,56px); letter-spacing:-.035em; margin:20px 0 0; text-wrap:balance}
.phero .sub{font-size:clamp(16px,1.7vw,19px); color:var(--fg-muted); margin-top:20px; line-height:1.55; max-width:640px}
.phero.center .sub{margin-left:auto; margin-right:auto}

/* ---- product frame (faux Mystic UI) ---- */
.frame{border:1px solid var(--border-strong); border-radius:var(--radius-2xl);
  background:linear-gradient(to bottom,rgba(124,58,237,.07),var(--bg-card)); box-shadow:0 30px 80px rgba(0,0,0,.45),0 0 70px rgba(124,58,237,.16);
  overflow:hidden; position:relative}
.frame-bar{display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--border); background:rgba(8,8,16,.6)}
.frame-bar i{width:11px; height:11px; border-radius:9999px; background:var(--bg-accent)}
.frame-bar .url{margin-left:12px; font-family:var(--font-mono); font-size:12px; color:var(--fg-faint)}
.frame-body{padding:20px}

/* ---- verdict spread ---- */
.spread{border:1px solid var(--border); border-radius:var(--radius-xl); background:var(--bg-card); padding:24px}
.spread-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px}
.spread-head .file{font-family:var(--font-mono); font-size:12px; color:var(--fg-faint)}
.eng{display:flex; align-items:center; gap:14px; padding:11px 0; border-bottom:1px solid var(--border)}
.eng:last-of-type{border-bottom:none}
.eng .name{font-family:var(--font-mono); font-size:13px; color:var(--fg-secondary); width:110px; flex-shrink:0}
.eng .track{flex:1; height:8px; border-radius:9999px; background:var(--bg-secondary); overflow:hidden}
.eng .fill{height:100%; border-radius:9999px; width:0; transition:width 1.1s cubic-bezier(.2,.7,.2,1)}
.eng .verd{font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.04em; width:92px; text-align:right; flex-shrink:0}
.spread-foot{display:flex; align-items:center; justify-content:space-between; margin-top:18px; padding-top:16px; border-top:1px solid var(--border)}
.spread-foot .lab{font-family:var(--font-mono); font-size:12px; color:var(--fg-muted)}

/* ---- 3-stage flow ---- */
.flow{display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--border); border-radius:var(--radius-2xl); overflow:hidden; background:var(--bg-card)}
.stage{padding:34px; border-right:1px solid var(--border); position:relative}
.stage:last-child{border-right:none}
.stage .num{font-family:var(--font-mono); font-size:12px; color:var(--fg-faint); letter-spacing:.04em}
.stage h3{font-size:21px; margin:16px 0 10px}
.stage p{font-size:14.5px; color:var(--fg-muted)}
.stage .cap{position:absolute; top:34px; right:34px}
@media(max-width:880px){.flow{grid-template-columns:1fr}.stage{border-right:none; border-bottom:1px solid var(--border)}.stage:last-child{border-bottom:none}}

/* ---- stats band ---- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center}
@media(max-width:880px){.stats{grid-template-columns:1fr 1fr; gap:36px 24px}}
.stat .n{font-size:clamp(34px,4vw,48px); font-weight:700; letter-spacing:-.04em; line-height:1;
  background:linear-gradient(120deg,#fff,var(--purple-300)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent}
.stat .l{font-size:14px; color:var(--fg-muted); margin-top:12px; line-height:1.45}

/* ---- logo marquee ---- */
.marquee{position:relative; overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex; gap:18px; width:max-content; animation:marquee 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.logo-pill{display:flex; align-items:center; gap:11px; flex-shrink:0; border:1px solid var(--border); border-radius:9999px;
  background:var(--bg-card); padding:11px 20px 11px 14px}
.logo-pill img{width:24px; height:24px; object-fit:contain}
.logo-pill span{font-family:var(--font-mono); font-size:13px; color:var(--fg-secondary); white-space:nowrap}
@keyframes marquee{to{transform:translateX(calc(-50% - 9px))}}

/* logo grid (static) */
.logo-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:14px}
@media(max-width:880px){.logo-grid{grid-template-columns:repeat(3,1fr)}}
.logo-cell{display:flex; flex-direction:column; align-items:center; gap:10px; justify-content:center; border:1px solid var(--border);
  border-radius:var(--radius-lg); background:var(--bg-card); padding:20px 12px; transition:border-color .15s,background .15s}
.logo-cell:hover{border-color:var(--border-primary); background:rgba(124,58,237,.04)}
.logo-cell img{width:30px; height:30px; object-fit:contain}
.logo-cell span{font-family:var(--font-mono); font-size:11px; color:var(--fg-muted)}

/* ---- feature split (alternating) ---- */
.fsplit{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center}
.fsplit.rev .fsplit-media{order:2}
@media(max-width:880px){.fsplit{grid-template-columns:1fr; gap:32px}.fsplit.rev .fsplit-media{order:0}}
.fsplit h3{font-size:clamp(24px,3vw,32px); letter-spacing:-.03em; margin:16px 0 14px}
.fsplit p{font-size:16px; color:var(--fg-muted)}

/* ---- checklist ---- */
.checks{list-style:none; padding:0; margin:18px 0 0; display:grid; gap:12px}
.checks li{display:flex; gap:12px; align-items:flex-start; font-size:15px; color:var(--fg-secondary); line-height:1.5}
.checks li .ck{flex-shrink:0; margin-top:2px; width:20px; height:20px; border-radius:6px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border-primary); background:rgba(124,58,237,.12); color:var(--purple-300)}
.checks li .ck svg{width:12px; height:12px; stroke-width:2.6}
.checks.teal li .ck{border-color:rgba(20,184,166,.4); background:rgba(20,184,166,.12); color:var(--teal-300)}

/* ---- CTA band ---- */
.band{border:1px solid var(--border-primary); border-radius:var(--radius-3xl); position:relative; overflow:hidden;
  background:linear-gradient(to bottom,rgba(124,58,237,.12),var(--bg-card)); box-shadow:0 0 60px var(--purple-glow); padding:64px 48px; text-align:center}
.band h2{font-size:clamp(30px,4vw,42px); letter-spacing:-.03em; position:relative; z-index:1}
.band p{font-size:18px; color:var(--fg-muted); max-width:580px; margin:18px auto 0; position:relative; z-index:1}
.band .cta-row{justify-content:center; position:relative; z-index:1}
.band .halo-p{opacity:.4; top:-60%; left:30%}

/* ---- quote / belief ---- */
.quote{border:1px solid var(--border); border-left:2px solid var(--purple); border-radius:var(--radius-xl); background:var(--bg-card); padding:32px 36px}
.quote p{font-size:clamp(18px,2.2vw,24px); color:var(--fg); font-weight:500; letter-spacing:-.01em; line-height:1.4}
.quote .by{margin-top:18px; font-family:var(--font-mono); font-size:13px; color:var(--fg-muted)}

/* ---- step list (numbered) ---- */
.steps{display:grid; gap:14px; counter-reset:s}
.step{display:flex; gap:18px; align-items:flex-start; border:1px solid var(--border); border-radius:var(--radius-xl); background:var(--bg-card); padding:22px 24px}
.step .sn{flex-shrink:0; width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:14px; color:var(--purple-300); border:1px solid var(--border-primary); background:rgba(124,58,237,.1)}
.step h4{font-size:17px; margin:0 0 6px} .step p{font-size:14.5px; color:var(--fg-muted)}

/* ---- prose (legal / blog) ---- */
.prose{max-width:760px; margin:0 auto}
.prose h2{font-size:26px; letter-spacing:-.02em; margin:44px 0 14px}
.prose h3{font-size:19px; margin:28px 0 10px}
.prose p{font-size:16px; color:var(--fg-secondary); margin:0 0 16px; line-height:1.7}
.prose ul,.prose ol{margin:0 0 16px; padding-left:22px; color:var(--fg-secondary); font-size:16px; line-height:1.7}
.prose li{margin-bottom:8px}
.prose a{color:var(--purple-300); text-decoration:underline; text-underline-offset:2px}
.prose strong{color:var(--fg)}
.prose hr{border:none; border-top:1px solid var(--border); margin:36px 0}
.prose table{width:100%; border-collapse:collapse; margin:0 0 20px; font-size:14.5px}
.prose th,.prose td{border:1px solid var(--border); padding:11px 14px; text-align:left; vertical-align:top}
.prose th{font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--fg-muted); background:var(--bg-card)}
.prose td{color:var(--fg-secondary)}
.legal-meta{font-family:var(--font-mono); font-size:12px; color:var(--fg-faint); margin-top:14px}
.toc{border:1px solid var(--border); border-radius:var(--radius-xl); background:var(--bg-card); padding:20px 24px; margin:0 0 36px}
.toc h5{font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--fg-faint); margin:0 0 12px}
.toc a{display:block; color:var(--fg-muted); font-size:14px; padding:5px 0}
.toc a:hover{color:var(--fg)}

/* ---- forms ---- */
.field-row{margin-bottom:18px}
.field-row label{display:block; font-family:var(--font-mono); font-size:12px; font-weight:500; text-transform:uppercase; letter-spacing:.1em; color:var(--fg-muted); margin-bottom:8px}
.field-row input,.field-row select,.field-row textarea{width:100%; padding:12px 14px; font-family:var(--font-sans); font-size:15px; font-weight:500; color:var(--fg);
  background:var(--bg-secondary); border:1px solid var(--border); border-radius:var(--radius-md); transition:border-color .15s,box-shadow .15s; appearance:none}
.field-row textarea{min-height:110px; resize:vertical; line-height:1.5}
.field-row input::placeholder,.field-row textarea::placeholder{color:var(--fg-faint)}
.field-row input:focus,.field-row select:focus,.field-row textarea:focus{outline:none; border-color:var(--purple); box-shadow:0 0 0 3px var(--purple-glow)}
.field-row select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23a8a8b3' stroke-width='2' viewBox='0 0 24 24'><path stroke-linecap='round' stroke-linejoin='round' d='M6 9l6 6 6-6'/></svg>"); background-repeat:no-repeat; background-position:right 14px center; background-size:16px; padding-right:42px}
.field-row .helper{font-size:13px; color:var(--fg-faint); margin-top:7px}
.form-note{font-size:13px; color:var(--teal-300); margin-top:10px; min-height:18px}

/* ============================================================================
   FOOTER  (injected by site.js)
   ========================================================================== */
.site-footer{border-top:1px solid var(--border); padding:72px 0 36px; margin-top:40px; position:relative}
.foot-grid{display:grid; grid-template-columns:1.7fr repeat(4,1fr); gap:36px}
@media(max-width:880px){.foot-grid{grid-template-columns:1fr 1fr; gap:32px}}
.foot-brand p{font-size:13px; color:var(--fg-faint); max-width:260px; margin-top:14px; line-height:1.6}
.foot-brand .soc{display:flex; gap:10px; margin-top:18px}
.foot-brand .soc a{width:34px; height:34px; border:1px solid var(--border); border-radius:9px; display:flex; align-items:center; justify-content:center; color:var(--fg-muted)}
.foot-brand .soc a:hover{color:var(--fg); border-color:var(--border-strong)}
.foot-brand .soc svg{width:16px; height:16px}
.foot-col h5{font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--fg-faint); margin:0 0 16px}
.foot-col a{display:flex; align-items:center; gap:7px; color:var(--fg-muted); font-size:14px; margin-bottom:11px}
.foot-col a:hover{color:var(--fg)}
.foot-col a .tag{font-family:var(--font-mono); font-size:9px; text-transform:uppercase; letter-spacing:.06em; color:var(--orange-300); border:1px solid rgba(249,115,22,.4); border-radius:4px; padding:1px 4px}
.foot-bottom{display:flex; align-items:center; justify-content:space-between; margin-top:52px; padding-top:24px; border-top:1px solid var(--border); color:var(--fg-faint); font-size:13px; flex-wrap:wrap; gap:14px}
.foot-bottom .links{display:flex; gap:18px; flex-wrap:wrap}
.foot-bottom a{color:var(--fg-faint)}
.foot-bottom a:hover{color:var(--fg-muted)}

/* ---- cookie banner ---- */
.cookie{position:fixed; bottom:18px; left:18px; right:18px; max-width:540px; margin:0 auto; z-index:200; border:1px solid var(--border-strong);
  border-radius:var(--radius-xl); background:rgba(10,10,16,.97); backdrop-filter:blur(12px); box-shadow:0 20px 60px rgba(0,0,0,.5); padding:20px 22px;
  transform:translateY(140%); transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.cookie.show{transform:translateY(0)}
.cookie p{font-size:13.5px; color:var(--fg-muted); line-height:1.55}
.cookie .row{display:flex; gap:10px; margin-top:16px; flex-wrap:wrap}

/* ---- mock flag ---- */
.mock-flag{position:fixed; bottom:14px; right:14px; z-index:150; font-family:var(--font-mono); font-size:11px; color:var(--fg-faint);
  background:rgba(12,12,18,.85); border:1px solid var(--border); border-radius:9999px; padding:6px 12px; backdrop-filter:blur(6px)}
@media(max-width:680px){.mock-flag{display:none}}

/* ============================================================================
   motion + reveal
   ========================================================================== */
@keyframes hatfloat{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-6px)}}
[data-anim="hat"]{animation:hatfloat 5s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.35}}
.live-dot{animation:pulse-dot 1.8s ease-in-out infinite}
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1; transform:none}
.reveal.d1{transition-delay:.08s} .reveal.d2{transition-delay:.16s} .reveal.d3{transition-delay:.24s} .reveal.d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  [data-anim],.marquee-track,.live-dot{animation:none!important}
  .reveal{opacity:1!important; transform:none!important; transition:none!important}
}

/* utilities */
.mono{font-family:var(--font-mono)}
.muted{color:var(--fg-muted)} .faint{color:var(--fg-faint)} .secondary{color:var(--fg-secondary)}
.center{text-align:center}
.mt-s{margin-top:14px}.mt-m{margin-top:26px}.mt-l{margin-top:44px}
.divider{height:1px; background:var(--border); border:0; margin:0}
.tag-soon{font-family:var(--font-mono); font-size:9px; text-transform:uppercase; letter-spacing:.06em; color:var(--orange-300); border:1px solid rgba(249,115,22,.4); border-radius:4px; padding:1px 5px; vertical-align:middle}

/* real product screenshots */
.frame-body.shot{padding:0}
.frame-body.shot img{display:block; width:100%; height:auto}
.shot-note{margin-top:12px; font-family:var(--font-mono); font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--fg-faint); text-align:center}

