/* Cultivate marketing site — shared design system
   Pages: index, research, search, best-night, tour-planner, data, how-it-works, use-cases, pricing */

:root{
  --bg:#07080c; --bg2:#0b0d14; --panel:#0f1119; --panel2:#131623;
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.14);
  --fg:#f2f3f7; --mute:rgba(242,243,247,.64); --dim:rgba(242,243,247,.42);
  --A:#8b7bf7; --G:#5ad1a5; --Y:#f2b544; --B:#6fa8f5; --R:#ff6b7a; --O:#ff9f6b;
  --A2:#b3a6ff; --G2:#8fe0ac; --Y2:#ffd68a; --B2:#9dc6ff; --R2:#ffa3ad;
  --dsp:'Archivo',system-ui,sans-serif; --body:'Instrument Sans',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --w:1280px; --gut:clamp(18px,4vw,48px); --r:16px; --r2:22px;
  --shadow:0 30px 80px rgba(0,0,0,.55), 0 2px 0 rgba(255,255,255,.04) inset;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);max-width:100%;overflow-x:clip}
body{isolation:isolate}
body{font-family:var(--body);font-size:16.5px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--A2);text-decoration:none}
a:hover{color:#d7cfff}
img{max-width:100%;display:block}
::selection{background:rgba(139,123,247,.35);color:#fff}
:focus-visible{outline:2px solid rgba(139,123,247,.8);outline-offset:3px;border-radius:6px}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#22242e;border-radius:10px}
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}

/* ---------- type ---------- */
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:10px;margin:0 0 18px}
.eyebrow i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ac,var(--A));box-shadow:0 0 12px var(--ac,var(--A))}
.eyebrow b{color:var(--ac,var(--A2));font-weight:600}
h1,h2,h3,h4{font-family:var(--dsp);color:#fff;margin:0;text-wrap:balance}
h1{font-weight:900;font-size:clamp(40px,6.4vw,86px);line-height:.94;letter-spacing:-.035em}
h2{font-weight:800;font-size:clamp(30px,4.4vw,58px);line-height:1;letter-spacing:-.03em}
h3{font-weight:800;font-size:clamp(20px,2.2vw,26px);line-height:1.15;letter-spacing:-.02em}
h4{font-weight:700;font-size:17px;letter-spacing:-.01em}
.lede{font-size:clamp(17px,1.5vw,21px);line-height:1.5;color:var(--mute);max-width:64ch;margin:22px 0 0}
p{margin:0}
.mute{color:var(--mute)}.dim{color:var(--dim)}
.mono{font-family:var(--mono)}
.grad{background:linear-gradient(92deg,#fff 0%,#d9d3ff 45%,var(--A2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-g{background:linear-gradient(92deg,#fff,var(--G2));-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-y{background:linear-gradient(92deg,#fff,var(--Y2));-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-b{background:linear-gradient(92deg,#fff,var(--B2));-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-r{background:linear-gradient(92deg,#fff,var(--R2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- layout ---------- */
.container{max-width:var(--w);margin:0 auto;padding:0 var(--gut)}
.section{position:relative;padding:clamp(72px,9vw,140px) 0}
.section.tight{padding:clamp(48px,6vw,90px) 0}
.section.band{background:linear-gradient(180deg,rgba(10,12,19,.0),rgba(12,14,22,.85) 18%,rgba(12,14,22,.85) 82%,rgba(10,12,19,0));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section.band.tint-a{background:linear-gradient(180deg,rgba(139,123,247,.10),rgba(12,14,22,.9) 24%,rgba(12,14,22,.9) 78%,rgba(139,123,247,.04))}
.section.band.tint-g{background:linear-gradient(180deg,rgba(90,209,165,.10),rgba(12,14,22,.9) 24%,rgba(12,14,22,.9) 78%,rgba(90,209,165,.04))}
.section.band.tint-y{background:linear-gradient(180deg,rgba(242,181,68,.10),rgba(12,14,22,.9) 24%,rgba(12,14,22,.9) 78%,rgba(242,181,68,.04))}
.section.band.tint-b{background:linear-gradient(180deg,rgba(111,168,245,.10),rgba(12,14,22,.9) 24%,rgba(12,14,22,.9) 78%,rgba(111,168,245,.04))}
.section.band.tint-g{--ac:var(--G)}.section.band.tint-y{--ac:var(--Y)}.section.band.tint-b{--ac:var(--B)}
.section.band.tint-r{background:linear-gradient(180deg,rgba(255,107,122,.10),rgba(12,14,22,.9) 24%,rgba(12,14,22,.9) 78%,rgba(255,107,122,.04))}
.head{max-width:820px;margin-bottom:clamp(36px,5vw,64px)}
.head.center{margin-left:auto;margin-right:auto;text-align:center}
.head.center .eyebrow{justify-content:center}
.head.center .lede{margin-left:auto;margin-right:auto}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.split>*,.grid>*{min-width:0}
.split.rev>.text{order:2}.split.rev>.media{order:1}
@media (max-width:980px){.g3,.g4{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.split.rev>.text{order:1}.split.rev>.media{order:2}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:12px;font-family:var(--body);font-weight:600;font-size:15px;line-height:1;border:1px solid var(--line2);color:var(--fg);background:rgba(255,255,255,.03);transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;cursor:pointer;white-space:nowrap}
.btn:hover{transform:translateY(-1px);background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.26);color:#fff}
.btn.primary{background:var(--A);border-color:var(--A);color:#07080c;box-shadow:0 10px 30px rgba(139,123,247,.28)}
.btn.primary:hover{background:#9c8ef9;border-color:#9c8ef9;color:#07080c;box-shadow:0 14px 36px rgba(139,123,247,.4)}
.btn.g{background:var(--G);border-color:var(--G);color:#07080c;box-shadow:0 10px 30px rgba(90,209,165,.22)}
.btn.g:hover{background:#74dcb5;border-color:#74dcb5;color:#07080c}
.btn.sm{padding:10px 15px;font-size:13.5px;border-radius:10px}
.btn .arr{transition:transform .2s}.btn:hover .arr{transform:translateX(3px)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px;align-items:center}
.link{font-weight:600;color:var(--A2);display:inline-flex;gap:8px;align-items:center}
.link:hover .arr{transform:translateX(3px)}.link .arr{transition:transform .2s}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px var(--gut);background:linear-gradient(180deg,rgba(7,8,12,.92),rgba(7,8,12,.72));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06);transition:padding .25s}
.nav.scrolled{padding:10px var(--gut)}
.brand{display:flex;align-items:center;gap:11px;color:#fff;font-family:var(--dsp);font-weight:800;font-size:19px;letter-spacing:-.02em}
.brand small{font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.2em;color:var(--dim);margin-left:2px}
.brand svg{width:30px;height:30px}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links>a,.nav-links>.dd>button{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border-radius:9px;color:var(--mute);font-size:14px;white-space:nowrap;font-weight:500;background:none;border:0;font-family:var(--body);cursor:pointer;transition:color .2s,background .2s}
.nav-links>a:hover,.nav-links>.dd>button:hover,.nav-links>a.on,.nav-links>.dd.on>button{color:#fff;background:rgba(255,255,255,.06)}
.dd{position:relative}
.dd-menu{position:absolute;top:calc(100% + 10px);left:0;min-width:320px;padding:8px;background:#0f1119;border:1px solid var(--line2);border-radius:14px;box-shadow:0 30px 60px rgba(0,0,0,.6);opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .18s,transform .18s}
.dd:hover .dd-menu,.dd:focus-within .dd-menu,.dd.open .dd-menu{opacity:1;transform:none;pointer-events:auto}
.dd-menu a{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;color:var(--fg)}
.dd-menu a:hover{background:rgba(255,255,255,.05)}
.dd-menu a .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:700;color:#07080c}
.dd-menu a b{display:block;font-size:14px;font-weight:600}
.dd-menu a span{display:block;font-size:12.5px;color:var(--dim)}
.nav-cta{display:flex;align-items:center;gap:8px}
.nav-cta .signin{color:var(--mute);font-size:14px;font-weight:500;padding:9px 12px}
.nav-cta .signin:hover{color:#fff}
.burger{display:none;width:42px;height:42px;border-radius:10px;border:1px solid var(--line2);background:none;color:#fff;cursor:pointer;place-items:center}
.mnav{display:none;position:fixed;inset:64px 0 0 0;z-index:49;background:rgba(7,8,12,.98);padding:20px var(--gut);overflow:auto}
.mnav.open{display:block}
.mnav a{display:block;padding:14px 4px;border-bottom:1px solid var(--line);color:#fff;font-size:18px;font-weight:600}
.mnav .sub a{font-size:15px;color:var(--mute);padding:10px 4px 10px 18px;font-weight:500}
.mnav .mcta{display:flex;gap:10px;margin-top:22px}
@media (max-width:1180px){.nav-links>a,.nav-links>.dd>button{padding:8px 9px;font-size:13.5px}}
@media (max-width:1060px){.nav-links{display:none}.nav-cta .signin,.nav-cta .btn{display:none}.burger{display:grid}}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(120px,15vw,170px) 0 clamp(40px,6vw,80px);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 18% 18%,rgba(139,123,247,.18),transparent 62%),radial-gradient(45% 40% at 90% 70%,rgba(111,168,245,.10),transparent 60%);pointer-events:none}
.hero.g::before{background:radial-gradient(60% 50% at 18% 18%,rgba(90,209,165,.16),transparent 62%),radial-gradient(45% 40% at 90% 70%,rgba(139,123,247,.10),transparent 60%)}
.hero.y::before{background:radial-gradient(60% 50% at 18% 18%,rgba(242,181,68,.15),transparent 62%),radial-gradient(45% 40% at 90% 70%,rgba(255,107,122,.10),transparent 60%)}
.hero.b::before{background:radial-gradient(60% 50% at 18% 18%,rgba(111,168,245,.16),transparent 62%),radial-gradient(45% 40% at 90% 70%,rgba(139,123,247,.10),transparent 60%)}
.hero.r::before{background:radial-gradient(60% 50% at 18% 18%,rgba(255,107,122,.15),transparent 62%),radial-gradient(45% 40% at 90% 70%,rgba(242,181,68,.10),transparent 60%)}
.hero .gridbg{display:none;position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(70% 60% at 50% 20%,#000 30%,transparent 100%);-webkit-mask-image:radial-gradient(70% 60% at 50% 20%,#000 30%,transparent 100%);pointer-events:none}
.hero .container{position:relative;z-index:1}
.hero-net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.95}
.hero-live{position:relative}
.hero-inner{max-width:900px}
.hero-inner.hero-cols{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(28px,5vw,80px);align-items:end}
.hero .lede{max-width:60ch}
.hero h1 .l{display:block;overflow:hidden}
.hero h1 .l span{display:block;transform:translateY(110%);animation:lineup .9s cubic-bezier(.16,.84,.24,1) forwards}
.hero h1 .l:nth-child(2) span{animation-delay:.12s}.hero h1 .l:nth-child(3) span{animation-delay:.24s}
@keyframes lineup{to{transform:none}}
.hero-live{display:grid;gap:10px;min-width:220px;padding-bottom:6px}
.hero-live .hl{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:8px;margin-bottom:4px}
.hero-live .hl i{width:6px;height:6px;border-radius:50%;background:var(--G);box-shadow:0 0 10px var(--G);animation:puls 1.8s infinite}
.hero-live .row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);position:relative}
.hero-live .row::before{content:"";position:absolute;left:-14px;top:14px;bottom:14px;width:2px;border-radius:2px;background:var(--ac,var(--A))}
.hero-live .row .v{font-family:var(--dsp);font-weight:800;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums}
.hero-live .row .l{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);text-align:right;max-width:12ch;line-height:1.5}
@media (max-width:980px){.hero-inner.hero-cols{grid-template-columns:1fr}.hero-live{grid-template-columns:repeat(2,1fr);gap:8px 24px;padding-top:8px}.hero-live .hl{grid-column:1/-1}.hero-live .row::before{left:-10px}}
@media (max-width:520px){.hero-live{grid-template-columns:1fr}}

/* ---------- screenshot frames ---------- */
.shot{position:relative;border-radius:var(--r);border:1px solid rgba(255,255,255,.12);background:#0b0d14;box-shadow:var(--shadow);overflow:hidden}
.shot .bar{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.025)}
.shot .bar i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.14)}
.shot .bar i:nth-child(1){background:#ff5f57}.shot .bar i:nth-child(2){background:#febc2e}.shot .bar i:nth-child(3){background:#28c840}
.shot .bar span{margin-left:8px;font-family:var(--mono);font-size:10.5px;color:var(--dim);letter-spacing:.06em;flex:1;text-align:center;padding-right:44px}
.shot img{width:100%;height:auto}
.shot.glow::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;box-shadow:0 0 0 1px rgba(139,123,247,.18) inset}
.shot-wrap{position:relative}
.shot-wrap .halo{position:absolute;inset:-8% -6% -12%;background:radial-gradient(50% 50% at 50% 55%,var(--halo,rgba(139,123,247,.35)),transparent 70%);filter:blur(30px);z-index:0;pointer-events:none}
.shot-wrap .shot{position:relative;z-index:1}
.hero-stack{position:relative;margin-top:clamp(40px,6vw,64px);perspective:1600px}
.hero-stack .main{transform:rotateX(6deg);transform-origin:50% 0;transition:transform 1.2s cubic-bezier(.16,.84,.24,1)}
.hero-stack.in .main{transform:rotateX(0)}
.hero-stack .float{position:absolute;width:34%;right:-2%;bottom:-8%;z-index:3;transform:translateY(20px);opacity:0;transition:opacity .9s .5s,transform .9s .5s cubic-bezier(.16,.84,.24,1)}
.hero-stack.in .float{opacity:1;transform:none}
@media (max-width:760px){.hero-stack .float{display:none}}

/* ---------- cards ---------- */
.card{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:var(--r);padding:26px;transition:transform .25s,border-color .25s,background .25s}
.card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.18)}
.card .k{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ac,var(--A2));margin-bottom:14px;display:flex;align-items:center;gap:8px}
.card h3{margin-bottom:10px}
.card p{color:var(--mute);font-size:15.5px}
.card ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.card ul li{position:relative;padding-left:20px;color:var(--mute);font-size:14.5px}
.card ul li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:3px;background:var(--ac,var(--A));opacity:.85}
.card.ac-a{--ac:var(--A)}.card.ac-g{--ac:var(--G)}.card.ac-y{--ac:var(--Y)}.card.ac-b{--ac:var(--B)}.card.ac-r{--ac:var(--R)}
.card.ac-a .k{color:var(--A2)}.card.ac-g .k{color:var(--G2)}.card.ac-y .k{color:var(--Y2)}.card.ac-b .k{color:var(--B2)}.card.ac-r .k{color:var(--R2)}
.card .num{position:absolute;top:22px;right:22px;font-family:var(--mono);font-size:11px;color:var(--dim)}
.card.big{padding:34px}
.card.clickable{cursor:pointer;display:block;color:inherit}
.card.clickable:hover{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02))}
.icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--ac,var(--A)) 16%,transparent);border:1px solid color-mix(in srgb,var(--ac,var(--A)) 40%,transparent);color:var(--ac,var(--A));margin-bottom:18px;font-family:var(--mono);font-weight:700;font-size:14px}
.icon svg{width:20px;height:20px}
.ac-a{--ac:var(--A)}.ac-g{--ac:var(--G)}.ac-y{--ac:var(--Y)}.ac-b{--ac:var(--B)}.ac-r{--ac:var(--R)}
.tag{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;border:1px solid color-mix(in srgb,var(--ac,var(--A)) 45%,transparent);background:color-mix(in srgb,var(--ac,var(--A)) 12%,transparent);color:var(--ac,var(--A2))}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}

/* ---------- chapters (the story) ---------- */
.rail{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative;margin-top:clamp(32px,4vw,56px)}
.rail .track{position:absolute;left:12.5%;right:12.5%;top:31px;height:2px;background:rgba(255,255,255,.08);z-index:0}
.rail .track .fill{position:absolute;left:0;top:0;height:100%;width:0;background:linear-gradient(90deg,var(--B),var(--G) 34%,var(--Y) 67%,var(--A));box-shadow:0 0 14px rgba(139,123,247,.5);transition:width 1.1s cubic-bezier(.16,.84,.24,1)}
.rail .track .spark{position:absolute;top:50%;left:0;width:10px;height:10px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 16px #fff,0 0 30px var(--A);opacity:0;transition:left 1.1s cubic-bezier(.16,.84,.24,1),opacity .3s}
.rail.live .track .spark{opacity:1}
.rail a{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;padding:0 6px;color:inherit;z-index:1}
.rail .dot{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:13px;background:#0f1119;border:2px solid color-mix(in srgb,var(--ac) 55%,transparent);color:var(--ac);position:relative;margin-bottom:22px;transition:transform .35s,box-shadow .35s,border-color .35s,background .35s}
.rail a:hover .dot,.rail a.on .dot{transform:scale(1.1);border-color:var(--ac);background:color-mix(in srgb,var(--ac) 14%,#0f1119);box-shadow:0 0 0 8px color-mix(in srgb,var(--ac) 14%,transparent),0 0 34px color-mix(in srgb,var(--ac) 45%,transparent)}
.rail .thumb{width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#0b0d14;margin-bottom:18px;position:relative;transition:border-color .35s,transform .35s,box-shadow .35s}
.rail .thumb img{width:100%;height:100%;object-fit:cover;object-position:top left;opacity:.8;transition:opacity .35s,transform .6s}
.rail .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,8,12,.7));pointer-events:none}
.rail a:hover .thumb,.rail a.on .thumb{border-color:color-mix(in srgb,var(--ac) 60%,transparent);transform:translateY(-4px);box-shadow:0 20px 40px -20px color-mix(in srgb,var(--ac) 50%,transparent)}
.rail a:hover .thumb img,.rail a.on .thumb img{opacity:1;transform:scale(1.03)}
.rail h4{font-size:19px;margin-bottom:6px}
.rail p{font-size:14px;color:var(--mute);max-width:26ch}
.rail .leave{margin-top:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ac);padding:6px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ac) 40%,transparent);background:color-mix(in srgb,var(--ac) 8%,transparent)}
.rail .leave::before{content:"→ ";opacity:.7}
@media (max-width:900px){.rail{grid-template-columns:repeat(2,1fr);row-gap:36px}.rail .track{display:none}}
@media (max-width:520px){.rail{grid-template-columns:1fr}}
.chapter{padding:clamp(60px,7vw,110px) 0}
.chapter .text .eyebrow{--ac:var(--ac)}
.chapter .step{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:14px;background:color-mix(in srgb,var(--ac) 14%,transparent);border:1px solid color-mix(in srgb,var(--ac) 45%,transparent);color:var(--ac);font-family:var(--mono);font-weight:700;font-size:14px;margin-bottom:22px}
.chapter h2{font-size:clamp(30px,3.8vw,50px)}
.chapter .lede{font-size:18px}
.proof{margin:26px 0 0;padding:0;list-style:none;display:grid;gap:12px}
.proof li{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start;color:var(--mute);font-size:15.5px}
.proof li b{color:#fff;font-weight:600}
.proof li .chk{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:color-mix(in srgb,var(--ac) 16%,transparent);border:1px solid color-mix(in srgb,var(--ac) 45%,transparent);color:var(--ac);font-size:12px;margin-top:2px}
.leaves{margin-top:28px;padding:16px 18px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--ac) 45%,transparent);background:color-mix(in srgb,var(--ac) 6%,transparent);display:flex;gap:14px;align-items:center}
.leaves .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ac);white-space:nowrap}
.leaves p{color:#fff;font-size:15px}
.next{display:flex;align-items:center;gap:12px;margin-top:22px}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{padding:22px 24px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02);position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ac,var(--A))}
.stat .v{font-family:var(--dsp);font-weight:800;font-size:clamp(30px,3.4vw,44px);letter-spacing:-.03em;line-height:1;color:#fff}
.stat .l{margin-top:8px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.stat .live{position:absolute;top:14px;right:14px;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--G2);display:flex;align-items:center;gap:6px}
.stat .live i{width:6px;height:6px;border-radius:50%;background:var(--G);animation:puls 1.8s infinite}
@keyframes puls{0%,100%{opacity:.35}50%{opacity:1}}
@media (max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee .track{display:flex;gap:14px;width:max-content;animation:mq 40s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee .chip{padding:10px 16px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);white-space:nowrap;background:rgba(255,255,255,.02)}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- tabs / shot switcher ---------- */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.tabs button{padding:9px 14px;border-radius:10px;border:1px solid var(--line2);background:transparent;color:var(--mute);font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s}
.tabs button:hover{color:#fff;border-color:rgba(255,255,255,.3)}
.tabs button.on{background:rgba(139,123,247,.16);border-color:rgba(139,123,247,.6);color:#fff}
.tabpanes>*{display:none}.tabpanes>.on{display:block;animation:fadeup .5s ease}
@keyframes fadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tab-caption{margin-top:14px;display:flex;justify-content:space-between;gap:16px;align-items:baseline;flex-wrap:wrap}
.tab-caption p{color:var(--mute);font-size:15px;max-width:70ch}

/* ---------- scrollytelling ---------- */
.scrolly{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(24px,4vw,64px);align-items:start}
.scrolly .steps{display:grid;gap:clamp(40px,8vh,90px);padding:10vh 0 30vh}
.scrolly .step-card{padding:26px;border-radius:var(--r);border:1px solid var(--line);background:rgba(255,255,255,.02);opacity:.38;transition:opacity .4s,border-color .4s,transform .4s;transform:translateX(-6px)}
.scrolly .step-card.on{opacity:1;border-color:color-mix(in srgb,var(--ac,var(--A)) 55%,transparent);transform:none;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015))}
.scrolly .step-card .k{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ac,var(--A2));margin-bottom:12px}
.scrolly .step-card h3{margin-bottom:10px}
.scrolly .step-card p{color:var(--mute);font-size:15px}
.scrolly .sticky{position:sticky;top:96px}
.scrolly .sticky .shot{aspect-ratio:16/10;display:grid;place-items:center;background:#0b0d14}
.scrolly .sticky .shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;opacity:0;transition:opacity .5s,transform .6s;transform:scale(.985);padding:8px}
.scrolly .sticky .shot img.on{opacity:1;transform:none}
.scrolly .sticky .cap{margin-top:12px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);min-height:16px}
@media (max-width:900px){.scrolly{grid-template-columns:1fr}.scrolly .sticky{position:static;order:-1}.scrolly .steps{padding:20px 0 0;gap:18px}.scrolly .step-card{opacity:1;transform:none}.scrolly .sticky .shot{aspect-ratio:auto;min-height:200px}.scrolly .sticky .shot img{position:relative;opacity:1;transform:none;display:none}.scrolly .sticky .shot img.on{display:block}}

/* ---------- typed demo (search) ---------- */
.nlbox{border:1px solid var(--line2);border-radius:14px;background:#0b0d14;padding:8px;box-shadow:var(--shadow)}
.nlbox .field{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid var(--line);font-family:var(--mono);font-size:14.5px;color:#fff;min-height:54px}
.nlbox .field .cur{display:inline-block;width:2px;height:18px;background:var(--G);animation:blink 1s steps(2) infinite;vertical-align:-3px}
@keyframes blink{50%{opacity:0}}
.nlbox .field .mic{margin-left:auto;color:var(--dim);font-size:12px;font-family:var(--mono);letter-spacing:.1em}
.nlbox .parsed{padding:14px 16px 8px;display:flex;flex-wrap:wrap;gap:8px;min-height:52px}
.nlbox .parsed .pc{padding:6px 10px;border-radius:8px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;border:1px solid var(--line2);color:var(--mute);opacity:0;transform:translateY(4px);animation:pop .35s forwards}
.nlbox .parsed .pc b{color:var(--G2);font-weight:600}
@keyframes pop{to{opacity:1;transform:none}}
.nlbox .rows{padding:6px 8px 8px;display:grid;gap:6px}
.nlbox .row{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid var(--line);opacity:0;animation:pop .4s forwards}
.nlbox .row .av{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:12px;color:#07080c;background:var(--O)}
.nlbox .row b{display:block;font-size:14.5px;color:#fff}
.nlbox .row span{display:block;font-family:var(--mono);font-size:11px;color:var(--dim);letter-spacing:.04em}
.nlbox .row .ct{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--G2);border:1px solid rgba(90,209,165,.4);background:rgba(90,209,165,.1);padding:5px 8px;border-radius:7px;white-space:nowrap}

/* ---------- night pressure demo ---------- */
.np{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:22px;border:1px solid var(--line2);border-radius:var(--r2);background:#0b0d14;padding:22px;box-shadow:var(--shadow)}
@media (max-width:820px){.np{grid-template-columns:1fr}}
.np .cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.np .cal .dow{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--dim);text-align:center;padding:4px 0 8px}
.np .cal button{aspect-ratio:1;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.02);color:#fff;font-family:var(--mono);font-size:13px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:transform .15s,box-shadow .15s;position:relative}
.np .cal button small{font-size:9.5px;color:var(--dim);letter-spacing:.04em}
.np .cal button:hover{transform:translateY(-2px)}
.np .cal button.on{box-shadow:0 0 0 2px #fff inset}
.np .cal button.blank{visibility:hidden}
.np .cal button.l0{border-color:rgba(90,209,165,.5);background:rgba(90,209,165,.10)}
.np .cal button.l1{border-color:rgba(111,168,245,.5);background:rgba(111,168,245,.10)}
.np .cal button.l2{border-color:rgba(242,181,68,.6);background:rgba(242,181,68,.12)}
.np .cal button.l3{border-color:rgba(255,159,107,.7);background:rgba(255,159,107,.16)}
.np .cal button.l4{border-color:rgba(255,107,122,.85);background:rgba(255,107,122,.22)}
.np .legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--dim);text-transform:uppercase}
.np .legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.np .read{display:flex;flex-direction:column;gap:14px}
.np .gauge{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:center;padding:18px;border-radius:14px;border:1px solid var(--line2);background:rgba(255,255,255,.02);transition:border-color .4s,background .4s}
.np .gauge svg{width:132px;height:132px}
.np .gauge .ring{fill:none;stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.16,.84,.24,1),stroke .4s}
.np .gauge .track{fill:none;stroke:rgba(255,255,255,.08);stroke-width:9}
.np .gauge .score{font-family:var(--dsp);font-weight:800;font-size:44px;letter-spacing:-.03em;line-height:1;color:#fff}
.np .gauge .verdict{font-family:var(--mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;margin-top:6px;font-weight:700}
.np .gauge .sub{font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:8px;letter-spacing:.06em}
.np .why{padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);font-size:14.5px;color:var(--mute);min-height:64px}
.np .why b{color:#fff}
.np .why .ai{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--A2);display:flex;align-items:center;gap:6px;margin-bottom:8px}
.np .list{display:grid;gap:6px}
.np .list .ev{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 12px;border-radius:9px;border:1px solid var(--line);font-size:13.5px}
.np .list .ev .kind{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;padding:3px 6px;border-radius:5px;text-transform:uppercase}
.np .list .ev .kind.m{background:rgba(139,123,247,.18);color:var(--A2)}.np .list .ev .kind.c{background:rgba(242,181,68,.18);color:var(--Y2)}
.np .list .ev b{font-weight:600;color:#fff}.np .list .ev span{color:var(--dim);font-family:var(--mono);font-size:11px}
.np .list .ev .w{font-family:var(--mono);font-size:11px;color:var(--mute)}
.ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:24px}
.ladder div{padding:14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.ladder div b{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}
.ladder div span{font-size:13px;color:var(--mute)}
.ladder div i{display:block;height:4px;border-radius:2px;margin-bottom:12px}
@media (max-width:820px){.ladder{grid-template-columns:repeat(2,1fr)}}

/* ---------- pricing ---------- */
.notice{margin:0 auto 28px;max-width:720px;padding:16px 20px;border-radius:14px;border:1px solid rgba(90,209,165,.45);background:rgba(90,209,165,.1);color:#eafff5;font-size:15px;line-height:1.5;animation:rvin .7s cubic-bezier(.16,.84,.24,1) both}
.notice.warn{border-color:rgba(242,181,68,.45);background:rgba(242,181,68,.1);color:#fff4dc}
.notice b{color:#fff}
.toggle{display:inline-flex;border:1px solid var(--line2);border-radius:999px;padding:4px;gap:4px;background:rgba(255,255,255,.02)}
.toggle button{padding:9px 16px;border-radius:999px;border:0;background:transparent;color:var(--mute);font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:8px}
.toggle button.on{background:#f2f3f7;color:#07080c}
.toggle .save{font-size:9.5px;padding:3px 7px;border-radius:999px;background:rgba(90,209,165,.2);color:var(--G2)}
.toggle button.on .save{background:#1f7a58;color:#eafff5}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px;align-items:stretch}
@media (max-width:900px){.plans{grid-template-columns:1fr;max-width:520px;margin-left:auto;margin-right:auto}}
.plan{position:relative;display:flex;flex-direction:column;padding:30px;border-radius:var(--r2);border:1px solid var(--line);background:rgba(255,255,255,.018)}
.plan.hot{border-color:rgba(139,123,247,.5);background:linear-gradient(180deg,rgba(139,123,247,.12),rgba(139,123,247,.02));box-shadow:0 30px 70px rgba(139,123,247,.12)}
.plan .badge{position:absolute;top:-12px;left:30px;padding:5px 10px;border-radius:999px;background:var(--A);color:#07080c;font-family:var(--mono);font-size:10px;letter-spacing:.14em;font-weight:700}
.plan .name{font-family:var(--dsp);font-weight:800;font-size:24px;letter-spacing:-.02em}
.plan .for{color:var(--mute);font-size:14.5px;margin-top:6px;min-height:44px}
.plan .price{margin-top:22px;display:flex;align-items:baseline;gap:8px}
.plan .price b{font-family:var(--dsp);font-weight:800;font-size:46px;letter-spacing:-.04em;line-height:1}
.plan .price span{color:var(--dim);font-family:var(--mono);font-size:11.5px;letter-spacing:.06em}
.plan .yr{font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:6px;min-height:14px}
.plan ul{list-style:none;margin:22px 0 26px;padding:0;display:grid;gap:10px;flex:1}
.plan ul li{position:relative;padding-left:28px;font-size:14.5px;color:var(--mute)}
.plan ul li::before{content:"✓";position:absolute;left:0;top:0;color:var(--G2);font-weight:700;font-size:13px}
.plan ul li b{color:#fff;font-weight:600}
.plan .btn{justify-content:center;width:100%}
.plan .fine{margin-top:12px;font-family:var(--mono);font-size:10.5px;color:var(--dim);text-align:center;letter-spacing:.04em}

/* modal */
.modal{position:fixed;inset:0;z-index:80;display:none;place-items:center;background:rgba(3,4,8,.7);backdrop-filter:blur(8px);padding:20px}
.modal.open{display:grid}
.modal .box{width:min(460px,100%);background:#0f1119;border:1px solid var(--line2);border-radius:18px;padding:30px;box-shadow:0 40px 100px rgba(0,0,0,.7);animation:fadeup .3s ease}
.modal .box h3{margin-bottom:6px}
.modal .box p{color:var(--mute);font-size:14.5px}
.modal input{width:100%;margin-top:18px;padding:14px 16px;border-radius:11px;border:1px solid var(--line2);background:rgba(255,255,255,.03);color:#fff;font-size:16px;font-family:var(--body)}
.modal input:focus{outline:none;border-color:var(--A)}
.modal .err{margin-top:10px;color:var(--R2);font-size:13.5px;min-height:18px}
.modal .btn{width:100%;justify-content:center;margin-top:12px}
.modal .foot{margin-top:14px;text-align:center;font-family:var(--mono);font-size:10.5px;color:var(--dim)}
.modal .x{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:none;color:var(--mute);cursor:pointer}
.modal .box{position:relative}

/* ---------- accordion ---------- */
.faq{display:grid;gap:10px}
.faq details{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02);padding:0 22px;transition:border-color .2s}
.faq details[open]{border-color:rgba(139,123,247,.4)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-weight:600;font-size:16.5px;color:#fff}
.faq summary::after{content:"+";font-family:var(--mono);font-size:20px;color:var(--dim);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 20px;color:var(--mute);font-size:15px;max-width:76ch}

/* ---------- code ---------- */
.code{border:1px solid var(--line2);border-radius:14px;background:#0a0c12;overflow:hidden;box-shadow:var(--shadow)}
.code .bar{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase}
.code pre{margin:0;padding:18px;font-family:var(--mono);font-size:13px;line-height:1.6;color:#dfe2ea;overflow:auto;white-space:pre}
.code .c1{color:var(--A2)}.code .c2{color:var(--G2)}.code .c3{color:var(--Y2)}.code .c4{color:var(--B2)}.code .cm{color:var(--dim)}
.code button{background:none;border:1px solid var(--line2);color:var(--mute);font-family:var(--mono);font-size:10px;letter-spacing:.1em;padding:5px 9px;border-radius:7px;cursor:pointer}
.code button:hover{color:#fff}

/* ---------- state coverage grid ---------- */
.states{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.states div{padding:12px 10px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.02);text-align:center}
.states div b{display:block;font-family:var(--mono);font-size:13px;color:#fff;letter-spacing:.08em}
.states div span{display:block;font-family:var(--mono);font-size:10.5px;color:var(--dim);margin-top:3px}
.states div em{display:block;font-style:normal;font-size:11px;color:var(--G2);font-family:var(--mono);margin-top:2px}

/* ---------- final CTA ---------- */
.cta-final{position:relative;padding:clamp(80px,10vw,150px) 0;overflow:hidden;border-top:1px solid var(--line)}
.cta-final::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 90% at 50% 115%,rgba(139,123,247,.26),transparent 65%)}
.cta-final .container{position:relative;text-align:center}
.cta-final h2{font-size:clamp(34px,5.4vw,74px)}
.cta-final .lede{margin-left:auto;margin-right:auto}
.cta-final .cta-row{justify-content:center}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);padding:56px 0 34px;background:rgba(5,6,10,.8)}
.footer .top{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:28px}
.footer h5{margin:0 0 14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.footer ul a{color:var(--mute);font-size:14px}.footer ul a:hover{color:#fff}
.footer .blurb{color:var(--mute);font-size:14px;max-width:34ch;margin-top:12px}
.footer .bottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
@media (max-width:900px){.footer .top{grid-template-columns:1fr 1fr}.footer .top>div:first-child{grid-column:1/-1}}

/* ---------- reveal ---------- */
[data-rv]:not(.in){opacity:0}
[data-rv].in{animation:rvin .9s cubic-bezier(.16,.84,.24,1) backwards}
[data-sv]:not(.in)>*{opacity:0}
[data-sv].in>*{animation:rvin .85s cubic-bezier(.16,.84,.24,1) backwards;animation-delay:calc(var(--i,0)*var(--step,70ms))}
.states{--step:22ms}
@keyframes rvin{from{opacity:0;transform:translateY(24px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}[data-rv]:not(.in),[data-sv]:not(.in)>*{opacity:1}}

/* ---------- misc ---------- */
.kicker{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;border:1px solid var(--line2);background:rgba(255,255,255,.03);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:26px}
.kicker i{width:7px;height:7px;border-radius:50%;background:var(--G);box-shadow:0 0 10px var(--G);animation:puls 1.8s infinite}
.divider{height:1px;background:var(--line);margin:0}
.two-products{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:860px){.two-products{grid-template-columns:1fr}}
.product{padding:34px;border-radius:var(--r2);border:1px solid var(--line2);background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden}
.product::after{content:"";position:absolute;inset:auto -20% -40% auto;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--ac) 22%,transparent),transparent 70%);pointer-events:none}
.product .k{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ac)}
.product h3{font-size:clamp(24px,2.6vw,32px)}
.product p{color:var(--mute)}
.product ul{margin:4px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
.product ul li{font-size:14px;color:var(--mute);padding-left:16px;position:relative}
.product ul li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:2px;background:var(--ac)}
.product .cta-row{margin-top:10px}
.quote{padding:30px;border-radius:var(--r2);border:1px solid var(--line);background:rgba(255,255,255,.02);font-family:var(--dsp);font-weight:700;font-size:clamp(20px,2.2vw,28px);letter-spacing:-.02em;line-height:1.25;color:#fff}
.quote small{display:block;margin-top:16px;font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:900px){.feature-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.feature-list{grid-template-columns:1fr}}
.feature-list .f{padding:20px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.feature-list .f b{display:block;color:#fff;font-size:15.5px;margin-bottom:6px}
.feature-list .f span{font-size:14px;color:var(--mute)}
.feature-list .f .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;margin-bottom:14px;background:color-mix(in srgb,var(--ac,var(--A)) 16%,transparent);color:var(--ac,var(--A2));font-family:var(--mono);font-size:12px;font-weight:700}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.ai-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--A2);padding:6px 10px;border-radius:999px;border:1px solid rgba(139,123,247,.4);background:rgba(139,123,247,.1)}
.ai-badge i{width:14px;height:14px;border-radius:4px;background:conic-gradient(from 0deg,var(--A),var(--B),var(--G),var(--A));animation:spin 3s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.breadcrumb{display:flex;gap:8px;align-items:center;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:20px}
.breadcrumb a{color:var(--dim)}.breadcrumb a:hover{color:#fff}
.path-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:40px}
@media (max-width:760px){.path-nav{grid-template-columns:repeat(2,1fr)}}
.path-nav a{padding:16px 18px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);color:inherit;display:grid;gap:4px;transition:border-color .2s,background .2s}
.path-nav a:hover{border-color:color-mix(in srgb,var(--ac) 55%,transparent);background:color-mix(in srgb,var(--ac) 7%,transparent)}
.path-nav a.on{border-color:color-mix(in srgb,var(--ac) 65%,transparent);background:color-mix(in srgb,var(--ac) 10%,transparent)}
.path-nav a small{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ac)}
.path-nav a b{font-size:15px;color:#fff;font-weight:600}

/* ---------- "talk to your tour": animated architect demo (home + tour planner) ---------- */
.ai-demo{border:1px solid rgba(139,123,247,.35);border-radius:var(--r2);background:linear-gradient(180deg,rgba(139,123,247,.08),rgba(11,13,20,.9) 30%);box-shadow:var(--shadow),0 0 60px -20px rgba(139,123,247,.5);padding:18px;display:grid;gap:14px}
.ai-demo .head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ai-demo .head .mono{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.ai-demo .ask{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid var(--line2);background:rgba(255,255,255,.03);min-height:56px}
.ai-demo .ask .txt{font-family:var(--body);font-size:15.5px;color:#fff;flex:1;min-height:22px}
.ai-demo .ask .cur{width:2px;height:18px;background:var(--A2);animation:blink 1s steps(2) infinite}
.ai-demo .mic{width:34px;height:34px;border-radius:50%;border:1px solid rgba(139,123,247,.5);background:rgba(139,123,247,.12);display:flex;align-items:center;justify-content:center;gap:2px;flex-shrink:0;transition:box-shadow .3s,background .3s}
.ai-demo .mic i{width:3px;height:6px;border-radius:2px;background:var(--A2);transition:height .2s}
.ai-demo.listening .mic{background:rgba(255,107,122,.16);border-color:rgba(255,107,122,.6);box-shadow:0 0 0 6px rgba(255,107,122,.12),0 0 24px rgba(255,107,122,.35)}
.ai-demo.listening .mic i{background:var(--R2);animation:vu .5s ease-in-out infinite alternate}
.ai-demo.listening .mic i:nth-child(2){animation-delay:.12s}.ai-demo.listening .mic i:nth-child(3){animation-delay:.24s}.ai-demo.listening .mic i:nth-child(4){animation-delay:.06s}
@keyframes vu{from{height:4px}to{height:16px}}
.ai-demo .state{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);min-height:14px;display:flex;align-items:center;gap:8px}
.ai-demo .state .spin{width:12px;height:12px;border-radius:3px;background:conic-gradient(from 0deg,var(--A),var(--B),var(--G),var(--A));animation:spin 1.6s linear infinite;display:none}
.ai-demo.thinking .state .spin{display:inline-block}
.ai-demo .answer{display:grid;gap:10px;opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}
.ai-demo.answered .answer{opacity:1;transform:none}
.ai-demo .sum{font-size:15px;line-height:1.55;color:var(--fg)}
.ai-demo .sum b{color:#fff}
.ai-demo .bul{display:grid;gap:6px;padding:0;margin:0;list-style:none}
.ai-demo .bul li{position:relative;padding-left:16px;font-size:14px;color:var(--mute)}
.ai-demo .bul li::before{content:"▸";position:absolute;left:0;color:var(--A2)}
.ai-demo .props{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.ai-demo .prop{border:1px dashed rgba(139,123,247,.55);border-radius:10px;padding:10px 12px;background:rgba(139,123,247,.06);opacity:0;transform:translateY(6px);animation:pop .4s forwards}
.ai-demo .prop .d{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--A2);margin-bottom:4px}
.ai-demo .prop b{display:block;font-size:14px;color:#fff;line-height:1.25}
.ai-demo .prop span{display:block;font-family:var(--mono);font-size:10.5px;color:var(--dim);margin-top:3px}
.ai-demo .order{display:flex;flex-wrap:wrap;gap:6px}
.ai-demo .order span{font-family:var(--mono);font-size:11px;padding:6px 9px;border-radius:8px;border:1px solid var(--line2);color:var(--mute);opacity:0;animation:pop .4s forwards}
.ai-demo .order span.mv{border-color:rgba(90,209,165,.6);color:var(--G2);background:rgba(90,209,165,.1)}
.ai-demo .foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--line)}
.ai-demo .foot .btn{pointer-events:none}
.ai-demo .foot .mono{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.ai-demo .chips{display:flex;flex-wrap:wrap;gap:6px}
.ai-demo .chips span{font-family:var(--mono);font-size:10px;letter-spacing:.08em;padding:5px 9px;border-radius:999px;border:1px solid var(--line);color:var(--dim)}

/* ---------- feature slider (home hero) ---------- */
.slider{position:relative;margin-top:clamp(40px,6vw,64px)}
.slider .halo{position:absolute;inset:-8% -6% -12%;background:radial-gradient(50% 50% at 50% 55%,var(--halo,rgba(139,123,247,.32)),transparent 70%);filter:blur(30px);pointer-events:none;transition:background .6s}
.slider .frame{position:relative;border-radius:var(--r);border:1px solid rgba(255,255,255,.12);background:#0b0d14;box-shadow:var(--shadow);overflow:hidden;aspect-ratio:1800/1051}
.slider .frame .bar{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);background:rgba(9,10,16,.9);backdrop-filter:blur(8px)}
.slider .frame .bar i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.14)}
.slider .frame .bar i:nth-child(1){background:#ff5f57}.slider .frame .bar i:nth-child(2){background:#febc2e}.slider .frame .bar i:nth-child(3){background:#28c840}
.slider .frame .bar span{margin-left:8px;font-family:var(--mono);font-size:10.5px;color:var(--dim);letter-spacing:.06em;flex:1;text-align:center;padding-right:44px}
.slider .slide{position:absolute;inset:0;padding-top:34px;opacity:0;transform:scale(1.02);transition:opacity .7s ease,transform 1.1s cubic-bezier(.16,.84,.24,1);pointer-events:none}
.slider .slide.on{opacity:1;transform:none;pointer-events:auto;z-index:2}
.slider .slide img{width:100%;height:100%;object-fit:cover;object-position:top}
.slider .cap{position:absolute;left:0;right:0;bottom:0;z-index:4;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end;padding:56px 22px 20px;background:linear-gradient(180deg,transparent,rgba(7,8,12,.92) 60%)}
.slider .cap .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ac,var(--A2));margin-bottom:6px;display:flex;align-items:center;gap:8px}
.slider .cap .k i{width:7px;height:7px;border-radius:50%;background:var(--ac,var(--A))}
.slider .cap h3{font-size:clamp(18px,2vw,26px);margin-bottom:4px}
.slider .cap p{font-size:14.5px;color:var(--mute);max-width:64ch}
.slider .cap .btn{white-space:nowrap}
.slider .ctl{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}
.slider .dots{display:flex;gap:8px;flex-wrap:wrap}
.slider .dots button{position:relative;height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:rgba(255,255,255,.02);color:var(--dim);font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;overflow:hidden;transition:color .2s,border-color .2s}
.slider .dots button:hover{color:#fff;border-color:var(--line2)}
.slider .dots button.on{color:#fff;border-color:color-mix(in srgb,var(--ac,var(--A)) 60%,transparent)}
.slider .dots button .p{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--ac,var(--A))}
.slider .dots button.on .p{animation:sl-prog var(--dur,6s) linear forwards}
.slider.paused .dots button.on .p{animation-play-state:paused}
@keyframes sl-prog{from{width:0}to{width:100%}}
.slider .arrows{display:flex;gap:6px}
.slider .arrows button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line2);background:rgba(255,255,255,.03);color:#fff;cursor:pointer;font-size:16px;display:grid;place-items:center}
.slider .arrows button:hover{background:rgba(255,255,255,.08)}
@media (max-width:760px){.slider .cap{grid-template-columns:1fr;padding:40px 14px 14px}.slider .cap p{display:none}.slider .cap .btn{display:none}.slider .dots button{padding:0 9px;font-size:9.5px}.slider .frame{aspect-ratio:auto}.slider .slide{position:relative;display:none;padding-top:34px}.slider .slide.on{display:block}.slider .slide img{height:auto}}

/* ---------- page-wide background: grids, dot fields, drifting blobs (as on the original site) ---------- */
.site-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.site-bg>div{position:absolute;inset:0}
.site-bg .g1{background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:46px 46px}
.site-bg .g2{background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:230px 230px}
.site-bg .d1{background-image:radial-gradient(circle,rgba(255,255,255,.55) 1px,transparent 1.6px);background-size:180px 180px;background-position:20px 30px;opacity:.4;animation:twinkle 5s ease-in-out infinite}
.site-bg .d2{background-image:radial-gradient(circle,rgba(179,166,255,.55) 1px,transparent 1.6px);background-size:260px 260px;background-position:120px 90px;opacity:.32;animation:twinkle 7s ease-in-out infinite 1.6s}
.site-bg .d3{background-image:radial-gradient(circle,rgba(143,224,172,.5) 1px,transparent 1.6px);background-size:340px 340px;background-position:60px 210px;opacity:.26;animation:twinkle 6.4s ease-in-out infinite 3.1s}
.site-bg .b{inset:auto;border-radius:50%;width:74vw;height:74vw}
.site-bg .b1{left:-18%;top:6%;background:radial-gradient(circle,rgba(139,123,247,.17),rgba(139,123,247,.05) 42%,transparent 70%);animation:blob 28s ease-in-out infinite}
.site-bg .b2{right:-20%;top:14%;width:70vw;height:70vw;background:radial-gradient(circle,rgba(111,168,245,.14),rgba(111,168,245,.04) 42%,transparent 70%);animation:blob2 34s ease-in-out infinite}
.site-bg .b3{left:-14%;top:44%;width:72vw;height:72vw;background:radial-gradient(circle,rgba(90,209,165,.13),rgba(90,209,165,.04) 42%,transparent 70%);animation:blob2 30s ease-in-out infinite 3s}
.site-bg .b4{right:-16%;top:52%;width:76vw;height:76vw;background:radial-gradient(circle,rgba(139,123,247,.16),rgba(139,123,247,.05) 42%,transparent 70%);animation:blob 32s ease-in-out infinite 5s}
@keyframes twinkle{0%,100%{opacity:.15}50%{opacity:.75}}
@keyframes blob{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(3vw,-2.2vw) scale(1.14)}}
@keyframes blob2{0%,100%{transform:translate(0,0) scale(1.08)}50%{transform:translate(-2.6vw,2vw) scale(.94)}}
@media (max-width:780px){.site-bg .b{display:none}}
.footer{position:relative;z-index:1}


/* ======================================================================
   polish pass (2026-09-28): motion system shared by every page
   ====================================================================== */
/* cross-page fade (browsers with cross-document view transitions; others just navigate) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .2s ease both}
::view-transition-new(root){animation:vt-in .34s ease both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}

/* nav: reading-progress line + brand mark turn */
.nav::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:var(--prog,0%);background:linear-gradient(90deg,var(--B),var(--G),var(--Y),var(--A));opacity:.9}
.brand svg{transition:transform .7s cubic-bezier(.16,.84,.24,1)}
.brand:hover svg{transform:rotate(180deg)}

/* section edges: a lit hairline in the section's accent */
.section.band::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ac,var(--A)) 60%,transparent),transparent);pointer-events:none}
.head .eyebrow::after{content:"";flex:0 1 120px;height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--ac,var(--A)) 60%,transparent),transparent)}
.head.center .eyebrow::after{display:none}

/* hero intro on every page: words rise one by one, the rest of the block follows, gradient words shimmer */
html.js .hero h1:not(.ready){opacity:0}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.02em .06em .16em;margin:-.02em -.06em -.16em}
.hero h1 .w>span{display:inline-block;transform:translateY(112%);animation:lineup .85s cubic-bezier(.16,.84,.24,1) forwards;animation-delay:var(--d,0s)}
.hero-inner:not(.hero-cols)>:not(h1),.hero .head>:not(h1){animation:rvin .9s cubic-bezier(.16,.84,.24,1) both}
.hero .breadcrumb{animation-delay:.05s!important}.hero-inner>.eyebrow,.hero .head>.eyebrow{animation-delay:.16s!important}
.hero-inner>.lede,.hero .head>.lede{animation-delay:.5s!important}.hero-inner>.cta-row{animation-delay:.66s!important}
.hero .path-nav,.hero .stats{animation:rvin .9s .8s cubic-bezier(.16,.84,.24,1) both}
.hero h1 .grad{background-image:linear-gradient(92deg,#fff 0%,#d9d3ff 25%,var(--A2) 50%,#d9d3ff 75%,#fff 100%);background-size:220% 100%;animation:shine 9s ease-in-out infinite alternate}
.hero h1 .grad-g{background-image:linear-gradient(92deg,#fff,var(--G2) 50%,#fff);background-size:220% 100%;animation:shine 9s ease-in-out infinite alternate}
.hero h1 .grad-y{background-image:linear-gradient(92deg,#fff,var(--Y2) 50%,#fff);background-size:220% 100%;animation:shine 9s ease-in-out infinite alternate}
.hero h1 .grad-b{background-image:linear-gradient(92deg,#fff,var(--B2) 50%,#fff);background-size:220% 100%;animation:shine 9s ease-in-out infinite alternate}
@keyframes shine{from{background-position:0% 0}to{background-position:100% 0}}

/* buttons: a light sweep across the filled buttons */
.btn{position:relative;overflow:hidden}
.btn.primary::after,.btn.g::after{content:"";position:absolute;top:-10%;bottom:-10%;left:-45%;width:32%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-18deg);transition:left .6s ease;pointer-events:none}
.btn.primary:hover::after,.btn.g:hover::after{left:125%}

/* pointer spotlight on cards */
.spot{position:relative}
.spot::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--ac,var(--A)) 17%,transparent),transparent 62%);opacity:0;transition:opacity .35s;pointer-events:none;z-index:0}
.spot:hover::before{opacity:1}
.feature-list .f{transition:transform .25s,border-color .25s,background .25s}
.feature-list .f:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--ac,var(--A)) 45%,transparent);background:rgba(255,255,255,.035)}
.feature-list .f .ic{transition:box-shadow .3s,transform .3s}
.feature-list .f:hover .ic{box-shadow:0 0 0 5px color-mix(in srgb,var(--ac,var(--A)) 14%,transparent);transform:rotate(-6deg)}
.path-nav a{transition:border-color .2s,background .2s,transform .25s}
.path-nav a:hover{transform:translateY(-2px)}
.plan{transition:transform .3s,border-color .3s,box-shadow .3s}
.plan:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.22)}
.plan.hot:hover{border-color:rgba(139,123,247,.8);box-shadow:0 34px 80px rgba(139,123,247,.22)}
.product{transition:border-color .3s,transform .3s}
.product:hover{border-color:color-mix(in srgb,var(--ac) 45%,transparent);transform:translateY(-3px)}
.stat{transition:transform .25s,border-color .25s}
.stat:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--ac,var(--A)) 45%,transparent)}
.job .path>div{transition:transform .25s,border-color .25s,background .25s}
.job .path>div:hover{transform:translateX(4px);border-color:color-mix(in srgb,var(--ac) 45%,transparent);background:color-mix(in srgb,var(--ac) 6%,transparent)}
.states div{transition:transform .2s,border-color .2s}
.states div:hover{transform:translateY(-2px);border-color:rgba(90,209,165,.5)}

/* proof lists: the checks tick in after the block reveals */
.proof li .chk{transition:transform .55s cubic-bezier(.34,1.56,.64,1) var(--cd,.1s),opacity .4s var(--cd,.1s)}
[data-rv]:not(.in) .proof li .chk{transform:scale(.3);opacity:0}
.proof li:nth-child(2) .chk{--cd:.25s}.proof li:nth-child(3) .chk{--cd:.4s}.proof li:nth-child(4) .chk{--cd:.55s}.proof li:nth-child(5) .chk{--cd:.7s}

/* screenshots: fade in as they load, gentle 3D tilt under the pointer */
img.ldx{opacity:0;transform:scale(1.012);transition:opacity .8s ease,transform 1s ease}
img.ldx.ld{opacity:1;transform:none}
.tilt{will-change:transform}

/* slider: slow push-in on the live slide */
.slider .slide.on img{animation:kb 8s ease-out forwards;transform-origin:50% 0}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.04)}}

/* night pressure: selection pops, and the demo walks the sample nights until you click */
.np .cal button.on{animation:npsel .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes npsel{from{transform:scale(.86)}to{transform:none}}

/* quote card */
.quote{position:relative;padding-top:52px}
.quote::before{content:"\201C";position:absolute;top:2px;left:22px;font-family:Georgia,serif;font-size:110px;line-height:1;color:color-mix(in srgb,var(--ac,var(--A)) 38%,transparent);pointer-events:none}

/* final CTA: aurora drifting under the headline */
.cta-final .container{z-index:1}
.cta-final::after{content:"";position:absolute;inset:0;background:radial-gradient(32% 60% at 22% 112%,rgba(90,209,165,.16),transparent 65%),radial-gradient(32% 60% at 78% 112%,rgba(111,168,245,.16),transparent 65%);animation:aurora 11s ease-in-out infinite alternate;pointer-events:none}
@keyframes aurora{from{transform:translateX(-5%) scale(1)}to{transform:translateX(5%) scale(1.18)}}

/* how it works: the pipeline panels and the ingestion funnel, ported from the original one-page site */
.pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:980px){.pipe{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.pipe{grid-template-columns:1fr}}
.pcard{position:relative;display:flex;flex-direction:column;padding:22px 20px 24px;border-radius:14px;border:1px solid color-mix(in srgb,var(--ac) 26%,rgba(255,255,255,.08));background:linear-gradient(180deg,color-mix(in srgb,var(--ac) 12%,#0b0d15),#0b0d15 62%);overflow:hidden;transition:transform .25s,border-color .25s}
.pcard:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--ac) 55%,transparent)}
.pcard::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ac);opacity:.85}
.pcard .ph{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.pcard .ph span:first-child{color:var(--ac)}.pcard .ph span:last-child{color:var(--dim);font-size:9px}
.pcard .viz{position:relative;height:152px;margin-top:16px;border-radius:9px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02);padding:11px 12px;overflow:hidden;display:flex;flex-direction:column;gap:8px;line-height:1.3}
.pcard h3{margin-top:18px;font-size:22px}
.pcard p{color:var(--mute);font-size:14.5px;margin-top:9px;flex:1}
.pcard .tags{margin-top:18px}
.pcard .tags span{padding:4px 9px;border-radius:5px;background:rgba(255,255,255,.05);font-family:var(--mono);font-size:9.5px;color:var(--mute)}
.viz .dots{flex:1;display:grid;grid-template-columns:repeat(10,1fr);grid-auto-rows:1fr;gap:5px;align-content:center}
.viz .dots span{width:100%;height:100%;min-height:8px;border-radius:2px;animation:mBlink 1.4s ease-in-out infinite;animation-delay:var(--d)}
.viz .vf{display:flex;justify-content:space-between;font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.viz .vf .on{color:var(--ac);animation:puls 1.6s infinite}
.viz.conv{justify-content:center}
.viz.conv .rows{position:absolute;left:12px;right:12px;display:flex;flex-direction:column;gap:5px;transform-origin:center;animation:mConvBox 3.4s ease-in-out infinite}
.viz.conv .rows div{padding:4px 7px;border-radius:4px;background:rgba(255,255,255,.05);border-left:2px solid rgba(242,181,68,.55);font-family:var(--mono);font-size:8.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viz.conv .rec{position:absolute;left:12px;right:12px;padding:10px 11px;border-radius:7px;background:rgba(139,123,247,.14);border:1px solid rgba(139,123,247,.55);animation:mPop 3.4s ease-in-out infinite}
.viz.conv .rec b{display:block;font-family:var(--dsp);font-weight:700;font-size:12.5px;color:#fff}
.viz.conv .rec span{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:var(--A2);margin-top:4px}
.viz .hd{flex-shrink:0;padding:7px 9px;border-radius:6px;background:color-mix(in srgb,var(--ac) 10%,transparent);border:1px solid color-mix(in srgb,var(--ac) 35%,transparent);font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;color:var(--G2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}
.viz .chips{flex:1;display:flex;flex-direction:column;gap:4px;justify-content:center}
.viz .chips div{display:flex;justify-content:space-between;gap:8px;padding:4px 8px;border-radius:4px;background:rgba(255,255,255,.04);font-family:var(--mono);font-size:8.5px;color:var(--dim);animation:mIn 3.4s ease-in-out infinite;animation-delay:var(--d)}
.viz .chips div span:first-child{letter-spacing:.1em}.viz .chips div span:last-child{color:var(--G2);text-align:right}
.viz.tiles{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.viz.tiles div{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:9px;border-radius:7px;border:1px solid rgba(111,168,245,.3);background:rgba(111,168,245,.07);animation:mIn 3.4s ease-in-out infinite;animation-delay:var(--d)}
.viz.tiles div span:first-child{font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--B2)}
.viz.tiles div span:last-child{font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:var(--dim)}
@keyframes mBlink{0%,100%{opacity:.14}50%{opacity:1}}
@keyframes mConvBox{0%{opacity:0;transform:scaleY(1)}8%{opacity:1;transform:scaleY(1)}42%{opacity:1;transform:scaleY(1)}56%{opacity:.12;transform:scaleY(.08)}62%,100%{opacity:0;transform:scaleY(.08)}}
@keyframes mPop{0%,56%{opacity:0;transform:scale(.7)}64%{opacity:1;transform:scale(1)}90%{opacity:1;transform:scale(1)}97%,100%{opacity:0;transform:scale(1)}}
@keyframes mIn{0%,4%{opacity:0;transform:translateY(7px)}13%{opacity:1;transform:none}80%{opacity:1;transform:none}90%,100%{opacity:0;transform:translateY(-4px)}}
.sweep{position:relative;height:2px;margin-top:18px;border-radius:2px;background:rgba(255,255,255,.06);overflow:hidden}
.sweep i{position:absolute;top:0;height:100%;width:28%;background:linear-gradient(90deg,transparent,var(--A),transparent);animation:mSweep 8.8s linear infinite}
@keyframes mSweep{0%{left:-28%}100%{left:100%}}
.sweep-l{display:flex;justify-content:space-between;margin-top:10px;font-family:var(--mono);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.funnel2{margin-top:44px;padding:28px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02)}
.funnel2 .fh{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-bottom:30px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.funnel2 .fh .when{color:rgba(242,243,247,.28)}
.funnel2 .fh .run{margin-left:auto;display:inline-flex;align-items:center;gap:7px;color:var(--G2);font-size:9px}
.funnel2 .fh .run i{width:5px;height:5px;border-radius:50%;background:var(--G);box-shadow:0 0 7px var(--G);animation:puls 2s infinite}
.funnel2 .bars{display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px clamp(4px,1vw,10px)}
.funnel2 .st{flex:1 1 132px;min-width:132px;display:flex;flex-direction:column}
.funnel2 .st .v{font-family:var(--dsp);font-weight:800;font-size:clamp(22px,2.7vw,38px);line-height:1;letter-spacing:-.03em;color:var(--ac);font-variant-numeric:tabular-nums}
.funnel2 .st .n{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;color:var(--dim);margin-top:8px;text-transform:uppercase}
.funnel2 .st .bar{position:relative;height:0;margin-top:14px;border-radius:8px;overflow:hidden;background:color-mix(in srgb,var(--ac) 80%,transparent);border:1px solid color-mix(in srgb,var(--ac) 50%,transparent);box-shadow:0 0 28px -6px color-mix(in srgb,var(--ac) 45%,transparent);transition:height 1.1s cubic-bezier(.16,.84,.24,1)}
.funnel2 .st .bar::before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(7,8,12,.42) 1px,transparent 1px),linear-gradient(0deg,rgba(7,8,12,.42) 1px,transparent 1px);background-size:13px 13px}
.funnel2 .st .bar::after{content:"";position:absolute;top:0;bottom:0;left:0;width:38%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);animation:swipe 3.6s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes swipe{0%{transform:translateX(-110%)}100%{transform:translateX(210%)}}
.funnel2 .st .l{font-family:var(--mono);font-size:9px;letter-spacing:.13em;color:var(--mute);margin-top:12px;line-height:1.5;min-height:27px;text-transform:uppercase}
.funnel2 .dl{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding-bottom:39px;font-family:var(--mono);font-size:10.5px;color:var(--ac);font-variant-numeric:tabular-nums}
.funnel2 .dl i{font-style:normal;font-size:11px;color:var(--dim)}
.funnel2 .ff{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.funnel2 .ff b{font-family:var(--dsp);font-weight:800;font-size:clamp(17px,1.9vw,24px);letter-spacing:-.02em;color:#fff}
.funnel2 .ff span{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase}
.resolve .op{animation:puls 2.4s ease-in-out infinite}


/* ---------- home slider: live demos instead of screenshots (2026-09-28) ---------- */
.slider .slide.live{padding:50px 24px 118px;display:grid}
.slider .slide.live .stage{display:grid;align-items:center;height:100%;min-height:0;width:100%;max-width:1100px;margin:0 auto}
.slider .slide.live .stage.two{grid-template-columns:1.05fr 1fr;gap:24px;align-items:stretch}
.slider .stage.two .shotmini{align-self:center}
.slider .stage.two .ai-demo{height:100%;align-content:start;overflow:hidden}
.slider .slide.live .stage.one{max-width:820px}
.slider .shotmini{border-radius:12px;border:1px solid rgba(255,255,255,.12);overflow:hidden;background:#0b0d14;box-shadow:0 24px 60px rgba(0,0,0,.55);aspect-ratio:16/11;transform:perspective(1400px) rotateY(7deg);transform-origin:right center}
.slider .shotmini img{width:100%;height:100%;object-fit:cover;object-position:left top}
.slider .ai-demo{padding:14px;gap:10px;box-shadow:none}
.slider .ai-demo .head .mono{display:none}
.slider .ai-demo .props{grid-template-columns:repeat(2,1fr)}
.slider .ai-demo .sum{font-size:14px}
.slider .ai-demo .prop b{font-size:13px}
.slider .ai-demo .chips span{font-size:9.5px;padding:4px 8px}
.np.np-mini{border:0;background:transparent;box-shadow:none;padding:0;gap:28px;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:center}
.np-mini .ttl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--dim);margin-bottom:8px}
.np-mini .cal{gap:5px}
.np-mini .cal button{font-size:12px;border-radius:8px}
.np-mini .legend{margin-top:10px}
.np-mini .why{font-size:13.5px}
.dash{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%}
.dash .kpi{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);position:relative;overflow:hidden}
.dash .kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ac)}
.dash .kpi b{display:block;font-family:var(--dsp);font-weight:800;font-size:clamp(20px,2.2vw,30px);letter-spacing:-.03em;line-height:1.1;color:#fff;font-variant-numeric:tabular-nums}
.dash .kpi span{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.dash .panel{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);padding:14px 16px;min-width:0}
.dash .panel.genre{grid-column:1/3}.dash .panel.season{grid-column:3/4}
.dash .panel h5{margin:0 0 12px;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);display:flex;justify-content:space-between;gap:10px}
.dash .panel h5 i{font-style:normal;opacity:.6}
.dash .grow{display:grid;gap:9px}
.dash .grow>div{display:grid;grid-template-columns:132px 1fr 52px;gap:10px;align-items:center}
.dash .grow b{color:#fff;font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash .grow i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--B),var(--A));width:0;transition:width 1.1s cubic-bezier(.16,.84,.24,1) var(--d,0s)}
.dash.go .grow i{width:var(--w)}
.dash .grow em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--dim);text-align:right}
.dash .months{height:132px;display:grid;grid-template-columns:repeat(12,1fr);gap:4px}
.dash .months>div{height:100%;display:flex;flex-direction:column;justify-content:flex-end}
.dash .months i{display:block;height:0;border-radius:3px 3px 0 0;background:var(--B);opacity:.85;transition:height .9s cubic-bezier(.16,.84,.24,1) var(--d,0s)}
.dash.go .months i{height:var(--h)}
.dash .months i.pk{background:var(--Y);opacity:1}
.dash .months small{font-family:var(--mono);font-size:8px;color:var(--dim);text-align:center;margin-top:4px}
.askbox{border:1px solid rgba(139,123,247,.35);border-radius:var(--r2);background:linear-gradient(180deg,rgba(139,123,247,.08),rgba(11,13,20,.9) 30%);padding:16px;display:grid;gap:12px;align-content:start}
.askbox .head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.askbox .meter{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.askbox .meter b{color:var(--A2)}
.askbox .q{justify-self:end;max-width:82%;padding:10px 14px;border-radius:14px 14px 4px 14px;background:rgba(139,123,247,.18);border:1px solid rgba(139,123,247,.35);color:#fff;font-size:14.5px;min-height:42px}
.askbox .q .cur{display:inline-block;width:2px;height:16px;background:var(--A2);vertical-align:-3px;animation:blink 1s steps(2) infinite;margin-left:2px}
.askbox .trail{display:flex;flex-wrap:wrap;gap:6px;min-height:26px}
.askbox .trail span{font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:5px 9px;border-radius:999px;border:1px solid var(--line2);color:var(--mute);display:inline-flex;gap:7px;align-items:center;opacity:0;animation:pop .35s forwards}
.askbox .trail span i{width:6px;height:6px;border-radius:50%;background:var(--A);animation:puls .9s infinite;flex-shrink:0}
.askbox .trail span.done i{background:var(--G);animation:none}
.askbox .trail span b{color:#fff;font-weight:600}
.askbox .a{padding:12px 14px;border-radius:14px 14px 14px 4px;background:rgba(255,255,255,.03);border:1px solid var(--line);font-size:14px;line-height:1.5;color:var(--fg);opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s;max-width:92%}
.askbox.answered .a{opacity:1;transform:none}
.askbox .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-top:10px}
.askbox .cards:empty{display:none}
.askbox .card2{padding:9px 11px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.02);opacity:0;animation:pop .4s forwards}
.askbox .card2 b{display:block;font-size:13px;color:#fff}.askbox .card2 span{font-family:var(--mono);font-size:10px;color:var(--dim)}
.askbox .card2.ok{border-color:rgba(90,209,165,.5);background:rgba(90,209,165,.08)}.askbox .card2.ok b{color:var(--G2)}
@media (max-width:980px){.slider .slide.live{padding:46px 16px 112px}.slider .slide.live .stage.two{grid-template-columns:1fr}.slider .shotmini{display:none}}
@media (max-width:760px){.slider .slide.live{padding:44px 12px 76px;display:none}.slider .slide.live.on{display:grid}.slider .slide.live .stage{height:auto}.np.np-mini{grid-template-columns:1fr;gap:16px}.dash{grid-template-columns:1fr 1fr}.dash .kpi:last-child,.dash .panel.genre,.dash .panel.season{grid-column:1/-1}.askbox .q,.askbox .a{max-width:100%}}


/* phones: the slider is a fixed-height stage (slides layered inside it, like desktop), so the page
   below never moves while a demo grows; two non-essential pieces are trimmed to fit */
@media (max-width:760px){
  .slider .frame{aspect-ratio:auto;height:760px}
  .slider .slide.live,.slider .slide.live.on{position:absolute;inset:0;display:grid;padding:42px 12px 72px;overflow:hidden;opacity:0;pointer-events:none}
  .slider .slide.live.on{opacity:1;pointer-events:auto}
  .slider .slide.live .stage{height:100%;overflow:hidden;align-items:start}
  .np-mini .why,.slider .ai-demo .chips{display:none}
  .askbox .cards{grid-template-columns:repeat(2,1fr)}
  .slider .ai-demo{height:auto;max-height:100%}
}


/* ---------- market pages (generated by scripts/marketing/build_market_page.py) ---------- */
.rooms{display:grid;gap:8px}
.room{display:grid;grid-template-columns:44px minmax(0,1.4fr) minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 18px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02);transition:transform .25s,border-color .25s,background .25s}
.room:hover{transform:translateX(4px);border-color:color-mix(in srgb,var(--B) 50%,transparent);background:rgba(111,168,245,.05)}
.room .rk{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--B2)}
.room:nth-child(-n+3) .rk{color:#fff;text-shadow:0 0 12px var(--B)}
.room .nm b{display:block;font-family:var(--dsp);font-weight:800;font-size:17px;letter-spacing:-.01em;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room .nm span{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--dim);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room .br{height:8px;border-radius:4px;background:rgba(255,255,255,.06);overflow:hidden}
.room .br i{display:block;height:100%;width:0;border-radius:4px;background:linear-gradient(90deg,var(--B),var(--A));transition:width 1.1s cubic-bezier(.16,.84,.24,1) var(--d,0s)}
.in .room .br i{width:var(--w)}
.room .ct{text-align:right;min-width:110px}
.room .ct b{display:block;font-family:var(--dsp);font-weight:800;font-size:20px;color:#fff;font-variant-numeric:tabular-nums}
.room .ct span{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--dim)}
.locked{margin-top:14px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 20px;border-radius:14px;border:1px dashed rgba(139,123,247,.5);background:linear-gradient(90deg,rgba(139,123,247,.10),rgba(139,123,247,.03));color:var(--mute);font-size:15px}
.locked b{color:#fff}
.locked>div{flex:1;min-width:260px}
.mgrid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px}
.mpanel{border:1px solid var(--line);border-radius:var(--r);background:rgba(11,13,20,.7);padding:20px;min-width:0}
.mpanel h5{margin:0 0 16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);display:flex;justify-content:space-between;gap:10px}
.mpanel h5 span{color:#fff}.mpanel h5 i{font-style:normal}
.mbars{display:grid;gap:11px}
.mrow{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) 52px 38px;gap:10px;align-items:center}
.mrow b{font-size:13.5px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mrow i{display:block;height:8px;border-radius:4px;background:var(--c);width:0;transition:width 1.1s cubic-bezier(.16,.84,.24,1) var(--d,0s)}
.in .mrow i{width:var(--w)}
.mrow em{font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--mute);text-align:right}
.mrow span{font-family:var(--mono);font-size:10.5px;color:var(--dim);text-align:right}
.mcols{height:210px;display:grid;grid-template-columns:repeat(12,1fr);gap:5px}
.mcols.seven{grid-template-columns:repeat(7,1fr);gap:10px}
.mcols>div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;min-width:0}
.mcols em{font-style:normal;font-family:var(--mono);font-size:9.5px;color:var(--dim);text-align:center;margin-bottom:5px;white-space:nowrap;overflow:hidden}
.mcols:not(.seven) em{font-size:0}
.mcols:not(.seven) .pk em{font-size:9.5px;color:var(--Y2);overflow:visible}
.mcols i{display:block;height:0;border-radius:4px 4px 0 0;background:var(--B);opacity:.8;transition:height 1s cubic-bezier(.16,.84,.24,1) var(--d,0s)}
.in .mcols i{height:var(--h)}
.mcols .pk i{background:var(--Y);opacity:1;box-shadow:0 0 18px rgba(242,181,68,.35)}
.mcols small{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--dim);text-align:center;margin-top:7px}
.mcols .pk small{color:var(--Y2)}
@media (max-width:980px){.mgrid{grid-template-columns:1fr}}
@media (max-width:700px){.room{grid-template-columns:30px minmax(0,1fr) auto;gap:10px;padding:12px 14px}.room .br{display:none}.room .ct{min-width:0}.room .nm b{font-size:15px}.mcols{height:170px}}

/* markets index cards */
.mkt .mk{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:18px;margin:6px 0 12px}
.mkt .mk b{display:block;font-family:var(--dsp);font-weight:800;font-size:20px;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.mkt .mk span{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.mkt p{font-size:13.5px}
a.tag{transition:background .2s,border-color .2s,color .2s}
a.tag:hover{background:color-mix(in srgb,var(--ac,var(--A)) 22%,transparent);color:#fff}
@media (max-width:1180px){.nav-links>a,.nav-links>.dd>button{padding:8px 8px;font-size:13px}}

/* Market cards are links: say so. A pointer line above the grid and an "open" cue on each card. */
.pick{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.pick i{width:8px;height:8px;border-radius:50%;background:#7fb2ff;box-shadow:0 0 0 0 rgba(127,178,255,.6);animation:pickPing 1.8s ease-out infinite;flex-shrink:0}
@keyframes pickPing{to{box-shadow:0 0 0 10px rgba(127,178,255,0)}}
.mkt{display:flex !important;flex-direction:column}
.mkt .go{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#7fb2ff}
.mkt .go i{font-style:normal;font-size:15px;transition:transform .25s ease}
.mkt:hover .go i,.mkt:focus-visible .go i{transform:translateX(5px)}
.mkt:hover .go{color:#fff}
/* Pricing: the return-on-investment line */
.roi{margin:34px auto 0;max-width:860px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:24px 28px;border-radius:16px;border:1px solid rgba(255,120,120,.28);background:linear-gradient(135deg,rgba(255,92,92,.10),rgba(163,148,245,.08))}
.roi .sc{text-align:center;padding:10px 16px;border-radius:12px;border:1px solid rgba(255,120,120,.4);background:rgba(10,12,24,.55)}
.roi .sc b{display:block;font-family:var(--dsp);font-weight:800;font-size:34px;line-height:1;color:#ff8a8a;font-variant-numeric:tabular-nums}
.roi .sc span{display:block;margin-top:6px;font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:#ff8a8a}
.roi h3{margin:0 0 6px;font-size:22px;line-height:1.2;color:#fff}
.roi p{margin:0;font-size:14.5px;color:var(--dim)}
@media (max-width:640px){.roi{grid-template-columns:1fr;text-align:center;padding:22px 18px}.roi .sc{justify-self:center}}
@media (prefers-reduced-motion:reduce){.pick i{animation:none}}

/* Markets index: the public markets are a sample of the dataset, and the hero says so. */
.covbar{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;margin-top:44px}
.covbar .cv{flex:1 1 150px;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.covbar .cv b{display:block;font-family:var(--dsp);font-weight:800;font-size:28px;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums;line-height:1.1}
.covbar .cv span{display:block;margin-top:6px;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.covbar .cv em{display:block;margin-top:6px;font-style:normal;font-size:12px;color:var(--dim)}
.covbar .cv.sm{border-color:rgba(127,178,255,.45);background:rgba(127,178,255,.08)}
.covbar .cv.sm b{color:#9cc4ff}
.covbar .of{align-self:center;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:0 4px}
@media (max-width:640px){.covbar .cv{flex:1 1 40%}.covbar .cv.sm{flex-basis:100%}.covbar .of{flex-basis:100%;text-align:center}}
.roi.top{margin:0 auto 34px}
.dash .months.week{grid-template-columns:repeat(7,1fr);gap:10px}

/* ---- Data pricing (data.html #pricing): a calculator and the price card ---- */
.dcalc{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;margin-top:34px;align-items:stretch}
@media (max-width:900px){.dcalc{grid-template-columns:1fr}}
.dcalc .dpick,.dcalc .out{border:1px solid var(--line);border-radius:var(--r2);background:rgba(255,255,255,.018);padding:clamp(20px,2.6vw,30px)}
.dcalc .out{border-color:rgba(90,209,165,.4);background:linear-gradient(180deg,rgba(90,209,165,.09),rgba(255,255,255,.015));display:flex;flex-direction:column}
.dcalc h5{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:22px 0 10px;font-weight:500}
.dcalc h5:first-child{margin-top:0}
.dcalc .opts{display:flex;flex-wrap:wrap;gap:8px}
.dcalc .opts button{padding:10px 14px;border-radius:11px;border:1px solid var(--line2);background:rgba(255,255,255,.02);color:var(--mute);font:600 14px var(--body);cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.dcalc .opts button small{display:block;font:400 10.5px var(--mono);letter-spacing:.06em;color:var(--dim);margin-top:3px}
.dcalc .opts button:hover{color:#fff;border-color:rgba(90,209,165,.5)}
.dcalc .opts button.on{background:rgba(90,209,165,.14);border-color:var(--G);color:#fff}
.dcalc .opts button.on small{color:var(--G2)}
.dcalc .opts button[disabled]{opacity:.35;cursor:not-allowed}
.dcalc select{width:100%;margin-top:10px;padding:12px 14px;border-radius:11px;border:1px solid var(--line2);background:rgba(8,10,18,.7);color:#fff;font:15px var(--body)}
.dcalc select option{background:#0f1119;color:#fff}
.dcalc .hint{margin-top:9px;font-family:var(--mono);font-size:11px;color:var(--dim);line-height:1.5}
.dcalc .out .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--G2)}
.dcalc .out .what{margin-top:8px;font:700 19px/1.3 var(--dsp);color:#fff}
.dcalc .out .amt{margin-top:18px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.dcalc .out .amt b{font-family:var(--dsp);font-weight:800;font-size:clamp(44px,6vw,60px);letter-spacing:-.04em;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.dcalc .out .amt span{font-family:var(--mono);font-size:12px;color:var(--dim)}
.dcalc .out .sub{margin-top:8px;font-family:var(--mono);font-size:11.5px;color:var(--mute);min-height:18px}
.dcalc .out ul{list-style:none;margin:20px 0 0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;gap:9px}
.dcalc .out li{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;color:var(--mute)}
.dcalc .out li b{color:#fff;font-variant-numeric:tabular-nums}
.dcalc .out .btn{margin-top:auto;justify-content:center}
.dcalc .out .fine{margin-top:12px;font-family:var(--mono);font-size:10.5px;color:var(--dim);text-align:center}
.dtable{margin-top:34px;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.dtable table{width:100%;border-collapse:collapse}
.dtable th,.dtable td{padding:15px 18px;text-align:left;border-bottom:1px solid var(--line);font-size:15px}
.dtable tr:last-child td{border-bottom:0}
.dtable th{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-weight:500;background:rgba(255,255,255,.025)}
.dtable td b{color:#fff}
.dtable td small{display:block;color:var(--dim);font-size:12.5px;margin-top:3px}
.dtable td.p{font-family:var(--dsp);font-weight:800;font-size:19px;color:#fff;white-space:nowrap}
.dtable td.p span{font:400 11px var(--mono);color:var(--dim)}
.dtable td.na{color:var(--dim);font-family:var(--mono);font-size:12px}
@media (max-width:640px){.dtable th,.dtable td{padding:12px 11px;font-size:13.5px}.dtable td.p{font-size:16px}.dtable td small{font-size:11.5px}}
.dnotes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
@media (max-width:860px){.dnotes{grid-template-columns:1fr}}

/* The home page's private-preview notice and Subscribe for updates (2026-10-07) */
.soon{margin-top:28px;padding:18px 20px;border-radius:16px;border:1px solid rgba(139,123,247,.45);background:linear-gradient(180deg,rgba(139,123,247,.10),rgba(139,123,247,.03));max-width:620px}
.soon-k{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#b8adfb}
.soon-k i{width:8px;height:8px;border-radius:50%;background:#8b7bf7;box-shadow:0 0 0 4px rgba(139,123,247,.22)}
.soon p{margin:8px 0 12px;font-size:15px;line-height:1.5;color:var(--dim,#b9bdca)}
.soon-form{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.soon-form[hidden],.soon-ok[hidden]{display:none}
.soon-form input[type=email]{flex:1 1 240px;min-width:0;padding:12px 15px;border-radius:11px;border:1px solid var(--line2);background:rgba(8,10,18,.7);color:#fff;font-size:16px;font-family:var(--body)}
.soon-form input[type=email]:focus{outline:none;border-color:var(--A)}
.soon-form .btn{white-space:nowrap}
.soon .sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.soon .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.soon-ok{padding:12px 14px;border-radius:11px;border:1px solid rgba(90,209,165,.4);background:rgba(90,209,165,.08);color:#d6f5e8;font-size:15px}
.soon-ok b{color:#fff}
.soon .err{min-height:18px;margin-top:6px;color:var(--R2,#ff8a95);font-size:14px}
@media (max-width:560px){.soon{padding:16px}.soon-form .btn{width:100%;justify-content:center}}

/* The data sheet (2026-10-07): coverage picker, dataset tabs, the sheet with coverage bars and the column list */
.dscope{margin-top:30px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r2);background:rgba(255,255,255,.018);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px 22px;align-items:center}
.dscope .opts{display:flex;flex-wrap:wrap;gap:8px}
.dscope .opts button,.dcalc .opts button{padding:10px 14px;border-radius:11px;border:1px solid var(--line2);background:rgba(255,255,255,.02);color:var(--mute);font:600 14px var(--body);cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.dscope .opts button small,.dcalc .opts button small{display:block;font:400 10.5px var(--mono);letter-spacing:.06em;color:var(--dim);margin-top:3px}
.dscope .opts button:hover{color:#fff;border-color:rgba(90,209,165,.5)}
.dscope .opts button.on{background:rgba(90,209,165,.14);border-color:var(--G);color:#fff}
.dscope .opts button.on small{color:var(--G2)}
.dscope select,.dcalc select{width:100%;padding:12px 14px;border-radius:11px;border:1px solid var(--line2);background:rgba(8,10,18,.7);color:#fff;font:15px var(--body)}
.dscope select option,.dcalc select option,.dscope select optgroup{background:#0f1119;color:#fff}
.dscope .hint{grid-column:1/-1;font-family:var(--mono);font-size:11px;color:var(--dim);line-height:1.5;min-height:16px}
@media (max-width:800px){.dscope{grid-template-columns:1fr}}
.dtabs{margin:22px 0 0}
.dtabs button.on{background:rgba(90,209,165,.14);border-color:var(--G);color:#fff}
.dsheet{margin-top:16px;border:1px solid rgba(90,209,165,.35);border-radius:var(--r2);background:linear-gradient(180deg,rgba(90,209,165,.06),rgba(255,255,255,.012));padding:clamp(20px,2.6vw,30px)}
.dsheet-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap}
.dsheet-top h3{font-size:clamp(22px,2.6vw,30px);margin:0 0 6px}
.dsheet-top .dim{font-size:15px;max-width:60ch}
.dsheet-cta{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.dsheet-cta .fine{font-family:var(--mono);font-size:10.5px;color:var(--dim);max-width:30ch;text-align:right}
.dsheet-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}
.dsheet-kpis div{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(8,10,18,.5)}
.dsheet-kpis div[hidden]{display:none}
.dsheet-kpis b{display:block;font-family:var(--dsp);font-weight:800;font-size:clamp(24px,3vw,34px);letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums;line-height:1.1}
.dsheet-kpis span{display:block;margin-top:5px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.dsheet-cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:26px;margin-top:26px}
.dsheet h5{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--G2);margin:0 0 12px;font-weight:500}
.dsheet h5 span{color:var(--dim)}
.dcov{display:grid;gap:9px}
.dcov .r{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:10px;align-items:center;font-size:14px;color:var(--mute)}
.dcov .r .lab{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px}
.dcov .r .lab b{color:#fff;font-weight:600}
.dcov .r .lab span{font-family:var(--mono);font-size:11px;color:var(--dim)}
.dcov .r .bar{height:7px;border-radius:4px;background:rgba(255,255,255,.07);overflow:hidden}
.dcov .r .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--G),#74dcb5);border-radius:4px;transition:width .6s cubic-bezier(.2,.7,.2,1)}
.dcov .r .pct{font-family:var(--dsp);font-weight:800;font-size:17px;color:#fff;text-align:right;font-variant-numeric:tabular-nums}
.dcov .r.low .bar i{background:linear-gradient(90deg,#8b7bf7,#a394f5)}
.dfields{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:rgba(8,10,18,.5)}
.dfields table{width:100%;border-collapse:collapse}
.dfields td{padding:8px 12px;border-bottom:1px solid var(--line);font-size:13px;color:var(--mute);vertical-align:top}
.dfields tr:last-child td{border-bottom:0}
.dfields td:first-child{font-family:var(--mono);font-size:12px;color:#fff;white-space:nowrap;width:1%}
.dfields td small{display:block;color:var(--dim);font-size:12px;margin-top:2px}
.dcompanion{margin-top:12px;padding:12px 14px;border:1px dashed rgba(90,209,165,.4);border-radius:12px;font-size:13.5px;color:var(--mute)}
.dcompanion b{color:#fff}
.dcompanion[hidden]{display:none}
.dsheet-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:13.5px}
@media (max-width:860px){.dsheet-kpis{grid-template-columns:repeat(2,1fr)}.dsheet-cols{grid-template-columns:1fr}.dsheet-cta{align-items:flex-start}.dsheet-cta .fine{text-align:left}}
.dbuy{display:grid;gap:8px;margin-top:auto;padding-top:18px}
.dbuy input{width:100%;padding:12px 14px;border-radius:11px;border:1px solid var(--line2);background:rgba(8,10,18,.7);color:#fff;font:15px var(--body)}
.dbuy input:focus{outline:none;border-color:var(--G)}
.dbuy .btn{justify-content:center}
.dbuy .sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.dcalc .out .err{min-height:16px;margin-top:8px;font-size:13.5px;color:var(--R2,#ff8a95)}
.dcalc .out .err a{color:#fff}

/* Data sheet tiers (2026-10-07): whole dataset vs the top rooms or acts by bookings */
.dtier{margin:-4px 0 14px}
.dtier[hidden]{display:none}
.dtier-opts{display:flex;gap:6px;flex-wrap:wrap}
.dtier-opts button{padding:7px 11px;border-radius:9px;border:1px solid var(--line2);background:rgba(255,255,255,.02);color:var(--mute);font:600 12.5px var(--body);cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.dtier-opts button small{display:block;font:400 9.5px var(--mono);letter-spacing:.06em;color:var(--dim);margin-top:1px}
.dtier-opts button:hover{color:#fff;border-color:rgba(90,209,165,.5)}
.dtier-opts button.on{background:rgba(90,209,165,.14);border-color:var(--G);color:#fff}
.dtier-opts button.on small{color:var(--G2)}
.dtier-note{margin:10px 0 0;font-size:13.5px;line-height:1.55;color:var(--mute)}
.dtier-note b{color:#fff}
.dtier-note span{color:var(--dim);font-family:var(--mono);font-size:11px}
.dcov .r .lab em{font-style:normal;color:var(--G2)}
.dcov .r .lab em.neg{color:var(--R2,#ff8a95)}
.dsheet-cta .fine a{color:#fff;text-decoration:underline;text-underline-offset:3px}
