/* =========================================================
   $OG / dark. Deep ground, emerald light, IBM Plex.
   Palette and type live entirely in :root.
   ========================================================= */

:root{
  /* ---- ground ---- */
  --paper:       #090d0e;
  --surface:     #111819;
  --surface-2:   #161f20;
  --line:        rgba(233,244,238,.085);
  --line-2:      rgba(233,244,238,.17);

  /* ---- text ---- */
  --ink:         #eef3ef;
  --ink-2:       #a4b1ab;
  --ink-3:       #6f7c77;

  /* ---- accent: emerald, lifted for a dark ground ---- */
  --accent:      #2fd68b;
  --accent-2:    #4fe8a4;
  --accent-ink:  #8ff5c6;
  --accent-deep: #0d6f4b;
  --accent-wash: rgba(47,214,139,.11);
  --accent-line: rgba(47,214,139,.30);

  /* ---- secondary: gold, the money going out ---- */
  --gold:        #e0b45c;
  --gold-2:      #f2ca7e;
  --gold-wash:   rgba(224,180,92,.11);
  --gold-line:   rgba(224,180,92,.30);

  --up:          #2fd68b;
  --down:        #ff6f5e;

  --r-sm: 8px;
  --r:    13px;    /* editorial surfaces: steps, news, audience, roadmap */
  --r-dat: 5px;    /* data surfaces: charts, tables, KPIs, the fee split  */
  --r-lg: 20px;

  --shadow-sm: 0 1px 2px rgba(0,0,0,.4);
  --shadow:    0 2px 6px rgba(0,0,0,.4), 0 18px 44px rgba(0,0,0,.42);
  --shadow-lg: 0 4px 12px rgba(0,0,0,.45), 0 40px 90px rgba(0,0,0,.55);
  --glow:      0 0 0 1px var(--accent-line), 0 12px 40px -12px rgba(47,214,139,.5);

  --maxw: 1180px;
  --display: 'IBM Plex Sans Condensed', 'Helvetica Neue', Arial, sans-serif;
  --sans:    'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mono:    'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --ez: cubic-bezier(.22,.61,.36,1);

  /* ---- the bloom ramp ----------------------------------------------
     Borrowed wholesale from how Robinhood colours a chart: the line
     stays white and every bit of colour comes from a blurred light
     behind it. Cool to warm for a rise, violet to red for a fall.   */
  --bloom-1: #4d5fe0;   /* indigo  */
  --bloom-2: #1fb6d6;   /* cyan    */
  --bloom-3: #2fd68b;   /* emerald */
  --bloom-4: #9ede4a;   /* lime    */
  --bloom-5: #f2ca7e;   /* gold    */
  --bloom-d1:#4d3fd0; --bloom-d2:#8b3fd0; --bloom-d3:#d0357a; --bloom-d4:#ff6f5e;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; background:var(--paper); }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
.num{ font-variant-numeric:tabular-nums; }
.mono{ font-family:var(--mono); font-variant-numeric:tabular-nums; }
::selection{ background:rgba(47,214,139,.28); }

/* ---------- background: light, not texture ---------- */
.bg{ position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(40% 32% at 78% 0%,   rgba(47,214,139,.16),  transparent 70%),
    radial-gradient(46% 38% at 6%  26%,  rgba(224,180,92,.075), transparent 72%),
    radial-gradient(66% 50% at 50% 104%, rgba(47,214,139,.10),  transparent 70%); }
/* slow aurora, the only thing on the page that never stops moving */
.aura{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.aura i{ position:absolute; display:block; border-radius:50%; filter:blur(90px); }
.aura i:nth-child(1){ width:48vw; height:48vw; left:56%; top:-18%; background:rgba(47,214,139,.20);  animation:aura1 26s ease-in-out infinite alternate; }
.aura i:nth-child(2){ width:42vw; height:42vw; left:-14%; top:12%; background:rgba(77,95,224,.15);   animation:aura2 32s ease-in-out infinite alternate; }
.aura i:nth-child(3){ width:56vw; height:56vw; left:22%;  top:72%; background:rgba(31,182,214,.11);  animation:aura3 38s ease-in-out infinite alternate; }
.aura i:nth-child(4){ width:38vw; height:38vw; left:70%;  top:52%; background:rgba(242,202,126,.10); animation:aura2 44s ease-in-out infinite alternate; }
@keyframes aura1{ to{ transform:translate3d(-9%,7%,0)  scale(1.16); } }
@keyframes aura2{ to{ transform:translate3d(11%,-6%,0) scale(1.22); } }
@keyframes aura3{ to{ transform:translate3d(-7%,-9%,0) scale(1.13); } }

.tape, .nav, header, section, footer{ position:relative; z-index:1; }

/* ---------- motion ---------- */
.rv{ opacity:0; transform:translateY(20px); transition:opacity .78s var(--ez), transform .78s var(--ez); transition-delay:var(--d,0s); }
.rv.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .rv{ opacity:1; transform:none; transition:none; }
  *{ animation:none !important; }
}

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 26px; }
section{ padding:104px 0; }
/* Deliberate irregularity. Identical padding on every section is what makes
   a page feel generated: the treasury and the projection are the product and
   get room, the FAQ and the roadmap are reference and get less. */
.sec-lg{ padding:140px 0; }
.sec-sm{ padding:76px 0; }
.section-line{ border-top:1px solid var(--line); }

/* ---------- type ---------- */
h1,h2{ font-family:var(--display); font-weight:600; letter-spacing:-.018em; margin:0; }
h1{ font-size:clamp(44px,5vw,70px); line-height:1.0; }
h2{ font-size:clamp(34px,4.6vw,58px); line-height:1.02; }
h3{ font-size:17px; font-weight:600; letter-spacing:-.005em; margin:0; line-height:1.4; }
.eyebrow{ font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold); margin:0 0 20px; }
.lede{ font-size:clamp(16.5px,1.5vw,18.5px); color:var(--ink-2); max-width:56ch; margin:22px 0 0; line-height:1.65; }
.section-head{ max-width:62ch; margin-bottom:52px; }
.hl{ color:var(--accent); text-shadow:0 0 44px rgba(47,214,139,.45); }
/* forced breaks are set for the wide layout; let narrow screens wrap naturally */
@media (max-width:700px){ br.wide{ display:none; } }

/* ---------- brand ---------- */
.brand{ display:flex; align-items:center; gap:10px; }
.mark{ width:30px; height:30px; flex:none; }
.mark .slice{ transform-origin:16px 16px; transition:transform .9s var(--ez); }
.brand:hover .mark .slice{ transform:rotate(360deg); }
.wordmark{ font-family:var(--display); font-weight:700; font-size:23px; line-height:1; letter-spacing:-.02em; }

/* flowing dashes along the diagram paths */
.flow-dash{ stroke-dasharray:3 11; animation:dashflow 1.6s linear infinite; }
@keyframes dashflow{ to{ stroke-dashoffset:-14; } }

/* ---------- ticker tape ---------- */
.tape{ background:rgba(8,12,13,.72); border-bottom:1px solid var(--line); overflow:hidden; position:relative;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.tape-track{ display:flex; width:max-content; animation:tape 60s linear infinite; }
.tape:hover .tape-track{ animation-play-state:paused; }
@keyframes tape{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
.tick{ display:flex; align-items:baseline; gap:9px; padding:9px 22px; font-family:var(--mono); font-size:12px;
  border-right:1px solid var(--line); white-space:nowrap; }
.tick b{ font-weight:600; letter-spacing:.02em; }
.tick .p{ color:var(--ink-3); }
.tick .c.up{ color:var(--up); } .tick .c.down{ color:var(--down); }
.tape::after{ content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg,var(--paper),transparent 7%,transparent 93%,var(--paper)); }

/* ---------- buttons ----------
   Flat, squared, mono. No gradient fill, no outer glow, no shine sweep and
   no hover lift: that combination is the house style of every generated
   landing page. Gold is the brand action colour; emerald stays reserved
   for market data and the bloom. */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  height:46px; padding:0 22px; border-radius:3px; border:1px solid transparent;
  font-family:var(--mono); font-size:12.5px; font-weight:500;
  letter-spacing:.11em; text-transform:uppercase;
  cursor:pointer; white-space:nowrap;
  transition:background .18s ease, border-color .18s ease, color .18s ease;
}
.btn-primary{ background:var(--gold-2); border-color:var(--gold-2); color:#171008; }
.btn-primary:hover{ background:#f7d692; border-color:#f7d692; }
.btn-primary:active{ background:var(--gold); border-color:var(--gold); }
.btn-ghost{ background:transparent; border-color:var(--line-2); color:var(--ink); }
.btn-ghost:hover{ border-color:var(--ink-2); background:rgba(255,255,255,.03); }
.btn-sm{ height:36px; padding:0 14px; font-size:11px; letter-spacing:.12em; }

/* ---------- nav ---------- */
.nav{ position:sticky; top:0; z-index:50; background:transparent;
  transition:background .3s ease, -webkit-backdrop-filter .3s ease, backdrop-filter .3s ease; }
/* transparent until content passes under it, then a dark frost that reads as
   the same ground rather than a separate bar */
.nav.stuck{ background:rgba(9,13,14,.72); -webkit-backdrop-filter:blur(20px) saturate(150%);
  backdrop-filter:blur(20px) saturate(150%); }
.nav-in{ display:flex; align-items:center; gap:30px; height:68px; }
.nav-links{ display:flex; gap:26px; margin-left:10px; }
.nav-links a{ font-size:14.5px; font-weight:450; color:var(--ink-2); position:relative;
  white-space:nowrap; transition:color .2s; }
.nav-links a::after{ content:''; position:absolute; left:0; right:100%; bottom:-5px; height:1.5px;
  background:var(--accent); box-shadow:0 0 12px var(--accent); transition:right .3s var(--ez); }
.nav-links a:hover{ color:var(--ink); } .nav-links a:hover::after{ right:0; }
.nav-links a.active{ color:var(--ink); font-weight:550; } .nav-links a.active::after{ right:0; }
.nav-cta{ margin-left:auto; display:flex; align-items:center; gap:10px; }

/* ---------- hero ---------- */
.hero{ padding:88px 0 0; position:relative; }
.hero-grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:64px; align-items:center; }
/* Just a caption line above the headline. No box, no border, no badge:
   a bordered chip and a rounded pulsing pill are both giveaways. */
.stamp{ display:flex; align-items:center; gap:10px; margin-bottom:26px; flex-wrap:wrap;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.15em; text-transform:uppercase; }
.stamp img{ width:14px; height:14px; flex:none; }
.stamp .a{ color:var(--ink); }
.stamp .b{ color:var(--ink-3); }
.stamp .sep{ color:var(--ink-3); opacity:.6; }

/* Robinhood chain lockups */
.nav-chain{ display:flex; align-items:center; gap:8px; padding-left:15px;
  border-left:1px solid var(--line); font-family:var(--mono); font-size:10px;
  letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); }
.nav-chain img{ width:13px; height:13px; opacity:.85; }
.chain-row{ display:flex; align-items:center; gap:9px; }
.chain-row img{ width:15px; height:15px; }
.foot-chain{ display:flex; align-items:center; gap:9px; margin-top:14px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); }
.foot-chain img{ width:14px; height:14px; opacity:.9; }
.hero-cta{ display:flex; gap:12px; margin-top:34px; flex-wrap:wrap; }
.hero-note{ margin-top:20px; font-size:13.5px; color:var(--ink-3); }

/* ---------- the book strip ---------- */
.bookstrip{ margin-top:58px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:20px 0; display:flex; align-items:center; gap:26px; overflow:hidden; }
.bookstrip-lab{ display:flex; align-items:center; gap:9px; font-family:var(--mono); font-size:10px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); white-space:nowrap; flex:none; }
.bookstrip-lab img{ width:13px; height:13px; opacity:.8; }
.bookstrip-win{ overflow:hidden; position:relative; flex:1; }
.bookstrip-win::after{ content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(90deg,var(--paper),transparent 6%,transparent 94%,var(--paper)); }
.bookstrip-track{ display:flex; width:max-content; align-items:center; gap:38px; animation:tape 38s linear infinite; }
.bookstrip:hover .bookstrip-track{ animation-play-state:paused; }
.bookchip{ display:flex; align-items:center; gap:11px; white-space:nowrap; opacity:.82; transition:opacity .25s; }
.bookchip:hover{ opacity:1; }
.bookchip img{ width:26px; height:26px; object-fit:contain; background:#fff; border-radius:6px; padding:4px; }
.bookchip b{ font-family:var(--mono); font-size:12.5px; font-weight:500; letter-spacing:.03em; }
.bookchip span{ font-family:var(--mono); font-size:11.5px; }
.bookchip span.up{ color:var(--up); } .bookchip span.down{ color:var(--down); }

/* ---------- panels ---------- */
.on-block{ background:linear-gradient(158deg, rgba(47,214,139,.10), rgba(17,24,25,.72) 46%);
  border:1px solid var(--accent-line); color:var(--ink); }
.stat-block{ position:relative; margin-top:46px; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); }
.stat-block::before{ content:''; position:absolute; inset:-40% -10% auto -10%; height:200%; pointer-events:none;
  opacity:.4; filter:blur(60px);
  background:
    radial-gradient(30% 60% at 8%  70%, var(--bloom-1), transparent 66%),
    radial-gradient(30% 60% at 38% 78%, var(--bloom-3), transparent 66%),
    radial-gradient(30% 60% at 72% 74%, var(--bloom-4), transparent 66%),
    radial-gradient(30% 60% at 96% 80%, var(--bloom-5), transparent 66%); }
.stat-block > *{ position:relative; z-index:1; }
.stat-strip{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat{ padding:30px; border-left:1px solid var(--line); }
.stat:first-child{ border-left:0; }
.stat-k{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
.stat-v{ font-family:var(--display); font-weight:600; font-size:clamp(32px,3.4vw,46px); line-height:1;
  margin-top:14px; letter-spacing:-.02em; font-variant-numeric:tabular-nums;
  text-shadow:0 0 40px rgba(47,214,139,.22); }
.stat-s{ font-size:12.5px; color:var(--ink-3); margin-top:9px; }
.block-foot{ padding:15px 30px; border-top:1px solid var(--line); font-family:var(--mono);
  font-size:11.5px; color:var(--ink-3); }

/* ---------- cards ---------- */
.card{ position:relative; min-width:0; border-radius:var(--r); border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,.038), rgba(255,255,255,.012)), var(--surface);
  box-shadow:var(--shadow-sm); }
.card-pad{ padding:28px; }
/* cursor spotlight, set from js */
.card-lift{ transition:transform .32s var(--ez), border-color .32s ease, box-shadow .32s var(--ez); }
.card-lift::before{ content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  opacity:0; transition:opacity .3s ease;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%), rgba(47,214,139,.13), transparent 62%); }
.card-lift:hover{ transform:translateY(-4px); border-color:var(--accent-line); box-shadow:var(--shadow); }
.card-lift:hover::before{ opacity:1; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.grid-2 > *, .grid-3 > *, .dash-cols > *, .calc > *, .road > *, .kpi-grid > *, .news-grid > *{ min-width:0; }

.step-n{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; color:var(--gold);
  padding-bottom:14px; border-bottom:1px solid var(--line); margin-bottom:18px; }
.step p{ color:var(--ink-2); margin:10px 0 0; font-size:15px; }

/* ---------- worked example ---------- */
.example{ border-radius:var(--r-lg); border:1px solid var(--line-2); padding:32px; box-shadow:var(--shadow-lg);
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.014)), var(--surface); }
.ex-label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }
.ex-row{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.ex-big{ font-family:var(--display); font-weight:600; font-size:42px; line-height:1; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }

/* ---------- charts ---------- */
.chart-host{ position:relative; isolation:isolate; }
/* the light behind the line. Blob positions come from the data, so the
   glow tracks the shape of the series rather than sitting there as wallpaper.
   The mask feathers it out before the card edge, so a heavy blur cannot
   spill past the rounded corners. */
/* Horizontal inset is 0 on purpose: a negative one makes the layer wider than
   its host and spills the page at some widths. The blur paints outside the box
   anyway and filters do not affect layout, so the look is unchanged. */
.chart-glow{ position:absolute; inset:-14% 0 -8%; z-index:0; pointer-events:none;
  filter:blur(42px) saturate(135%); opacity:.68;
  -webkit-mask-image:radial-gradient(ellipse 86% 92% at 50% 56%, #000 34%, transparent 86%);
          mask-image:radial-gradient(ellipse 86% 92% at 50% 56%, #000 34%, transparent 86%); }
.chart-host svg{ position:relative; z-index:1; }
.chart-host .ch-tip{ z-index:5; }
@media (max-width:600px){ .chart-glow{ filter:blur(28px) saturate(140%); } }

/* a chart panel drops to near black so the bloom has something to burn
   against. On the lifted card surface the colour just goes grey. */
.card-chart{ background:#05080a; border-color:rgba(233,244,238,.07); border-radius:var(--r-dat); }
/* data reads sharper than editorial */
.kpi, .calc, .facts, .card:has(> .table-wrap), .card:has(> * > .table-wrap){ border-radius:var(--r-dat); }
.table-wrap{ border-radius:inherit; }
.chart .grid{ stroke:rgba(255,255,255,.07); stroke-width:1; }
.chart .grid-lab{ font-family:var(--mono); font-size:9.5px; fill:rgba(255,255,255,.58); letter-spacing:.04em; }
.chart .ch-cross{ stroke:var(--line-2); stroke-width:1; stroke-dasharray:3 3; }
.chart .pulse{ fill:var(--accent); filter:drop-shadow(0 0 6px var(--accent)); }
.ch-tip{ position:absolute; pointer-events:none; opacity:0; transform:translateY(4px);
  transition:opacity .15s ease, transform .15s ease; background:var(--surface-2); color:var(--ink);
  border:1px solid var(--line-2); border-radius:8px; padding:8px 11px; white-space:nowrap; z-index:5; box-shadow:var(--shadow); }
.ch-tip.on{ opacity:1; transform:none; }
.ch-tip b{ display:block; font-family:var(--display); font-weight:600; font-size:17px; letter-spacing:-.01em; }
.ch-tip span{ display:block; font-family:var(--mono); font-size:10px; color:var(--ink-3); letter-spacing:.05em; margin-top:2px; }
.bar{ transform-box:fill-box; transform-origin:bottom; }
.legend-dots{ display:flex; gap:18px; flex-wrap:wrap; font-family:var(--mono); font-size:11px; color:var(--ink-3); letter-spacing:.04em; }
.legend-dots i{ width:8px; height:8px; border-radius:2px; display:inline-block; margin-right:7px; }

/* ---------- scenario slider ---------- */
.range{ -webkit-appearance:none; appearance:none; width:100%; height:4px; border-radius:999px;
  background:linear-gradient(90deg,var(--accent-deep),var(--line-2)); outline:none; margin:18px 0 6px; }
.range::-webkit-slider-thumb{ -webkit-appearance:none; width:24px; height:24px; border-radius:50%;
  background:var(--accent); border:3px solid var(--surface); box-shadow:0 0 0 1px var(--accent-line), 0 0 22px rgba(47,214,139,.7);
  cursor:grab; transition:transform .16s var(--ez); }
.range::-webkit-slider-thumb:hover{ transform:scale(1.16); }
.range::-moz-range-thumb{ width:20px; height:20px; border-radius:50%; background:var(--accent);
  border:3px solid var(--surface); box-shadow:0 0 22px rgba(47,214,139,.7); cursor:grab; }
.range-ends{ display:flex; justify-content:space-between; font-family:var(--mono); font-size:10.5px; color:var(--ink-3); letter-spacing:.05em; }
.scen-out{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border-top:1px solid var(--line); }
.scen-cell{ background:linear-gradient(170deg, rgba(47,214,139,.075), transparent 62%), var(--surface);
  color:var(--ink); padding:24px 26px; }
.scen-cell .k{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
.scen-cell .v{ font-family:var(--display); font-weight:600; font-size:clamp(26px,2.8vw,36px); line-height:1;
  margin-top:12px; letter-spacing:-.02em; font-variant-numeric:tabular-nums; color:var(--accent-ink);
  text-shadow:0 0 40px rgba(47,214,139,.3); }
.scen-cell .s{ font-size:12px; color:var(--ink-3); margin-top:7px; }

/* ---------- split bars ---------- */
.split{ display:flex; height:11px; border-radius:3px; overflow:hidden; background:rgba(255,255,255,.05); }
.split i{ display:block; height:100%; width:0; transition:width 1s var(--ez); }
.split-legend{ display:grid; gap:16px; margin-top:24px; }
.legend-row{ display:grid; grid-template-columns:auto 1fr auto; gap:13px; align-items:baseline; }
.swatch{ width:10px; height:10px; border-radius:2px; transform:translateY(1px); }
.legend-row b{ font-weight:600; font-size:15px; }
.legend-row span{ font-size:13.5px; color:var(--ink-3); }
.legend-row .pct{ font-family:var(--display); font-weight:600; font-size:22px; }

/* ---------- ticker marks + tables ---------- */
.tkr{ display:inline-flex; align-items:center; gap:12px; font-weight:550; }
.tkr-mark{ width:34px; height:34px; border-radius:7px; flex:none; display:grid; place-items:center;
  font-family:var(--mono); font-size:9.5px; font-weight:600; color:#fff; overflow:hidden;
  transition:transform .25s var(--ez), box-shadow .25s ease; }
.tkr-mark.has-logo{ background:#fff; padding:5px; box-shadow:0 1px 3px rgba(0,0,0,.45); }
tr:hover .tkr-mark{ transform:scale(1.09); box-shadow:0 0 0 1px var(--accent-line), 0 4px 14px rgba(0,0,0,.5); }
.tkr-mark img{ width:100%; height:100%; object-fit:contain; }
.tkr small{ display:block; font-weight:400; color:var(--ink-3); font-size:12.5px; }
.table-wrap{ overflow-x:auto; min-width:0; max-width:100%; }
table{ width:100%; border-collapse:collapse; min-width:520px; }
th,td{ text-align:left; padding:15px 22px; font-size:14.5px; border-bottom:1px solid var(--line); }
th{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-3); font-weight:500; background:rgba(255,255,255,.022); }
tbody tr{ transition:background .2s ease; }
tbody tr:last-child td{ border-bottom:none; }
tbody tr:hover{ background:rgba(47,214,139,.05); }
td.r,th.r{ text-align:right; }
td.r{ font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:13.5px; }
.wbar{ height:5px; border-radius:999px; background:rgba(255,255,255,.07); overflow:hidden; min-width:88px; }
.wbar i{ display:block; height:100%; width:0; border-radius:999px; transition:width .9s var(--ez); }
.chg{ font-family:var(--mono); font-size:13px; font-variant-numeric:tabular-nums; }
.chg.up{ color:var(--up); } .chg.down{ color:var(--down); }

/* ---------- calculator ---------- */
.calc{ display:grid; grid-template-columns:1fr 1fr; overflow:hidden; }
.calc-in{ padding:34px; }
.calc-out{ position:relative; overflow:hidden; padding:34px;
  background:linear-gradient(158deg, rgba(47,214,139,.10), rgba(9,13,14,.55) 52%);
  border-left:1px solid var(--accent-line); }
.calc-out::before{ content:''; position:absolute; inset:auto -20% -50% -20%; height:120%; pointer-events:none;
  opacity:.45; filter:blur(56px);
  background:
    radial-gradient(38% 70% at 14% 60%, var(--bloom-2), transparent 68%),
    radial-gradient(38% 70% at 52% 70%, var(--bloom-3), transparent 68%),
    radial-gradient(38% 70% at 88% 62%, var(--bloom-5), transparent 68%); }
.calc-out > *{ position:relative; z-index:1; }
label.fld{ display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-3); margin-bottom:10px; }
.input{ display:flex; align-items:center; gap:10px; height:54px; padding:0 16px; background:rgba(0,0,0,.28);
  border:1px solid var(--line-2); border-radius:var(--r-sm); transition:border-color .2s, box-shadow .2s; }
.input:focus-within{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(47,214,139,.16); }
.input input{ border:0; outline:0; background:transparent; font-family:var(--mono); font-size:19px; font-weight:500;
  width:100%; font-variant-numeric:tabular-nums; color:var(--ink); }
.input span{ font-family:var(--mono); font-size:13px; color:var(--ink-3); }
.chips{ display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.chip{ height:32px; padding:0 13px; border-radius:3px; background:rgba(255,255,255,.04); border:1px solid var(--line-2);
  font-family:var(--mono); font-size:12px; color:var(--ink-2); cursor:pointer;
  transition:border-color .2s, color .2s, background .2s, transform .2s var(--ez); }
.chip:hover{ border-color:var(--accent-line); color:var(--accent-ink); background:rgba(47,214,139,.09); transform:translateY(-1px); }
.out-row{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:13px 0; border-bottom:1px solid var(--line); }
.out-row:last-of-type{ border-bottom:0; }
.out-row span{ font-size:14px; color:var(--ink-2); }
.out-row b{ font-family:var(--mono); font-size:15px; font-weight:500; font-variant-numeric:tabular-nums; }
.out-hero{ font-family:var(--display); font-weight:600; font-size:62px; line-height:1; letter-spacing:-.025em;
  font-variant-numeric:tabular-nums; margin:8px 0 4px; color:var(--accent-ink);
  text-shadow:0 0 56px rgba(47,214,139,.45); }

/* ---------- two audiences ---------- */
.aud{ padding:34px; }
.aud h3{ font-family:var(--display); font-weight:600; font-size:26px; letter-spacing:-.015em; }
.aud .kicker{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  margin-bottom:14px; color:var(--accent-ink); }
.aud.b .kicker{ color:var(--gold-2); }
.aud ul{ margin:22px 0 0; padding:0; list-style:none; display:grid; gap:14px; }
.aud li{ font-size:15px; color:var(--ink-2); padding-left:26px; position:relative; line-height:1.5; }
.aud li::before{ content:''; position:absolute; left:0; top:8px; width:12px; height:2px; background:var(--accent);
  box-shadow:0 0 10px var(--accent); }
.aud.b li::before{ background:var(--gold-2); box-shadow:0 0 10px rgba(224,180,92,.7); }

/* ---------- roadmap ---------- */
.road{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.road .card-pad{ padding:24px; height:100%; }
.tag{ display:inline-flex; height:21px; align-items:center; padding:0 8px; border-radius:4px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; }
.tag.done{ background:var(--accent-wash); color:var(--accent-ink); border:1px solid var(--accent-line); }
.tag.live{ background:var(--gold-wash); color:var(--gold-2); border:1px solid var(--gold-line); }
.tag.next{ background:rgba(255,255,255,.045); color:var(--ink-3); border:1px solid var(--line); }
.road .phase{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin:16px 0 6px; }
.road ul{ margin:16px 0 0; padding:0; list-style:none; display:grid; gap:10px; }
.road li{ font-size:14px; color:var(--ink-2); padding-left:20px; position:relative; }
.road li::before{ content:''; position:absolute; left:2px; top:9px; width:5px; height:5px; border-radius:50%; background:var(--line-2); }
.road .done li::before, .road .live li::before{ background:var(--accent); box-shadow:0 0 8px var(--accent); }
.road-bar{ height:3px; border-radius:999px; background:rgba(255,255,255,.07); margin-top:18px; overflow:hidden; }
.road-bar i{ display:block; height:100%; width:0; background:var(--accent); box-shadow:0 0 12px var(--accent); transition:width 1.1s var(--ez); }

/* ---------- newsroom ---------- */
.news-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.news{ padding:28px; display:block; }
.news-top{ display:flex; align-items:center; gap:12px; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:16px; }
.news-tag{ padding:3px 8px; border-radius:4px; background:var(--accent-wash); color:var(--accent-ink); border:1px solid var(--accent-line); }
.news h3{ font-family:var(--display); font-weight:600; font-size:23px; letter-spacing:-.015em; line-height:1.15; }
.news p{ font-size:14.5px; color:var(--ink-2); margin:12px 0 0; line-height:1.6; }

/* ---------- faq ---------- */
.faq{ max-width:820px; }
details{ border-bottom:1px solid var(--line); }
summary{ cursor:pointer; list-style:none; padding:22px 44px 22px 0; font-weight:500; font-size:17px;
  position:relative; transition:color .2s ease; }
summary:hover{ color:var(--accent-ink); }
summary::-webkit-details-marker{ display:none; }
summary::after{ content:''; position:absolute; right:8px; top:31px; width:11px; height:1.5px; background:var(--ink-3); }
summary::before{ content:''; position:absolute; right:12.75px; top:26.25px; width:1.5px; height:11px; background:var(--ink-3);
  transition:transform .25s var(--ez), opacity .25s ease; }
details[open] summary::before{ transform:rotate(90deg); opacity:0; }
details p{ margin:0 0 24px; color:var(--ink-2); font-size:15.5px; max-width:70ch; }

/* ---------- cta band ---------- */
.band{ border-radius:var(--r-lg); padding:76px 56px; text-align:center; position:relative; overflow:hidden;
  border:1px solid var(--accent-line);
  background:linear-gradient(168deg, rgba(47,214,139,.16), rgba(9,13,14,.5) 55%), var(--surface);
  box-shadow:var(--shadow); }
.band::before{ content:''; position:absolute; inset:-50% -10% auto -10%; height:150%;
  opacity:.7; filter:blur(50px);
  background:
    radial-gradient(26% 48% at 16% 42%, var(--bloom-1), transparent 68%),
    radial-gradient(26% 48% at 42% 34%, var(--bloom-3), transparent 68%),
    radial-gradient(26% 48% at 68% 38%, var(--bloom-4), transparent 68%),
    radial-gradient(26% 48% at 92% 46%, var(--bloom-5), transparent 68%);
  animation:bandpulse 9s ease-in-out infinite alternate; }
@keyframes bandpulse{ from{ opacity:.55; transform:scale(1);} to{ opacity:.85; transform:scale(1.08);} }
.band > *{ position:relative; }
.band p{ color:var(--ink-2); max-width:52ch; margin:20px auto 0; font-size:17px; }
.band .hero-cta{ justify-content:center; }

/* ---------- footer ---------- */
footer{ border-top:1px solid var(--line); padding:62px 0 48px; }
.foot-grid{ display:flex; gap:44px; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; }
.foot-links{ display:flex; gap:26px; flex-wrap:wrap; }
.foot-links a{ font-size:14px; color:var(--ink-2); transition:color .18s; }
.foot-links a:hover{ color:var(--accent-ink); }
.disclaimer{ margin-top:40px; padding-top:28px; border-top:1px solid var(--line);
  font-size:12.5px; line-height:1.7; color:var(--ink-3); max-width:84ch; }

/* ---------- misc ---------- */
.addr{ display:inline-flex; align-items:center; gap:12px; font-family:var(--mono); font-size:12px;
  background:rgba(0,0,0,.3); border:1px solid var(--line); border-radius:6px; padding:9px 12px; color:var(--ink-2); }
.copy{ border:0; background:transparent; cursor:pointer; color:var(--accent-ink); font-family:var(--mono);
  font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.ph{ display:inline-flex; align-items:center; height:18px; padding:0 6px; border-radius:3px; background:var(--gold-wash);
  border:1px solid var(--gold-line); color:var(--gold-2); font-family:var(--mono); font-size:9.5px; letter-spacing:.1em;
  text-transform:uppercase; vertical-align:2px; margin-left:8px; }

/* ---------- dashboard ---------- */
.dash-head{ padding:48px 0 32px; }
.dash-top{ display:flex; justify-content:space-between; align-items:flex-end; gap:26px; flex-wrap:wrap; }
.kpi-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.kpi{ padding:24px 26px; }
.kpi .stat-v{ font-size:34px; }
.dash-cols{ display:grid; grid-template-columns:1.32fr .68fr; gap:24px; align-items:start; }
.countdown{ display:flex; gap:9px; margin-top:18px; }
.cd-box{ background:rgba(0,0,0,.28); border:1px solid var(--line); border-radius:7px; padding:13px 0; text-align:center; flex:1; }
.cd-box b{ display:block; font-family:var(--display); font-weight:600; font-size:28px; line-height:1;
  font-variant-numeric:tabular-nums; color:var(--accent-ink); }
.cd-box span{ font-family:var(--mono); font-size:9.5px; text-transform:uppercase; letter-spacing:.12em; color:var(--ink-3); }
.hbar{ display:grid; gap:13px; }
.hbar-row{ display:grid; grid-template-columns:auto 46px 1fr 46px; gap:11px; align-items:center; font-size:13.5px; }
.hbar-row b{ font-family:var(--mono); font-size:12px; font-weight:500; }
.hbar-row .r{ text-align:right; color:var(--ink-3); font-family:var(--mono); font-size:12px; font-variant-numeric:tabular-nums; }
.hbar-chip{ width:22px; height:22px; border-radius:5px; flex:none; }
.donut-wrap{ position:relative; display:flex; align-items:center; justify-content:center; padding:6px 0 18px; }
.donut-wrap::before{ content:''; position:absolute; inset:6% 18%; border-radius:50%; pointer-events:none;
  opacity:.5; filter:blur(38px);
  background:
    radial-gradient(60% 60% at 26% 34%, var(--bloom-2), transparent 70%),
    radial-gradient(60% 60% at 74% 30%, var(--bloom-3), transparent 70%),
    radial-gradient(60% 60% at 52% 82%, var(--bloom-5), transparent 70%); }
.donut-wrap > *{ position:relative; z-index:1; }

/* ---------- responsive ---------- */
/* ---------- mobile navigation ---------- */
.nav-burger{ display:none; }
/* Between the mobile breakpoint and full width the bar runs out of room:
   seven links, the chain lockup and two buttons do not fit at 1000px. The
   chain lockup is the least load bearing thing there, so it goes first. */
@media (max-width:1300px){
  .nav-chain{ display:none; }
  .nav-in{ gap:20px; }
  .nav-links{ gap:19px; }
}
@media (max-width:980px){
  .nav-burger{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    margin-left:auto; width:42px; height:42px; padding:0 9px;
    background:transparent; border:1px solid var(--line-2); border-radius:5px; cursor:pointer;
  }
  .nav-burger span{ display:block; height:1.5px; background:var(--ink); border-radius:2px;
    transition:transform .28s var(--ez), opacity .2s ease; }
  .nav.open .nav-burger span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .nav.open .nav-burger span:nth-child(2){ opacity:0; }
  .nav.open .nav-burger span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

  /* .nav-in carries a fixed 68px height; without releasing it the open
     panel renders outside the bar's painted background */
  .nav-in{ flex-wrap:wrap; height:auto; min-height:68px; }
  .nav-chain{ display:none; }
  .nav-links, .nav-cta{ display:none; }

  body.nav-locked{ overflow:hidden; }
  .nav.open{ background:rgba(9,13,14,.97);
    -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); }
  .nav.open .nav-links{
    display:flex; flex-direction:column; width:100%; gap:0; margin:0;
    padding:6px 0 0; border-top:1px solid var(--line);
  }
  .nav.open .nav-links a{
    padding:16px 2px; font-size:16.5px; color:var(--ink);
    border-bottom:1px solid var(--line);
  }
  .nav.open .nav-links a::after{ display:none; }
  .nav.open .nav-links a.active{ color:var(--accent-ink); }
  .nav.open .nav-cta{ display:flex; width:100%; gap:10px; margin:18px 0 20px; }
  .nav.open .nav-cta .btn{ flex:1; height:46px; font-size:12px; }

  section{ padding:76px 0; }
  .hero{ padding-top:60px; }
  .hero-grid,.grid-2,.calc,.dash-cols,.news-grid{ grid-template-columns:1fr; }
  .grid-3,.road,.stat-strip,.kpi-grid{ grid-template-columns:1fr 1fr; }
  .stat{ border-left:0; box-shadow:inset 0 1px 0 var(--line); }
  .calc-out{ border-left:0; border-top:1px solid var(--accent-line); }
  .nav-links{ display:none; }
  .nav-chain{ display:none; }
  .band{ padding:52px 26px; }
  .aura i{ filter:blur(70px); }
}
@media (max-width:600px){
  .grid-3,.road,.stat-strip,.kpi-grid,.scen-out{ grid-template-columns:1fr; }
  .wrap{ padding:0 18px; }
  .out-hero{ font-size:50px; }
  .bookstrip{ flex-direction:column; align-items:flex-start; gap:14px; }
  .bookstrip-win{ width:100%; }
  .dash-top > div:last-child{ text-align:left !important; width:100%; }
  .dash-top #connectNote{ text-align:left !important; max-width:none; }
  .dash-top #connectBtn{ width:100%; }
  .hero-cta .btn{ width:100%; }
}

/* =========================================================
   TOKENOMICS PAGE
   ========================================================= */
.alloc-chip{ width:34px; height:34px; border-radius:7px; flex:none; }
.alloc-split{ display:grid; grid-template-columns:auto 1fr; gap:40px; align-items:center; }
.alloc-donut{ display:flex; align-items:center; justify-content:center; position:relative; }
.alloc-donut::before{ content:''; position:absolute; inset:4%; border-radius:50%; pointer-events:none;
  opacity:.45; filter:blur(40px);
  background:
    radial-gradient(60% 60% at 28% 30%, var(--bloom-3), transparent 70%),
    radial-gradient(60% 60% at 72% 34%, var(--bloom-1), transparent 70%),
    radial-gradient(60% 60% at 50% 82%, var(--bloom-5), transparent 70%); }
.alloc-donut > *{ position:relative; z-index:1; }
.alloc-hero{ text-align:center; }
.alloc-hero .big{ font-family:var(--display); font-weight:600; font-size:clamp(44px,5.6vw,72px);
  line-height:1; letter-spacing:-.025em; color:var(--accent-ink); text-shadow:0 0 56px rgba(47,214,139,.4); }
.alloc-hero .cap{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-3); margin-top:12px; }

/* unlock schedule */
.sched{ display:grid; gap:12px; }
.sched-row{ display:grid; grid-template-columns:210px 1fr 96px; gap:16px; align-items:center; }
.sched-row > *{ min-width:0; }   /* grid items default to min-width:auto and push the row wide */
.sched-lab{ display:flex; align-items:center; gap:10px; font-size:14px; color:var(--ink-2);
  min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sched-lab i{ width:9px; height:9px; border-radius:2px; flex:none; }
.sched-track{ position:relative; height:10px; border-radius:2px; background:rgba(255,255,255,.05); }
.sched-bar{ position:absolute; top:0; bottom:0; border-radius:2px; opacity:.85; }
.sched-tge{ position:absolute; left:0; top:-2px; width:3px; height:14px; border-radius:1px; }
.sched-when{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--ink-3); text-align:right; }
.sched-axis{ display:grid; grid-template-columns:210px 1fr; gap:16px; margin-top:6px; }
.sched-axis span{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; color:var(--ink-3); }
.sched-axis span:first-child{ visibility:hidden; }
.sched-axis{ display:flex; justify-content:space-between; padding-left:226px; padding-right:112px; }

/* launch sequence */
.lsteps{ display:grid; gap:0; }
.lstep{ display:grid; grid-template-columns:64px 1fr; gap:22px; padding:26px 0; border-top:1px solid var(--line); }
.lstep:first-child{ border-top:0; }
.lstep-n{ font-family:var(--display); font-weight:600; font-size:34px; line-height:1; color:var(--line-2); }
.lstep.done .lstep-n{ color:var(--accent); }
.lstep.live .lstep-n{ color:var(--gold-2); }
.lstep-top{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.lstep p{ margin:10px 0 0; font-size:15px; color:var(--ink-2); max-width:72ch; }
.lstep-when{ display:inline-block; margin-top:12px; font-family:var(--mono); font-size:10.5px;
  letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3); }

/* contract facts */
.facts{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.fact{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:16px 20px; background:var(--surface); }
.fact-k{ font-size:14px; color:var(--ink-2); }
.fact-v{ font-family:var(--mono); font-size:12.5px; letter-spacing:.04em; text-align:right; }
.fact-v.ok{ color:var(--accent-ink); }
.fact-v.pending{ color:var(--gold-2); }

@media (max-width:980px){
  .alloc-split{ grid-template-columns:1fr; gap:28px; }
  .sched-row{ grid-template-columns:130px 1fr 74px; gap:10px; }
  .sched-lab{ font-size:12.5px; }
  .sched-axis{ padding-left:140px; padding-right:84px; }
  .facts{ grid-template-columns:1fr; }
  .lstep{ grid-template-columns:44px 1fr; gap:14px; }
  .lstep-n{ font-size:26px; }
}
/* below this the three column row cannot hold, so the track drops to its
   own line under the label */
@media (max-width:620px){
  .sched-row{ grid-template-columns:1fr auto;
    grid-template-areas:"lab when" "track track"; gap:7px 12px; }
  .sched-lab{ grid-area:lab; white-space:normal; }
  .sched-when{ grid-area:when; }
  .sched-track{ grid-area:track; }
  .sched{ gap:20px; }
  .sched-axis{ padding:0; }
}

/* =========================================================
   FACTSHEET
   Deliberately styled like an ETF fact sheet: a dense
   specification grid, mono keys, hairline rules, sharp
   corners. Restraint is the institutional signal.
   ========================================================= */
.fsheet{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.fs-item{ background:var(--surface); padding:20px 22px; min-width:0; }
.fs-k{ font-family:var(--mono); font-size:9.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-3); }
.fs-v{ font-size:16px; font-weight:550; margin-top:9px; letter-spacing:-.005em; line-height:1.3;
  display:flex; align-items:center; gap:8px; }
.fs-v img{ width:14px; height:14px; flex:none; }
.fs-n{ font-size:12.5px; color:var(--ink-3); margin-top:6px; line-height:1.5; }
@media (max-width:980px){ .fsheet{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .fsheet{ grid-template-columns:1fr; } }

/* shared bullet list for the audience and launch cards */
.aud-list{ margin:18px 0 0; padding:0; list-style:none; display:grid; gap:13px; }
.aud-list li{ font-size:14.5px; color:var(--ink-2); padding-left:24px; position:relative; line-height:1.55; }
.aud-list li::before{ content:''; position:absolute; left:0; top:8px; width:11px; height:2px;
  background:var(--accent); box-shadow:0 0 10px var(--accent); }
.aud-list.warn li::before{ background:var(--gold-2); box-shadow:0 0 10px rgba(224,180,92,.7); }

/* =========================================================
   SUPPLY POLICY
   ========================================================= */
.rules{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--r-dat); overflow:hidden; }
.rule{ background:var(--surface); padding:22px 24px; }
/* an odd number of rules would otherwise leave a dead cell */
.rule:last-child:nth-child(odd){ grid-column:1 / -1; }
.rule-k{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent-ink); }
.rule-v{ font-size:14.5px; color:var(--ink-2); margin-top:10px; line-height:1.55; }

.gates{ display:grid; gap:2px; }
.gate{ display:grid; grid-template-columns:170px 1fr 96px; gap:18px; align-items:center;
  padding:18px 22px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-dat); }
.gate > *{ min-width:0; }
.gate-cap{ font-family:var(--display); font-weight:600; font-size:22px; letter-spacing:-.02em; }
.gate-bar{ height:8px; border-radius:2px; background:rgba(255,255,255,.06); overflow:hidden; }
.gate-bar i{ display:block; height:100%; width:0; border-radius:2px;
  background:linear-gradient(90deg,var(--accent),var(--gold-2)); transition:width .9s var(--ez); }
.gate-pct{ font-family:var(--mono); font-size:12.5px; text-align:right; color:var(--accent-ink); }
.gate-note{ grid-column:1 / -1; font-size:13px; color:var(--ink-3); margin-top:-4px; }
@media (max-width:820px){
  .rules{ grid-template-columns:1fr; }
  .gate{ grid-template-columns:1fr auto; gap:10px 14px; }
  .gate-bar{ grid-column:1 / -1; order:3; }
  .gate-note{ order:4; }
}
.sched-vote{ font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-3); line-height:10px; }

/* the buy CTA before there is anything to buy */
.btn.is-soon{ cursor:default; }
.btn.is-soon:hover{ transform:none; }
.btn-primary.is-soon{ background:transparent; border-color:var(--gold-2); color:var(--gold-2); }
.btn-primary.is-soon:hover{ background:rgba(224,180,92,.08); border-color:var(--gold-2); }

/* =========================================================
   TREASURY RESERVE TRACKER
   A factsheet panel, not a hero. The number is large enough to read at a
   glance and nothing else competes with it: no accent wash, no glow.
   ========================================================= */
.reserve{ position:relative; overflow:hidden; padding:30px 32px;
  border:1px solid var(--line-2); border-radius:var(--r-lg); background:var(--surface); }
.reserve::before{ content:''; position:absolute; inset:auto -10% -70% 30%; height:120%; pointer-events:none;
  opacity:.16; filter:blur(70px);
  background:
    radial-gradient(40% 70% at 30% 60%, var(--bloom-2), transparent 70%),
    radial-gradient(40% 70% at 78% 58%, var(--bloom-4), transparent 70%); }
.reserve > *{ position:relative; z-index:1; }

.res-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:28px; flex-wrap:wrap; }
.res-k{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }
.res-big{ font-family:var(--display); font-weight:600; font-size:clamp(30px,3.4vw,40px); line-height:1;
  letter-spacing:-.02em; margin-top:11px; }
.res-big span{ font-size:.5em; color:var(--ink-3); letter-spacing:0; }
.res-sub{ font-size:14px; color:var(--ink-2); margin-top:9px; }
.res-lockpct{ text-align:right; }
.res-lockpct b{ display:block; font-family:var(--display); font-weight:600; font-size:clamp(26px,2.8vw,32px);
  line-height:1; letter-spacing:-.02em; color:var(--ink); }
.res-lockpct span{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }

.res-bar{ height:6px; border-radius:2px; background:rgba(255,255,255,.06); overflow:hidden; margin:24px 0 22px; }
.res-bar i{ display:block; height:100%; border-radius:2px;
  background:linear-gradient(90deg,rgba(47,214,139,.55),rgba(31,182,214,.55));
  transition:width 1.1s var(--ez); }

.res-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--r-dat); overflow:hidden; }
.res-grid > div{ background:rgba(9,13,14,.55); padding:15px 17px; min-width:0; }
.res-grid .k{ display:block; font-family:var(--mono); font-size:9.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-3); }
.res-grid b{ display:block; font-family:var(--mono); font-size:14.5px; font-weight:500; margin-top:8px; }

.res-chips{ list-style:none; margin:20px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.res-chips li{ font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; color:var(--ink-3);
  padding:7px 11px; border:1px solid var(--line-2); border-radius:3px; }

@media (max-width:820px){
  .reserve{ padding:24px; }
  .res-grid{ grid-template-columns:repeat(2,1fr); }
  .res-lockpct{ text-align:left; }
}
