/* TradingOne homepage (xbinv.com) - W-HOME W1B. Pixel authority: mock/home-xbinv-mock-v3.html.
   Hues are the app's (src/static/styles.css :root: blue #2e6cf6 / #4c8df6, green #2fd18c, amber #f5b73d),
   the homepage runs darker and brighter (neon edges, glows) as the mock does.
   Motion rules (spec §2 E): animations touch only transform / opacity / stroke / clip-path; the canvases'
   ancestors (.hero, .hero-bg, body, html) carry no transform, filter or perspective; base styles are the
   FINAL state (initial states live only in keyframes / .js-gated rules), so reduced motion = static page. */
:root{
  --bg:#060d19;--bg2:#0a1626;--panel:#0e1f35;--panel-s:#0c1a2d;--glass:rgba(14,31,53,.72);
  --line:rgba(120,160,220,.14);--line2:rgba(76,141,246,.45);
  --fg:#e8eef8;--fg2:#b9c7dc;--mut:#8397b2;
  --blue:#2e6cf6;--blue2:#4c8df6;--cyan:#38d6ff;--violet:#a78bfa;--green:#2fd18c;--red:#ff5a6e;--amber:#f5b73d;
  --r:14px;
  --sans:"Segoe UI",Inter,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;
  --mono:"Cascadia Code","JetBrains Mono",ui-monospace,Consolas,"Microsoft YaHei",monospace;
  --ease:cubic-bezier(.2,.8,.2,1);--ease-io:cubic-bezier(.65,0,.35,1);
  --con-h:632px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.6 var(--sans);overflow-x:hidden}
/* en / ms visitors: hidden until i18n.js / main.js have applied the language (never longer than 1.5 s) */
.lp body{visibility:hidden;animation:lpshow 0s 1.5s forwards}
@keyframes lpshow{to{visibility:visible}}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:6px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.up{color:var(--green)}.dn{color:var(--red)}
.lk{display:inline-block;position:relative;width:9px;height:7px;margin:0 1px 0 3px;border-radius:2px;background:currentColor;vertical-align:0}
.lk::before{content:"";position:absolute;left:1.5px;top:-5px;width:6px;height:6px;box-sizing:border-box;border:1.5px solid currentColor;border-bottom:0;border-radius:4px 4px 0 0}

/* ---------- D5: scroll progress ---------- */
#prog{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:linear-gradient(90deg,var(--blue),var(--cyan));transform:scaleX(0);transform-origin:0 50%;will-change:transform;pointer-events:none}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:18px;height:60px;padding:0 24px;border-bottom:1px solid transparent;transition:background-color .3s,border-color .3s}
.nav.scrolled{background:rgba(6,13,25,.8);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;white-space:nowrap}
.logo .t{flex:none;width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--blue),var(--cyan));display:grid;place-items:center;color:#061120;font:900 16px var(--sans);box-shadow:0 0 18px rgba(56,214,255,.35)}
.nav .links{display:flex;gap:20px;margin-left:14px;color:var(--fg2);font-size:14px}
.nav .links a{transition:color .2s}.nav .links a:hover{color:#fff}
.nav .sp{flex:1}
.lang{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.lang button{border:0;background:transparent;padding:5px 9px;font:600 11.5px var(--mono);color:var(--mut);cursor:pointer;transition:color .2s,background-color .2s}
.lang button[aria-pressed="true"]{color:#fff;background:rgba(46,108,246,.25)}
.lang button:hover{color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:11px;font-weight:700;border:1px solid var(--line);color:var(--fg);background:rgba(255,255,255,.04);cursor:pointer;white-space:nowrap;transition:transform .15s,box-shadow .2s,background-color .2s,border-color .2s}
.btn:hover{transform:translateY(-1px);background:rgba(255,255,255,.08)}
.btn.pri{background:linear-gradient(135deg,var(--blue),#1e4fd1);border-color:transparent;color:#fff;box-shadow:0 8px 30px rgba(46,108,246,.35)}
.btn.pri:hover{box-shadow:0 10px 40px rgba(46,108,246,.55)}
.btn.sm{padding:8px 14px;font-size:13px}
.btn.xs{padding:6px 10px;font-size:12px;border-radius:8px}
.btn:disabled{opacity:.6;cursor:default;transform:none}

/* ---------- hero: A1-A4 backgrounds ---------- */
.hero{position:relative;overflow:hidden;background:var(--bg)}
.hero-bg{position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(120,160,220,.17) 1px,rgba(120,160,220,0) 1.6px);background-size:48px 48px;background-position:24px 12px}
.hero-bg::after{content:"";position:absolute;left:0;top:0;right:0;bottom:0;
  background:linear-gradient(90deg,rgba(6,13,25,.62) 0,rgba(6,13,25,.18) 46%,rgba(6,13,25,0) 70%),linear-gradient(180deg,rgba(6,13,25,0) 55%,rgba(6,13,25,.55) 82%,var(--bg) 100%)}
.aurora{position:absolute;left:-10%;top:-10%;right:-10%;bottom:0;overflow:hidden}
.au{position:absolute;display:block;border-radius:50%;will-change:transform,opacity}
.au1{width:64vmax;height:64vmax;left:-8vmax;top:-26vmax;background:radial-gradient(closest-side,rgba(46,108,246,.30),rgba(46,108,246,.11) 52%,rgba(46,108,246,0));animation:au1 20s var(--ease-io) infinite}
.au2{width:54vmax;height:54vmax;right:-12vmax;top:-14vmax;background:radial-gradient(closest-side,rgba(56,214,255,.20),rgba(56,214,255,.07) 52%,rgba(56,214,255,0));animation:au2 20s var(--ease-io) -6s infinite}
.au3{width:42vmax;height:42vmax;left:30%;top:28%;background:radial-gradient(closest-side,rgba(167,139,250,.15),rgba(167,139,250,.05) 52%,rgba(167,139,250,0));animation:au3 20s var(--ease-io) -12s infinite}
@keyframes au1{0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.9}50%{transform:translate3d(9vw,7vh,0) scale(1.12);opacity:.65}}
@keyframes au2{0%,100%{transform:translate3d(0,0,0) scale(1.05);opacity:.7}50%{transform:translate3d(-8vw,9vh,0) scale(.92);opacity:1}}
@keyframes au3{0%,100%{transform:translate3d(0,0,0) scale(.95);opacity:.45}50%{transform:translate3d(-6vw,-6vh,0) scale(1.15);opacity:.95}}
.hero-bg canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.4s ease}
#river.on{opacity:.62}#field.on{opacity:.75}
#glow{position:absolute;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;background:radial-gradient(closest-side,rgba(56,214,255,.15),rgba(56,214,255,0));transform:translate3d(30vw,40vh,0);transition:transform .6s var(--ease);will-change:transform}
.tape{position:absolute;top:60px;left:0;right:0;z-index:3;height:32px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(6,13,25,.45);font:12px/30px var(--mono);white-space:nowrap}
.tape .run{display:inline-flex;will-change:transform;animation:tape 70s linear infinite}
.tape .seg1{display:inline-flex;flex:none}
.tape .seg1>span{margin:0 22px;color:var(--fg2)}
.tape b{color:#fff;font-weight:600}.tape em{font-style:normal}
.tape .tag{position:absolute;right:0;top:0;bottom:0;padding:0 12px 0 26px;font-size:10.5px;color:var(--mut);background:linear-gradient(90deg,rgba(6,13,25,0),var(--bg) 22px)}
@keyframes tape{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* ---------- hero copy + B1 entrance ---------- */
.hero-in{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:44px;align-items:center;min-height:100vh;padding-top:112px;padding-bottom:64px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:600 12.5px var(--mono);color:var(--cyan);letter-spacing:.6px;margin-bottom:18px}
.eyebrow>i{position:relative;width:7px;height:7px;border-radius:50%;background:var(--green)}
.eyebrow>i::after,.live>i::after{content:"";position:absolute;left:-4px;top:-4px;right:-4px;bottom:-4px;border-radius:50%;border:1.5px solid currentColor;opacity:0;animation:ping 2s ease-out infinite}
.eyebrow>i{color:var(--green)}
@keyframes ping{0%{transform:scale(.5);opacity:.8}80%,100%{transform:scale(1.6);opacity:0}}
h1{font:800 clamp(34px,4.3vw,58px)/1.1 var(--sans);letter-spacing:-.5px;margin:0 0 18px}
:lang(en) h1,:lang(ms) h1{font-size:clamp(32px,3.7vw,52px)}
h1 .ln{display:block}
h1 .ln>span{display:inline-block;animation:lineIn .9s var(--ease) both}
h1 .l2>span{animation-delay:.18s}
h1 .g{background:linear-gradient(90deg,#fff,var(--cyan) 60%,var(--blue2));-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes lineIn{from{clip-path:inset(0 0 100% 0);transform:translate3d(0,.35em,0)}to{clip-path:inset(-14% -4% -22% -4%);transform:none}}
.e0{animation:fadeUp .6s var(--ease) both}
.e1{animation:fadeUp .7s var(--ease) .35s both}
.e2{animation:fadeUp .7s var(--ease) .42s both}
.e3{animation:fadeUp .7s var(--ease) .5s both}
.e4{animation:fadeUp .7s var(--ease) .6s both}
@keyframes fadeUp{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}
.sub{font-size:clamp(15px,1.3vw,18px);color:var(--fg2);max-width:52ch;margin:0 0 22px}
.sub b{color:#fff;font-weight:600}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 24px;max-width:480px;margin:0}
.kpi{display:flex;flex-direction:column;min-width:0}
.kpi b{font:800 26px/1.15 var(--sans)}
.kpi>span{font-size:12px;line-height:1.4;color:var(--mut)}
.cavg{margin:12px 0 0;font:600 12px/1.5 var(--mono);color:var(--amber)}
.basis{min-height:2.9em;margin:6px 0 20px;font-size:11.5px;line-height:1.45;color:var(--mut);max-width:60ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.cta .note{font-size:12.5px;color:var(--mut);width:100%;margin-top:4px}
.hint{margin-top:26px;display:flex;align-items:center;gap:10px;color:var(--mut);font:600 12px var(--mono)}
.hint .arrow{display:inline-block;color:var(--cyan);animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(6px,0,0)}}

/* ---------- odometer ---------- */
.odo{display:inline-flex;height:1.15em;line-height:1.15;overflow:hidden;vertical-align:top;font-variant-numeric:tabular-nums;white-space:nowrap}
.od{display:inline-block;height:1.15em;overflow:hidden}
.odr{display:block;transform:translate3d(0,0,0);transition-property:transform;transition-timing-function:var(--ease);will-change:transform}
.odr>span{display:block;height:1.15em;line-height:1.15}
.odc{display:inline-block}

/* ---------- B2 + C: the demo console ---------- */
.console{position:relative;height:var(--con-h);display:flex;flex-direction:column;border-radius:20px;background:linear-gradient(160deg,rgba(14,31,53,.95),rgba(8,18,32,.97));border:1px solid var(--line2);box-shadow:0 40px 100px rgba(0,0,0,.55),0 0 0 1px rgba(56,214,255,.08),0 0 80px rgba(46,108,246,.16);overflow:hidden;animation:conIn .5s var(--ease) .2s both}
@keyframes conIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.console::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0;z-index:5;background:linear-gradient(120deg,rgba(56,214,255,0) 30%,rgba(56,214,255,.06) 50%,rgba(56,214,255,0) 70%);transform:translate3d(-100%,0,0);animation:sheen 7s 2.2s infinite;pointer-events:none}
@keyframes sheen{0%{transform:translate3d(-100%,0,0)}40%,100%{transform:translate3d(100%,0,0)}}
.chead{flex:none;height:40px;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--line);font:600 11.5px var(--mono);color:var(--mut);white-space:nowrap}
.dots{display:inline-flex;gap:5px}
.dots i{display:block;width:9px;height:9px;border-radius:50%;background:#ff5f57}
.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}
.chead .dots i{animation:dotOn .24s var(--ease) both}
.chead .dots i:nth-child(1){animation-delay:.5s}.chead .dots i:nth-child(2){animation-delay:.58s}.chead .dots i:nth-child(3){animation-delay:.66s}
@keyframes dotOn{from{opacity:.15;transform:scale(.55)}to{opacity:1;transform:none}}
.chead .url{overflow:hidden;text-overflow:ellipsis}
.chead .st{margin-left:auto;display:flex;align-items:center;gap:6px;color:var(--green)}
.js #cstat:not(.typing){opacity:0}
.chead .st>i{width:6px;height:6px;border-radius:50%;background:var(--green);animation:dotOn .24s var(--ease) .64s both}
.tabs{flex:none;height:44px;display:flex;align-items:flex-end;gap:4px;padding:0 12px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;border-bottom:1px solid var(--line)}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;position:relative;height:35px;padding:0 13px;border-radius:9px 9px 0 0;font-weight:700;font-size:13px;color:var(--mut);border:1px solid transparent;border-bottom:0;background:transparent;cursor:pointer;white-space:nowrap;transition:color .2s,background-color .2s,border-color .2s}
.tab.boot{animation:tabIn .26s var(--ease) var(--d,0ms) both}
@keyframes tabIn{from{opacity:0;transform:translate3d(0,6px,0)}to{opacity:1;transform:none}}
.tab:hover{color:var(--fg)}
.tab.on{color:#fff;background:rgba(46,108,246,.14);border-color:var(--line)}
.tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--blue),var(--cyan))}
.tab .tbar{position:absolute;left:0;right:0;bottom:-1px;height:2px;z-index:1;background:rgba(160,235,255,.75);transform:scaleX(0);transform-origin:0 50%}
.tab.auto .tbar{animation:tabfill 14s linear forwards}
@keyframes tabfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.stage{position:relative;flex:1;min-height:0;padding:14px 16px 0;overflow:hidden}
.scene{height:100%;display:flex;flex-direction:column;padding-bottom:30px;animation:sceneIn .35s var(--ease) both}
@keyframes sceneIn{from{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:none}}
.foot-note{position:absolute;left:16px;right:16px;bottom:9px;font:10.5px/1.3 var(--mono);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick{display:flex;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none}
.pick::-webkit-scrollbar{display:none}
.pick button,.pick a,.qpick button{flex:none;font:600 11.5px var(--mono);padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);cursor:pointer;color:var(--fg2);white-space:nowrap;transition:border-color .2s,color .2s,background-color .2s}
.pick button:hover,.qpick button:hover{border-color:var(--line2);color:#fff}
.pick button.on,.qpick button.on{border-color:var(--cyan);color:#fff;background:rgba(56,214,255,.12)}
.pick a{border-style:dashed;color:var(--mut)}

/* type-reveal (pre-laid characters) + caret */
.typing{position:relative}
.typing .ch{opacity:0;transition:opacity .12s linear}
.typing .ch.on{opacity:1}
.caret{position:absolute;left:0;top:0;width:2px;height:1em;background:var(--cyan);box-shadow:0 0 8px rgba(56,214,255,.8);opacity:0;pointer-events:none;will-change:transform}
.caret.on{opacity:1;animation:blink .9s steps(2) infinite}
@keyframes blink{50%{opacity:0}}

/* C1 scene */
.itop{display:flex;gap:10px;align-items:center;margin-bottom:10px;min-width:0}
.cmd{flex:0 0 150px;display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;border-radius:9px;border:1px solid var(--line);background:rgba(6,13,25,.6);font:13px var(--mono);color:var(--fg)}
.srch{flex:none;width:15px;height:15px;fill:none;stroke:var(--mut);stroke-width:2;stroke-linecap:round}
.qw{position:relative;flex:1;min-width:0;height:18px;line-height:18px;white-space:nowrap}
.qw .q{display:inline-block;height:18px}
.qw .ph{position:absolute;left:0;top:0;color:var(--mut)}
.dd{position:absolute;z-index:4;left:16px;top:52px;width:min(380px,calc(100% - 32px));padding:6px;border-radius:10px;border:1px solid var(--line2);background:rgba(10,22,38,.98);box-shadow:0 20px 50px rgba(0,0,0,.5);font-size:12.5px;opacity:0;transform:translate3d(0,-6px,0);transition:opacity .2s,transform .2s;pointer-events:none}
.dd.on{opacity:1;transform:none}
.dd div{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:7px}
.dd div.hl{background:rgba(46,108,246,.2)}
.dd span{color:var(--mut);font:11px var(--mono);white-space:nowrap}
.sc-ipo .body{flex:1;min-height:0;display:flex;flex-direction:column}
.sc-ipo .body>.ipo-card{flex:1;min-height:0}
/* the console variant: a flex column whose research box takes what is left, so nothing ever spills */
.ipo-card.cmp{display:flex;flex-direction:column;gap:8px;padding:11px}
.cmp .tk{width:38px;height:38px;font-size:10.5px}
.cmp .ring{width:64px;height:64px}
.cmp .ring .c b{font-size:21px}
.cmp .why{display:none}
.cmp .cret{height:70px}
.cmp .dimt{padding:6px 8px}
.cmp .dimt .v{font-size:16px}
.cmp .ai{flex:1;min-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 10px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 10px),transparent)}
.locked.cmp .mask{flex:none}

/* ---------- the IPO card (console compact + cases section) ---------- */
.ipo-card{display:grid;gap:10px;padding:12px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,0))}
.ipo-card .hd{display:flex;align-items:center;gap:12px;min-width:0}
.tk{flex:none;width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,#1a3454,#13263f);color:#9fc0f0;display:grid;place-items:center;font:800 11.5px var(--mono);border:1px solid var(--line)}
.tk.sm{width:38px;height:38px;font-size:10.5px}
.hdt{min-width:0}
.ipo-card .nm{font-weight:800;font-size:14.5px;line-height:1.25}
.ipo-card .sb{font-size:11.5px;color:var(--mut);margin-top:2px}
.pill{display:inline-block;font:600 10px/1.5 var(--mono);padding:1px 8px;border-radius:999px;border:1px solid rgba(47,209,140,.38);color:var(--green);background:rgba(47,209,140,.08);margin-left:6px;white-space:nowrap}
.pill.open{color:var(--cyan);border-color:rgba(56,214,255,.4);background:rgba(56,214,255,.08)}
.score-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}
.ring{position:relative;width:76px;height:76px}
.ring svg{display:block;width:100%;height:100%}
.ring circle{fill:none;stroke-width:8}
.ring .bg{stroke:rgba(255,255,255,.08)}
.ring .fg{stroke-linecap:round;stroke-dasharray:251.327;stroke-dashoffset:251.327;transform:rotate(-90deg);transform-origin:50% 50%}
.ring .c{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.ring .c b{font:800 24px/1 var(--sans);font-variant-numeric:tabular-nums}
.ring .c s{margin-top:3px;font:600 9.5px var(--mono);color:var(--mut);text-decoration:none}
.verdict .gr{display:inline-block;font:800 11.5px var(--mono);padding:2px 9px;border-radius:7px;color:var(--amber);background:rgba(245,183,61,.14)}
.verdict .one{font-weight:700;font-size:13.5px;line-height:1.45;margin:5px 0 2px}
.verdict .why{font-size:12px;line-height:1.45;color:var(--fg2)}
.ret{padding:8px 10px 6px;border-radius:10px;border:1px solid var(--line);background:rgba(6,13,25,.5)}
.ret .rt{display:flex;justify-content:space-between;gap:4px 10px;flex-wrap:wrap;font:600 10.5px var(--mono);color:var(--mut)}
.ret .rt b{font-size:11.5px}
.cret{height:84px;margin-top:4px}
.ipo-card:not(.cmp) .cret{height:118px}
.dims{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.dimt{min-width:0;padding:8px 9px;border-radius:10px;background:rgba(6,13,25,.55);border:1px solid var(--line);opacity:0;transform:translate3d(0,8px,0);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.dimt.in{opacity:1;transform:none}
.dimt .k{font:600 10px var(--mono);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dimt .v{font:800 18px/1.2 var(--sans);margin:1px 0 3px;font-variant-numeric:tabular-nums}
.dimt .bar{height:4px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden}
.dimt .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));transform:scaleX(0);transform-origin:0 50%;transition:transform .9s var(--ease) .15s}
.dimt.in .bar i{transform:scaleX(var(--w,0))}
.dimt .e{font-size:10.5px;color:var(--fg2);margin-top:5px;line-height:1.35}
.cmp .dimt .e{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail{display:grid;grid-template-columns:repeat(3,1fr);position:relative;margin:2px 0}
.rail::before{content:"";position:absolute;left:16%;right:16%;top:9px;height:2px;background:rgba(255,255,255,.09)}
.rail .pt{position:relative;text-align:center;font-size:11.5px;color:var(--mut)}
.rail .pt i{display:block;position:relative;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid var(--mut);margin:3px auto 6px}
.rail .pt.done i{border-color:var(--green);background:var(--green)}
.rail .pt.now i{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(56,214,255,.2)}
.rail .pt b{display:block;color:#fff;font-size:12.5px}
.ev{display:grid;gap:5px;font-size:12px;line-height:1.45}
.evr{display:flex;gap:8px;align-items:flex-start;opacity:0;transform:translate3d(-6px,0,0);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.evr.in{opacity:1;transform:none}
.evr .pg{flex:none;font:600 10px var(--mono);color:var(--cyan);border:1px solid rgba(56,214,255,.32);border-radius:6px;padding:1px 6px;margin-top:1px}
.evr.in .pg{animation:stamp .12s ease-out both}
@keyframes stamp{from{transform:scale(1.15);opacity:.45}to{transform:none;opacity:1}}
.ai{padding:9px 11px;border-radius:10px;background:rgba(56,214,255,.06);border:1px solid rgba(56,214,255,.2);font-size:12.5px;line-height:1.55}
.ai .tag{display:block;margin-bottom:3px;font:600 10px var(--mono);color:var(--cyan)}
.acts{display:flex;gap:8px;flex-wrap:wrap}
/* the masked upcoming IPO (D4) */
.locked .mask{position:relative;display:grid;gap:8px;border-radius:10px;overflow:hidden}
.locked .blur{display:grid;gap:8px;filter:blur(5px);opacity:.55;pointer-events:none;-webkit-user-select:none;user-select:none;transition:filter .3s var(--ease),opacity .3s var(--ease)}
.locked .mask::after{content:"";position:absolute;left:0;top:0;right:0;bottom:0;background:linear-gradient(115deg,rgba(160,210,255,0) 32%,rgba(160,210,255,.16) 47%,rgba(255,255,255,.05) 53%,rgba(160,210,255,0) 68%);transform:translate3d(-110%,0,0);animation:shim 6s ease-in-out infinite;pointer-events:none}
@keyframes shim{0%{transform:translate3d(-110%,0,0)}22%,100%{transform:translate3d(110%,0,0)}}
.locked .peek{position:absolute;left:50%;top:50%;z-index:2;opacity:0;transform:translate3d(-50%,-40%,0);transition:opacity .25s var(--ease),transform .25s var(--ease)}
.locked .mask:hover .blur,.locked .mask:focus-within .blur{filter:blur(3px);opacity:.65}
.locked .mask:hover .peek,.locked .mask:focus-within .peek{opacity:1;transform:translate3d(-50%,-50%,0)}
@media (hover:none){.locked .peek{opacity:1;transform:translate3d(-50%,-50%,0)}}
.lockrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;border:1px dashed var(--line2);background:rgba(46,108,246,.08);font-size:12.5px}
.lockrow b{color:#fff}
.lockrow .lk{color:var(--cyan);margin-right:2px}
.lockrow .btn:first-of-type{margin-left:auto}

/* shared chart: clip-reveal line + area, a glowing tip that rides the line, an end tooltip */
.chart{position:relative}
.chart svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}
.chart .ln{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.chart .bm{fill:none;stroke:var(--mut);stroke-width:1.2;stroke-dasharray:4 4;vector-effect:non-scaling-stroke;opacity:.75}
.chart .bl{stroke:rgba(255,255,255,.22);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.blab{position:absolute;left:0;top:0;font:600 9.5px var(--mono);color:var(--mut);pointer-events:none;white-space:nowrap}
.tipdot{position:absolute;left:0;top:0;width:0;height:0;opacity:0;pointer-events:none;will-change:transform;transition:opacity .25s}
.tipdot.on{opacity:1}
.tipdot::before{content:"";position:absolute;left:-12px;top:-12px;width:24px;height:24px;border-radius:50%;background:radial-gradient(closest-side,rgba(47,209,140,.6),rgba(47,209,140,0))}
.tipdot::after{content:"";position:absolute;left:-3.5px;top:-3.5px;width:7px;height:7px;border-radius:50%;background:#d6ffec;box-shadow:0 0 0 2px rgba(47,209,140,.55),0 0 12px 3px rgba(47,209,140,.7)}
.tipdot.done::before{animation:tipPulse 1.8s ease-out infinite}
@keyframes tipPulse{0%{transform:scale(.7);opacity:1}100%{transform:scale(2.3);opacity:0}}
.ctip{position:absolute;left:0;top:0;opacity:0;pointer-events:none;will-change:transform,opacity;transition:opacity .3s}
.ctip>span{display:block;padding:4px 9px;border-radius:8px;background:rgba(6,13,25,.94);border:1px solid rgba(47,209,140,.55);font:700 11.5px var(--mono);color:#dfffee;white-space:nowrap;box-shadow:0 6px 20px rgba(0,0,0,.4),0 0 14px rgba(47,209,140,.25)}
.ctip.on{opacity:1}
.ctip.on>span{animation:pop .35s var(--ease) both}
@keyframes pop{from{transform:translate3d(0,6px,0) scale(.92)}to{transform:none}}

/* C2 research Q&A */
.sc-ai .chat{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}
.msg{max-width:90%;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.6;opacity:0;transform:translate3d(0,6px,0);transition:opacity .3s var(--ease),transform .3s var(--ease),clip-path .45s var(--ease)}
.msg.on{opacity:1;transform:none}
.msg.u{align-self:flex-end;background:rgba(46,108,246,.22);border:1px solid rgba(76,141,246,.35)}
.msg.a{position:relative;align-self:flex-start;background:rgba(6,13,25,.6);border:1px solid var(--line);clip-path:inset(0 calc(100% - 64px) calc(100% - 40px) 0 round 12px)}
.msg.a.open{clip-path:inset(0 0 0 0 round 12px)}
.think{position:absolute;left:14px;top:16px;display:inline-flex;gap:4px;opacity:0;transition:opacity .2s}
.think.on{opacity:1}
.think i{width:6px;height:6px;border-radius:50%;background:var(--cyan);animation:bounce 1s infinite}
.think i:nth-child(2){animation-delay:.15s}.think i:nth-child(3){animation-delay:.3s}
@keyframes bounce{0%,100%{transform:translate3d(0,0,0);opacity:.4}50%{transform:translate3d(0,-4px,0);opacity:1}}
.cite{font:600 10px var(--mono);color:var(--cyan);vertical-align:super;line-height:0;margin:0 1px;padding:0 2px;border-radius:4px;transition:background-color .2s,color .2s,box-shadow .2s}
.cite.hl{background:rgba(56,214,255,.28);color:#fff;box-shadow:0 0 0 1px rgba(56,214,255,.55)}
.msg .src{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.msg .chip{font:600 10.5px var(--mono);color:var(--cyan);border:1px solid rgba(56,214,255,.32);border-radius:6px;padding:2px 7px;background:transparent;cursor:pointer;opacity:0;transform:translate3d(-6px,0,0) scale(.9);transition:opacity .25s var(--ease),transform .25s var(--ease),background-color .2s,color .2s}
.msg .chip.in{opacity:1;transform:none}
.msg .chip.on{background:rgba(56,214,255,.16);color:#fff}
.qpick{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}

/* C3 move probe */
.pgrid{flex:1;min-height:0;display:grid;grid-template-columns:.9fr 1.1fr;gap:12px;align-content:start}
.movers{display:grid;gap:6px;align-content:start}
.mv{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;border-radius:10px;border:1px solid var(--line);background:rgba(6,13,25,.5);cursor:pointer;text-align:left;opacity:0;transform:translate3d(-8px,0,0);transition:opacity .35s var(--ease),transform .35s var(--ease),border-color .2s,background-color .2s}
.mv.in{opacity:1;transform:none}
.mv:hover,.mv.on{border-color:var(--cyan)}
.mv.on{background:rgba(56,214,255,.07)}
.mv b{font-family:var(--mono)}.mv small{color:var(--mut)}
.mv .chg{font:700 13px var(--mono)}
.cause{position:relative;padding:12px;border-radius:12px;border:1px solid var(--line2);background:rgba(6,13,25,.55);overflow:hidden;align-self:start;min-height:100%}
.cause .ph{color:var(--mut);font-size:13px;transition:opacity .2s}
.cause .ph.out{opacity:0}
.cz{opacity:0;transform:translate3d(0,6px,0);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.cz.in{opacity:1;transform:none}
.cz.out{opacity:0;transform:translate3d(0,-4px,0);transition-duration:.2s}
.cz .ctk{font:600 11px var(--mono);color:var(--cyan)}
.cz h4{margin:4px 0 6px;font-size:15px;line-height:1.4}
.cz .two{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;font-size:12px;line-height:1.5}
.cz .two div{padding:8px;border-radius:8px;background:rgba(255,255,255,.035)}
.cz .two b{display:block;font:600 10.5px var(--mono);color:var(--mut);margin-bottom:3px}
.cz .two,.cz .src,.cz .cfl{opacity:0;transition:opacity .4s var(--ease)}
.cz .src{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;transition-delay:.1s}
.cz .src span{font:600 10.5px var(--mono);color:var(--cyan);border:1px solid rgba(56,214,255,.3);border-radius:6px;padding:2px 7px}
.cz.full .two,.cz.full .src,.cz.full .cfl{opacity:1}
.cfl{font:600 10.5px var(--mono);color:var(--mut);margin-top:8px}
.conf{height:5px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:5px}
.conf i{display:block;height:100%;background:linear-gradient(90deg,var(--green),#7ff0c0);transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease)}
.cz.bar .conf i{transform:scaleX(var(--w,0))}

/* C4 market temperature */
.sc-temp .pick{margin-bottom:10px}
.tgrid{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.gauge-wrap{text-align:center;padding:12px;border-radius:12px;border:1px solid var(--line);background:rgba(6,13,25,.5)}
.gauge-wrap svg{display:block;width:100%;max-width:250px;margin:0 auto}
.arc{transition:stroke-dashoffset 1.4s var(--ease)}
.needle{transform:rotate(-90deg);transform-origin:100px 100px;transition:transform 1.4s var(--ease)}
.lbl{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:baseline;margin-top:-2px;font:800 28px/1.15 var(--sans)}
.lbl .odo{justify-self:end}
.lbl .band{justify-self:start;font:700 14px var(--sans);color:var(--fg2);opacity:0;transition:opacity .3s;white-space:nowrap}
.lbl .band.in{opacity:1}
.lb2{font:600 10.5px var(--mono);color:var(--mut);margin-top:4px}
.metrics{display:grid;gap:7px;align-content:start}
.met{display:grid;grid-template-columns:minmax(0,1fr) 28% 64px;gap:10px;align-items:center;min-height:38px;padding:7px 11px;border-radius:10px;border:1px solid var(--line);background:rgba(6,13,25,.5);font-size:12px}
.met .mk{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .3s}
.met .mk.in{opacity:1}
.met .bar{height:5px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden}
.met .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green));transform:scaleX(0);transform-origin:0 50%;transition:transform 1.1s var(--ease)}
.met b{justify-self:start;font:800 15px var(--sans)}
.thist{flex:1;min-height:86px;display:flex;flex-direction:column;margin-top:12px;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:rgba(6,13,25,.5)}
.tht{display:flex;justify-content:space-between;font:600 10.5px var(--mono);color:var(--mut)}
.thc{flex:1;min-height:60px;margin-top:4px}

/* C5 backtest */
.sc-bt .params{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pl{font:600 11px var(--mono);color:var(--mut)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg button{padding:6px 10px;background:transparent;border:0;cursor:pointer;font:600 11.5px var(--mono);color:var(--mut);white-space:nowrap;transition:background-color .2s,color .2s}
.seg button.on{background:rgba(46,108,246,.24);color:#fff}
.runbar{flex:none;height:4px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:10px}
.runbar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));transform:scaleX(0);transform-origin:0 50%}
.scan{display:flex;align-items:center;gap:6px;margin-top:6px;font:600 11px var(--mono);color:var(--mut);white-space:nowrap}
.scan .cnt{display:inline-block;min-width:5.4ch;color:var(--fg);font-variant-numeric:tabular-nums}
.scan .lg{margin-left:auto;display:flex;align-items:center;gap:6px}
.lg i{display:inline-block;width:14px;height:2px;background:var(--green)}
.lg i.l2{height:0;background:none;border-top:1.5px dashed var(--mut)}
.eq.chart{flex:1;min-height:120px;margin-top:6px}
.stats{flex:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}
.stat{min-width:0;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:rgba(6,13,25,.5)}
.stat .k{font:600 10px var(--mono);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat .v{font:800 17px/1.15 var(--sans)}

/* ---------- live strip ---------- */
.strip{position:relative;z-index:3;margin-top:-36px}
.strip .grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.card{position:relative;overflow:hidden;padding:18px 20px;border-radius:var(--r);border:1px solid var(--line);background:rgba(12,26,45,.9)}
.strip .card .k{display:flex;align-items:center;justify-content:space-between;gap:8px;font:600 11.5px var(--mono);color:var(--mut)}
.strip .card .v{height:36px;margin-top:8px;font:800 30px/36px var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.strip .card .v .odo{line-height:1.15}
.strip .card .cdv{font:700 21px/36px var(--mono);color:var(--amber)}
.strip .card .s{min-height:2.9em;margin-top:6px;font-size:12.5px;line-height:1.45;color:var(--fg2)}
.live{flex:none;display:inline-flex;align-items:center;gap:6px;width:7em;font:600 10.5px var(--mono);color:var(--green);white-space:nowrap;overflow:hidden}
.live>i{position:relative;width:6px;height:6px;border-radius:50%;background:currentColor}
.live.snap{color:var(--amber)}

/* ---------- sections, D1 reveal, D5 scan line ---------- */
section{padding:100px 0 0}
.sec-h{position:relative;max-width:820px;margin-bottom:36px;padding-left:18px}
.sec-h .eyebrow{color:var(--blue2);margin-bottom:12px}
.sec-h .scan{position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:2px;background:rgba(76,141,246,.22);overflow:hidden}
.sec-h .scan::after{content:"";position:absolute;left:0;right:0;top:0;height:45%;background:linear-gradient(180deg,rgba(56,214,255,0),var(--cyan),rgba(56,214,255,0));transform:translate3d(0,-110%,0)}
.sec-h.in .scan::after{animation:scanY .3s ease-out .25s 1 both}
@keyframes scanY{from{transform:translate3d(0,-110%,0)}to{transform:translate3d(0,230%,0)}}
h2{font:800 clamp(28px,3.4vw,42px)/1.15 var(--sans);letter-spacing:-.4px;margin:0 0 14px}
.sec-h p{color:var(--fg2);font-size:17px;margin:0}
.js .reveal{opacity:0;transform:translate3d(0,18px,0);transition:opacity .7s var(--ease) var(--d,0ms),transform .7s var(--ease) var(--d,0ms)}
.js .reveal.in{opacity:1;transform:none}

/* cases section: the new IPO page */
.app-shell{border-radius:18px;border:1px solid var(--line2);background:linear-gradient(180deg,rgba(14,31,53,.92),rgba(8,18,32,.96));box-shadow:0 40px 100px rgba(0,0,0,.5);overflow:hidden}
.app-shell .abar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);font:600 11.5px var(--mono);color:var(--mut)}
.app-shell .url{flex:1;min-width:0;padding:5px 10px;border-radius:7px;background:rgba(6,13,25,.6);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-shell .bdg{white-space:nowrap}
.app-body{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);min-height:560px}
.ipo-list{border-right:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:2px}
.ipo-list .f{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.ipo-list .f>*{font:600 11px var(--mono);padding:5px 10px;border-radius:999px;border:1px solid var(--line);color:var(--fg2)}
.ipo-list .f .on{color:#fff;border-color:var(--cyan);background:rgba(56,214,255,.1)}
.ipo-list .f a:hover{border-color:var(--line2);color:#fff}
.row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;width:100%;padding:10px;border-radius:11px;border:1px solid transparent;background:transparent;text-align:left;cursor:pointer;transition:background-color .2s,border-color .2s}
.row:hover{background:rgba(255,255,255,.035)}
.row.on{background:rgba(46,108,246,.13);border-color:rgba(76,141,246,.42)}
.row .rn{display:flex;flex-direction:column;min-width:0}
.row .nm{font-weight:700;font-size:13.5px;line-height:1.25}
.row .sb{font-size:11px;color:var(--mut);margin-top:2px}
.row .d{font:600 11.5px/1.35 var(--mono);color:var(--fg2);text-align:right}
.row .d small{display:block;color:var(--amber);font-size:10.5px}
.sc{font:800 13px var(--mono);padding:4px 9px;border-radius:8px;background:rgba(245,183,61,.14);color:var(--amber);min-width:56px;text-align:center;white-space:nowrap}
.row.more{margin-top:6px;cursor:pointer;border:1px dashed var(--line2);background:rgba(46,108,246,.06)}
.row.more:hover{background:rgba(46,108,246,.1)}
.ipo-detail{padding:16px;min-width:0}

/* features (D2) */
.feat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fc{padding:24px;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s,opacity .7s var(--ease) var(--d,0ms)}
.js .fc.reveal{transition:opacity .7s var(--ease) var(--d,0ms),transform .7s var(--ease) var(--d,0ms),border-color .25s,box-shadow .25s}
.js .fc.reveal.in:hover,.fc:hover{transform:translate3d(0,-4px,0);border-color:rgba(110,170,255,.6);box-shadow:0 18px 40px rgba(0,0,0,.35),0 0 0 1px rgba(56,214,255,.12)}
.js .fc.reveal.in:hover{transition-delay:0ms}
.ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:rgba(46,108,246,.14);border:1px solid rgba(76,141,246,.25);margin-bottom:16px}
.ic svg{width:24px;height:24px;fill:none;stroke:#7fb4ff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ic svg path{stroke-dasharray:1;stroke-dashoffset:0}
.fc:hover .ic svg path{animation:icdraw .6s var(--ease-io) both}
@keyframes icdraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.fc h3{margin:0 0 6px;font-size:17px}
.fc p{margin:0;color:var(--fg2);font-size:13.5px}

/* deep research */
.team{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;margin:0 0 14px;border-radius:14px;border:1px solid var(--line2);background:linear-gradient(90deg,rgba(46,108,246,.14),rgba(56,214,255,.04));font-size:14.5px;color:#fff}
.team .tk2{flex:none;font:700 11.5px var(--mono);color:var(--cyan);padding:3px 9px;border-radius:999px;border:1px solid rgba(56,214,255,.4)}
.res-p{color:var(--fg2);font-size:15px;margin:0 0 24px;max-width:70ch}
.res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.doc{padding:20px;border-radius:14px;background:var(--glass);border:1px solid var(--line);font-size:13px}
.doc .t{display:flex;justify-content:space-between;gap:8px;font:600 11px var(--mono);color:var(--cyan);margin-bottom:8px}
.doc .smp{flex:none;color:var(--mut)}
.doc h4{margin:0 0 8px;font-size:16px;line-height:1.4}
.doc .ln{height:7px;border-radius:4px;background:rgba(255,255,255,.07);margin:7px 0}
.doc .w1{width:92%}.doc .w2{width:70%}.doc .w3{width:84%}
.doc .q{margin-top:12px;padding:10px 12px;border-left:2px solid var(--blue2);color:var(--fg2);background:rgba(46,108,246,.06);border-radius:0 8px 8px 0}

/* strategy stage */
.stg{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:28px;align-items:center}
.eqbox{padding:18px 20px;border-radius:16px;background:var(--glass);border:1px solid var(--line)}
.eqbox .tag{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font:600 11px var(--mono);color:var(--mut)}
.eqc{height:240px;margin-top:10px}
.steps{display:grid;gap:12px}
.step{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:var(--glass);border:1px solid var(--line)}
.step .n{flex:none;font:800 13px var(--mono);color:var(--cyan);padding:4px 8px;border-radius:8px;border:1px solid rgba(56,214,255,.3)}
.step b{display:block;font-size:15px;margin-bottom:2px}
.step span{font-size:13px;color:var(--fg2)}

/* pricing (D3: the pro card's rotating conic edge, transform-only, 8 s a turn) */
.price{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.plan{position:relative;display:flex;flex-direction:column;padding:26px;border-radius:16px;background:var(--glass);border:1px solid var(--line)}
.plan.hot{border:0;overflow:hidden;isolation:isolate;background:transparent;box-shadow:0 0 0 1px rgba(76,141,246,.16),0 20px 60px rgba(46,108,246,.22)}
.plan.hot::before{content:"";position:absolute;left:50%;top:50%;width:1000px;height:1000px;margin:-500px 0 0 -500px;z-index:-2;background:conic-gradient(from 0deg,rgba(76,141,246,.25) 0deg,rgba(76,141,246,.25) 200deg,rgba(76,141,246,.95) 280deg,#38d6ff 320deg,rgba(76,141,246,.25) 360deg);animation:spin 8s linear infinite}
.plan.hot::after{content:"";position:absolute;left:1.5px;top:1.5px;right:1.5px;bottom:1.5px;z-index:-1;border-radius:14.5px;background:linear-gradient(180deg,#10233c,#0b1829)}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.plan .nm{font-weight:800;font-size:18px}
.plan .pr{font:800 32px/1.2 var(--sans);margin:10px 0 4px}
.plan .pr small{font-size:13px;color:var(--mut);font-weight:600}
.plan .pr .soon{font-size:26px}
.plan .beta{align-self:flex-start;font:600 11px var(--mono);color:var(--green);background:rgba(47,209,140,.12);padding:3px 8px;border-radius:6px;margin-bottom:6px}
.plan ul{list-style:none;padding:0;margin:14px 0 20px;display:grid;gap:8px;font-size:13.5px;color:var(--fg2);flex:1;align-content:start}
.plan li{position:relative;padding-left:22px}
.plan li::before{content:"";position:absolute;left:2px;top:.45em;width:10px;height:5px;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}

/* waitlist */
#cta{padding-bottom:100px}
.ctaband{border-radius:22px;padding:54px 40px;text-align:center;border:1px solid var(--line2);background:radial-gradient(ellipse at 20% 20%,rgba(46,108,246,.35),rgba(46,108,246,0) 50%),radial-gradient(ellipse at 90% 80%,rgba(56,214,255,.22),rgba(56,214,255,0) 50%),var(--panel)}
.ctaband p{color:var(--fg2);margin:0 auto 24px;max-width:56ch}
.form{display:flex;gap:10px;max-width:600px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.form input,.form select{flex:1 1 220px;min-width:0;height:46px;padding:0 14px;border-radius:11px;border:1px solid var(--line);background:rgba(6,13,25,.7);color:#fff;font:15px var(--sans)}
.form input:focus,.form select:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px rgba(56,214,255,.18)}
.form .btn{height:46px}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.fmsg{flex-basis:100%;min-height:1.6em;margin:4px 0 0;font-size:13.5px;color:var(--fg2)}
.fmsg.ok{color:var(--green)}.fmsg.bad{color:var(--amber)}.fmsg.fail{color:var(--fg)}
.fmsg .btn{margin-left:6px}
.fpriv{flex-basis:100%;margin:0;font-size:12px;color:var(--mut)}

footer{padding:40px 0 60px;border-top:1px solid var(--line);color:var(--mut);font-size:12.5px}
footer .row2{display:flex;gap:16px 20px;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:16px}
footer .logo{color:var(--fg)}
footer .fl a{color:var(--fg2)}footer .fl a:hover{color:#fff}
.disc{max-width:920px;line-height:1.6}
.disc p{margin:0 0 6px}
.copyl{margin-top:10px}

/* ---------- breakpoints ---------- */
@media (max-width:1000px){
  .hero-in{grid-template-columns:minmax(0,1fr);min-height:0;padding-top:120px;padding-bottom:64px;gap:34px}
  .nav .links{display:none}
  .strip .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feat,.res,.price{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-body{grid-template-columns:minmax(0,1fr)}
  .ipo-list{border-right:0;border-bottom:1px solid var(--line)}
  .stg{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  :root{--con-h:700px}
  .wrap{padding:0 16px}
  .nav{padding:0 12px;gap:8px}
  .nav .login{display:none}
  .nav .btn.sm{padding:7px 10px;font-size:12.5px}
  .lang button{padding:5px 7px}
  .hero-in{padding-top:110px;gap:28px}
  .kpis{gap:4px 20px}
  .kpi b{font-size:22px}
  .hint{display:none}
  .console{border-radius:16px}
  .stage{padding:12px 12px 0}
  .foot-note{left:12px;right:12px}
  .itop{flex-wrap:wrap;gap:8px}
  .cmd{flex:1 1 100%}
  .dd{left:12px;top:50px}
  .cmp .why,.cmp .dimt .e{display:none}
  .dimt{padding:7px 7px}
  .dimt .v{font-size:16px}
  .pgrid,.tgrid{grid-template-columns:minmax(0,1fr)}
  .gauge-wrap svg{max-width:200px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scan .lg{display:none}
  .strip{margin-top:-28px}
  .strip .grid,.feat,.res,.price{grid-template-columns:minmax(0,1fr)}
  section{padding-top:72px}
  .ctaband{padding:38px 18px}
  .app-shell .bdg{display:none}
  .row{grid-template-columns:auto minmax(0,1fr) auto;gap:10px}
  .row .sc{grid-column:2/4;justify-self:start;min-width:0}
  .row.more .btn{grid-column:2/4;justify-self:start}
}

/* ---------- E: reduced motion = a static page with a pre-rendered poster ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hero-bg canvas,#glow{display:none}
  .hero-bg{background-image:url(assets/hero-poster.png),radial-gradient(circle,rgba(120,160,220,.17) 1px,rgba(120,160,220,0) 1.6px);background-size:cover,48px 48px;background-position:center top,24px 12px;background-repeat:no-repeat,repeat}
  .js .reveal,.typing .ch,.dimt,.evr,.mv,.cz,.msg,.msg .chip,.met .mk,.lbl .band,.cz .two,.cz .src,.cz .cfl{opacity:1;transform:none}
  .msg.a{clip-path:none}
  .lp body{animation:lpshow 0s 1.5s forwards!important}
  .locked .mask::after{display:none}
}
