/* HYPEBOTS: the robot floor. Palette and type from brand/STYLE.md. */
@font-face { font-family: "General Sans"; src: url(/assets/fonts/general-sans-300.woff2) format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "General Sans"; src: url(/assets/fonts/general-sans-400.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "General Sans"; src: url(/assets/fonts/general-sans-500.woff2) format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "General Sans"; src: url(/assets/fonts/general-sans-600.woff2) format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url(/assets/fonts/jbmono-400.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "JetBrains Mono"; src: url(/assets/fonts/jbmono-500.woff2) format("woff2"); font-weight: 500; font-display: swap; }

:root {
  --void: #050b09; --tile: #001810; --floor: #0c1714; --visor: #001008;
  --hair: #1c3029; --border: #306048; --mint: #3df2c4; --core: #b3fdee;
  --black: #000; --ink: #00140d; --deep: #00281d; --text: #e3f4ee; --muted: #86a69b; --warn: #f2c14b; --danger: #ff6b5e;
  --sans: "General Sans", system-ui, sans-serif; --mono: "JetBrains Mono", ui-monospace, monospace;
  --pad: clamp(18px, 2.6vw, 44px);
  --bar: 68px;
  --desk-w: clamp(380px, 34vw, 620px);
}
* { box-sizing: border-box; }
html { overflow-x: clip; background: var(--void); color: var(--text); -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body { margin: 0; font: 400 15px/1.55 var(--sans); background: var(--void); overflow-x: clip; }
body.is-booting { overflow: hidden; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--mint); outline-offset: 3px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.quiet { color: var(--muted); }
.num, .mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }

/* ---------- boot ---------- */
.boot { position: fixed; inset: 0; z-index: 100; display: grid; place-content: center; justify-items: center; gap: 14px; background: var(--black); transition: opacity 1.1s cubic-bezier(.2,.7,.2,1), visibility 1.1s; }
.boot-logo { width: 84px; height: 84px; }
.boot-word { font-weight: 300; font-size: 22px; letter-spacing: .32em; padding-left: .32em; }
.boot-pct { font: 400 12px var(--mono); color: var(--muted); }
body:not(.is-booting) .boot { opacity: 0; visibility: hidden; }

/* ---------- the 3D floor and its tags ---------- */
.floor { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100lvh; display: block; z-index: 0; opacity: 0; transition: opacity 1.4s ease-out .2s; }
body:not(.is-booting) .floor { opacity: 1; }
.veil { position: fixed; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(120% 90% at 50% 50%, transparent 55%, color-mix(in srgb, var(--void) 55%, transparent) 100%); }
.tags { position: fixed; inset: 0; z-index: 2; pointer-events: none; }
.tag { position: absolute; left: 0; top: 0; pointer-events: auto; transform: translate(-50%, -100%); display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 9px; border: 1px solid var(--border); border-radius: 999px; background: color-mix(in srgb, var(--visor) 78%, transparent); backdrop-filter: blur(6px); font: 500 13px var(--sans); color: var(--text); cursor: pointer; white-space: nowrap; transition: border-color .2s, background .2s, opacity .3s; will-change: transform; }
.tag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 10px var(--mint); }
.tag:hover, .tag.on { border-color: var(--mint); background: color-mix(in srgb, var(--deep) 90%, transparent); }
.tag::after { content: ""; position: absolute; left: 50%; top: 100%; width: 1px; height: 14px; background: linear-gradient(var(--border), transparent); }

/* ---------- header ---------- */
.bar { position: fixed; z-index: 20; top: 0; left: 0; right: 0; height: var(--bar); display: flex; align-items: center; gap: 28px; padding: 0 var(--pad); background: linear-gradient(color-mix(in srgb, var(--void) 86%, transparent), color-mix(in srgb, var(--void) 0%, transparent)); }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 500; font-size: 15px; letter-spacing: .14em; }
.brand img { width: 34px; height: 34px; }
.crew { display: flex; gap: 22px; margin-left: 12px; }
.crew a { text-decoration: none; color: var(--muted); font-size: 14px; position: relative; padding: 4px 0; transition: color .2s; }
.crew a:hover, .crew a.on { color: var(--text); }
.crew a.on::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: var(--mint); }
.bar-end { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.ico { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--hair); border-radius: 10px; color: var(--text); background: color-mix(in srgb, var(--tile) 60%, transparent); transition: border-color .2s, color .2s; }
.ico:hover { border-color: var(--mint); color: var(--mint); }
.ca { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border: 1px solid var(--hair); border-radius: 10px; background: color-mix(in srgb, var(--tile) 60%, transparent); color: var(--muted); font: 400 12.5px var(--mono); cursor: default; }
.ca:not([disabled]) { cursor: copy; color: var(--text); }
.ca:not([disabled]):hover { border-color: var(--mint); }
.ca-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--border); }
.ca:not([disabled]) .ca-dot { background: var(--mint); box-shadow: 0 0 8px var(--mint); }

/* buttons: mint fill with corner ticks that spread on hover (EDOLUS) */
.btn { --tk: 7px; --sp: 0px; position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 18px; border: 0; border-radius: 2px; font: 500 14px var(--sans); text-decoration: none; cursor: pointer; white-space: nowrap; transition: background .2s, color .2s, opacity .2s; }
.btn::before { content: ""; position: absolute; inset: calc(-5px - var(--sp)); pointer-events: none; transition: inset .22s cubic-bezier(.2,.7,.2,1);
  background:
    linear-gradient(var(--tc), var(--tc)) top left / var(--tk) 1px no-repeat, linear-gradient(var(--tc), var(--tc)) top left / 1px var(--tk) no-repeat,
    linear-gradient(var(--tc), var(--tc)) top right / var(--tk) 1px no-repeat, linear-gradient(var(--tc), var(--tc)) top right / 1px var(--tk) no-repeat,
    linear-gradient(var(--tc), var(--tc)) bottom left / var(--tk) 1px no-repeat, linear-gradient(var(--tc), var(--tc)) bottom left / 1px var(--tk) no-repeat,
    linear-gradient(var(--tc), var(--tc)) bottom right / var(--tk) 1px no-repeat, linear-gradient(var(--tc), var(--tc)) bottom right / 1px var(--tk) no-repeat; }
.btn:hover { --sp: 3px; }
.btn-mint { --tc: var(--mint); background: var(--mint); color: var(--ink); }
.btn-mint:hover { background: var(--core); }
.btn-ghost { --tc: transparent; background: color-mix(in srgb, var(--tile) 60%, transparent); color: var(--text); box-shadow: inset 0 0 0 1px var(--border); }
.btn-ghost:hover { --tc: var(--border); box-shadow: inset 0 0 0 1px var(--mint); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.btn-wide { width: 100%; height: 48px; font-size: 15px; }

/* ---------- chapters ---------- */
main { position: relative; z-index: 3; }
.ch { position: relative; min-height: 165vh; padding: calc(var(--bar) + 6vh) var(--pad) 10vh; display: flex; align-items: flex-start; pointer-events: none; }
.ch-tall { min-height: 190vh; }
.ch > * { pointer-events: auto; }
.ch[data-side="right"] { justify-content: flex-end; }
.ch[data-side="center"] { justify-content: center; }
.ch-hero { min-height: 135vh; flex-direction: column; align-items: center; padding-top: calc(var(--bar) + 9vh); }
.hero { width: min(1080px, 100%); text-align: center; display: grid; justify-items: center; gap: 18px; }
.hero-title { text-shadow: 0 0 40px color-mix(in srgb, var(--void) 90%, transparent); margin: 0; font-weight: 300; font-size: clamp(54px, 8.4vw, 168px); line-height: .92; letter-spacing: -.01em; text-transform: uppercase; white-space: nowrap; }
.hero-sub { text-shadow: 0 1px 12px var(--void), 0 0 2px var(--void); margin: 0; max-width: 640px; color: var(--muted); font-size: clamp(15px, 1.15vw, 19px); }
.hero-live { margin: 0; font-size: 13.5px; color: var(--muted); min-height: 1.5em; }
.hero-live b { color: var(--mint); font-weight: 500; }
.hint { position: absolute; left: 50%; bottom: 35vh; transform: translateX(-50%); color: var(--muted); font-size: 13px; text-decoration: none; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.hint::after { content: ""; width: 1px; height: 42px; background: linear-gradient(var(--mint), transparent); animation: drip 2.4s ease-in-out infinite; transform-origin: top; }
@keyframes drip { 0% { transform: scaleY(0); opacity: 1; } 60% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }

.probe { display: flex; gap: 10px; width: min(620px, 100%); padding: 6px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--visor) 82%, transparent); backdrop-filter: blur(10px); }
.probe input { flex: 1; min-width: 0; height: 40px; padding: 0 12px; border: 0; background: transparent; font: 400 14px var(--mono); outline: none; }
.probe input::placeholder { font-family: var(--sans); color: var(--muted); }
.probe:focus-within { border-color: var(--mint); }
.probe-in { width: 100%; margin: 4px 0 18px; }

/* ---------- desks (the robot tool panels) ---------- */
.desk { position: sticky; top: calc(var(--bar) + 3vh); width: var(--desk-w); max-height: calc(100vh - var(--bar) - 6vh); overflow: auto; overscroll-behavior: contain; padding: 26px 26px 22px; border: 1px solid var(--border); border-radius: 18px; background: color-mix(in srgb, var(--ink) 84%, transparent); backdrop-filter: blur(16px) saturate(1.2); box-shadow: 0 40px 80px -30px color-mix(in srgb, var(--black) 80%, transparent), inset 0 1px 0 color-mix(in srgb, var(--core) 5%, transparent); scrollbar-width: thin; scrollbar-color: var(--border) transparent; }
.desk-wide { width: clamp(420px, 44vw, 780px); }
.desk-wall { width: min(1320px, 100%); position: relative; top: auto; max-height: none; margin-top: 56vh; }
#wall { min-height: 120vh; }
.watch-follow { margin: 0 0 12px; display: flex; align-items: center; gap: 12px; font-size: 14px; }
.desk-head h2 { margin: 0 0 8px; font-weight: 300; font-size: clamp(28px, 2.4vw, 42px); line-height: 1.04; letter-spacing: -.01em; }
.desk-head p { margin: 0 0 18px; color: var(--muted); font-size: 14px; max-width: 60ch; }
.foot { margin: 14px 0 0; font-size: 12.5px; color: var(--muted); }
.foot .down { color: var(--warn); }

/* Scout */
.scout-list { display: grid; gap: 2px; }
.theme { display: grid; grid-template-columns: 1fr auto; gap: 4px 14px; width: 100%; padding: 11px 12px; border: 0; border-radius: 10px; background: transparent; text-align: left; cursor: pointer; transition: background .2s; }
.theme:hover, .theme.on { background: color-mix(in srgb, var(--mint) 6%, transparent); }
.theme-name { font-weight: 500; font-size: 15px; }
.theme-num { font: 400 13px var(--mono); color: var(--text); text-align: right; }
.theme-bar { grid-column: 1 / -1; height: 4px; border-radius: 2px; background: var(--hair); overflow: hidden; }
.theme-bar i { display: block; height: 100%; background: var(--mint); border-radius: 2px; transform-origin: left; }
.theme-meta { grid-column: 1 / -1; display: flex; gap: 12px; font-size: 12.5px; color: var(--muted); }
.up { color: var(--mint); } .dn { color: var(--danger); } .nw { color: var(--core); }
.scout-coins { margin-top: 12px; border-top: 1px solid var(--hair); padding-top: 12px; display: grid; gap: 4px; }
.coin { display: grid; grid-template-columns: 34px 1fr auto auto; align-items: center; gap: 12px; padding: 8px 6px; border-radius: 10px; }
.coin:hover { background: color-mix(in srgb, var(--mint) 5%, transparent); }
.coin img, .coin .ph { width: 34px; height: 34px; border-radius: 9px; object-fit: cover; background: var(--tile); border: 1px solid var(--hair); }
.coin b { font-weight: 500; }
.coin small { display: block; color: var(--muted); font: 400 12px var(--mono); }
.mini { height: 30px; padding: 0 12px; font-size: 13px; }

/* Inspector report */
.report:empty { display: none; }
.verdict { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: center; padding: 18px; border-radius: 14px; background: var(--visor); border: 1px solid var(--hair); }
.dial { --v: 0; --c: var(--mint); width: 92px; height: 92px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--c) calc(var(--v) * 1%), var(--hair) 0); position: relative; }
.dial::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: var(--visor); }
.dial span { position: relative; font: 500 24px var(--mono); }
.verdict h3 { margin: 0; font-weight: 400; font-size: 30px; line-height: 1.1; text-transform: capitalize; }
.verdict p { margin: 4px 0 0; color: var(--muted); font-size: 13.5px; }
.verdict .who { font-size: 14px; color: var(--text); }
.v-high { --c: var(--danger); } .v-high h3 { color: var(--danger); }
.v-caution { --c: var(--warn); } .v-caution h3 { color: var(--warn); }
.v-clear h3, .v-mostly h3 { color: var(--mint); }
.v-partial h3 { color: var(--core); }
.finds { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 2px; }
.find { display: grid; grid-template-columns: 12px 1fr auto; gap: 12px; align-items: start; padding: 10px 8px; border-bottom: 1px solid var(--hair); }
.find:last-child { border-bottom: 0; }
.find::before { content: ""; width: 9px; height: 9px; margin-top: 6px; border-radius: 3px; background: var(--muted); }
.find.danger::before { background: var(--danger); box-shadow: 0 0 10px color-mix(in srgb, var(--danger) 60%, transparent); }
.find.warn::before { background: var(--warn); }
.find.ok::before { background: var(--mint); }
.find b { font-weight: 500; display: block; }
.find span { color: var(--muted); font-size: 13px; }
.find a { font-size: 12.5px; color: var(--mint); text-decoration: none; white-space: nowrap; }
.find a:hover { text-decoration: underline; }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-top: 14px; }
.fact { padding: 12px; border: 1px solid var(--hair); border-radius: 12px; }
.fact span { display: block; color: var(--muted); font-size: 12.5px; }
.fact b { font: 500 17px var(--mono); }
.holders { margin-top: 14px; }
.holders h4, .recent h4, .notread h4 { margin: 0 0 8px; font-weight: 500; font-size: 14px; }
.hrow { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 5px 0; font-size: 13px; }
.hrow a { font-family: var(--mono); text-decoration: none; color: var(--text); }
.hrow a:hover { color: var(--mint); }
.hrow em { font-style: normal; color: var(--muted); font-size: 12px; margin-left: 8px; font-family: var(--sans); }
.hbar { grid-column: 1 / -1; height: 3px; background: var(--hair); border-radius: 2px; }
.hbar i { display: block; height: 100%; background: var(--border); border-radius: 2px; }
.hbar i.w { background: var(--mint); }
.notread { margin-top: 14px; padding: 12px; border: 1px dashed var(--border); border-radius: 12px; font-size: 13px; color: var(--muted); }
.notread ul { margin: 0; padding-left: 18px; }
.scan { padding: 18px; border: 1px solid var(--hair); border-radius: 14px; background: var(--visor); }
.scan ol { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; font-size: 13.5px; color: var(--muted); }
.scan li { display: flex; gap: 10px; align-items: center; }
.scan li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--border); }
.scan li.on { color: var(--text); }
.scan li.on::before { background: var(--mint); border-color: var(--mint); box-shadow: 0 0 8px var(--mint); }
.recent { margin-top: 18px; }
.recent-row { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 11px; border: 1px solid var(--hair); border-radius: 999px; background: transparent; font-size: 13px; cursor: pointer; }
.chip:hover { border-color: var(--mint); }
.chip i { width: 7px; height: 7px; border-radius: 50%; background: var(--mint); }
.chip i.high { background: var(--danger); } .chip i.caution { background: var(--warn); }
.chip.on { border-color: var(--mint); background: color-mix(in srgb, var(--mint) 8%, transparent); }

/* Builder */
.build { display: grid; gap: 14px; }
.build-top { display: grid; grid-template-columns: 120px 1fr; gap: 14px; }
.drop { position: relative; width: 120px; height: 120px; border: 1px dashed var(--border); border-radius: 16px; display: grid; place-items: center; overflow: hidden; cursor: pointer; color: var(--muted); font-size: 13px; background: var(--visor); }
.drop:hover, .drop:focus-within { border-color: var(--mint); }
.drop img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.build-names { display: grid; gap: 10px; align-content: start; }
.field { display: grid; gap: 6px; font-size: 13px; color: var(--muted); }
.field input, .field textarea, .field select { width: 100%; padding: 10px 12px; border: 1px solid var(--hair); border-radius: 10px; background: var(--visor); color: var(--text); font-size: 14px; outline: none; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--mint); }
#bTicker { font-family: var(--mono); text-transform: uppercase; }
.build-row { display: grid; grid-template-columns: 1.4fr .8fr 1fr; gap: 10px; }
.tick-note { margin: 0; font-size: 12.5px; color: var(--muted); min-height: 1.3em; }
.tick-note.bad { color: var(--warn); } .tick-note.good { color: var(--mint); }
.pair-row { display: flex; gap: 8px; }
.pair-row input { flex: 1; }
.pair-results { display: grid; gap: 4px; }
.pair-results:empty { display: none; }
.pick { display: grid; grid-template-columns: 30px 1fr auto; gap: 10px; align-items: center; padding: 7px 8px; border: 1px solid var(--hair); border-radius: 10px; background: transparent; text-align: left; cursor: pointer; font-size: 13.5px; }
.pick:hover:not([disabled]) { border-color: var(--mint); }
.pick[disabled] { opacity: .5; cursor: not-allowed; }
.pick img, .pick .ph { width: 30px; height: 30px; border-radius: 8px; object-fit: cover; background: var(--tile); }
.pick small { color: var(--muted); font-size: 12px; }
.pair-picked { margin: 0; font-size: 13px; color: var(--text); }
.pair-picked b { color: var(--mint); font-weight: 500; }
.sim:empty { display: none; }
.sim { padding: 14px; border-radius: 12px; border: 1px solid var(--hair); background: var(--visor); font-size: 13.5px; }
.sim.bad { border-color: color-mix(in srgb, var(--danger) 50%, transparent); }
.sim.good { border-color: var(--mint); }
.sim .btn { margin-top: 12px; }
.sim a { color: var(--mint); }

/* Watcher */
.follows { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.follows:empty { display: none; }
.watch-top { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.watch-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 14px; margin-top: 14px; }
.feed { list-style: none; margin: 0; padding: 0; max-height: 340px; overflow: auto; scrollbar-width: thin; scrollbar-color: var(--border) transparent; }
.trade { display: grid; grid-template-columns: 54px 1fr auto; gap: 10px; align-items: baseline; padding: 7px 4px; border-bottom: 1px solid var(--hair); font-size: 13px; }
.trade .k { font-weight: 500; }
.trade.buy .k { color: var(--mint); } .trade.sell .k { color: var(--danger); }
.trade a { font-family: var(--mono); text-decoration: none; color: var(--muted); font-size: 12px; }
.trade a:hover { color: var(--mint); }
.trade .usd { font-family: var(--mono); }
.badge { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 5px; font-size: 11px; line-height: 17px; }
.badge.whale { background: color-mix(in srgb, var(--mint) 14%, transparent); color: var(--mint); }
.badge.dev { background: color-mix(in srgb, var(--warn) 14%, transparent); color: var(--warn); }
.trade.fresh { animation: land .9s ease-out; }
@keyframes land { from { background: color-mix(in srgb, var(--mint) 16%, transparent); } to { background: transparent; } }
.holdbox { padding: 12px; border: 1px solid var(--hair); border-radius: 12px; }
.holdbox h4 { margin: 0 0 6px; font-weight: 500; font-size: 14px; }
.holdbox svg { width: 100%; height: 120px; display: block; }
.holdbox p { margin: 6px 0 0; font-size: 12.5px; color: var(--muted); }
.alerts { display: flex; align-items: center; gap: 12px; margin-top: 16px; font-size: 13px; }

/* Launch wall */
.wall { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.launch { display: grid; grid-template-columns: 52px 1fr; gap: 12px; padding: 14px; border: 1px solid var(--hair); border-radius: 14px; background: var(--visor); }
.launch img, .launch .ph { width: 52px; height: 52px; border-radius: 12px; object-fit: cover; background: var(--tile); }
.launch b { font-weight: 500; font-size: 16px; }
.launch small { display: block; color: var(--muted); font-size: 12.5px; }
.launch .row { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; justify-content: space-between; font-size: 13px; }
.launch .row a { color: var(--mint); text-decoration: none; }
.empty { padding: 26px; border: 1px dashed var(--border); border-radius: 14px; color: var(--muted); text-align: center; grid-column: 1 / -1; }
.empty b { color: var(--text); font-weight: 500; }

.end { position: relative; z-index: 3; display: grid; justify-items: center; gap: 10px; padding: 18vh var(--pad) 8vh; text-align: center; color: var(--muted); font-size: 13.5px; background: linear-gradient(transparent, var(--void) 40%); }
.end p { margin: 0; max-width: 520px; }
.end-links { display: flex; gap: 18px; }
.end-links a { color: var(--text); text-decoration: none; }
.end-links a:hover { color: var(--mint); }

.toast { position: fixed; z-index: 50; left: 50%; bottom: 26px; transform: translate(-50%, 20px); opacity: 0; padding: 10px 16px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--ink) 95%, transparent); font-size: 13.5px; transition: opacity .25s, transform .25s; pointer-events: none; }
.toast.on { opacity: 1; transform: translate(-50%, 0); }

/* ---------- phones: the scene pinned on top, the desks below ---------- */
@media (max-width: 900px) {
  :root { --bar: 58px; }
  .crew { display: none; }
  .bar { gap: 6px; padding: 0 12px; background: linear-gradient(color-mix(in srgb, var(--void) 96%, transparent) 70%, color-mix(in srgb, var(--void) 0%, transparent)); }
  .bar-end { gap: 6px; }
  .brand img { width: 30px; height: 30px; }
  .brand span { display: none; }
  .ca { padding: 0 8px; font-size: 10.5px; max-width: 104px; height: 32px; gap: 6px; }
  .ca #caText { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ico { width: 32px; height: 32px; }
  .btn { height: 34px; padding: 0 10px; font-size: 13px; }
  #walletBtn span { font-size: 0; } #walletBtn span::after { content: "Phantom"; font-size: 13px; }
  .floor { height: 50vh; height: 50svh; }
  .veil { height: 50svh; background: linear-gradient(transparent 70%, var(--void)); }
  .tags { height: 50svh; overflow: hidden; }
  .tag { font-size: 11.5px; padding: 4px 9px 4px 7px; }
  .ch { min-height: 0; padding: 50svh 14px 30px; display: block; }
  .ch-hero { padding-top: calc(50svh - 30px); min-height: 0; }
  .hero { gap: 12px; }
  .hero-title { font-size: clamp(44px, 15vw, 80px); }
  .hint { display: none; }
  .desk, .desk-wide, .desk-wall { position: relative; top: auto; width: 100%; max-height: none; margin: 0; padding: 20px 16px; background: color-mix(in srgb, var(--ink) 96%, transparent); }
  .ch + .ch { padding-top: 46svh; }
  .build-row { grid-template-columns: 1fr 1fr; }
  .build-row .field:last-child { grid-column: 1 / -1; }
  .watch-top { grid-template-columns: 1fr 1fr; }
  .watch-grid { grid-template-columns: 1fr; }
}
@media (max-width: 380px) { .ca { display: none; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
#walletBtn.on span { font-size: 13px; } #walletBtn.on span::after { content: none; }
/* figures in lists read in the body face with tabular numerals; mono stays for addresses */
.num, .trade .usd, .coin small { font-family: var(--sans); font-variant-numeric: tabular-nums; }
.coin b { font-size: 16px; }
.coin .num { font-size: 15px; }
