/* Heptad — star-chart theme. Light is "chart paper", dark is "night sky". Every colour is a token. */
@font-face{font-family:'Instrument Serif';src:url(fonts/instrument-serif-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url(fonts/instrument-serif-latin-400-italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Onest';src:url(fonts/onest-latin-wght-normal.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url(fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}

:root{
  --paper:#EDF0F7; --panel:#FAFBFE; --sunk:#E2E7F2; --ink:#0F1A35; --ink2:#55617F; --rule:#C9D1E3;
  --accent:#2B3FE0; --on-accent:#FFFFFF; --wash:rgba(43,63,224,.07); --gold:#9A6407;
  --up:#12805C; --down:#C23B4E; --warn-bg:#FFF3D6; --warn-ink:#6B4700;
  --c-eth:#6F86F0; --c-base:#1F5BFF; --c-bsc:#E8B50C; --c-hood:#9AD400; --c-arb:#1FA4E8; --c-ink:#8A4DF2; --c-xl:#2B2F3A;
  --s-creator:#2B3FE0; --s-holders:#0FA08A; --s-burn:#E2562B; --s-pool:#D9A21C; --s-platform:#8A93AB; --s-fly:#A33CCB;
  --serif:'Instrument Serif','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --sans:'Onest',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:12px; --gut:clamp(16px,4vw,40px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#070B18; --panel:#0E1530; --sunk:#0A1026; --ink:#E6ECFF; --ink2:#8E9AC0; --rule:#222C4E;
  --accent:#8493FF; --on-accent:#070B18; --wash:rgba(132,147,255,.09); --gold:#F2B544;
  --up:#3DD6A0; --down:#FF7088; --warn-bg:#2B2210; --warn-ink:#F2D58C; --c-xl:#C9CFDD;
  --s-creator:#8493FF; --s-holders:#2BD1B6; --s-burn:#FF7F55; --s-pool:#F2C24D; --s-platform:#7F89A8; --s-fly:#C779EE;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#070B18; --panel:#0E1530; --sunk:#0A1026; --ink:#E6ECFF; --ink2:#8E9AC0; --rule:#222C4E;
  --accent:#8493FF; --on-accent:#070B18; --wash:rgba(132,147,255,.09); --gold:#F2B544;
  --up:#3DD6A0; --down:#FF7088; --warn-bg:#2B2210; --warn-ink:#F2D58C; --c-xl:#C9CFDD;
  --s-creator:#8493FF; --s-holders:#2BD1B6; --s-burn:#FF7F55; --s-pool:#F2C24D; --s-platform:#7F89A8; --s-fly:#C779EE;
  color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.55 var(--sans);font-variant-numeric:tabular-nums;min-height:100vh;overflow-x:hidden}
img,svg,canvas{max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;text-wrap:balance}
p{text-wrap:pretty}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 12px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
.wrap{width:100%;max-width:1240px;margin-inline:auto;padding-inline:var(--gut)}
.mono{font-family:var(--mono);font-size:.86em;letter-spacing:-.01em}
.dim{color:var(--ink2)}
.up{color:var(--up)} .down{color:var(--down)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* watermark: the Heptad mark, huge, behind everything */
.wm{position:fixed;right:-14vw;top:6vh;width:min(86vw,980px);aspect-ratio:1;z-index:0;pointer-events:none;opacity:.6}
.wm path{fill:none;stroke:var(--rule);stroke-width:1.4;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.wm circle{fill:var(--rule)}
.wm .ring{fill:none;stroke:var(--rule);stroke-width:1;stroke-dasharray:2 7;vector-effect:non-scaling-stroke}
body>*:not(.wm){position:relative;z-index:1}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--paper) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.top .wrap{display:flex;align-items:center;gap:20px;height:60px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:400 26px/1 var(--serif);letter-spacing:-.01em}
.brand svg{width:30px;height:30px}
.nav{display:flex;gap:2px;margin-left:12px;overflow-x:auto;scrollbar-width:none}
.nav a{padding:8px 12px;text-decoration:none;color:var(--ink2);font-weight:500;font-size:14px;border-radius:8px;white-space:nowrap}
.nav a:hover{color:var(--ink);background:var(--wash)}
.nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);border-radius:0}
.tools{margin-left:auto;display:flex;align-items:center;gap:8px}
.ib{width:38px;height:38px;border-radius:10px;border:1px solid var(--rule);background:transparent;cursor:pointer;display:grid;place-items:center}
.ib:hover{background:var(--wash)}
.ib svg{width:18px;height:18px}

/* buttons and inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:10px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;line-height:1.2}
.btn:hover{filter:brightness(1.08)}
.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;filter:none}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.btn.ghost:hover{background:var(--wash);border-color:var(--ink2)}
#cw{white-space:nowrap}
.btn.sm{padding:7px 12px;font-size:13px;border-radius:8px}
.btn.wide{width:100%}
.btn.down-btn{background:var(--down);border-color:var(--down);color:#fff}
.in,.sel,.ta{width:100%;padding:11px 13px;border:1px solid var(--rule);border-radius:10px;background:color-mix(in srgb,var(--panel) 90%,transparent);outline:none}
.in:focus,.sel:focus,.ta:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--wash)}
.ta{min-height:92px;resize:vertical}
.fld{display:grid;gap:6px;align-content:start}
.fld>label,.lab{font-size:13px;font-weight:600;color:var(--ink)}
.hint{font-size:12.5px;color:var(--ink2)}
.err{font-size:13px;color:var(--down)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.grow{flex:1;min-width:0}
.chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid var(--rule);background:transparent;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--ink2)}
.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cd{width:10px;height:10px;border-radius:50%;background:var(--c,var(--ink2));display:inline-block;flex:none}
.cd.off{background:transparent;box-shadow:inset 0 0 0 1.5px var(--rule)}

/* page frame */
.page{padding-block:34px 70px;min-height:70vh}
.page>.wrap>div>*+*{margin-top:56px}
.h-page{font-size:clamp(40px,6vw,68px);line-height:1}
.h-sec{font-size:clamp(28px,3.4vw,40px);line-height:1.05}
.lead{font-size:17px;color:var(--ink2);max-width:60ch}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.sec-head p{color:var(--ink2);max-width:56ch;margin-top:6px}
.panel{background:color-mix(in srgb,var(--panel) 84%,transparent);border:1px solid var(--rule);border-radius:var(--r);padding:20px}
.panel.flat{background:transparent}
.rule-t{border-top:1px solid var(--rule)}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;align-items:center;padding-block:10px 0}
.hero h1{font-size:clamp(52px,9vw,116px);line-height:.9;letter-spacing:-.025em}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero .lead{margin-top:22px;font-size:18px}
.hero .cta{margin-top:28px}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:36px;border-top:1px solid var(--rule)}
.facts div{padding:14px 16px 0 0}
.facts b{display:block;font:400 34px/1 var(--serif)}
.facts span{font-size:13px;color:var(--ink2)}
.dial{width:100%;max-width:620px;margin-inline:auto;position:relative}
.dial svg{width:100%;height:auto;display:block;overflow:visible}
.dial .orb{fill:none;stroke:var(--rule);stroke-width:1}
.dial .tick{stroke:var(--rule);stroke-width:1}
.dial .gram{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.dial .star{cursor:pointer}
.dial .star circle.core{fill:var(--c)}
.dial .star circle.halo{fill:var(--c);opacity:.16}
.dial .star text{font:600 17px var(--sans);fill:var(--ink)}
.dial .star text.sub{font:500 14px var(--sans);fill:var(--ink2)}
.dial .star:hover circle.halo,.dial .star:focus circle.halo{opacity:.34}
.dial .mid{font:400 64px var(--serif);fill:var(--ink);text-anchor:middle}
.dial .mid-s{font:500 15px var(--sans);fill:var(--ink2);text-anchor:middle}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes rise{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.dial .gram{animation:draw 1.8s .15s cubic-bezier(.6,0,.2,1) both}
.dial .star circle.core{transform-box:fill-box;transform-origin:center;animation:rise .5s both}
.dial .star:nth-child(1) circle.core{animation-delay:.1s}.dial .star:nth-child(2) circle.core{animation-delay:.35s}.dial .star:nth-child(3) circle.core{animation-delay:.6s}
.dial .star:nth-child(4) circle.core{animation-delay:.85s}.dial .star:nth-child(5) circle.core{animation-delay:1.1s}.dial .star:nth-child(6) circle.core{animation-delay:1.35s}.dial .star:nth-child(7) circle.core{animation-delay:1.6s}
@media (prefers-reduced-motion:reduce){.dial .gram,.dial .star circle.core{animation:none}html{scroll-behavior:auto}}

/* tax anatomy */
.anat{display:grid;gap:18px}
.bar{display:flex;height:46px;border-radius:10px;overflow:hidden;border:1px solid var(--rule)}
.bar>i{display:flex;align-items:center;justify-content:center;font:600 12px var(--sans);font-style:normal;color:#fff;min-width:0;overflow:hidden;white-space:nowrap}
.bar>i[data-k=fly]{background:var(--s-fly)}.bar>i[data-k=platform]{background:var(--s-platform)}.bar>i[data-k=side]{background:var(--wash);color:var(--ink)}
.sbar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--sunk);min-width:70px}
.sbar>i{display:block;height:100%}
.sbar>i[data-k=creator],.sw[data-k=creator]{background:var(--s-creator)}
.sbar>i[data-k=holders],.sw[data-k=holders]{background:var(--s-holders)}
.sbar>i[data-k=burn],.sw[data-k=burn]{background:var(--s-burn)}
.sbar>i[data-k=pool],.sw[data-k=pool]{background:var(--s-pool)}
.sbar>i[data-k=platform],.sw[data-k=platform]{background:var(--s-platform)}
.sbar>i[data-k=fly],.sw[data-k=fly]{background:var(--s-fly)}
.sw{width:11px;height:11px;border-radius:3px;display:inline-block;flex:none}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px 24px}
.legend div{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center}
.legend b{font-weight:600}.legend span.d{grid-column:2;font-size:13px;color:var(--ink2)}
.paid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;border-top:1px solid var(--rule)}
.paid div{padding:14px 18px 0 0}.paid b{display:block;font:400 30px/1.1 var(--serif)}.paid span{font-size:13px;color:var(--ink2)}

/* official token card */
.official{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:28px;border:1px solid var(--ink);border-radius:var(--r);padding:26px;background:color-mix(in srgb,var(--panel) 80%,transparent)}
.official h3{font-size:34px;line-height:1.05}
.official .ca{display:grid;gap:0}
.ca .r{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--rule);font-size:13.5px}
.ca .r:last-child{border-bottom:0}
.ca .r .n{display:flex;align-items:center;gap:8px;font-weight:600}
.ca .r .a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pending{color:var(--ink2);font-style:italic}

/* lists */
.lh,.cr{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(0,1.1fr) minmax(0,1.1fr) 92px 92px 92px 70px;gap:14px;align-items:center}
.lh{padding:0 14px 10px;font-size:12.5px;color:var(--ink2);border-bottom:1px solid var(--ink)}
.lh button{all:unset;cursor:pointer}.lh button:hover{color:var(--ink)}
.cr{padding:13px 14px;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit}
.cr:hover{background:var(--wash)}
.cr .nm{display:flex;align-items:center;gap:12px;min-width:0}
.cr .nm b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr .nm small{color:var(--ink2);font-size:12.5px}
.cr .num{text-align:right}.lh .num{text-align:right}
.dots{display:flex;gap:4px;flex-wrap:wrap}
.av{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;font:400 20px/1 var(--serif);color:#fff;background:var(--ink2) center/cover no-repeat;overflow:hidden}
.av.lg{width:72px;height:72px;font-size:34px}
.empty{padding:40px 14px;text-align:center;color:var(--ink2)}
.empty b{display:block;color:var(--ink);font:400 26px var(--serif);margin-bottom:6px}

/* tables (trades, chains) */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-weight:500;color:var(--ink2);font-size:12.5px;padding:0 10px 9px;border-bottom:1px solid var(--ink);white-space:nowrap}
.tbl td{padding:10px;border-bottom:1px solid var(--rule);white-space:nowrap}
.tbl .r{text-align:right}
.scroll{overflow-x:auto}

/* coin page */
.coin-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.coin-head h1{font-size:clamp(34px,5vw,56px);line-height:1}
.coin-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}
.stack>*+*{margin-top:18px}
.chart{height:380px;position:relative}
.chart canvas{width:100%;height:100%;display:block}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.chainrow{display:flex;gap:8px;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--rule);border-radius:10px;overflow:hidden}
.seg button{border:0;background:transparent;padding:8px 14px;cursor:pointer;font-weight:600;font-size:13.5px}
.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.kv{display:grid;gap:0}
.kv div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:14px}
.kv div:last-child{border-bottom:0}.kv span:first-child{color:var(--ink2)}
.ring-wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.donut{width:132px;height:132px;flex:none}
.note{background:var(--warn-bg);color:var(--warn-ink);padding:11px 14px;border-radius:10px;font-size:13.5px}
.note.info{background:var(--wash);color:var(--ink)}
.addr{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.addr button{border:0;background:none;cursor:pointer;color:var(--ink2);padding:2px;display:grid}
.addr button:hover{color:var(--accent)}
.addr svg{width:15px;height:15px}

/* launch */
.launch{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:30px;align-items:start}
.sect{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 14px;padding-block:26px;border-top:1px solid var(--rule)}
.sect:first-child{border-top:0;padding-top:0}
.sect>.n{font:400 34px/1 var(--serif);color:var(--accent)}
.sect h3{font-size:26px;margin-bottom:4px}
.sect .body{display:grid;gap:16px;margin-top:14px;grid-column:2}
.sect .body.span{grid-column:1/-1}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.taxpick{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.taxpick button{padding:12px 0;border:1px solid var(--rule);border-radius:10px;background:transparent;font-weight:600;cursor:pointer}
.taxpick button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.splitter{position:relative;height:54px;border-radius:12px;overflow:hidden;border:1px solid var(--rule);display:flex;touch-action:none;user-select:none}
.splitter>i{display:flex;align-items:center;justify-content:center;font:600 12px var(--sans);font-style:normal;color:#fff;min-width:0;overflow:hidden}
.splitter>i[data-k=creator]{background:var(--s-creator)}.splitter>i[data-k=holders]{background:var(--s-holders)}
.splitter>i[data-k=burn]{background:var(--s-burn)}.splitter>i[data-k=pool]{background:var(--s-pool);color:#1b1500}
.splitter .grip{position:absolute;top:0;bottom:0;width:22px;margin-left:-11px;cursor:ew-resize;display:grid;place-items:center}
.splitter .grip::after{content:"";width:4px;height:26px;border-radius:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.sp-inputs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sp-inputs .fld label{display:flex;align-items:center;gap:6px}
.presets{display:flex;gap:8px;flex-wrap:wrap}
.drop{border:1.5px dashed var(--rule);border-radius:12px;padding:16px;display:flex;gap:14px;align-items:center;cursor:pointer;background:transparent;width:100%;text-align:left}
.drop:hover{border-color:var(--accent)}
.sticky{position:sticky;top:78px}
.sum h4{font:400 24px var(--serif);margin-bottom:10px}
.cost{display:grid;gap:0;margin-top:14px}
.cost div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--rule);font-size:14px}
.cost div.t{border-bottom:0;font-weight:700;font-size:16px;padding-top:12px}
.track{display:grid;gap:0}
.track div{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--rule);font-size:13.5px}
.track .st{font-size:12.5px;color:var(--ink2)}.track .st.ok{color:var(--up)}.track .st.bad{color:var(--down)}

/* bridge + misc */
.bridge{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:end}
.swap{width:42px;height:42px;border-radius:50%;border:1px solid var(--rule);background:var(--panel);cursor:pointer;font-size:18px}
.swap:hover{background:var(--wash)}
.bal{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink2)}
.link-btn{border:0;background:none;color:var(--accent);cursor:pointer;font-weight:600;padding:0}

/* guide */
.guide{display:grid;grid-template-columns:220px minmax(0,1fr);gap:46px;align-items:start}
.toc{position:sticky;top:84px;display:grid;gap:2px;font-size:14px}
.toc a{padding:6px 10px;text-decoration:none;color:var(--ink2);border-left:2px solid var(--rule)}
.toc a:hover{color:var(--ink);border-color:var(--accent)}
.prose{max-width:70ch}
.prose h2{font-size:34px;margin:50px 0 12px;scroll-margin-top:84px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:var(--ink);line-height:1.7}
.prose p+p,.prose p+ul,.prose ul+p{margin-top:12px}
.prose ul{padding-left:20px;margin:0}
.prose li+li{margin-top:6px}
.prose table{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px}
.prose th,.prose td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
.prose th{border-bottom-color:var(--ink);font-weight:600}
.faq details{border-bottom:1px solid var(--rule);padding:14px 0}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:"+";color:var(--accent);font-size:20px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{margin-top:8px;color:var(--ink2)}

/* toast + modal + footer */
.toasts{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:grid;gap:8px;z-index:60;width:min(92vw,420px)}
.toast{background:var(--ink);color:var(--paper);padding:11px 15px;border-radius:10px;font-size:14px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.scrim{position:fixed;inset:0;background:rgba(5,8,20,.55);display:grid;place-items:center;z-index:50;padding:16px}
.dlg{background:var(--panel);border:1px solid var(--rule);border-radius:16px;padding:24px;width:min(100%,460px);max-height:88vh;overflow:auto}
.dlg h3{font-size:30px;margin-bottom:8px}
.foot{border-top:1px solid var(--rule);padding-block:30px 40px;color:var(--ink2);font-size:13.5px}
.foot .wrap{display:flex;gap:18px 30px;flex-wrap:wrap;justify-content:space-between;align-items:center}
.foot a{text-decoration:none}.foot a:hover{color:var(--ink)}
.skel{background:linear-gradient(90deg,var(--sunk),var(--wash),var(--sunk));background-size:200% 100%;border-radius:8px;animation:sk 1.4s infinite linear;min-height:18px}
@keyframes sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}

/* responsive */
@media (max-width:1020px){
  .hero{grid-template-columns:1fr}.dial{max-width:480px}
  .coin-grid,.launch,.guide{grid-template-columns:1fr}.sticky,.toc{position:static}.toc{display:flex;flex-wrap:wrap;gap:6px}.toc a{border:1px solid var(--rule);border-radius:999px}
  .official{grid-template-columns:1fr}
  .lh{display:none}
  .cr{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px}
  .cr .nm{grid-column:1/-1}.cr .num{text-align:left}.cr .hide-s{display:none}
}
@media (max-width:640px){
  .top .wrap{height:56px;gap:10px}.nav{margin-left:0}.brand span{display:none}
  .page{padding-block:22px 56px}.page>.wrap>div>*+*{margin-top:40px}
  .facts b{font-size:28px}.two,.sp-inputs{grid-template-columns:1fr 1fr}.bridge{grid-template-columns:1fr}.swap{justify-self:center}
  .taxpick{grid-template-columns:repeat(5,minmax(0,1fr))}.sect{grid-template-columns:30px minmax(0,1fr)}
  .ca .r{grid-template-columns:1fr auto}.ca .r .a{grid-column:1/-1;grid-row:2}
  .chart{height:300px}
}

/* ---------- live layer ---------- */
.tick{overflow:hidden;border-bottom:1px solid var(--rule);background:var(--sunk);font-size:13px}
.tick-track{display:flex;width:max-content;animation:tickmove calc(var(--n,12)*5s) linear infinite}
.tick:hover .tick-track,.tick:focus-within .tick-track{animation-play-state:paused}
.tick-track .ti{display:inline-flex;gap:8px;align-items:baseline;padding:7px 18px;text-decoration:none;color:var(--ink);white-space:nowrap;border-radius:6px}
.tick-track .ti .p{font-family:var(--mono);font-size:12.5px}
@keyframes tickmove{to{transform:translateX(-50%)}}
.fl-up{animation:flup 1.2s ease-out}.fl-down{animation:fldn 1.2s ease-out}
@keyframes flup{0%{background:color-mix(in srgb,var(--up) 30%,transparent)}100%{background:transparent}}
@keyframes fldn{0%{background:color-mix(in srgb,var(--down) 30%,transparent)}100%{background:transparent}}
.livedot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--up);margin-left:6px;vertical-align:middle;animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--up) 55%,transparent)}100%{box-shadow:0 0 0 9px transparent}}
.tape-list{display:grid;gap:2px;min-height:60px}
.ev{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--ink)}
.ev:hover{background:var(--wash)}.ev .tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev .ag{font-size:12px}
.ev.in{animation:evin .6s ease-out}.ev.launch{box-shadow:inset 3px 0 0 var(--accent)}
@keyframes evin{from{opacity:0;transform:translateY(-10px);background:var(--wash)}to{opacity:1;transform:none}}
.spark{width:64px;height:22px;display:inline-block;vertical-align:middle;margin-right:8px}
.spark polyline{fill:none;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.spark .sp-up{stroke:var(--up)}.spark .sp-down{stroke:var(--down)}
.chg{display:flex;align-items:center;justify-content:flex-end}
.presets .sm{padding:5px 12px;font-size:12.5px}
.impact{display:grid;gap:4px}.impact .bar{height:5px;border-radius:3px;background:var(--sunk);overflow:hidden}
.impact .bar i{display:block;height:100%;width:0;background:var(--up);transition:width .25s}
.impact[data-lvl=mid] .bar i{background:var(--gold)}.impact[data-lvl=high] .bar i{background:var(--down)}
.flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.flow .cell{display:grid;gap:6px;justify-items:center;text-align:center;font-size:12px}
.flow .tank{position:relative;width:100%;max-width:52px;height:96px;border:1px solid var(--rule);border-radius:8px;background:var(--sunk);overflow:hidden}
.flow .fill{position:absolute;left:0;right:0;bottom:0;height:0;background:var(--accent);transition:height .8s cubic-bezier(.2,.8,.2,1)}
.flow .tank[data-k=fly] .fill{background:var(--s-fly)}.flow .tank[data-k=platform] .fill{background:var(--s-platform)}.flow .tank[data-k=creator] .fill{background:var(--s-creator)}
.flow .tank[data-k=holders] .fill{background:var(--s-holders)}.flow .tank[data-k=burn] .fill{background:var(--s-burn)}.flow .tank[data-k=pool] .fill{background:var(--s-pool)}
.flow .drop{position:absolute;top:-8px;left:calc(50% - 3px);width:6px;height:10px;border-radius:50%;background:var(--ink);animation:drip 1s ease-in forwards}
@keyframes drip{to{top:70%;opacity:0}}
.flow .lb{display:flex;align-items:center;gap:5px}.flow .sw{width:8px;height:8px;border-radius:2px;background:var(--accent)}
.flow .sw[data-k=fly]{background:var(--s-fly)}.flow .sw[data-k=platform]{background:var(--s-platform)}.flow .sw[data-k=creator]{background:var(--s-creator)}.flow .sw[data-k=holders]{background:var(--s-holders)}.flow .sw[data-k=burn]{background:var(--s-burn)}.flow .sw[data-k=pool]{background:var(--s-pool)}
.flow .cell b{font-family:var(--mono);font-size:12px;font-weight:500;overflow-wrap:anywhere}
@media(max-width:560px){.flow{grid-template-columns:repeat(3,minmax(0,1fr))}}
.fanwrap{max-width:320px;margin-inline:auto}.fan{width:100%;height:auto}
.fan .ln{stroke:var(--rule);stroke-width:1.2;stroke-dasharray:3 4}.fan .ln.busy{stroke:var(--accent);animation:dash 1s linear infinite}.fan .ln.done{stroke:var(--up);stroke-dasharray:none}.fan .ln.bad{stroke:var(--down)}
@keyframes dash{to{stroke-dashoffset:-14}}
.fan .halo{fill:none;stroke:var(--c,var(--accent));opacity:.25}.fan .core{fill:var(--sunk);stroke:var(--c,var(--accent));stroke-width:2}
.fan .nd.busy .halo{animation:pulse2 1.2s ease-out infinite}.fan .nd.done .core{fill:var(--c,var(--accent))}.fan .nd.bad .core{fill:var(--down)}
@keyframes pulse2{from{r:8;opacity:.6}to{r:17;opacity:0}}
.fan text{fill:var(--ink2);font:500 10px var(--sans)}.fan .ct{fill:var(--ink);font:400 22px var(--serif)}
@media (prefers-reduced-motion:reduce){.tick-track,.livedot,.fan .ln.busy,.fan .nd.busy .halo{animation:none}.tick{overflow-x:auto}.fl-up,.fl-down,.ev.in{animation:none}.flow .fill,.impact .bar i{transition:none}}
.coin-grid>*,.stack,.panel{min-width:0}
