:root{
  --void:#02070A; --deep:#061218; --glass:rgba(8,28,34,.58); --glass-hi:rgba(14,44,52,.72);
  --line:rgba(110,235,225,.16); --line-hi:rgba(110,235,225,.42);
  --cyan:#3EE6E0; --mint:#8CFFC9; --teal:#13B5A6; --violet:#A595FF;
  --warn:#FFB65C; --danger:#FF6B7A; --text:#DDF7F4; --muted:#86AAA9; --faint:#4E6E6E;
  --display:"Michroma","Eurostile","Bank Gothic","Segoe UI",system-ui,sans-serif;
  --body:"Sora","Segoe UI",system-ui,-apple-system,sans-serif;
  color-scheme:dark;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --void:#02070A; --text:#DDF7F4; } }
:root[data-theme="dark"]{ --void:#02070A; --text:#DDF7F4; }
*,*::before,*::after{box-sizing:inherit}
html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px);background:var(--void)}
body{height:100%;margin:0;background:var(--void);color:var(--text);font-family:var(--body);font-size:15px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--mint);outline-offset:2px;border-radius:6px}
.num{font-variant-numeric:tabular-nums}
#bg{position:fixed;inset:0;width:100%;height:100%;z-index:0}
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse at 50% 45%,transparent 30%,rgba(0,0,0,.55) 100%)}

/* ---------- Boot ---------- */
#boot{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--void);transition:opacity .7s ease}
#boot.gone{opacity:0;pointer-events:none}
.boot-inner{display:grid;place-items:center;gap:28px;text-align:center}
.boot-ring{width:180px;height:180px}
.boot-ring circle{fill:none;stroke:var(--cyan);stroke-linecap:round}
.boot-title{font-family:var(--display);font-size:22px;letter-spacing:.32em;color:var(--text)}
.boot-log{font-size:13px;color:var(--muted);min-height:6em;line-height:1.7}
.boot-log span{display:block;opacity:0;transform:translateY(4px);transition:all .3s}
.boot-log span.on{opacity:1;transform:none}
.boot-skip{background:none;border:1px solid var(--line);border-radius:999px;padding:6px 16px;color:var(--muted);font-size:12px}

/* ---------- Shell ---------- */
.app{position:relative;z-index:2;height:100%;display:grid;grid-template-rows:auto 1fr;}
.top{display:flex;align-items:center;gap:18px;padding:14px 22px 0}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand svg{width:34px;height:34px}
.brand-name{font-family:var(--display);font-size:14px;letter-spacing:.24em}
/* Brand holograms (owner 2026-10-13: the Atlas logo and banner appear holographic, never with square edges).
   The art ships with brightness as transparency and feathered edges (scripts/brand_assets.py); here a scanline
   shimmer masked to the art's own shape, a soft blue glow and a slow flicker make it read as projected light. */
.holo-art{position:relative;display:inline-block;line-height:0}
.holo-art>img{display:block;width:100%;height:auto;filter:drop-shadow(0 0 12px rgba(64,150,255,.38))}
.holo-art::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;opacity:.75;
  background:repeating-linear-gradient(to bottom,rgba(170,215,255,.24) 0 1px,transparent 1px 3px);
  -webkit-mask:var(--holo-src) center/100% 100% no-repeat;mask:var(--holo-src) center/100% 100% no-repeat}
@media (prefers-reduced-motion: no-preference){
  .holo-art>img{animation:holoFlicker 5.5s steps(1) infinite}
  .holo-art::after{animation:holoDrift 1.2s linear infinite}}
.brand .brand-mark{width:40px;margin:-4px -4px -4px -6px}
.brand .brand-word{width:96px}
.boot-title .holo-art{width:min(415px,78vw)}
.cmd{flex:1;max-width:620px;margin:0 auto;position:relative}
.cmd input{width:100%;background:rgba(6,22,28,.7);border:1px solid var(--line);border-radius:999px;padding:11px 18px 11px 44px;font-size:14px;color:var(--text);backdrop-filter:blur(10px);transition:border-color .2s,box-shadow .2s}
.cmd input::placeholder{color:var(--faint)}
.cmd input:focus{outline:none;border-color:var(--line-hi);box-shadow:0 0 0 4px rgba(62,230,224,.08),0 0 30px rgba(62,230,224,.12)}
.cmd svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--cyan)}
.cmd kbd{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--faint);border:1px solid var(--line);border-radius:6px;padding:1px 6px}
.status{display:flex;align-items:center;gap:14px;flex:none;font-size:12px;color:var(--muted)}
.feed{display:flex;align-items:center;gap:8px;border:1px solid rgba(255,182,92,.3);background:rgba(255,182,92,.06);color:#FFD3A0;border-radius:999px;padding:5px 12px}
.feed i{width:7px;height:7px;border-radius:50%;background:var(--warn);box-shadow:0 0 8px var(--warn);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.35}}
.chainsel{background:rgba(6,22,28,.7);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12px}
.clock{font-variant-numeric:tabular-nums;color:var(--text);letter-spacing:.04em}

#stage{position:relative;overflow:hidden;min-height:0}
.view{position:absolute;inset:0;padding:18px 22px 104px;display:none;overflow:auto}
.view.active{display:block;animation:viewIn .5s cubic-bezier(.2,.8,.2,1)}
@keyframes viewIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}

/* ---------- Dock ---------- */
.dock{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:20;display:flex;gap:4px;padding:6px;border-radius:22px;background:rgba(6,20,26,.72);border:1px solid var(--line);backdrop-filter:blur(18px);box-shadow:0 20px 60px rgba(0,0,0,.6),inset 0 1px 0 rgba(140,255,230,.08)}
.dock button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:78px;padding:8px 10px 7px;border:0;border-radius:16px;background:none;color:var(--muted);font-size:11px;transition:color .2s,background .2s}
.dock button svg{width:20px;height:20px}
.dock button:hover{color:var(--text);background:rgba(62,230,224,.06)}
.dock button[aria-current="page"]{color:var(--void);background:linear-gradient(160deg,var(--mint),var(--cyan));box-shadow:0 0 24px rgba(62,230,224,.45)}
.dock .badge{position:absolute;top:4px;right:14px;min-width:16px;height:16px;border-radius:8px;background:var(--violet);color:#0a0a1a;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}

/* ---------- HUD panels ---------- */
.hud{position:relative;background:var(--glass);border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hud::before{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg,rgba(140,255,220,.35),transparent 22%,transparent 78%,rgba(165,149,255,.28));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:1px}
.hud-pad{padding:20px 22px}
h1,h2,h3{margin:0;font-weight:500}
.disp{font-family:var(--display);letter-spacing:.06em;line-height:1.15}
.k{font-size:12px;color:var(--muted)}
.v{font-size:15px;font-weight:500}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;border:1px solid var(--line);color:var(--text);white-space:nowrap}
.pill i{width:6px;height:6px;border-radius:50%;background:currentColor}
/* the dark color-scheme gives bare buttons a grey (#6b6b6b) face; a pill button is glass like the span pills */
button.pill{background:rgba(5,18,23,.5)}
.st-Accelerating{color:var(--mint);border-color:rgba(140,255,201,.4)}
.st-Emerging{color:var(--cyan);border-color:rgba(62,230,224,.4)}
.st-Stable{color:#B8D4D4}
.st-Cooling{color:var(--warn);border-color:rgba(255,182,92,.35)}
.st-Declining{color:var(--danger);border-color:rgba(255,107,122,.35)}
.st-Insufficient{color:var(--violet);border-color:rgba(165,149,255,.4)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:10px 16px;border:1px solid var(--line-hi);background:rgba(62,230,224,.08);color:var(--text);font-size:13px;font-weight:500;transition:background .2s,box-shadow .2s,transform .1s}
.btn:hover{background:rgba(62,230,224,.16);box-shadow:0 0 20px rgba(62,230,224,.18)}
.btn:active{transform:scale(.98)}
.btn.primary{background:linear-gradient(160deg,var(--mint),var(--cyan));color:#022;border:0;font-weight:600}
.btn.primary:hover{box-shadow:0 0 28px rgba(62,230,224,.5)}
.btn.ghost{border-color:var(--line);background:none}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn svg{width:16px;height:16px}
.note{font-size:12px;color:var(--muted);line-height:1.55}
.note.warn{color:#FFD3A0}
.divider{height:1px;background:var(--line);margin:16px 0}
.bar{height:6px;border-radius:3px;background:rgba(110,235,225,.1);overflow:hidden}
.bar>b{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--teal),var(--cyan))}
.list-clean{list-style:none;margin:0;padding:0}
.list-clean li{position:relative;padding-left:16px;margin:6px 0;font-size:13.5px;color:#C4E4E2}
.list-clean li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border:1px solid var(--cyan);transform:rotate(45deg)}
.list-clean.unk li::before{border-color:var(--violet)}
a{color:var(--cyan)}

/* ---------- Orbit scene ---------- */
.orbit{position:relative;height:100%;min-height:420px}
.orbit canvas{position:absolute;inset:0;width:100%;height:100%}
.orbit .core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;text-align:center;pointer-events:none;z-index:3}
.orbit .sats{position:absolute;inset:0}
.sat{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;padding:0;will-change:transform;transition:filter .2s}
.sat .orb{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;position:relative}
.sat .orb::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--line);transition:border-color .2s,inset .2s}
.sat:hover .orb::after,.sat:focus-visible .orb::after{border-color:var(--mint);inset:-9px}
.sat .lbl{font-size:12px;color:var(--text);white-space:nowrap;text-shadow:0 2px 10px #000}
.sat .sub{font-size:11px;color:var(--muted);margin-top:-4px}
.orbit.compact{height:auto;min-height:0}
.orbit.compact canvas{display:none}
.orbit.compact .core{position:relative;left:auto;top:auto;transform:none;margin:10px auto 18px}
.orbit.compact .sats{position:relative;display:flex;gap:14px;overflow-x:auto;padding:8px 2px 14px}
.orbit.compact .sat{position:relative;transform:none!important;opacity:1!important;flex:none}

/* ---------- Intelligence ---------- */
.intel{display:grid;grid-template-columns:minmax(300px,380px) 1fr minmax(280px,340px);gap:20px;height:100%;min-height:600px}
.intel>*,.emerg>*,.studio>*{min-width:0}
.intel-left,.intel-right{display:flex;flex-direction:column;gap:16px;min-height:0;overflow:auto;padding-bottom:6px}
.nar-title{font-family:var(--display);font-size:clamp(24px,2.6vw,34px);letter-spacing:.04em;line-height:1.12;margin:10px 0 12px}
.nar-explain{font-size:14.5px;color:#CBE9E6;max-width:60ch}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.metric .v{font-size:20px}
.catalyst{border-left:2px solid var(--violet);padding:4px 0 4px 12px;margin:14px 0}
.core-nar{width:min(270px,46vw);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 42%,rgba(62,230,224,.25),rgba(6,24,30,.2) 55%,transparent 70%)}
.core-nar .emblem{width:64%;height:64%}
.core-cap{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;color:var(--muted)}
.tok-row{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;border:1px solid transparent;background:none;width:100%;text-align:left;transition:background .2s,border-color .2s}
.tok-row:hover{background:rgba(62,230,224,.06);border-color:var(--line)}
.tok-row .meta{flex:1;min-width:0}
.tok-row .nm{font-size:14px;font-weight:500}
.tok-row .sm{font-size:12px;color:var(--muted)}
.chg-up{color:var(--mint)} .chg-dn{color:var(--danger)}
.spark{width:100%;height:70px;display:block}
.post{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:rgba(4,16,20,.5)}
.post-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.av{width:30px;height:30px;border-radius:50%;flex:none}
.post-h b{font-weight:500;font-size:13.5px}
.post-h span{font-size:12px;color:var(--muted)}
.post p{margin:0;font-size:13.5px;color:#CFEAE7}
.post-f{display:flex;gap:14px;margin-top:8px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.ai-sum{border:1px dashed rgba(165,149,255,.45);border-radius:14px;padding:12px 14px;background:rgba(165,149,255,.05)}
.ai-sum .k{color:var(--violet)}

/* ---------- Emerging ---------- */
.emerg{display:grid;grid-template-columns:1fr minmax(300px,380px);gap:20px;height:100%;min-height:600px}
.focus-tok{display:grid;place-items:center;gap:10px;text-align:center}
.focus-tok .big{width:min(190px,40vw);aspect-ratio:1;border-radius:50%;filter:drop-shadow(0 0 40px rgba(62,230,224,.35))}
.focus-name{font-family:var(--display);font-size:clamp(20px,2.2vw,28px);letter-spacing:.06em}
.chips{position:absolute;inset:0;pointer-events:none}
.chip{position:absolute;pointer-events:auto;background:var(--glass-hi);border:1px solid var(--line);border-radius:14px;padding:8px 12px;backdrop-filter:blur(10px);min-width:118px}
.chip .v{font-size:17px}
/* Holographic data panel */
.holo{position:relative;pointer-events:auto;width:min(440px,calc(100vw - 48px));margin-top:6px;padding:12px 16px 10px;border-radius:18px;text-align:left;overflow:hidden;
  background:linear-gradient(135deg,rgba(62,230,224,.12),rgba(154,108,255,.08) 55%,rgba(62,230,224,.05)),rgba(3,18,22,.62);
  backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(140,255,240,.26);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),inset 0 0 24px -12px var(--glow),0 0 30px -8px var(--glow),0 20px 44px -22px rgba(0,0,0,.85)}
.holo::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(200,255,250,.035) 0 1px,transparent 1px 3px)}
.holo::after{content:"";position:absolute;top:-60%;left:-70%;width:38%;height:220%;pointer-events:none;transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(190,255,250,.13),transparent);animation:holoSheen 7s ease-in-out infinite}
@keyframes holoSheen{0%,62%{left:-70%}100%{left:135%}}
.holo .hc{position:absolute;width:12px;height:12px;border:1.5px solid var(--glow);opacity:.75;pointer-events:none}
.holo .tl{top:6px;left:6px;border-right:0;border-bottom:0;border-radius:4px 0 0 0}.holo .tr{top:6px;right:6px;border-left:0;border-bottom:0;border-radius:0 4px 0 0}
.holo .bl{bottom:6px;left:6px;border-right:0;border-top:0;border-radius:0 0 0 4px}.holo .br{bottom:6px;right:6px;border-left:0;border-top:0;border-radius:0 0 4px 0}
.holo .htop{display:flex;align-items:center;gap:14px;margin-bottom:8px}
.holo .hprice{font-size:21px;font-family:var(--display);letter-spacing:.02em;text-shadow:0 0 14px var(--glow)}
.holo .hchg{display:grid;gap:2px;font-size:12px}
.holo .hspark{flex:1;min-width:0;opacity:.95}.holo .hspark svg{width:100%;height:36px;display:block}
.holo .hread{font-size:13px;color:#DDF7F4;margin-top:2px}
.holo .hgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 12px;padding-top:8px;border-top:1px solid rgba(140,255,240,.14)}
.holo .hk{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:rgba(190,235,230,.72)}
.holo .hv{font-size:15px;color:#F1FFFD;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.holo .hbs{height:4px;border-radius:3px;margin-top:9px;background:rgba(255,107,129,.55);overflow:hidden}.holo .hbs b{display:block;height:100%;background:linear-gradient(90deg,#3EE6E0,#8CFFC9)}
.holo .hfoot{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:11px;color:rgba(190,235,230,.7)}
.holo .hlead{all:unset;cursor:pointer;display:flex;align-items:center;gap:8px;width:100%;margin-top:9px;padding:6px 8px;border-radius:12px;background:rgba(62,230,224,.07);border:1px solid rgba(140,255,240,.16);font-size:12.5px;box-sizing:border-box}
.holo .hlead:hover,.holo .hlead:focus-visible{background:rgba(62,230,224,.14)}.holo .hlead span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:520px){.holo .hgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.holo .hspark{display:none}}
.art.story img{object-fit:cover}
img.av{object-fit:cover}
.post .pmedia{display:block;margin:8px 0 2px;border-radius:12px;overflow:hidden;border:1px solid var(--line);max-height:220px}
.post .pmedia img{display:block;width:100%;max-height:220px;object-fit:cover}
.post .pav{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none}
.score-ring{width:92px;height:92px;flex:none}

/* ---------- Discovery ---------- */
.disc-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
/* Discovery, X first */
.xfeed{margin-bottom:22px}
.xfeed-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.xfeed-h .disp{font-size:18px;letter-spacing:.14em;color:var(--cyan)}
.xfeed-h .btn{margin-left:auto}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px var(--mint);
  vertical-align:1px;animation:pulse 1.6s infinite}
.xstories{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.xstory{padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.xs-h{display:flex;gap:10px;align-items:center;text-align:left;background:none;border:0;color:inherit;padding:0;cursor:pointer;font:inherit}
.xs-h b{display:block;font-size:15px}
.xs-posts{display:flex;flex-direction:column;gap:8px}
.xpost{display:flex;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:rgba(6,22,28,.55);
  color:inherit;text-decoration:none;min-width:0}
.xpost:hover{border-color:var(--line-hi)}
.xpost .av{width:32px;height:32px;border-radius:50%;flex:none;object-fit:cover}
.xpost .xb{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.xpost .xh{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xpost .xt{font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.xpost .xm{width:100%;max-height:170px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}
.xs-coins{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.xwire-h{margin:16px 0 8px}
.xwire{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}
.xw{flex:0 0 300px;display:flex;flex-direction:column;gap:6px;scroll-snap-align:start}
.xw .pill{align-self:flex-start}
.xfeed-f{margin-top:12px}
.heat-row .heat-v{color:var(--cyan);font-weight:700}
.live-chart{margin-top:10px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#0b0f14;height:440px}
.live-chart iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:640px){.live-chart{height:360px}}
@media (max-width:640px){.xw{flex-basis:84vw}
  /* phones (2026-10-15): the six story cards stacked to ~3,700px and pushed the coins off the screen; they now
     swipe sideways like the live wire, so the coin wall starts within the first screen or two */
  .xstories{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:6px;scrollbar-width:none}
  .xstories::-webkit-scrollbar{display:none}
  .xstory{flex:0 0 86vw;scroll-snap-align:start}
  .xstory .xs-posts>:nth-child(n+2){display:none}
  .xpost .xt{-webkit-line-clamp:3}
  .xpost .xm{max-height:120px}
  .xfeed-h{flex-wrap:nowrap}
  .xfeed-h .disp{font-size:14px;letter-spacing:.1em}
  .xfeed-h>.k{display:none}}
.disc-bar input{flex:1;min-width:220px;background:rgba(6,22,28,.7);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.disc-bar input:focus{outline:none;border-color:var(--line-hi)}
.disc-bar select{background:rgba(6,22,28,.7);border:1px solid var(--line);border-radius:12px;padding:10px 12px;max-width:100%;min-width:0}
@media (max-width:640px){.disc-bar select{flex:1 1 40%}}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.tcard{text-align:left;padding:16px;border-radius:18px;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .2s;cursor:pointer;width:100%}
.tcard:hover,.tcard:focus-visible{transform:translateY(-4px) scale(1.01);border-color:var(--line-hi)}
.tcard .top-r{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.tcard .nm{font-weight:600;font-size:15px}
.tcard .row{display:flex;justify-content:space-between;font-size:13px;margin:4px 0}
.tcard .row span:first-child{color:var(--muted)}
.scanner{width:100%;border-collapse:collapse;font-size:13px}
.scanner th{text-align:left;font-weight:500;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.scanner td{padding:9px 10px;border-bottom:1px solid rgba(110,235,225,.07);white-space:nowrap}
.scanner tr:hover td{background:rgba(62,230,224,.05);cursor:pointer}
.scroll-x{overflow-x:auto}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:12px;padding:3px}
.seg button{border:0;background:none;padding:6px 12px;border-radius:9px;font-size:12.5px;color:var(--muted)}
.seg button[aria-pressed="true"]{background:rgba(62,230,224,.15);color:var(--text)}
.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.empty h3{font-family:var(--display);font-size:16px;color:var(--text);margin-bottom:8px;letter-spacing:.06em}
.fresh{font-size:11px;padding:2px 8px;border-radius:999px}
.fresh.ok{background:rgba(140,255,201,.12);color:var(--mint)}
.fresh.stale{background:rgba(255,182,92,.12);color:var(--warn)}

/* ---------- Social ---------- */
.social-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.col-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}
.col-h h3{font-size:15px;font-weight:600}
.col-stack{display:flex;flex-direction:column;gap:10px}

/* ---------- Watchlist ---------- */
.wl-item{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:16px 18px;margin-bottom:12px}
.chg-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.chg{font-size:12px;border-radius:8px;padding:3px 8px;background:rgba(165,149,255,.1);color:#D2CBFF}

/* ---------- Studio ---------- */
.studio{display:grid;grid-template-columns:1fr minmax(340px,440px);gap:20px;min-height:100%}
.snap{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:14px 18px;margin-bottom:18px}
.stage3d{position:relative;height:440px;perspective:1400px;display:flex;align-items:center;justify-content:center}
.ccard{position:absolute;width:min(300px,32%);height:400px;border-radius:24px;padding:18px;text-align:left;border:1px solid var(--line);
  background:linear-gradient(170deg,rgba(14,44,52,.86),rgba(4,14,18,.92));transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .5s,filter .5s,box-shadow .5s;display:flex;flex-direction:column;overflow:hidden}
.ccard .mascot{flex:1;min-height:0;display:grid;place-items:center;margin:-6px -6px 8px;border-radius:18px;position:relative;overflow:hidden}
.ccard .mascot svg{width:86%;height:100%}
.ccard .dir{font-size:12px;color:var(--muted)}
.ccard .cname{font-family:var(--display);font-size:17px;letter-spacing:.05em;margin:4px 0 2px;line-height:1.2}
.ccard .tick{font-size:13px;color:var(--cyan);font-weight:600}
.ccard .tag{font-size:13px;color:#C4E4E2;margin-top:6px;line-height:1.45}
.ccard.sel{box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 60px rgba(62,230,224,.22);border-color:var(--line-hi)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tabs button{background:none;border:0;padding:10px 12px;font-size:13px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--text);border-color:var(--cyan)}
.fld{margin-bottom:14px}
.fld .k{margin-bottom:4px}
.fld p{margin:0;font-size:14px;color:#D6EFEC;white-space:pre-wrap}
.palette{display:flex;gap:8px}
.palette i{width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.15)}
.refine{display:flex;gap:8px;margin-top:10px}
.refine input{flex:1;background:rgba(6,22,28,.7);border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:0}
.refine input:focus{outline:none;border-color:var(--line-hi)}
.qchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.anchor-coin{border:1px solid var(--line-hi);border-radius:16px;padding:12px 14px;background:linear-gradient(135deg,rgba(62,230,224,.08),rgba(6,22,28,.4))}
.anchor-coin .ac-row{display:flex;gap:12px;align-items:center;margin-top:8px}
.anchor-coin .ac-id{min-width:0}
.swatches{display:flex;gap:8px;justify-content:center;margin-top:6px}
.swatch{position:relative;width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.25);cursor:pointer;transition:transform .15s,border-color .15s}
.swatch:hover,.swatch:focus-within{transform:scale(1.15);border-color:var(--mint)}
.swatch input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}
.anchor-coin .ac-pick{margin-top:12px}
.ac-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.ac-chips .pill{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.anchor-coin .ac-stats{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;margin-top:4px;opacity:.85}
.qchips button{background:rgba(62,230,224,.06);border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:12px;color:#BFE3E0}
.qchips button:hover{border-color:var(--line-hi);color:var(--text)}
.rev{display:flex;gap:6px;flex-wrap:wrap}
.rev button{font-size:12px;border:1px solid var(--line);background:none;border-radius:8px;padding:4px 9px;color:var(--muted)}
.rev button[aria-pressed="true"]{color:var(--text);border-color:var(--cyan)}
.flag{font-size:12.5px;padding:8px 10px;border-radius:10px;background:rgba(255,182,92,.08);border:1px solid rgba(255,182,92,.25);color:#FFD9A8;margin-bottom:8px}
.flag.ok{background:rgba(140,255,201,.06);border-color:rgba(140,255,201,.2);color:#BFF5DA}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-grid label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.form-grid input,.form-grid select,.form-grid textarea{background:rgba(6,22,28,.7);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text)}
.form-grid .full{grid-column:1/-1}
pre.cfg{background:rgba(0,0,0,.35);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:12px;overflow:auto;max-height:200px;color:#BDE6E2}
.thinking{display:flex;align-items:center;gap:10px;color:var(--cyan);font-size:13px}
.thinking i{width:8px;height:8px;border-radius:50%;background:var(--cyan);animation:pulse 1s infinite}
.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}

/* ---------- Sheet (investigation) ---------- */
.scrim{position:fixed;inset:0;z-index:30;background:rgba(0,6,8,.55);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s}
.scrim.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:min(620px,calc(100% - 24px));z-index:31;transform:translateX(105%);transition:transform .5s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;overflow:hidden}
.sheet.on{transform:none}
.sheet-h{display:flex;gap:14px;align-items:center;padding:18px 20px 0}
.sheet-b{flex:1;overflow:auto;padding:0 20px 20px}
.xbtn{margin-left:auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:none;display:grid;place-items:center;flex:none}
.xbtn svg{width:16px;height:16px}
.chart{width:100%;height:240px;display:block}
.sec-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid rgba(110,235,225,.07);font-size:13.5px}
.sec-pass{color:var(--mint)} .sec-flag{color:var(--danger)} .sec-unk{color:var(--violet)}
.shield-verdict{padding:10px 12px;border-radius:12px;margin-bottom:6px;font-weight:500;border:1px solid}
.shield-verdict.danger{background:rgba(255,107,129,.10);border-color:rgba(255,107,129,.35);color:#FFC2CC}
.shield-verdict.warn{background:rgba(154,108,255,.10);border-color:rgba(154,108,255,.35);color:#DCCBFF}
.shield-verdict.ok{background:rgba(140,255,201,.07);border-color:rgba(140,255,201,.25);color:#C9FBE3}
.shield-coin{color:inherit;text-decoration:none}.shield-coin:hover{background:rgba(62,230,224,.05)}
.shield-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid}
.shield-pill.danger{color:#FFC2CC;border-color:rgba(255,107,129,.45);background:rgba(255,107,129,.12)}
.shield-pill.warn{color:#DCCBFF;border-color:rgba(154,108,255,.45);background:rgba(154,108,255,.12)}
.shield-pill.ok{color:#C9FBE3;border-color:rgba(140,255,201,.35);background:rgba(140,255,201,.08)}
.shield-pill svg{width:13px;height:13px}
.holo .hshield{all:unset;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 8px;width:100%;margin-top:8px;box-sizing:border-box}.holo .hshield .k{white-space:nowrap}
.holo .hshield:focus-visible{outline:1px solid var(--glow);border-radius:999px}
.addr{font-size:12px;color:var(--muted);word-break:break-all}

/* ---------- Ask panel / hovercard / toast ---------- */
.ask{position:fixed;top:calc(70px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%,-10px);width:min(640px,calc(100% - 24px));z-index:25;opacity:0;pointer-events:none;transition:all .35s cubic-bezier(.2,.8,.2,1);max-height:60vh;display:flex;flex-direction:column}
.ask.on{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.ask-b{overflow:auto;padding:18px 20px;font-size:14px;white-space:pre-wrap;color:#D6EFEC}
.ask-h{display:flex;align-items:center;gap:10px;padding:14px 20px 0}
.hovercard{position:fixed;z-index:40;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .15s,transform .15s;padding:12px 14px;min-width:200px}
.hovercard.on{opacity:1;transform:none}
.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);z-index:50;opacity:0;transition:all .3s;padding:10px 16px;font-size:13px;pointer-events:none}
.toast.on{opacity:1;transform:translate(-50%,0)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .intel{grid-template-columns:1fr 1fr;height:auto}
  .intel-center{grid-column:1/-1;grid-row:1;height:460px}
  .emerg,.studio{grid-template-columns:1fr;height:auto}
  .cols3{grid-template-columns:1fr}
}
@media (max-width:760px){
  .top{flex-wrap:wrap;padding:10px 14px 0;gap:10px}
  .cmd{order:3;flex-basis:100%}
  .status .clock,.status .chainsel{display:none}
  .view{padding:14px 14px 110px}
  .intel{grid-template-columns:1fr}
  .intel-center{height:auto}
  .dock{gap:0;padding:4px;max-width:calc(100% - 16px)}
  .dock button{min-width:0;flex:1;padding:8px 6px;font-size:10px}
  .stage3d{height:auto;flex-direction:column;gap:14px;perspective:none}
  .ccard{position:relative;width:100%;height:auto;min-height:340px;transform:none!important;opacity:1!important;filter:none!important}
  .ccard .mascot{height:200px;flex:none}
  .grid2{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}
  .wl-item{grid-template-columns:auto 1fr}
  .wl-item>:last-child{grid-column:1/-1}
}
/* ---------------- Mission Control briefing (static/mission.js) ---------------- */
.mc{position:relative;display:grid;grid-template-columns:minmax(290px,340px) 1fr minmax(290px,360px);gap:18px;height:100%;min-height:600px;padding-top:44px}
.mc-left,.mc-center,.mc-right{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:auto;padding-bottom:90px}
.mc-switch{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:6;display:flex;gap:4px;padding:4px;border-radius:14px;background:rgba(6,20,26,.72);border:1px solid var(--line);backdrop-filter:blur(12px)}
.mc-switch button{white-space:nowrap;font:inherit;font-size:12.5px;color:var(--muted);background:none;border:0;border-radius:10px;padding:6px 14px;cursor:pointer}
.mc-switch button[aria-selected="true"]{color:var(--void);background:linear-gradient(160deg,var(--mint),var(--cyan));font-weight:600}
.intel{position:relative;padding-top:44px}
.mc-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.mc-nova{padding:14px;background:linear-gradient(180deg,rgba(62,230,224,.07),rgba(165,149,255,.05)),var(--glass)}
.mc-nova-art{display:block;width:min(220px,80%);height:auto;margin:4px auto 0;mix-blend-mode:lighten;filter:drop-shadow(0 0 24px rgba(62,230,224,.25))}
.mc-say{margin-top:6px;padding:12px 14px;border-radius:16px;border:1px solid rgba(62,230,224,.3);background:rgba(4,20,24,.75);box-shadow:0 0 26px -12px var(--cyan);font-size:13px}
.mc-say p{margin:0 0 6px}.mc-who{font:10px var(--display,inherit);letter-spacing:.2em;color:var(--cyan);margin-bottom:6px}
.mc-brief{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;width:100%;text-align:left;font:inherit;color:var(--text);background:none;border:0;border-top:1px solid var(--line);padding:8px 0;cursor:pointer}
.mc-brief:first-of-type{border-top:0}.mc-brief .k{grid-column:1/-1;letter-spacing:0;text-transform:none}.mc-brief:hover b{color:var(--cyan)}
.mc-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.mc-src{margin-top:8px;font-size:11px;color:var(--muted)}
.mc-strip{margin:0}
.mc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.mc-card{position:relative;min-height:190px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#06161b;padding:0;cursor:pointer;text-align:left;font:inherit;color:var(--text)}
.mc-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6;transition:opacity .3s,transform .6s}
.mc-card:hover img{opacity:.8;transform:scale(1.04)}.mc-card:hover{border-color:var(--line-hi,rgba(110,235,225,.42))}
.mc-card-in{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;height:100%;min-height:190px;padding:12px;background:linear-gradient(180deg,transparent 25%,rgba(2,7,10,.94))}
.mc-card-in b{font-size:15px;line-height:1.25}.mc-card-in .k{letter-spacing:0;text-transform:none}.mc-card-in .pill{align-self:flex-start}
.mc-ranked{display:none;padding:10px 12px}
.mc-rank{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;color:var(--text);background:none;border:0;border-top:1px solid rgba(110,235,225,.08);padding:8px 2px;cursor:pointer}
.mc-rank:first-of-type{border-top:0}.mc-rank>.k{width:16px;letter-spacing:0}.mc-rank-t{flex:1;min-width:0}.mc-rank-t b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-rank-t .k{letter-spacing:0;text-transform:none}.mc-chev{color:var(--faint)}
.mc-signals,.mc-evidence{padding:12px 14px}
.mc-signals .shield-pill{margin-top:3px}
.mc-post{display:grid;grid-template-columns:30px 1fr;gap:9px;width:100%;text-align:left;font:inherit;font-size:12.5px;color:var(--text);background:none;border:0;border-bottom:1px solid rgba(110,235,225,.07);padding:9px 0;cursor:pointer}
.mc-post .pav{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#0b2a30;display:block}
.mc-post .k{letter-spacing:0;text-transform:none}.mc-post-t{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#C7E6E2;margin-top:2px}
.mc-post:hover b{color:var(--cyan)}
@media (max-width:1180px){.mc{grid-template-columns:minmax(280px,320px) 1fr;height:auto}.mc-right{grid-column:1/-1}.mc-left,.mc-center,.mc-right{overflow:visible;padding-bottom:0}.mc{padding-bottom:100px}}
@media (max-width:760px){.mc{grid-template-columns:1fr}.mc-cards,.mc-strip,.mc-nova-art,.mc-nova>.k{display:none}.mc-ranked{display:block}
  .mc-brief:nth-of-type(n+2){display:none}.mc-center{order:2}.mc-left{order:1}.mc-right{order:3}}
/* ---------------- Nova companion (static/nova.js) ---------------- */
.nova-badge{position:fixed;right:18px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:33;width:76px;height:76px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:radial-gradient(circle at 50% 55%,rgba(62,230,224,.22),rgba(165,149,255,.10) 55%,transparent 70%);transition:transform .25s,filter .25s;filter:drop-shadow(0 0 14px rgba(62,230,224,.35))}
.nova-badge img{width:72px;height:72px;display:block;margin:2px}
.nova-badge:hover,.nova-badge.active{transform:translateY(-3px) scale(1.04);filter:drop-shadow(0 0 22px rgba(62,230,224,.6))}
.nova-badge:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.nova-pip{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--violet);color:#0b0620;font-size:11px;font-weight:700;display:grid;place-items:center;box-shadow:0 0 12px var(--violet)}
.nova-pip[hidden]{display:none}
.nova-panel{position:fixed;right:18px;bottom:calc(102px + env(safe-area-inset-bottom,0px));z-index:34;width:min(380px,calc(100% - 24px));max-height:min(620px,calc(100% - 190px));display:flex;flex-direction:column;
  background:linear-gradient(160deg,rgba(62,230,224,.09),rgba(165,149,255,.06) 60%),var(--glass);box-shadow:0 0 0 1px rgba(62,230,224,.22),0 0 40px -12px rgba(62,230,224,.55);
  opacity:0;pointer-events:none;transform:translateY(10px) scale(.98);transform-origin:bottom right;transition:opacity .25s,transform .25s}
.nova-panel.on{opacity:1;pointer-events:auto;transform:none}
.nova-h{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.nova-h b{font-size:12px;letter-spacing:.2em;display:block}.nova-h .k{letter-spacing:.04em;text-transform:none}
.nova-ctx{margin-left:auto;font-size:11px;color:var(--muted);max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nova-body{overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.nova-say{font-size:13px;line-height:1.5;padding:11px 13px;border-radius:14px;border:1px solid rgba(62,230,224,.28);background:rgba(4,22,26,.7)}
.nova-say p{margin:0 0 6px}.nova-say p:last-child{margin:0}.nova-say .list-clean{margin:4px 0 6px}
.nova-src{margin-top:8px;font-size:11px;color:var(--muted)}
.nova-acts{display:flex;flex-wrap:wrap;gap:6px}.nova-acts .btn{font-size:12px;padding:6px 11px}
.nova-ask{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-top:4px;border-top:1px solid var(--line)}.nova-ask .k{width:100%;margin-top:6px}
.nova-chip{font:inherit;font-size:12px;color:var(--text);background:rgba(62,230,224,.06);border:1px solid var(--line);border-radius:999px;padding:5px 11px;cursor:pointer}
.nova-chip:hover,.nova-chip[aria-pressed="true"]{border-color:var(--cyan);background:rgba(62,230,224,.14)}
.nova-list{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.nova-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:12.5px;color:var(--text);background:rgba(62,230,224,.04);border:1px solid transparent;border-radius:10px;padding:5px 8px;cursor:pointer}
.nova-row:hover{border-color:var(--line)}.nova-row>span:not(.shield-pill):not(.chg-up):not(.chg-dn):not(.art){flex:1;min-width:0}.nova-row small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nova-f{padding:9px 14px;border-top:1px solid var(--line);font-size:10.5px;color:var(--muted)}
body.nova-sheet .nova-badge{right:calc(min(620px,100% - 24px) + 26px)}
body.nova-sheet .nova-panel{right:calc(min(620px,100% - 24px) + 26px)}
@media (max-width:760px){.nova-badge{width:60px;height:60px;bottom:calc(86px + env(safe-area-inset-bottom,0px));right:10px}.nova-badge img{width:56px;height:56px}
  .nova-panel{right:12px;left:12px;width:auto;bottom:calc(154px + env(safe-area-inset-bottom,0px));max-height:calc(100% - 230px)}
  body.nova-sheet .nova-badge,body.nova-sheet .nova-panel{right:12px}body.nova-sheet .nova-badge{display:none}}
@media (prefers-reduced-motion:reduce){.nova-badge,.nova-panel{transition:none}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- Token art ---------- */
.art{--s:48px;--glow:#3EE6E0;position:relative;display:inline-grid;place-items:center;width:var(--s);height:var(--s);border-radius:50%;flex:none;
  background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--glow) 35%,#000),#000);
  box-shadow:0 0 calc(var(--s)*.28) color-mix(in srgb,var(--glow) 70%,transparent),0 0 calc(var(--s)*.7) color-mix(in srgb,var(--glow) 28%,transparent);}
.art::after{content:"";position:absolute;inset:calc(var(--s)*-.06);border-radius:50%;border:max(1.5px,calc(var(--s)*.025)) solid color-mix(in srgb,var(--glow) 85%,#fff 15%);opacity:.85;pointer-events:none}
.art img,.art .fb,.art .fb svg{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover}
.art img{z-index:1;background:#000}
.art.big::before{content:"";position:absolute;inset:-18%;border-radius:50%;background:conic-gradient(from 0deg,transparent,color-mix(in srgb,var(--glow) 70%,transparent),transparent 30%,transparent 50%,color-mix(in srgb,var(--glow) 50%,transparent),transparent 80%);
  -webkit-mask:radial-gradient(circle,transparent 62%,#000 63%,#000 66%,transparent 67%);mask:radial-gradient(circle,transparent 62%,#000 63%,#000 66%,transparent 67%);animation:spin 9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.stack{display:inline-flex}
.stack .art{margin-left:calc(var(--s)*-.32)}
.stack .art:first-child{margin-left:0}
.mosaic{position:relative;width:300px;aspect-ratio:1}
.orbit.compact .mosaic{zoom:.74}
.orbit.compact .core{margin-top:24px}
.core-label{margin-top:6px;white-space:nowrap;text-align:center}
.core-label b{font-family:var(--display);font-size:15px;letter-spacing:.06em;font-weight:400}
.banner{position:absolute;inset:0;border-radius:24px;overflow:hidden;pointer-events:none;opacity:.32;filter:blur(2px) saturate(1.3);
  -webkit-mask:radial-gradient(ellipse at 50% 45%,#000 30%,transparent 70%);mask:radial-gradient(ellipse at 50% 45%,#000 30%,transparent 70%)}
.banner img{width:100%;height:100%;object-fit:cover}
/* No banner: the coin's own art fills the same area with the same treatment; the banner always wins when it exists */
.banner.from-art img{object-position:50% 35%}
.intel-center{position:relative}.intel-orbit{position:relative;height:100%}
/* Living backdrops: fade in when the art changes, then a very slow drift (off under prefers-reduced-motion) */
.banner img{opacity:0;transition:opacity .9s ease;animation:artDrift 45s ease-in-out infinite alternate;will-change:transform}
.banner img.in{opacity:1}
@keyframes artDrift{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(-1.6%,-1.2%,0)}}
/* Token sheet: the same art behind the header, fading down into the panel */
.sheet-top{position:relative;padding-bottom:4px}
.sheet-top>*:not(.banner){position:relative}
.sheet-top>.banner{inset:0 0 -24px 0;border-radius:inherit;opacity:.34;-webkit-mask:linear-gradient(#000 35%,transparent);mask:linear-gradient(#000 35%,transparent)}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.gcard{position:relative;text-align:left;border-radius:22px;overflow:hidden;padding:0;cursor:pointer;width:100%;border:1px solid var(--line);background:linear-gradient(180deg,rgba(10,30,36,.75),rgba(3,10,13,.92));transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .2s,box-shadow .3s}
.gcard:hover,.gcard:focus-visible{transform:translateY(-6px);border-color:color-mix(in srgb,var(--glow) 70%,transparent);box-shadow:0 20px 50px color-mix(in srgb,var(--glow) 25%,transparent)}
.gcard .hero{position:relative;height:170px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 60%,color-mix(in srgb,var(--glow) 45%,transparent),transparent 70%)}
.gcard .hero .bgimg{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(18px) saturate(1.6);opacity:.55}
.gcard .body{padding:12px 16px 16px}
.gcard .nm{font-weight:600;font-size:15px}
.gcard .row{display:flex;justify-content:space-between;font-size:13px;margin:3px 0}
.gcard .row span:first-child{color:var(--muted)}
.gcard .corner{position:absolute;top:10px;left:10px;display:flex;gap:6px;z-index:2}
.tagmini{font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.55);border:1px solid var(--line);backdrop-filter:blur(6px)}
.tagmini.pump{color:var(--mint);border-color:rgba(140,255,201,.4)}
.tagmini.boost{color:#FFD3A0;border-color:rgba(255,182,92,.4)}
.src{font-size:11px;color:var(--muted)}
.modal{position:fixed;inset:0;z-index:60;display:none;place-items:center;background:rgba(0,6,8,.6);backdrop-filter:blur(4px)}
.modal.on{display:grid}
.modal .hud{width:min(420px,calc(100% - 24px))}
.modal input{width:100%;background:rgba(6,22,28,.7);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:12px 0}
.feed.live{border-color:rgba(140,255,201,.35);background:rgba(140,255,201,.06);color:#C8FFE4}
.feed.live i{background:var(--mint);box-shadow:0 0 8px var(--mint)}
.feed.err{border-color:rgba(255,107,122,.4);background:rgba(255,107,122,.08);color:#FFC2C9}
.feed.err i{background:var(--danger);box-shadow:0 0 8px var(--danger)}
.ccard .mascot img{width:100%;height:100%;object-fit:cover}
.links a{font-size:12.5px;margin-right:12px}
.loading{display:grid;place-items:center;height:60vh;color:var(--muted)}

/* ---------- Phase 2: provider status ---------- */
button.feed{cursor:pointer;font:inherit;font-size:12px}
.pstat{position:fixed;top:calc(64px + env(safe-area-inset-top,0px));right:16px;width:min(420px,calc(100% - 24px));z-index:45;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .25s,transform .25s;max-height:calc(100vh - 180px);overflow:auto}
.pstat.on{opacity:1;pointer-events:auto;transform:none}
.prow{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid rgba(110,235,225,.07)}
.prow:last-child{border-bottom:0}
.dot{width:9px;height:9px;border-radius:50%;margin-top:6px;background:var(--faint)}
.dot.ok{background:var(--mint);box-shadow:0 0 8px var(--mint)}
.dot.degraded,.dot.rate_limited{background:var(--warn);box-shadow:0 0 8px var(--warn)}
.dot.failing{background:var(--danger);box-shadow:0 0 8px var(--danger)}
.dot.unconfigured{background:none;border:1px solid var(--violet)}
.dot.idle{background:none;border:1px solid var(--muted)}
.cost{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:1px 6px;border:1px solid var(--line);color:var(--muted)}
.cost.paid{color:var(--warn);border-color:rgba(255,182,92,.35)}

/* ---------- Phase 2: launch rail ---------- */
.rail-wrap{margin-top:14px}
.rail{display:flex;gap:12px;overflow-x:auto;padding:6px 2px 10px;scroll-snap-type:x proximity}
.lcard{flex:none;width:150px;scroll-snap-align:start;border-radius:16px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(10,30,36,.7),rgba(3,10,13,.9));padding:12px;text-align:center;color:var(--text);text-decoration:none;transition:transform .25s,border-color .2s}
.lcard:hover,.lcard:focus-visible{transform:translateY(-3px);border-color:var(--line-hi)}
.lcard .art{margin:0 auto 8px}
.lcard .nm{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lcard .k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wordcloud{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 4px}
.wordcloud button{border:1px solid var(--line);background:rgba(62,230,224,.05);border-radius:999px;padding:3px 10px;font-size:12px;color:#BFE3E0}
.wordcloud button b{color:var(--mint);font-weight:600;margin-left:4px}
.wordcloud button:hover{border-color:var(--line-hi)}

/* ---------- Phase 2: investigation ---------- */
.idgrid{display:grid;grid-template-columns:auto 1fr auto;gap:6px 12px;align-items:center;font-size:13px;margin:8px 0}
.idgrid .k{white-space:nowrap}
.idgrid code{font-size:12px;color:#BDE6E2;word-break:break-all;font-family:ui-monospace,Consolas,monospace}
.copy{border:1px solid var(--line);background:none;border-radius:8px;padding:3px 8px;font-size:11px;color:var(--muted)}
.copy:hover{color:var(--text);border-color:var(--line-hi)}
.srcline{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:8px 0}
.srcline .pill{font-size:11px;padding:2px 8px}
.stagewhy{margin-top:10px;border-left:2px solid var(--line-hi);padding:2px 0 2px 12px}
.stagewhy p{margin:3px 0;font-size:12.5px;color:#C4E4E2}
.revlog{margin-top:6px}
.revlog .r{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid rgba(110,235,225,.07);font-size:12.5px}
.wl-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.wl-tools input{flex:1;min-width:200px;background:rgba(6,22,28,.7);border:1px solid var(--line);border-radius:12px;padding:9px 14px}
.wl-tools input:focus{outline:none;border-color:var(--line-hi)}
.wl-note{width:100%;margin-top:8px;background:rgba(6,22,28,.6);border:1px solid var(--line);border-radius:10px;padding:7px 10px;font-size:12.5px;color:var(--text);resize:vertical;min-height:34px}
.wl-note:focus{outline:none;border-color:var(--line-hi)}
.remote{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:12px}
.mspark{width:100%;height:30px;display:block;margin-top:6px;opacity:.85}

/* ---------- Live update feedback (morph.js) ---------- */
.tick-up{animation:tickUp 1.1s ease-out}
.tick-dn{animation:tickDn 1.1s ease-out}
@keyframes tickUp{0%{color:var(--mint);text-shadow:0 0 14px rgba(140,255,201,.85)}65%{color:var(--mint);text-shadow:0 0 8px rgba(140,255,201,.4)}100%{}}
@keyframes tickDn{0%{color:var(--danger);text-shadow:0 0 14px rgba(255,107,122,.85)}65%{color:var(--danger);text-shadow:0 0 8px rgba(255,107,122,.4)}100%{}}
@media (prefers-reduced-motion: reduce){.tick-up,.tick-dn{animation:none}}

/* ---------- Meta Shield network graph (charts.js) ---------- */
.shield-graph{margin:10px 0 14px;padding:10px 6px 6px;border:1px solid var(--line);border-radius:14px;background:rgba(4,16,20,.45)}
.shield-graph svg{width:100%;height:auto;display:block}
.sgn{fill:rgba(62,230,224,.12);stroke:var(--cyan);stroke-width:1.5}
.sgn.tok{fill:rgba(140,255,201,.16);stroke:var(--mint);stroke-width:2}
.sgn.ok{stroke:var(--mint)}
.sgn.warn{fill:rgba(255,182,92,.12);stroke:var(--warn)}
.sgn.bad{fill:rgba(255,107,122,.14);stroke:var(--danger)}
.sge{fill:none;stroke:rgba(110,235,225,.4);stroke-width:1.2}
.sge.dim{stroke:rgba(110,235,225,.18)}
.sgl{fill:var(--text);font:11px Sora,sans-serif}
.sgs{fill:var(--muted);font:10px Sora,sans-serif}
.sgk{fill:var(--muted);font:11px Sora,sans-serif}
.sgfoot{font-size:11.5px;color:var(--muted);padding:6px 10px 4px}

/* ---------- AI Project Pipeline & artwork assets (Studio) ---------- */
.pipe-switch{margin:0 0 14px}
.pipe-intro{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;padding:18px 20px;margin-bottom:12px;
  background:linear-gradient(140deg,var(--glass-hi),var(--glass) 60%),radial-gradient(120% 160% at 100% 0,rgba(165,149,255,.12),transparent 55%)}
.pipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;margin-top:12px}
.pipe-card{padding:16px 18px;position:relative;overflow:hidden}
.pipe-card::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.5}
.pipe-card.approved::before{background:linear-gradient(90deg,transparent,var(--mint),transparent)}
.pipe-card.rejected,.pipe-card.dismissed{opacity:.62}
.pipe-head{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.pipe-art{width:56px;height:56px;border-radius:12px;object-fit:cover;border:1px solid var(--line)}
.pipe-title{font-size:16px;letter-spacing:.04em}
.pipe-track{display:flex;align-items:center;gap:6px;margin:8px 0}
.pipe-track i{width:22px;height:5px;border-radius:3px;background:rgba(110,235,225,.14);transition:background .3s}
.pipe-track i.on{background:var(--cyan);box-shadow:0 0 8px rgba(62,230,224,.55)}
.pipe-bad{font-size:11px;color:var(--danger);margin-left:6px;letter-spacing:.08em;text-transform:uppercase}
.pipe-checks{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.pipe-check{font-size:11.5px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);cursor:help}
.pipe-check.ok{color:var(--mint);border-color:rgba(140,255,201,.35)}
.pipe-check.no{color:var(--warn);border-color:rgba(255,182,92,.4)}
.pipe-assets{display:flex;gap:8px;margin:8px 0}
.pipe-assets img{width:44px;height:44px;border-radius:10px;object-fit:cover;border:1px solid var(--line)}
.pipe-assets img.ok{border-color:var(--mint);box-shadow:0 0 8px rgba(140,255,201,.35)}
.pipe-meta{margin:8px 0 10px}
.pipe-acts{display:flex;gap:8px;flex-wrap:wrap}
.pipe-policy{padding:12px 18px;margin-bottom:12px}
.pipe-policy summary{cursor:pointer;display:flex;gap:10px;align-items:center}
.pipe-pol{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:12px;font-size:13px}
.pipe-pol label{display:flex;gap:7px;align-items:center;color:var(--muted)}
.pipe-pol input[type=number]{width:72px;background:var(--deep);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:4px 8px}
.pipe-pol select{background:var(--deep);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:4px 8px}
.pipe-gate{margin:0 0 12px;border-style:solid}
.assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:8px}
.asset{border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--glass)}
.asset.ok{border-color:rgba(140,255,201,.4)}
.asset-art{height:84px;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:var(--deep);margin-bottom:8px}
.asset-art img{width:100%;height:100%;object-fit:cover}
.asset-art.banner img,.asset-art.hero img{object-fit:contain}
.asset-m{display:flex;flex-direction:column;gap:2px;font-size:12.5px;margin-bottom:8px}
.asset-b{display:flex;gap:6px;flex-wrap:wrap}
.btn.mini{padding:4px 10px;font-size:12px}
@media (max-width:760px){.pipe-intro{flex-direction:column}.pipe-grid{grid-template-columns:1fr}}
.pipe-brief{margin:8px 0;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--glass)}
.pipe-brief summary{cursor:pointer}
.pipe-brief .k{margin-top:8px}
.pipe-pkg{font-size:12.5px;margin:8px 0;padding:7px 11px;border-radius:10px;border:1px dashed var(--line);color:var(--muted)}
.pipe-pkg.ok{border-style:solid;border-color:rgba(140,255,201,.45);color:var(--mint);display:flex;gap:7px;align-items:center}
/* ---------- Nova AI chat ---------- */
.nova-chat{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;display:flex;flex-direction:column;gap:8px}
.nvc-log{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}
.nvc-msg{font-size:13px;line-height:1.5;border-radius:12px;padding:8px 12px;max-width:92%}
.nvc-msg.me{align-self:flex-end;background:rgba(62,230,224,.12);border:1px solid rgba(62,230,224,.25)}
.nvc-msg.nv{align-self:flex-start;background:var(--glass);border:1px solid var(--line)}
.nvc-msg .k{display:block;margin-top:5px}
.nvc-foot{font-size:11px}
.linklike{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font-size:11px;padding:0}

/* ---------------- Atlas (the AI guide): idle float + the rise-with-orb entrance ---------------- */
.nova-badge img{border-radius:50%}
@media (prefers-reduced-motion: no-preference){
  .nova-badge{animation:atlasFloat 5.5s ease-in-out infinite}
  .nova-badge:hover,.nova-badge:focus-visible{animation-play-state:paused}
}
@keyframes atlasFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
/* Clicking Atlas: he rises beside the panel (mirrored so the orb hand reaches over it), the orb glows
   where his hand holds it, and the panel materializes out of that glow. Hidden on small screens. */
.atlas-rise{position:fixed;z-index:33;bottom:0;left:calc(16px + min(380px,100vw - 24px) - 30px);height:min(46vh,420px);
  pointer-events:none;opacity:0;transform:translateY(18%) scaleX(-1);
  transition:transform .8s cubic-bezier(.16,.84,.26,1),opacity .55s ease;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 22%,#000 78%,transparent),linear-gradient(to top,transparent 0,#000 12%,#000 82%,transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent,#000 22%,#000 78%,transparent),linear-gradient(to top,transparent 0,#000 12%,#000 82%,transparent);
  mask-composite:intersect}
body.atlas-up .atlas-rise{opacity:1;transform:translateY(0) scaleX(-1)}
/* Hologram: the bust art is opaque on a near-black ground, so the whole element screen-blends onto the
   page (black drops out, the figure glows through). Scanlines and the light sweep use the art as a
   luminance mask so they only light up where he is bright. */
.atlas-rise{mix-blend-mode:screen}
.atlas-rise img{display:block;height:100%;width:auto;opacity:.92;filter:contrast(1.3) brightness(1.05) saturate(1.2)}
.atlas-rise::before,.atlas-rise::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;
  -webkit-mask:var(--holo-src) center/100% 100% no-repeat;mask:var(--holo-src) center/100% 100% no-repeat luminance}
.atlas-rise::before{background:repeating-linear-gradient(to bottom,rgba(150,255,242,.28) 0 1px,transparent 1px 3px),
  linear-gradient(to top,rgba(62,230,224,.35),rgba(62,230,224,.12))}
.atlas-rise::after{background:linear-gradient(to bottom,transparent,rgba(190,255,250,.55) 50%,transparent) 0 -40%/100% 28% no-repeat}
@media (prefers-reduced-motion: no-preference){
  body.atlas-up .atlas-rise img{animation:holoFlicker 4.2s steps(1) infinite}
  body.atlas-up .atlas-rise::after{animation:holoSweep 3.6s linear infinite}
  body.atlas-up .atlas-rise::before{animation:holoDrift 1.2s linear infinite}
}
@keyframes holoSweep{from{background-position:0 -40%}to{background-position:0 140%}}
@keyframes holoDrift{from{background-position:0 0,0 0}to{background-position:0 3px,0 0}}
@keyframes holoFlicker{0%,100%{opacity:.86}47%{opacity:.86}48%{opacity:.62}49%{opacity:.9}50%{opacity:.7}51%{opacity:.86}88%{opacity:.8}}
.atlas-orb{position:fixed;z-index:32;width:128px;height:128px;border-radius:50%;pointer-events:none;opacity:0;
  left:calc(16px + min(380px,100vw - 24px) - 18px);bottom:calc(min(46vh,420px)*.52);
  background:radial-gradient(circle,rgba(150,255,242,.55),rgba(62,230,224,.18) 45%,transparent 70%);
  transition:opacity .7s .15s ease}
body.atlas-up .atlas-orb{opacity:1;animation:atlasOrb 3.4s ease-in-out .3s infinite}
@keyframes atlasOrb{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
body.atlas-up .nova-badge{opacity:0;pointer-events:none;transition:opacity .3s}
.nova-panel.on{animation:atlasMaterialize .5s cubic-bezier(.2,.85,.3,1)}
@keyframes atlasMaterialize{from{transform:translateY(22px) scale(.94);opacity:0}}
@media (prefers-reduced-motion: reduce){.atlas-rise{transition:none}.atlas-orb,.nova-panel.on{animation:none}}
@media (max-width:1100px),(max-height:640px){.atlas-rise,.atlas-orb{display:none}}
