/* ============================================================
   FUNCTOR — shared trading-terminal design system.
   Phosphor amber + market green/red on true black. Used by every
   page. Motion (candles, drifting mathematics) lives in site.js.
   ============================================================ */
:root{
  --bg:#08080a; --panel:#101116; --ink:#ede9df; --ink-soft:#b7b4ab; --muted:#7d7f88; --faint:#4a4c55;
  --amber:#ffb020; --amber-deep:#e08c00; --up:#31d68a; --down:#ff5d5d;
  --line:rgba(255,255,255,.07); --line2:rgba(255,255,255,.14);
  --disp:"Space Grotesk",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
/* The page background lives on <html>, NOT on <body>.
   This matters: #mathbg is a fixed canvas at z-index:-1, and a negative-z-index
   child paints BEHIND its parent's background. With the colour on <body> the
   flow field was rendering perfectly into a layer nothing could ever see.
   On <html> the colour is painted as the viewport canvas, below everything,
   so the field sits above it and below all content — which is the whole point. */
html{background:var(--bg)}
body{background:transparent;color:var(--ink);font-family:var(--disp);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
canvas{display:block}
::selection{background:var(--amber);color:#000}
h1,h2,h3{letter-spacing:-.02em;font-weight:700}

#mathbg{position:fixed;inset:0;z-index:-1;pointer-events:none}
/* the vignette must not smother the field in the middle of the screen */
body::before{content:"";position:fixed;inset:0;z-index:9;pointer-events:none;opacity:.5;background:repeating-linear-gradient(0deg,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.22) 2px 3px)}
body::after{content:"";position:fixed;inset:0;z-index:9;pointer-events:none;background:radial-gradient(120% 90% at 50% 30%,transparent 62%,rgba(0,0,0,.42))}

.wrap{max-width:1280px;margin-inline:auto;padding-inline:22px}
.mono{font-family:var(--mono)} .up{color:var(--up)} .down{color:var(--down)} .amber{color:var(--amber)}
/* content is visible by default; only hide-then-reveal once JS confirms it can un-hide */
.js-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.6,.3,1),transform .7s cubic-bezier(.2,.6,.3,1)}
.js-ready .reveal.in{opacity:1;transform:none}
.cursor{display:inline-block;width:9px;height:1.05em;background:var(--amber);vertical-align:-2px;margin-left:3px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* functor mark (injected by site.js) */
.fmark .n1{fill:var(--amber)}
.fmark .n2{fill:none;stroke:var(--ink-soft);stroke-width:1.7}
.fmark .ar{stroke:var(--amber);stroke-width:1.7;fill:none;stroke-linecap:round}
.fmark .ah{fill:var(--amber)}

/* strip */
.strip{border-bottom:1px solid var(--line);background:#050506;overflow:hidden;font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}
.strip__run{display:inline-block;padding:7px 0;animation:run 46s linear infinite}
.strip .dot{color:var(--up)} .strip b{color:var(--amber)}
@keyframes run{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:rgba(8,8,10,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav__in{display:flex;align-items:center;gap:26px;height:62px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.05em;font-size:1.16rem}
.brand .fmark{width:36px;height:31px;filter:drop-shadow(0 0 5px rgba(255,176,32,.35))}
.nav__links{display:flex;gap:24px;margin-left:12px;font-family:var(--mono);font-size:13px;letter-spacing:.03em;text-transform:uppercase}
.nav__links a{color:var(--muted);padding:4px 0;position:relative;transition:color .15s}
.nav__links a:hover,.nav__links a.on{color:var(--ink)}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:0;background:var(--amber);transition:width .2s}
.nav__links a:hover::after,.nav__links a.on::after{width:100%}
.nav__cta{margin-left:auto;display:flex;gap:10px;align-items:center}
.btn{font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;padding:10px 16px;border:1px solid var(--line2);color:var(--ink);cursor:pointer;transition:.16s;background:none;display:inline-flex;gap:8px;align-items:center}
.btn:hover{border-color:var(--amber);color:var(--amber)}
.btn--fill{background:var(--amber);color:#000;border-color:var(--amber);font-weight:600}
.btn--fill:hover{background:var(--amber-deep)}
.burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:22px;height:2px;background:var(--ink);margin:4px 0}

/* hero + page hero */
.hero,.phero{position:relative;border-bottom:1px solid var(--line)}
.hgrid{position:absolute;inset:0;z-index:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(120% 100% at 20% 20%,#000 20%,transparent 80%);opacity:.5}
.hero__in{position:relative;z-index:1;display:grid;grid-template-columns:1.02fr 1.1fr;gap:44px;align-items:center;padding:clamp(46px,7vw,90px) 0}
.phero__in{position:relative;z-index:1;padding:clamp(64px,9vw,120px) 0 clamp(30px,4vw,48px);max-width:820px}
.tag{font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);display:inline-flex;align-items:center;gap:9px;margin-bottom:22px}
.tag .live{width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 10px var(--up);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero h1{font-size:clamp(2.7rem,6vw,5rem);line-height:1.0}
.phero h1{font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.03;margin-top:12px}
.hero h1 .out{-webkit-text-stroke:1.4px var(--amber);color:transparent;paint-order:stroke}
.sub{margin-top:22px;color:var(--ink-soft);font-size:clamp(1.02rem,1.5vw,1.22rem);max-width:52ch}
.crumbs{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.crumbs a:hover{color:var(--amber)} .crumbs span{color:var(--amber)}
.hero__cta{margin-top:34px;display:flex;gap:12px;flex-wrap:wrap}
.readout{margin-top:40px;display:flex;gap:30px;font-family:var(--mono);flex-wrap:wrap}
.readout .k{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.readout .v{font-size:1.5rem;font-weight:600;margin-top:4px}

/* terminal chart panel */
.term{border:1px solid var(--line2);background:linear-gradient(180deg,var(--panel),#0b0c10);position:relative;box-shadow:0 40px 120px -50px rgba(0,0,0,.9)}
.term::before,.term::after{content:"";position:absolute;width:10px;height:10px;border:1px solid var(--amber);opacity:.6}
.term::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.term::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.term__bar{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12.5px}
.term__bar .sym{color:var(--amber);font-weight:600;letter-spacing:.05em}
.term__bar .px{margin-left:auto;font-weight:600}
.term__bar .chg{padding:2px 7px;border:1px solid var(--line);font-size:11.5px}
.term__chart{position:relative}
/* Lightweight Charts renders into this div and needs a real height to size
   against. It also injects its own canvas, so `display:block` on the container
   (not a canvas) is what matters here. */
#chart{width:100%;height:clamp(300px,38vw,440px);display:block;position:relative}
#chart .tv-lightweight-charts{border-radius:8px;overflow:hidden}
/* the library's attribution is disabled in code (layout.attributionLogo:false);
   this is a second line of defence in case a future version re-adds it */
#chart #tv-attr-logo,#chart a[href*="tradingview"]{display:none!important}
/* live index level (per-second, Binance) */
.term__lvlrow{display:flex;align-items:baseline;gap:16px;padding:14px 16px 6px;flex-wrap:wrap}
.term__lvl{font-size:clamp(2.2rem,5.4vw,3.4rem);font-weight:600;color:var(--ink);letter-spacing:.01em;line-height:1;transition:color .18s,text-shadow .18s}
.term__lvl.tick-up{color:var(--up);text-shadow:0 0 18px rgba(49,214,138,.5)}
.term__lvl.tick-down{color:var(--down);text-shadow:0 0 18px rgba(255,93,93,.5)}
/* live price cell — persistent green/red by last move + a flash on change */
td.px{transition:background-color .4s}
td.px.tick-up{color:var(--up)} td.px.tick-down{color:var(--down)}
td.px.tick-up{animation:flUp .55s ease-out} td.px.tick-down{animation:flDn .55s ease-out}
@keyframes flUp{0%{background:rgba(49,214,138,.30)}100%{background:transparent}}
@keyframes flDn{0%{background:rgba(255,93,93,.30)}100%{background:transparent}}
.term__live{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.06em;display:inline-flex;align-items:center;gap:8px}
.term__live .dot{width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 10px var(--up);animation:pulse 1.4s infinite}
.term--big #chart{height:clamp(240px,30vw,330px)}
/* live index stats (return / vol / tracking error / turnover) */
.idxstats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line)}
.idxstats .stt{background:linear-gradient(180deg,var(--panel),#0b0c10);padding:10px 14px}
.idxstats .k{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
.idxstats .v{font-size:16px;margin-top:3px;color:var(--ink)}
@media (max-width:560px){.idxstats{grid-template-columns:repeat(2,1fr)}}
/* since-inception track record */
.trk{display:grid;grid-template-columns:1.05fr 1fr;gap:22px;align-items:center;border:1px solid var(--line2);background:linear-gradient(180deg,var(--panel),#0b0c10);padding:20px}
.trk__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.trk .tm{background:linear-gradient(180deg,var(--panel),#0b0c10);padding:12px 14px}
.trk .tm .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.trk .tm .v{font-size:19px;margin-top:4px;color:var(--ink)}
.trk__curve{width:100%;height:clamp(150px,20vw,210px);display:block}
@media (max-width:820px){.trk{grid-template-columns:1fr}.trk__grid{grid-template-columns:repeat(2,1fr)}}
.band--idx{padding-top:8px}
/* functor law under every logo (nav brand) */
.brand{display:inline-flex;align-items:center;gap:9px}
.brand__txt{display:inline-flex;flex-direction:column;line-height:1}
.brand__law{font-family:var(--mono);font-size:8px;color:var(--amber);opacity:.7;letter-spacing:.01em;margin-top:2px;white-space:nowrap}
/* The mark sits inside .term__chart, which also holds the timeframe bar. Offset
   it below that row so the two never overlap, and let clicks through. */
.term__logo{position:absolute;top:46px;left:14px;z-index:2;display:flex;align-items:center;gap:9px;pointer-events:none}
.term__logo .fmark{width:30px;height:26px;filter:drop-shadow(0 0 6px rgba(255,176,32,.45))}
.term__logo .tl__txt{display:flex;flex-direction:column;line-height:1.1}
.term__logo b{font-family:var(--disp);font-weight:700;letter-spacing:.06em;font-size:14px;color:var(--ink)}
.term__logo .tl__law{font-size:9.5px;color:var(--amber);opacity:.72;letter-spacing:.02em;margin-top:2px}
.term__foot{display:flex;justify-content:space-between;padding:9px 14px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--muted)}

/* ticker */
.tape{border-block:1px solid var(--line);background:#050506;overflow:hidden}
.tape__run{display:flex;width:max-content;animation:run 32s linear infinite;font-family:var(--mono);font-size:13px}
.tape:hover .tape__run{animation-play-state:paused}
.tk{display:inline-flex;align-items:center;gap:9px;padding:11px 22px;border-right:1px solid var(--line)}
.tk .s{color:var(--ink)} .tk .w{color:var(--muted)}

/* bands + heads */
.band{border-bottom:1px solid var(--line);padding:clamp(48px,7vw,84px) 0;position:relative}
.band--alt{background:rgba(10,10,13,.55)}
.band__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:34px;flex-wrap:wrap}
.band__head h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
.band__head .idx{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}

/* modules */
.mods{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:rgba(8,8,10,.55)}
.mod{padding:28px 24px;border-right:1px solid var(--line);transition:.2s;display:block}
.mod:last-child{border-right:0}
.mod:hover{background:var(--panel)}
.mod .no{font-family:var(--mono);font-size:12px;color:var(--amber);letter-spacing:.1em}
.mod h3{font-size:1.35rem;margin:16px 0 8px}
.mod p{color:var(--muted);font-size:.92rem}
.mod .go{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:18px;display:inline-block;transition:.2s}
.mod:hover .go{color:var(--amber);letter-spacing:.05em}

/* stat row */
.stat-row{display:flex;border:1px solid var(--line);flex-wrap:wrap;background:rgba(8,8,10,.55)}
.st{flex:1 1 20%;min-width:170px;padding:24px;border-right:1px solid var(--line)}
.st:last-child{border-right:0}
.st .k{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.st .v{font-size:1.7rem;font-weight:600;margin-top:8px;font-family:var(--mono)}
.st .sub2{margin-top:6px;color:var(--muted);font-family:var(--mono);font-size:11px}

/* index table (the-index) */
.tabs{display:flex;gap:0;border:1px solid var(--line);margin-bottom:22px;max-width:560px}
.tab{flex:1;background:none;border:0;border-right:1px solid var(--line);color:var(--muted);padding:14px 16px;cursor:pointer;text-align:left;font-family:inherit;transition:.16s}
.tab:last-child{border-right:0}
.tab.on{background:var(--panel);color:var(--ink)}
.tab .tn{font-family:var(--mono);font-weight:600;color:var(--amber);letter-spacing:.04em}
.tab.on .tn{color:var(--amber)} .tab:not(.on) .tn{color:var(--muted)}
.tab .td{display:block;font-size:.82rem;color:var(--muted);margin-top:2px}
.panel{border:1px solid var(--line2);background:linear-gradient(180deg,var(--panel),#0b0c10)}
.panel__top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel__lvl{font-family:var(--mono);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:600;color:var(--amber)}
.panel__lbl{color:var(--muted);font-size:.82rem;margin-top:4px;font-family:var(--mono)}
.tag2{font-family:var(--mono);font-size:11px;color:var(--amber);border:1px solid var(--line2);padding:5px 10px}
.tscroll{overflow-x:auto}
table.hold{width:100%;border-collapse:collapse;font-size:.92rem;min-width:640px}
table.hold th,table.hold td{padding:13px 18px;border-bottom:1px solid var(--line);text-align:left}
table.hold thead th{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
table.hold .num{text-align:right;font-family:var(--mono)}
table.hold tbody tr:hover{background:rgba(255,255,255,.02)}
table.hold tbody tr:last-child td{border-bottom:0}
.sym-cell{display:flex;align-items:center;gap:11px}
.sym-badge{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line2);font-family:var(--mono);font-size:.7rem;color:var(--amber)}
.sym-name{color:var(--muted);font-size:.8rem}
.note{padding:15px 24px;color:var(--faint);font-size:.78rem;font-family:var(--mono)}

/* flow (token) */
.flow{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}
.flow li{list-style:none;padding:26px 22px;border-right:1px solid var(--line)}
.flow li:last-child{border-right:0}
.flow .n{font-family:var(--mono);font-size:12px;color:var(--amber)}
.flow h3{font-size:1.2rem;margin:12px 0 8px}
.flow p{color:var(--muted);font-size:.9rem}
.callout{margin-top:22px;border:1px solid var(--line2);background:rgba(255,176,32,.05);padding:22px 24px;display:flex;gap:16px;align-items:center}
.callout .ic{color:var(--amber);font-size:1.6rem}
.callout p{color:var(--ink-soft)} .callout strong{color:var(--ink)}

/* features (integrity) */
.feats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}
.feat{padding:28px 24px;border-right:1px solid var(--line)}
.feat:last-child{border-right:0}
.feat .t{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);border:1px solid var(--line);padding:4px 9px;display:inline-block;margin-bottom:14px}
.feat h3{font-size:1.25rem;margin-bottom:10px}
.feat p{color:var(--ink-soft);font-size:.92rem}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.chips span{font-family:var(--mono);font-size:.76rem;color:var(--muted);border:1px solid var(--line);padding:8px 13px}
.chips span::before{content:"✓ ";color:var(--amber)}

/* methodology */
.method{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.checklist{list-style:none;display:grid;gap:14px;margin:6px 0 26px}
.checklist li{padding-left:28px;position:relative;color:var(--ink-soft);font-size:.96rem}
.checklist li::before{content:"›";position:absolute;left:6px;top:0;color:var(--amber);font-family:var(--mono)}
.checklist strong{color:var(--ink)}
.code{border:1px solid var(--line2);background:#050608}
.code__bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--muted)}
.code__bar i{width:10px;height:10px;border-radius:50%;background:#333;font-style:normal}
.code__bar i:nth-child(1){background:#ff5f57}.code__bar i:nth-child(2){background:#febc2e}.code__bar i:nth-child(3){background:#28c840}
.code pre{padding:18px 18px 20px;overflow-x:auto;font-family:var(--mono);font-size:.82rem;line-height:1.7;color:var(--ink-soft)}
.c-c{color:var(--muted)}.c-p{color:var(--amber)}.c-k{color:#9fd0ff}.c-a{color:var(--amber)}.c-ok{color:var(--up)}

/* about */
.about{display:grid;grid-template-columns:1.5fr 1fr;gap:44px;align-items:start}
.about__lead{font-size:1.28rem;color:var(--ink);margin-bottom:20px;font-weight:500;letter-spacing:-.01em}
.about p{color:var(--ink-soft);margin-bottom:15px}
.about strong{color:var(--ink)}
.about .why{margin-top:22px;border-left:2px solid var(--amber);background:rgba(255,176,32,.04);padding:18px 20px;font-size:.95rem}
.creds{border:1px solid var(--line);background:rgba(8,8,10,.55);padding:26px 24px}
.creds h3{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin-bottom:18px}
.creds ul{list-style:none;display:grid;gap:16px}
.creds li{display:grid;grid-template-columns:74px 1fr;gap:14px}
.creds .k{font-family:var(--mono);font-size:.8rem;color:var(--amber)}
.creds .v{font-size:.9rem;color:var(--ink-soft)}

/* roadmap */
.road{list-style:none;display:grid;grid-template-columns:repeat(5,1fr)}
.road li{padding:26px 18px 0 0;border-top:2px solid var(--line);position:relative}
.road li::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border:2px solid var(--line2);background:var(--bg)}
.road li.done{border-top-color:var(--amber)} .road li.done::before{background:var(--amber);border-color:var(--amber)}
.road li.now::before{border-color:var(--amber);box-shadow:0 0 0 4px rgba(255,176,32,.15)}
.road .ph{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em}
.road h3{font-size:1.05rem;margin:8px 0} .road p{font-size:.85rem;color:var(--ink-soft)} .road b{color:var(--amber)}

/* cta + footer */
.cta{padding:clamp(60px,9vw,110px) 0;text-align:center;border-bottom:1px solid var(--line)}
.cta h2{font-size:clamp(2rem,4.5vw,3.4rem)} .cta p{color:var(--ink-soft);margin-top:14px}
.cta form{margin-top:30px;display:flex;max-width:480px;margin-inline:auto;border:1px solid var(--line2)}
.cta input{flex:1;background:#0b0c10;border:0;color:var(--ink);font-family:var(--mono);padding:14px 16px;font-size:14px}
.cta input:focus{outline:0}.cta input::placeholder{color:var(--faint)}.cta button{border:0}
.cta .micro{margin-top:14px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.foot{padding:40px 0;font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.foot__in{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.foot a:hover{color:var(--amber)}
/* coin price tracker: currency tabs + candle chart */
.ctabs{display:flex;gap:6px;flex-wrap:wrap}
.ctab{font-family:var(--mono);font-size:12.5px;color:var(--muted);background:#111318;border:1px solid var(--line);padding:6px 12px;border-radius:4px;cursor:pointer}
.ctab:hover{border-color:var(--amber);color:var(--amber)}
.ctab.on{background:var(--amber);color:#000;border-color:var(--amber);font-weight:600}
.coinchart{position:relative;height:clamp(240px,32vw,360px);margin-top:12px;border:1px solid var(--line);background:linear-gradient(180deg,#0b0c10,#08090c)}
.coinchart canvas{width:100%;height:100%;display:block}

/* floating Buy button + trade/exit modals (on every page) */
.fab{position:fixed;right:18px;bottom:18px;z-index:120;background:var(--amber);color:#000;font-weight:700;font-family:var(--disp);border:0;border-radius:40px;padding:13px 20px;cursor:pointer;box-shadow:0 12px 40px -8px rgba(255,176,32,.5);font-size:15px;display:flex;align-items:center;gap:8px}
.fab:hover{background:var(--amber-deep)}
.modal{display:none;position:fixed;inset:0;z-index:200;background:rgba(2,3,5,.82);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);align-items:center;justify-content:center;padding:18px}
.modal.open{display:flex}
.modal__box{width:min(440px,96vw);background:linear-gradient(180deg,#0d0f14,#08090c);border:1px solid var(--line2);padding:26px;position:relative;box-shadow:0 40px 120px -30px #000}
.modal__box::before,.modal__box::after{content:"";position:absolute;width:11px;height:11px;border:1px solid var(--amber);opacity:.6}
.modal__box::before{top:-1px;left:-1px;border-right:0;border-bottom:0}.modal__box::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.modal__x{position:absolute;top:10px;right:13px;background:none;border:0;color:var(--muted);font-size:22px;cursor:pointer;line-height:1}
.modal__x:hover{color:var(--amber)}
.modal h3{font-size:1.4rem;margin-bottom:8px}
.modal p{color:var(--muted);font-size:14px;line-height:1.55;margin-bottom:8px}
.wbtn{display:flex;align-items:center;gap:10px;width:100%;justify-content:center;margin-top:9px;font-family:var(--mono);font-size:14px;padding:12px;border:1px solid var(--line2);background:#111318;color:var(--ink);border-radius:6px;cursor:pointer;text-decoration:none}
.wbtn:hover{border-color:var(--amber);color:var(--amber)}
.wbtn.on{border-color:var(--up);color:var(--up)}
.modal__note{font-size:11.5px;color:var(--muted);margin-top:14px;line-height:1.5}
.modal__note a{color:var(--amber)}
.exit__box{text-align:center}
.exit__box .k{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber)}

/* the-index live layout: terminal + side cards */
.idxgrid{display:grid;grid-template-columns:1.55fr .9fr;gap:22px;align-items:start;margin-top:8px;position:relative;z-index:1}
.idxside{display:flex;flex-direction:column;gap:18px}
.idx--link{transition:color .2s} .idx--link:hover{color:var(--amber)}
.rscard,.tradecard{border:1px solid var(--line2);background:linear-gradient(180deg,var(--panel),#0b0c10);padding:18px}
.rs__t,.tc__head{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rs__big{font-size:clamp(1.6rem,3.6vw,2.2rem);font-weight:600;color:var(--amber);margin:8px 0 2px}
.rs__lbl{font-family:var(--mono);font-size:12px;color:var(--muted)}
.rs__note{font-size:12.5px;color:var(--muted);margin-top:12px;line-height:1.55}
.tc__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.tc__t{color:var(--ink);font-family:var(--disp);font-weight:600;font-size:15px;letter-spacing:.02em;text-transform:none}
.tc__badge{font-family:var(--mono);font-size:10.5px;color:#000;background:var(--amber);padding:2px 7px;border-radius:2px;letter-spacing:.04em}
.tc__row{display:flex;justify-content:space-between;align-items:center;padding:12px 12px;border:1px solid var(--line);font-size:13px;color:var(--muted)}
.tc__row .mono{font-size:14px;color:var(--ink)}
.tc__swap{text-align:center;color:var(--amber);font-size:15px;margin:4px 0;line-height:1}
.tc__btn{width:100%;margin-top:14px;text-align:center;justify-content:center}
.tc__note{font-size:11.5px;color:var(--muted);margin-top:12px;line-height:1.55}
.tc__note a,.rs__note a{color:var(--amber)}
/* naturality-square commutative diagram */
.natsq-wrap{display:flex;flex-wrap:wrap;gap:26px;align-items:center;justify-content:center;margin:8px 0}
.natsq{width:min(340px,86vw);border:1px solid var(--line2);background:linear-gradient(180deg,var(--panel),#0b0c10);padding:22px 18px}
.natsq svg{width:100%;height:auto;display:block}
.natsq .ob{font-family:"IBM Plex Mono",monospace;font-style:italic;font-size:18px;fill:var(--ink)}
.natsq .homlab{font-size:13px;font-style:normal}
.natsq .mlab{font-family:"IBM Plex Mono",monospace;font-style:italic;font-size:12.5px;fill:var(--amber)}
.natsq .ar{stroke:var(--amber);stroke-width:1.6;fill:none}
.natsq .ah{fill:var(--amber)}
.natsq__cap{font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--amber);text-align:center;margin-top:14px;letter-spacing:.02em}
.natsq__sub{font-size:12px;color:var(--muted);text-align:center;margin-top:4px}
/* formula cards */
.fx-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.fx{border:1px solid var(--line2);background:linear-gradient(180deg,var(--panel),#0b0c10);padding:16px 16px;border-left:2px solid var(--amber)}
.fx__eq{font-size:14.5px;color:var(--ink);letter-spacing:.01em;overflow-x:auto;white-space:nowrap}
.fx__eq sub{font-size:.72em} .fx__eq sup{font-size:.72em}
.fx__d{font-size:12.5px;color:var(--muted);margin-top:9px;line-height:1.5;white-space:normal}
/* roadmap timeline */
.tl{position:relative;margin-top:12px;max-width:820px}
.tl::before{content:"";position:absolute;left:21px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--amber),var(--line))}
.tl__item{position:relative;padding:0 0 26px 60px}
.tl__dot{position:absolute;left:13px;top:4px;width:18px;height:18px;border-radius:50%;background:#0b0c10;border:2px solid var(--line2);box-shadow:0 0 0 4px rgba(255,255,255,.03)}
.tl__item.live .tl__dot{background:var(--up);border-color:var(--up);box-shadow:0 0 0 4px rgba(49,214,138,.18)}
.tl__item.next .tl__dot{background:var(--amber);border-color:var(--amber);box-shadow:0 0 0 4px rgba(255,176,32,.18)}
.tl__card{border:1px solid var(--line2);background:linear-gradient(180deg,var(--panel),#0b0c10);padding:16px 20px;transition:border-color .2s}
.tl__card:hover{border-color:var(--amber)}
.tl__top{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.tl__no{font-family:var(--mono);font-size:12px;color:var(--amber);letter-spacing:.1em}
.tl__meta{display:flex;gap:10px;align-items:center}
.tl__date{font-family:var(--mono);font-size:12px;color:var(--muted)}
.tl__badge{font-family:var(--mono);font-size:10px;padding:2px 8px;border-radius:2px;letter-spacing:.05em;text-transform:uppercase}
.badge-live{background:var(--up);color:#000;font-weight:600}
.badge-next{background:var(--amber);color:#000;font-weight:600}
.badge-plan{border:1px solid var(--line);color:var(--muted)}
.tl__card h3{font-size:1.12rem;margin:2px 0 9px}
.tl__list{list-style:none;display:flex;flex-direction:column;gap:5px}
.tl__list li{font-size:13px;color:var(--muted);padding-left:16px;position:relative;line-height:1.5}
.tl__list li::before{content:"▸";position:absolute;left:0;color:var(--amber);opacity:.7}
/* interactive deck modal */
.deckLaunch{display:inline-flex;align-items:center;gap:9px}
.deckModal{display:none;position:fixed;inset:0;z-index:200;background:rgba(2,3,5,.8);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);align-items:center;justify-content:center;padding:18px}
.deckModal.open{display:flex}
.deckBox{width:min(940px,97vw);height:min(640px,92vh);background:linear-gradient(180deg,#0d0f14,#08090c);border:1px solid var(--line2);position:relative;display:flex;flex-direction:column;box-shadow:0 50px 140px -30px #000}
.deckBox::before,.deckBox::after{content:"";position:absolute;width:11px;height:11px;border:1px solid var(--amber);opacity:.6}
.deckBox::before{top:-1px;left:-1px;border-right:0;border-bottom:0}.deckBox::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.deck__head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.05em}
.deck__close{cursor:pointer;color:var(--muted);font-size:22px;line-height:1;background:none;border:0;padding:0 4px}
.deck__close:hover{color:var(--amber)}
.deck__stage{position:relative;flex:1;overflow:hidden}
.deck__slide{position:absolute;inset:0;padding:clamp(20px,4vw,40px);opacity:0;visibility:hidden;transform:translateX(18px);transition:opacity .38s,transform .38s;overflow-y:auto;display:flex;flex-direction:column;justify-content:center}
.deck__slide.on{opacity:1;visibility:visible;transform:none}
.deck__eyebrow{font-family:var(--mono);font-size:12px;color:var(--amber);letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}
.deck__slide h2{font-size:clamp(1.5rem,3.6vw,2.3rem);line-height:1.1;margin-bottom:12px}
.deck__slide p{color:var(--muted);max-width:66ch;line-height:1.65;font-size:15px}
.deck__slide p+p{margin-top:10px}
.deck__foot{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid var(--line)}
.deck__dots{display:flex;gap:7px}
.deck__dot{width:8px;height:8px;border-radius:50%;background:var(--line2);border:0;cursor:pointer;padding:0;transition:background .2s}
.deck__dot.on{background:var(--amber)}
.deck__nav{display:flex;gap:8px}
.deck__count{font-family:var(--mono);font-size:12px;color:var(--muted)}
/* lucid flow chart */
.flow{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap;margin-top:20px}
.flow__node{flex:1 1 120px;min-width:120px;border:1px solid var(--line2);background:var(--panel);padding:13px;transition:border-color .2s,transform .2s}
.flow__node:hover{border-color:var(--amber);transform:translateY(-3px)}
.flow__node b{display:block;font-family:var(--disp);font-size:13.5px;margin-bottom:4px;color:var(--ink)}
.flow__node span{font-family:var(--mono);font-size:10.5px;color:var(--muted);line-height:1.4;display:block}
.flow__arr{align-self:center;color:var(--amber);font-size:18px;flex:0 0 auto}
/* tokenomics donut */
.tk-split{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:18px}
.donut{width:186px;height:186px;border-radius:50%;position:relative;flex:0 0 auto;background:conic-gradient(#ffb020 0 25%,#31d68a 25% 45%,#6aa4ff 45% 82%,#b98cff 82% 92%,#ff8fb0 92% 100%)}
.donut::after{content:"";position:absolute;inset:30px;border-radius:50%;background:#0b0c10}
.donut b{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;color:var(--muted);text-align:center;line-height:1.3}
.donut b span{font-family:var(--disp);font-size:22px;color:var(--ink);font-weight:600}
.tk-leg{list-style:none;display:flex;flex-direction:column;gap:9px;font-size:13.5px}
.tk-leg li{display:flex;align-items:center;gap:10px;color:var(--muted)}
.tk-leg .sw{width:12px;height:12px;border-radius:2px;display:inline-block;flex:0 0 auto}
.tk-leg b{color:var(--ink);font-weight:600}

@media (max-width:960px){.idxgrid{grid-template-columns:1fr}.method,.about{grid-template-columns:1fr;gap:28px}.road{grid-template-columns:repeat(2,1fr)}.feats{grid-template-columns:1fr}.feat{border-right:0;border-bottom:1px solid var(--line)}}
@media (max-width:920px){.hero__in{grid-template-columns:1fr;gap:30px}.mods,.flow{grid-template-columns:1fr 1fr}}
@media (max-width:680px){.nav__links,.nav__cta{display:none}.burger{display:block}.mods,.fx-grid{grid-template-columns:1fr}.flow__arr{display:none}.flow__node{flex-basis:100%}.mod,.flow li{border-right:0;border-bottom:1px solid var(--line)}.cta form{flex-direction:column}.road{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}


/* ==========================================================================
   DERIVATIVES TERMINAL (derivatives.html)
   Dense, monospaced, trading-desk. Colour carries meaning and nothing else:
   green = profit / bid side, red = loss / ask side, amber = money you post.
   ========================================================================== */
.dhero{position:relative;padding:118px 0 46px;overflow:hidden;
  background:linear-gradient(180deg,rgba(232,163,61,.055),transparent 62%)}
.dhero__grid{position:absolute;inset:0;pointer-events:none;opacity:.5;
  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;
  -webkit-mask-image:radial-gradient(ellipse 80% 62% at 50% 32%,#000 30%,transparent 100%);
          mask-image:radial-gradient(ellipse 80% 62% at 50% 32%,#000 30%,transparent 100%)}
.dhero__in{position:relative}
.dhero h1{font-size:clamp(30px,4.6vw,55px);line-height:1.06;letter-spacing:-.025em;margin:8px 0 16px}
.dhero h1 em{font-style:normal;color:var(--amber)}
.dhero .sub{max-width:70ch;color:var(--muted);font-size:16.5px;line-height:1.66}
.dhero__pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.pill{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);border:1px solid rgba(255,255,255,.11);
  border-radius:999px;padding:6px 12px;background:rgba(255,255,255,.02)}
.pill--on{color:var(--amber);border-color:rgba(232,163,61,.42);background:rgba(232,163,61,.07)}

.term{padding:10px 0 56px}
.term .wrap{max-width:1420px}

/* --- market bar --- */
.mbar{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;
  border:1px solid rgba(255,255,255,.09);border-radius:12px 12px 0 0;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));
  padding:11px 14px}
.mbar__assets{display:flex;gap:5px;flex-wrap:wrap}
.abtn{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.04em;
  color:var(--muted);background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);
  border-radius:7px;padding:7px 12px;cursor:pointer;transition:.14s}
.abtn:hover{color:var(--ink);border-color:rgba(255,255,255,.2)}
.abtn.on{color:#0d0c0a;background:var(--amber);border-color:var(--amber)}
.mbar__r{display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.mstat{display:flex;flex-direction:column;gap:2px;min-width:66px}
.mstat__k{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted)}
.mstat__v{font-family:'IBM Plex Mono',monospace;font-size:14.5px;color:var(--ink);font-weight:500}
.msel{background:rgba(255,255,255,.04);color:var(--ink);border:1px solid rgba(255,255,255,.11);
  border-radius:6px;padding:3px 6px;font-family:'IBM Plex Mono',monospace;font-size:12.5px}
.msel:focus{outline:none;border-color:var(--amber)}
.mnote{border:1px solid rgba(255,255,255,.09);border-top:0;border-radius:0 0 12px 12px;
  background:rgba(255,255,255,.012);padding:7px 14px;color:var(--muted);
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.03em}
.mnote .live{color:#3fbf6a}
.mnote .warn{color:var(--amber)}

/* --- layout --- */
.tgrid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:16px;margin-top:16px}
.tgrid--2{grid-template-columns:1fr 1fr}
.rcol{display:flex;flex-direction:column;gap:16px;min-width:0}
@media(max-width:1080px){.tgrid,.tgrid--2{grid-template-columns:1fr}}

.panel2{border:1px solid rgba(255,255,255,.09);border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,.008));
  padding:14px 16px 16px;min-width:0}
.panel2__hd{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  flex-wrap:wrap;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.07)}
.panel2__hd h3{font-size:14.5px;letter-spacing:-.01em;margin:0;font-weight:600}
.hint{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.06em;color:var(--muted)}
.hint b.pos{color:#3fbf6a}.hint b.neg{color:#e0523f}

/* --- options chain --- */
.chainside{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.sidebtn{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;letter-spacing:.12em;
  padding:6px 14px;border-radius:6px;cursor:pointer;transition:.14s;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);color:var(--muted)}
.sidebtn[data-side="1"].on{color:#0d0c0a;background:#3fbf6a;border-color:#3fbf6a}
.sidebtn[data-side="-1"].on{color:#0d0c0a;background:#e0523f;border-color:#e0523f}
.chainqty{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:10.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:7px}
.chainqty input{width:64px;background:rgba(255,255,255,.04);color:var(--ink);
  border:1px solid rgba(255,255,255,.11);border-radius:6px;padding:4px 7px;
  font-family:'IBM Plex Mono',monospace;font-size:12.5px}
.chainqty input:focus{outline:none;border-color:var(--amber)}
.chainwrap{max-height:430px;overflow:auto;border:1px solid rgba(255,255,255,.06);border-radius:9px}
.chaintbl{width:100%;border-collapse:collapse;font-family:'IBM Plex Mono',monospace;font-size:11.5px}
.chaintbl thead th{position:sticky;top:0;z-index:2;background:#141310;
  padding:6px 5px;font-weight:500;color:var(--muted);font-size:9.5px;letter-spacing:.11em}
.cgrp{border-bottom:1px solid rgba(255,255,255,.09)}
.cgrp--c{color:#3fbf6a !important}
.cgrp--p{color:#e0523f !important}
.cgrp--k{color:var(--amber) !important}
.csub th{top:23px;border-bottom:1px solid rgba(255,255,255,.09)}
.chaintbl td{padding:4px 5px;text-align:center;color:var(--muted);
  border-bottom:1px solid rgba(255,255,255,.032);white-space:nowrap}
.chaintbl .cpx{color:var(--ink);font-weight:500}
.chaintbl tr:hover td{background:rgba(255,255,255,.028)}
.chaintbl .kcell{color:var(--amber);font-weight:600;font-size:12px;
  background:rgba(232,163,61,.05);border-left:1px solid rgba(255,255,255,.07);
  border-right:1px solid rgba(255,255,255,.07)}
.chaintbl tr.atm td{background:rgba(232,163,61,.075)}
.chaintbl tr.atm .kcell{background:rgba(232,163,61,.16)}
.chaintbl td.hit{cursor:pointer;transition:.1s}
.chaintbl td.hit:hover{background:rgba(232,163,61,.2) !important;color:#fff}
.chaintbl td.inleg{box-shadow:inset 0 0 0 1px var(--amber)}

/* --- payoff chart --- */
.pchart{position:relative;height:264px;border:1px solid rgba(255,255,255,.06);
  border-radius:9px;background:rgba(0,0,0,.18);overflow:hidden}
.pchart canvas{width:100%;height:100%;display:block;cursor:crosshair}
.scrub{position:absolute;inset:0;pointer-events:none}
.scrub__box{position:absolute;display:none;transform:translate(-50%,0);
  background:#161410;border:1px solid rgba(255,255,255,.16);border-radius:7px;
  padding:6px 9px;font-family:'IBM Plex Mono',monospace;font-size:11px;
  color:var(--ink);white-space:nowrap;box-shadow:0 6px 22px rgba(0,0,0,.55)}
.scrub__box .k{color:var(--muted)}

/* --- metrics --- */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1px;
  margin-top:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);
  border-radius:9px;overflow:hidden}
.met{background:#100f0d;padding:9px 11px}
.met__k{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.met__v{font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--ink);font-weight:500}
.met__v.pos{color:#3fbf6a}.met__v.neg{color:#e0523f}.met__v.amber{color:var(--amber)}
.met__s{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);margin-top:2px}
.reject{grid-column:1/-1;background:rgba(224,82,63,.09);border-top:1px solid rgba(224,82,63,.4);
  padding:13px 14px;font-size:13px;line-height:1.6;color:var(--ink)}
.reject b{color:#e0523f}

/* --- legs --- */
.legs{width:100%;border-collapse:collapse;font-family:'IBM Plex Mono',monospace;font-size:12px}
.legs th{text-align:left;color:var(--muted);font-weight:500;font-size:9.5px;letter-spacing:.11em;
  text-transform:uppercase;padding:0 7px 7px 0}
.legs th.ta-r{text-align:right}
.legs td{padding:3px 7px 3px 0;border-bottom:1px solid rgba(255,255,255,.035)}
.legs td.ta-r{text-align:right;color:var(--ink)}
.legs select,.legs input{background:rgba(255,255,255,.04);color:var(--ink);
  border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:4px 6px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;width:100%;max-width:104px}
.legs select:focus,.legs input:focus{outline:none;border-color:var(--amber)}
.legs .sBuy{color:#3fbf6a}.legs .sSell{color:#e0523f}
.dvx{background:none;border:1px solid rgba(255,255,255,.1);color:var(--muted);
  border-radius:5px;width:23px;height:23px;cursor:pointer;line-height:1}
.dvx:hover{color:#e0523f;border-color:#e0523f}
.emptyleg{color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:12px;padding:14px 0}

/* --- greeks --- */
.greeks{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:1px;margin-top:13px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);border-radius:9px;overflow:hidden}
.grk{background:#100f0d;padding:8px 10px;text-align:center}
.grk__k{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--amber)}
.grk__v{font-family:'IBM Plex Mono',monospace;font-size:13.5px;color:var(--ink);margin-top:2px}
.grk__n{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);margin-top:2px}

/* --- ticket --- */
.ticket{margin-top:14px;border-top:1px solid rgba(255,255,255,.07);padding-top:13px;
  display:flex;flex-wrap:wrap;gap:11px;align-items:center;justify-content:space-between}
.ticket__sum{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);line-height:1.6}
.ticket__sum b{color:var(--amber);font-size:14px}
.tbtn{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.07em;
  padding:11px 20px;border-radius:8px;cursor:pointer;border:1px solid var(--amber);
  background:var(--amber);color:#0d0c0a;transition:.14s}
.tbtn:hover{filter:brightness(1.09)}
.tbtn:disabled{opacity:.4;cursor:not-allowed;filter:none}
.tbtn--ghost{background:transparent;color:var(--amber)}

/* --- presets --- */
.presets{display:flex;flex-wrap:wrap;gap:5px}
.pbtn{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.05em;
  color:var(--muted);background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);
  border-radius:999px;padding:4px 11px;cursor:pointer;transition:.14s}
.pbtn:hover{color:var(--amber);border-color:rgba(232,163,61,.5)}

/* --- model params / comparison / smile --- */
.params{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:1px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);
  border-radius:9px;overflow:hidden}
.prm{background:#100f0d;padding:9px 11px}
.prm__k{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.prm__v{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--ink);margin-top:3px}
.prm__v.amber{color:var(--amber)}
.prm__d{font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:var(--muted);
  margin-top:3px;line-height:1.45}
.mnote2{color:var(--muted);font-size:12.5px;line-height:1.65;margin-top:12px}
.mnote2 b{color:var(--ink)}

.mcompare{font-family:'IBM Plex Mono',monospace;font-size:12px}
.mrow{display:grid;grid-template-columns:1.6fr .8fr 1fr;gap:10px;align-items:center;
  padding:7px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.mrow.hd{color:var(--muted);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.09)}
.mrow .nm{color:var(--ink)}
.mrow .nm small{display:block;color:var(--muted);font-size:9.5px;letter-spacing:.04em;margin-top:2px}
.mrow .px{text-align:right;color:var(--ink);font-size:13.5px}
.mrow.best .px{color:var(--amber)}
.mbarline{height:7px;border-radius:4px;background:rgba(232,163,61,.16);position:relative;overflow:hidden}
.mbarline i{position:absolute;left:0;top:0;bottom:0;background:var(--amber);border-radius:4px;display:block}
.mrow.bs .mbarline i{background:#e0523f}

.smilechart{height:212px;border:1px solid rgba(255,255,255,.06);border-radius:9px;
  background:rgba(0,0,0,.18)}
.smilechart canvas{width:100%;height:100%;display:block}

/* ---- index verification table (index.html / the-index.html #verify) --------
   The answer to "how do I know the chart is real?": print the arithmetic. */
.vtblwrap{overflow-x:auto;border:1px solid rgba(255,255,255,.06);border-radius:9px}
.vtbl{width:100%;border-collapse:collapse;font-family:'IBM Plex Mono',monospace;font-size:12.5px}
.vtbl th{position:sticky;top:0;background:#141310;text-align:left;color:var(--muted);
  font-weight:500;font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;
  padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.09)}
.vtbl th.num,.vtbl td.num{text-align:right}
.vtbl td{padding:5px 10px;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.032)}
.vtbl td:first-child{color:var(--ink);font-weight:500}
.vtbl td.up{color:#31d68a}.vtbl td.down{color:#ff5d5d}
.vtbl tr:hover td{background:rgba(255,255,255,.025)}
.vtbl tr.vsum td{border-top:1px solid rgba(255,255,255,.14);border-bottom:0;
  color:var(--ink);padding-top:9px;font-weight:500}
.vtbl tr.vsum td.amber{color:var(--amber);font-size:15px}
.vtbl td.vwait{color:var(--muted);text-align:center;padding:24px}

/* ---- wallet roster (Buy modal) -------------------------------------------
   The list is a MENU of every supported wallet, not a report on what happens to
   be installed — so rows come in two flavours: connectable and installable. */
.wbtn{display:flex;align-items:center;gap:11px;width:100%;text-align:left}
.wico{display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;flex:0 0 26px;border-radius:8px;border:1px solid transparent;
  font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;line-height:1}
.wico--img{width:26px;height:26px;border-radius:8px;object-fit:cover;background:#0000}
.wname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wtag{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);border:1px solid rgba(255,255,255,.14);
  border-radius:999px;padding:2px 7px;margin-left:8px}
.wbtn--get{opacity:.72}
.wbtn--get:hover{opacity:1}
.wbtn--more{justify-content:center;color:var(--amber);border-style:dashed}

/* ---- create your own: asset picker + discovery ---------------------------- */
.apick{display:inline-flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;
  font-size:15px;font-weight:600;letter-spacing:.03em;color:var(--ink);
  background:rgba(232,163,61,.10);border:1px solid rgba(232,163,61,.42);
  border-radius:9px;padding:8px 14px;cursor:pointer;transition:.14s}
.apick:hover{background:rgba(232,163,61,.18);border-color:var(--amber)}
.apick__c{color:var(--amber);font-size:11px}

.pickerwrap{display:none;position:fixed;inset:0;z-index:200;background:rgba(6,6,8,.72);
  backdrop-filter:blur(4px);padding:9vh 18px}
.pk__hd{max-width:560px;margin:0 auto;display:flex;align-items:center;gap:12px;
  background:#151412;border:1px solid rgba(255,255,255,.14);border-radius:12px 12px 0 0;padding:14px 16px}
.pk__hd input{flex:1;background:transparent;border:0;outline:none;color:var(--ink);
  font-family:'IBM Plex Mono',monospace;font-size:15px}
.pk__n{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);white-space:nowrap}
.pk__list{max-width:560px;margin:0 auto;max-height:52vh;overflow:auto;
  background:#101010;border:1px solid rgba(255,255,255,.14);border-top:0}
.pk__row{display:grid;grid-template-columns:1fr auto auto auto;gap:14px;align-items:center;
  width:100%;text-align:left;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.04);
  padding:10px 16px;cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--muted)}
.pk__row:hover{background:rgba(232,163,61,.10)}
.pk__s{color:var(--ink);font-weight:600}
.pk__p{color:var(--ink)}
.pk__c.up{color:#3fbf6a}.pk__c.dn{color:#e0523f}
.pk__v{font-size:11px;min-width:52px;text-align:right}
.pk__none{padding:26px;text-align:center;color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:13px}
.pk__ft{max-width:560px;margin:0 auto;background:#151412;border:1px solid rgba(255,255,255,.14);
  border-top:0;border-radius:0 0 12px 12px;padding:12px 16px;color:var(--muted);font-size:11.5px;line-height:1.55}

.disc{margin-top:16px}
.dsteps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:900px){.dsteps{grid-template-columns:1fr}}
.dstep{display:flex;gap:12px;align-items:flex-start}
.dstep__n{flex:0 0 24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(232,163,61,.14);border:1px solid rgba(232,163,61,.42);color:var(--amber);
  font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700}
.dstep__b{flex:1;min-width:0}
.dstep__k{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.dbig{display:flex;align-items:baseline;gap:10px;font-family:'IBM Plex Mono',monospace;
  font-size:20px;font-weight:600;color:var(--ink);background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);border-radius:9px;padding:9px 14px;cursor:pointer;width:100%}
.dbig:hover{border-color:var(--amber)}
.dbig__sub{font-size:13px;color:var(--muted);font-weight:400;margin-left:auto}
.vseg{display:flex;gap:5px;flex-wrap:wrap}
.vseg button{flex:1;min-width:96px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  padding:9px 8px;border-radius:8px;cursor:pointer;transition:.14s;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.11);color:var(--muted)}
.vseg button:hover{color:var(--ink);border-color:rgba(255,255,255,.24)}
.vseg button.on{color:#0d0c0a;background:var(--amber);border-color:var(--amber);font-weight:600}
.dmove{display:flex;align-items:center;gap:10px}
.dmove input[type=range]{flex:1;accent-color:var(--amber)}
.dmove__v{font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--amber);min-width:44px}
.dmove__t{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muted);white-space:nowrap}
.hchips{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.hchip{font-family:'IBM Plex Mono',monospace;font-size:11px;padding:5px 11px;border-radius:999px;
  cursor:pointer;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.10);color:var(--muted)}
.hchip:hover{color:var(--amber);border-color:rgba(232,163,61,.5)}
.hchip.on{color:#0d0c0a;background:var(--amber);border-color:var(--amber);font-weight:600}

.ideas{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}
@media(max-width:980px){.ideas{grid-template-columns:1fr}}
.idea{border:1px solid rgba(255,255,255,.09);border-radius:11px;padding:14px 15px;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.008));
  display:flex;flex-direction:column;gap:10px;transition:.16s}
.idea:hover{border-color:rgba(232,163,61,.5);transform:translateY(-2px)}
.idea__t{display:flex;flex-direction:column;gap:3px}
.idea__t b{font-size:15px;letter-spacing:-.01em}
.idea__t span{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--amber)}
.idea__w{color:var(--muted);font-size:12.5px;line-height:1.5}
.idea__m{display:flex;flex-direction:column;gap:7px}
.im{display:grid;grid-template-columns:88px 1fr 54px;gap:8px;align-items:center}
.imk{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted)}
.imv{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink);text-align:right}
.ibar{display:block;height:6px;border-radius:4px;background:rgba(255,255,255,.07);overflow:hidden}
.ibar i{display:block;height:100%;border-radius:4px}
.ibar.g i{background:#3fbf6a}.ibar.r i{background:#e0523f}.ibar.a i{background:var(--amber)}
.idea__f{display:flex;align-items:center;justify-content:space-between;gap:8px;
  border-top:1px solid rgba(255,255,255,.07);padding-top:10px;margin-top:auto;
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted)}
.idea__f b{color:var(--amber)}
.idea__go{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;
  padding:7px 13px;border-radius:7px;cursor:pointer;border:1px solid var(--amber);
  background:transparent;color:var(--amber);transition:.14s;white-space:nowrap}
.idea__go:hover{background:var(--amber);color:#0d0c0a}
.idea__wait{color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:12.5px;padding:22px}

/* ---- "what this actually does" (roadmap #what) ---------------------------- */
.wgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:900px){.wgrid{grid-template-columns:1fr}}
.wcard{border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:18px 20px;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.008))}
.wcard__k{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--amber);margin-bottom:12px}
.wcard ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.wcard li{position:relative;padding-left:18px;color:var(--muted);font-size:13.5px;line-height:1.6}
.wcard li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;
  border-radius:50%;background:var(--amber);opacity:.55}
.wcard li b{color:var(--ink)}

/* ---- chart timeframe selector -------------------------------------------- */
.tfbar{display:flex;gap:4px;margin-bottom:8px;position:relative;z-index:3}
.tfbtn{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;
  padding:5px 12px;border-radius:6px;cursor:pointer;transition:.13s;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.10);color:var(--muted)}
.tfbtn:hover{color:var(--ink);border-color:rgba(255,255,255,.24)}
.tfbtn.on{color:#0d0c0a;background:var(--amber);border-color:var(--amber);font-weight:600}
