@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Cinzel:wght@700;900&family=VT323&display=swap'); /* MUST stay the first rule: an @import after any other rule is dropped, which is how Santa lost every web face (the [hidden] line used to sit above it) */
[hidden]{display:none!important} /* no display rule may beat [hidden] (10-16 review: a dozen stray boxes and buttons showed because an author display: beat the UA rule) */
/* ================= DESIGN SYSTEM v2 — foundation (owner 10-24: "top .01% desktop and mobile UI/UX… cleaner, AAA+"; spec design-1024/DESIGN.md)
   Tokens, type and the shared components live HERE, at the top, so a page's own rules further down override them by specificity and order.
   Page code: use the tokens (var(--…)) and the component classes in this block; do not re-declare a button, panel or input look per page.
   The Valhalla skin (valhalla.css, html[data-brand="valhalla"]) re-points the same tokens. ================= */
:root{
  /* colour: gold is for what you can press (and the one primary per view); text is off-white, numbers white, labels dim */
  --bg:#0f0d0a;--ink:#100c08;--panel:#1a140d;--panel2:#130f0a;--wood:#3b2f21;--wood2:#5a4631;--edge:#4a3a26;--frame:#6d5430;--frame2:#a8823f;
  --gold:#ffb43a;--gold1:#fff2c2;--gold2:#ffb347;--gold3:#b8860b;--gold-txt:#ffd06a;--yel:#ffd76a;--grn:#3ddc84;--red:#ff5d5d;--cyan:#7fd8ff;
  --txt:#f3e9d6;--num:#fffaf0;--dim:#a8987c;--mute:#7a6c55;
  --line:rgba(255,235,200,.07);--border:rgba(255,190,90,.16);--border-strong:rgba(255,190,90,.34);--fill:rgba(255,235,200,.04);--fill-2:rgba(255,235,200,.07);--hover:rgba(255,208,106,.07);
  --panel-bg:linear-gradient(#1a140d,#130f0a);--accent:var(--gold);--accent-grad:linear-gradient(#ffd77a,#f0a531);--on-accent:#241604;--accent-soft:rgba(255,180,58,.14);--focus:#ffd76a;
  /* type: Inter for UI, body and every number (tabular), Cinzel for display, the pixel face only as a rare accent */
  --font-ui:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--font-display:'Cinzel',Georgia,serif;--font-pixel:'VT323',monospace;--font-mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --sans:var(--font-ui);--mono:var(--font-mono);
  --fs-cap:12px;--fs-sm:13px;--fs-dense:14px;--fs-body:15px;--fs-input:16px;--fs-h4:18px;--fs-h3:22px;--fs-h2:28px;--fs-hero:38px;
  /* space (4-pt), shape, depth, motion */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;
  --r-panel:10px;--r-ctl:8px;--r-pill:999px;--ctl-h:40px;--ctl-h-sm:32px;
  --shadow-panel:inset 0 1px 0 rgba(255,225,170,.06),0 10px 28px rgba(0,0,0,.38);--shadow-pop:0 18px 48px rgba(0,0,0,.62);
  --dur:150ms;--ease-out:cubic-bezier(.2,.7,.2,1);
  /* chrome: the header, and the phone tab bar every bottom-fixed thing sits above (0 on desktop) */
  --header-h:56px;--tabbar-h:0px;--safe-b:env(safe-area-inset-bottom,0px);
}
@media (max-width:760px){:root{--ctl-h:44px;--header-h:52px;--tabbar-h:calc(58px + var(--safe-b))}}

/* ---- base */
*{box-sizing:border-box}
html{background:var(--bg);scrollbar-color:var(--wood2) var(--ink);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg) url('assets/bg.jpg?v=1789755095') center top/cover fixed no-repeat;color:var(--txt);font:400 var(--fs-body)/1.5 var(--font-ui);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
@supports (height:100dvh){body{min-height:100dvh}}
a{color:var(--gold-txt);text-decoration-color:rgba(255,208,106,.4);text-underline-offset:2px}a:hover{color:#ffe3a0}
button,input,select,textarea{font-family:inherit;font-size:var(--fs-body);color:inherit}
a,button,.btn,input,select,textarea,label,summary,[role=button]{touch-action:manipulation}
::selection{background:rgba(255,180,58,.35);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:var(--wood2);border:2px solid var(--ink);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#6e5639}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
main{max-width:1440px;margin:0 auto;padding:var(--sp-3) var(--sp-4)}
@media (max-width:760px){main{padding:var(--sp-2) max(var(--sp-2),env(safe-area-inset-left)) var(--sp-3) max(var(--sp-2),env(safe-area-inset-right))}}
.note{color:var(--dim);font-size:var(--fs-dense);line-height:1.5}
small{font-size:var(--fs-sm)}

/* ---- type helpers (page agents: prefer these over a new font rule) */
.t-display{font-family:var(--font-display);font-weight:700;letter-spacing:.01em}
.t-h1,.t-h2{font:700 var(--fs-h2)/1.15 var(--font-display);color:var(--gold-txt);margin:0}.t-h3{font:700 var(--fs-h3)/1.2 var(--font-display);color:var(--gold-txt);margin:0}.t-h4{font:600 var(--fs-h4)/1.3 var(--font-ui);color:var(--txt);margin:0}
.t-label{font-size:var(--fs-cap);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.t-dim{color:var(--dim)}.t-mute{color:var(--mute)}.t-num{color:var(--num);font-variant-numeric:tabular-nums}.t-up{color:var(--grn)}.t-dn{color:var(--red)}.t-pixel{font-family:var(--font-pixel);letter-spacing:.02em}
.t-right{text-align:right}.t-clip{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* one label, two lengths: <i class="l-long">Bought by taxes</i><i class="l-short">Bought</i> — the short one on phones, so nothing wraps or clips */
.l-long,.l-short{font-style:inherit}.l-short{display:none}@media (max-width:760px){.l-long{display:none}.l-short{display:inline}}

/* ---- panel: ONE surface everywhere. Inside a panel, a group is a lighter fill or a hairline — never another bordered card */
.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel);padding:var(--sp-4);margin-bottom:var(--sp-3);min-width:0}
.panel .panel{background:var(--fill);border-color:var(--line);box-shadow:none;margin-bottom:0}
.panel h2{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line);font:700 var(--fs-h4)/1.25 var(--font-display);letter-spacing:.02em;color:var(--gold-txt);text-shadow:0 1px 0 #000}
.panel h2::before{content:'';flex:none;width:16px;height:16px;background:url('assets/hat.png') center/contain no-repeat}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin:0 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line)}.panel-head>h2{margin:0;padding:0;border:0}
.group{background:var(--fill);border-radius:var(--r-ctl);padding:var(--sp-3)}.divider{height:1px;background:var(--line);border:0;margin:var(--sp-3) 0}
@media (max-width:760px){.panel{padding:var(--sp-3)}}

/* ---- stat tiles: a label (quiet caps), a number (display face, white), a sub line */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-2);margin-bottom:var(--sp-3)}
.stat{position:relative;min-width:0;padding:10px 12px;background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--r-ctl)}
.panel .stat{background:var(--fill);border-color:var(--line)}
.stat span{display:block;font-size:var(--fs-cap);letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.stat b{display:block;margin-top:2px;font:700 22px/1.15 var(--font-display);color:var(--num);overflow-wrap:anywhere}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat b{font-size:19px}}
@media (min-width:761px) and (max-width:1180px){#stats{grid-template-columns:repeat(3,minmax(0,1fr))}} /* the plaza's six figures: 3 + 3 (six 158px tiles broke "HOLDERS / WITH 1+ HAT" and "CHAIN FULLY / INDEXED", 10-24 sweep) */

/* ---- buttons: primary (gold, one per view), .sec secondary (outlined), .ghost tertiary, .text a link-weight button; .sm / .lg sizes */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--ctl-h);padding:0 16px;border:1px solid #8a5c14;border-radius:var(--r-ctl);background:var(--accent-grad);color:var(--on-accent);font:600 var(--fs-body)/1.1 var(--font-ui);letter-spacing:.01em;white-space:nowrap;text-decoration:none;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 1px 0 rgba(0,0,0,.55),0 4px 14px rgba(0,0,0,.28);transition:filter var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),background-color var(--dur),border-color var(--dur),color var(--dur),transform var(--dur)}
.btn:hover{filter:brightness(1.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 1px 0 rgba(0,0,0,.55),0 6px 18px rgba(255,170,50,.24)}
.btn:active{transform:translateY(1px)}
.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;filter:grayscale(.25);transform:none;box-shadow:none}
.btn.sec{background:rgba(255,235,200,.04);color:var(--txt);border-color:var(--border-strong);box-shadow:none}.btn.sec:hover{background:var(--hover);border-color:rgba(255,190,90,.55);color:#fff;filter:none}
.btn.ghost{background:transparent;color:var(--dim);border-color:transparent;box-shadow:none}.btn.ghost:hover{background:var(--hover);color:var(--txt);filter:none}
.btn.text,.linkbtn{min-height:0;padding:0 2px;background:none;border:0;box-shadow:none;color:var(--gold-txt);font:inherit;font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,208,106,.4);text-underline-offset:3px;cursor:pointer}.btn.text:hover,.linkbtn:hover{filter:none;color:#ffe3a0}
.btn.sm,.lp-max,.ge-acts .btn,.cg-btns .btn{min-height:var(--ctl-h-sm);padding:0 12px;font-size:var(--fs-sm)}.btn.lg{min-height:48px;padding:0 22px;font-size:16px}.btn.block{display:flex;width:100%}
.btn.danger{background:linear-gradient(#ff7070,#c62828);border-color:#ff8a80;color:#fff}
.btn.gold{background:var(--accent-grad);color:var(--on-accent);border-color:#8a5c14}
@media (max-width:760px){.btn{min-height:var(--ctl-h)}.btn.sm{min-height:36px}}

/* ---- fields: dark fill, 1px border, the gold ring on focus; 16px so iOS never zooms */
/* :where() keeps these at element weight, so any page rule (.lf-tax input, .sw-amt…) overrides them without a fight */
:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea){min-height:var(--ctl-h);padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--r-ctl);background:#0c0906;color:var(--txt);font:400 var(--fs-input)/1.3 var(--font-ui);box-shadow:inset 0 1px 2px rgba(0,0,0,.45);transition:border-color var(--dur),box-shadow var(--dur)}
:where(textarea){min-height:88px;line-height:1.45;resize:vertical}
:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea):hover{border-color:rgba(255,190,90,.5)}
:where(input,select,textarea):focus{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--focus)}
input::placeholder,textarea::placeholder{color:var(--mute);opacity:1}
input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--gold)}
@media (pointer:coarse){input,select,textarea{font-size:max(16px,1em)!important}}
.field{display:grid;gap:6px}.field>span,.field>label{font-size:var(--fs-sm);font-weight:600;color:var(--dim)}

/* ---- segmented controls (tabs, time frames): one track, the open one lit */
.seg,.ge-tabs,.tt-tabs{display:inline-flex;align-items:center;gap:2px;max-width:100%;padding:3px;background:rgba(0,0,0,.38);border:1px solid var(--line);border-radius:var(--r-ctl)}
.seg>button,.seg>a,.ge-tabs button,.tt-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--dim);font:600 var(--fs-sm)/1 var(--font-ui);white-space:nowrap;text-decoration:none;cursor:pointer;transition:background-color var(--dur),color var(--dur)}
.seg>button:hover,.seg>a:hover,.ge-tabs button:hover,.tt-tabs button:hover{color:var(--txt);background:var(--hover)}
.seg>.on,.seg>[aria-selected=true],.seg>[aria-pressed=true],.ge-tabs button.on,.tt-tabs button.on{background:var(--accent-soft);border-color:rgba(255,190,90,.38);color:var(--gold-txt)}
.ge-tabs i,.seg i{font-style:normal;font-weight:500;opacity:.75}
@media (max-width:760px){.seg>button,.seg>a,.ge-tabs button,.tt-tabs button{min-height:38px}}

/* ---- chips and badges: 22–24px pills; colour says what it is, never size */
.chip,.badge{display:inline-flex;align-items:center;gap:4px;min-height:22px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--fill-2);color:var(--txt);font:600 var(--fs-cap)/1 var(--font-ui);white-space:nowrap;vertical-align:middle}
.badge{margin-left:4px}.chip.gold,.badge.gold{color:var(--gold-txt);border-color:rgba(255,190,90,.4);background:var(--accent-soft)}.chip.up,.badge.ok{color:var(--grn);border-color:rgba(61,220,132,.35);background:rgba(61,220,132,.1)}.chip.dn,.badge.bad{color:var(--red);border-color:rgba(255,93,93,.35);background:rgba(255,93,93,.1)}
.ge-soon,.ge-warn,.ge-island,.ge-isle,.ge-done{display:inline-flex;align-items:center;min-height:18px;padding:0 6px;border-radius:var(--r-pill);font:600 11px/1 var(--font-ui);letter-spacing:.02em;white-space:nowrap}

/* ---- tables and list rows: hairline rows, sticky quiet header, numbers right-aligned and tabular */
table{width:100%;border-collapse:collapse;font-size:var(--fs-dense)}
th{padding:8px 10px;text-align:left;font-size:var(--fs-cap);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);background:var(--panel2);border-bottom:1px solid var(--border)}
td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:hover td{background:var(--hover)}
.sticky-head th{position:sticky;top:0;z-index:1}
td.num,th.num,.num{text-align:right;font-variant-numeric:tabular-nums}
.list{display:flex;flex-direction:column}.li{display:flex;align-items:center;gap:var(--sp-3);min-height:44px;padding:8px var(--sp-2);border-bottom:1px solid var(--line)}.li:last-child{border-bottom:0}.li:hover{background:var(--hover)}
@media (max-width:760px){.li{min-height:56px}}
/* long lists: the first few, then "Show all (N)" (app.js capList) */
.cap-x{display:none!important}
.cap-more{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:36px;margin-top:var(--sp-2);border:1px dashed var(--border-strong);border-radius:var(--r-ctl);background:transparent;color:var(--gold-txt);font:600 var(--fs-sm)/1 var(--font-ui);cursor:pointer}.cap-more:hover{background:var(--hover);border-style:solid}

/* ---- skeletons and empty states */
.skel{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,rgba(255,235,200,.05),rgba(255,235,200,.11),rgba(255,235,200,.05));background-size:200% 100%;animation:skel 1.2s linear infinite}.skel+.skel{margin-top:8px}.skel.lg{height:28px}
@keyframes skel{from{background-position:100% 0}to{background-position:-100% 0}}
.empty{display:grid;justify-items:center;gap:6px;padding:var(--sp-5) var(--sp-4);text-align:center;color:var(--dim);font-size:var(--fs-dense)}.empty b{color:var(--txt);font-size:var(--fs-body)}.empty .btn{margin-top:var(--sp-2)}

/* ---- toasts: one place, above the phone tab bar and the home indicator */
#toast{pointer-events:none;position:fixed;left:50%;bottom:calc(16px + max(var(--tabbar-h),var(--safe-b)));transform:translateX(-50%);z-index:1000;display:none;width:max-content;max-width:min(92vw,560px);padding:10px 16px;border:1px solid var(--border-strong);border-radius:10px;background:rgba(24,18,11,.97);color:var(--txt);font:500 var(--fs-dense)/1.4 var(--font-ui);text-align:center;box-shadow:var(--shadow-pop)} /* max-content: centred at left:50%, the box only had the right half of the screen to size in */
#toast.ok{border-color:rgba(61,220,132,.5)}#toast.bad{border-color:rgba(255,93,93,.5)}
/* the toast never lands on another bottom thing (owner 10-24): above the install chip and the launch status bar; on a phone with a sheet open
   (sheets rise from the bottom, their actions under the thumb) it drops from the top instead of covering the sheet's buttons */
body.gw-chip-on #toast,body:has(.launch-status-bar) #toast{bottom:calc(72px + max(var(--tabbar-h),var(--safe-b)))}
@media (max-width:760px){html body:has(.vb-overlay) #toast{bottom:auto;top:calc(10px + env(safe-area-inset-top))}}
/* every other bottom-fixed thing (.fl-toast, .launch-status-bar, .bb-tray, .gw-appchip, .m-trade) adds max(var(--tabbar-h),var(--safe-b)) in its own rule: above the tab bar on a phone, above the home indicator everywhere */

/* ---- dialogs and sheets (siteConfirm, siteAsk, siteProgress, every .vb-modal): centred card on desktop, a sheet from the bottom on phones */
.vb-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:safe center;justify-content:center;padding:16px;overflow:auto;background:rgba(6,4,2,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.vb-modal{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:var(--sp-5) var(--sp-5) var(--sp-4);background:var(--panel-bg);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow-pop);animation:vbpop 160ms var(--ease-out)}
@supports (height:100dvh){.vb-modal{max-height:calc(100dvh - 32px)}}
.vb-modal h3{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);font:700 20px/1.25 var(--font-display);color:var(--gold-txt);text-shadow:0 1px 0 #000}
.vb-modal h3::before{content:'';flex:none;width:18px;height:18px;background:url('assets/hat.png') center/contain no-repeat}
.vb-modal p{margin:0 0 var(--sp-3);color:var(--txt);line-height:1.55}
.vb-modal .note{margin:0 0 var(--sp-3)}
.vb-rows{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:var(--sp-2) 0 var(--sp-3);padding:10px 12px;background:var(--fill);border:1px solid var(--line);border-radius:var(--r-ctl)}
.vb-rows span{align-self:center;color:var(--dim);font-size:var(--fs-sm)}.vb-rows b{color:var(--num);font-weight:600;font-size:var(--fs-dense);text-align:right;overflow-wrap:anywhere}
.vb-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:flex-end;margin-top:var(--sp-4)}.vb-actions .btn{min-width:120px}
@media (max-width:760px){
  .vb-overlay{align-items:flex-end;padding:env(safe-area-inset-top) 0 0}
  .vb-modal{width:100%;max-width:none;max-height:calc(100dvh - 24px - env(safe-area-inset-top));border-radius:16px 16px 0 0;border-bottom:0;padding:var(--sp-3) var(--sp-4) calc(var(--sp-4) + var(--safe-b));animation:sheetUp 220ms var(--ease-out)}
  .vb-modal::before{content:'';display:block;width:40px;height:4px;margin:0 auto var(--sp-3);border-radius:2px;background:rgba(255,220,150,.28)}
}
@keyframes sheetUp{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes navDrop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ---- header: logo · grouped nav · wallet, 56px (phones: logo + wallet, 52px; the nav lives in the bottom tab bar) */
header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-4);min-height:var(--header-h);padding:max(6px,env(safe-area-inset-top)) max(var(--sp-4),env(safe-area-inset-right)) 6px max(var(--sp-4),env(safe-area-inset-left));background:linear-gradient(rgba(34,26,17,.97),rgba(22,17,11,.97));border-bottom:1px solid var(--border);box-shadow:0 8px 24px rgba(0,0,0,.45)}
header a.home{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none}
header img{width:34px;height:34px;image-rendering:pixelated}
header .brand{font:900 21px/1 var(--font-display);letter-spacing:.03em;color:var(--gold-txt);text-shadow:0 2px 0 #3a2506,0 3px 10px rgba(0,0,0,.8)}
header a.home:hover .brand{filter:brightness(1.12)}
html:not([data-brand="valhalla"]) #nav{position:relative;display:flex;align-items:center;gap:2px;margin:0;padding:3px;background:rgba(10,8,5,.55);border:1px solid var(--line);border-radius:12px}
html:not([data-brand="valhalla"]) #nav>a,html:not([data-brand="valhalla"]) #nav .nav-drop{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 13px;border:0;border-radius:9px;background:none;color:#d6c6a4;font:600 var(--fs-dense)/1 var(--font-ui);letter-spacing:.01em;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color var(--dur),background-color var(--dur)}
html:not([data-brand="valhalla"]) #nav>a:hover,html:not([data-brand="valhalla"]) #nav .nav-drop:hover,html:not([data-brand="valhalla"]) #nav .nav-group.open .nav-drop{color:#fff3d6;background:var(--hover)}
/* the open page: a static lit tab (owner 10-24: the old sliding pill drew half-way / overlapped on load and scroll) */
html:not([data-brand="valhalla"]) #nav>a.on,html:not([data-brand="valhalla"]) #nav .nav-group.on>.nav-drop{color:var(--on-accent);background:var(--accent-grad);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 0 14px rgba(255,180,60,.22)}
#nav>a[hidden]{display:none}
.nav-group{position:relative;display:inline-flex}
nav a,.nav-menu a,.tabbar a,.tb-sheet a{text-decoration:none}.nav-drop{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:inherit}
.nav-caret{display:inline-block;flex:none;width:6px;height:6px;margin-left:1px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;opacity:.75;transform:translateY(-2px) rotate(45deg);transition:transform var(--dur)}.nav-group.open .nav-caret{transform:translateY(1px) rotate(225deg)}
.nav-menu{position:absolute;top:calc(100% + 10px);left:50%;z-index:210;display:none;grid-template-columns:1fr 1fr;gap:2px;min-width:440px;padding:6px;background:linear-gradient(rgba(28,21,13,.985),rgba(16,12,8,.985));border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow-pop);transform:translateX(-50%)}
.nav-group.open>.nav-menu{display:grid;animation:navDrop 150ms var(--ease-out) both}
header:has(.nav-group.open){z-index:200}
.nav-menu a{display:grid;grid-template-columns:28px 1fr;column-gap:10px;align-items:center;padding:9px 10px;border-radius:8px;color:var(--txt);text-decoration:none}
.nav-menu a::before{content:'';grid-row:1/3;width:28px;height:28px;background:center/contain no-repeat}
.nav-menu a b{font-size:var(--fs-dense);font-weight:600;color:var(--txt)}.nav-menu a small{grid-column:2;font-size:var(--fs-cap);color:var(--dim);line-height:1.35}
.nav-menu a:hover{background:var(--hover)}.nav-menu a.on{background:var(--accent-soft)}.nav-menu a.on b{color:var(--gold-txt)}
/* the menu items' painted icons (one map: header menus, phone sheets) */
:is(.nav-menu,.tb-sheet) a[data-s="pulse"]::before{background-image:url('assets/icons/pulse.png')}:is(.nav-menu,.tb-sheet) a[data-s="perps"]::before{background-image:url('assets/icons/swords.png')}:is(.nav-menu,.tb-sheet) a[data-s="lp"]::before{background-image:url('assets/icons/buyback.png')}:is(.nav-menu,.tb-sheet) a[data-s="calls"]::before{background-image:url('assets/icons/star.png')}
:is(.nav-menu,.tb-sheet) a[data-act="launch"]::before{background-image:url('assets/icons/rocket.png')}:is(.nav-menu,.tb-sheet) a[data-act="creator"]::before{background-image:url('assets/icons/crown.png')}:is(.nav-menu,.tb-sheet) a[data-s="gamefi"]::before{background-image:url('assets/icons/gamefi.png')}:is(.nav-menu,.tb-sheet) a:is([data-s="baskets"],[data-s="si"],[data-s="index"])::before{background-image:url('assets/icons/hat.png')}
:is(.nav-menu,.tb-sheet) a[data-s="yields"]::before{background-image:url('assets/icons/rewards.png')}:is(.nav-menu,.tb-sheet) a[data-s="todt"]::before{background-image:url('assets/icons/burn.png')}:is(.nav-menu,.tb-sheet) a[data-s="quests"]::before{background-image:url('assets/icons/trophy.png')}:is(.nav-menu,.tb-sheet) a[data-s="plaza"]::before{background-image:url('assets/icons/chat.png')}
:is(.nav-menu,.tb-sheet) a[data-s="advent"]::before,:is(.nav-menu,.tb-sheet) a[data-s="art"]::before{background-image:url('assets/icons/star.png')}:is(.nav-menu,.tb-sheet) a[data-s="lore"]::before{background-image:url('assets/icons/shield.png')}:is(.nav-menu,.tb-sheet) a[data-s="transparency"]::before{background-image:url('assets/icons/ok.png')}:is(.nav-menu,.tb-sheet) a[data-s="numbers"]::before{background-image:url('assets/icons/numbers.png')}:is(.nav-menu,.tb-sheet) a[data-s="term"]::before{background-image:url('assets/icons/web.png')}:is(.nav-menu,.tb-sheet) a[data-s="eco"]::before{background-image:url('assets/icons/crown.png')}:is(.nav-menu,.tb-sheet) a.nav-dev::before{background-image:url('assets/icons/web.png')}
/* the wallet side: chips shrink, Connect never leaves the screen */
#wallet{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);min-width:0;margin:0;flex-wrap:nowrap}
/* Santa: logo and wallet share what is left equally, so the rail sits on the page's true centre */
html:not([data-brand="valhalla"]) header>.home,html:not([data-brand="valhalla"]) header>#wallet{flex:1 1 0;min-width:max-content}
#wallet>#connectBtn{flex:0 0 auto;white-space:nowrap}#wallet>.pnl-chip,#wallet>.hdr-bal{flex:0 1 auto;min-width:0;overflow:hidden;white-space:nowrap}
#wallet>#connectBtn:has(.cb-nm){gap:4px;padding:0 12px;font-size:var(--fs-dense)}#connectBtn .cb-nm{max-width:15ch;overflow:hidden;text-overflow:ellipsis}#connectBtn .cb-so{font-size:var(--fs-cap);opacity:.75;font-weight:400}
/* a mid-width desktop: ONE row from 761px up (owner 10-24: the second row cost ~50px at 1024). The rail tightens, then the brand word, the P&L
   label and a long name give way, like Valhalla's header; nothing wraps and nothing clips (checked at 761/860/1024/1100/1280/1440/1920, signed in and out) */
@media (min-width:761px) and (max-width:1279px){html:not([data-brand="valhalla"]) #nav>a,html:not([data-brand="valhalla"]) #nav .nav-drop{padding:0 10px}html:not([data-brand="valhalla"]) header .hdr-bal{display:none}}
@media (min-width:761px) and (max-width:1100px){html:not([data-brand="valhalla"]) header{flex-wrap:nowrap;gap:var(--sp-3)}html:not([data-brand="valhalla"]) #nav>a,html:not([data-brand="valhalla"]) #nav .nav-drop{padding:0 8px}#connectBtn .cb-nm{max-width:11ch}}
@media (min-width:761px) and (max-width:960px){html:not([data-brand="valhalla"]) header .brand{display:none}html:not([data-brand="valhalla"]) #nav>a,html:not([data-brand="valhalla"]) #nav .nav-drop{gap:5px;padding:0 7px;font-size:var(--fs-sm)}html:not([data-brand="valhalla"]) header .pnl-chip span{display:none}html:not([data-brand="valhalla"]) header .pnl-chip{margin-right:0;padding:5px 9px}#connectBtn .cb-nm{max-width:8ch}}
@media (max-width:760px){
  header{gap:var(--sp-2);padding-top:max(4px,env(safe-area-inset-top));padding-bottom:4px}
  html:not([data-brand="valhalla"]) header>.home{min-width:0}
  header img{width:30px;height:30px}header .brand{font-size:18px}
  html:not([data-brand="valhalla"]) header>#nav{display:none} /* the bottom tab bar is the phone's nav (owner 10-24: the sideways strip cut "Trade" off and orphaned an icon) */
  #wallet{gap:6px}#wallet .btn{min-height:38px;padding:0 12px;font-size:var(--fs-dense)}#connectBtn{max-width:46vw;overflow:hidden;text-overflow:ellipsis}.hdr-bal i{display:none}
}

/* /lore: the story beside the 2002 Lumbridge drop (10-24 sweep: the text ran down the left half of a full-width panel, the right half empty) */
.lore-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-5);align-items:start}.lore-body p:first-child{margin-top:0}.lore-art{margin:0}.lore-art img{display:block;width:100%;height:auto;aspect-ratio:1920/1072;object-fit:cover;border:1px solid var(--border);border-radius:var(--r-ctl)}
@media (max-width:760px){.lore-body{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}}

/* ---- phone tab bar (app.js tabBar): Grand Exchange · Trade · Launch · Earn · More, each opens its group as a sheet */
.tabbar{display:none}
@media (max-width:760px){
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:95;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:var(--tabbar-h);padding:0 max(4px,env(safe-area-inset-right)) var(--safe-b) max(4px,env(safe-area-inset-left));background:linear-gradient(rgba(30,23,15,.97),rgba(16,12,8,.985));border-top:1px solid var(--border);box-shadow:0 -8px 24px rgba(0,0,0,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .tabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;height:58px;padding:0 2px;border:0;background:none;color:var(--dim);font:600 11px/1.1 var(--font-ui);letter-spacing:.01em;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .tabbar button i{display:block;width:24px;height:24px;background:center/contain no-repeat;opacity:.72;filter:grayscale(.35);transition:opacity var(--dur),filter var(--dur),transform var(--dur)}
  .tabbar button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tabbar button.on,.tabbar button[aria-expanded=true]{color:var(--gold-txt)}.tabbar button.on i,.tabbar button[aria-expanded=true] i{opacity:1;filter:none}
  .tabbar button.on::before{content:'';position:absolute;top:0;left:28%;right:28%;height:2px;border-radius:0 0 2px 2px;background:var(--gold)}
  .tabbar button:active i{transform:scale(.92)}
  body{padding-bottom:var(--tabbar-h)}
}
.tb-scrim{position:fixed;inset:0;z-index:93;background:rgba(6,4,2,.55);animation:tbFade 150ms ease-out}
@keyframes tbFade{from{opacity:0}to{opacity:1}}
.tb-sheet{position:fixed;left:8px;right:8px;bottom:calc(var(--tabbar-h) + 8px);z-index:94;display:grid;gap:2px;max-height:calc(100dvh - var(--tabbar-h) - 80px);overflow:auto;overscroll-behavior:contain;padding:8px;background:linear-gradient(rgba(30,23,15,.99),rgba(16,12,8,.99));border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--shadow-pop);animation:sheetUp 200ms var(--ease-out)}
.tb-sheet h4{margin:4px 8px 6px;font:600 var(--fs-cap)/1 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.tb-sheet a{display:grid;grid-template-columns:30px 1fr;column-gap:12px;align-items:center;min-height:56px;padding:8px 10px;border-radius:10px;color:var(--txt);text-decoration:none}
.tb-sheet a::before{content:'';grid-row:1/3;width:30px;height:30px;background:center/contain no-repeat}
.tb-sheet a b{font-size:var(--fs-body);font-weight:600}.tb-sheet a small{grid-column:2;font-size:var(--fs-sm);color:var(--dim);line-height:1.35}
.tb-sheet a:active,.tb-sheet a:hover{background:var(--hover)}.tb-sheet a.on{background:var(--accent-soft)}.tb-sheet a.on b{color:var(--gold-txt)}

/* ---- the ticker strip under the header (King of the Hill / an open airdrop): one line, ≤32px */
.king-bar,.air-bar{display:flex;align-items:center;gap:10px;min-height:32px;padding:4px max(var(--sp-4),env(safe-area-inset-right)) 4px max(var(--sp-4),env(safe-area-inset-left));font-size:var(--fs-sm);line-height:1.2;white-space:nowrap;overflow:hidden}
.king-bar{background:linear-gradient(90deg,rgba(58,42,8,.92),rgba(22,16,8,.92));border-bottom:1px solid rgba(255,190,90,.22);color:var(--txt);text-decoration:none}
.king-bar img{flex:none;width:20px;height:20px;border-radius:50%;object-fit:cover}.king-bar b{flex:none;color:var(--gold-txt);font-weight:600}.king-bar span{min-width:0;color:var(--dim);overflow:hidden;text-overflow:ellipsis}
.king-bar em{flex:none;margin-left:auto;font-style:normal;color:var(--txt)}.king-bar .kb-go{flex:none;font-style:normal;font-weight:600;font-size:var(--fs-cap);color:var(--gold-txt);border:1px solid rgba(255,190,90,.4);border-radius:var(--r-pill);padding:2px 10px}
.kb-crown{flex:none;font-size:14px}
@media (max-width:640px){.king-bar span{display:none}.king-bar{gap:8px}}

/* ---- footer */
footer{max-width:1440px;margin:0 auto;padding:var(--sp-6) var(--sp-4) var(--sp-6);text-align:center;color:var(--mute);font-size:var(--fs-sm);line-height:1.6}footer a{color:var(--dim)}footer a:hover{color:var(--gold-txt)}

/* ---- motion: nothing moves for people who asked it not to */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}
/* ================= end of the v2 foundation ================= */
body::before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%);z-index:0}
header,main,footer{position:relative;z-index:1}

.pix{font-family:var(--font-ui);font-weight:700;font-size:14px;letter-spacing:.5px}

section{display:none}section.on{display:block}
.hero{position:relative;border:3px solid var(--edge);background:var(--ink) center 35%/cover url('assets/hero.jpg?v=1789755095');min-height:250px;display:flex;align-items:flex-end;padding:18px 22px;margin-bottom:10px;box-shadow:inset 0 -140px 110px -60px #0e0a07}
.hero h1{font-family:var(--font-ui);font-weight:700;font-size:23px;color:var(--yel);text-shadow:3px 3px 0 #000;margin:0 0 8px}
.hero p{margin:0;font-size:18px;text-shadow:2px 2px 0 #000;max-width:760px}

.grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(360px,1fr);gap:10px}@media(max-width:980px){.grid{grid-template-columns:1fr}}

#plazaWrap{position:relative;border:3px solid var(--edge);background:var(--ink);overflow:hidden;line-height:0}
#plaza{display:block;width:100%;height:auto;image-rendering:auto}
#modeTag{position:absolute;top:8px;left:8px;background:rgba(0,0,0,.72);color:var(--txt);padding:4px 10px;border-radius:var(--r-pill);font:600 var(--fs-cap)/1.4 var(--font-ui)}
#chatLog{height:220px;overflow-y:auto;background:var(--fill);border-radius:var(--r-ctl);padding:8px 10px;font-size:var(--fs-dense);line-height:1.5}
#chatLog .m{margin:2px 0}.m .n{color:var(--gold)}.m .sys{color:var(--cyan)}.m .t{color:var(--yel)}.m .lvl{color:var(--dim);font-size:var(--fs-cap)}
#chatForm{display:flex;gap:8px;margin-top:var(--sp-2)}#chatForm input{flex:1;min-width:0}
.quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--sp-2)}.quick button{min-height:32px;padding:0 10px;background:var(--fill-2);color:var(--txt);border:1px solid var(--border);border-radius:var(--r-pill);font:600 var(--fs-sm)/1 var(--font-ui);cursor:pointer}.quick button:hover{background:var(--hover)}.quick button.on{background:var(--accent-soft);border-color:rgba(255,190,90,.5);color:var(--gold-txt)}
.quick button.em{color:var(--cyan)}
#feed{max-height:300px;overflow-y:auto;font-size:15px;line-height:1.15}#feed div{padding:2px 0;border-bottom:1px solid #15100c}
#feed .buy{color:var(--grn)}#feed .sell{color:var(--red)}#feed .transfer{color:var(--dim)}#feed .lp_add,#feed .lp_remove{color:var(--yel)}
.lp-amt-row select{min-width:0}

.mono{font-family:monospace;font-size:16px}

.card{display:flex;gap:14px;align-items:center}.card img{width:96px;height:96px;image-rendering:pixelated;border:2px solid var(--edge);background:var(--ink)}
.card .name{font-family:var(--font-ui);font-weight:700;font-size:15px;color:var(--yel)}
.xpbar{height:14px;background:var(--ink);border:2px solid var(--edge);margin:6px 0}.xpbar i{display:block;height:100%;background:var(--grn)}
.form{display:grid;gap:8px}.form input,.form textarea{background:var(--ink);color:var(--txt);border:2px solid var(--edge);padding:6px}
.count{font-family:var(--font-ui);font-weight:700;font-size:20px;color:var(--yel);text-shadow:2px 2px 0 #000}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}.gallery img{width:100%;border:2px solid var(--edge);display:block}
.idx{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.idx .stat b{font-size:34px}
#pfpCanvas{max-width:100%;border:2px solid var(--edge);background:var(--ink);touch-action:none}

.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:900px){.two{grid-template-columns:1fr}}

 /* max-content: centred at left:50%, the box only had the right half of the screen to size in and wrapped short lines (owner 10-15) */

/* ---- visual lists ---- */
/* Nice / Naughty rows — Design v2 (owner 10-24): hairline rows, not a bordered box each; the badges wrap under the name instead of being cut off by the bar ("still h…") */
.lsum{display:flex;gap:14px;flex-wrap:wrap;margin:4px 0 8px;font-size:var(--fs-dense);color:var(--dim)}.lsum b{color:var(--gold-txt);font-size:17px;font-variant-numeric:tabular-nums}
.rows{display:flex;flex-direction:column;gap:0}
.row{display:grid;grid-template-columns:30px 46px minmax(0,1fr) minmax(72px,150px) 44px 64px;gap:10px;align-items:center;padding:4px 6px;background:none;border:0;border-bottom:1px solid var(--line)}.rows>.row{min-height:56px}
.row:nth-child(even){background:rgba(255,235,200,.02)}.row:hover{background:var(--hover)}
.row .rk{font-family:var(--font-ui);font-weight:700;font-size:14px;color:var(--dim);text-align:center}.row.r1 .rk{color:#ffd700}.row.r2 .rk{color:#d9d9d9}.row.r3 .rk{color:#cd7f32}
.av{position:relative;width:46px;height:46px}.av img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:auto}.av .hat{inset:auto;pointer-events:none}
.row .nm{min-width:0;color:var(--txt);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .nm small{color:var(--dim);font:400 var(--fs-cap) var(--font-mono);margin-left:6px}.row .nm>div{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px;white-space:normal;font-weight:400}.row .nm .badge{margin:0}
.bar{height:8px;background:var(--fill-2);border:0;border-radius:4px;overflow:hidden;position:relative}.bar i{display:block;height:100%;background:linear-gradient(90deg,#b8860b,#ffd700)}.bar.bad i{background:linear-gradient(90deg,#7a1f1f,#ff4d4d)}
.row .hv{text-align:right;color:var(--gold-txt);font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.row.bad .hv{color:var(--red)}
.row .bd{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.row .bd .badge{margin:0}.row.bad{grid-template-columns:30px 46px minmax(0,1fr) minmax(72px,150px) 44px 172px} /* a fixed last column: the bars line up row to row (they jumped with each row's badges) */
@media(max-width:700px){.row,.row.bad{grid-template-columns:24px 40px minmax(0,1fr) 44px;gap:8px}.row .bar,.row .bd{display:none}}

/* ================= AAA+ pass ================= */

body::after{content:'';position:fixed;inset:-200px 0 0 0;pointer-events:none;z-index:1;opacity:.55;
 background-image:radial-gradient(2px 2px at 20px 30px,#fff,transparent),radial-gradient(1.5px 1.5px at 90px 120px,#fffd,transparent),radial-gradient(2.5px 2.5px at 160px 60px,#fff,transparent),radial-gradient(1.5px 1.5px at 230px 170px,#fffb,transparent),radial-gradient(2px 2px at 300px 90px,#fff,transparent),radial-gradient(1.5px 1.5px at 60px 220px,#fffc,transparent),radial-gradient(2px 2px at 340px 240px,#fffd,transparent);
 background-size:380px 300px;animation:snow 14s linear infinite}
@keyframes snow{from{background-position:0 0}to{background-position:40px 300px}}

.hero{min-height:360px;border:2px solid var(--frame2);border-radius:6px;background:var(--ink) center 40%/cover url('assets/hero.jpg?v=1789755095');box-shadow:0 0 0 2px #0a0805,0 12px 40px rgba(0,0,0,.6);overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,8,5,.78) 0%,rgba(10,8,5,.5) 38%,rgba(10,8,5,.05) 65%,rgba(10,8,5,0) 100%),linear-gradient(180deg,transparent 50%,rgba(10,8,5,.7) 100%)}
.hero>div{position:relative}@media(max-width:820px){.hero{min-height:220px;padding:14px}.hero h1{font-size:26px}.hero p{font-size:15px}} /* the plaza hero on a phone (kept from the old phone-header block) */
.hero h1{font-family:'Cinzel',serif;font-weight:900;font-size:48px;line-height:1.05;letter-spacing:1px;margin:0 0 10px;color:#ffd06a;text-shadow:0 2px 0 #3a2506,0 4px 14px rgba(0,0,0,.85),0 0 28px rgba(255,180,70,.35)}
.hero p{font-size:18px;max-width:720px;color:#f4e7cc;text-shadow:0 2px 0 #000,0 0 12px #000}

#plazaWrap{border:1px solid var(--frame2);border-radius:6px;box-shadow:0 0 0 2px #0a0805,0 12px 36px rgba(0,0,0,.6),inset 0 0 60px rgba(0,0,0,.6)}
#plazaWrap::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px rgba(0,0,0,.55);border-radius:6px}
#modeTag{background:linear-gradient(#3f3122,#241b12);border:1px solid var(--frame2);border-radius:4px;color:#ffd76a;box-shadow:0 2px 6px #000;z-index:2}
#chatLog .m .n{color:var(--gold-txt);font-weight:600}
.count{font-family:'Cinzel',serif;font-weight:900;font-size:30px;color:#ffd06a;text-shadow:0 2px 0 #3a2506,0 3px 8px rgba(0,0,0,.7)}
.card .name{font-family:'Cinzel',serif;font-weight:900;font-size:18px;color:#ffd76a}

.gallery .panel{padding:6px;transition:transform .15s,box-shadow .15s}.gallery .panel:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 0 0 2px #0a0805,0 14px 34px rgba(0,0,0,.6),0 0 24px rgba(255,180,70,.25)}
.gallery img{border-radius:4px}
.row.r1{box-shadow:inset 3px 0 0 #ffd700}
.idx .stat b{font-size:34px}

/* ---- mobile header: never floats, nav scrolls sideways ---- */

/* ---- payout strip (top centre) ---- */
.payout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:10px;margin:-2px 0 10px;padding:12px 16px;border:2px solid var(--frame2);border-radius:6px;background:linear-gradient(180deg,#2a2016,#171109);box-shadow:inset 0 1px 0 rgba(255,220,150,.08),0 6px 20px rgba(0,0,0,.45);position:relative;overflow:hidden}
.payout::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 0%,rgba(255,190,80,.16),transparent 55%);pointer-events:none}
.po-main,.po-side{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:2px;padding:6px 8px;min-width:0}
.po-main{border-right:1px solid rgba(255,220,150,.12)}
.po-label{font-family:'Cinzel',serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--dim)}
.po-big{font-family:'Cinzel',serif;font-weight:900;font-size:44px;line-height:1;color:#ffd06a;text-shadow:0 2px 0 #3a2506,0 4px 14px rgba(0,0,0,.8),0 0 28px rgba(255,180,70,.35);font-variant-numeric:tabular-nums}
.po-mid{font-family:'Cinzel',serif;font-weight:900;font-size:26px;line-height:1.05;color:#ffd06a;text-shadow:0 2px 0 #3a2506,0 3px 8px rgba(0,0,0,.7);font-variant-numeric:tabular-nums}
.po-timer{font-family:var(--font-ui);font-size:28px;line-height:1;color:var(--grn);text-shadow:0 0 12px rgba(0,255,0,.35);font-variant-numeric:tabular-nums}
.po-sub{font-size:15px;color:var(--dim)}
.po-sub .live{color:var(--yel)}.po-sub .po-every{display:block;white-space:nowrap} /* the cadence on its own line ("· runs" / "every ~167 min" broke mid-phrase at 1024, 10-24 sweep) */
@media(max-width:820px){.payout{grid-template-columns:1fr 1fr}.po-main{grid-column:1/-1;border-right:0;border-bottom:1px solid rgba(255,220,150,.12);padding-bottom:10px}.po-big{font-size:34px}.po-timer{font-size:32px}}
@media(max-width:480px){.po-timer{font-size:24px;white-space:nowrap}.po-mid{font-size:20px;white-space:nowrap}.po-side .po-label{letter-spacing:1px}.po-sub .live{white-space:nowrap}.payout{padding:12px 10px;column-gap:6px}} /* a 375px phone: "2h 26m / 17s", "9,939.75 / GLDX" and "2,022 GP in / flight" each broke over two lines (10-24 sweep) */
/* ---- yield card ---- */
.ycard{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.ycell{background:var(--ink);border:1px solid var(--edge);border-radius:4px;padding:8px 10px}
.ycell span{display:block;color:var(--dim);font-size:14px;letter-spacing:1px;text-transform:uppercase}
.ycell b{display:block;font-family:'Cinzel',serif;font-weight:900;font-size:22px;color:#ffd06a;text-shadow:0 2px 0 #3a2506}
.ycell small{color:var(--dim)}
.ychain{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--dim);font-size:15px;margin:4px 0}
.ychain b{color:var(--yel)}
.ylist{font-size:15px;line-height:1.2;max-height:150px;overflow-y:auto;background:var(--ink);border:1px solid var(--edge);padding:6px 8px}
.ylist div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #1a140f;padding:2px 0}
.ylist .gp{color:var(--grn)}.ylist .gldx{color:#ffd06a}
/* ---- liquidity ---- */
/* a pool's figures: one strip, cells split by hairlines (v2: was a bordered box per figure inside the panel) */
.poolbox{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));margin:0 0 var(--sp-3);background:var(--fill);border-radius:var(--r-ctl);overflow:hidden}
.poolbox div{min-width:0;padding:8px 12px;box-shadow:-1px 0 0 var(--line)}
.poolbox span{display:block;font-size:var(--fs-cap);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.poolbox b{display:block;color:var(--num);font-size:var(--fs-body);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form label{margin-top:4px}

.payout::after{content:'';position:absolute;top:0;left:-40%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,220,150,.07),transparent);animation:po-sheen 7s ease-in-out infinite;pointer-events:none}
@keyframes po-sheen{0%{left:-40%}60%{left:110%}100%{left:110%}}
@media(prefers-reduced-motion:reduce){.payout::after{animation:none}}

/* wallet line under the character form: no overlap with the Save button, address wraps, one-click copy */
.walletline{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap;clear:both}
.walletline code{flex:1 1 220px;min-width:0;word-break:break-all;overflow-wrap:anywhere;background:var(--ink);border:2px solid var(--edge);padding:6px 8px;color:var(--dim);font-size:15px;line-height:1.3;cursor:text;user-select:all}
.walletline .btn{flex:0 0 auto;padding:6px 12px}
.lp-pool{margin-top:12px;line-height:1.45}

/* clean lines: hero copy is three deliberate lines that never orphan; notes and headings balance their wraps */
.hero p{max-width:none;line-height:1.35}
.hero p .line{display:block;white-space:nowrap}
@media (max-width:560px){.hero p .line{white-space:normal}}
h1,h2,h3,.note,.po-label,.ycell small,.stat span{text-wrap:balance}
p,li,.lp-pool,.card div{text-wrap:pretty}

/* ===== Contract address plaque ===== */
.ca{position:relative;margin:-2px 0 10px;padding:14px 18px 12px;border:2px solid var(--frame2);border-radius:6px;overflow:hidden;
  background:radial-gradient(120% 160% at 0% 0%,rgba(255,200,100,.10),transparent 55%),linear-gradient(180deg,#2c2217,#171109);
  box-shadow:0 0 0 2px #0a0805,inset 0 1px 0 rgba(255,220,150,.10),0 8px 26px rgba(0,0,0,.5)}
.ca::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,230,170,.07) 45%,transparent 60%);transform:translateX(-60%);animation:caSheen 7s ease-in-out infinite}
@keyframes caSheen{0%,55%{transform:translateX(-70%)}85%,100%{transform:translateX(70%)}}
.ca-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.ca-head img{width:22px;height:22px;image-rendering:pixelated;filter:drop-shadow(0 1px 0 #000)}
.ca-label{font-family:'Cinzel',serif;font-weight:900;font-size:15px;letter-spacing:2.5px;text-transform:uppercase;color:#ffd06a;text-shadow:0 1px 0 #3a2506,0 2px 8px rgba(0,0,0,.7)}
.ca-chain{color:var(--dim);font-size:15px;letter-spacing:.3px}
.ca-row{display:flex;gap:10px;align-items:stretch}
.ca-addr{flex:1 1 auto;min-width:0;text-align:left;cursor:copy;background:linear-gradient(180deg,#0f0b08,#181109);border:2px solid var(--frame);border-radius:4px;padding:10px 14px;color:#fff2c2;
  font-family:var(--font-ui);font-size:21px;letter-spacing:1.2px;line-height:1.1;text-shadow:0 0 10px rgba(255,200,100,.25);box-shadow:inset 0 2px 8px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,220,150,.06);transition:border-color .15s,box-shadow .15s}
.ca-addr:hover{border-color:var(--frame2);box-shadow:inset 0 2px 8px rgba(0,0,0,.7),0 0 0 1px rgba(255,208,106,.35),0 0 18px rgba(255,180,70,.18)}
.ca-addr .ca-short{display:none}
.ca-copy{flex:0 0 auto;position:relative;min-width:150px;cursor:pointer;border:2px solid #d8a94a;border-radius:4px;padding:0 20px;
  font-family:'Cinzel',serif;font-weight:900;font-size:16px;letter-spacing:1.5px;text-transform:uppercase;color:#2a1a05;
  background:linear-gradient(180deg,#ffe29a,#f0b545 55%,#c98a1e);box-shadow:0 0 0 2px #0a0805,inset 0 1px 0 rgba(255,255,255,.55),0 6px 16px rgba(0,0,0,.45);text-shadow:0 1px 0 rgba(255,255,255,.35);transition:transform .08s,filter .15s}
.ca-copy:hover{filter:brightness(1.06)}.ca-copy:active{transform:translateY(1px)}
.ca-copy .ca-copied{display:none}
.ca-copy.done{background:linear-gradient(180deg,#b9f7a8,#5fd35f 55%,#2f9a3a);border-color:#7be07b;color:#082d0c}
.ca-copy.done .ca-copy-txt{display:none}.ca-copy.done .ca-copied{display:inline}
.ca-links{display:flex;gap:16px;align-items:center;margin-top:9px;flex-wrap:wrap;font-size:15px}
.ca-links a{color:#e6c37a;text-decoration:none;border-bottom:1px dotted rgba(230,195,122,.5)}
.ca-links a:hover{color:#ffd06a;border-bottom-color:#ffd06a}
.ca-warn{margin-left:auto;color:var(--dim);font-size:15px}
@media(max-width:900px){.ca-addr{font-size:18px;letter-spacing:.6px}}
@media(max-width:720px){.ca-addr .ca-full{display:none}.ca-addr .ca-short{display:inline}.ca-addr{font-size:20px}.ca-warn{margin-left:0;flex-basis:100%}}
@media(max-width:480px){.ca-row{flex-direction:column}.ca-copy{min-width:0;padding:10px 20px}}

/* ---- principal payback ---- */
.payback{margin:8px 0;padding:10px 12px;background:var(--ink);border:1px solid var(--edge);border-radius:4px}
.payback.done{border-color:var(--grn)}
.pb-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pb-top span{color:var(--dim);font-size:14px;letter-spacing:1px;text-transform:uppercase}
.pb-top b{font-family:'Cinzel',serif;font-weight:900;font-size:24px;color:#ffd06a;text-shadow:0 2px 0 #3a2506}
.payback.done .pb-top b{color:var(--grn);text-shadow:none}
.pb-bar{height:12px;background:#0a0805;border:1px solid var(--edge);margin:6px 0}
.pb-bar i{display:block;height:100%;background:linear-gradient(90deg,#b8860b,#ffd700);transition:width .6s ease}
.payback.done .pb-bar i{background:linear-gradient(90deg,#1c7a1c,#00ff00)}
.pb-days{font-size:16px;color:var(--txt)}.pb-days b{color:var(--yel)}
.pb-note{font-size:15px;color:var(--dim);margin-top:2px}

/* ---- liquidity: amount row, max button, risk panel ---- */
.lp-amt-row{display:flex;gap:8px;align-items:stretch}
.lp-amt-row input{flex:1;min-width:0}
.btn.lp-max{white-space:nowrap;padding:6px 14px;align-self:stretch}
/* "Before you add": four facts on one lighter fill, split by hairlines (v2: was a card of four cards) */
.lp-risk{margin-top:var(--sp-3);padding:10px 12px;border-radius:var(--r-ctl);background:var(--fill)}
.lp-risk-h{margin-bottom:6px;font:600 var(--fs-cap)/1.2 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.lp-risk-g{display:grid;grid-template-columns:1fr 1fr}
.lp-risk-g>div{min-width:0;padding:6px 0;border-top:1px solid var(--line)}.lp-risk-g>div:nth-child(even){padding-left:12px;border-left:1px solid var(--line)}
.lp-risk-g span{display:block;font-size:var(--fs-cap);color:var(--dim)}
.lp-risk-g b{display:block;font-size:var(--fs-body);font-weight:600;line-height:1.3;color:var(--num)}
.lp-risk-g small{display:block;margin-top:1px;font-size:var(--fs-cap);line-height:1.35;color:var(--dim)}
.lp-risk .note{margin-top:6px;font-size:var(--fs-sm)}

.badge.good{color:var(--grn);border-color:#2f6b2f}

/* ---- in-site confirm dialog (replaces the browser's native confirm) ---- */

@keyframes vbpop{from{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}

/* a flow in progress: one line per step, the running one lit, finished ones ticked */
.vb-steps{display:grid;gap:6px;margin:8px 0 10px;padding:10px 12px;background:var(--ink);border:1px solid var(--edge);border-radius:4px}
.vb-step{display:grid;grid-template-columns:18px 1fr;gap:2px 10px;align-items:center;color:var(--dim)}.vb-step b{font-weight:normal;font-size:15px}.vb-step span{grid-column:2;font-size:14px;min-height:1.2em;overflow-wrap:anywhere}
.vb-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--edge);justify-self:center}
.vb-step.on{color:var(--txt)}.vb-step.on b{color:#ffd06a}.vb-step.on .vb-dot{border-color:var(--gold);background:var(--gold);animation:vbpulse 1s ease-in-out infinite}
.vb-step.done b{color:var(--txt)}.vb-step.done .vb-dot{border-color:var(--grn);background:var(--grn)}.vb-step.done span{color:#9fe39f}
.vb-step.bad b{color:var(--red)}.vb-step.bad .vb-dot{border-color:var(--red);background:var(--red)}
.vb-pmsg{margin:0 0 10px;font-size:15px;overflow-wrap:anywhere}.vb-pmsg.ok{color:#9fe39f}.vb-pmsg.bad{color:var(--red)}.vb-pmsg:empty{display:none}
@keyframes vbpulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.vb-step.on .vb-dot{animation:none}}

.vb-rows b.ok{color:var(--grn)}.vb-rows b.warn{color:var(--red)}

/* ecosystem tab */

/* wintertodt */
.todt-top{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:10px}@media(max-width:1000px){.todt-top{grid-template-columns:1fr}}
#todtWrap{position:relative;border:1px solid var(--border);border-radius:var(--r-panel);background:var(--ink);overflow:hidden;line-height:0;align-self:start}#todt{width:100%;height:auto;display:block;image-rendering:auto}
#todtTag{position:absolute;left:10px;bottom:8px;font-size:var(--fs-sm);color:var(--txt);line-height:1.2;text-shadow:1px 1px 0 #000}#todtTag b{color:var(--gold)}
.todt-bar{position:absolute;left:50%;bottom:14%;transform:translateX(-50%);width:min(70%,620px);background:rgba(10,8,5,.86);border:2px solid var(--gold);padding:10px 12px;line-height:1.3}
.todt-bar .track{position:relative;height:30px;background:#12100c;border:2px solid var(--edge)}.todt-bar .win{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,rgba(255,152,31,.35),rgba(255,255,0,.85),rgba(255,152,31,.35));box-shadow:0 0 12px #ff981f}
.todt-bar .marker{position:absolute;top:-6px;bottom:-6px;width:6px;background:#fff;box-shadow:0 0 8px #fff;margin-left:-3px}
.todt-bar .hint{font-size:15px;color:var(--dim);margin-top:6px;text-align:center}.todt-bar .hint b{color:var(--yel)}
.todt-side .note{margin-bottom:8px}.todt-sizes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:var(--sp-2)}.todt-sizes button{min-height:52px;background:var(--fill);color:var(--txt);border:1px solid var(--border);border-radius:var(--r-ctl);padding:6px 4px;cursor:pointer;font:600 var(--fs-body)/1.2 var(--font-ui);font-variant-numeric:tabular-nums;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.todt-sizes button:hover{background:var(--hover)}.todt-sizes button.on{border-color:rgba(255,190,90,.6);background:var(--accent-soft);color:var(--gold-txt)}
.todt-sizes button small{display:block;color:var(--dim);font-size:var(--fs-cap);font-weight:500}
#todtThrow{width:100%;min-height:48px;font-size:16px}
.todt-me{margin-top:var(--sp-2);font-size:var(--fs-dense);color:var(--dim);display:grid;grid-template-columns:1fr auto;gap:2px 8px}.todt-me:empty{display:none}.todt-me b{color:var(--num);font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.todt-pot{margin-top:var(--sp-2);border-top:1px solid var(--line);padding-top:var(--sp-2);font-size:var(--fs-dense);color:var(--dim)}.todt-pot b{color:var(--num)}
#todtFeed{max-height:300px;overflow-y:auto;font-size:var(--fs-dense)}#todtFeed div{padding:6px 0;border-bottom:1px solid var(--line)}#todtFeed .crit{color:var(--yel)}#todtFeed .crate{color:var(--grn)}#todtFeed .d{color:var(--gold)}
#todtBoard th:nth-child(1),#todtBoard td:nth-child(1){width:44px}#todtBoard th:nth-child(3),#todtBoard th:nth-child(4){text-align:right;width:170px}#todtBoard td:nth-child(3),#todtBoard td:nth-child(4){text-align:right;color:var(--gold);width:170px;font-variant-numeric:tabular-nums}#todtBoard tr.me td{color:var(--yel)}
@media (min-width:761px){#todtBoard th:nth-child(n+3),#todtBoard td:nth-child(n+3){width:1%;white-space:nowrap;padding-left:24px}} /* the figures take their own width and the name the rest ("SANTA / WIZART" broke beside two fixed 170px columns at 1024, 10-24 sweep) */

.todt-head{flex-wrap:nowrap;align-items:flex-start}.todt-head h2{flex:1;min-width:0}.todt-head .btn{flex:none}.todt-lead{margin:0 0 var(--sp-3);color:var(--dim);font-size:var(--fs-dense)}.todt-two{margin-top:var(--sp-3)}
@keyframes todtPulse{0%,100%{box-shadow:0 2px 0 #3d2a0a,0 0 0 rgba(255,180,70,0)}50%{box-shadow:0 2px 0 #3d2a0a,0 0 22px rgba(255,180,70,.55)}}
#todtThrow:not(:disabled){animation:todtPulse 2.2s ease-in-out infinite}
.todt-bar .marker{transition:none;box-shadow:0 0 8px #fff,0 0 18px rgba(255,255,255,.6)}
@keyframes todtHitFlash{0%{background:rgba(255,255,255,.35)}100%{background:rgba(255,255,255,0)}}
#todtWrap.flash::after{content:"";position:absolute;inset:0;pointer-events:none;animation:todtHitFlash .35s ease-out forwards}
.todt-bar .hint{font-size:16px;color:var(--txt);line-height:1.35}.todt-bar .hint b{color:var(--yel);font-size:18px}
.todt-bar .hint .big{display:block;font-family:var(--font-ui);font-weight:700;font-size:16px;color:var(--gold);margin:4px 0 8px;letter-spacing:1px}
.todt-bar.ready .marker{opacity:.35}.todt-bar.ready .track{opacity:.7}
.todt-how{margin:var(--sp-2) 0 0;padding-left:20px;color:var(--dim);font-size:var(--fs-dense);line-height:1.5}.todt-how li{margin:2px 0}.todt-how b{color:var(--txt);font-weight:600}
.todt-side{min-width:0;overflow:hidden}.todt-side .note{overflow-wrap:anywhere}

/* ================= Ecosystem: the Grand Exchange board ================= */
.ge{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:10px;align-items:start}@media(max-width:980px){.ge{grid-template-columns:1fr}}
.ge-title{display:flex;align-items:center;gap:10px;margin-bottom:8px}.ge-title img{width:36px;height:36px;image-rendering:pixelated}
.ge-title b{display:block;font-family:'Cinzel',serif;font-weight:900;font-size:24px;color:#ffd06a;text-shadow:0 2px 0 #3a2506;line-height:1.1}.ge-title i{font-style:normal;font-weight:700;color:var(--dim);font-size:20px}.ge-title span{color:var(--dim);font-size:18px}
.ge-tools{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.ge-tools label{color:var(--dim);font-size:15px;display:flex;gap:6px;align-items:center}
.ge-tools select,.ge-tools input{background:var(--ink);color:var(--txt);border:2px solid var(--edge);padding:5px 8px;font-size:16px;border-radius:4px}.ge-tools input{flex:1;min-width:140px;max-width:280px}
.ge-table{border:2px solid var(--edge);background:var(--ink);border-radius:4px;overflow:hidden}
.ge-th,.ge-row{display:grid;grid-template-columns:40px minmax(0,1fr) 108px 72px 92px 22px;gap:8px;align-items:center;padding:7px 10px}
.ge-th{color:var(--dim);font-size:15px;letter-spacing:1px;text-transform:uppercase;border-bottom:2px solid var(--edge);background:#1a130d}
.ge-row{color:var(--txt);text-decoration:none;border-bottom:1px solid #22190f;transition:background .1s}.ge-row:nth-child(even){background:#181209}.ge-row:hover{background:#2a2014}.ge-row:last-child{border-bottom:0}
.ge-row.base{background:#221a0e;border-left:3px solid #ffd06a;padding-left:7px}.ge-row.gp{background:#1f1a0c;border-left:3px solid #ffb347}.ge-row.gp .rk{color:#ffb347;font-size:10px}
.ge-row .rk{font-family:var(--font-ui);font-weight:700;font-size:13px;color:var(--dim);text-align:center}.ge-row b.stale{opacity:.55;cursor:help}.ge-row.base .rk{color:#ffd06a;font-size:9px}
.ge-row .it{display:flex;align-items:center;gap:10px;min-width:0}.ge-row .it>span{min-width:0}.ge-row .it b{display:block;font-family:var(--font-ui);font-weight:700;font-size:14px;color:var(--yel);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ge-row .it small{display:block;color:var(--dim);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ge-ic{width:40px;height:40px;border-radius:50%;border:2px solid var(--edge);background:var(--panel2);object-fit:cover;flex:0 0 auto;display:grid;place-items:center;color:var(--gold);font-family:var(--font-ui);font-weight:700;font-size:14px}
.ge-ic.big{width:64px;height:64px}.ge-ic.sm{width:26px;height:26px;border-width:1px;font-size:10px}
.ge-row .r{text-align:right}.ge-row .r b{color:#ffd06a;font-weight:normal;display:block;line-height:1.1}.ge-row .r small{display:block;color:var(--dim);font-size:15px}
.up{color:var(--grn)}.dn{color:var(--red)}
.ge-row .go{color:var(--gold);font-size:20px;text-align:right;line-height:1}
@media(max-width:700px){.ge-th,.ge-row{grid-template-columns:28px minmax(0,1fr) 86px 56px 16px;gap:6px;padding:6px 6px}.ge-th .mc,.ge-row .mc,.ge-th span:nth-child(5){display:none}.ge-row .it{gap:7px}.ge-row .it b{font-size:10px}.ge-row .it small{font-size:14px}.ge-ic{width:32px;height:32px}.ge-row .r b{font-size:15px}.ge-row .r small{font-size:13px}.ge-row .rk{font-size:9px}.ge-row.base .rk{font-size:8px}.ge-title b{font-size:20px}.ge-title i{font-size:16px}}
/* token page */
.ge-tok-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.ge-back{font-size:30px;line-height:1;color:var(--gold);text-decoration:none;border:2px solid var(--edge);background:var(--ink);width:36px;height:36px;display:grid;place-items:center;border-radius:4px}.ge-back:hover{background:#2a2014}
.ge-tok-id>b{display:block;font-family:'Cinzel',serif;font-weight:900;font-size:26px;color:#ffd06a;text-shadow:0 2px 0 #3a2506;line-height:1.1}.ge-tok-id span{color:var(--dim);font-size:15px}
.ge-tok-px{margin-left:auto;text-align:right}.ge-tok-px>b{display:block;font-family:'Cinzel',serif;font-weight:900;font-size:26px;color:#ffd06a;text-shadow:0 2px 0 #3a2506;line-height:1.1}.ge-tok-px span{color:var(--dim);font-size:15px}
.ge-banner{width:100%;aspect-ratio:3/1;object-fit:cover;border:2px solid var(--edge);border-radius:4px;display:block;background:var(--ink);margin-bottom:10px}
.ge-chart{width:100%;height:480px;border:2px solid var(--edge);border-radius:4px;background:#131722;display:block;margin-bottom:10px}@media(max-width:700px){.ge-chart{height:360px}}
.ge-tape{margin-bottom:10px}.ge-tape-h{display:flex;justify-content:space-between;color:var(--dim);font-size:15px;letter-spacing:1px;text-transform:uppercase;padding:0 2px 4px}
.ge-tape .tp{display:grid;grid-template-columns:52px 1fr 1fr 44px;gap:8px;align-items:center;padding:3px 8px;border:1px solid #22190f;border-top:0;background:var(--ink);color:var(--txt);text-decoration:none;font-size:15px}.ge-tape .tp:first-of-type{border-top:1px solid #22190f;border-radius:4px 4px 0 0}.ge-tape .tp:last-child{border-radius:0 0 4px 4px}
.ge-tape .tp.buy>span:first-child{color:var(--grn)}.ge-tape .tp.sell>span:first-child{color:var(--red)}.ge-tape .tp b{font-weight:normal;color:#ffd06a}.ge-tape .tp small{color:var(--dim);text-align:right}.ge-tape .tp:hover{background:#2a2014}
.ge-ca{display:flex;align-items:center;gap:6px;margin-bottom:10px}.ge-ca code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt);background:var(--ink);border:1px solid var(--edge);padding:5px 8px;font-size:15px;border-radius:4px}.ge-ca .btn{padding:3px 10px;font-size:15px}
.ge-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}@media(max-width:600px){.ge-stats{grid-template-columns:1fr 1fr}}
.ge-stats div{background:var(--ink);border:1px solid var(--edge);border-radius:4px;padding:7px 10px}.ge-stats span{display:block;color:var(--dim);font-size:15px;letter-spacing:1px;text-transform:uppercase}.ge-stats b{color:#ffd06a;font-size:16px;font-weight:normal;overflow-wrap:anywhere}
.ge-links{display:flex;gap:6px;flex-wrap:wrap}.ge-links a{background:var(--wood2);border:1px solid var(--edge);color:var(--txt);text-decoration:none;padding:3px 10px;border-radius:4px;font-size:15px}.ge-links a:hover{background:#4b3a26}
/* swap box */
.ge-side{display:grid;gap:10px;position:sticky;top:70px}@media(max-width:980px){.ge-side{position:static}}

input.sw-amt::-webkit-outer-spin-button,input.sw-amt::-webkit-inner-spin-button{-webkit-appearance:none}input.sw-amt{-moz-appearance:textfield}

/* rewards */
.ge-claims h2{margin-bottom:6px}
.claim{background:var(--ink);border:2px solid var(--edge);border-radius:4px;padding:8px 10px;margin-bottom:8px;display:grid;gap:4px}
.claim .t{font-family:var(--font-ui);font-weight:700;font-size:13px;color:var(--yel)}.claim .mine{color:var(--grn);font-size:15px}.claim .mine.no{color:var(--dim)}
.claim .st,#claims .st{font-size:14px;color:var(--dim)}.claim .cl-h{display:flex;align-items:center;justify-content:space-between;gap:8px}.claim .cl-h>span:first-child{min-width:0}.claim .cl-h>.chip{flex:none}.claim .st .nw{white-space:nowrap} /* a payout card: status chip on the title row, the line breaks only between its parts ("→ 36 | wallets" broke in the rail, 10-24 sweep) */.claim .ok{color:var(--grn)}#claims .foot{margin-top:2px}.claim .btn{justify-self:start;padding:4px 12px;font-size:15px}
.ge-check{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:6px}.ge-check input{background:var(--ink);color:var(--txt);border:2px solid var(--edge);padding:5px 8px;min-width:0;border-radius:4px;font-size:16px}.ge-check .btn{padding:4px 10px;font-size:15px}

/* home page: Nice / Naughty and Clans live under the plaza */
.home-block{margin-top:14px;scroll-margin-top:90px}.home-h{margin:0 0 8px;font-family:'Cinzel',serif;font-weight:900;font-size:22px;color:#ffd06a;text-shadow:0 2px 0 #3a2506;letter-spacing:1px}

.rows.capped>.row:nth-child(n+21){display:none}.showall{display:block;width:100%;margin-top:8px;font-size:15px}
.ge-chartwrap{position:relative;margin-bottom:10px}.ge-chartwrap .ge-chart{margin-bottom:0}
.ge-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
@keyframes buypop{0%{background:rgba(46,230,74,.0)}12%{background:rgba(46,230,74,.42)}100%{background:rgba(46,230,74,0)}}
@keyframes sellpop{0%{background:rgba(255,90,90,0)}12%{background:rgba(255,90,90,.3)}100%{background:rgba(255,90,90,0)}}
.ge-row.buy-pop{animation:buypop 1.6s ease-out}.ge-row.sell-pop{animation:sellpop 1.2s ease-out}
@keyframes pxpop{0%{transform:scale(1)}20%{transform:scale(1.16);color:#2ee64a}100%{transform:scale(1)}}.ge-tok-px.buy-pop>b{animation:pxpop .9s ease-out;transform-origin:right center;display:block}
.ge-tape .tp.fresh{animation:buypop 1.6s ease-out}
.ge-tape .tp i{font-style:normal;color:var(--dim);font-size:15px;margin-left:4px}
.ge-main,.ge-side{min-width:0}.ge-token,.ge-board{min-width:0;overflow:hidden}
/* the side column is a grid of its own: without a zero minimum its one track grows to the longest unbroken line inside it (a long swap
   route pushed the whole panel past the edge of the page) */
.ge-side{grid-template-columns:minmax(0,1fr)}.ge-side>*{min-width:0}

/* board tabs + launch */

.ge-acts{margin-left:auto;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px}.ge-acts .btn{box-sizing:border-box;height:40px;padding:0 16px;font-size:15px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;margin:0}@media(max-width:700px){.ge-acts{margin-left:0;width:100%}.ge-acts .btn{padding:0 8px;font-size:14px}}
.ge-island{font-family:var(--font-ui);font-style:normal;font-size:11px;color:#9fe3ff;border:1px solid #3c7a99;background:#0e2230;border-radius:3px;padding:0 6px;vertical-align:middle;letter-spacing:1px;text-transform:uppercase}
.ge-grad{display:grid;gap:4px;margin-bottom:10px}.ge-grad .bar{height:10px;background:#0a0805;border:1px solid var(--edge);border-radius:4px;overflow:hidden}.ge-grad .bar i{display:block;height:100%;background:linear-gradient(90deg,#3c7a99,#9fe3ff)}.ge-grad span{color:var(--dim);font-size:14px}
.ge-launchbox{max-width:560px}.lf-grid{display:grid;grid-template-columns:120px 1fr;gap:10px;margin-bottom:8px}@media(max-width:520px){.lf-grid{grid-template-columns:1fr}}
.lf-banwrap{display:flex;flex-direction:column;gap:6px;margin:10px 0}.lf-banner{display:grid;place-items:center;width:100%;aspect-ratio:3/1;max-height:150px;border:2px dashed var(--edge);border-radius:8px;background:var(--ink) center/cover no-repeat;cursor:pointer;color:var(--dim);font-size:14px;text-align:center;padding:0 12px}.lf-banner.has{border-style:solid}.lf-banner.has span{display:none}.lf-banx{align-self:flex-start}
.cd-banner{width:180px;aspect-ratio:3/1;object-fit:cover;border:1px solid var(--edge);border-radius:4px}
.lf-img{display:grid;place-items:center;width:120px;height:120px;border:2px dashed var(--edge);border-radius:8px;background:var(--ink) center/cover no-repeat;cursor:pointer;color:var(--dim);font-size:15px}.lf-img.has span{display:none}
.lf-fields{display:grid;gap:6px}.lf-fields input,.lf-fields textarea,.lf-seed input{background:var(--ink);color:var(--txt);border:2px solid var(--edge);padding:6px 8px;font-size:16px;border-radius:4px;min-width:0;width:100%}
.lf-seed{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;color:var(--dim);font-size:15px;margin-bottom:8px}
.lf-facts{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;color:var(--dim);font-size:14px;margin-bottom:6px}.lf-facts span::before{content:'· ';color:var(--gold)}
.lf-mode{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--dim);font-size:15px;margin-bottom:4px}.lf-tax input{width:70px;background:var(--ink);color:var(--txt);border:2px solid var(--edge);padding:4px 6px;border-radius:4px;font-size:16px}
.ge-taxline{color:var(--dim);font-size:15px;margin-bottom:8px}
.ge-dev{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--edge);border-radius:4px;background:var(--ink);padding:6px 10px;margin-bottom:10px;font-size:15px}.ge-dev b{color:#ffd06a;font-weight:normal}.ge-dev input{width:64px;background:var(--panel2);color:var(--txt);border:1px solid var(--edge);padding:3px 6px;border-radius:4px;font-size:16px}.ge-dev .btn{padding:3px 10px;font-size:15px}

/* consistent form controls everywhere (native selects were rendering white) */

@media(max-width:700px){#todtTag{font-size:12px;padding:3px 6px;max-width:70%}}
.lf-fields input.missing,.lf-img.missing{border-color:var(--red);box-shadow:0 0 0 2px rgba(255,77,77,.25)}
#lfPair2,#lfSplit{font-size:15px;padding:4px 8px}

/* the Santa Cup: trophy board */
.ge-cup{position:relative;overflow:hidden;margin-bottom:10px;border:3px solid #c9972b;background:radial-gradient(ellipse at 50% 0%,#3a2a12 0%,#1f170b 55%,#140f07 100%);box-shadow:0 0 0 1px #0a0805,0 0 28px rgba(255,180,60,.18),inset 0 1px 0 rgba(255,220,150,.15)}
.cup-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.ge-cup>*:not(.cup-fx){position:relative;z-index:1}
.cup-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.cup-title{display:flex;align-items:center;gap:10px}.cup-trophy{font-size:34px;filter:drop-shadow(0 0 10px rgba(255,200,80,.6));animation:cuptrophy 3s ease-in-out infinite}@keyframes cuptrophy{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-3px) rotate(4deg)}}
.cup-title b{display:block;font-family:'Cinzel',serif;font-weight:900;font-size:26px;color:#ffd06a;text-shadow:0 2px 0 #3a2506,0 0 18px rgba(255,200,90,.35);line-height:1.05;letter-spacing:1px}.cup-title b em{font-style:normal;color:#ffb347}.cup-title span{color:var(--dim);font-size:16px}
.live{font-style:normal;color:#2ee64a;font-size:12px;letter-spacing:2px;padding:0 6px;border:1px solid #2ee64a;border-radius:3px;animation:livepulse 1.6s ease-in-out infinite}@keyframes livepulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(46,230,74,.5)}50%{opacity:.7;box-shadow:0 0 0 5px rgba(46,230,74,0)}}
.cup-prize{text-align:right}.cup-prize b{display:block;font-family:'Cinzel',serif;font-weight:900;font-size:26px;line-height:1.05}.cup-prize span{color:var(--dim);font-size:14px}
.shimmer{background:linear-gradient(100deg,#ffd06a 0%,#fff3c4 40%,#ffb347 55%,#ffd06a 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 3.2s linear infinite;text-shadow:none;filter:drop-shadow(0 2px 0 #3a2506)}@keyframes shimmer{0%{background-position:120% 0}100%{background-position:-120% 0}}
.cup-clock{display:flex;align-items:baseline;gap:10px;margin:2px 0 10px;color:var(--dim);font-size:14px}.cup-clock b{font-family:var(--font-ui);font-weight:700;font-size:16px;color:#fff;text-shadow:0 0 12px rgba(255,200,90,.5),2px 2px 0 #000;letter-spacing:1px}
.cup-podium{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:8px;align-items:end;margin-bottom:10px}
.pod{display:grid;justify-items:center;gap:4px;text-decoration:none;color:var(--txt);border:2px solid var(--edge);border-radius:8px;padding:10px 8px 8px;background:linear-gradient(180deg,#241b10,#17110a);position:relative;transition:transform .15s,box-shadow .15s}.pod:hover{transform:translateY(-2px)}
.pod.first{border-color:#ffd700;box-shadow:0 0 22px rgba(255,215,0,.25),inset 0 1px 0 rgba(255,240,180,.25);padding-top:16px;background:linear-gradient(180deg,#2e2410,#1a1308)}.pod.second{border-color:#d9d9d9}.pod.third{border-color:#cd7f32}
.pod.empty{opacity:.55;border-style:dashed}
.pod-medal{position:absolute;top:-12px;left:50%;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-ui);font-size:13px;color:#000;border:2px solid #000;box-shadow:0 0 10px rgba(255,220,120,.5)}
.pod.first .pod-medal{background:#ffd700}.pod.second .pod-medal{background:#d9d9d9}.pod.third .pod-medal{background:#cd7f32}.pod.empty .pod-medal{background:#5a4b36;color:#ccc}
.ge-ic.pod{width:54px;height:54px;margin-top:6px}.pod.first .ge-ic.pod{width:66px;height:66px;box-shadow:0 0 16px rgba(255,215,0,.45)}
.pod-sym{font-family:var(--font-ui);font-weight:700;font-size:14px;color:var(--yel);margin-top:2px}.pod-perf{font-family:'Cinzel',serif;font-weight:900;font-size:24px;line-height:1}.pod.first .pod-perf{font-size:30px}.pod-prize{color:#ffd06a;font-size:15px}
.pod-share{width:100%;height:6px;background:#0a0805;border:1px solid var(--edge);border-radius:3px;overflow:hidden}.pod-share i{display:block;height:100%;background:linear-gradient(90deg,#b8860b,#ffd700);box-shadow:0 0 8px rgba(255,215,0,.6);transition:width .8s ease}
.pod-note{color:var(--dim);font-size:14px;text-align:center}
.cup-rows{border:1px solid var(--edge);border-radius:4px;background:rgba(21,16,12,.85);overflow:hidden}
.cup-row{display:grid;grid-template-columns:28px 30px minmax(0,1fr) 70px 90px 150px;gap:8px;align-items:center;padding:5px 10px;color:var(--txt);text-decoration:none;border-bottom:1px solid #22190f;transition:background .15s}.cup-row:last-child{border-bottom:0}.cup-row:hover{background:#2a2014}.cup-row.podium{background:rgba(255,215,0,.05)}
.cup-row .cr{text-align:center;color:var(--dim);font-size:14px}.cup-row b{font-family:var(--font-ui);font-weight:700;font-size:13px;color:var(--yel);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cup-row .cp{text-align:right;font-size:15px}.cup-row .cm{text-align:right;color:var(--dim);font-size:15px}
.cup-row .cz{text-align:right;color:var(--dim);font-size:15px;display:grid;gap:2px;justify-items:end}.cup-row .cz em{font-style:normal;color:#ffd06a;font-size:15px}.toq{width:100%;height:5px;background:#0a0805;border:1px solid #3a2d1c;border-radius:3px;overflow:hidden}.toq i{display:block;height:100%;background:linear-gradient(90deg,#3c7a99,#9fe3ff)}
@keyframes flashup{0%{background:rgba(46,230,74,.35)}100%{background:transparent}}@keyframes flashdn{0%{background:rgba(255,90,90,.3)}100%{background:transparent}}.cup-row.flash-up{animation:flashup 3s ease-out}.cup-row.flash-dn{animation:flashdn 3s ease-out}
.cup-foot{color:var(--dim);font-size:14px;margin-top:8px;line-height:1.3}
.medal{font-style:normal;display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-family:var(--font-ui);font-size:10px;color:#000;margin-left:3px;vertical-align:middle;box-shadow:0 0 6px rgba(255,220,120,.6)}.medal.m1{background:#ffd700}.medal.m2{background:#d9d9d9}.medal.m3{background:#cd7f32}
@media(max-width:700px){.cup-podium{grid-template-columns:1fr 1fr 1fr;gap:5px}.pod{padding:8px 4px 6px}.pod-perf{font-size:19px}.pod.first .pod-perf{font-size:22px}.pod-sym{font-size:10px}.pod-note{font-size:12px}.cup-row{grid-template-columns:24px 26px minmax(0,1fr) 56px 110px}.cup-row .cm{display:none}.cup-title b{font-size:20px}.cup-prize b{font-size:20px}}

/* chart source switch + the site's own chart */
.ge-chart-src{position:absolute;top:8px;right:10px;z-index:3;display:flex;gap:2px;background:rgba(15,17,21,.9);border:1px solid #2a2e37;border-radius:4px;padding:2px}.ge-chart-src button{background:transparent;border:0;color:#9aa0ad;padding:2px 9px;border-radius:3px;cursor:pointer;font-size:15px}.ge-chart-src button.on{background:var(--gold);color:#000}
.ge-ownchart{border:2px solid var(--edge);border-radius:4px;background:#0f1115;overflow:hidden;height:480px;display:grid;grid-template-rows:auto 1fr auto}@media(max-width:700px){.ge-ownchart{height:360px}}
.oc-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 8px;border-bottom:1px solid #1a1d24;padding-right:212px}.oc-tools .tfs{display:flex;gap:2px;background:#161920;border:1px solid #2a2e37;border-radius:4px;padding:2px}.oc-tools .tfs button{background:transparent;border:0;color:#9aa0ad;padding:2px 8px;border-radius:3px;cursor:pointer;font-size:15px;font-family:Inter,-apple-system,'Segoe UI',sans-serif}.oc-tools .tfs button.on{background:#2a2e37;color:#fff} /* the source toggle (santahat.gold · Birdeye) is ~194px wide: a 150px reserve let "KOLs" run under it at 1180 (10-24 sweep) */
.oc-legend{font-family:Inter,-apple-system,'Segoe UI',sans-serif;font-size:12px;color:#9aa0ad;margin-left:4px}.oc-legend b{color:#e5e7eb;font-weight:500;margin-right:6px}.oc-legend .up{color:#22c55e}.oc-legend .dn{color:#ef4444}
.oc-host{min-height:0}.oc-body{position:relative;min-height:0}.oc-body>.oc-host{position:absolute;inset:0}.oc-body>.oc-legend{position:absolute;top:6px;left:10px;margin:0;z-index:3;pointer-events:none;white-space:nowrap;max-width:calc(100% - 90px);overflow:hidden;text-overflow:ellipsis} /* the hover legend floats over the chart: in the toolbar it wrapped a second row, shrank the chart under the crosshair, and the two fed each other (shaking, owner 10-25) */.oc-note{font-family:Inter,-apple-system,'Segoe UI',sans-serif;font-size:12px;color:#6b7280;padding:4px 10px;border-top:1px solid #1a1d24}
.lf-liq{margin:-2px 0 6px}.lf-liq b{color:#ffd06a}

/* launch form: socials pair, tax lock; token page: launcher links, engine rows, socials */
.lf-two{display:flex;gap:6px}.lf-two input{flex:1;min-width:0}
.lf-check{display:flex;align-items:flex-start;gap:8px;color:var(--txt);font-size:15px;margin:2px 0 6px;cursor:pointer}.lf-check input{margin-top:5px;accent-color:var(--gold)}.lf-check .note{margin:0;display:inline}
.ge-devlinks{display:flex;gap:6px;flex-wrap:wrap;width:100%;margin-top:6px}.ge-devlinks input{flex:1;min-width:120px;background:var(--wood2);border:1px solid var(--edge);color:var(--txt);padding:4px 8px;font:inherit;font-size:16px}
.ge-tape .tp.eng>span:first-child{color:#ffd06a}.ge-tape .tp.eng{opacity:.8}
.ge-links a.tg::before,.ge-links a.web::before{content:'';display:inline-block;width:1.05em;height:1.05em;vertical-align:-.18em;margin-right:.35em;background:center/contain no-repeat}.ge-links a.tg::before{background-image:url('assets/icons/telegram.png')}.ge-links a.web::before{background-image:url('assets/icons/web.png')}

/* trust + holders panel, launcher fee / edit / lock rows */
.ge-trust{border:1px solid var(--edge);border-radius:4px;background:var(--ink);padding:8px 10px;margin-bottom:10px;font-size:15px}.tr-head{display:flex;align-items:baseline;gap:10px;margin:2px 0 6px}.tr-head b{color:#ffd06a;font-size:15px}
.tr-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 14px;margin-bottom:8px}.tr-ok{color:var(--grn)}.tr-bad{color:var(--red)}.tr-warn{color:#ffd06a}.tr-na{color:var(--dim)}.tr-fee{color:#ffd06a;margin-bottom:6px}
.tr-holders{display:grid;gap:3px}.th{display:grid;grid-template-columns:22px 150px 1fr 64px;align-items:center;gap:8px}.th span{color:var(--dim)}.th b{font-weight:normal;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.th.lab b{color:#ffd06a}.th>i{display:block;height:8px;background:var(--gold);border-radius:2px;opacity:.75}.th em{font-style:normal;text-align:right;color:var(--txt)}
.ge-devfees{width:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}.ge-devlinks textarea{flex:1;min-width:160px;background:var(--wood2);border:1px solid var(--edge);color:var(--txt);padding:4px 8px;font:inherit;font-size:16px;resize:vertical}.ge-devlock select,.ge-devlock input{width:auto;min-width:90px;flex:0 1 auto}.ge-devlock .note{flex-basis:100%}
@media (max-width:640px){.tr-grid{grid-template-columns:1fr}.th{grid-template-columns:22px 110px 1fr 56px}}

/* share & earn */
.ge-ref{border:1px solid var(--edge);border-radius:4px;background:var(--ink);padding:8px 10px;margin-bottom:10px;font-size:15px}.ref-link{display:flex;gap:8px;align-items:center;margin:4px 0 8px}.ref-link code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--wood2);border:1px solid var(--edge);padding:4px 8px;font-size:14px;color:#ffd06a}
.ref-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}.ref-stats div{background:var(--wood2);border:1px solid var(--edge);border-radius:4px;padding:6px 8px;display:grid}.ref-stats span{color:var(--dim);font-size:14px}.ref-stats b{color:#ffd06a}.ref-stats i{font-style:normal;color:var(--dim);font-size:13px}
.ge-devref select{width:auto}@media (max-width:640px){.ref-stats{grid-template-columns:1fr}}

/* launch form: terse hints */
.lf-hint{color:var(--dim);font-size:15px;margin:-2px 0 8px;line-height:1.3}.lf-mode .lf-hint{margin:0 0 0 4px}
.lf-check{display:flex;align-items:center;gap:8px;margin:0 0 6px;white-space:nowrap}.lf-check i{font-style:normal;color:var(--dim);font-size:15px;white-space:normal}
.lf-facts{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;color:var(--dim);margin:6px 0 4px}.lf-facts span::before{content:'· '}
@media (max-width:640px){.lf-check{white-space:normal;align-items:flex-start}}

/* launch form: short on SANTA → buy it here */
.lf-short{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--gold);border-radius:4px;background:rgba(201,162,74,.08);padding:8px 10px;margin:0 0 8px;font-size:14px}.lf-short b{color:#ffd06a}.lf-short .note{margin:0}

/* launchpad eyes: schedule, dev sells, snipers, follow, thread, launcher record, flywheel, referrer boards */
.ge-tabs button.dead{color:#c9b6a0}
.ge-soon{font-family:var(--font-ui);font-style:normal;font-size:11px;color:#ffd06a;border:1px solid #8a6a2a;background:#2a1f0c;padding:0 5px;border-radius:3px;margin-left:4px;vertical-align:middle}
.ge-warn{font-family:var(--font-ui);font-style:normal;font-size:11px;color:#ff9a9a;border:1px solid #8a3a3a;background:#2a0c0c;padding:0 5px;border-radius:3px;margin-left:4px;vertical-align:middle}
.ge-sched{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;border:1px solid #8a6a2a;background:#2a1f0c;border-radius:4px;padding:8px 12px;margin-bottom:10px;color:var(--txt)}.ge-sched b{color:#ffd06a;font-size:16px}.ge-sched span{color:var(--dim);font-size:14px}
.ge-devsold{border:1px solid #8a3a3a;background:#2a0c0c;color:#ffb3b3;border-radius:4px;padding:7px 12px;margin-bottom:10px;font-size:15px}.ge-devsold b{color:#ff6b6b}
.tr-devsold{border:1px solid #8a3a3a;background:#2a0c0c;color:#ffb3b3;border-radius:4px;padding:6px 10px;margin:4px 0 8px;font-size:14px}.tr-devsold a{color:#ff9a9a;margin-left:6px}
.tr-line{display:block;margin:2px 0 6px;font-size:14px}
.tr-snipe{margin-top:6px}.tr-snipe .th b em,.gp-m b em{font-style:normal;font-family:var(--font-ui);font-size:10px;color:#ffd06a;margin-left:4px}
.ge-launcher{color:var(--yel);text-decoration:none;border-bottom:1px dotted var(--yel)}.ge-launcher i{font-style:normal;color:var(--dim)}.ge-launcher i.rep-good{color:var(--grn)}.ge-launcher i.rep-mid{color:#ffd06a}.ge-launcher i.rep-bad{color:#ff6b6b}
.ge-island.rep-good{color:var(--grn);border-color:#2f7a3a}.ge-island.rep-mid{color:#ffd06a;border-color:#8a6a2a}.ge-island.rep-bad{color:#ff6b6b;border-color:#8a3a3a}
.ge-tok-px .ge-watch{margin-top:6px;padding:4px 10px;font-size:15px}.ge-watch.on{border-color:var(--yel);color:var(--yel)}
.ge-posts{border:1px solid var(--edge);border-radius:4px;background:var(--ink);padding:8px 10px;margin:10px 0}
.gp-log{max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:3px;margin:6px 0}.gp-m{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:baseline;font-size:14px;padding:3px 6px;border-radius:3px;background:rgba(255,255,255,.03)}.gp-m b{color:var(--yel);white-space:nowrap}.gp-m.dev b{color:#9fe3ff}.gp-m span{color:var(--txt);word-break:break-word}.gp-m small{color:var(--dim);font-size:13px}
.gp-form{display:flex;gap:6px}.gp-form input{flex:1;min-width:0}
.ref-board{display:flex;flex-direction:column;gap:3px;margin-top:6px}.rb{display:grid;grid-template-columns:24px 1fr auto auto;gap:8px;align-items:baseline;font-size:14px;padding:3px 6px;background:rgba(255,255,255,.03);border-radius:3px}.rb span{color:var(--dim)}.rb b{color:var(--yel);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rb i{font-style:normal;color:var(--dim);font-size:14px}.rb em{font-style:normal;color:var(--txt)}
.flywheel{margin-top:14px}.fw-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.fw-head h2{margin:0}.fw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.fw-grid .stat{min-width:0}
@media (max-width:860px){.fw-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.fw-grid{grid-template-columns:1fr}}
.ge-devtg{flex-wrap:wrap;align-items:center}.ge-devtg code{background:#000;padding:1px 6px;border-radius:3px;color:var(--yel)}
.lf-when select,.lf-when input{min-width:0}.lf-when input[type=datetime-local]{flex:1}
.tr-devsold small,.tr-line small{display:block;color:var(--dim);font-size:13px;margin-top:2px}
.tr-devsold{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.tr-devsold span{color:var(--dim);font-size:15px}.tr-devsold a{margin-left:0}
.tr-row3{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:4px 0 6px}.tr-row3 div{background:rgba(255,255,255,.03);border-radius:3px;padding:4px 8px;display:flex;justify-content:space-between;align-items:baseline}.tr-row3 span{color:var(--dim);font-size:14px}.tr-row3 b{color:var(--txt)}
.tip{font-style:normal;display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;border:1px solid var(--edge);color:var(--dim);font-size:12px;margin-left:4px;cursor:help;vertical-align:middle}
.ge-sched{justify-content:space-between}
@media (max-width:520px){.tr-row3{grid-template-columns:repeat(2,1fr)}}
.sn{display:grid;grid-template-columns:22px 150px 1fr 64px 64px;align-items:center;gap:8px}.sn span{color:var(--dim)}.sn b{font-weight:normal;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sn b u{text-decoration:none;font-family:var(--font-ui);font-size:10px;color:#ffd06a;margin-left:4px}.sn>i{height:8px;background:var(--gold);opacity:.75;border-radius:2px;display:block}.sn em{font-style:normal;color:var(--txt);text-align:right}.sn em.sold{color:#ff9a9a}.sn-h em{color:var(--dim);font-size:13px}.sn-h i{background:none}
@media (max-width:520px){.sn{grid-template-columns:18px 1fr 56px 56px}.sn>i{display:none}}

/* King of the Hill */
.king-bar[hidden]{display:none}
/* an open airdrop: the strip above the King's */
.air-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 16px;background:linear-gradient(90deg,#0f3a1a,#10200f);border-bottom:1px solid #3f8a4a;color:var(--txt);font-size:14px}.air-bar[hidden]{display:none}
.air-bar .ab-tag{background:var(--grn);color:#04210a;border-radius:3px;padding:0 7px;font-size:14px;text-transform:uppercase;letter-spacing:1px}.air-bar b{color:#b9ffb0}.air-bar>span{color:var(--dim)}.air-bar em{font-style:normal;color:var(--txt);min-width:0;overflow-wrap:anywhere}.air-bar em b{color:var(--yel)}
.air-bar .btn{padding:2px 12px;font-size:15px}.air-bar i{font-style:normal;margin-left:auto;color:#b9ffb0;white-space:nowrap}
@media (max-width:640px){.air-bar>span{display:none}}

.kb-crown.big{font-size:34px}
.ge-king{border-color:#8a6a2a;background:linear-gradient(180deg,#2a1f0c,var(--ink))}.king-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.king-id{flex:1;min-width:160px}.king-id b{font-size:22px;color:#ffd06a}.king-id b em{font-style:normal;font-family:var(--font-ui);font-size:11px;color:#ffd06a;border:1px solid #8a6a2a;background:#2a1f0c;padding:0 6px;border-radius:3px;margin-left:6px;vertical-align:middle}.king-id span{display:block;color:var(--dim);font-size:15px}
.king-stats{margin-top:10px}

.ref-x{text-decoration:none;white-space:nowrap}.ref-link code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
@media (max-width:520px){.ref-link{flex-wrap:wrap}.ref-link code{flex-basis:100%}}
/* holder rewards: lifetime total, one row per coin */
.earn{border:1px solid #8a6a2a;background:linear-gradient(180deg,#2a1f0c,var(--ink));border-radius:4px;padding:8px 10px;margin-bottom:8px}.earn span{display:block;color:var(--dim);font-size:14px}.earn b{display:block;font-size:30px;color:#ffd06a;line-height:1.1}.earn-parts{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px}.earn-parts i{font-style:normal;color:var(--dim);font-size:14px}.earn-parts em{font-style:normal;color:var(--txt)}.earn-open{color:var(--grn);font-size:14px;margin-top:3px}
.cg .cg-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.cg .cg-btns .btn{flex:1;min-width:120px}
.claims-hist{margin-top:6px}.claims-hist summary{cursor:pointer;color:var(--dim);font-size:15px;padding:4px 0}.claims-hist .claim{margin-top:6px}
/* Valhalla gate row on the character card */
.vh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0;padding:6px 8px;border:1px solid var(--edge);border-radius:4px;background:var(--ink)}.vh:empty{display:none}.vh-t{color:#ffd06a;font-weight:bold}.vh-ok{color:var(--grn)}.vh-no{color:var(--dim)}.vh .btn{padding:3px 10px}.vh-hint{flex-basis:100%;color:var(--dim);font-size:14px}.vh-hint code{color:var(--yel)}.vh-hint .btn{padding:1px 8px;margin-left:4px}.vh-what{color:var(--dim);font-size:14px;line-height:1.35}a.btn[data-vh]{text-decoration:none;display:inline-block}
#mePanel.flash{box-shadow:0 0 0 2px #ffd06a;transition:box-shadow .6s}
.vh-alt{flex-basis:100%;color:var(--dim);font-size:13px;text-decoration:underline dotted}
.vh{flex-direction:column;align-items:stretch;gap:4px}.vh-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vh-line .vh-t{min-width:110px}
.vh-multi{text-decoration:none}
.cg-all{border-color:#8a6a2a}.cg-big{width:100%;font-size:15px;padding:10px 12px}

.lf-seedonly[hidden]{display:none!important}.lf-kind .ge-tabs button{min-width:110px}.tr-curve{margin:6px 0 2px;padding:6px 10px;border:1px solid #2e5a2e;border-radius:6px;color:#9fe39f;font-size:15px}
.lf-short[hidden]{display:none!important}
/* creator dashboard (/creator) and the launcher bar on a coin page */
.ge-devbar{gap:12px}.ge-devbar [data-dev=fees] b{color:var(--grn);font-weight:normal}.ge-devbar .cd-st:empty{display:none}.ge-devbar .cd-st{width:100%}
.ge-dash[hidden]{display:none!important}
/* ---- the creator dashboard (/creator) — Design v2 (owner 10-24): each coin is one panel and its groups a lighter fill (no card in a card),
   label/value rows split by hairlines, every figure tabular; the manage controls use the foundation's fields at the small height */
.cd-refresh{margin-left:auto}.cd-dash .ge-tok-id>b{white-space:normal;overflow:visible;text-overflow:clip} /* "CREATOR DASHBO…" was cut on phones */
.cd-empty{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-4);text-align:center}.cd-empty p{margin:0;max-width:52ch;color:var(--dim)}
.cd-totals{grid-template-columns:repeat(3,minmax(0,1fr))}.cd-totals small{display:block;color:var(--dim);font-size:var(--fs-cap)}@media(max-width:600px){.cd-totals{grid-template-columns:1fr 1fr}}
.cd-coin{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel);padding:var(--sp-4);margin:var(--sp-3) 0}
.cd-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:1px solid var(--line)}.cd-head .ge-ic{width:44px;height:44px}
.cd-id{flex:1;min-width:150px}.cd-id b{display:block;font:700 var(--fs-h3)/1.15 var(--font-display);color:var(--gold-txt)}.cd-id small,.cd-px small{display:block;color:var(--dim);font-size:var(--fs-sm)}
.cd-px{text-align:right}.cd-px b{color:var(--num);font-size:var(--fs-h4);font-weight:700;font-variant-numeric:tabular-nums}.cd-head .btn{min-height:var(--ctl-h-sm);padding:0 12px;font-size:var(--fs-sm)}
.cd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--sp-2)}
.cd-card{background:var(--fill);border:0;border-radius:var(--r-ctl);padding:12px;min-width:0}
.cd-card h4{margin:0 0 8px;font:600 var(--fs-cap)/1.3 var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}.cd-card h4 small{margin-left:6px;font-size:var(--fs-cap);font-weight:400;letter-spacing:0;text-transform:none;color:var(--mute)}
.cd-card .note{font-size:var(--fs-sm)}
.cd-claim{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 0 10px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.cd-claim span{display:block;font-size:var(--fs-cap);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}.cd-claim b{color:var(--grn);font:700 20px/1.2 var(--font-ui);font-variant-numeric:tabular-nums}.cd-claim small{display:block;color:var(--dim);font-size:var(--fs-sm)}.cd-claim .btn{flex:none}
.cd-kv{display:grid;grid-template-columns:auto 1fr;gap:0 12px;margin:0 0 6px;font-size:var(--fs-dense)}.cd-kv dt,.cd-kv dd{align-self:stretch;padding:5px 0;border-bottom:1px solid var(--line)}.cd-kv dt:nth-last-child(2),.cd-kv dd:last-child{border-bottom:0}
.cd-kv dt{color:var(--dim)}.cd-kv dd{margin:0;text-align:right;color:var(--num);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.cd-kv dd b{color:var(--gold-txt);font-weight:600}.cd-kv dd small{color:var(--dim);font-size:var(--fs-cap)}
.cd-chartcard{grid-column:span 2}@media(max-width:640px){.cd-chartcard{grid-column:auto}}
.cd-chart{width:100%;height:auto;display:block}.cd-chart .hit{fill:transparent;cursor:crosshair}.cd-chart .bar{fill:var(--gold)}.cd-chart g.on .bar,.cd-chart g:hover .bar{fill:#ffd06a}.cd-chart .axis{stroke:var(--line);stroke-width:1}.cd-chart .grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4;opacity:.7}.cd-chart .lbl{fill:var(--dim);font-size:11px;font-family:var(--font-ui)}
.cd-hover{min-height:2.6em;margin-top:4px}.cd-hover b{color:var(--gold-txt);font-weight:600}
.cd-st:empty{display:none}.cd-st{margin-top:6px;color:var(--yel)}
.cd-managecard{margin-top:var(--sp-2)}.cd-managecard summary{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-height:32px;cursor:pointer;list-style:none}.cd-managecard summary::-webkit-details-marker{display:none}.cd-managecard summary h4{margin:0;color:var(--gold-txt)}.cd-managecard summary h4::before{content:'▸ ';color:var(--dim)}.cd-managecard[open] summary h4::before{content:'▾ '}.cd-managecard[open] summary{margin-bottom:6px}.cd-managecard summary .note{font-size:var(--fs-sm)}
.cd-manage .cd-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0;font-size:var(--fs-dense)}.cd-manage .cd-l{color:var(--dim);min-width:130px}
.cd-manage :is(input:not([type=checkbox],[type=radio]),select,textarea){min-height:var(--ctl-h-sm);padding:4px 10px;max-width:100%}
.cd-manage input[data-dev=tax]{width:80px}.cd-manage input[data-dev=x],.cd-manage input[data-dev=tg],.cd-manage input[data-dev=web]{flex:1;min-width:140px}.cd-manage textarea{flex:1;min-width:200px}.cd-manage input[data-dev=vestamt]{width:130px}
.cd-manage .btn{min-height:var(--ctl-h-sm);padding:0 12px;font-size:var(--fs-sm)}
.cd-bridge input{width:150px}.cd-bridge .cd-wide{flex:0 0 calc(100% - 138px);margin-left:138px;min-width:0;white-space:normal;overflow-wrap:anywhere}@media(max-width:700px){.cd-bridge .cd-wide{flex-basis:100%;margin-left:0}}.cd-bridge .br-short{color:var(--yel);font-weight:normal}.cd-bridge .br-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}
.cd-buycost{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 var(--sp-3);white-space:normal;overflow-wrap:anywhere}.cd-buycost small{color:var(--dim)}.cd-buycost.hi b,.cd-buycost .br-short{color:var(--yel)}.cd-buycost .btn{min-height:var(--ctl-h-sm);padding:0 12px;font-size:var(--fs-sm)} /* what a SOL buyer pays (owner 10-28) */
.cd-chart .bar.snipe{fill:#4fb3ff}.cd-chart g.on .bar.snipe,.cd-chart g:hover .bar.snipe{fill:#8fd0ff}
.cd-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--dim);margin:-2px 0 4px}.cd-legend .sw{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--gold);margin-right:5px;vertical-align:baseline}.cd-legend .sw.snipe{background:#4fb3ff}
@media(max-width:760px){.ge-tok-head.cd-dash{grid-template-columns:40px minmax(0,1fr) auto}.ge-tok-head.cd-dash>.ge-tok-id{grid-column:2}.ge-tok-head.cd-dash>.cd-refresh{grid-column:3;grid-row:1} /* the phone coin head's grid put Refresh on top of the title */
  .ge-stats.cd-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.cd-manage .ge-tabs,.cd-manage .seg{flex-wrap:wrap}.cd-coin{padding:var(--sp-3)}.cd-manage .btn,.cd-head .btn,.cd-manage :is(input:not([type=checkbox],[type=radio]),select){min-height:40px}.cd-claim .btn{min-height:var(--ctl-h)}}
.cd-snipebig b{color:#8fd0ff}.cd-snipebig em{font-style:normal;color:#8fd0ff;font-size:30px;text-align:right;line-height:1}.cd-snipebig em small{display:block;color:var(--dim);font-size:14px}
/* GP / GLDX pairs: hidden-by-pair controls stay hidden whatever their display, and the issuer note reads as a warning */
.ge-tabs button[hidden],.lf-santaonly[hidden],.lf-short .btn[hidden]{display:none!important}
.ge-issuer{color:#ffb35c}.lf-pair .ge-tabs button{min-width:64px}
#lfPairNote b{color:#ffb35c;font-weight:normal}
.cd-burned b{color:#ffb35c}.cd-burned em{font-style:normal;font-size:20px}
.lf-lp .ge-tabs button{min-width:84px}
/* the board's tax tag: what a launched coin's tax does, and its rate */
.ge-mode{font-style:normal;font-size:14px;line-height:1;padding:2px 6px;border-radius:9px;border:1px solid;vertical-align:2px;white-space:nowrap;letter-spacing:.3px}
.ge-mode.m-burn{color:#ffb35c;border-color:rgba(255,140,40,.55);background:rgba(255,110,20,.12)}
.ge-mode.m-rewards{color:#7dff8a;border-color:rgba(0,220,60,.5);background:rgba(0,200,60,.10)}
.ge-mode.m-buyback{color:#8fd0ff;border-color:rgba(79,179,255,.55);background:rgba(79,179,255,.12)}
@media(max-width:600px){.ge-mode{font-size:12px;padding:1px 4px}}
.ge-row .it b{white-space:normal}
/* the tag is set in the body face, not the heading face: in Press Start 2P "Rewards 3%" is wider than a narrow name column and the row's ellipsis ate the rate */
.ge-mode{font-family:var(--font-ui);font-size:12px;font-weight:400;letter-spacing:.2px;display:inline-block;max-width:100%;vertical-align:1px}
@media(max-width:600px){.ge-mode{font-size:15px}}
@media(max-width:600px){.ge-mode .mt,.ge-mode .ml{display:none}.ge-row .it b .ge-mode{display:inline-block;margin-top:2px}}
.tr-rev{color:var(--dim)}

/* the site's own icon set (bespoke art, no emoji): <i class="ic ic-NAME"></i> */
.ic{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.22em;background:center/contain no-repeat;flex:none}
.ic-burn{background-image:url('assets/icons/burn.png')}.ic-rewards{background-image:url('assets/icons/rewards.png')}.ic-buyback{background-image:url('assets/icons/buyback.png')}.ic-lock{background-image:url('assets/icons/lock.png')}.ic-crown{background-image:url('assets/icons/crown.png')}.ic-trophy{background-image:url('assets/icons/trophy.png')}.ic-alert{background-image:url('assets/icons/alert.png')}.ic-caution{background-image:url('assets/icons/caution.png')}.ic-whale{background-image:url('assets/icons/whale.png')}.ic-swords{background-image:url('assets/icons/swords.png')}.ic-ok{background-image:url('assets/icons/ok.png')}.ic-no{background-image:url('assets/icons/no.png')}.ic-star{background-image:url('assets/icons/star.png')}.ic-hat{background-image:url('assets/icons/hat.png')}.ic-telegram{background-image:url('assets/icons/telegram.png')}.ic-web{background-image:url('assets/icons/web.png')}
.ge-watch:not(.on) .ic-star{filter:grayscale(1) brightness(.8)}
.cd-burned em .ic{width:1.4em;height:1.4em}
.lf-pair select{background:var(--wood2);border:1px solid var(--edge);color:var(--txt);padding:3px 6px;font:inherit;font-size:17px;border-radius:4px;max-width:210px}.lf-pair select.on{border-color:var(--gold);color:#ffd06a}
/* board sections: the Grand Exchange top 10 block and the site's own launches */
.ge-sec{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:8px 10px 4px;border-top:1px solid var(--edge);margin-top:4px}.ge-sec b{color:#ffd06a;font-weight:normal;font-size:15px;letter-spacing:1px;text-transform:uppercase}.ge-sec span{color:var(--dim);font-size:15px}
/* phone-width fixes (QA 10-04): grid tracks must be allowed to shrink below their content, or one long row widens the page */
.ge-ownchart{grid-template-columns:minmax(0,1fr)}.oc-tools{min-width:0}
@media(max-width:700px){.oc-tools{padding-right:8px;padding-top:36px}}
.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media(max-width:900px){.two{grid-template-columns:minmax(0,1fr)}}
.form{grid-template-columns:minmax(0,1fr)}.lp-amt-row{min-width:0}.lp-amt-row select{flex:0 1 auto;max-width:42%}
.ge-tok-head{min-width:0}.ge-tok-id{min-width:0}.ge-tok-id code,.ge-tok-id span{overflow-wrap:anywhere}

/* the launch form: what a LaunchLab launch does not have is hidden whatever its own state is; the venue buttons may wrap on a phone */
.ll-hide,.dbc-hide{display:none!important}
.lf-venue .ge-tabs{flex-wrap:wrap}

/* a Santa Markets coin that ranks among the Grand Exchange top 10: shown in the ranking itself, in the house colours (hat red into gold, a gold
   edge, a slow sheen), with the Santa Markets crest beside its name */
.ge-row.sm-top,.ge-row.sm-top:nth-child(even){position:relative;background:linear-gradient(90deg,rgba(168,26,26,.46),rgba(132,92,20,.24) 36%,rgba(24,18,9,0) 80%),#1b130a;border-top:1px solid rgba(255,206,92,.6);border-bottom:1px solid rgba(255,206,92,.38);box-shadow:inset 3px 0 0 #ffce5c,inset 0 0 28px rgba(255,190,70,.09)}
.ge-row.sm-top:hover{background:linear-gradient(90deg,rgba(190,34,34,.56),rgba(150,106,24,.32) 36%,rgba(42,32,20,.2) 80%),#241a0e}
.ge-row.sm-top::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 43%,rgba(255,238,176,.14) 50%,transparent 57%);background-size:260% 100%;background-repeat:no-repeat;animation:smSheen 6s linear infinite;pointer-events:none}
@keyframes smSheen{0%{background-position:150% 0}60%,100%{background-position:-150% 0}}
@media(prefers-reduced-motion:reduce){.ge-row.sm-top::after{animation:none;opacity:0}}
.ge-row.sm-top .rk{color:#ffce5c;text-shadow:0 0 9px rgba(255,190,70,.65)}
.ge-row.sm-top .ge-ic{box-shadow:0 0 0 2px #ffce5c,0 0 16px rgba(255,190,70,.55)}
.ge-row.sm-top .mc b{color:#ffe08a}
.sm-crest{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-family:var(--font-ui);font-size:12px;font-weight:400;line-height:1;letter-spacing:.7px;text-transform:uppercase;color:#1a1005;background:linear-gradient(180deg,#ffe9a6,#e0a534);border:1px solid #fff3c4;border-radius:9px;padding:2px 7px 2px 4px;vertical-align:1px;box-shadow:0 1px 0 rgba(0,0,0,.55),0 0 12px rgba(255,190,70,.38);white-space:nowrap}
.sm-crest .ic{width:1.15em;height:1.15em;vertical-align:0}
.sm-note{font-style:normal;color:#ffce5c}.sm-note .ic{vertical-align:-.2em}
@media(max-width:600px){.sm-crest{font-size:15px;padding:1px 4px}.sm-crest span{display:none}}

/* the board's columns: numbers are right-aligned, so their headers are too (they sat left of their own column); every row, the GP and SANTA rows
   included, uses one grid. The wide board carries 5m / 1h / 4h / 24h, LP size and LP as a share of market cap; as the table narrows the
   columns drop out one at a time (the three short windows first, market cap last), and on a phone LP moves under the name. */
.ge-th .r{text-align:right}
.ge-row.gp{padding-left:7px}
.ge-row .r .na{color:var(--dim)}
.ge-wide{container-type:inline-size}
/* Column widths (design v2, owner 10-24: Inter 14px tabular — ~8px a figure — not VT323 22px): a price to 10 characters ($0.0000341; smaller ones
   count their zeros, $0.0₈123), a change to 7 (+453.8%), money to 7 ($473.2K), 12px gaps. Columns drop one at a time as the board narrows —
   5m, 1h, LP/MCAP, 4h, 24h volume, LP (then inline under the name) — and every breakpoint leaves the item column ≥ 240px, so names are
   never cut to "RuneScape G…" (1440) or "GP (" (1024, where the 150px price column left the item 114px). */
.ge-wide .ge-th,.ge-wide .ge-row{grid-template-columns:36px minmax(240px,1fr) 124px 64px 64px 64px 72px 88px 84px 76px 92px 18px;column-gap:12px}
.ge-wide .ge-row .r b{white-space:nowrap}
.ge-wide .ge-th .lpr{white-space:nowrap}
.lp-inline{display:none;font-style:normal}
@container (max-width:1160px){.ge-wide .c5{display:none}.ge-wide .ge-th,.ge-wide .ge-row{grid-template-columns:36px minmax(240px,1fr) 124px 64px 64px 72px 88px 84px 76px 92px 18px}}
@container (max-width:1080px){.ge-wide .c5,.ge-wide .c1{display:none}.ge-wide .ge-th,.ge-wide .ge-row{grid-template-columns:36px minmax(240px,1fr) 124px 64px 72px 88px 84px 76px 92px 18px}}
@container (max-width:1008px){.ge-wide .c5,.ge-wide .c1,.ge-wide .lpr{display:none}.ge-wide .ge-th,.ge-wide .ge-row{grid-template-columns:36px minmax(240px,1fr) 124px 64px 72px 88px 84px 92px 18px}}
@container (max-width:920px){.ge-wide .c5,.ge-wide .c1,.ge-wide .lpr,.ge-wide .c4{display:none}.ge-wide .ge-th,.ge-wide .ge-row{grid-template-columns:36px minmax(240px,1fr) 124px 72px 88px 84px 92px 18px}}
@container (max-width:840px){.ge-wide .c5,.ge-wide .c1,.ge-wide .lpr,.ge-wide .c4,.ge-wide .vol{display:none}.ge-wide .ge-th,.ge-wide .ge-row{grid-template-columns:36px minmax(240px,1fr) 124px 72px 84px 92px 18px}}
@container (max-width:740px){.ge-wide .c5,.ge-wide .c1,.ge-wide .lpr,.ge-wide .c4,.ge-wide .vol,.ge-wide .lp{display:none}.ge-wide .lp-inline{display:block;color:#c9a55a}.ge-wide .lp-inline span+span::before{content:' · '}.ge-wide .ge-th,.ge-wide .ge-row{grid-template-columns:28px minmax(0,1fr) 112px 64px 84px 16px;column-gap:10px}}
@container (max-width:520px){.ge-wide .lp-inline span{display:block}.ge-wide .lp-inline span+span::before{content:''}.ge-wide .ge-row .it small .nm{display:none}.ge-wide .mc{display:none}.ge-wide .ge-th,.ge-wide .ge-row{grid-template-columns:28px minmax(0,1fr) 86px 56px 16px;gap:6px;padding:6px 6px}}

/* ---- the live board: green up, red down. Percent changes carry their colour (the row's gold used to win over it), a cell that moved flashes and
   settles, a row that moved is swept by its colour, a trade drops a chip that rises off the row, and a real buy throws a few pixel sparks. */
.ge-row .r b.up{color:#3df06a}.ge-row .r b.dn{color:#ff5c5c}
.ge-row{position:relative}
.ge-row .r b{display:block;transform-origin:right center}
@keyframes tkUp{0%{color:#b6ffca;text-shadow:0 0 14px rgba(61,240,106,.95),0 0 3px #fff;transform:scale(1.2) translateY(-2px)}35%{transform:scale(1.06)}100%{text-shadow:0 0 0 rgba(61,240,106,0);transform:none}}
@keyframes tkDn{0%{color:#ffc2c2;text-shadow:0 0 14px rgba(255,80,80,.95),0 0 3px #fff;transform:scale(1.12) translateX(-3px)}18%{transform:scale(1.08) translateX(3px)}36%{transform:scale(1.04) translateX(-2px)}54%{transform:translateX(1px)}100%{text-shadow:0 0 0 rgba(255,80,80,0);transform:none}}
.tk-up{animation:tkUp .95s cubic-bezier(.2,.9,.3,1)}.tk-dn{animation:tkDn .8s ease-out}
.ge-row [data-c="px"].tk-up,.ge-row [data-c="mc"].tk-up{color:#3df06a}.ge-row [data-c="px"].tk-dn,.ge-row [data-c="mc"].tk-dn{color:#ff5c5c}
@keyframes rowUp{0%{box-shadow:inset 0 0 0 0 rgba(61,240,106,0)}12%{box-shadow:inset 4px 0 0 0 #3df06a,inset 0 0 46px rgba(61,240,106,.34)}100%{box-shadow:inset 0 0 0 0 rgba(61,240,106,0)}}
@keyframes rowDn{0%{box-shadow:inset 0 0 0 0 rgba(255,80,80,0)}12%{box-shadow:inset 4px 0 0 0 #ff5c5c,inset 0 0 46px rgba(255,80,80,.28)}100%{box-shadow:inset 0 0 0 0 rgba(255,80,80,0)}}
.ge-row.row-up{animation:rowUp 1.5s ease-out}.ge-row.row-dn{animation:rowDn 1.3s ease-out}
.ge-row.sm-top.row-up,.ge-row.sm-top.row-dn,.ge-row.sm-top.buy-pop,.ge-row.sm-top.sell-pop{animation-name:smTick}
@keyframes smTick{0%{filter:brightness(1)}14%{filter:brightness(1.55)}100%{filter:brightness(1)}}
.tr-chip{position:absolute;right:34px;top:50%;z-index:3;pointer-events:none;font-family:var(--font-ui);font-weight:700;font-size:13px;line-height:1;padding:5px 7px;border-radius:4px;white-space:nowrap;animation:chipRise 1.85s cubic-bezier(.15,.8,.3,1) forwards}
.tr-chip.buy{color:#06210d;background:linear-gradient(180deg,#8dffaa,#2fdc5d);border:1px solid #d6ffe0;box-shadow:0 0 16px rgba(61,240,106,.7)}
.tr-chip.sell{color:#2a0606;background:linear-gradient(180deg,#ffb0b0,#f05252);border:1px solid #ffe0e0;box-shadow:0 0 14px rgba(255,80,80,.6)}
@keyframes chipRise{0%{opacity:0;transform:translateY(-10%) scale(.6)}12%{opacity:1;transform:translateY(-70%) scale(1.12)}22%{transform:translateY(-78%) scale(1)}75%{opacity:1}100%{opacity:0;transform:translateY(-210%) scale(.96)}}
.tr-spark{position:absolute;right:62px;top:50%;width:5px;height:5px;z-index:2;pointer-events:none;background:#ffe27a;box-shadow:0 0 6px #ffce3a,0 0 2px #fff;animation:sparkFly .95s ease-out forwards}
.tr-spark:nth-of-type(3n){background:#7dffa0;box-shadow:0 0 6px #3df06a}.tr-spark:nth-of-type(4n){width:3px;height:3px}
@keyframes sparkFly{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3)}}
@media(prefers-reduced-motion:reduce){.tk-up,.tk-dn,.ge-row.row-up,.ge-row.row-dn,.tr-chip,.tr-spark{animation:none}.tr-chip,.tr-spark{display:none}}
@media(max-width:600px){.tr-chip{font-size:9px;right:22px;padding:4px 5px}}

/* column headers sort on a click: the active one is lit and carries an arrow (down = high to low, up = low to high) */
#ecoHead [data-sort]{cursor:pointer;user-select:none;transition:color .12s}
#ecoHead [data-sort]:hover{color:#ffe08a}
#ecoHead [data-sort].on{color:#ffce5c}
#ecoHead [data-sort].on::after{content:'';display:inline-block;margin-left:5px;vertical-align:1px;border:4px solid transparent;border-top:6px solid #ffce5c;border-bottom:0}
#ecoHead [data-sort].on.asc::after{border-top:0;border-bottom:6px solid #ffce5c}
.sm-crest.plain{background:none;color:#ffce5c;border-color:rgba(255,206,92,.55);box-shadow:none}
.ge-sec a{color:#ffce5c}

/* the launch form's dev buy: typed in SOL, answered in coins */
.lf-devout{min-height:1.3em}.lf-devout b{color:#ffe08a;font-weight:normal}.lf-devout b.dn{color:#ff5c5c}

/* ---- drop-downs in the house style (see dressSelect in app.js): the native select is kept, unseen, as the value; the button and the list are ours */
.dd{position:relative;display:inline-flex;vertical-align:middle;min-width:0;max-width:100%}
.dd[hidden]{display:none}
.dd-native{position:absolute!important;left:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none;margin:0!important;border:0!important;padding:0!important;min-width:0!important}
.dd-btn{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;width:100%;min-width:0;background:var(--ink);color:var(--txt);border:2px solid var(--edge);border-radius:4px;padding:5px 9px;font-family:inherit;font-size:19px;line-height:1.25;cursor:pointer;text-align:left;transition:border-color .12s,color .12s,box-shadow .12s}
.dd-btn:hover,.dd.open .dd-btn{border-color:#ffb347;color:#fff2c2}
.dd.open .dd-btn{box-shadow:0 0 0 1px rgba(255,179,71,.35),0 0 14px rgba(255,160,50,.18)}
.dd-btn:focus-visible{outline:2px solid #ffce5c;outline-offset:1px}
.dd-btn:disabled{opacity:.55;cursor:default}
.dd-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;grid-column:1;grid-row:1}
.dd-caret{grid-column:2;grid-row:1;border:5px solid transparent;border-top:7px solid #ffce5c;border-bottom:0;transition:transform .14s}
.dd.open .dd-caret{transform:rotate(180deg)}
.dd-sizer{grid-column:1;grid-row:2;display:block;height:0;overflow:hidden;visibility:hidden}.dd-sizer span{display:block;white-space:nowrap}
.dd-list{position:absolute;z-index:100000;box-sizing:border-box;max-height:min(360px,60vh);overflow:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#261c12,#17110b);border:2px solid #a8823f;border-radius:6px;box-shadow:0 16px 40px rgba(0,0,0,.7),0 0 0 1px #000,inset 0 0 0 1px rgba(255,206,92,.12);padding:4px;font-family:var(--font-ui);font-size:14px;line-height:1.2;color:var(--txt);animation:ddIn .12s ease-out}
@keyframes ddIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.dd-opt{position:relative;padding:6px 12px 6px 28px;border-radius:4px;cursor:pointer;white-space:nowrap}
.dd-opt.kb{background:rgba(255,179,71,.18);color:#fff2c2}
.dd-opt.on{color:#ffce5c}
.dd-opt.on::before{content:'';position:absolute;left:10px;top:50%;width:8px;height:8px;margin-top:-4px;background:#ffce5c;transform:rotate(45deg);box-shadow:0 0 7px rgba(255,206,92,.75)}
.dd-opt.off{opacity:.45;cursor:default}
.dd-list::-webkit-scrollbar{width:10px}.dd-list::-webkit-scrollbar-thumb{background:#6d5430;border:2px solid #17110b;border-radius:6px}.dd-list::-webkit-scrollbar-track{background:#17110b}
.dd-list{scrollbar-color:#6d5430 #17110b;scrollbar-width:thin}
@media(prefers-reduced-motion:reduce){.dd-list{animation:none}}
/* where a select had a look or a size of its own, its button takes it over */

.cd-manage .dd-btn{background:var(--wood2);border-width:1px;padding:4px 8px;font-size:14px}
.lf-pair .dd{max-width:210px}.lf-pair .dd-btn{background:var(--wood2);border-width:1px;padding:3px 6px;font-size:15px}
.lf-pair .dd:has(select.on) .dd-btn{border-color:var(--gold);color:#ffd06a}
.lp-amt-row .dd{flex:0 1 auto;max-width:42%}
.ge-devlock .dd{flex:0 1 auto;min-width:90px}
.lf-when .dd,.lf-mode .dd,.lf-seed .dd{min-width:0}

/* the launch form's LaunchLab rows are hidden with the `hidden` attribute; `.lf-mode{display:flex}` used to win over it, so BOTH "Pair with" rows showed
   on a Santa Markets pool launch. Hidden means hidden, for every row of the form. */
.ge-launchbox [hidden]{display:none!important}
/* the owner's sell ladders */
.cd-card.ld{margin-top:10px}.ld-new{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}.ld-new select,.ld-new input{background:var(--wood2);border:1px solid var(--edge);color:var(--txt);padding:4px 8px;font:inherit;font-size:16px;border-radius:4px}.ld-new input{width:130px}
.ld-row{margin-top:8px}.ld-grid{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;font-size:15px}.ld-grid span{color:var(--dim)}.ld-grid b{font-weight:normal;color:var(--txt);overflow-wrap:anywhere}.ld-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.ld .dn{color:var(--red)}
.ld-new input[data-ld=mint]{width:260px}.ld-h{margin:14px 0 4px}.ld-all{align-items:center}.ld-bar{height:6px;background:var(--ink);border:1px solid var(--edge);border-radius:3px;margin:4px 0 8px;overflow:hidden}.ld-bar i{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,var(--gold3),var(--gold2) 70%,var(--gold1));box-shadow:0 0 8px rgba(255,179,71,.45)}
[data-dash-ladders] .cd-card.ld{margin-bottom:14px}.ld-link{padding:8px 2px 12px}
.ld-new input[data-ld=from],.ld-new input[data-ld=top]{width:150px}
.ld-range{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
/* sell ladders: the summary on top — all the SOL the ladders turned coins into */
.ldsum{position:relative;margin:6px 0 14px;padding:16px 18px 12px;border:1px solid var(--frame2);border-radius:6px;background:radial-gradient(120% 160% at 0% 0%,rgba(255,179,71,.16),transparent 55%),radial-gradient(90% 120% at 100% 100%,rgba(184,134,11,.10),transparent 60%),linear-gradient(180deg,#2c2219,#16100b);box-shadow:inset 0 1px 0 rgba(255,242,194,.12),inset 0 0 0 1px rgba(0,0,0,.55),0 8px 22px rgba(0,0,0,.45)}
.ldsum:before{content:'';position:absolute;inset:4px;border:1px solid rgba(168,130,63,.32);border-radius:4px;pointer-events:none}
.ldsum-hero span{display:block;font-family:'Cinzel',serif;font-weight:900;letter-spacing:2px;text-transform:uppercase;font-size:14px;color:var(--gold2);text-shadow:0 1px 0 #000}
.ldsum-hero b{display:inline-block;font-family:'Cinzel',serif;font-weight:900;font-size:52px;line-height:1.05;background:linear-gradient(180deg,var(--gold1) 0%,#ffd06a 38%,var(--gold2) 62%,var(--gold3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 16px rgba(255,179,71,.28))}
.ldsum-hero b i{font-style:normal;font-size:17px;margin-left:10px;letter-spacing:1px}
.ldsum-hero small{display:block;color:var(--dim);font-size:14px;margin-top:2px}
.ldsum-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 12px}
.ldsum-tiles>div{background:linear-gradient(180deg,rgba(255,242,194,.04),rgba(0,0,0,.25)),rgba(10,7,5,.6);border:1px solid var(--frame);border-radius:4px;padding:8px 10px;box-shadow:inset 0 1px 0 rgba(255,242,194,.07)}
.ldsum-tiles span{display:block;color:var(--dim);font-size:14px;letter-spacing:1px;text-transform:uppercase}
.ldsum-tiles b{display:block;color:#ffd06a;font-size:18px;font-weight:normal;text-shadow:0 1px 0 #000;overflow-wrap:anywhere}
.ldsum-tiles small{display:block;color:var(--dim);font-size:14px;min-height:18px}
.ldsum-tiles .btn{margin-top:4px;padding:2px 10px;font-size:14px}
.ldsum-coins{border-top:1px solid rgba(138,109,59,.35)}
.ldsum-row{display:grid;grid-template-columns:22px 96px minmax(0,1fr) auto 96px;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid rgba(138,109,59,.18)}
.ldsum-row img{width:22px;height:22px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px var(--frame2),0 1px 3px #000}
.ldsum-row b{font-weight:normal;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ldsum-bar{height:8px;background:var(--ink);border:1px solid var(--frame);border-radius:4px;overflow:hidden}
.ldsum-bar i{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,var(--gold3),var(--gold2) 70%,var(--gold1));box-shadow:0 0 8px rgba(255,179,71,.45)}
.ldsum-row em{font-style:normal;color:#ffd06a;white-space:nowrap}
.ldsum-row small{color:var(--dim);text-align:right;white-space:nowrap}
.ldsum-row.off{opacity:.55}
.ld-addh{font-family:'Cinzel',serif;font-weight:900;color:#ffd76a;letter-spacing:1px}
@media(max-width:760px){.ldsum{padding:14px 12px 10px}.ldsum-tiles{grid-template-columns:1fr 1fr}.ldsum-hero b{font-size:38px}.ldsum-row{grid-template-columns:22px 72px minmax(0,1fr) auto}.ldsum-row small{display:none}}
.ld-warn{border:1px solid var(--red);border-radius:4px;padding:6px 8px;margin-top:6px;color:var(--txt)}.ld-warn .btn{margin-left:6px}
/* the ladder bars: Veilbound's XP bar, 1:1 (hud_d4.css #xpbar) — track, gold, sheen, sections, gain beat */
.ld-xp{position:relative;height:7px;background:#0c0912;border:0;border-top:1px solid #00000099;border-radius:0;overflow:visible;transition:box-shadow .35s ease}
.ld-xp .fill{position:relative;overflow:hidden;height:100%;min-width:2px;width:0;background:linear-gradient(90deg,#8a6522,#d8a63c 55%,#ffe08a);box-shadow:0 0 8px #ffcf6e55;transition:width .45s cubic-bezier(.22,.9,.3,1),box-shadow .35s ease}
.ld-xp .fill::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 18%,#fff3c480 44%,#ffffffcc 50%,#fff3c480 56%,transparent 82%);transform:translateX(-100%);animation:vb-xp-sheen 3.4s linear infinite}
.ld-xp.gain{box-shadow:0 0 18px #ffcf6e66,0 -1px 10px #ffcf6e44}
.ld-xp.gain .fill{box-shadow:0 0 16px #ffe08aaa,0 0 34px #ffcf6e66}
.ld-xp.gain .fill::after{animation-duration:.7s}
@keyframes vb-xp-sheen{to{transform:translateX(100%)}}
.ld-xp .label{position:absolute;left:10px;bottom:100%;margin-bottom:3px;font-family:'Cinzel',serif;font-weight:700;font-size:10px;letter-spacing:.4px;color:#ffe6ad;text-align:left;line-height:1;text-shadow:0 1px 2px #000,0 0 6px #000a;opacity:.92;white-space:nowrap;pointer-events:none}
.ld-xp .ticks{display:flex;position:absolute;inset:0;z-index:2;pointer-events:none}
.ld-xp .ticks i{flex:1 1 0;border:0;box-shadow:inset -2px 0 0 #120c04cc,inset -3px 0 0 #ffdc9a2e}
.ld-xp .ticks i:last-child{box-shadow:none}
@media (prefers-reduced-motion:reduce){.ld-xp .fill::after{animation:none;opacity:.25}.ld-xp .fill{transition:none}}
.ld-row .ld-xp{margin:20px 0 10px}
.ldsum-xp{display:block}
.ldsum-tg{margin-top:8px;color:var(--dim);font-size:15px}.ldsum-tg b{color:#ffd06a;font-weight:normal}.ldsum-tg .btn{margin-left:6px;padding:1px 9px;font-size:14px}.ldsum-tg a{color:#ffd76a}

/* the board's 24h volume column */
.ge-th .vol{white-space:nowrap}
.ic-x{background-image:url('assets/icons/x.png')}
/* a coin's socials: painted icons in gold-rimmed medallions, on the board row beside the tags and large beside the name on the coin page */
.soc{display:inline-flex;gap:5px;margin-left:8px;vertical-align:middle}
.soc-b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#4a3a26,#1a130c 75%);border:1px solid var(--frame2);box-shadow:inset 0 1px 0 rgba(255,242,194,.18),0 1px 3px #000;cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}
.soc-b .ic{width:16px;height:16px;vertical-align:0;filter:drop-shadow(0 1px 1px #000)}
.soc-b:hover,.soc-b:focus-visible{transform:translateY(-1px);border-color:#ffd76a;box-shadow:inset 0 1px 0 rgba(255,242,194,.3),0 0 10px rgba(255,179,71,.55),0 1px 3px #000;outline:none}
.soc.big{margin-left:4px;gap:8px;align-self:center}
.soc.big .soc-b{width:42px;height:42px;border-width:2px;background:radial-gradient(circle at 35% 30%,#56432b,#1a130c 72%)}
.soc.big .soc-b .ic{width:24px;height:24px}
@container (max-width:520px){.ge-wide .ge-row .soc{display:none}}
@media(prefers-reduced-motion:reduce){.soc-b{transition:none}.soc-b:hover{transform:none}}
/* ---- Liquidity page (10-05 design pass): overview tiles that jump to their section, one card per pool (add on the left; position + risks on the right), compact Meteora ladder cards */
#s-lp .lq-pool,#lpPools{scroll-margin-top:84px}
/* ---- Liquidity and the earn pages' shared head — Design v2 (owner 10-24): title, a one-line lead, the details under How it works */
.lq-hero{margin:0 0 var(--sp-3)}
.lq-title{margin:var(--sp-1) 0 var(--sp-2);font:900 clamp(26px,3.4vw,var(--fs-h2))/1.1 var(--font-display);letter-spacing:.02em;color:var(--gold-txt);text-shadow:0 2px 0 #000}
.pg-sub{margin:0 0 var(--sp-2);max-width:70ch;color:var(--dim);font-size:var(--fs-body);line-height:1.45}
.pg-how{margin:var(--sp-2) 0 0;max-width:72ch;color:var(--dim);font-size:var(--fs-dense);line-height:1.5}
.pg-how>summary{display:inline-flex;align-items:center;gap:6px;min-height:32px;cursor:pointer;list-style:none;color:var(--gold-txt);font-weight:600;font-size:var(--fs-sm)}.pg-how>summary::-webkit-details-marker{display:none}
.pg-how>summary::after{content:'';width:7px;height:7px;margin-top:-3px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);transition:transform var(--dur) var(--ease-out)}.pg-how[open]>summary::after{margin-top:3px;transform:rotate(-135deg)}
.pg-how>summary:hover{color:#ffe3a0}.pg-how p{margin:var(--sp-1) 0 var(--sp-2)}.pg-how p:last-child{margin-bottom:0}
@media(max-width:760px){.pg-how-inline{display:none}.pg-sub{font-size:var(--fs-dense)}.lq-tile small{display:none}.lq-pool-h .lq-tag:nth-of-type(n+3){display:none}}
.lq-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}
.lq-tile{appearance:none;display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px 14px;text-align:left;cursor:pointer;font:inherit;color:var(--txt);background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel);transition:border-color var(--dur) var(--ease-out),background-color var(--dur)}
.lq-tile:hover,.lq-tile:focus-visible{border-color:var(--border-strong);background-color:var(--hover)}
.lq-tile span{font-size:var(--fs-cap);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.lq-tile b{font:700 22px/1.2 var(--font-display);color:var(--num);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lq-tile small{font-size:var(--fs-sm);color:var(--dim);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lq-tile.gold{border-color:rgba(255,190,90,.3)}.lq-tile.gold b{color:var(--gold-txt)}
.lq-pool{margin-top:0}
/* the header row carries the divider, so it runs under the tags too (it stopped at the title before) */
.lq-pool-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line)}
.panel .lq-pool-h h2{margin:0;padding:0;border:0;flex:1 1 auto;min-width:0}
.lq-tag{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--fill-2);color:var(--dim);font:600 var(--fs-cap)/1 var(--font-ui);white-space:nowrap}.lq-tag:empty{display:none}
.lq-cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--sp-5);align-items:start}
.lq-side{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}
/* the add form and your position are columns of the panel, not cards inside it */
.lq-card{min-width:0;padding:0;background:none;border:0}
.lq-card h3{margin:0 0 var(--sp-2);font:600 var(--fs-body)/1.3 var(--font-ui);letter-spacing:0;text-transform:none;color:var(--txt);text-shadow:none}
.lq-side .lp-risk{margin-top:0}
.form select.lp-slip,.form .dd:has(>select.lp-slip){justify-self:start;width:auto;min-width:120px}.form .dd:has(>select.lp-slip) .dd-btn{min-width:120px} /* a three-way choice, not a full-width bar */
.lq-yield .form{display:flex;gap:8px;flex-wrap:wrap}.lq-yield .form input{flex:1 1 260px}
.ld-card .ld-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ld-card .ld-ic{width:28px;height:28px;border-radius:50%;box-shadow:0 0 0 2px #0a0805,0 0 0 3px rgba(200,168,96,.55);background:#0c0912}
.ld-card .ld-name{flex:1 1 160px;font-family:'Cinzel',serif;font-weight:900;font-size:18px;color:#ffd76a;text-shadow:0 2px 0 #000;display:flex;align-items:center;gap:8px;min-width:0}
.ld-card .ld-btns{margin:0;display:flex;gap:6px;flex-wrap:wrap}
.ld-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:6px}
.ld-metrics div{background:rgba(0,0,0,.25);border:1px solid rgba(200,168,96,.22);border-radius:5px;padding:7px 9px;display:flex;flex-direction:column;gap:2px;min-width:0}
.ld-metrics span{font-size:12px;color:var(--dim);letter-spacing:.5px;text-transform:uppercase}
.ld-metrics b{font-size:15px;color:var(--txt);font-weight:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ld-metrics small{font-size:12px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.lq-cols{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.lq-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.lq-tile{padding:10px 12px}.lq-tile b{font-size:18px}.lq-tile small{-webkit-line-clamp:2}.poolbox{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.ld-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.ld-metrics div{grid-column:span 2}.ld-metrics div:nth-child(n+4){grid-column:span 3}.ld-metrics b{font-size:15px}}
@media(max-width:700px){.ld-new{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ld-new select,.ld-new input[data-ld=mint],.ld-new input[data-ld=qty]{grid-column:1/-1;width:100%;max-width:none;box-sizing:border-box}.ld-range{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px;white-space:normal}.ld-range .note:last-of-type{display:none}.ld-new input[data-ld=from],.ld-new input[data-ld=top]{width:auto;min-width:0}.ld-new button[data-ld=plan]{grid-column:1/-1}}
@media(max-width:700px){.ld-new .dd{grid-column:1/-1;width:100%;max-width:none}.ld-new .dd .dd-btn{width:100%;max-width:none;justify-content:space-between}}
/* ---- King of the Hill strip + compact Santa Cup (10-05, owner: "taking up too much real estate … AAA+ streamlined") */
.ge-king{padding:8px 12px}
.king-strip{display:grid;grid-template-columns:auto auto minmax(150px,1fr) auto auto;align-items:center;gap:12px}
.king-strip .kb-crown{font-size:20px;filter:drop-shadow(0 0 8px rgba(255,200,80,.5))}
.king-strip .king-ic{width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 2px #0a0805,0 0 0 3px rgba(255,208,106,.55),0 0 14px rgba(255,200,90,.3)}
.king-strip .king-id{min-width:0}
.king-strip .king-id b{font-family:'Cinzel',serif;font-weight:900;font-size:20px;color:#ffd06a;text-shadow:0 2px 0 #000;display:flex;align-items:center;gap:8px;white-space:nowrap}
.king-strip .king-id em{font-family:inherit;font-style:normal;font-size:11px;letter-spacing:1px;text-transform:uppercase;border:1px solid #8a6a2a;border-radius:999px;padding:2px 8px;color:#ffd06a;background:#1a130b;text-shadow:none}
.king-strip .king-id span{display:block;color:var(--dim);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.king-mini{display:flex;gap:6px}
.king-mini div{background:rgba(0,0,0,.28);border:1px solid rgba(200,168,96,.25);border-radius:5px;padding:4px 10px;min-width:72px;text-align:center}
.king-mini b{display:block;font-size:14px;color:var(--txt);font-weight:normal;white-space:nowrap}
.king-mini span{font-size:11px;color:var(--dim);letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}
.king-strip .king-go{white-space:nowrap}
@media(max-width:1050px){.king-strip{grid-template-columns:auto auto minmax(0,1fr) auto}.king-mini{grid-column:1/-1;flex-wrap:wrap}.king-mini div{flex:1 1 64px;min-width:0}}
@media(max-width:560px){.king-strip .king-go{grid-column:1/-1}}
@media(min-width:761px) and (max-width:1050px){.king-strip .king-go{grid-column:4;grid-row:1}} /* ux 10-24: in source order the button fell to a third row under the figures, left of an empty cell */
.ge-cup{padding:10px 12px}
.cup-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;position:relative}
.cup-bar .cup-trophy{font-size:20px}
.cup-name b{display:block;font-family:'Cinzel',serif;font-weight:900;font-size:22px;color:#ffd06a;line-height:1.05;letter-spacing:1px;text-shadow:0 2px 0 #3a2506,0 0 14px rgba(255,200,90,.3)}
.cup-name em{font-style:normal;color:#e8c87a}
.cup-name span{display:flex;align-items:center;gap:6px;color:var(--dim);font-size:14px;flex-wrap:wrap}
.cup-bar .cup-prize{text-align:right}.cup-bar .cup-prize b{font-size:22px}.cup-bar .cup-prize span{font-size:13px}
.cup-bar .cup-clock{margin:0;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;letter-spacing:1px;text-transform:uppercase;border-left:1px solid rgba(200,168,96,.25);padding-left:14px}
.cup-bar .cup-clock b{font-size:14px}
.cup-open{margin:8px 0 0;padding:5px 10px;border:1px dashed rgba(255,208,106,.35);border-radius:6px;color:var(--dim);font-size:14px;text-align:center;position:relative}
.ge-cup .cup-podium{margin:8px 0 0;position:relative}
.ge-cup .pod{padding:6px 6px 5px;gap:2px}.ge-cup .ge-ic.pod{width:38px;height:38px;margin-top:2px}.ge-cup .pod.first .ge-ic.pod{width:46px;height:46px}
.ge-cup .cup-rows{display:grid;grid-template-columns:1fr 1fr;margin-top:8px;position:relative}
.ge-cup .cup-row{grid-template-columns:20px 24px minmax(0,1fr) 54px 62px 108px;padding:4px 8px;gap:6px}
.ge-cup .cup-row:nth-child(odd){border-right:1px solid #22190f}
.ge-cup .cup-row b{font-size:10px}.ge-cup .cup-row .cz small{white-space:nowrap}.ge-cup .cup-row .cp,.ge-cup .cup-row .cm{font-size:15px}.ge-cup .cup-row small{font-size:12px}
.cup-how{margin-top:6px;color:var(--dim);font-size:13px;line-height:1.35;position:relative}
.cup-how summary{cursor:pointer;color:#e8c87a;list-style:none;font-size:13px;letter-spacing:.5px}
.cup-how summary::-webkit-details-marker{display:none}
.cup-how summary::before{content:'+ ';color:#ffd06a}.cup-how[open] summary::before{content:'– '}
@media(max-width:900px){.cup-bar{grid-template-columns:auto minmax(0,1fr) auto}.cup-bar .cup-clock{grid-column:2/-1;flex-direction:row;align-items:baseline;gap:8px;border-left:0;padding-left:0;justify-self:start}.ge-cup .cup-rows{grid-template-columns:1fr}.ge-cup .cup-row:nth-child(odd){border-right:0}}
@media(max-width:560px){.cup-bar{grid-template-columns:auto minmax(0,1fr)}.cup-bar .cup-prize{grid-column:1/-1;text-align:left;display:flex;align-items:baseline;gap:8px}.cup-bar .cup-clock{grid-column:1/-1}.ge-cup .cup-row{grid-template-columns:18px 22px minmax(0,1fr) 50px 104px;padding:3px 8px}.ge-cup .cup-row .cz small{white-space:nowrap}}
.ge-sec.sm{border-top:0;margin-top:2px}.ge-sec.sm b .ic{vertical-align:-.15em}
.ge-isle{font-family:var(--font-ui);font-style:normal;font-size:11px;color:#9fd8ff;border:1px solid #2f5a78;background:#0c1a26;padding:0 5px;border-radius:3px;margin-left:4px;vertical-align:middle;white-space:nowrap}
.ld-addrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 2px;padding:8px 10px;border:1px solid var(--edge);border-radius:6px;background:rgba(0,0,0,.18)}.ld-addrow input{background:var(--wood2);border:1px solid var(--edge);color:var(--txt);padding:4px 8px;font:inherit;font-size:16px;width:170px;border-radius:4px}.ld-addrow .note{margin:0}.ld-addrow[hidden]{display:none}
.ld-off .ld-top{flex-wrap:wrap;gap:10px}.ld-offstat{flex:1;min-width:220px;color:var(--dim);font-size:15px}.ld-offstat b{color:var(--txt);font-weight:normal}.ld-off{padding-top:8px;padding-bottom:8px;opacity:.92}.ld-h2{margin-top:18px;color:var(--dim)}
.gp-burnt{font-style:normal;color:#ff9b5a}
/* ---- launch form in three steps + the live coin card (10-05) */
.ge-launchbox[data-steps]{max-width:880px;width:min(880px,94vw)}
.lf-stepper{display:flex;gap:8px;margin:2px 0 14px}
.lf-stepper button{flex:1;display:flex;align-items:center;gap:8px;justify-content:center;padding:8px 10px;border:1px solid var(--edge);border-radius:8px;background:rgba(0,0,0,.25);color:var(--dim);font:inherit;font-size:17px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.lf-stepper button b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.08);color:var(--dim);font-weight:normal}
.lf-stepper button.on{color:#1b1206;background:linear-gradient(180deg,#ffd76a,#e0a92a);border-color:#ffd76a;box-shadow:0 0 16px rgba(255,200,80,.35)}
.lf-stepper button.on b{background:#1b1206;color:#ffd76a}
.lf-stepper button.done{color:#ffd76a;border-color:#8a6a2a}.lf-stepper button.done b{background:#3a2a0c;color:#ffd76a}
.lf-body{display:grid;grid-template-columns:1fr 230px;gap:16px;align-items:start}
.lf-main{min-width:0}.lf-step{animation:lfIn .22s ease}
@keyframes lfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.lf-card{position:sticky;top:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;border:1px solid #8a6a2a;border-radius:12px;background:radial-gradient(120% 80% at 50% 0%,rgba(255,200,80,.16),rgba(0,0,0,.35) 60%);text-align:center}
.lf-card-ic{width:104px;height:104px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#1a120a;border:2px solid #ffd76a;box-shadow:0 0 0 4px rgba(255,215,106,.12),0 0 28px rgba(255,200,80,.35)}
.lf-card-ic img{width:100%;height:100%;object-fit:cover}.lf-card-ic span{font-size:44px;color:#ffd76a}
.lf-card-sym{font-size:18px;color:#ffd76a;letter-spacing:1px}.lf-card-name{color:var(--txt);font-size:14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lf-card-tags{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-top:4px}
.lf-card-tags i{font-style:normal;font-size:14px;padding:2px 7px;border:1px solid var(--edge);border-radius:999px;color:var(--txt);background:rgba(0,0,0,.3)}
.lf-card-where{font-size:13px;color:var(--dim);line-height:1.35;margin-top:4px}
.lf-venues{align-items:stretch}.lf-venues>span:first-child{width:100%}
.lf-venues .ge-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;width:100%}
.lf-venues .ge-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;border-radius:10px;text-align:left;min-height:68px}
.lf-venues .ge-tabs button small{font-size:13px;line-height:1.3;opacity:.85;white-space:normal}
.lf-venues .ge-tabs button.on{box-shadow:0 0 0 1px #ffd76a,0 0 18px rgba(255,200,80,.3)}
.ge-launchbox[data-steps] .vb-actions [hidden]{display:none!important}
@media(max-width:720px){.lf-body{grid-template-columns:1fr}.lf-card{position:static;order:-1;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;text-align:left;padding:10px}.lf-card-ic{width:56px;height:56px}.lf-card-ic span{font-size:18px}.lf-card-where{width:100%}.lf-card-tags{justify-content:flex-start}.lf-stepper button{font-size:15px;padding:7px 6px}}
/* ---- the launch moment */
.lc-ov{background:radial-gradient(60% 60% at 50% 40%,rgba(80,50,10,.65),rgba(0,0,0,.88))}
.lc-box{position:relative;width:min(560px,92vw);padding:28px 24px 22px;border:1px solid #ffd76a;border-radius:16px;background:linear-gradient(180deg,#2a1d0b,#140d05);box-shadow:0 0 60px rgba(255,190,60,.35);text-align:center;overflow:hidden;animation:lcPop .5s cubic-bezier(.2,1.4,.4,1)}
.lc-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.lc-coin{position:relative;width:132px;height:132px;margin:0 auto 10px;border-radius:50%;padding:4px;background:conic-gradient(#ffd76a,#e63b2e,#ffd76a,#fff3c4,#ffd76a);animation:lcSpin 4s linear infinite}
.lc-coin img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;background:#1a120a;animation:lcSpin 4s linear infinite reverse}
.lc-box h2{margin:6px 0 4px;font-size:34px;color:#ffd76a;text-shadow:2px 2px 0 #000}.lc-box p{color:var(--txt);margin:0 0 16px}
.lc-acts{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}
.lc-next{display:flex;flex-direction:column;gap:6px;text-align:left;border-top:1px solid var(--edge);padding-top:12px}.lc-next span{color:var(--dim);font-size:14px;text-transform:uppercase;letter-spacing:1px}
.lc-next button{font:inherit;font-size:16px;text-align:left;padding:8px 10px;border:1px solid var(--edge);border-radius:8px;background:rgba(0,0,0,.3);color:var(--txt);cursor:pointer}.lc-next button:hover{border-color:#ffd76a;color:#ffd76a}
@keyframes lcPop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@keyframes lcSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.lc-box,.lc-coin,.lc-coin img,.lf-step{animation:none}}
/* ---- the social layer (10-05) */
.act-strip{display:flex;align-items:center;gap:10px;margin:2px 0 10px;padding:6px 8px;border:1px solid var(--edge);border-radius:10px;background:linear-gradient(90deg,rgba(255,200,80,.08),rgba(0,0,0,.25) 40%);overflow:hidden}
.act-track{display:block;overflow:hidden;scrollbar-width:none;min-width:0;flex:1;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 92%,transparent)}.act-run{display:flex;gap:8px;width:max-content;will-change:transform}.act-calm .act-track{overflow-x:auto}.act-track::-webkit-scrollbar{display:none}
.act{flex:none;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;border:1px solid var(--edge);background:rgba(0,0,0,.35);color:var(--txt);font-size:15px;white-space:nowrap;text-decoration:none}
.act b{font-weight:normal;color:#ffd76a}.act span{color:var(--dim)}.act .ic{width:16px;height:16px}
.act-buy{border-color:rgba(80,220,120,.45)}.act-buy b:first-of-type{color:#6dff9b}.act-sell{border-color:rgba(255,90,80,.4)}.act-sell b:first-of-type{color:#ff8a80}
.act-launch{border-color:#ffd76a;background:rgba(255,200,80,.12)}.act-graduate{border-color:#7fd3ff;background:rgba(80,180,255,.1)}.act-king{border-color:#ffd76a}
.act:hover{border-color:#ffd76a}
.act-new{animation:actIn 9s ease-out}@keyframes actIn{0%,45%{border-color:#ffd76a;box-shadow:0 0 14px 2px rgba(255,215,106,.55)}100%{box-shadow:0 0 0 0 rgba(255,215,106,0)}}
.ge-traders h2 i{font-style:normal;font-size:.6em;color:var(--dim);vertical-align:middle}
.tt-row{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:6px 4px;border-top:1px solid rgba(255,255,255,.05)}
.tt-rk{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.06);color:var(--dim);font-weight:normal}
.tt-1 .tt-rk{background:linear-gradient(180deg,#ffe28a,#d9a21f);color:#1b1206}.tt-2 .tt-rk{background:linear-gradient(180deg,#eef2f7,#9aa5b4);color:#151a22}.tt-3 .tt-rk{background:linear-gradient(180deg,#f0b27a,#a5612b);color:#1b1206}
.tt-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt)}.tt-who small,.tt-usd small{display:block;color:var(--dim);font-size:12px}.tt-usd{text-align:right;color:#ffd76a}
/* sentiment and OG buyers stack beside the listing (owner 10-24 sweep: three equal-height columns left a hole under the short sentiment box,
   and its Bullish / Bearish buttons broke over two lines); an empty box (a failed read) is not drawn */
.ge-social{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px;margin:10px 0}.gs-col{display:flex;flex-direction:column;gap:10px;min-width:0}.gs-col>#gsOg{flex:1}.gs-box:empty{display:none}
@media(max-width:820px){.ge-social{grid-template-columns:1fr}}
.gs-box{padding:10px 12px;border:1px solid var(--edge);border-radius:10px;background:rgba(0,0,0,.25);min-width:0}
.gs-h{color:var(--dim);font-size:13px;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.gs-meter{height:10px;border-radius:999px;background:linear-gradient(90deg,#3a1414,#5a1a1a);overflow:hidden;border:1px solid var(--edge)}
.gs-meter i{display:block;height:100%;background:linear-gradient(90deg,#2fbf62,#6dff9b);transition:width .5s cubic-bezier(.2,1,.4,1);box-shadow:0 0 10px rgba(109,255,155,.5)}
.gs-vrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:14px;color:var(--dim)}.gs-vrow>span{flex:1;min-width:0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-btn{flex:none;white-space:nowrap;font:inherit;font-size:15px;padding:5px 10px;border-radius:8px;border:1px solid var(--edge);background:rgba(0,0,0,.3);color:var(--txt);cursor:pointer}
.gs-btn b{font-weight:normal;margin-left:4px}.gs-bull.on,.gs-bull:hover{border-color:#2fbf62;color:#6dff9b}.gs-bear.on,.gs-bear:hover{border-color:#d9483b;color:#ff8a80}
.gs-pop{animation:gsPop .45s cubic-bezier(.2,1.6,.4,1)}@keyframes gsPop{40%{transform:scale(1.18)}}
.gs-ogs{display:flex;flex-wrap:wrap;gap:5px}.og{display:inline-flex;gap:4px;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid var(--edge);font-size:13px;color:var(--txt);background:rgba(0,0,0,.3)}
.og b{font-weight:normal;color:var(--dim)}.og-top{border-color:#ffd76a}.og-top b{color:#ffd76a}.og-dev{border-style:dashed}
.gs-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.gs-l li{display:flex;gap:7px;align-items:flex-start;font-size:15px;color:var(--txt)}
.gs-l li small{display:block;color:var(--dim);font-size:12px}.gs-l li.no{color:var(--dim)}.gs-l li .ic{width:16px;height:16px;flex:none;margin-top:2px}.gs-l li.no .ic,.gs-l li.na .ic{opacity:.55}
.gs-fix{margin-top:8px}
@media(prefers-reduced-motion:reduce){.act-new,.gs-pop,.tt-flash{animation:none}}
/* faces, share cards, alerts (10-05) */
.av{display:inline-block;flex:none;width:28px;height:28px;border-radius:50%;object-fit:cover;vertical-align:middle;border:1px solid rgba(255,215,106,.55);background:#1a120a}
.av-gen{display:inline-grid;place-items:center;background:radial-gradient(circle at 35% 30%,hsl(var(--h) 60% 55%),hsl(var(--h) 55% 30%));color:#fff;font-weight:bold;font-size:14px;line-height:1;text-shadow:0 1px 0 rgba(0,0,0,.6)}
.av-xs{width:18px;height:18px;font-size:10px}.av-s{width:24px;height:24px;font-size:12px}.av-m{width:28px;height:28px;font-size:14px}
.ic.xv{width:14px;height:14px;margin-left:4px;vertical-align:-2px}
.act-post{border-color:rgba(160,200,255,.4)}.act .act-q{font-style:normal;color:var(--txt);max-width:260px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:bottom}
.tt-tabs{margin:-2px 0 6px}
.tt-row{grid-template-columns:26px 28px 1fr auto}.tt-usd em{font-style:normal}.tt-usd em.up{color:#6dff9b}.tt-usd em.dn{color:#ff8a80}
.tt-foot{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(255,255,255,.08);color:var(--dim);font-size:12px;line-height:1.35}
.tt-claim{display:block;width:100%;margin-top:8px;font:inherit;font-size:14px;padding:6px;border-radius:8px;border:1px dashed #ffd76a;background:rgba(255,215,106,.07);color:#ffd76a;cursor:pointer}.tt-claim:hover{background:rgba(255,215,106,.15)}
.og .av{margin-right:2px}
.gp-m{grid-template-columns:24px 1fr;align-items:start;padding:5px 6px}.gp-body{min-width:0}.gp-top{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:1px}.gp-top small{margin-left:auto}
.gp-m .gp-dev{font-style:normal;font-size:12px;padding:0 6px;border-radius:999px;border:1px solid #9fe3ff;color:#9fe3ff}
.gp-hold{font-style:normal;font-size:12px;padding:0 6px;border-radius:999px;background:rgba(109,255,155,.1);border:1px solid rgba(109,255,155,.35);color:#9dffbd}.gp-hold.gp-out{background:rgba(255,255,255,.04);border-color:var(--edge);color:var(--dim)}
.gs-pos{grid-column:1/-1;display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:linear-gradient(90deg,rgba(255,215,106,.12),rgba(0,0,0,.25) 60%);border-color:#c9a24a}
.gs-pos[hidden]{display:none}.gs-pos-l{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.gs-pos-l .gs-h{margin:0}
.gs-pos-big{font-size:34px;line-height:1;font-weight:normal;text-shadow:2px 2px 0 #000}.gs-pos-big.up{color:#6dff9b}.gs-pos-big.dn{color:#ff8a80}.gs-pos-m{color:var(--txt);font-size:14px}
.gs-pos-f{display:flex;gap:14px;flex-wrap:wrap;color:var(--dim);font-size:14px}.gs-pos-f b{font-weight:normal;color:var(--txt)}
.gs-share{margin-left:auto;display:inline-flex;align-items:center;gap:6px}
@media(max-width:820px){.gs-pos{gap:10px}.gs-share{margin-left:0;width:100%;justify-content:center}}
.id-box{width:min(600px,100%)}.id-step{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:10px 0;border-top:1px solid rgba(255,255,255,.07)}
.id-n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid #ffd76a;color:#ffd76a;font-weight:normal}.id-step.done .id-n{background:rgba(109,255,155,.12);border-color:#6dff9b}.id-n .ic{width:16px;height:16px}
.id-t{color:var(--txt);font-size:15px;margin-bottom:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.id-ok{display:inline-flex;align-items:center;gap:6px;color:#6dff9b;font-size:15px}
.id-step .note{font-size:15px!important;margin:0 0 6px!important}.id-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.id-row input{flex:1;min-width:150px}.id-row .btn{display:inline-flex;align-items:center;gap:6px}
.sc-ov{background:radial-gradient(70% 60% at 50% 40%,rgba(60,40,10,.7),rgba(0,0,0,.9))}
.sc-box{position:relative;width:min(760px,96vw);padding:18px;border:1px solid #ffd76a;border-radius:16px;background:linear-gradient(180deg,#22180a,#110b04);box-shadow:0 0 60px rgba(255,190,60,.25),0 20px 60px rgba(0,0,0,.6)}
.sc-x{position:absolute;top:6px;right:10px;font-size:20px;line-height:1;background:none;border:0;color:var(--dim);cursor:pointer}.sc-x:hover{color:#ffd76a}
.sc-img{aspect-ratio:1200/630;border-radius:10px;overflow:hidden;background:#1a1008;display:grid;place-items:center;border:1px solid var(--edge)}.sc-img img{width:100%;height:100%;object-fit:cover;display:block;animation:scIn .5s cubic-bezier(.2,1.2,.4,1)}
@keyframes scIn{from{opacity:0;transform:scale(.96)}}
.sc-load{color:var(--dim);display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px;text-align:center}.sc-load i{width:28px;height:28px;border-radius:50%;border:3px solid rgba(255,215,106,.25);border-top-color:#ffd76a;animation:lcSpin 1s linear infinite}
.sc-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:14px 0 8px}.sc-acts .btn{display:inline-flex;align-items:center;gap:6px}.sc-note{text-align:center;font-size:14px}
.sc-id{display:block;margin:8px auto 0;font:inherit;font-size:14px;background:none;border:0;color:#ffd76a;text-decoration:underline;cursor:pointer}

.me-id{display:flex;align-items:center;gap:10px;margin:8px 0;padding:8px 10px;border:1px solid var(--edge);border-radius:8px;background:rgba(0,0,0,.25)}.me-id>div{flex:1;min-width:0;display:flex;flex-direction:column}.me-id b{font-weight:normal;color:var(--txt)}.me-id span{font-size:13px}
.me-al{margin:8px 0}.al-h{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--edge);border-radius:8px;background:rgba(0,0,0,.25)}.al-h b{font-weight:normal;color:var(--txt)}.al-h span{flex:1;font-size:14px}
.al-kinds{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;padding:8px 10px;font-size:14px;color:var(--txt)}.al-kinds label{display:flex;gap:6px;align-items:center}
@media(max-width:520px){.al-kinds{grid-template-columns:1fr}}
.al-opts{margin:2px 10px 8px;font-size:14px}.al-opts>summary{cursor:pointer;font-weight:700;padding:4px 0}.al-sec{padding:6px 0;border-top:1px dotted #fff2}.al-sec>b{display:inline-block;margin-bottom:4px}
.al-row{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:4px 0}.al-row label{display:inline-flex;gap:5px;align-items:center}.al-row select{min-height:32px}.al-pairs small{opacity:.6}
@media(prefers-reduced-motion:reduce){.sc-img img{animation:none}}
.tt-flash{animation:ttFlash 1.6s ease-out}.tt-flash.tt-up .tt-rk{animation:ttUp 1.2s ease-out}@keyframes ttFlash{0%{background:rgba(255,215,106,.22)}100%{background:transparent}}@keyframes ttUp{0%{transform:translateY(6px) scale(1.25);box-shadow:0 0 12px rgba(109,255,155,.8)}100%{transform:none}}
.src-tag{display:inline-block;margin-left:5px;padding:0 5px;border-radius:4px;font:700 9.5px/15px var(--sans,system-ui);letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;font-style:normal;color:#8fe3b0;background:rgba(84,214,140,.12);border:1px solid rgba(84,214,140,.28)}.src-tag.src-fomo{color:#ffb88a;background:rgba(255,140,70,.12);border-color:rgba(255,140,70,.3)}
.ge-tok-id b > .av{vertical-align:-6px;margin-right:8px}
/* ---- Liquidity on any coin (lib/anylp.mjs) */
.lq-tile.any b{font-size:15px;line-height:1.2}
.any-lead{margin:0 0 var(--sp-3);max-width:72ch}.any-search{display:flex;gap:8px;margin:0 0 10px}.any-search input{flex:1;min-width:0;font:400 var(--fs-input)/1.3 var(--font-ui)} /* a search box in the UI face at 16px (it was 13px mono: iOS zoomed in, and it read like code) */
.any-mine{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;min-height:0}.any-mine .note{width:100%}.any-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border-radius:999px;border:1px solid var(--frame2,rgba(200,168,96,.35));background:rgba(0,0,0,.25);font:600 13px/1.3 var(--sans,system-ui);color:var(--txt);cursor:pointer}.any-chip:hover{border-color:var(--yel,#ffd76a)}.any-chip small{font-weight:400;color:var(--dim)}.any-chip .av-gen{width:18px;height:18px;font-size:10px}.any-chip i.src-tag{margin-left:0}
.any-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 10px}.any-head .any-ic{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#0a0805;flex:none}.any-head .av-gen{width:44px;height:44px;font-size:15px}.any-head b{font-size:16px}.any-head .any-name{color:var(--dim);font-size:13px}.any-head code{font-size:11px;color:var(--mute);word-break:break-all}
.any-venue{display:inline-block;padding:2px 8px;border-radius:4px;font:700 11px/1.6 var(--sans,system-ui);letter-spacing:.04em;text-transform:uppercase;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--txt)}.any-venue.v-pumpfun{color:#7ee787;border-color:rgba(126,231,135,.4)}.any-venue.v-stonkfun{color:#ffb86c;border-color:rgba(255,184,108,.4)}.any-venue.v-hooked{color:#8fb8ff;border-color:rgba(143,184,255,.4)}.any-venue.v-site{color:var(--yel,#ffd76a);border-color:rgba(255,215,106,.4)}
.any-head .any-venue a{color:inherit;text-decoration:none}
.any-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;margin:0 0 10px}.any-stats div{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.07);border-radius:6px;padding:7px 10px}.any-stats span{display:block;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.04em}.any-stats b{font-size:14px}
.any-liq{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;margin:0 0 12px;border-radius:8px;border:1px solid rgba(255,92,92,.35);background:linear-gradient(90deg,rgba(255,92,92,.10),rgba(0,0,0,.2))}.any-liq .any-liq-t b{display:block;font-size:14px}.any-liq .any-liq-t small{color:var(--dim)}.any-liq .btn.danger{background:linear-gradient(#ff6a6a,#c62828);border-color:#ff8a80;color:#fff}.any-liq .btn.danger:hover{filter:brightness(1.08)}
.any-plan{margin:8px 0 0;padding:10px 12px;border-radius:6px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08)}.any-plan ol{margin:6px 0 8px 18px;padding:0}.any-plan li{margin:3px 0}.any-plan .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.any-pools{display:grid;gap:10px}.any-pool{border:1px solid rgba(200,168,96,.22);border-radius:8px;padding:10px 12px;background:rgba(0,0,0,.18)}.any-pool.ro{opacity:.85}.any-pool-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.any-pool-h b{font-size:15px}.any-pool-h .lq-tag{margin:0}.any-pool-h a.ext{margin-left:auto;font-size:12px;color:var(--dim)}
.any-pos{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:8px 10px;margin:6px 0;border-radius:6px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07)}.any-pos .amt b{display:block}.any-pos .amt small{color:var(--dim)}.any-pos .acts{display:flex;gap:6px;flex-wrap:wrap}.any-pos.locked{border-style:dashed}
.any-add{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:8px}.any-add label{display:block}.any-add .lp-amt-row{display:flex;gap:6px}.any-add .lp-amt-row input{flex:1;min-width:0}.any-add .q{grid-column:1/-1}.any-add select{min-width:80px}
.any-empty{padding:14px;text-align:center;color:var(--dim)}.any-status{min-height:18px}
.any-skel{height:14px;border-radius:4px;background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.12),rgba(255,255,255,.05));background-size:200% 100%;animation:anySk 1.2s linear infinite;margin:6px 0}@keyframes anySk{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(max-width:900px){.any-add{grid-template-columns:1fr}.any-pos{grid-template-columns:1fr}}
.lq-any.any-pop{animation:anyPop .7s cubic-bezier(.2,.8,.2,1)}@keyframes anyPop{0%{box-shadow:0 0 0 0 rgba(255,215,106,.0)}25%{box-shadow:0 0 0 4px rgba(255,215,106,.55),0 0 40px rgba(255,215,106,.35)}100%{box-shadow:0 0 0 0 rgba(255,215,106,0)}}
.any-stats small.note{display:block;font-size:11px;margin-top:2px}
@media(max-width:700px){.any-liq .btn.danger{width:100%}.any-head .any-ic,.any-head .av-gen{width:36px;height:36px}.any-head b{font-size:15px}.any-head code{display:none}}

/* the Terminal section: jungleterminal.com framed inside the page */
#s-term{--term-off:200px}#s-term .term-wrap{position:relative;height:calc(100vh - var(--term-off));min-height:520px;border-radius:var(--r-ctl);overflow:hidden;background:#0a0a0a}#s-term iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#0a0a0a;z-index:1}#s-term .term-loading{position:absolute;inset:0;display:grid;place-items:center;z-index:0}#s-term .term-h{align-items:center;flex-wrap:wrap;gap:var(--sp-2)}#s-term .term-open{margin-left:auto;font-size:var(--fs-sm);color:var(--dim)}#s-term .term-note{margin:8px 0 0;font-size:var(--fs-sm)}
/* design v2 (owner 10-24): the terminal fills the first screen under the header, the strip and its title row (the dvh twin is in the @supports block);
   phones lose the two description chips so the title row is one line, and the frame stops above the tab bar */
@media(max-width:760px){#s-term{--term-off:calc(196px + var(--tabbar-h))}#s-term .term-wrap{min-height:420px}#s-term .term-h .lq-tag{display:none}#s-term .term-panel{padding:var(--sp-2)}}
/* ---- the Yields page (lib/yields.mjs) — Design v2 (owner 10-24: "optimize real estate… AAA+"): the lookup and the numbers first, one stat strip,
   streams as hairline rows with right-aligned tabular numbers (no card in a card), the projection's tiles as one strip */
.yl-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-2) var(--sp-5);align-items:start;margin:0 0 var(--sp-3)}
.yl-hero-l{min-width:0}.yl-search{max-width:560px;margin:var(--sp-3) 0 0}
.yl-hero-r{min-width:0}.yl-hero-r:empty{display:none}
.yl-who{display:flex;align-items:center;gap:8px;margin:0 0 var(--sp-2);font-weight:600;color:var(--txt);min-width:0}.yl-who .av{width:28px;height:28px}.yl-who>span:not(.lq-tag){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.yl-ov{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel);overflow:hidden}
.yl-ov>div{min-width:0;padding:12px 14px;border-top:1px solid var(--line)}.yl-ov>div:nth-child(-n+2){border-top:0}.yl-ov>div:nth-child(even){border-left:1px solid var(--line)}
.yl-ov span,.yl-proj span{display:block;font-size:var(--fs-cap);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
.yl-ov b{display:block;margin-top:2px;font:700 20px/1.15 var(--font-display);color:var(--num)}.yl-ov b.big{font-size:28px;color:var(--gold-txt)}.yl-ov .best b{color:var(--grn)}
.yl-ov small,.yl-proj small{display:block;margin-top:2px;font-size:var(--fs-cap);line-height:1.35;color:var(--dim)}
.yl-panel{margin-top:0}#ylChart{width:100%;height:220px;display:block}
.yl-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:var(--sp-2);font-size:var(--fs-cap);color:var(--dim)}.yl-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.yl-chart-note{flex-basis:100%;margin:0;font-size:var(--fs-sm)}.yl-chart-note:empty{display:none}
/* streams: one grid for the header and the rows, so every number sits under its label */
.yl-th,.yl-row{display:grid;grid-template-columns:minmax(0,1fr) 130px 150px 130px 100px minmax(150px,auto);gap:12px;align-items:center}
.yl-th{padding:0 12px 6px;font-size:var(--fs-cap);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--border)}.yl-th span:nth-child(n+2):nth-child(-n+5){text-align:right}
.yl-table{display:flex;flex-direction:column}
.yl-row{position:relative;padding:10px 12px;border-bottom:1px solid var(--line);transition:background-color var(--dur)}.yl-row:last-child{border-bottom:0}.yl-row:hover{background:var(--hover)}
.yl-row.best{background:rgba(61,220,132,.05)}.yl-row.best::before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--grn)}
.yl-row .nm{min-width:0}.yl-row .nm b{display:block;font-weight:600;color:var(--txt)}
.yl-row .nm small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px;font-size:var(--fs-cap);line-height:1.4;color:var(--dim)}
.yl-row .v{min-width:0;text-align:right}.yl-row .v b{display:block;font-weight:600;color:var(--num);font-variant-numeric:tabular-nums}.yl-row .v.up b{color:var(--grn)}
.yl-row .v small{display:block;font-size:var(--fs-cap);line-height:1.35;color:var(--dim)}
.yl-row .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.yl-row .acts .btn{min-height:var(--ctl-h-sm);padding:0 12px;font-size:var(--fs-sm)}
.yl-row .rank{display:inline-flex;align-items:center;min-height:20px;margin-left:6px;padding:0 7px;border-radius:var(--r-pill);font-size:var(--fs-cap);font-weight:600;vertical-align:1px;background:rgba(61,220,132,.12);color:var(--grn)}
.yl-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-3);align-items:start}.yl-cols>.panel{margin-bottom:var(--sp-3)}
.yl-cols:has(>#ylCalcPanel[hidden]){grid-template-columns:minmax(0,1fr)} /* signed out: the buy panel takes the row instead of half of it */
.yl-calc{display:grid;gap:var(--sp-3)}.yl-calc label{display:block}.yl-calc select,.yl-calc input{width:100%}.yl-check{display:flex;align-items:center;gap:8px}.yl-check input{width:auto}
.yl-proj{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.yl-proj>div{min-width:0;padding:10px 12px;border-left:1px solid var(--line)}.yl-proj>div:first-child{border-left:0;padding-left:0}
.yl-proj b{display:block;margin-top:2px;font-size:17px;font-weight:700;color:var(--num)}
.yl-buy{display:grid;gap:0}
.yl-bk{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.yl-bk .av-gen,.yl-bk img{width:28px;height:28px;border-radius:50%}
.yl-bk .stepper b{font:600 var(--fs-sm)/1 var(--font-ui);font-variant-numeric:tabular-nums}.yl-bk b{display:block;font-weight:600}.yl-bk small{display:block;font-size:var(--fs-sm);color:var(--dim)}.yl-bk input{width:100%;text-align:right}
.yl-bk-total{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding-top:var(--sp-3)}.yl-bk-total b{color:var(--gold-txt)}
.yl-share-row{display:grid;grid-template-columns:minmax(0,640px) minmax(260px,1fr);gap:var(--sp-4);align-items:start}
.yl-card-wrap{aspect-ratio:1200/630;border-radius:var(--r-ctl);overflow:hidden;background:rgba(0,0,0,.35);border:1px solid var(--border);display:grid;place-items:center}.yl-card-wrap img{width:100%;height:100%;object-fit:cover;display:block}.yl-share-acts{display:grid;gap:8px;align-content:start}
.yl-empty{padding:16px;text-align:center;color:var(--dim)}
@media(max-width:1200px){.yl-th,.yl-row{grid-template-columns:minmax(0,1fr) 116px 130px 116px 86px minmax(130px,auto)}}
@media(max-width:900px){.yl-hero,.yl-cols,.yl-share-row{grid-template-columns:minmax(0,1fr)}.yl-proj{grid-template-columns:repeat(2,minmax(0,1fr))}.yl-proj>div:nth-child(3){border-left:0;padding-left:0}.yl-proj>div:nth-child(n+3){border-top:1px solid var(--line)}
  /* a stream on a phone: name and today's yield on top, position · earned · APR under it, the actions last */
  .yl-th{display:none}.yl-row{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"nm nm d" "p e a" "x x x";gap:6px 10px;padding:12px 2px}
  .yl-row .nm{grid-area:nm}.yl-row .v[data-l="Position"]{grid-area:p}.yl-row .v[data-l="Earned"]{grid-area:e}.yl-row .v[data-l="Last 24 h"]{grid-area:d;align-self:start}.yl-row .v[data-l="APR"]{grid-area:a}.yl-row .acts{grid-area:x;justify-content:flex-start}.yl-row .acts:empty{display:none}
  .yl-row .v{text-align:left}.yl-row .v[data-l="Last 24 h"]{text-align:right}.yl-row .v::before{content:attr(data-l);display:block;font-size:var(--fs-cap);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim)}
  .yl-row .v small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yl-row .acts .btn{min-height:var(--ctl-h)}.yl-row .v[data-l="Last 24 h"] small{display:none}.yl-row.best::before{left:-8px}}
@media(max-width:560px){.yl-ov b.big{font-size:24px}.yl-ov b{font-size:18px}.yl-ov>div{padding:10px 12px}}
.hdr-bal{display:inline-flex;align-items:baseline;gap:4px;padding:5px 10px;border-radius:999px;border:1px solid rgba(200,168,96,.3);background:rgba(0,0,0,.3);font:600 13px/1.2 var(--mono,ui-monospace,monospace);color:var(--txt);white-space:nowrap}.hdr-bal b{font-weight:700}.hdr-bal i{font-style:normal;font-size:10px;letter-spacing:.06em;color:var(--dim);margin-right:6px}.hdr-bal i:last-child{margin-right:0}@media(max-width:700px){.hdr-bal{font-size:12px;padding:4px 8px}}

/* design inputs: chips, steppers, a slider, a switch (owner 10-06: no typed fields) */
.pick-row{display:flex;flex-wrap:wrap;gap:6px}.pick{padding:5px 11px;border-radius:999px;border:1px solid rgba(200,168,96,.3);background:rgba(0,0,0,.3);color:var(--txt);font:600 12px/1.2 var(--sans,system-ui);cursor:pointer;transition:border-color .15s,background .15s,transform .1s}.pick:hover{border-color:var(--yel,#ffd76a)}.pick.on{background:var(--yel,#ffd76a);color:#1a1008;border-color:var(--yel,#ffd76a)}.pick:active{transform:scale(.96)}.pick:disabled{opacity:.45;cursor:default}
.stepper{display:inline-flex;align-items:center;border:1px solid rgba(200,168,96,.3);border-radius:999px;background:rgba(0,0,0,.3);overflow:hidden}.stepper button{width:32px;height:30px;border:0;background:transparent;color:var(--txt);font-size:15px;line-height:1;cursor:pointer}.stepper button:hover{background:rgba(255,255,255,.08)}.stepper b{min-width:86px;text-align:center;font:700 13px/1 var(--mono,ui-monospace,monospace);color:var(--yel,#ffd76a)}
.bk-pick{display:grid;gap:6px;justify-items:end}
.yl-field{display:grid;gap:8px}.slide-row{display:flex;align-items:center;gap:12px}.slide-row b{min-width:64px;text-align:right;font:700 15px/1 var(--mono,ui-monospace,monospace);color:var(--yel,#ffd76a)}
input[type=range]#ylAddSlide{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--yel,#ffd76a) 0,var(--yel,#ffd76a) var(--p,0%),rgba(255,255,255,.12) var(--p,0%));outline:none}input[type=range]#ylAddSlide::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--yel,#ffd76a);box-shadow:0 2px 8px rgba(0,0,0,.5);cursor:pointer}input[type=range]#ylAddSlide::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--yel,#ffd76a);cursor:pointer}
.yl-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}.yl-switch input{position:absolute;opacity:0;width:0;height:0}.yl-switch i{width:42px;height:24px;border-radius:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.12);position:relative;transition:background .2s}.yl-switch i::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}.yl-switch input:checked+i{background:var(--yel,#ffd76a)}.yl-switch input:checked+i::after{transform:translateX(18px)}
@media(max-width:700px){.yl-bk{grid-template-columns:auto minmax(0,1fr)}.bk-pick{grid-column:1/-1;justify-items:start}}

/* ================= DESIGN PASS 10-06 (Santa): one scale, one rhythm. Appended last so it wins by order, never by !important. ================= */
/* nav: the Activities group */

/* type: body copy sits at 18/1.4 (VT323 wants air), notes a step down, captions two; numbers always tabular */
small,.stat span,.ge-th,.lsum span,.yl-th,.any-stats span,.lp-risk-g small{letter-spacing:.02em}

/* rhythm: panels breathe the same everywhere */
.lq-pool{margin-bottom:12px}
/* buttons: one height, three weights. 38px tall, text centred, the gold one is the single primary in a group */

/* inputs: the same 38px line as the buttons, a soft inner shadow, a gold ring when focused */

/* tables and rows: a hover you can feel, dividers that recede */
.ge-row{border-bottom:1px solid rgba(255,255,255,.05)}.ge-row:hover{background:rgba(255,220,150,.06)}.ge-th{border-bottom:1px solid rgba(200,168,96,.35);background:transparent;font-size:13px;letter-spacing:.08em;padding:6px 0}
.tt-row:hover,.claim:hover,.row:hover{background:rgba(255,220,150,.05)}
/* stat tiles: hero numbers lead, panel numbers follow, labels are quiet caps */
.stat span,.any-stats span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
/* lists of tiles share one gap */
.ycard,.ge-stats,.any-stats{gap:8px}
/* toast: readable, not shouting */

/* footer */

/* ladder summary rows: the status column sizes to its text (it used to be a fixed 96px and spilled past the panel) */
.ldsum-row{grid-template-columns:22px minmax(72px,110px) minmax(0,1fr) auto minmax(0,max-content)}.ldsum-row small{font-size:15px;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;justify-self:end}.ldsum-row em{font-size:15px}
@media(max-width:760px){.ldsum-row{grid-template-columns:22px 72px minmax(0,1fr) auto}.ldsum-row small{display:none}}

/* phone nav: the Activities menu opens in flow, on its own row, without stretching the pills beside it */
/* phone nav is a one-row scroller: the Activities pill stays in the row and its menu drops over the page, anchored to the sticky header */

/* LAUNCH FORM READABILITY 10-06 (Santa): the Market step's helper text was dim grey mono at 13-15px */
.lf-mode{color:#e6d7b4}.lf-mode>span:first-child{color:var(--txt)}
.lf-mode .ge-tabs button:not(.on){color:#e6d7b4}
.lf-hint{color:#dccda9;font-size:14px;line-height:1.45}.lf-hint b{color:var(--txt)}
.lf-venues .ge-tabs button{color:var(--txt);gap:4px}
.lf-venues .ge-tabs button small{font-size:14px;line-height:1.4;opacity:1;color:#dccda9}
.lf-venues .ge-tabs button.on small{color:#2a1a04}
.lf-card-where{font-size:14px;color:#dccda9;line-height:1.4}
.lf-card-tags i{font-size:15px}

/* the compound switch: `.yl-calc label{display:block}` outranked `.yl-switch` and turned the track inline, leaving the knob floating over the text */
.yl-calc label.yl-switch,.yl-switch{display:inline-flex}.yl-switch i{display:inline-block;flex:none;font-style:normal}

/* PROJECTION (Yields) 10-06: the whole portfolio forward, chart + tiles + what each stream adds */
.yl-hz{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
#ylProjChart{width:100%;height:200px;display:block;background:var(--fill);border-radius:var(--r-ctl)}
.yl-proj b.up{color:var(--grn)}
.yl-contrib{display:grid;gap:5px;margin-top:2px}
.yl-ct{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) auto;gap:10px;align-items:center;font-size:14px}
.yl-ct span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yl-ct span small{color:var(--dim);font-size:11px;margin-left:4px}
.yl-ct i{display:block;height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}.yl-ct i b{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--yel,#ffd76a));border-radius:3px}
.yl-ct em{font-style:normal;color:var(--grn);font-variant-numeric:tabular-nums;font-size:14px}

/* BUNDLE BUY 10-06: a + in each board row's chevron cell, a floating pill that opens into a compact sheet */
.ge-row .go{position:relative;display:flex;align-items:center;justify-content:flex-end}
.ge-row .go em{font-style:normal;transition:opacity .15s}
.bb-add{position:absolute;right:-2px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;border:1px solid var(--gold);background:rgba(20,14,6,.92);color:var(--gold);display:grid;place-items:center;font-style:normal;font-size:14px;line-height:1;opacity:0;transform:scale(.8);transition:opacity .15s,transform .15s,background .15s;cursor:pointer;z-index:2}
.bb-add::before{content:'+'}.bb-add.in::before{content:'✓';font-size:13px}
.bb-add.in{opacity:1;transform:scale(1);background:var(--gold);color:#1b1206}
.ge-row:hover .bb-add,body.bb-pick .bb-add{opacity:1;transform:scale(1)}.ge-row:hover .go em,body.bb-pick .go em,.ge-row .bb-add.in~em{opacity:0}
@media(hover:none){.bb-add{opacity:.75;transform:scale(1)}.ge-row .go em{opacity:0}}
.bb-toggle .bb-ico{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-radius:3px;margin-right:6px;vertical-align:-1px;position:relative}.bb-toggle .bb-ico::after{content:'';position:absolute;inset:2px;background:currentColor;border-radius:1px;opacity:.5}
.bb-toggle.on{border-color:var(--gold);color:var(--gold)}
.bb-tray{position:fixed;right:16px;bottom:calc(16px + max(var(--tabbar-h),var(--safe-b)));z-index:60;max-width:min(360px,calc(100vw - 32px))}
.bb-pill{background:linear-gradient(180deg,#3b2f21,#2a2119);border:1px solid var(--gold);border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.6),0 0 0 1px rgba(0,0,0,.4);display:flex;align-items:center;gap:8px;padding:6px 6px 6px 10px;flex-wrap:wrap}
.bb-pill.open{display:block;padding:10px;width:min(360px,calc(100vw - 32px))}
.bb-head{display:flex;align-items:center;gap:8px;background:none;border:0;color:var(--txt);font:inherit;cursor:pointer;padding:4px 2px;flex:1;min-width:0}
.bb-pill.open .bb-head{width:100%;padding:0 0 8px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px}
.bb-avs{display:flex;align-items:center}.bb-avs .ge-ic,.bb-avs img,.bb-avs .av,.bb-avs .av-s{width:22px;height:22px;border-radius:50%;margin-right:-6px;border:1px solid #1b1206;flex:none}.bb-avs i{font-style:normal;font-size:11px;color:var(--dim);margin-left:10px}
.bb-head b{font-size:15px;white-space:nowrap}.bb-head small{color:var(--dim);font-size:13px;white-space:nowrap}
.bb-caret{width:8px;height:8px;border-right:2px solid var(--dim);border-bottom:2px solid var(--dim);transform:rotate(-135deg);margin:4px 6px 0 auto;transition:transform .2s}.bb-pill.open .bb-caret{transform:rotate(45deg);margin-top:-2px}
.bb-go{height:32px;font-size:15px;padding:0 14px;white-space:nowrap}
.bb-sheet{display:grid;gap:8px}
.bb-total{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center}.bb-total .pick-row{grid-column:1/-1}.bb-total .stepper{grid-column:1/-1;justify-self:start}
.bb-list{display:grid;gap:4px;max-height:40vh;overflow:auto}
.bb-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto 22px;gap:8px;align-items:center;padding:4px 6px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);border-radius:8px}
.bb-row .ge-ic,.bb-row img,.bb-row .av,.bb-row .av-s{width:28px;height:28px;border-radius:50%;flex:none}
.bb-nm{min-width:0}.bb-nm b{display:block;font-size:14px;line-height:1.2}.bb-nm small{display:block;color:var(--dim);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stepper.sm button{width:24px;height:24px;font-size:15px}.stepper.sm b{min-width:70px;font-size:13px}
.bb-x{background:none;border:0;color:var(--dim);font-size:15px;cursor:pointer;line-height:1;padding:0}.bb-x:hover{color:var(--red)}
.bb-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:2px}.bb-foot .note{font-size:12px;margin:0}
.bb-clear{background:none;border:0;color:var(--dim);font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;justify-self:end;padding:0}
@media(max-width:700px){.bb-tray{right:10px;bottom:calc(10px + max(var(--tabbar-h),var(--safe-b)));left:10px;max-width:none}.bb-pill.open{width:auto}.ge-row .go{justify-content:center}.bb-add{right:-4px;width:20px;height:20px;margin-top:-10px}}

/* HOOKED RULES 10-06: a rule on a Meteora launch — the picker, the parameter form, the sentence, and the coin page line */
.lf-rules{display:grid;gap:8px;padding:10px 12px;border:1px solid rgba(255,215,106,.25);border-radius:10px;background:rgba(0,0,0,.2);margin:2px 0 6px}
.lf-rules .lf-mode{margin:0}.lf-rules .lf-mode .lf-hint{margin:0;flex:1 1 100%}
.lf-rulehead .lf-rulesel{flex:1;color:var(--txt);font-size:15px}
.rule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;max-height:min(46vh,420px);overflow:auto;padding:2px}
.rule-fam{grid-column:1/-1;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:6px 0 0}
.rule-tile{text-align:left;background:var(--ink);border:1px solid var(--edge);border-radius:8px;padding:8px 10px;color:var(--txt);font:inherit;cursor:pointer;display:grid;gap:2px;position:relative;transition:border-color .15s,background .15s}
.rule-tile b{font-size:15px}.rule-tile small{color:#dccda9;font-size:12px;line-height:1.35}.rule-tile em{position:absolute;right:8px;top:6px;font-style:normal;font-size:10px;color:var(--gold);letter-spacing:.06em;text-transform:uppercase}
.rule-tile:hover{border-color:var(--gold)}.rule-tile.on{border-color:var(--gold);background:rgba(255,152,31,.12);box-shadow:0 0 0 1px var(--gold)}.rule-tile:disabled{opacity:.4;cursor:not-allowed}.rule-tile.none{grid-column:1/-1}
.rule-form{display:grid;gap:10px;padding:10px;border:1px solid var(--edge);border-radius:8px;background:var(--ink)}
.rule-form-h b{display:block;font-size:15px}.rule-form-h small{display:block;color:#dccda9;font-size:13px;line-height:1.4}
.rule-p{display:grid;gap:5px}.rule-p-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}.rule-p-h b{color:var(--yel,#ffd76a);font-variant-numeric:tabular-nums;white-space:nowrap}.rule-p>small{color:var(--dim);font-size:12px;line-height:1.35}
.rule-slide{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.rule-slide input[type=range]{width:100%;height:22px;-webkit-appearance:none;appearance:none;background:transparent;margin:0}
.rule-slide input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--gold) var(--p,0%),rgba(255,255,255,.12) var(--p,0%))}
.rule-slide input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--gold);margin-top:-6px;cursor:pointer}
.rule-slide input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:rgba(255,255,255,.12)}.rule-slide input[type=range]::-moz-range-progress{height:6px;border-radius:3px;background:var(--gold)}.rule-slide input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--gold)}
.rule-slide .stepper input{width:84px;background:var(--ink);color:var(--txt);border:1px solid var(--edge);border-radius:4px;text-align:center;font:inherit;font-size:14px;height:28px;padding:0 4px}
.rule-p input[type=text],.rule-p textarea,.rule-p select{width:100%;background:var(--ink);color:var(--txt);border:1px solid var(--edge);border-radius:6px;padding:7px 9px;font:inherit;font-size:14px}
.rule-days{display:flex;gap:4px;flex-wrap:wrap}.rule-days .pick{padding:4px 9px;font-size:13px}
.rule-times{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--dim)}.rule-times input{margin-left:6px;background:var(--ink);color:var(--txt);border:1px solid var(--edge);border-radius:4px;padding:3px 6px;font:inherit}
.rule-sum{display:grid;gap:3px;padding:8px 10px;border-left:3px solid var(--gold);background:rgba(255,215,106,.06);border-radius:0 6px 6px 0}.rule-sum b{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.rule-sum span{font-size:14px;line-height:1.45}.rule-sum small{color:var(--dim);font-size:12px}.rule-sum .bad{color:var(--red)}
.rule-warn{font-size:13px;color:#ffb366;display:flex;gap:6px;align-items:flex-start}
.lf-card-tags i.rule{border-color:var(--gold);color:var(--yel,#ffd76a)}
.ge-rule{display:grid;gap:4px;padding:10px 12px;margin:6px 0;border:1px solid rgba(255,215,106,.3);border-radius:8px;background:rgba(255,215,106,.05)}.ge-rule b{font-size:15px;display:flex;gap:6px;align-items:center}.ge-rule span{font-size:14px;line-height:1.45}.ge-rule small{color:var(--dim);font-size:12px}.ge-rule small a{color:var(--gold)}
.ge-rule.off{border-color:var(--red);background:rgba(255,77,77,.06)}.ge-rule.off b{color:#ff9a9a}.ge-rule .btn{justify-self:start;margin-top:4px}
.ge-rule-tag{font-style:normal;font-size:11px;padding:1px 6px;border:1px solid var(--gold);border-radius:999px;color:var(--yel,#ffd76a);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}.ge-rule-tag.off{border-color:var(--red);color:#ff9a9a}
@media(max-width:700px){.rule-grid{grid-template-columns:1fr 1fr}.rule-slide{grid-template-columns:1fr}}

/* 10-06 round two: bundle modes, limit orders, the RPC banner, a permanent-curve warning, mobile fit */
.bb-modes{display:flex;gap:4px;margin:0 0 6px}.bb-modes .pick{flex:1;text-align:center;padding:5px 8px;font-size:13px}
.bb-plan{display:grid;gap:4px;font-size:13px;color:var(--dim)}.bb-plan div{display:flex;justify-content:space-between;gap:8px}.bb-plan b{color:var(--txt)}.bb-plan .sell b{color:#ff9a9a}.bb-plan .buy b{color:var(--grn)}
.bb-row .pick-row.pct .pick{padding:3px 7px;font-size:12px}
.sw-mode{display:flex;gap:4px;margin:8px 0 0}.sw-mode .pick{flex:1;text-align:center;font-size:13px;padding:5px 8px}
.sw-limit{display:grid;gap:8px;margin-top:8px;padding:10px;border:1px solid var(--edge);border-radius:8px;background:rgba(0,0,0,.2)}
.sw-limit label{display:grid;gap:3px;font-size:13px;color:var(--dim)}.sw-limit input{background:var(--ink);color:var(--txt);border:1px solid var(--edge);border-radius:6px;padding:7px 9px;font:inherit;font-size:16px}
.sw-limit .sw-lhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;color:var(--dim)}.sw-limit .sw-lhead b{color:var(--yel,#ffd76a)}
.sw-orders{display:grid;gap:4px;margin-top:6px}.sw-orders div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:13px;padding:5px 8px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);border-radius:6px}.sw-orders small{color:var(--dim);display:block}.sw-orders button{background:none;border:0;color:var(--red);font:inherit;font-size:12px;cursor:pointer;text-decoration:underline}
.rpc-banner{display:none;background:#3a1f12;color:#ffd0a8;border-bottom:1px solid #7a3b1a;font-size:13px;padding:6px 14px;text-align:center}.rpc-banner.on{display:block}
.ge-venue.perm{color:#ffb366}
@media(max-width:700px){.sw-lines div{flex-wrap:wrap}.sw-orders div{grid-template-columns:minmax(0,1fr) auto}.lf-rules{padding:8px}.rule-tile b{font-size:14px}.rule-form{padding:8px}.bb-row{grid-template-columns:24px minmax(0,1fr) auto 20px;gap:6px}.stepper.sm b{min-width:58px;font-size:12px}.yl-th{display:none}}
.any-chip .av-img{width:18px;height:18px;border-radius:50%;object-fit:cover;flex:none;background:#000}

/* TRENCHER FEATURES 10-06: fair-launch queue strip, follow + copy, exits, the coin page panel, scoreboards, dev-lock badge, on-chain quests */
.q-up{display:grid;gap:6px;margin:0 0 10px;padding:10px;border:1px solid var(--gold);border-radius:10px;background:linear-gradient(180deg,rgba(255,152,31,.10),rgba(0,0,0,.2))}
.q-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.q-h b{font-size:14px;color:var(--yel,#ffd76a)}.q-h .note{flex:1;margin:0;font-size:13px}
.q-card{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:6px 8px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.07);border-radius:8px}
.q-card img{width:36px;height:36px;border-radius:50%;object-fit:cover}.q-n b{display:block}.q-n small,.q-s small{display:block;color:var(--dim);font-size:12px}.q-s{text-align:right}.q-s b{color:var(--yel,#ffd76a);font-variant-numeric:tabular-nums}.q-me{font-size:13px;color:var(--grn)}.q-card.q-done{opacity:.8}
.fl-btn{margin-left:6px;font:600 11px/1 var(--sans,system-ui);padding:3px 8px;border-radius:999px;border:1px solid var(--gold);background:transparent;color:var(--gold);cursor:pointer;vertical-align:middle;letter-spacing:.02em}.fl-btn.on{background:var(--gold);color:#1b1206}
.og[data-og-addr]{cursor:pointer}.og.og-fl{box-shadow:0 0 0 2px var(--gold)}
.ge-follow .fl-copy{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.ge-follow .fl-copy .note{margin:0}.ge-follow .pick{padding:3px 8px;font-size:12px}
.fl-w{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:8px}.fl-n b{display:block;font-size:14px}.fl-n small{color:var(--dim);font-size:12px}
.fl-t{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:2px 0 2px 36px;color:var(--dim)}.fl-t.buy span{color:var(--txt)}.fl-t a{color:var(--yel,#ffd76a)}
.fl-toast{position:fixed;left:50%;bottom:calc(80px + max(var(--tabbar-h),var(--safe-b)));transform:translateX(-50%);z-index:70;display:flex;align-items:center;gap:10px;padding:10px 12px;background:#2a2119;border:1px solid var(--gold);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.6);font-size:14px;max-width:calc(100vw - 24px)}.fl-toast .fl-x{background:none;border:0;color:var(--dim);font-size:15px;cursor:pointer}
.ex-sheet{display:grid;gap:6px;margin-top:8px;padding:10px;border:1px solid var(--edge);border-radius:8px;background:rgba(0,0,0,.25)}.ex-sheet .note{margin:0;font-size:12px}
.ex-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ex-row>span:first-child{min-width:78px;color:var(--dim);font-size:13px}.ex-row .pick{padding:4px 10px;font-size:13px}
.ge-trench{display:grid;gap:6px;margin:6px 0}.ge-trench:empty{display:none}
.tc-box{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(255,215,106,.25);border-radius:8px;background:rgba(0,0,0,.22);font-size:14px}.tc-box.tc-mini{font-size:13px;color:var(--dim)}.tc-box a{color:var(--yel,#ffd76a)}
.tc-h{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.tc-big{font-size:15px}.tc-big b{color:var(--yel,#ffd76a)}.tc-big .up,.tc-box .up{color:var(--grn)}.tc-big .dn,.tc-box .dn{color:var(--red)}
.tc-kings{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--dim)}.tc-wave{width:100%;height:32px}.tc-wave polyline{fill:none;stroke:var(--gold);stroke-width:2;vector-effect:non-scaling-stroke}
.tc-crew{display:grid;gap:3px;margin-top:4px}.tc-cr{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto auto;gap:8px;align-items:center;font-size:13px}.tc-ex{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.tc-links{display:flex;gap:14px;flex-wrap:wrap}.tc-box .btn{justify-self:start}
.ge-devlock{font-style:normal;font-size:11px;padding:1px 6px;border:1px solid #3e8e4b;border-radius:999px;color:#8fe39f;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.ge-devlock .ic{width:11px;height:11px;margin-right:3px}
.tt-win{margin-top:4px}
.cq .cq-lvl{display:grid;grid-template-columns:auto auto 1fr;gap:10px;align-items:center;margin-bottom:8px}.cq .cq-lvl i{height:8px;border-radius:4px;background:rgba(255,255,255,.1);overflow:hidden}.cq .cq-lvl i b{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--yel,#ffd76a))}
.cq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.cq-q{display:grid;gap:3px;padding:10px 12px;border-radius:var(--r-ctl);background:var(--fill);color:var(--dim)}.cq-q b{color:var(--txt);font-weight:600}.cq-q.done{background:var(--accent-soft)}.cq-q.done b{color:var(--gold-txt)}.cq-q small{color:var(--dim);font-size:var(--fs-cap)}.cq-q em{font-style:normal;color:var(--gold-txt);font-size:var(--fs-cap);font-weight:600}
.q-join .ex-row{margin:8px 0}
@media(max-width:700px){.q-card{grid-template-columns:30px minmax(0,1fr) auto;}.q-card>:last-child{grid-column:1/-1;justify-self:end}.tc-cr{grid-template-columns:22px minmax(0,1fr) auto}.tc-cr>span:nth-child(4),.tc-cr>span:nth-child(5){display:none}.fl-toast{bottom:90px}}
.lf-crew{display:grid;gap:5px}.lf-crew .note{margin:0;font-size:13px}.lf-crew textarea{width:100%;min-height:62px;background:var(--ink);color:var(--txt);border:1px solid var(--edge);border-radius:6px;padding:7px 9px;font:13px/1.4 var(--mono,ui-monospace,monospace);resize:vertical}
.lf-open .ge-tabs{flex-wrap:wrap}

/* yield card styles strip (10-07) */
.yl-card-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.yl-card-wrap{position:relative;transition:opacity .2s}.yl-card-wrap.busy{opacity:.55}
.yl-card-wrap.busy::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.12) 50%,transparent 70%);background-size:220% 100%;animation:ylSheen 1.1s linear infinite}
@keyframes ylSheen{from{background-position:120% 0}to{background-position:-120% 0}}
.yl-styles{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}
.yl-style{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:5px;min-width:0;border-radius:8px;padding:3px;border:1.5px solid rgba(200,168,96,.18);background:rgba(0,0,0,.25);transition:border-color .15s,transform .15s}
.yl-style img{display:block;width:100%;aspect-ratio:1200/630;object-fit:cover;border-radius:5px;filter:saturate(.85) brightness(.85);transition:filter .15s}
.yl-style span{font-size:11px;line-height:1.1;text-align:center;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px 2px}
.yl-style:hover{border-color:rgba(255,208,106,.55);transform:translateY(-1px)}.yl-style:hover img{filter:none}
.yl-style.on{border-color:#ffd06a;box-shadow:0 0 0 1px #ffd06a,0 4px 14px rgba(255,208,106,.18)}.yl-style.on img{filter:none}.yl-style.on span{color:#ffd06a}
.yl-style:focus-visible{outline:2px solid #ffd06a;outline-offset:2px}.yl-style[disabled]{cursor:progress}
@media(max-width:900px){.yl-styles{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:96px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.yl-styles::-webkit-scrollbar{display:none}}
/* Sweep (was Bundle, owner 10-07): the painted broom replaces the square glyph */
.ic-broom{background-image:url('assets/icons/broom.png')}
.bb-toggle .ic-broom.bb-ico{border:0;border-radius:0;width:1.45em;height:1.45em;margin:-.2em 6px -.2em -2px;vertical-align:-.36em;filter:drop-shadow(0 1px 1px rgba(0,0,0,.55));transition:transform .2s}
.bb-toggle .ic-broom.bb-ico::after{display:none}
.bb-toggle:hover .ic-broom{transform:rotate(-12deg)}.bb-toggle.on .ic-broom{transform:rotate(-18deg) translateX(-1px)}

/* ladders: a sold-out ladder (10-07) */
.ge-done{font-family:var(--font-ui);font-style:normal;font-size:11px;color:#8ff0a4;border:1px solid #2f7a44;background:#0c2a16;padding:0 5px;border-radius:3px;margin-left:4px;vertical-align:middle}
.ld-done{border-left:3px solid #5fe07a;background:rgba(95,224,122,.07);padding:8px 10px;border-radius:6px;margin-top:8px}

.ld-xp .label{max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.ld-xp .label .ld-sec{display:none}}

/* Any coin: search by name or ticker (10-07) */
.any-search{position:relative}
.any-sugg{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;max-height:min(440px,60vh);overflow-y:auto;background:linear-gradient(180deg,#2c2318,#1d1710);border:1px solid var(--gold,#c9a24a);border-radius:10px;box-shadow:0 18px 44px rgba(0,0,0,.6);padding:4px}
.any-sg{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:8px 10px;border-radius:7px}
.any-sg+.any-sg{margin-top:2px}.any-sg:hover,.any-sg.on{background:rgba(255,208,106,.1)}.any-sg.on{box-shadow:inset 0 0 0 1px rgba(255,208,106,.45)}
.any-sg img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#0a0805;border:1px solid rgba(201,162,74,.45)}
.any-sg .nm{min-width:0;display:flex;flex-direction:column;gap:2px}.any-sg .l1{display:flex;align-items:baseline;gap:7px;min-width:0;white-space:nowrap;overflow:hidden}
.any-sg .l1 b{color:#ffd06a;font-size:15px}.any-sg .l1 i{font-style:normal;color:var(--dim);overflow:hidden;text-overflow:ellipsis;font-size:13px}
.any-sg small{color:#8d7c5a;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.any-sg .num{text-align:right;display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}.any-sg .num b{color:#f3e9d2;font-size:13px;white-space:nowrap}
.any-sg-tag{font-style:normal;font-size:10.5px;padding:0 5px;border-radius:3px;flex:none}.any-sg-tag.board{color:#8ff0a4;border:1px solid #2f7a44;background:#0c2a16}.any-sg-tag.sus{color:#ff9a9a;border:1px solid #8a3a3a;background:#2a0c0c}
.any-sg-note{padding:12px;color:var(--dim);font-size:13px}
.any-usd{display:block;color:#8ff0a4;font-size:12px;margin-top:2px}.any-usd-total{color:#ffd06a;font-weight:600}
@media(max-width:600px){.any-sg{grid-template-columns:30px minmax(0,1fr)}.any-sg .num{grid-column:2;text-align:left;flex-direction:row;gap:8px}.any-sg img{width:30px;height:30px}}

.any-sg .any-sg-ic{width:34px;height:34px;font-size:15px}.lq-hero-tiles{margin-top:0}
@media(max-width:600px){.any-sg .any-sg-ic{width:30px;height:30px}}

/* Turbo toggle (10-07) */
.ic-turbo{background-image:url('assets/icons/turbo.png')}
.turbo-btn{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:2px 9px 2px 6px;border-radius:999px;border:1px solid var(--edge,#5a4526);background:var(--ink,#1a140d);color:var(--dim,#b9a67e);font:inherit;font-size:13px;cursor:pointer;transition:all .15s}
.turbo-btn .ic{width:1.05em;height:1.05em;filter:grayscale(1) brightness(.8);transition:filter .15s}
.turbo-btn.on{color:#ffe08a;border-color:#ffd06a;background:linear-gradient(180deg,#4a3410,#2a1d08);box-shadow:0 0 0 1px rgba(255,208,106,.25),0 0 14px rgba(255,190,60,.25)}
.turbo-btn.on .ic{filter:drop-shadow(0 0 4px rgba(255,200,60,.8))}
.vb-actions .turbo-btn{margin:0 auto 0 0;font-size:14px;padding:6px 12px 6px 9px}
.ic-shield{background-image:url('assets/icons/shield.png')}.ic-rocket{background-image:url('assets/icons/rocket.png')}.ic-chat{background-image:url('assets/icons/chat.png')}.ic-pulse{background-image:url('assets/icons/pulse.png')}.ic-phone{background-image:url('assets/icons/phone.png')}

/* ==== Trencher upgrade (10-07) ==== */
/* safety grade chip */
.sg{display:inline-flex;align-items:center;gap:3px;font-style:normal;font-family:var(--font-ui);font-size:11px;line-height:1;padding:1px 6px 1px 3px;border-radius:4px;margin-left:5px;vertical-align:middle;border:1px solid;cursor:help}
.sg .ic{width:13px;height:13px}
.sg-a{color:#8ff0a4;border-color:#2f7a44;background:#0c2a16}.sg-b{color:#c8f08f;border-color:#5a7a2f;background:#1b2a0c}.sg-c{color:#ffd06a;border-color:#8a6a2a;background:#2a1f0c}.sg-d{color:#ffb36a;border-color:#8a512a;background:#2a170c}.sg-f{color:#ff8f8f;border-color:#8a3a3a;background:#2a0c0c}
/* graduation */
.grad-mini{display:inline-block;width:46px;height:6px;border-radius:3px;background:rgba(255,255,255,.08);border:1px solid rgba(201,162,74,.35);margin-left:6px;vertical-align:middle;overflow:hidden}.grad-mini b{display:block;height:100%;background:linear-gradient(90deg,#ff9a3c,#ffd06a)}
.grad-big{margin:10px 0;padding:10px 12px;border:1px solid rgba(201,162,74,.35);border-radius:10px;background:rgba(0,0,0,.25)}
.grad-big .gb-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline;margin-bottom:7px}.grad-big .gb-top b{color:#ffd06a}.grad-big .gb-top span{color:var(--dim,#b9a67e);font-size:13px}
.grad-big .bar{position:relative;height:12px;border-radius:6px;background:rgba(255,255,255,.07);overflow:hidden}.grad-big .bar i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#c0481c,#ff9a3c 60%,#ffe08a);box-shadow:0 0 12px rgba(255,160,60,.5);transition:width .6s}
.grad-big .bar em{position:absolute;top:0;bottom:0;width:2px;background:rgba(0,0,0,.55)}
/* coin page safety panel */
.ge-safety{display:flex;gap:14px;align-items:flex-start;margin:10px 0;padding:12px;border:1px solid rgba(201,162,74,.3);border-radius:10px;background:rgba(0,0,0,.25)}
.sf-grade{flex:none;width:74px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;border-radius:9px;border:1px solid}.sf-grade .ic{width:26px;height:26px}.sf-grade b{font-family:'Cinzel',serif;font-size:34px;line-height:1}.sf-grade small{font-size:11px;opacity:.8}
.sf-body{display:flex;flex-direction:column;gap:4px;min-width:0}.sf-body>b{color:#f3e9d2}.sf-facts{color:#ffd06a;font-size:13px}.sf-body ul{margin:2px 0 0 16px;padding:0;color:var(--dim,#b9a67e);font-size:13px}
/* one-tap sells + keys */
.sw-quick{display:flex;align-items:center;gap:6px;margin-top:8px}.sw-quick span{color:var(--dim);margin-right:auto}
.sw-quick button{background:linear-gradient(180deg,#4a1c1c,#2e1010);border:1px solid #8a3a3a;color:#ffb3b3;padding:4px 12px;border-radius:5px;cursor:pointer;font:inherit}.sw-quick button:hover{border-color:#ff8f8f;color:#fff}

/* header P&L */
.pnl-chip{display:inline-flex;align-items:baseline;gap:6px;margin-right:8px;padding:5px 11px;border-radius:999px;border:1px solid var(--edge,#5a4526);background:rgba(0,0,0,.35);color:var(--dim,#b9a67e);font:inherit;font-size:13px;cursor:pointer;font-variant-numeric:tabular-nums}
.pnl-chip b{font-size:14px}.pnl-chip.up b{color:#7fe896}.pnl-chip.dn b{color:#ff8f8f}.pnl-chip:hover{border-color:#ffd06a}
.pnl-sheet{max-width:min(520px,calc(100vw - 24px))}.pnl-rows{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto}
.pnl-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:7px 8px;border-radius:7px;background:rgba(0,0,0,.25)}.pnl-row img{border-radius:50%}
.pnl-row a{display:flex;flex-direction:column;text-decoration:none;color:inherit;min-width:0}.pnl-row a small{color:var(--dim);font-size:12px}
.pnl-row em{font-style:normal;text-align:right;display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.pnl-row em small{font-size:11px;opacity:.8}.pnl-row em.up{color:#7fe896}.pnl-row em.dn{color:#ff8f8f}
@media(max-width:700px){.pnl-chip span{display:none}.pnl-chip{padding:5px 9px;margin-right:6px}}
/* coin room badges */
.gp-bdg{font-style:normal;font-size:11px;padding:0 5px;border-radius:3px;margin-left:4px;display:inline-flex;align-items:center;gap:3px}.gp-bdg .ic{width:12px;height:12px}
.gp-bdg.og{color:#ffd06a;border:1px solid #8a6a2a;background:#2a1f0c}.gp-bdg.whale{color:#9fd2ff;border:1px solid #2f5a8a;background:#0c1a2a}.gp-bdg.dia{color:#b9f3ff;border:1px solid #3a7a8a;background:#0c242a}
/* Pulse */
#s-pulse .pulse-head{display:flex;align-items:center;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}#s-pulse .pulse-head .lq-title{margin:0}
.pulse-sub{margin-right:auto;font-size:var(--fs-sm)}.pulse-amt{display:inline-flex;align-items:center;gap:6px;color:var(--dim);font-size:var(--fs-sm)}.pulse-amt input{width:80px;min-height:var(--ctl-h-sm);padding:0 8px;font-size:var(--fs-input)}
.pulse-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.pulse-col{border:1px solid rgba(201,162,74,.3);border-radius:12px;background:linear-gradient(180deg,rgba(40,30,18,.85),rgba(20,15,10,.85));padding:10px;min-width:0}
.pulse-col h3{display:flex;align-items:center;gap:7px;margin:2px 4px 10px;font-size:16px;color:#ffd06a}.pulse-col h3 .ic{width:20px;height:20px}.pulse-col h3 .pc-n{margin-left:auto;color:var(--dim);font-size:13px}
.pc-list{display:flex;flex-direction:column;gap:7px;max-height:calc(100vh - 230px);overflow-y:auto}
.pc{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px;border-radius:9px;background:rgba(0,0,0,.3);border:1px solid rgba(201,162,74,.15);cursor:pointer;transition:border-color .15s,transform .15s}
.pc:hover{border-color:rgba(255,208,106,.55);transform:translateY(-1px)}
.pc-ic{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid rgba(201,162,74,.45);background:#0a0805}
.pc-main{min-width:0;display:flex;flex-direction:column;gap:3px}.pc-l1{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden}.pc-l1 b{color:#ffd06a}.pc-age{color:var(--dim);font-size:12px}
.pc-tag{font-style:normal;font-size:10.5px;color:#ffb36a;border:1px solid #8a512a;border-radius:3px;padding:0 4px}
.pc-l2{display:flex;flex-wrap:wrap;gap:3px 10px;color:var(--dim,#b9a67e);font-size:12px;font-variant-numeric:tabular-nums}.pc-l2 b{color:#f3e9d2}.pc-l2 .up{color:#7fe896}.pc-l2 .dn{color:#ff8f8f}
.pc-grad{position:relative;height:14px;border-radius:7px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:2px}.pc-grad i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#c0481c,#ff9a3c 60%,#ffe08a)}.pc-grad span{position:relative;display:block;text-align:center;font-size:10.5px;line-height:14px;color:#fff;text-shadow:0 1px 2px #000}
.pc-buy{padding:7px 14px;font-size:14px}.pc-empty{padding:14px 6px}
@media(max-width:980px){.pulse-cols{grid-template-columns:1fr}.pc-list{max-height:none}}
/* design v2 (owner 10-24): up to 980px the columns are tabs (app.js keeps the pick); wider, the tabs are not there */
.pulse-tabs{display:none}#pulseTabs>button{font-size:var(--fs-sm)}.pulse-tabs .pt-n{font-style:normal;font-weight:600;font-size:var(--fs-cap);color:var(--mute)}.pulse-tabs .on .pt-n{color:inherit}
@media(max-width:980px){.pulse-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin-bottom:var(--sp-2)}.pulse-tabs>button{min-height:40px;padding:0 6px}
  #pulseCols[data-tab="fresh"]>.pulse-col:not([data-col="fresh"]),#pulseCols[data-tab="close"]>.pulse-col:not([data-col="close"]),#pulseCols[data-tab="done"]>.pulse-col:not([data-col="done"]){display:none}
  #s-pulse .pulse-col h3{display:none}}

/* ---------- points / glory panel ------------------------------------------------------------ */
/* The two figures a board alone never shows: the multiplier your rank applies to everything you
   earn, and what the people you brought are earning you while you do nothing. A leaderboard says
   where somebody stands; these say what to do next. */
.pts-me{padding:12px 0 4px}
.pts-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pts-badge{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid}
.pts-badge.sm{font-size:9.5px;padding:2px 7px}
.pts-bronze{color:#c88a52;border-color:rgba(200,138,82,.45);background:rgba(200,138,82,.12)}
.pts-silver{color:#9aa7b4;border-color:rgba(154,167,180,.45);background:rgba(154,167,180,.12)}
.pts-gold{color:#d9a441;border-color:rgba(217,164,65,.45);background:rgba(217,164,65,.12)}
.pts-diamond{color:#4fb286;border-color:rgba(79,178,134,.5);background:rgba(79,178,134,.14)}
.pts-mult{font-size:12.5px;font-weight:600}
.pts-rank{margin-left:auto;font-size:11.5px;opacity:.6;white-space:nowrap}
.pts-fig{font-size:18px;font-weight:700;margin:8px 0 2px}
.pts-fig b{font-variant-numeric:tabular-nums}
.pts-down{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);font-size:12px}
.pts-down b{font-variant-numeric:tabular-nums}
.ptsBoard{margin-top:12px}
.ptsBoard .tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.ptsBoard td{padding:6px 8px;border-top:1px solid rgba(255,255,255,.06)}
.ptsBoard td.r{text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:560px){ .pts-rank{margin-left:0;width:100%} }

/* Valhalla calls (10-07) */
.calls-hero{margin-bottom:12px}.calls-hero .lq-title{margin:0 0 4px}
.calls-stats{display:grid;grid-template-columns:2fr repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.cs-tile{border:1px solid var(--border);border-radius:var(--r-panel);background:var(--panel-bg);padding:10px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.cs-tile span{color:var(--dim,#b9a67e);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.cs-tile b{font-size:20px;color:#f3e9d2;font-variant-numeric:tabular-nums}.cs-tile small{color:var(--dim,#b9a67e);font-size:12px}
.cs-tile.big{border-color:#ffd06a;box-shadow:0 0 24px rgba(255,208,106,.12) inset}.cs-tile.big b{font-size:38px;color:#7fe896}
.calls-join:empty,.fnf-h:has(+ div:empty){display:none}.calls-stats>.note{grid-column:1/-1} /* a failed load leaves no empty bar or heading over nothing (ux 10-24) */
.calls-join{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;margin-bottom:14px;border-radius:12px;border:1px solid #ffd06a;background:linear-gradient(90deg,rgba(74,52,16,.75),rgba(28,20,10,.75))}
.cj-pitch{display:flex;flex-direction:column;gap:3px;flex:1 1 320px}.cj-pitch b{font-size:15px;color:#ffe08a}.cj-pitch span{color:var(--dim,#d9c49a);font-size:14px}.cj-acts{display:flex;gap:8px;flex-wrap:wrap}
.cj-in{display:flex;align-items:center;gap:10px}.cj-in .ic{width:28px;height:28px}.cj-in div{display:flex;flex-direction:column}.cj-in span{color:var(--dim);font-size:13px}
.calls-list{display:flex;flex-direction:column;gap:6px}
.cl-head,.cl-row{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1.1fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,.9fr) auto;gap:10px;align-items:center;padding:9px 12px}
.cl-head{color:var(--dim,#b9a67e);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.cl-row{border-radius:10px;background:rgba(0,0,0,.3);border:1px solid rgba(201,162,74,.15);font-variant-numeric:tabular-nums}.cl-row>span{display:flex;flex-direction:column;min-width:0}.cl-row small{color:var(--dim,#b9a67e);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-coin{display:grid!important;grid-template-columns:34px minmax(0,1fr);column-gap:9px;align-items:center}.cl-coin img,.cl-blur{grid-row:1/3;width:34px;height:34px;border-radius:50%;object-fit:cover;background:#0a0805;border:1px solid rgba(201,162,74,.45)}.cl-coin b{color:#ffd06a}
.cl-x{font-size:14px;font-weight:700}.cl-x.hot{color:#7fe896}.cl-x.up{color:#c8f08f}.cl-x.dn{color:#ff8f8f}.cl-acts{flex-direction:row!important;gap:8px;align-items:center}
.cl-row.locked{grid-template-columns:minmax(0,2.2fr) minmax(0,2fr) auto;border-style:dashed;border-color:rgba(255,208,106,.4)}
.cl-blur{background:radial-gradient(circle at 35% 35%,#ffd06a,#8a5a1a);filter:blur(3px);display:block}.cl-lock{color:#ffd06a;font-size:13px}
@media(max-width:900px){.calls-stats{grid-template-columns:1fr 1fr}.cs-tile.big{grid-column:1/-1}.cl-head{display:none}.cl-row{grid-template-columns:1fr 1fr 1fr}.cl-coin{grid-column:1/-1}.cl-acts{grid-column:1/-1}.cl-row.locked{grid-template-columns:1fr}}
.btn.gold{background:linear-gradient(180deg,#ffe08a,#e8a93a);color:#2a1a06;border-color:#ffd06a;text-decoration:none;display:inline-flex;align-items:center}

/* FNF sections (10-07) */
.fnf-h{font-family:'Cinzel',serif;font-size:var(--fs-h4);color:#ffd06a;margin:20px 0 8px}
.fnf-pnl{display:grid;grid-template-columns:2fr repeat(4,minmax(0,1fr));gap:10px}.fp-note{grid-column:2/-1;align-self:center}
.fp-hero{border:1px solid #ffd06a;border-radius:var(--r-panel);padding:10px 16px;display:flex;flex-direction:column;gap:3px;background:linear-gradient(180deg,rgba(40,52,24,.8),rgba(16,20,10,.85))}
.fp-hero.dn{background:linear-gradient(180deg,rgba(60,24,20,.8),rgba(20,10,10,.85))}.fp-hero span{color:var(--dim,#b9a67e);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.fp-hero b{font-size:32px;line-height:1.15;font-variant-numeric:tabular-nums}.fp-hero.up b{color:#7fe896}.fp-hero.dn b{color:#ff8f8f}.fp-hero small{color:var(--dim,#b9a67e)}
.fnf-top{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.ft-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;padding:10px 8px;border-radius:var(--r-panel);border:1px solid rgba(201,162,74,.35);background:radial-gradient(circle at 50% 0,rgba(255,208,106,.14),rgba(20,15,10,.9) 70%)}
.ft-card img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,208,106,.6);background:#0a0805}.ft-rank{position:absolute;top:8px;left:10px;color:var(--dim);font-size:12px}
.ft-sym{color:#ffd06a}.ft-x{font-size:24px;color:#7fe896;font-variant-numeric:tabular-nums}.ft-card small{color:var(--dim,#b9a67e);font-size:11.5px}
@media(max-width:900px){.fnf-pnl{grid-template-columns:1fr 1fr}.fp-hero{grid-column:1/-1}.fp-note{grid-column:1/-1}.fnf-top{grid-template-columns:1fr 1fr}.calls-stats{grid-template-columns:1fr 1fr}}
.calls-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.calls-stats{grid-template-columns:1fr 1fr}}

/* GE on phones (owner 10-07: "you cant see market cap"): the market-cap column is hidden there, so it rides under the price instead */
.ge-row .pr .mc-m{display:none}
@media(max-width:700px){.ge-row .pr .mc-m{display:block;color:#ffd06a;font-size:11px;white-space:nowrap}.ge-row .pr .px2{display:none}}

/* Points / Glory panel, redesigned (owner 10-07: "not clear … wall of text … AAA+") */
.pts-panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px 22px;align-items:start}
.pts-panel>h2{grid-column:1/-1;margin-bottom:0}.pts-panel .ptsMe{min-width:0}.pts-panel .ptsBoard{min-width:0}
#s-pulse .pts-panel{margin-top:18px}
.pts-lead p{margin:0 0 10px;color:var(--txt,#e9dcc0);font-size:15px;line-height:1.5}
.pts-ways{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.pts-ways span{font-size:12.5px;color:var(--dim,#b9a67e);padding:4px 9px;border-radius:999px;border:1px solid rgba(201,162,74,.28);background:rgba(0,0,0,.25)}.pts-ways b{color:#ffd06a}
.pts-you{border:1px solid rgba(255,208,106,.45);border-radius:14px;padding:16px;background:radial-gradient(120% 140% at 0 0,rgba(255,208,106,.16),rgba(20,15,10,.85) 60%);box-shadow:0 0 30px rgba(255,190,70,.08) inset}
.pts-you.guest{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.pts-you.guest div{display:flex;flex-direction:column;gap:3px}.pts-you.guest span{color:var(--dim);font-size:14px}
.py-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}.py-num{font-family:'Cinzel',serif;font-size:44px;line-height:1;color:#ffe08a;text-shadow:0 0 18px rgba(255,190,70,.35);font-variant-numeric:tabular-nums}.py-unit{color:var(--dim);font-size:15px}
.py-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.py-tiles div{background:rgba(0,0,0,.3);border:1px solid rgba(201,162,74,.22);border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:2px;min-width:0}
.py-tiles span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.py-tiles b{font-size:17px;color:#f3e9d2;font-variant-numeric:tabular-nums}.py-tiles small{font-size:12px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.py-next{margin-top:12px}.py-next .bar{height:8px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}.py-next .bar i{display:block;height:100%;background:linear-gradient(90deg,#c98a1e,#ffd06a)}.py-next small{display:block;margin-top:5px;color:var(--dim);font-size:12.5px}.py-next.top small{color:#7fe896}
.pts-badge.lg{font-size:15px;padding:4px 12px}
.pts-ladder{display:flex;align-items:center;gap:6px;margin-top:12px;flex-wrap:wrap}.pl-step{display:flex;flex-direction:column;align-items:center;gap:3px;opacity:.5}.pl-step.on{opacity:1}.pl-step.here .pts-badge{box-shadow:0 0 0 2px #ffd06a,0 0 12px rgba(255,208,106,.45)}.pl-step small{font-size:11px;color:var(--dim);white-space:nowrap}
.pl-line{flex:1 1 18px;min-width:12px;height:2px;background:linear-gradient(90deg,rgba(201,162,74,.5),rgba(201,162,74,.15));margin-bottom:16px}
.pts-board{border:1px solid rgba(201,162,74,.3);border-radius:14px;padding:10px;background:rgba(0,0,0,.25)}.pb-h{display:flex;justify-content:space-between;align-items:baseline;padding:2px 6px 8px}.pb-h b{color:#ffd06a}.pb-h small{color:var(--dim)}
.pb-row{display:grid;grid-template-columns:28px 30px minmax(0,1fr) minmax(90px,38%);gap:9px;align-items:center;padding:6px;border-radius:8px}.pb-row+.pb-row{margin-top:2px}.pb-row:hover{background:rgba(255,208,106,.06)}.pb-row.me{background:rgba(255,208,106,.12);box-shadow:inset 0 0 0 1px rgba(255,208,106,.4)}
.pb-rk{font-weight:700;color:var(--dim);text-align:center;font-variant-numeric:tabular-nums}.pb-rk.r1{color:#ffd06a}.pb-rk.r2{color:#d9e1ea}.pb-rk.r3{color:#e3a36b}
.pb-row .av{width:30px;height:30px}.pb-nm{display:flex;align-items:center;gap:7px;min-width:0}.pb-nm b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f3e9d2;font-weight:600}
.pb-v{display:flex;flex-direction:column;gap:3px;align-items:flex-end}.pb-v b{font-variant-numeric:tabular-nums;color:#f3e9d2}.pb-v i{display:block;width:100%;height:4px;border-radius:2px;background:rgba(255,255,255,.07);overflow:hidden}.pb-v em{display:block;height:100%;background:linear-gradient(90deg,#8a5a1a,#ffd06a)}
@media(max-width:900px){.pts-panel{grid-template-columns:1fr}.py-tiles{grid-template-columns:1fr 1fr 1fr}.py-num{font-size:36px}}
@media(max-width:480px){.py-tiles{grid-template-columns:1fr 1fr}.py-tiles div:last-child{grid-column:1/-1}}

/* Any coin, opened (owner 10-07: "how do i close or minimize it, and why does it take up so much of my screen"): a close button, pools folded to one line */
.any-head{position:relative;padding-right:44px}.any-x{position:absolute;top:0;right:0;width:36px;height:36px;border-radius:50%;border:1px solid rgba(200,168,96,.35);background:rgba(0,0,0,.35);color:var(--dim);font-size:14px;line-height:1;cursor:pointer}.any-x:hover{color:#fff;border-color:var(--gold,#e8b84a)}
details.any-pool{padding:0}details.any-pool>summary{list-style:none;cursor:pointer;margin:0;padding:10px 12px}details.any-pool>summary::-webkit-details-marker{display:none}
details.any-pool[open]{padding-bottom:10px}details.any-pool[open]>:not(summary){margin-left:12px;margin-right:12px}
.any-pool-liq{color:var(--dim);font-size:13px;font-variant-numeric:tabular-nums}.any-pool-tog{margin-left:auto;font-size:12px;color:var(--gold,#e8b84a)}.any-pool-tog::after{content:' ▾'}details[open]>summary .any-pool-tog::after{content:' ▴'}
.any-pool-ext{display:inline-block;margin-top:8px;font-size:12px;color:var(--dim)}.any-mine-tag{border-color:#2ee64a!important;color:#2ee64a!important}
.any-foot{margin-top:8px;font-size:13px!important;color:var(--dim)}.any-pools{gap:6px}
.lq-any .any-lead{font-size:14px!important;max-width:none}

/* Collect all (owner 10-07: it ran off the screen): the total on one line, the coins wrapped under it, never wider than its panel */
.cg-big{box-sizing:border-box;max-width:100%;white-space:normal;display:flex;flex-direction:column;align-items:center;gap:3px;line-height:1.2;overflow-wrap:anywhere}.cg-big b{font-size:inherit}.cg-big small{font-size:13px;opacity:.85;font-weight:600}

/* ===================== growth features (public/grow.js, owner 10-07) ===================== */
.gw-modal{position:relative}.gw-x{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(200,168,96,.35);background:rgba(0,0,0,.35);color:var(--dim);font-size:15px;cursor:pointer;line-height:1}.gw-x:hover{color:#fff;border-color:var(--gold2)}
.gw-wide .gw-modal{width:min(760px,100%)}
.gw-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid var(--edge);color:var(--dim);font-family:Inter,system-ui,sans-serif;font-weight:700}
.gw-tag.gold{border-color:var(--gold2);color:var(--gold2);background:rgba(255,179,71,.08)}
.gw-tag.live,.gw-tag.raid{border-color:#2ee64a;color:#2ee64a;background:rgba(46,230,74,.08)}.gw-tag.raid{border-color:#ff5a3c;color:#ff8a5c;background:rgba(255,90,60,.1)}
.gw-tag i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:gwPing 1.6s infinite}
@keyframes gwPing{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.gw-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.gw-h b{font-size:15px}.gw-h .note,.gw-h .gw-clock{margin-left:auto}
.gw-clock{font-variant-numeric:tabular-nums;color:var(--gold2);font-size:14px}
.gw-pitch{margin:4px 0 10px;color:var(--txt);font-size:15px;line-height:1.35}
.gw-cta{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}
.gw-n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.35);border:1px solid var(--edge);font-size:15px}
.gw-pill{margin-left:6px;font-size:12px;padding:1px 7px;border-radius:999px;background:rgba(0,0,0,.3)}

/* launch presets */
.lf-presets{margin-bottom:10px}.lf-pre-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.lf-pre-h b{font-size:15px}
.lf-pre-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.lf-pre{font:inherit;text-align:left;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:12px;border-radius:10px;border:1px solid rgba(200,168,96,.28);background:linear-gradient(180deg,rgba(255,220,150,.05),rgba(0,0,0,.25));color:var(--txt);cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s}
.lf-pre .ic{grid-row:1/3;width:30px;height:30px}.lf-pre b{font-size:15px}.lf-pre small{font-size:14px;color:var(--dim);line-height:1.25}
.lf-pre:hover{border-color:var(--gold2);transform:translateY(-1px)}.lf-pre.on{border-color:var(--gold2);box-shadow:0 0 0 1px var(--gold2),0 6px 18px rgba(255,179,71,.18);background:linear-gradient(180deg,rgba(255,179,71,.14),rgba(0,0,0,.2))}
.lf-pre-note{margin-top:8px}.lf-pre-note a{color:var(--gold2)}
.lf-adv{border-top:1px solid rgba(200,168,96,.2);margin-top:6px;padding-top:6px}.lf-adv>summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:10px;padding:6px 0;color:var(--gold2)}.lf-adv>summary::-webkit-details-marker{display:none}
.lf-adv>summary span::after{content:' ▾'}.lf-adv[open]>summary span::after{content:' ▴'}.lf-adv>summary small{color:var(--dim);font-size:14px}
@media(max-width:600px){.lf-pre-grid{grid-template-columns:1fr}}

/* get discovered */
.lc-disc{border-color:var(--gold2)!important;background:linear-gradient(90deg,rgba(255,179,71,.14),rgba(0,0,0,.3))!important}.lc-disc b{color:var(--gold2);margin-right:6px}
.gw-disc-btn{display:flex;align-items:center;gap:6px;justify-content:center;width:100%;margin-top:6px}
.gw-disc-h h3{margin:0 40px 4px 0}.gw-prog{display:flex;align-items:center;gap:10px;margin:10px 0}.gw-prog-bar{flex:1;height:8px;border-radius:99px;background:rgba(0,0,0,.4);overflow:hidden}.gw-prog-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold3),var(--gold2));border-radius:99px}
.gw-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}.gw-steps li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid rgba(200,168,96,.22);border-radius:10px;background:rgba(0,0,0,.2)}
.gw-steps li.done{opacity:.75}.gw-steps li.done .gw-n{border-color:#2ee64a;color:#2ee64a}.gw-st-t{font-size:15px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.gw-cost{font-size:13px;color:var(--dim)}.gw-done{font-size:12px;color:#2ee64a;text-transform:uppercase}.gw-wait{font-size:12px;color:var(--gold2);text-transform:uppercase}
.gw-kit{margin-top:14px;border-top:1px solid rgba(200,168,96,.2);padding-top:10px}.gw-kit-h{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin-bottom:8px}
.gw-kit-imgs{display:grid;grid-template-columns:120px 1fr;gap:10px;margin-bottom:10px}.gw-kit-imgs figure{margin:0}.gw-kit-imgs img{width:100%;border-radius:10px;border:1px solid rgba(200,168,96,.25);display:block;background:#0a0805}.gw-kit-imgs figure:not(.wide) img{aspect-ratio:1}.gw-kit-imgs figure.wide img{aspect-ratio:3/1;object-fit:cover}
.gw-kit-imgs figcaption{font-size:13px;color:var(--dim);margin-top:4px}.gw-kit-imgs figcaption a{color:var(--gold2);margin-left:4px}
.gw-kit-row{display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-top:1px dashed rgba(200,168,96,.12)}.gw-kit-row span{color:var(--dim);font-size:14px}.gw-kit-row p{margin:0;font-size:14px}.gw-kit-row code{font-size:12px;word-break:break-all}
.gw-kit-miss{margin-top:6px;color:var(--gold2)}
@media(max-width:600px){.gw-kit-imgs{grid-template-columns:80px 1fr}.gw-kit-row{grid-template-columns:1fr auto}.gw-kit-row span{grid-column:1/-1}.gw-steps li{grid-template-columns:auto 1fr}.gw-steps li .btn{grid-column:1/-1}}

/* coin page: competition + raid */
.ge-grow{display:grid;grid-template-columns:1.25fr 1fr;gap:10px;margin:10px 0}.ge-grow:has(.gw-comp[hidden]){grid-template-columns:1fr}
@media(max-width:820px){.ge-grow{grid-template-columns:1fr}}
.gw-box{padding:12px 14px;border:1px solid var(--edge);border-radius:12px;background:linear-gradient(180deg,rgba(255,220,150,.04),rgba(0,0,0,.28));min-width:0;position:relative;overflow:hidden}
.gw-comp:not([hidden]){border-color:rgba(255,179,71,.55);box-shadow:inset 0 1px 0 rgba(255,220,150,.12)}
.gw-prize{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;background:radial-gradient(120% 140% at 0% 0%,rgba(255,179,71,.18),rgba(0,0,0,.2));margin-bottom:8px}
.gw-prize>span:first-child{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}.gw-prize b{font-size:30px;color:var(--gold1);font-variant-numeric:tabular-nums;text-shadow:0 2px 0 rgba(0,0,0,.5)}.gw-prize b small{font-size:14px;color:var(--gold2)}.gw-prize .note{flex-basis:100%;font-size:14px}
.gw-board,.gw-lbl{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.gw-board li,.gw-lbl li{display:grid;grid-template-columns:26px auto 1fr auto auto;gap:8px;align-items:center;padding:5px 8px;border-radius:8px;background:rgba(0,0,0,.18);font-size:15px}
.gw-board li.me,.gw-lbl li.me{outline:1px solid var(--gold2)}
.gw-rk{text-align:center;color:var(--dim);font-variant-numeric:tabular-nums}
.gw-board li.gold .gw-rk,.gw-lbl li.gold .gw-rk{color:#ffd76a}.gw-board li.silver .gw-rk,.gw-lbl li.silver .gw-rk{color:#d8dde6}.gw-board li.bronze .gw-rk,.gw-lbl li.bronze .gw-rk{color:#e09b62}
.gw-board li.gold{background:linear-gradient(90deg,rgba(255,215,106,.16),rgba(0,0,0,.18))}
.gw-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt);text-decoration:none}.gw-who small{display:block;font-size:13px;color:var(--dim)}
.gw-sc{font-variant-numeric:tabular-nums;text-align:right}.gw-sc small{display:block;font-size:12px;color:var(--dim)}.gw-win{color:var(--gold2);font-size:15px;font-variant-numeric:tabular-nums;text-align:right}
.gw-empty{display:block!important;color:var(--dim);font-size:15px!important;text-align:center;padding:12px!important}
.gw-foot{margin-top:8px;font-size:13px!important}
.gw-raid.on{border-color:rgba(255,90,60,.6);box-shadow:0 0 0 1px rgba(255,90,60,.25),0 0 28px rgba(255,90,60,.12) inset}
.gw-raid-g{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.gw-raid-g div{text-align:center;padding:8px 4px;border-radius:10px;background:rgba(0,0,0,.25);border:1px solid rgba(200,168,96,.18)}
.gw-raid-g b{display:block;font-size:20px;color:var(--gold1);font-variant-numeric:tabular-nums}.gw-raid-g span{font-size:13px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}.gw-raid-g small{grid-column:1/-1;font-size:13px;color:var(--dim);text-align:center}
.gw-raid-do{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.gw-raid-do input{flex:1;min-width:140px}.gw-raid-do .btn{display:inline-flex;align-items:center;gap:6px}
.gw-raiders{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.gw-raiders a{font-size:14px;padding:3px 9px;border-radius:999px;border:1px solid rgba(200,168,96,.25);color:var(--txt);text-decoration:none}.gw-raiders a b{color:var(--gold2);margin-left:4px}
.gw-raid-call{width:100%;margin-top:10px}
.gw-form{display:grid;gap:10px;margin:10px 0}.gw-form label{display:grid;gap:4px}.gw-form label>span{font-size:14px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}.gw-row{display:flex;gap:6px}.gw-row input{flex:1;min-width:0}

/* creator dashboard: top launchers + KOL */
/* the KOL box leads as one row over the launcher board (10-24 sweep: beside the 24-row board it left an empty column ~900px tall) */
.gw-dash{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3);align-items:start;margin-top:var(--sp-3)}.gw-dash>.gw-kol{order:-1}
@media(min-width:761px){.gw-dash .gw-kol:has(>.gw-cta){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--sp-4);align-items:center}.gw-dash .gw-kol:has(>.gw-cta)>*{grid-column:1}.gw-dash .gw-kol:has(>.gw-cta)>.gw-cta{grid-column:2;grid-row:1/span 3;align-self:center;width:auto;margin:0}.gw-dash .gw-kol:has(>.gw-cta)>.gw-pitch{margin-bottom:0}}
/* the dashboard's launcher board and KOL box: groups inside the dashboard panel, rows on hairlines (v2: no card in a card, the KOL box no longer stretched to the board's height) */
.gw-dash .gw-box{border:0;border-radius:var(--r-ctl);background:var(--fill)}.gw-dash .gw-h b{font-weight:600}
.gw-dash .gw-lbl{gap:0}.gw-dash .gw-lbl li{padding:8px 4px;border-radius:0;background:none;border-bottom:1px solid var(--line);font-size:var(--fs-dense)}.gw-dash .gw-lbl li:last-child{border-bottom:0}.gw-dash .gw-lbl li:hover{background:var(--hover)}
.gw-dash .gw-lbl li.me{outline:0;box-shadow:inset 3px 0 0 var(--gold-txt)}.gw-dash .gw-sc{text-align:right;font-weight:600;color:var(--num);font-variant-numeric:tabular-nums}.gw-dash .gw-sc small{display:block;font-weight:400;font-size:var(--fs-cap);color:var(--dim)}.gw-dash .gw-who small{font-size:var(--fs-cap)}
@media(max-width:760px){.gw-dash .gw-who small{white-space:normal}.gw-dash .gw-h .note{margin-left:0;flex-basis:100%}}
.gw-lbl li{grid-template-columns:26px auto 1fr auto}
.gw-ticks{margin:0 0 12px;padding-left:18px;color:var(--dim);font-size:14px}
.gw-kol-link{display:flex;gap:6px;align-items:center;margin-bottom:10px}.gw-kol-link code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px 10px;border-radius:8px;background:rgba(0,0,0,.35);border:1px solid rgba(200,168,96,.25);font-size:13px}
.gw-kol-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}.gw-kol-stats div{padding:8px;border-radius:8px;background:rgba(0,0,0,.25)}.gw-kol-stats span{display:block;font-size:12px;color:var(--dim);text-transform:uppercase}.gw-kol-stats b{font-size:15px;font-variant-numeric:tabular-nums}.gw-kol-stats small{font-size:12px;color:var(--dim)}
@media(max-width:600px){.gw-kol-stats{grid-template-columns:repeat(2,1fr)}}
.gw-kol-coins{display:flex;flex-wrap:wrap;gap:6px}.gw-kol-coins a{padding:5px 10px;border-radius:8px;border:1px solid rgba(200,168,96,.25);color:var(--txt);text-decoration:none;font-size:14px}.gw-kol-coins small{display:block;font-size:12px;color:var(--dim)}

/* phone app */
/* the install prompt: one compact row, asked once after real engagement (owner 10-24: it was ~90px on every phone page from the first load) */
.gw-appchip{position:fixed;left:12px;right:12px;bottom:calc(12px + max(var(--tabbar-h),var(--safe-b)));z-index:90;display:flex;align-items:center;gap:var(--sp-2);min-height:48px;padding:2px 2px 2px 10px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--panel-bg);box-shadow:var(--shadow-pop);animation:vbpop .18s var(--ease-out)}
.gw-appchip img{width:28px;height:28px;border-radius:7px;flex:none}.gw-appchip span{flex:1;min-width:0;display:flex;align-items:baseline;gap:6px;white-space:nowrap;overflow:hidden}.gw-appchip b{font-size:var(--fs-sm);font-weight:600}.gw-appchip small{font-size:var(--fs-cap);color:var(--dim);overflow:hidden;text-overflow:ellipsis}
.gw-appchip .btn{flex:none}
.gw-chipx{width:44px;height:44px;flex:none;border-radius:50%;border:0;background:transparent;color:var(--dim);font-size:14px;cursor:pointer}
.gw-app{text-align:center}.gw-app-ic{width:72px;height:72px;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.5);margin:4px auto 8px;display:block}.gw-app h3{margin:0 0 4px}
.gw-app-body{text-align:left;display:grid;gap:8px;margin-top:12px}
.gw-app-step{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid rgba(200,168,96,.22);border-radius:10px;background:rgba(0,0,0,.2)}.gw-app-step.done .gw-n{border-color:#2ee64a;color:#2ee64a}
.gw-ios-share{display:inline-block;width:14px;height:16px;border:2px solid currentColor;border-top:0;border-radius:2px;position:relative;vertical-align:-2px;margin:0 2px}.gw-ios-share::before{content:'';position:absolute;left:50%;top:-6px;width:2px;height:10px;background:currentColor;transform:translateX(-50%)}
.gw-app-kinds{display:grid;gap:4px;padding:6px 4px}
.gw-sw{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}.gw-sw input{position:absolute;opacity:0;width:1px;height:1px}.gw-sw input:focus-visible+i{outline:2px solid var(--gold2);outline-offset:2px}.gw-sw i{flex:none;width:36px;height:20px;border-radius:99px;background:rgba(255,255,255,.12);position:relative;transition:background .15s}.gw-sw i::after{content:'';position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#ddd;transition:transform .15s}
.gw-sw input:checked+i{background:#2ea043}.gw-sw input:checked+i::after{transform:translateX(16px)}
.gw-app-test{justify-self:start}

/* ===================== KOLs on the chart (public/kolmarks.js, owner 10-07) ===================== */
.km-layer{position:absolute;inset:0;pointer-events:none;z-index:4;font-family:Inter,-apple-system,'Segoe UI',sans-serif}
.km{position:absolute;margin:-14px 0 0 -14px;width:28px;height:28px;padding:0;border-radius:50%;border:2px solid #22c55e;background:#0f1115;pointer-events:auto;cursor:pointer;box-shadow:0 0 0 2px rgba(15,17,21,.9),0 4px 14px rgba(0,0,0,.55);transition:box-shadow .15s}
.km img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.km.km-sell{border-color:#ef4444}.km.km-r-owner{border-color:#ffc94d;box-shadow:0 0 0 2px rgba(15,17,21,.9),0 0 14px rgba(255,201,77,.55)}.km.km-r-vh{box-shadow:0 0 0 2px rgba(15,17,21,.9),0 0 0 4px rgba(167,139,250,.55),0 4px 14px rgba(0,0,0,.5)}
.km.km-big{margin:-17px 0 0 -17px;width:34px;height:34px}
.km:hover,.km.km-on{z-index:3;transform:scale(1.12);box-shadow:0 0 0 2px #0f1115,0 0 0 5px rgba(255,255,255,.35),0 8px 22px rgba(0,0,0,.7)}
.km-s{position:absolute;right:-5px;bottom:-5px;width:14px;height:14px;border-radius:50%;font:800 9px/14px Inter,sans-serif;font-style:normal;text-align:center;color:#06120a;background:#22c55e;box-shadow:0 0 0 2px #0f1115}.km-sell .km-s{background:#ef4444;color:#fff}
.km-n{position:absolute;left:-6px;top:-6px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;font:800 9px/15px Inter,sans-serif;font-style:normal;text-align:center;color:#111;background:#fff;box-shadow:0 0 0 2px #0f1115}
.km-fresh{animation:kmPop .5s cubic-bezier(.2,1.6,.4,1)}.km-fresh::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid currentColor;color:#22c55e;animation:kmRing 1.4s ease-out 3}.km-sell.km-fresh::after{color:#ef4444}
@keyframes kmPop{0%{transform:scale(.2)}100%{transform:scale(1)}}@keyframes kmRing{0%{opacity:.9;inset:-2px}100%{opacity:0;inset:-16px}}
.km-call{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);white-space:nowrap;padding:5px 10px;border-radius:999px;font:600 12px/1.2 Inter,sans-serif;color:#e8f9ee;background:rgba(10,30,18,.92);border:1px solid rgba(34,197,94,.6);box-shadow:0 6px 18px rgba(0,0,0,.5);animation:kmCall 9s ease-out forwards;pointer-events:none}
.km-call::after{content:'';position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(34,197,94,.6)}.km-call em{font-style:normal;color:#4ade80;font-weight:800}
.km-call-sell{background:rgba(40,10,12,.92);border-color:rgba(239,68,68,.6);color:#fde8e8}.km-call-sell::after{border-top-color:rgba(239,68,68,.6)}.km-call-sell em{color:#f87171}
@keyframes kmCall{0%{opacity:0}6%{opacity:1}85%{opacity:1}100%{opacity:0}}
.km-right .km-call{left:auto;right:-8px;transform:none}.km-right .km-call::after{left:auto;right:14px}
.km-call,.km-banner{max-width:min(320px,calc(100vw - 40px));overflow:hidden;text-overflow:ellipsis}.km-banner{max-width:calc(100% - 16px)}
/* the card */
.kc{position:absolute;left:0;top:0;z-index:6;width:300px;max-width:calc(100% - 8px);padding:12px;border-radius:14px;background:linear-gradient(180deg,rgba(28,31,40,.97),rgba(15,17,22,.97));border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 48px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.06);color:#e7e9ee;font:13px/1.35 Inter,-apple-system,'Segoe UI',sans-serif;backdrop-filter:blur(8px);animation:kcIn .14s ease-out;pointer-events:auto}
@keyframes kcIn{from{opacity:0;margin-top:4px}to{opacity:1;margin-top:0}}
.kc-r-owner{border-color:rgba(255,201,77,.55)}.kc-r-vh{border-color:rgba(167,139,250,.5)}
.kc-top{display:flex;gap:10px;align-items:flex-start}.kc-av{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 2px #0f1115,0 0 0 3px rgba(255,255,255,.2)}.kc-r-owner .kc-av{box-shadow:0 0 0 2px #0f1115,0 0 0 4px #ffc94d}.kc-r-vh .kc-av{box-shadow:0 0 0 2px #0f1115,0 0 0 4px #a78bfa}
.kc-id{min-width:0;flex:1}.kc-id>b{display:block;font-size:14px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kc-badges{display:flex;flex-wrap:wrap;gap:4px;margin:3px 0 5px}
.km-b{display:inline-block;padding:1px 7px;border-radius:999px;font:700 10px/16px Inter,sans-serif;font-style:normal;letter-spacing:.04em;text-transform:uppercase;background:rgba(255,255,255,.08);color:#cbd0da}
.km-b-owner{background:linear-gradient(90deg,#ffc94d,#ff9f1c);color:#1b1205}.km-b-vh{background:rgba(167,139,250,.18);color:#c4b5fd}.km-b-prog{background:rgba(56,189,248,.16);color:#7dd3fc}.km-b-kol{background:rgba(34,197,94,.14);color:#86efac}
.km-st-up{color:#4ade80}.km-st-dn{color:#f87171}.km-st-warn{color:#fbbf24}
.kc-links{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.kc-links a{color:#9aa4b2;text-decoration:none;display:inline-flex;align-items:center;gap:4px;font-size:12px}.kc-links a:hover{color:#fff}.kc-links .ic{width:13px;height:13px}
.kc-x{margin-left:auto;width:24px;height:24px;border-radius:50%;border:0;background:rgba(255,255,255,.06);color:#9aa4b2;cursor:pointer}
.kc-call{margin:10px 0 8px;padding:7px 9px;border-radius:9px;background:rgba(255,255,255,.04);color:#cbd0da}.kc-call b{color:#fff}
.kc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.kc-grid div{padding:6px;border-radius:8px;background:rgba(255,255,255,.04)}.kc-grid span{display:block;font-size:10px;color:#7d8696;text-transform:uppercase;letter-spacing:.05em}.kc-grid b{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.kc-grid small{display:block;font-size:10px;font-weight:600}
.kc .up{color:#4ade80}.kc .dn{color:#f87171}
.kc-trades{display:grid;gap:2px;margin-top:8px;max-height:150px;overflow:auto}.kc-tr{display:grid;grid-template-columns:38px auto 1fr auto;gap:8px;align-items:center;padding:4px 6px;border-radius:6px;color:#cbd0da;text-decoration:none;font-variant-numeric:tabular-nums}.kc-tr:hover{background:rgba(255,255,255,.05)}
.kc-tr i{font-style:normal;font-weight:700;font-size:11px}.kc-buy i{color:#4ade80}.kc-sell i{color:#f87171}.kc-tr span{color:#7d8696;font-size:12px}.kc-tr em{font-style:normal;color:#7d8696;font-size:11px}
.kc-acts{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.kc-acts .btn{flex:1;font-size:13px;padding:7px 8px;min-height:0}
.kc-sheet{position:relative;width:min(380px,100%);max-width:100%}
/* live banner */
.km-banner{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:rgba(10,30,18,.94);border:1px solid rgba(34,197,94,.55);color:#e8f9ee;font:600 13px Inter,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.55);animation:kmBan .35s cubic-bezier(.2,1.4,.4,1);transition:opacity .6s,transform .6s;white-space:nowrap;pointer-events:none}
.km-banner img{width:26px;height:26px;border-radius:50%;object-fit:cover}.km-banner em{font-style:normal;font-weight:800;color:#4ade80}.km-banner-sell{background:rgba(40,10,12,.94);border-color:rgba(239,68,68,.55)}.km-banner-sell em{color:#f87171}
.km-banner.out{opacity:0;transform:translate(-50%,-8px)}@keyframes kmBan{from{opacity:0;transform:translate(-50%,-14px) scale(.96)}to{opacity:1;transform:translate(-50%,0)}}
/* the strip under the chart */
.km-strip{margin:8px 0 2px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#14161c,#0f1115);font-family:Inter,-apple-system,'Segoe UI',sans-serif}
.kms-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.kms-h b{font-size:14px;color:#fff}.kms-h span{font-size:12px;color:#7d8696}
.kms-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;padding-bottom:2px}
.kms-k{flex:none;display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#e7e9ee;font:600 12px Inter,sans-serif;cursor:pointer;transition:border-color .15s,background .15s}
.kms-k:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.06)}.kms-k img{width:24px;height:24px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #22c55e}.kms-k.kms-exited img,.kms-k.kms-sold img{box-shadow:0 0 0 2px #ef4444;filter:grayscale(.4)}
.kms-k.km-r-owner{border-color:rgba(255,201,77,.5)}.kms-k.km-r-vh img{box-shadow:0 0 0 2px #a78bfa}
.kms-k span{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kms-k em{font-style:normal;font-size:11px;font-weight:700}.kms-k em.up{color:#4ade80}.kms-k em.dn{color:#f87171}
.kms-more{align-self:center;color:#7d8696;font-size:12px;padding:0 6px}
.km-toggle.on{color:#4ade80!important}
@media(max-width:700px){.kc{width:260px}.kc-grid{grid-template-columns:repeat(2,1fr)}.km{margin:-14px 0 0 -14px;width:28px;height:28px}.kc-x{width:32px;height:32px}}
@media(prefers-reduced-motion:reduce){.km-fresh,.km-fresh::after,.km-call,.km-banner,.kc{animation:none}}

.kc-also{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.07)}.kc-also span{font-size:10px;color:#7d8696;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.kc-also button{width:24px;height:24px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:none;cursor:pointer;overflow:hidden}.kc-also img{width:100%;height:100%;object-fit:cover;display:block}.kc-also button:hover{border-color:#fff}

/* review pass (10-07): reach, focus, phones, the Valhalla door */
.gw-x{position:sticky;float:right;top:0;margin:-6px -6px 0 8px;width:36px;height:36px;z-index:2}
.kms-k{min-height:36px}
body.gw-chip-on{padding-bottom:calc(60px + max(var(--tabbar-h),var(--safe-b)))}
body:has(.bb-tray:not([hidden])) .gw-appchip{display:none}
.gw-code{display:flex;gap:6px}.gw-code input{flex:1;min-width:0;font-size:17px;letter-spacing:.3em;text-align:center}
.gw-app-pair{margin-top:6px;padding:10px;border:1px dashed rgba(200,168,96,.3);border-radius:10px}.gw-app-pair .btn{margin-top:6px}
.gw-paircode{display:flex;align-items:baseline;gap:10px;margin-top:8px}.gw-paircode b{font-size:34px;letter-spacing:.12em;color:var(--gold1);font-variant-numeric:tabular-nums}
.gw-raid-d>summary{cursor:pointer;list-style:none;margin-bottom:0}.gw-raid-d>summary::-webkit-details-marker{display:none}.gw-raid-d[open]>summary{margin-bottom:8px}
.gw-raid-d:not([open])>summary::after{content:'›';margin-left:6px;color:var(--gold2)}
.gw-you{margin-top:6px;font-size:14px!important;color:var(--gold2)}
/* the KOL strip lives on the page, not on the chart: the site's own panel, gold edge and all */
.km-strip{background:linear-gradient(var(--panel),var(--panel2));border:1px solid var(--frame2,#a8823f);box-shadow:inset 0 1px 0 rgba(255,220,150,.08)}
.kms-h b{color:var(--gold1,#fff2c2)}.kms-h span{color:var(--dim)}
.kms-k{background:rgba(0,0,0,.28);border-color:rgba(200,168,96,.25);color:var(--txt)}.kms-k:hover{border-color:var(--gold2);background:rgba(255,179,71,.08)}
/* phones: sheets rise from the bottom and never pass the visible screen */
@media(max-width:600px){.gw-ov{align-items:flex-end;padding:0}.gw-ov .gw-modal{width:100%;border-radius:16px 16px 0 0;max-height:92dvh;padding-bottom:calc(16px + env(safe-area-inset-bottom));animation:gwUp .22s ease-out}}
@keyframes gwUp{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}

.kc.kc-sheet{width:min(380px,100%)!important}

/* ===================== design review (10-07, round 4) ===================== */
.gw-fld{display:grid;gap:4px}.gw-fld>span:first-child{font-size:14px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}
/* the destructive button is red everywhere, not only inside the liquidate panel */

/* phones: the signed-in header never pushes the page sideways */
html,body{overflow-x:clip}

/* the slow-chain notice where it can be seen */
.rpc-banner.on{position:sticky;top:0;z-index:21}
/* tall sheets inside the visible screen on iPhone */

/* fixed things at the bottom never cover the page or each other */
body:has(.bb-tray:not([hidden])){padding-bottom:calc(76px + max(var(--tabbar-h),var(--safe-b)))}

/* Santa's pixel font reads far smaller than its size: the 10-07 parts get readable minimums */
html:not([data-brand="valhalla"]) .pts-badge.sm,html:not([data-brand="valhalla"]) .any-sg-tag,html:not([data-brand="valhalla"]) .hdr-bal i{font-size:15px}
html:not([data-brand="valhalla"]) .py-tiles span,html:not([data-brand="valhalla"]) .any-stats span,html:not([data-brand="valhalla"]) .yl-style span,html:not([data-brand="valhalla"]) .ge-row .pr .mc-m,html:not([data-brand="valhalla"]) .cl-row small,html:not([data-brand="valhalla"]) .any-sg small,html:not([data-brand="valhalla"]) .ft-card small{font-size:14px}
html:not([data-brand="valhalla"]) .cs-tile span,html:not([data-brand="valhalla"]) .sw-keys,html:not([data-brand="valhalla"]) .turbo-btn,html:not([data-brand="valhalla"]) .pnl-chip{font-size:15px}
/* contrast */
.kc-grid span,.kc-tr span,.kc-tr em{color:#9aa4b2}.any-sg small{color:var(--dim)}.pl-step{opacity:.85;filter:grayscale(1)}.pl-step.on,.pl-step.done{filter:none;opacity:1}
.pc-grad span{color:#1a0f02;text-shadow:none}
/* reach: small controls keep their look and get a 36px hit area */
.km::before,.kc-x::before,.kc-also button::before,.bb-x::before,.turbo-btn::before,.pnl-chip::before,.any-chip::before,.gw-raiders a::before,.oc-tools .tfs button::before{content:'';position:absolute;inset:-6px}
.bb-x,.turbo-btn,.pnl-chip,.any-chip,.gw-raiders a,.oc-tools .tfs button{position:relative}
/* KOL callout near the left edge opens to the right */
.km-left .km-call{left:-8px;transform:none}.km-left .km-call::after{left:14px;margin-left:0}
.km-banner{top:auto;bottom:36px}
/* reduced motion: the snow, pings, shimmers, sheet entrances and hover lifts all rest */
@media(prefers-reduced-motion:reduce){body::after,.gw-tag i,.any-skel,.yl-card-wrap.busy::after,.gw-ov .gw-modal,.vb-modal,.nav-menu,.km-fresh,.km-call,.km-banner{animation:none!important}.pc:hover,.lf-pre:hover,.yl-style:hover{transform:none}}
.any-sg:focus-visible{outline:2px solid var(--gold2);outline-offset:-2px}
/* UX audit 1009: narrow phones (320px) — nothing may sit past the right edge */

@media(max-width:420px){.king-strip .king-id b{flex-wrap:wrap;white-space:normal;row-gap:4px}}
.ge-launchbox #lfBuy{max-width:100%;white-space:normal;overflow-wrap:anywhere;height:auto;min-height:38px}
.ge-launchbox .ge-tabs{flex-wrap:wrap;max-width:100%}#lfShortTxt{overflow-wrap:anywhere}
.vb-overlay>[tabindex="-1"]:focus{outline:none}
@media(max-width:400px){.ge-cup .cup-row{grid-template-columns:16px 22px minmax(0,1fr) 50px;row-gap:2px}.ge-cup .cup-row .cz{grid-column:3/-1;justify-items:start}}
.gw-who small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:480px){.pb-row{grid-template-columns:24px 28px minmax(0,1fr) minmax(64px,24%);gap:7px}}
@media(max-width:700px){.ge-th span.cr-h{display:block}} /* the launcher record: its rows hide Mcap on phones, so its header hides Mcap too, not the board's 5th column */
/* a holder's side of a hooked coin (lock / take the crown / claim): app.js renderMine */
.tc-mine{gap:7px}.hm-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.hm-row>span:first-child{color:var(--dim);min-width:0}.hm-row b{color:var(--yel,#ffd76a)}.hm-row .btn{margin-left:auto}
.hm-form{display:grid;gap:7px;padding:8px 0;border-top:1px solid rgba(255,215,106,.15);border-bottom:1px solid rgba(255,215,106,.15)}.hm-amt{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.hm-amt>span{color:var(--dim)}
.hm-amt input,.hm-dn input{background:rgba(0,0,0,.35);border:1px solid rgba(200,168,96,.35);border-radius:6px;color:var(--txt);font:inherit;padding:6px 8px;min-width:0}.hm-amt input{width:11em;max-width:100%}.hm-dn{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--dim)}.hm-dn input{width:5em}
.hm-days{align-items:center}.hm-st:empty{display:none}.hm-st{font-size:13px}.tc-mine .btn[disabled]{opacity:.5;cursor:not-allowed}
.pnl-hk{display:grid;gap:6px;margin-top:10px}.pnl-hk-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:13px}.pnl-hk-row a{display:grid;color:inherit;text-decoration:none}.pnl-hk-row small{color:var(--dim)}.pnl-hk-row .hm-st{grid-column:1/-1}
@media(max-width:480px){.hm-row .btn{margin-left:0;width:100%}.tc-mine .hm-form>.btn{width:100%}.hm-amt input{width:100%}.pnl-hk-row{grid-template-columns:minmax(0,1fr) auto}.pnl-hk-row .btn{grid-column:1/-1}}
/* Secret Santa (gift mode) panel on a coin's page */
#geGift{background:linear-gradient(135deg,rgba(200,40,40,.10),var(--fill) 60%)}.ge-gift{background:var(--fill);padding:var(--sp-3);margin:0 0 var(--sp-3);border-radius:var(--r-ctl)}.ge-gift:empty{display:none} /* a group in the coin panel, not a bordered card in it (owner 10-24) */
.gg-head{font-size:var(--fs-sm);margin-bottom:var(--sp-2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gg-head .ic{width:20px;height:20px}.gg-t{display:inline-flex;align-items:center;gap:6px;margin-right:auto;font:700 var(--fs-h4)/1.2 var(--font-display);color:var(--gold-txt)}.gg-head .chip b{color:var(--num);font-variant-numeric:tabular-nums}.gg-bad{color:var(--red)}
.gg-list{margin-top:8px;display:grid;gap:4px;max-height:260px;overflow:auto}.gg-row{font-size:14px;overflow-wrap:anywhere}.gg-row small{color:var(--dim);display:block}
.gg-you{color:var(--gold-txt)}.gg-naughty{margin-top:8px;font-size:var(--fs-sm)}.gg-naughty summary{cursor:pointer;color:var(--dim);min-height:36px;display:flex;align-items:center}.gg-naughty .mono{display:inline-block;margin:2px 6px 0 0}
.q-up[hidden]{display:none}

/* ---- Pulse, pump-style (10-15): solid columns over the art, sticky headers, dense rows, live trade flashes */
#s-pulse .pulse-cols{gap:10px}
#s-pulse .pulse-col{background:var(--panel-bg);border:1px solid var(--border);border-radius:var(--r-panel);padding:0;overflow:hidden;box-shadow:var(--shadow-panel)}
#s-pulse .pulse-col h3{position:sticky;top:0;z-index:2;margin:0;padding:10px 14px;background:#15100a;border-bottom:1px solid var(--line);font:600 var(--fs-dense)/1.2 var(--font-ui);color:var(--txt)}
#s-pulse .pulse-col h3 .pc-n{background:var(--fill-2);color:var(--dim);border-radius:var(--r-pill);padding:2px 8px;font-size:var(--fs-cap);font-weight:600}
#s-pulse .pc-list{gap:0;height:calc(100vh - 250px);min-height:420px;max-height:none;padding:0;scrollbar-width:thin;overflow-y:auto}
#s-pulse .pc{grid-template-columns:48px minmax(0,1fr) auto;gap:12px;padding:10px 14px;align-items:center;border-radius:0;border:0;border-bottom:1px solid var(--line);background:transparent;transition:background var(--dur)}
#s-pulse .pc:hover{background:#171109}
#s-pulse .pc-av{position:relative;width:48px;height:48px}
#s-pulse .pc-ic{width:48px;height:48px;border-radius:10px;border:1px solid var(--border)}
#s-pulse .pc-ven{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);font-style:normal;font-size:9px;font-weight:700;letter-spacing:.3px;line-height:1;padding:2px 5px;border-radius:5px;background:#2a1f10;color:#ffd06a;border:1px solid #4a3818;white-space:nowrap}
#s-pulse .pc-ven-pump{background:#0f3d24;color:#7dffb0;border-color:#1f6b42}#s-pulse .pc-ven-dbc{background:#2a1450;color:#d1b4ff;border-color:#4b2c84}#s-pulse .pc-ven-launchlab{background:#0e2f4a;color:#9fd6ff;border-color:#21537c}
#s-pulse .pc-l1{gap:8px}#s-pulse .pc-l1 b{font-size:var(--fs-body);font-weight:700}
#s-pulse .pc-nm{min-width:0;color:var(--dim);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis}
#s-pulse .pc-l2{gap:2px 10px;align-items:center;font-size:var(--fs-sm)}#s-pulse .pc-l2 .ic{width:12px;height:12px;vertical-align:-1px;margin-right:3px;opacity:.7}#s-pulse .pc-age{font-size:var(--fs-sm)}#s-pulse .pc-tag{font-size:11px}
#s-pulse .pc-grad{height:5px;border-radius:3px;margin-top:5px}#s-pulse .pc-grad span{display:none}
#s-pulse .pc-r{display:grid;grid-template-columns:auto auto;justify-items:end;align-items:baseline;gap:4px 8px;min-width:84px}#s-pulse .pc-r>.pc-buy{grid-column:1/-1} /* design v2: market cap and its move on one line, Buy under them (rows were ~104px) */
#s-pulse .pc-mc{display:flex;align-items:baseline;gap:4px;font-variant-numeric:tabular-nums}#s-pulse .pc-mc small{color:var(--mute);font-size:11px}#s-pulse .pc-mc b{color:var(--num);font-size:var(--fs-body)}
#s-pulse .pc-chg{font-size:var(--fs-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--dim)}#s-pulse .pc-chg.up{color:#5fe08a}#s-pulse .pc-chg.dn{color:#ff7b7b}#s-pulse .pc-chg.pc-pct{color:#ffb35c}
#s-pulse .pc-buy{display:inline-flex;align-items:center;gap:3px;min-height:var(--ctl-h-sm);padding:0 10px;margin-top:2px;border-radius:var(--r-ctl);border:1px solid #6b5420;background:#2a1f0c;color:var(--gold-txt);font:700 var(--fs-sm)/1 var(--font-ui);cursor:pointer;font-variant-numeric:tabular-nums}
#s-pulse .pc-buy .ic{width:13px;height:13px}#s-pulse .pc:hover .pc-buy,#s-pulse .pc-buy:focus-visible{background:linear-gradient(#ffd77a,#e8a93a);color:#2a1806;border-color:#ffd77a;opacity:1}
#s-pulse .pc-tick{height:0;overflow:hidden;font-size:11.5px;font-weight:700;opacity:0;transition:opacity .25s,height .25s}#s-pulse .pc-tick.on{height:15px;opacity:1;margin-top:3px}#s-pulse .pc-tick.up{color:#5fe08a}#s-pulse .pc-tick.dn{color:#ff7b7b}
@keyframes pcFb{0%{background:rgba(70,220,120,.32)}100%{background:transparent}}@keyframes pcFs{0%{background:rgba(255,90,90,.28)}100%{background:transparent}}
#s-pulse .pc.pc-fb{animation:pcFb 1.4s ease-out}#s-pulse .pc.pc-fs{animation:pcFs 1.4s ease-out}
@media (prefers-reduced-motion:reduce){#s-pulse .pc.pc-fb,#s-pulse .pc.pc-fs{animation:none}}
@media (min-width:981px) and (max-width:1280px){#s-pulse .pc{grid-template-columns:40px minmax(0,1fr) auto;gap:8px;padding:8px 10px}#s-pulse .pc-av,#s-pulse .pc-ic{width:40px;height:40px}#s-pulse .pc-nm,#s-pulse .pc-mc small{display:none}#s-pulse .pc-r{min-width:0}} /* three columns at laptop widths: the name and the MC label give way so a row stays two lines */
@media (max-width:980px){#s-pulse .pc-list{height:auto;min-height:0;max-height:none}}@media (max-width:760px){#s-pulse .pulse-head{margin-bottom:var(--sp-2)}#s-pulse .pulse-head .lq-title{font-size:var(--fs-h3)}.pulse-sub{margin-right:0;margin-left:auto}.pulse-amt{margin-right:auto}}@media (max-width:760px){#s-pulse .pc{grid-template-columns:44px minmax(0,1fr) auto;gap:10px;padding:10px 12px}#s-pulse .pc-av,#s-pulse .pc-ic{width:44px;height:44px}#s-pulse .pc-buy{min-height:44px;min-width:56px}}

/* ---- Pulse, alive (10-15): particles canvas, live tape, heat, counting market caps, arrivals, graduation */
.pfx-cv{position:fixed;inset:0;pointer-events:none;z-index:60}
.pfx-tape{display:flex;align-items:center;gap:10px;min-height:var(--ctl-h);margin:0 0 var(--sp-3);padding:4px 10px;background:#0d0a07;border:1px solid var(--line);border-radius:var(--r-panel);overflow:hidden}
.pfx-live{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:12px;letter-spacing:1px;color:#ff5d5d;flex:none}.pfx-live i{width:8px;height:8px;border-radius:50%;background:#ff3b3b;box-shadow:0 0 0 0 rgba(255,59,59,.7);animation:pfxDot 1.6s infinite}
@keyframes pfxDot{0%{box-shadow:0 0 0 0 rgba(255,59,59,.7)}70%{box-shadow:0 0 0 9px rgba(255,59,59,0)}100%{box-shadow:0 0 0 0 rgba(255,59,59,0)}}
.pfx-rate{flex:none;font-size:12px;color:#b9a67e;font-variant-numeric:tabular-nums;min-width:120px}
.pfx-track{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.pfx-run{display:flex;gap:8px;white-space:nowrap}
.pfx-pill{display:inline-flex;align-items:center;gap:6px;flex:none;padding:3px 9px 3px 4px;border-radius:999px;font-size:12px;text-decoration:none;color:#f3e9d2;border:1px solid #2e2414;background:#15100a}
.pfx-pill img{width:20px;height:20px;border-radius:50%;object-fit:cover}.pfx-pill b{font-size:10.5px;letter-spacing:.5px}.pfx-pill.b b{color:#5fe08a}.pfx-pill.s b{color:#ff7b7b}.pfx-pill em{font-style:normal;font-weight:700}.pfx-pill small{color:#8d7b5b}
.pfx-pill.b{border-color:rgba(95,224,138,.35)}.pfx-pill.s{border-color:rgba(255,123,123,.3)}
.pfx-pill.pfx-in{animation:pfxIn .55s cubic-bezier(.2,1.4,.4,1)}@keyframes pfxIn{0%{transform:translateX(-30px) scale(.6);opacity:0}100%{transform:none;opacity:1}}
.pfx-pill.pfx-whale{background:linear-gradient(90deg,#3a2a08,#15100a);border-color:#ffd24a;box-shadow:0 0 12px rgba(255,210,74,.45)}
#s-pulse .pc-last{color:#ffb35c;font-weight:700}#s-pulse .pc-last:empty{display:none}
#s-pulse .pc.pc-hot{box-shadow:inset 3px 0 0 #ffb347;background:linear-gradient(90deg,rgba(255,160,40,.07),transparent 55%)}
#s-pulse .pc.pc-fire{box-shadow:inset 3px 0 0 #ffd24a,inset 0 0 22px rgba(255,180,60,.18);animation:pcFire 1.2s ease-in-out infinite alternate}
@keyframes pcFire{0%{background:linear-gradient(90deg,rgba(255,170,50,.10),transparent 60%)}100%{background:linear-gradient(90deg,rgba(255,200,80,.20),transparent 70%)}}
#s-pulse .pc.pc-in{animation:pcIn .9s cubic-bezier(.2,1.3,.4,1)}@keyframes pcIn{0%{transform:translateX(-24px);opacity:0;box-shadow:inset 0 0 0 2px #ffd24a}60%{opacity:1}100%{transform:none;box-shadow:inset 0 0 0 0 transparent}}
#s-pulse .pc.pc-up .pc-mc b{animation:pcUp 1.2s ease-out}#s-pulse .pc.pc-dn .pc-mc b{animation:pcDn 1.2s ease-out}
@keyframes pcUp{0%{color:#7dffb0;text-shadow:0 0 12px rgba(95,224,138,.9);transform:scale(1.18)}100%{color:#f3e9d2;text-shadow:none;transform:none}}
@keyframes pcDn{0%{color:#ff8f8f;text-shadow:0 0 10px rgba(255,100,100,.8);transform:scale(1.1)}100%{color:#f3e9d2;text-shadow:none;transform:none}}
#s-pulse .pc-mc b{display:inline-block;transform-origin:right center}
#s-pulse .pc.pc-grad-now{animation:pcGrad 2.4s ease-out}@keyframes pcGrad{0%{background:rgba(255,210,74,.35)}100%{background:transparent}}
#s-pulse .pc-grad i{overflow:hidden}#s-pulse .pc-grad i::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 0 35%,rgba(255,255,255,.55) 50%,transparent 65% 100%);transform:translateX(-100%);animation:pcShine 2.6s ease-in-out infinite}
@keyframes pcShine{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
#s-pulse .pc-buy{position:relative;overflow:hidden}#s-pulse .pc:hover .pc-buy::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.65) 50%,transparent 70%);animation:pcShine .9s ease-out}
@media (prefers-reduced-motion:reduce){.pfx-live i,#s-pulse .pc.pc-fire,#s-pulse .pc-grad i::after,.pfx-pill.pfx-in,#s-pulse .pc.pc-in{animation:none}}
@media (max-width:760px){.pfx-rate{display:none}.pfx-tape{margin:0 0 8px}}

/* ---- Pulse: filling short columns (10-15) — the Race to the Mainland, the next launch slot, live trades */
#s-pulse .pfx-fill{padding:12px 14px;border-bottom:1px solid #1d160d}
#s-pulse .pfx-fh{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}#s-pulse .pfx-fh b{color:var(--txt);font-size:var(--fs-dense);font-weight:600}#s-pulse .pfx-fh small{color:var(--dim);font-size:var(--fs-cap)}
#s-pulse .pfx-lane{display:grid;grid-template-columns:22px 1fr 86px;align-items:center;gap:10px;padding:7px 0;text-decoration:none;color:inherit}
#s-pulse .pfx-pos{color:#8d7b5b;font-weight:800;font-variant-numeric:tabular-nums}#s-pulse .pfx-lane:first-of-type .pfx-pos{color:#ffd24a}
#s-pulse .pfx-track{position:relative;height:30px;border-radius:15px;background:repeating-linear-gradient(90deg,#17110a 0 18px,#1c150c 18px 36px);border:1px solid #2e2414;overflow:visible}
#s-pulse .pfx-trail{position:absolute;inset:0 auto 0 0;border-radius:15px;background:linear-gradient(90deg,rgba(192,72,28,.15),rgba(255,154,60,.55));box-shadow:0 0 14px rgba(255,154,60,.35)}
#s-pulse .pfx-runner{position:absolute;top:1px;width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid #ffd24a;box-shadow:0 0 10px rgba(255,210,74,.7);animation:pfxBob 1.6s ease-in-out infinite}
@keyframes pfxBob{50%{transform:translateY(-3px)}}
#s-pulse .pfx-flag{position:absolute;right:-1px;top:-4px;bottom:-4px;width:8px;border-radius:2px;background:repeating-conic-gradient(#f3e9d2 0 25%,#111 0 50%) 0 0/8px 8px;box-shadow:0 0 8px rgba(255,255,255,.25)}
#s-pulse .pfx-lp{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}#s-pulse .pfx-lp b{color:#f3e9d2;font-size:13px}#s-pulse .pfx-lp small{color:#ffb35c;font-weight:700}
#s-pulse .pfx-lane:hover .pfx-track{border-color:#6b5420}
#s-pulse .pfx-slot-in{display:flex;align-items:center;gap:12px;padding:14px;border:1.5px dashed rgba(255,208,106,.45);border-radius:12px;background:radial-gradient(circle at 20% 50%,rgba(255,208,106,.08),transparent 60%);animation:pfxSlot 2.4s ease-in-out infinite}
@keyframes pfxSlot{50%{border-color:rgba(255,208,106,.85);box-shadow:0 0 18px rgba(255,208,106,.15)}}
#s-pulse .pfx-slot-in>.ic{width:28px;height:28px;flex:none}#s-pulse .pfx-slot-in>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}#s-pulse .pfx-slot-in b{color:#ffd06a}#s-pulse .pfx-slot-in small{color:#8d7b5b;font-size:12px}
#s-pulse .pfx-launch{flex:none;min-height:36px;padding:6px 14px;border-radius:9px;border:1px solid #ffd77a;background:linear-gradient(#ffd77a,#e8a93a);color:#2a1806;font-weight:800;cursor:pointer}
#s-pulse .pfx-fr{display:grid;grid-template-columns:24px 38px minmax(0,1fr) 84px 110px 34px;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px dashed #1d160d;text-decoration:none;color:#f3e9d2;font-size:12.5px;font-variant-numeric:tabular-nums}
#s-pulse .pfx-fr img{width:24px;height:24px;border-radius:50%;object-fit:cover}#s-pulse .pfx-fr b{font-size:10.5px;letter-spacing:.5px}#s-pulse .pfx-fr.b b{color:#5fe08a}#s-pulse .pfx-fr.s b{color:#ff7b7b}
#s-pulse .pfx-fr em{font-style:normal;font-weight:700;text-align:right;white-space:nowrap}#s-pulse .pfx-fr small{color:#8d7b5b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}#s-pulse .pfx-fr time{color:#6f6048;text-align:right}
#s-pulse .pfx-fr:first-of-type{animation:pfxIn .5s ease-out}#s-pulse .pfx-fr:hover{background:#171109}
@media (prefers-reduced-motion:reduce){#s-pulse .pfx-runner,#s-pulse .pfx-slot-in,#s-pulse .pfx-fr:first-of-type{animation:none}}
#s-pulse .pfx-big .pfx-fr em{color:#ffd24a}#s-pulse .pfx-big .pfx-fr:first-of-type{background:linear-gradient(90deg,rgba(255,210,74,.10),transparent 70%)}

/* Pulse feeds readable (owner 10-15: "token text too small cant read"); design v2 retyped the rows from VT323 to Inter: 14px rows, the ticker
   the loudest thing on the row, names and times off the near-black (#8d7b5b / #6f6048 were under 4.5:1) */
#s-pulse .pfx-fr{grid-template-columns:28px 44px minmax(0,1fr) 92px 120px 40px;gap:10px;min-height:40px;padding:4px 4px;font-size:var(--fs-sm);line-height:1.2}
#s-pulse .pfx-fr img{width:28px;height:28px}#s-pulse .pfx-fr b{font-size:11px;letter-spacing:.06em}
#s-pulse .pfx-fr span{font-size:var(--fs-dense);font-weight:700;color:var(--num);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#s-pulse .pfx-fr em{font-size:var(--fs-dense)}#s-pulse .pfx-fr small{font-size:var(--fs-sm);color:var(--dim);max-width:120px}#s-pulse .pfx-fr time{font-size:var(--fs-sm);color:var(--dim)}
#s-pulse .pfx-lp b{font-size:var(--fs-dense)}#s-pulse .pfx-lp small{font-size:var(--fs-sm)}#s-pulse .pfx-pos{font-size:var(--fs-dense)}#s-pulse .pfx-lane{grid-template-columns:22px 1fr 96px}
@media (max-width:760px){#s-pulse .pfx-fr{grid-template-columns:28px 40px minmax(0,1fr) 92px 36px}#s-pulse .pfx-fr small{display:none}}

/* any pump coin as the pair (launch form, pump.fun venue) */
.lf-anypair{border-style:dashed!important;opacity:.9}.lf-anybox{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 10px}.lf-anybox[hidden]{display:none}
.lf-anybox input{flex:1;min-width:220px;min-height:40px;padding:8px 10px;background:#120d08;color:#f3e9d2;border:1px solid #4a3818;border-radius:8px;font:14px/1.3 ui-monospace,monospace}
.lf-anybox .note{flex-basis:100%;margin:0}
.lf-anymine{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.lf-anymine:empty{display:none}
/* ---- bulk airdrop panel on the creator dashboard (app.js renderDropPanel) */
.cd-drop .dp-grid{display:grid;gap:10px;padding:4px 0 6px}.dp-l{display:flex;flex-direction:column;gap:4px;font-size:14px}.dp-l select{min-height:40px;max-width:520px}
.dp-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dp-row .ge-tabs{flex-wrap:wrap}.dp-row input[data-dp="amt"]{width:160px;min-height:38px}
.cd-drop textarea{width:100%;box-sizing:border-box;min-height:88px;padding:9px 11px;background:#120d08;color:#f3e9d2;border:1px solid #4a3818;border-radius:10px;font:13px/1.4 ui-monospace,monospace;resize:vertical}.cd-drop textarea:focus,.cd-drop input:focus{outline:2px solid #ffd76a;outline-offset:1px}
.dp-file{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}.dp-file .btn{cursor:pointer}
[data-dpbox="holders"]:not([hidden]){display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cd-drop [hidden]{display:none!important} /* a display rule must never beat [hidden] */[data-dpbox="holders"] input[data-dp="hmint"]{flex:1;min-width:260px;min-height:40px;padding:8px 10px;background:#120d08;color:#f3e9d2;border:1px solid #4a3818;border-radius:8px;font:13px ui-monospace,monospace}
.dp-inline{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:#d6c39b}.dp-inline input{width:84px;min-height:34px}
.dp-mode{display:grid;gap:6px}.dp-mode .lf-x{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid #3a2c16;border-radius:10px;background:#140f09;cursor:pointer;font-size:14px}.dp-mode .lf-x:has(input:checked){border-color:#ffd24a;background:rgba(255,210,74,.07)}.dp-mode b{color:#ffd06a}
.dp-acts{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dp-acts .st{font-size:14px;color:#ffb3a8}
.dp-plan{border-top:1px dashed #3a2c16;padding-top:10px;display:grid;gap:10px}.dp-stats{margin:0}
.dp-sample{display:flex;flex-wrap:wrap;gap:6px;font-size:13px}.dp-sample span{padding:4px 8px;border:1px solid #2e2414;border-radius:999px;background:#0f0a06}.dp-sample code{color:#d6c39b}.dp-sample i{font-style:normal;color:#ff9a3c;font-size:11px}
.dp-go{display:grid;gap:8px}.dp-go .cg-big{width:100%}.dp-go .st{font-size:14px;color:#e8dcc0}.dp-go .st b{color:#5fe08a}
.dp-prog{height:8px;border-radius:999px;background:#1b140b;border:1px solid #3a2c16;overflow:hidden}.dp-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#5fe08a,#ffd24a);transition:width .4s}
.dp-mine{margin-top:8px}.dp-mine-h{margin:6px 0 4px}.dp-mine-row{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:10px;align-items:center;padding:6px 0;border-top:1px dotted #2a2012;font-size:13px}.dp-mine-row b{color:#ffd06a}.dp-mine-row small{color:#8d7b5b}
@media (max-width:760px){.dp-row input[data-dp="amt"]{width:100%}.dp-mine-row{grid-template-columns:1fr 1fr}}

/* Pair Radar (lib/radar.mjs): a row of cards on one strict grid — identity and the change pill, three stats with labels under them, the
   'paired here' line on its own row, the action full width (owner 10-16: the footer text wrapped around the button) */
.radar{margin:4px 0 14px;padding:14px 14px 16px;border:1px solid var(--edge);border-radius:14px;background:linear-gradient(180deg,rgba(255,200,80,.06),rgba(0,0,0,.24))}
.rd-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 2px 12px}.rd-head b{font-size:14px;letter-spacing:.02em;color:#ffe7a8}.rd-head span{opacity:.72;font-size:13px}.rd-head em{color:#e9b44c;font-style:normal}
.rd-row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 6px;scrollbar-width:thin}
.rd-card{flex:0 0 288px;scroll-snap-align:start;display:grid;grid-template-rows:auto auto auto auto;gap:12px;padding:14px;border:1px solid rgba(255,206,92,.18);border-radius:12px;background:linear-gradient(180deg,rgba(28,21,12,.95),rgba(14,11,7,.95));transition:transform .15s,border-color .15s,box-shadow .15s}
.rd-card:hover{transform:translateY(-2px);border-color:rgba(255,200,80,.5);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.rd-card.hot{border-color:rgba(255,170,60,.65);box-shadow:0 0 0 1px rgba(255,170,60,.18),0 8px 26px rgba(255,140,30,.12)}
.rd-top{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center}
.rd-top img{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#000;box-shadow:0 0 0 1px rgba(255,206,92,.25)}
.rd-id{display:flex;flex-direction:column;gap:3px;min-width:0}.rd-id b{font-size:15px;line-height:1.1;color:#fff3d6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rd-id small{font-size:11.5px;line-height:1.2;color:#b8a582;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-chg{font-size:13px;font-weight:700;line-height:1;padding:6px 8px;border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap}.rd-chg.up{color:#7dffa0;background:rgba(60,200,110,.14)}.rd-chg.dn{color:#ff8a8a;background:rgba(220,70,70,.14)}
.rd-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,206,92,.12);border-bottom:1px solid rgba(255,206,92,.12);padding:10px 0}
.rd-stats>div{display:flex;flex-direction:column;gap:5px;min-width:0;padding:0 10px}.rd-stats>div:first-child{padding-left:0}.rd-stats>div+div{border-left:1px solid rgba(255,206,92,.10)}
.rd-stats b{font-size:14px;line-height:1;color:#ffe7a8;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rd-stats small{font-size:10px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:#8f7d5c;white-space:nowrap}
.rd-here{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1;color:#c9b48c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rd-here i{width:7px;height:7px;border-radius:50%;background:#e9b44c;flex:none}.rd-here.first{color:#8fe3a0}.rd-here.first i{background:#4fd77a;box-shadow:0 0 8px rgba(79,215,122,.7)}
.rd-go{width:100%;padding:9px 10px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-ca{font-size:10.5px;opacity:.65;font-weight:400;margin-left:3px}
@media (max-width:600px){.rd-card{flex-basis:78vw}}
.lf-mn{font-style:normal;font-size:10.5px;opacity:.7;margin-left:2px;font-variant-numeric:tabular-nums}
/* Live trades: every row is its own grid, so the amount and the name sit in FIXED columns (an auto column sized to each row's name moved the
   amounts left and right, and a row with no name collapsed it: owner 10-16). The amount is right-aligned in its column, the name left-aligned. */
#s-pulse .pfx-fr small{max-width:none;min-width:0}
/* Board header (owner 10-16: "a cleaner AAA+ way to use this real estate"). Two bands, one job each:
   1. the title on the left, the board's ACTIONS on the right — quiet secondary buttons, then the one gold primary (Launch a coin) last;
   2. one control bar for the list itself — tiers, search, sort — every piece the same 44px height, so their edges line up.
   A hairline divides the two. The panel is a size container, so the bar folds by the board's own width, not the window's. */
#ecoBoard{container-type:inline-size;container-name:geboard}
#ecoBoard .ge-boardhead .ge-acts,#ecoBoard .ge-boardhead .ge-acts i.ic{color:inherit;font:inherit} /* the title block's span/i styles are not the buttons' */
#ecoBoard .ge-boardhead .ge-tt{min-width:0}
#ecoFind{background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23a8916b' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m20 20-4.6-4.6'/%3E%3C/svg%3E") no-repeat 12px 50%;padding-left:38px!important}
#ecoFind::-webkit-search-cancel-button{filter:sepia(1) saturate(2) hue-rotate(-10deg);cursor:pointer}
@media (min-width:761px){
  #ecoBoard .ge-boardhead{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:16px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,208,106,.14)}
  #ecoBoard .ge-boardhead .ge-tt span{display:block;margin-top:2px;text-wrap:balance}
  #ecoBoard .ge-boardhead .ge-acts{display:flex;gap:8px;margin:0;align-items:center}
  #ecoBoard .ge-boardhead .ge-acts .btn{height:40px;min-height:40px;box-sizing:border-box;padding:0 16px;gap:8px;margin:0}
  #ecoBoard .ge-boardhead .ge-acts .btn.sec{background:rgba(255,255,255,.02);box-shadow:none;border:1px solid var(--edge)}
  #ecoBoard .ge-boardhead .ge-acts .btn.sec:hover{border-color:var(--gold);color:#fff2c2;background:rgba(255,190,80,.06)}
  #ecoBoard .ge-boardhead .ge-acts .btn.sec.on{border-color:var(--gold);color:var(--gold)}
  #ecoBoard .ge-boardhead .ge-acts .ge-launch{padding:0 22px;margin-left:4px}
  #s-eco .ge-tools{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;grid-template-areas:"tabs find sort";gap:10px;align-items:stretch;margin-bottom:12px}
  #s-eco .ge-tools>.ge-tabs{grid-area:tabs;height:44px;box-sizing:border-box;align-items:stretch;padding:3px;border-radius:6px}
  #s-eco .ge-tools>.ge-tabs button{display:inline-flex;align-items:center;gap:8px;padding:0 14px;border-radius:4px}
  #s-eco .ge-tools>.ge-tabs button i{font-style:normal;font-size:14px;opacity:.75}
  #s-eco .ge-tools>#ecoFind{grid-area:find;width:100%;max-width:none;min-width:0;box-sizing:border-box;height:44px;border-radius:6px}
  #s-eco .ge-tools>.ge-sort{grid-area:sort;min-width:0;height:44px;display:flex;align-items:center;gap:0;border:2px solid var(--edge);border-radius:6px;background:var(--ink);box-sizing:border-box;padding-left:12px}
  #s-eco .ge-tools>.ge-sort>span{color:var(--dim);font-size:14px;letter-spacing:.04em;padding-right:10px;border-right:1px solid var(--edge);line-height:24px}
  #s-eco .ge-tools>.ge-sort .dd{width:210px}
  #s-eco .ge-tools>.ge-sort .dd-btn{width:100%;height:40px;box-sizing:border-box;border:0;background:transparent;border-radius:0 4px 4px 0}
  #s-eco .ge-tools>.ge-sort:hover,#s-eco .ge-tools>.ge-sort:focus-within{border-color:#ffb347}
  #s-eco .ge-tools>.ge-sort .dd-sizer{display:none}
}
/* a narrower board: the actions take their own line under the title, and search gets the second row of the bar to itself */
@media (min-width:761px){@container geboard (max-width:980px){ /* desktop only: the phone has its own layout in mobile.css */
  #ecoBoard .ge-boardhead{grid-template-columns:minmax(0,1fr)}
  #ecoBoard .ge-boardhead .ge-acts{justify-content:flex-end;flex-wrap:wrap}
  #s-eco .ge-tools{grid-template-columns:minmax(0,1fr) max-content;grid-template-areas:"tabs tabs" "find sort"}
  #s-eco .ge-tools>.ge-tabs{justify-self:start}
}}
/* Board item cell (owner 10-16: the badges wrapped onto two and three lines once the number columns took their real width): line 1 is the
   ticker and its badges on ONE line that never wraps, every badge compact (13px, 22px tall); line 2 the name, clipped with an ellipsis.
   As the column narrows the badges give way in order: socials (on the coin's own page anyway), then the long words (Rewards → 3%, the crest
   and the island name to their icons). */
.ge-wide .ge-row .it b{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;min-width:0;line-height:22px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 16px),transparent)} /* a line that still runs long fades out, never cuts a badge in half */
.ge-wide .ge-row .it b>*{flex:none;margin:0!important}
.ge-wide .ge-row .it b .ge-mode,.ge-wide .ge-row .it b .sm-crest,.ge-wide .ge-row .it b .ge-isle,.ge-wide .ge-row .it b .sg{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 7px;font-size:13px;line-height:1;border-radius:999px;box-sizing:border-box;vertical-align:middle}
.ge-wide .ge-row .it b .ge-mode .ic,.ge-wide .ge-row .it b .sm-crest .ic,.ge-wide .ge-row .it b .sg .ic{width:14px;height:14px;font-size:14px}
.ge-wide .ge-row .it b .soc{display:inline-flex;gap:4px}.ge-wide .ge-row .it b .soc-b{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.ge-wide .ge-row .it b .soc-b .ic{width:12px;height:12px}
.ge-wide .ge-row .it small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;margin-top:3px}
@container (max-width:1380px){.ge-wide .ge-row .it b .soc{display:none}.ge-wide .ge-row .it b .ge-mode .mt,.ge-wide .ge-row .it b .sm-crest span{display:none}.ge-wide .ge-row .it b .ge-isle{font-size:0;padding:0 6px}.ge-wide .ge-row .it b .ge-isle::before{content:'Island';font-size:12px}}
@container (max-width:1100px){.ge-wide .ge-row .it b .ge-isle{display:none}} /* the tier is the tab you are on */
/* Board row line 2 (owner 10-16: the burn figure was cut off behind the name): the name shrinks and clips first; the facts after it — burned,
   LaunchLab, SANTA bought — never clip, each set off by a dot; SANTA bought gives way first when the column is narrow. */
.ge-row .it small .nm{display:flex;align-items:baseline;min-width:0;white-space:nowrap;overflow:hidden}
.ge-row .it small .nm .nmn{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ge-row .it small .nm>i{flex:none;font-style:normal}
.ge-row .it small .nm>i::before{content:'·';margin:0 6px;opacity:.45;color:#d9c79f}
.ge-row .it small .nm .gp-burnt{color:#ff9a4d}
.ge-row .it small .nm .nm-sb{color:#c9b48c}
@container (max-width:1300px){.ge-wide .ge-row .it small .nm .nm-sb{display:none}}
.ge-row .it small .nm .gp-burnt{display:inline-flex;align-items:center;gap:3px}.ge-row .it small .nm .gp-burnt .ic{width:13px;height:13px;font-size:13px} /* the flame carries 'burned'; the full figure and share of supply are on hover */
/* Launch form pickers (owner 10-16: 'no dividers, the text looks sloppy'): the eight tax modes sit in an even 4×2 grid of cells divided by
   1px rules (they wrapped freely onto a ragged second line), the four venues in a 2×2 grid of bordered cards (they were 3 + 1). */
.lf-taxmode{display:grid;grid-template-columns:1fr;gap:8px;align-items:stretch}
/* 10-18 (owner: "fix formatting"): nine modes in a 4-wide grid left a lone last tile beside an empty brown slab (the grid's own edge-coloured
   background), and "Casino bankroll" ran out of its cell. Now separate tiles, three across (9 = 3 x 3), names wrap instead of overflowing. */
.lf-taxmode .ge-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0;background:none;border:0;border-radius:0;overflow:visible}
.lf-taxmode .ge-tabs button{background:var(--ink);border:1px solid var(--edge);border-radius:8px;padding:9px 8px;min-height:46px;display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;white-space:normal;line-height:1.1;min-width:0;overflow-wrap:anywhere}
.lf-taxmode .ge-tabs button.on{border-color:var(--gold)}
.lf-taxmode .ge-tabs button:hover{background:#1d160d}.lf-taxmode .ge-tabs button.on{background:var(--gold);color:#000}
.lf-taxmode .ge-tabs button .lf-mn{opacity:.6}.lf-taxmode #lfTaxWrap{justify-self:start}
@media (max-width:520px){.lf-taxmode .ge-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.lf-taxmode .ge-tabs button{font-size:14px;padding:8px 4px}}
.lf-venues .ge-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;background:transparent;border:0;padding:0}
.lf-venues .ge-tabs button{border:1px solid var(--edge);background:var(--ink);min-height:84px;justify-content:flex-start}
.lf-venues .ge-tabs button.on{border-color:var(--gold);background:linear-gradient(180deg,rgba(255,190,70,.16),rgba(255,190,70,.06));color:#ffe7a8;box-shadow:0 0 0 1px rgba(255,190,70,.35) inset}.lf-venues .ge-tabs button.on small{color:#d9c79f} /* the selected card keeps readable text: gold tint, not the black-on-gold tab fill */
@media (max-width:520px){.lf-venues .ge-tabs{grid-template-columns:1fr}}
.dd-opt{overflow:hidden;text-overflow:ellipsis;max-width:100%;box-sizing:border-box} /* a long option (AMETHYST · $296.6K mcap) ends in an ellipsis inside its row on a phone */

/* auto exits (owner 10-16: "do not stop when tab closed") */
.ex-auto{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:10px;border:1px solid rgba(255,208,106,.28);border-radius:8px;background:rgba(255,190,80,.05);cursor:pointer}
.ex-auto input{width:18px;height:18px;margin:2px 0 0;accent-color:#ffb347}
.ex-auto b{display:block;font-size:15px;color:#ffe3a3}.ex-auto small{display:block;margin-top:3px;font-size:13px;line-height:1.35;color:var(--dim)}
.ex-sheet .ex-how{font-size:13px;line-height:1.4;color:var(--dim);margin:2px 0 0}
.ex-go{display:flex;align-items:center;gap:10px}.ex-st{font-size:13px;color:var(--dim)}
.ex-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;border:1px solid rgba(120,220,140,.45);color:#9fe39f;font-size:12px;line-height:18px}
.tc-h .linkbtn{margin-left:8px;font-size:12px}
.ex-sheet .ex-row{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;gap:10px}.ex-sheet .ex-row>span:first-child{min-width:0}
.ex-sheet .ex-row .pick-row{display:flex;flex-wrap:wrap;gap:6px}
@media (max-width:480px){.ex-sheet .ex-row{grid-template-columns:minmax(0,1fr);gap:6px}}
/* ---- Perps: Hyperliquid (perps.js) and $SANTA peer to peer (santaperps.js). Design v2 (owner 10-24: "pro trading layout… optimize real estate"),
   one look on both doors. Desktop: chart · book · ticket fill the first screen, positions under them, the ticket stays in reach while you scroll.
   761–1180px: the chart beside the ticket, the book under the ticket (it used to vanish at these widths). Phones: stats, chart, ticket, book, and a
   Long / Short dock that jumps to the ticket while it is off screen. Tabular numbers; green long, red short. */
.pp-root{display:grid;gap:var(--sp-3);font-variant-numeric:tabular-nums;--pp-up:#3ddc97;--pp-dn:#ff6b6b;--pp-h:clamp(440px,calc(100vh - 252px),760px)}
.pp-root .panel{margin:0;padding:var(--sp-3)}
.pp-root .up{color:var(--pp-up)}.pp-root .dn{color:var(--pp-dn)}
#ppHL,#spRoot{display:grid;gap:var(--sp-3);min-width:0}#ppHL[hidden],#spRoot[hidden]{display:none}#ppHL.pp-down>:not(.pp-net){display:none}
.pp-loading,.pp-fail{padding:28px;text-align:center;color:var(--dim);display:grid;gap:10px;justify-items:center}.pp-fail b{color:var(--num);font-size:var(--fs-h4)}.pp-fail p{margin:0;max-width:640px}
.pp-spin{width:22px;height:22px;border:3px solid rgba(255,208,106,.25);border-top-color:var(--gold-txt);border-radius:50%;animation:ppspin .8s linear infinite}@keyframes ppspin{to{transform:rotate(360deg)}}
/* the two venues: one segmented control (it was two 70px cards) */
.pp-venues{justify-self:start}.pp-venues>button{min-height:var(--ctl-h);padding:0 14px;gap:8px}.pp-venues b{font-weight:600}.pp-venues span{font-weight:400;color:var(--mute)}.pp-venues .on span{color:var(--dim)}
.pp-net:empty{display:none}.pp-net{padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--r-ctl);background:var(--accent-soft);font-size:var(--fs-sm);color:var(--dim)}.pp-net span{color:var(--gold-txt);font-weight:600;margin-right:8px}
/* the market strip: picker, then the figures in one row */
.pp-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5)}.pp-root .pp-head{padding:var(--sp-2) var(--sp-3)}
.pp-mkt{position:relative;flex:none}
.pp-pick{display:inline-flex;align-items:center;gap:6px;min-height:var(--ctl-h);padding:0 12px;background:var(--fill);border:1px solid var(--border);border-radius:var(--r-ctl);color:var(--txt);cursor:pointer;font:inherit;transition:border-color var(--dur) var(--ease-out),background-color var(--dur)}
.pp-pick:hover{border-color:var(--border-strong);background:var(--hover)}.pp-pick b{font:700 var(--fs-h4)/1 var(--font-ui);color:var(--num)}.pp-pick span{color:var(--dim);font-size:var(--fs-sm)}
.pp-caret{width:0;height:0;border:5px solid transparent;border-top-color:var(--dim);margin-left:4px;transform:translateY(3px)}
.pp-menu{position:absolute;z-index:60;top:calc(100% + 6px);left:0;width:min(520px,calc(100vw - 32px));padding:var(--sp-2);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-panel);box-shadow:var(--shadow-pop)}
.pp-menu input{width:100%;margin-bottom:var(--sp-2)}
.pp-list{max-height:min(60vh,460px);overflow:auto;scrollbar-width:thin}
.pp-list .pp-lh,.pp-list button{display:grid;grid-template-columns:minmax(0,1.3fr) 1fr .8fr 1fr;gap:8px;align-items:center;width:100%;min-height:36px;padding:0 8px;text-align:right;font-size:var(--fs-dense)}
.pp-list .pp-lh{position:sticky;top:0;z-index:1;min-height:28px;background:var(--panel);color:var(--dim);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.pp-list .pp-lh span:first-child,.pp-list button span:first-child{text-align:left}
.pp-list button{background:transparent;border:0;border-radius:6px;color:var(--txt);cursor:pointer;font:inherit;font-size:var(--fs-dense)}.pp-list button:hover,.pp-list button.on{background:var(--hover)}
.pp-list button i{font-style:normal;font-size:11px;color:var(--dim);border:1px solid var(--border);border-radius:4px;padding:0 4px;margin-left:6px}
.pp-stats{display:flex;flex:1 1 auto;min-width:0;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-5)}
.pp-st{display:grid;gap:2px;min-width:0}.pp-st small{color:var(--dim);font-size:var(--fs-cap);white-space:nowrap}.pp-st b{font:600 var(--fs-dense)/20px var(--font-ui);color:var(--num);white-space:nowrap}.pp-st b i{font-style:normal;font-size:var(--fs-cap);color:var(--dim);font-weight:400}
.pp-last b{font-size:var(--fs-h4);font-weight:700}
.pp-burn{margin-left:auto;text-align:right}.pp-burn b{color:#ff9d4d}
/* chart · book · ticket */
.pp-grid{display:grid;grid-template-columns:minmax(0,1fr) 288px 320px;grid-template-areas:"chart book ticket";gap:var(--sp-3);align-items:start}
.pp-grid>.pp-chart{grid-area:chart}.pp-grid>.pp-book{grid-area:book}.pp-grid>.pp-ticket{grid-area:ticket}
.pp-root .pp-chart{display:grid;grid-template-rows:auto minmax(0,1fr);gap:var(--sp-2);height:var(--pp-h);padding:var(--sp-2)}
.pp-chost{position:relative;min-height:0}
.pp-ivs,.pp-tabs{display:flex;align-items:center;gap:2px}
.pp-ivs button,.pp-tabs button{min-height:var(--ctl-h-sm);padding:0 10px;background:transparent;border:0;border-radius:6px;color:var(--dim);cursor:pointer;font:600 var(--fs-sm)/1 var(--font-ui);transition:color var(--dur),background-color var(--dur)}
.pp-ivs button:hover,.pp-tabs button:hover{color:var(--txt);background:var(--hover)}.pp-ivs button.on,.pp-tabs button.on{color:var(--gold-txt);background:var(--accent-soft)}
.pp-tabs{padding:0 0 var(--sp-2);margin-bottom:var(--sp-2);border-bottom:1px solid var(--line)}
.pp-root .pp-book{display:flex;flex-direction:column;min-width:0;height:var(--pp-h);padding:var(--sp-2);overflow:hidden}
.pp-bookbody,.pp-tradesbody{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin}.pp-bookbody[hidden],.pp-tradesbody[hidden]{display:none}
.pp-bookbody .pp-lh,.pp-lv,.pp-spread,.pp-tradesbody .pp-lh,.pp-tr{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:2px 6px;font-size:var(--fs-sm);line-height:20px;text-align:right}
.pp-bookbody .pp-lh span:first-child,.pp-lv span:first-child,.pp-spread span:first-child,.pp-tradesbody .pp-lh span:first-child,.pp-tr span:first-child{text-align:left}
.pp-bookbody .pp-lh,.pp-tradesbody .pp-lh{position:sticky;top:0;z-index:1;background:var(--panel2);color:var(--dim);font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.pp-lv{position:relative;cursor:pointer;border-radius:3px}.pp-lv>span{position:relative}.pp-lv::before{content:'';position:absolute;inset:1px 0 1px auto;width:var(--w);opacity:.16;border-radius:2px}
.pp-lv.ask span:first-child{color:var(--pp-dn)}.pp-lv.ask::before{background:var(--pp-dn)}.pp-lv.bid span:first-child{color:var(--pp-up)}.pp-lv.bid::before{background:var(--pp-up)}.pp-lv:hover{background:var(--fill-2)}
.pp-spread{color:var(--dim);border-block:1px solid var(--line);margin:3px 0;padding:4px 6px}
.pp-tr.bid span:first-child{color:var(--pp-up)}.pp-tr.ask span:first-child{color:var(--pp-dn)}
/* the ticket */
.pp-ticket{display:flex;flex-direction:column;gap:var(--sp-3);scroll-margin-top:calc(var(--header-h) + var(--sp-2))}
@media (min-width:1181px){.pp-root .pp-ticket{position:sticky;top:calc(var(--header-h) + var(--sp-3))}}
.pp-side{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:3px;background:rgba(0,0,0,.38);border:1px solid var(--line);border-radius:var(--r-ctl)}
.pp-side button{min-height:36px;border:0;border-radius:6px;background:transparent;color:var(--dim);font:700 var(--fs-body)/1 var(--font-ui);cursor:pointer;transition:background-color var(--dur),color var(--dur)}.pp-side button:hover{color:var(--txt)}
.pp-side button[data-side="buy"].on,.pp-side button[data-sside="long"].on{background:#1f6f4e;color:#eafff4}.pp-side button[data-side="sell"].on,.pp-side button[data-sside="short"].on{background:#8a2c2c;color:#ffecec}
.pp-row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.pp-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:2px;background:rgba(0,0,0,.38);border:1px solid var(--line);border-radius:var(--r-ctl)}
.pp-seg button{min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--dim);font:600 var(--fs-sm)/1 var(--font-ui);cursor:pointer}.pp-seg button.on{background:var(--accent-soft);color:var(--gold-txt)}.pp-seg button:disabled{opacity:.4;cursor:default}
.pp-f{display:grid;grid-template-columns:1fr auto;gap:6px 8px;align-items:center;font-size:var(--fs-sm);color:var(--dim)}.pp-f>input,.pp-f>.pp-in{grid-column:1/-1}
.pp-f input:not([type=range]),.pp-in input{width:100%;font-variant-numeric:tabular-nums}
.pp-f input[type=range]{grid-column:1/-1;width:100%;min-height:0;accent-color:var(--gold)}.pp-levv b{color:var(--gold-txt);font-size:var(--fs-body)}
.pp-in{display:grid;grid-template-columns:minmax(0,1fr) auto}.pp-in input{border-radius:var(--r-ctl) 0 0 var(--r-ctl)}
.pp-unit{min-width:62px;padding:0 12px;border:1px solid var(--border);border-left:0;border-radius:0 var(--r-ctl) var(--r-ctl) 0;background:var(--fill-2);color:var(--txt);cursor:pointer;font:600 var(--fs-sm)/1 var(--font-ui)}
.pp-pcts{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.pp-pcts button{min-height:28px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--dim);font:600 var(--fs-cap)/1 var(--font-ui);cursor:pointer;transition:color var(--dur),border-color var(--dur)}.pp-pcts button:hover{color:var(--gold-txt);border-color:var(--border-strong)}
.pp-tpsl summary{cursor:pointer;color:var(--dim);font-size:var(--fs-sm)}.pp-tpsl summary:hover{color:var(--txt)}.pp-tpslb{display:grid;gap:var(--sp-2);margin-top:var(--sp-2)}
.pp-ro{display:flex;gap:8px;align-items:center;font-size:var(--fs-sm);color:var(--dim)}.pp-ro input{accent-color:var(--gold)}
.pp-sum,.pp-acct{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;font-size:var(--fs-sm);border-top:1px solid var(--line);padding-top:var(--sp-2)}
.pp-sum div,.pp-acct>div{display:flex;justify-content:space-between;gap:8px}.pp-sum span,.pp-acct span{color:var(--dim)}.pp-sum b,.pp-acct b{color:var(--num);font-weight:600}
.pp-warn,.pp-warnc{color:#ffb35c}.pp-sum .pp-warn{display:block}
.pp-go{width:100%;min-height:44px;font-size:var(--fs-body)}.pp-go.buy{background:linear-gradient(#2fa877,#1f6f4e);border-color:#16553b;color:#fff}.pp-go.sell{background:linear-gradient(#c44747,#8a2c2c);border-color:#6b2020;color:#fff}
.pp-cta{display:grid;gap:var(--sp-3);text-align:center;padding:var(--sp-4) var(--sp-1)}.pp-preview{opacity:.5;filter:saturate(.6);pointer-events:none;user-select:none}.pp-cta.pp-cta-in{padding:var(--sp-3) 0 0;margin-top:var(--sp-3);border-top:1px solid var(--line)}.pp-cta.pp-cta-in .btn{width:100%}.pp-cta b{font:700 var(--fs-h4)/1.2 var(--font-ui);color:var(--num)}.pp-cta p{margin:0;color:var(--dim);font-size:var(--fs-dense);line-height:1.5}.pp-addr{color:var(--dim)}
.pp-acts{display:grid!important;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.sp-acts3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.sp-acts3 .btn{min-width:0;padding:6px;white-space:normal;line-height:1.15}.sp-note{display:block;margin-top:6px;font-size:var(--fs-cap);color:var(--dim)}
.pp-testnet{font-size:var(--fs-cap);color:var(--dim);line-height:1.4}.pp-testnet a{color:var(--gold-txt)}
.pp-solbadge{font-style:normal;font-size:11px;border:1px solid var(--border);border-radius:var(--r-pill);padding:0 6px;margin-left:4px;color:var(--dim)}
/* positions, orders, fills: a table on desktop, label/value cards on phones (each cell carries its header in data-l) */
.pp-root .pp-bottom{padding:var(--sp-2) var(--sp-3);overflow-x:auto}.pp-empty{padding:var(--sp-4) var(--sp-1);color:var(--dim)}
.pp-tbl{min-width:860px}.pp-th,.pp-tr2{display:grid;gap:10px;align-items:center;min-height:40px;padding:0 6px;font-size:var(--fs-sm);text-align:right}
.pp-th{min-height:32px;color:var(--dim);font-size:11px;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line)}.pp-tr2{border-bottom:1px solid var(--line)}.pp-tr2:hover{background:var(--hover)}
.pp-th span:first-child,.pp-tr2 span:first-child{text-align:left}.pp-tr2 i{font-style:normal;font-size:11px;margin-left:4px;color:var(--dim)}.pp-tr2 i.up{color:var(--pp-up)}.pp-tr2 i.dn{color:var(--pp-dn)}
.pp-pos .pp-th,.pp-pos .pp-tr2{grid-template-columns:1.3fr .8fr .9fr .9fr .9fr 1.3fr .9fr 1fr 1.2fr}.pp-ord .pp-th,.pp-ord .pp-tr2{grid-template-columns:1fr 1.2fr .6fr .9fr .8fr .9fr 1.1fr .6fr}.pp-fills .pp-th,.pp-fills .pp-tr2{grid-template-columns:1.1fr .8fr 1.1fr .9fr .8fr .7fr 1fr}
.sp-pos .pp-th,.sp-pos .pp-tr2{grid-template-columns:1fr .8fr 1fr 1fr .9fr 1.3fr .9fr 1fr .8fr}.sp-hist .pp-th,.sp-hist .pp-tr2{grid-template-columns:1.2fr .7fr .8fr 1fr 1fr .9fr .8fr .9fr}
.pp-pacts{display:flex;gap:6px;justify-content:flex-end}
/* wallet picker and the deposit sheet */
.pp-wl{display:grid;gap:8px;margin:10px 0}.pp-wl button{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-panel);background:var(--fill);color:var(--txt);font:inherit;font-size:var(--fs-body);cursor:pointer;text-align:left;transition:border-color var(--dur)}.pp-wl button:hover{border-color:var(--border-strong)}.pp-wl img{width:28px;height:28px;border-radius:6px}
.pp-wl button span{display:grid;gap:2px}.pp-wl button small{font-size:var(--fs-cap);color:var(--dim);line-height:1.35}.pp-wl-sol{border-color:var(--border-strong)!important;background:var(--accent-soft)!important}
.pp-dep{max-width:480px;width:min(480px,94vw)}.pp-dep .pp-f{margin-top:10px}.pp-depnote{font-size:var(--fs-sm);margin:6px 0}
.pp-orig{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:6px;margin:10px 0}.pp-orig button{display:grid;gap:2px;min-height:48px;padding:8px 6px;border:1px solid var(--border);border-radius:var(--r-ctl);background:transparent;color:var(--dim);font:inherit;cursor:pointer;text-align:center}.pp-orig button b{color:var(--txt);font-size:var(--fs-body)}.pp-orig button span{font-size:var(--fs-cap)}.pp-orig button.on{border-color:var(--border-strong);background:var(--accent-soft)}.pp-orig button.on b{color:var(--gold-txt)}
.pp-from{font-size:var(--fs-sm);color:var(--dim)}.pp-q{display:grid;gap:4px;font-size:var(--fs-dense);margin-top:10px;min-height:22px}.pp-q div{display:flex;justify-content:space-between}.pp-q span{color:var(--dim)}.pp-st2{font-size:var(--fs-sm);color:var(--gold-txt);min-height:18px;margin-top:6px}
/* $SANTA peer to peer: its title, the lighter-side bonus (owner 10-17) on one line, the house note under it */
.sp-wrap{display:grid;gap:var(--sp-3)}.sp-title{display:flex;align-items:center;gap:6px;flex:none}.sp-title b{font:700 var(--fs-h4)/1 var(--font-ui);color:var(--num)}.sp-title span{color:var(--dim);font-size:var(--fs-sm)}.sp-tag{font-style:normal;font-size:11px;border:1px solid var(--border);border-radius:var(--r-pill);padding:1px 8px;margin-left:4px;color:var(--dim)}
.sp-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-3);align-items:start}.sp-grid .pp-chart{grid-template-rows:minmax(0,1fr)}
.sp-how{padding:var(--sp-3) var(--sp-4)}.sp-how summary{cursor:pointer;color:var(--txt);font-weight:600}.sp-how p{margin:var(--sp-2) 0 0;color:var(--dim);font-size:var(--fs-dense);line-height:1.5}
.pp-bonus{flex-basis:100%;display:flex;align-items:center;gap:8px;min-width:0;padding:6px 10px;border-radius:var(--r-ctl);border:1px solid rgba(255,196,64,.5);background:linear-gradient(90deg,rgba(255,170,30,.16),rgba(255,120,30,.04));color:var(--txt);font-size:var(--fs-sm);white-space:nowrap;animation:ppBonusGlow 2.4s ease-in-out infinite}
.pp-bonus>b{flex:none}.pp-bonus-why{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--dim)}.pp-bonus-left{flex:none;margin-left:auto;color:var(--txt)}.pp-bonus .itip{flex:none;margin:0}
.pp-bonus-tag{flex:none;font-size:11px;font-weight:800;letter-spacing:.12em;padding:3px 7px;border-radius:6px;background:linear-gradient(#ffd25a,#e59a12);color:#2a1600}
@keyframes ppBonusGlow{0%,100%{box-shadow:0 0 0 rgba(255,190,60,0)}50%{box-shadow:0 0 18px rgba(255,190,60,.28)}}
.pp-house{flex-basis:100%;font-size:var(--fs-cap);color:var(--dim)}
/* phones: the Long / Short dock (perps.js shows it while the ticket is off screen; it sits on the tab bar) */
.pp-dock{position:fixed;left:0;right:0;bottom:var(--tabbar-h);z-index:94;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);padding:var(--sp-2) 12px;background:linear-gradient(180deg,rgba(19,15,10,.94),rgba(15,12,8,.98));border-top:1px solid var(--border);box-shadow:0 -8px 24px rgba(0,0,0,.45)}
.pp-dock[hidden]{display:none}.pp-dock button{min-height:44px;border-radius:var(--r-ctl);border:1px solid;font:700 var(--fs-body)/1 var(--font-ui);color:#fff;cursor:pointer}
.pp-dock [data-dock="long"]{background:linear-gradient(#2fa877,#1f6f4e);border-color:#16553b}.pp-dock [data-dock="short"]{background:linear-gradient(#c44747,#8a2c2c);border-color:#6b2020}
body:has(#s-perps.on .pp-dock:not([hidden])) .gw-appchip{display:none}
@media (prefers-reduced-motion:reduce){.pp-bonus{animation:none}}
@media (max-width:1180px){
  .pp-grid{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"chart ticket" "chart book"}
  .pp-root .pp-book{height:auto;max-height:440px}
}
@media (max-width:760px){
  .pp-root{gap:var(--sp-2);padding-bottom:64px;--pp-h:340px}
  .pp-root .panel{padding:var(--sp-2) var(--sp-3)}
  .pp-venues{justify-self:stretch;display:grid;grid-template-columns:1fr 1fr}.pp-venues>button{min-height:44px}.pp-venues span{display:none}
  .pp-head{gap:var(--sp-2)}.pp-pick{min-height:44px}
  .pp-stats{flex-basis:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2) 10px}
  .pp-st b{font-size:var(--fs-sm)}.pp-last b{font-size:var(--fs-dense)}.pp-st b i{display:none}
  .pp-burn{margin-left:0;text-align:left}.pp-stats>.pp-bonus,.pp-stats>.pp-house{grid-column:1/-1}
  .pp-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"chart" "ticket" "book";gap:var(--sp-2)}.sp-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-2)}
  .pp-root .pp-chart{padding:var(--sp-1)}
  .pp-root .pp-book{max-height:420px}
  .pp-side button,.pp-seg button{min-height:40px}.pp-pcts button{min-height:36px}
  .pp-tbl{min-width:0}.pp-th{display:none}
  .pp-tbl .pp-tr2{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;padding:10px 2px;text-align:left}
  .pp-tr2>span{display:flex;justify-content:space-between;gap:8px;min-width:0}.pp-tr2>span[data-l]::before{content:attr(data-l);color:var(--dim);font-size:var(--fs-cap)}
  .pp-tr2>span:first-child,.pp-tr2>span:last-child:not([data-l]){grid-column:1/-1}.pp-tr2>span:first-child{justify-content:flex-start;align-items:baseline;font-size:var(--fs-body)}.pp-tr2>span:first-child::before{display:none}.pp-tr2>span:last-child:not([data-l]):empty{display:none}
  .pp-pacts{justify-content:stretch}.pp-pacts .btn{flex:1;min-height:40px}
  .pp-bonus{flex-wrap:nowrap}.pp-bonus-why{display:none}
}
@media (min-width:761px){.pp-bonus .itip{display:none}}

/* polish 10-16: the exit sheet's main button is a full tap target */
.ex-sheet [data-exset]{min-height:44px;padding:0 22px;font-size:14px}


/* GameFi (10-17) */
#s-gamefi .gf-lead{color:var(--dim);font-size:15px;max-width:760px}
.gf-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:14px 0}
.gf-card{display:flex;flex-direction:column;overflow:hidden;padding:0}
.gf-img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-bottom:1px solid var(--edge)}
.gf-body{padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.gf-body h3{margin:0;color:var(--gold);font-weight:normal;font-size:22px}
.gf-body p{margin:0;color:var(--txt);font-size:15px;line-height:1.35}
.gf-soon{font-size:13px;color:var(--dim);border:1px solid var(--edge);border-radius:4px;padding:1px 6px;vertical-align:middle}
.gf-tags{display:flex;flex-wrap:wrap;gap:6px}.gf-tags span{font-size:13px;color:var(--dim);border:1px solid var(--edge);border-radius:10px;padding:1px 8px}
.gf-coin{font-size:14px;color:var(--txt);text-decoration:none}.gf-coin .up{color:#7dff8a}.gf-coin .dn{color:#ff8a7d}
.gf-acts{display:flex;gap:8px;flex-wrap:wrap}
.gf-empty{padding:16px;font-size:15px;color:var(--txt)}
.gf-build{padding:14px 16px;margin-top:6px}.gf-build h3{margin:0 0 6px;color:var(--gold);font-weight:normal}.gf-build p{font-size:15px;color:var(--txt)}
@media (max-width:560px){.gf-list{grid-template-columns:1fr}}

.launch-status-bar{position:fixed;left:50%;bottom:calc(18px + max(var(--tabbar-h),var(--safe-b)));transform:translateX(-50%);z-index:10000;max-width:calc(100vw - 32px);background:#1b140c;border:1px solid var(--edge);border-radius:8px;padding:10px 14px;color:var(--txt);font-size:14px;box-shadow:0 6px 24px #0008}

/* bug sweep 10-17: the signed-in pill shortens the NAME, never the 'sign out' that tells you what a tap does */
#connectBtn:has(.cb-nm){display:inline-flex;align-items:center;gap:5px;min-width:0}#connectBtn .cb-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#connectBtn .cb-so{flex:none;white-space:nowrap}

/* ===================== GameFi, full screen (owner 10-17: "design this full screen, AAA+, driving fomo") ===================== */
#s-gamefi.on{margin:calc(-1 * var(--sp-3)) calc(-1 * var(--sp-4));--gfx-gold:#ffd76a;--gfx-gold2:#ff9a1f;--gfx-ink:#0d0905;--gfx-line:rgba(255,215,106,.28)}
@media(max-width:700px){#s-gamefi.on{margin:-10px}}
.gfx{position:relative;color:var(--txt)}
.gfx-hero{position:relative;min-height:clamp(440px,64vh,600px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--gfx-line)}
.gfx-hero picture{position:absolute;inset:0;z-index:-2;display:block}
.gfx-hero-art{width:100%;height:100%;object-fit:cover;object-position:62% 40%;display:block;transform:scale(1.04);animation:gfxDrift 26s ease-in-out infinite alternate}
@keyframes gfxDrift{to{transform:scale(1.1) translate(-1.5%,-1%)}}
.gfx-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,7,4,.94) 0%,rgba(10,7,4,.78) 34%,rgba(10,7,4,.18) 66%,rgba(10,7,4,.05) 100%),linear-gradient(0deg,rgba(10,7,4,.98) 0%,rgba(10,7,4,.2) 42%,transparent 70%)}
.gfx-hero-in{position:relative;width:min(1240px,100%);margin:0 auto;padding:clamp(24px,4vh,48px) clamp(18px,4vw,56px) clamp(24px,4vh,40px)}
.gfx-kicker{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-ui);font-weight:600;font-size:var(--fs-cap);letter-spacing:.06em;text-transform:uppercase;color:var(--gfx-gold);padding:5px 10px;border:1px solid var(--gfx-line);border-radius:999px;background:rgba(13,9,5,.55);backdrop-filter:blur(6px)}
.gfx-live{width:9px;height:9px;border-radius:50%;background:#5dff7a;box-shadow:0 0 0 0 rgba(93,255,122,.7);animation:gfxPulse 1.8s infinite;display:inline-block;flex:none}
@keyframes gfxPulse{70%{box-shadow:0 0 0 10px rgba(93,255,122,0)}100%{box-shadow:0 0 0 0 rgba(93,255,122,0)}}
.gfx-title{font-family:var(--font-display);font-weight:900;font-size:clamp(30px,4.2vw,60px);line-height:1.02;margin:12px 0 10px;color:#fff3d1;letter-spacing:.5px;text-shadow:0 3px 0 #000,0 0 40px rgba(0,0,0,.6);max-width:14ch}
.gfx-title em{font-style:normal;color:#ffc93c;text-shadow:0 3px 0 #000,0 0 30px rgba(255,160,30,.55),0 0 60px rgba(255,120,20,.25)}
.gfx-lead{font-size:clamp(15px,1.2vw,17px);line-height:1.45;max-width:56ch;color:#efe1c0;margin:0 0 var(--sp-4);text-shadow:0 1px 0 #000}
.gfx-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.gfx-btn{appearance:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:var(--r-ctl);font-family:var(--font-ui);font-weight:600;font-size:16px;letter-spacing:.01em;text-decoration:none;transition:transform .15s ease,box-shadow .2s ease,background .2s ease}
.gfx-btn-main{position:relative;overflow:hidden;color:#2a1600;border:1px solid #ffe08a;background:linear-gradient(180deg,#ffe58a 0%,#ffbf3a 48%,#f08d12 100%);box-shadow:0 10px 30px rgba(255,150,30,.35),inset 0 1px 0 rgba(255,255,255,.6)}
.gfx-btn-main::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);animation:gfxShine 3.6s ease-in-out infinite}
@keyframes gfxShine{60%,100%{transform:translateX(120%)}}
.gfx-btn-main:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(255,150,30,.5),inset 0 1px 0 rgba(255,255,255,.6)}
.gfx-btn-ghost{color:#ffe7a8;border:1px solid var(--gfx-line);background:rgba(13,9,5,.55);backdrop-filter:blur(6px)}
.gfx-btn-ghost:hover{border-color:#ffd76a;background:rgba(40,28,12,.7)}
.gfx-btn:focus-visible{outline:2px solid #fff3d1;outline-offset:3px}
.gfx-proof{margin-top:var(--sp-5);max-width:860px}
.gfx-proof>small{display:block;font-size:var(--fs-cap);color:#c9b78f;margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase}
.gfx-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--gfx-line);border-radius:var(--r-panel);overflow:hidden;background:var(--gfx-line);backdrop-filter:blur(8px)}
.gfx-stat{background:rgba(13,9,5,.72);padding:10px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.gfx-stat b{font-family:var(--font-display);font-weight:700;font-size:clamp(19px,1.8vw,26px);color:var(--gfx-gold);font-variant-numeric:tabular-nums;line-height:1.1}
.gfx-stat span{font-size:var(--fs-cap);color:#c9b78f;line-height:1.25}
.gfx-scroll{display:none;position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:28px;height:44px;border:2px solid rgba(255,231,168,.6);border-radius:16px}
.gfx-scroll span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#ffe7a8;animation:gfxWheel 1.8s ease-in-out infinite}
@keyframes gfxWheel{60%{transform:translateY(14px);opacity:0}100%{opacity:0}}
.gfx-body{width:min(1240px,100%);margin:0 auto;padding:clamp(24px,4vw,48px) clamp(16px,4vw,56px) 48px;display:flex;flex-direction:column;gap:clamp(32px,4.5vw,56px)}
.gfx-sec{scroll-margin-top:80px}
.gfx-sech{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:var(--sp-4)}
.gfx-sech h2{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,2.2vw,var(--fs-h2));margin:0;color:#fff3d1;text-shadow:0 2px 0 #000}
.gfx-sech p{margin:0;flex-basis:100%;color:#c9b78f;font-size:var(--fs-body)}
.gfx-count{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:#a9f5b4;padding:4px 12px;border:1px solid rgba(93,255,122,.35);border-radius:999px;background:rgba(20,40,20,.35)}
.gfx-open{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border-radius:18px;overflow:hidden;border:1px solid rgba(255,215,106,.55);background:#140e08;box-shadow:0 0 0 1px rgba(0,0,0,.6),0 24px 60px rgba(0,0,0,.5);animation:gfxGlow 3s ease-in-out infinite}
@keyframes gfxGlow{50%{box-shadow:0 0 0 1px rgba(0,0,0,.6),0 24px 60px rgba(0,0,0,.5),0 0 44px rgba(255,180,60,.22)}}
.gfx-open img{width:100%;height:100%;object-fit:cover;min-height:280px;display:block}
.gfx-open-in{padding:clamp(22px,3vw,40px);display:flex;flex-direction:column;justify-content:center;gap:12px}
.gfx-open h3{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,2.2vw,30px);margin:0;color:#fff3d1}
.gfx-open p{margin:0 0 6px;font-size:var(--fs-body);line-height:1.5!important;color:#e6d6b2;line-height:1.3}
.gfx-ribbon{align-self:flex-start;font-family:var(--font-ui);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#2a1600;background:linear-gradient(180deg,#ffe58a,#f0a020);padding:7px 10px;border-radius:6px}
.gfx-genres{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.gfx-g{position:relative;border-radius:var(--r-panel);overflow:hidden;min-height:220px;border:1px solid var(--gfx-line);background:#140e08;isolation:isolate;transition:transform .25s ease,border-color .25s ease}
.gfx-g-wide{grid-column:span 2;grid-row:span 2;min-height:360px}
.gfx-g img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s ease}
.gfx-g::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(10,7,4,.96) 0%,rgba(10,7,4,.55) 45%,rgba(10,7,4,0) 75%)}
.gfx-g>div{position:absolute;left:0;right:0;bottom:0;padding:var(--sp-4);display:flex;flex-direction:column;gap:4px}
.gfx-g b{font-family:var(--font-display);font-weight:700;font-size:clamp(18px,1.5vw,22px);color:#fff3d1;text-shadow:0 2px 0 #000}
.gfx-g-wide b{font-size:clamp(22px,2.2vw,30px)}
.gfx-g span{font-size:var(--fs-dense);color:#e6d6b2;line-height:1.4}
.gfx-g:hover{transform:translateY(-4px);border-color:rgba(255,215,106,.6)}.gfx-g:hover img{transform:scale(1.06)}
.gfx-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;counter-reset:none}
.gfx-steps li{position:relative;padding:var(--sp-4);border-radius:var(--r-panel);border:1px solid var(--gfx-line);background:linear-gradient(180deg,rgba(40,28,14,.85),rgba(18,12,7,.9));display:flex;flex-direction:column;gap:6px}
.gfx-steps i{font-style:normal;font-family:var(--font-display);font-weight:700;font-size:16px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#2a1600;background:linear-gradient(180deg,#ffe58a,#f0a020);box-shadow:0 0 18px rgba(255,180,60,.35);margin-bottom:6px}
.gfx-steps b{font-family:var(--font-display);font-weight:700;font-size:var(--fs-h4);color:#fff3d1}
.gfx-steps span{font-size:var(--fs-dense);color:#d8c8a4;line-height:1.45}
.gfx-final{position:relative;border-radius:var(--r-panel);overflow:hidden;border:1px solid rgba(255,215,106,.45);min-height:max(280px,min(30vw,440px));display:flex;align-items:center;isolation:isolate}
.gfx-final img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.gfx-final::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,7,4,.95) 0%,rgba(10,7,4,.75) 45%,rgba(10,7,4,.2) 100%)}
.gfx-final-in{padding:clamp(24px,4vw,56px);max-width:640px;display:flex;flex-direction:column;gap:12px}
.gfx-final h2{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,2.6vw,36px);line-height:1.05;margin:0;color:#fff3d1;text-shadow:0 2px 0 #000}
.gfx-final p{margin:0 0 8px;font-size:var(--fs-body);color:#e6d6b2}
#s-gamefi .gf-list{margin:0}
@media(max-width:1000px){.gfx-genres{grid-template-columns:repeat(2,minmax(0,1fr))}.gfx-g-wide{grid-column:span 2;grid-row:auto;min-height:320px}.gfx-steps{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){#s-gamefi.on{margin:calc(-1 * var(--sp-2)) calc(-1 * max(var(--sp-2),env(safe-area-inset-left)))}.gfx-hero{min-height:0}.gfx-hero-art{object-position:70% 30%}.gfx-hero-shade{background:linear-gradient(0deg,rgba(10,7,4,.98) 0%,rgba(10,7,4,.85) 48%,rgba(10,7,4,.25) 100%)}
  .gfx-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.gfx-open{grid-template-columns:minmax(0,1fr)}.gfx-open img{min-height:200px;max-height:240px}.gfx-genres{grid-template-columns:minmax(0,1fr)}.gfx-g,.gfx-g-wide{grid-column:auto;min-height:200px}.gfx-btn{flex:1 1 auto}.gfx-scroll{display:none}}
@media (prefers-reduced-motion:reduce){.gfx-hero-art,.gfx-btn-main::after,.gfx-live,.gfx-open,.gfx-scroll span{animation:none}}
.gfx{background:radial-gradient(1200px 600px at 80% 0%,rgba(255,150,40,.08),transparent 60%),linear-gradient(180deg,#0d0905 0%,#130d07 50%,#0b0804 100%)}
#gfList:has(.gfx-open){display:block}
.gfx-final img{object-position:72% 12%} /* the knight and the sleigh sit in the art's top half: the 40% crop cut his head off on wide screens (owner 10-24) */
.gfx-final::after{background:linear-gradient(90deg,rgba(8,10,24,.95) 0%,rgba(8,10,24,.7) 45%,rgba(8,10,24,.1) 100%)}
@media(max-width:760px){
  .gfx-hero{flex-direction:column;align-items:stretch;min-height:0}
  /* phones (owner 10-24: the hero ran two screens before the first button): a 170px art strip, the title over its foot, one line, both buttons in view */
  .gfx-hero picture{position:relative;inset:auto;height:170px;min-height:0}
  .gfx-hero-art{object-position:62% 35%}
  .gfx-hero-shade{inset:0 0 auto 0;height:170px;background:linear-gradient(0deg,#0d0905 0%,rgba(13,9,5,.35) 45%,rgba(13,9,5,0) 75%)}
  .gfx-hero-in{margin-top:-52px;padding:0 12px 20px}
  .gfx-kicker{font-size:11px;padding:4px 8px;letter-spacing:.04em}
  .gfx-title{font-size:28px;margin:10px 0 6px;max-width:none}.gfx-title br{display:none}
  .gfx-lead{font-size:var(--fs-dense);margin-bottom:var(--sp-3)}
  .gfx-ctas{gap:8px}.gfx-btn{min-height:44px;padding:0 14px;font-size:var(--fs-dense)}
  .gfx-proof{margin-top:var(--sp-3)}.gfx-proof>small{display:none}
  .gfx-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.gfx-stat{padding:8px 6px}.gfx-stat b{font-size:16px}.gfx-stat span{font-size:11px;letter-spacing:0}
  .gfx-body{padding:24px 12px 32px;gap:32px}
}
.gfx-hero picture{overflow:hidden}

/* /liquidity: the site's own SANTA pools as one-tap chips above the search results */
.any-feat{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}.any-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--line,rgba(255,255,255,.14));background:var(--panel2,rgba(255,255,255,.04));color:inherit;cursor:pointer;font:inherit;font-size:13px}.any-chip:hover{border-color:var(--gold,#ffd678)}.any-chip img{width:20px;height:20px;border-radius:50%}.any-chip i{font-style:normal;opacity:.7}
/* the Santa Index page styles live with the page, in si.js (Design v2, 10-24) */

/* ---- phones and in-app wallet browsers (owner 10-23: Phantom's and MetaMask's are iOS/Android WebViews) ---------------------------------
   iOS zooms the whole page when an input under 16px takes focus; 100vh counts the browser's own toolbars (dvh does not); fixed bottom bars
   must clear the home indicator; controls answer a tap at once instead of waiting to see if it is a double-tap zoom. */
@supports (height:100dvh){body{min-height:100dvh}.vb-modal{max-height:calc(100dvh - 24px)}#s-term .term-wrap{height:calc(100dvh - var(--term-off))}.pc-list{max-height:calc(100dvh - 230px)}#s-pulse .pc-list{height:calc(100dvh - 250px)}}
@media (max-width:980px){#s-pulse .pc-list,.pc-list{height:auto;max-height:none}} /* after the dvh twin above: stacked / tabbed columns grow with the page, no scroll box inside the page on a phone */

/* ---- UX pass (owner 10-24, audit-1024/ux.md) */
/* a page heading focused by navigation (landOn): no ring for a mouse click, a clear one for keyboard users */
.land-focus:focus{outline:none}.land-focus:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
/* the swap box's Buy / Sell tabs, and the Naughty List line when SANTA leaves the wallet */

.vb-rows b.vb-wide{grid-column:1/-1;text-align:left;font-family:inherit;font-weight:normal;font-size:var(--fs-dense);line-height:1.45}
/* siteAsk: number fields with Max and a live summary, in place of prompt() */
.vb-field{display:grid;gap:4px;margin:0 0 10px}.vb-field>span{color:var(--dim);font-size:14px}.vb-field i{font-style:normal;opacity:.7}.vb-in{display:flex;gap:6px;align-items:center}.vb-in input{flex:1;min-width:0;background:var(--ink);color:var(--txt);border:2px solid var(--edge);border-radius:4px;padding:8px 10px;font-size:16px}.vb-in em{font-style:normal;color:var(--dim)}.vb-why{color:var(--red);margin:0 0 8px;font-size:14px}.vb-why:empty{margin:0}
/* (i) tips: tap to open, so phones get the explanation a title= tooltip never showed them */
.itip{display:inline-grid;place-items:center;width:18px;height:18px;margin:0 0 0 5px;padding:0;border-radius:50%;border:1px solid var(--edge);background:var(--ink);color:var(--gold);font:italic 700 12px/1 Georgia,serif;letter-spacing:0;text-transform:none;vertical-align:middle;cursor:pointer}.itip:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.itip-demo{display:inline-grid;margin:0 2px;cursor:default}
@media (pointer:coarse){.itip{width:24px;height:24px;font-size:14px}}
.itip-pop{position:absolute;z-index:150;background:linear-gradient(var(--panel),var(--panel2));border:1px solid var(--edge);border-radius:6px;padding:9px 11px;color:var(--txt);font-size:14px;line-height:1.4;box-shadow:0 10px 30px rgba(0,0,0,.6)}
.fw-gloss{margin:8px 2px 0;font-size:14px}
.ge-seek{display:flex;align-items:center;gap:10px;padding:14px 10px}
/* the wallet picker and the account pill's menu */
.wp-list{display:grid;gap:8px;margin:0 0 12px}.wp-item{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 12px;border:2px solid var(--edge);border-radius:6px;background:var(--ink);color:var(--txt);font:inherit;text-align:left;cursor:pointer}.wp-item:hover,.wp-item:focus-visible{border-color:var(--gold);outline:none}.wp-item img,.wp-ic{flex:none;width:28px;height:28px;border-radius:6px}.wp-ic{display:grid;place-items:center;background:var(--wood2);color:var(--gold);font-weight:700}
.acct-menu{position:absolute;z-index:60;display:grid;min-width:200px;padding:6px;background:linear-gradient(var(--panel),var(--panel2));border:2px solid var(--edge);border-radius:6px;box-shadow:0 12px 30px rgba(0,0,0,.6)}.acct-menu .am-who{display:grid;padding:6px 10px 8px;margin-bottom:4px;border-bottom:1px solid var(--edge)}.acct-menu .am-who small{color:var(--dim)}.acct-menu button{min-height:40px;padding:9px 10px;border:0;border-radius:4px;background:none;color:var(--txt);font:inherit;text-align:left;cursor:pointer}.acct-menu button:hover,.acct-menu button:focus-visible{background:rgba(255,152,31,.14);outline:none}.acct-menu .am-out{color:#ffb3b3}
/* visible labels on the launch and clan forms */
.lf-lab{display:grid;gap:2px;min-width:0}.lf-lab>span{font-size:15px;color:var(--dim)}.lf-lab>span i{color:var(--red);font-style:normal}.lf-two .lf-lab{flex:1}
.lp-rem-pct{margin:2px 0}
/* the Wintertodt round table: no fixed 170px columns on a phone */
@media (max-width:760px){#todtBoard th:nth-child(3),#todtBoard th:nth-child(4),#todtBoard td:nth-child(3),#todtBoard td:nth-child(4){width:auto}#todtBoard{font-size:15px}#todtBoard td{overflow-wrap:anywhere}}
/* ---- growth pass (owner 10-24): Santa's home band over the board, the "waiting for you" bar, the nav's menu groups, the transparency page.
   One block at the end so it merges cleanly; Santa door only unless it says otherwise. */
/* "$X waiting" and the dashboard's Claim all: one compact gold-tinted strip (Design v2: tokens, a real tap target on the ×) */
.wait-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 var(--sp-3);padding:8px 8px 8px 14px;border:1px solid rgba(255,190,90,.4);border-radius:var(--r-panel);background:linear-gradient(90deg,rgba(255,180,58,.14),rgba(255,180,58,.04));color:var(--txt);font-size:var(--fs-dense)}
.wait-bar[hidden]{display:none}.wait-bar b{color:var(--gold-txt);font-variant-numeric:tabular-nums}.wait-bar .wb-parts{min-width:0;color:var(--dim);font-size:var(--fs-sm)}.wait-bar .wb-acts{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap}.wait-bar .wb-acts .btn{min-height:var(--ctl-h-sm);padding:0 12px;font-size:var(--fs-sm)}.wait-bar .st{flex-basis:100%;font-size:var(--fs-sm);color:var(--dim)}.wait-bar .st:empty{display:none}
.wait-bar .wb-x{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--r-ctl);background:none;border:0;color:var(--dim);cursor:pointer;font-size:18px;line-height:1}.wait-bar .wb-x:hover{background:var(--hover);color:var(--txt)}
@media(max-width:760px){.wait-bar{padding:8px 6px 8px 12px}.wait-bar .wb-acts{width:100%;margin-left:0}.wait-bar .wb-acts .btn{flex:1;min-height:40px}.wait-bar .wb-x{width:40px;height:40px}}
.wait-bar.claim{border-style:solid}
.cd-claimall{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 var(--sp-3);padding:10px 10px 10px 14px;border:1px solid rgba(255,190,90,.4);border-radius:var(--r-panel);background:linear-gradient(90deg,rgba(255,180,58,.14),rgba(255,180,58,.04))}.cd-claimall b{color:var(--gold-txt);font-variant-numeric:tabular-nums}.cd-claimall .btn{margin-left:auto}.cd-claimall .st{flex-basis:100%;font-size:var(--fs-sm);color:var(--dim)}.cd-claimall .st:empty{display:none}
@media(max-width:760px){.cd-claimall .btn{width:100%;margin-left:0}}
/* the board: a team launch says so (owner 10-24, growth #10) */
.ge-team{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid rgba(255,208,106,.5);border-radius:4px;color:#ffd06a;font-size:11px;line-height:16px;vertical-align:middle;letter-spacing:.3px}
/* /transparency */
/* Design v2 (owner 10-24): ledgers as dense hairline rows — what, detail, link — tabular amounts; the totals one tile row */
.tp-wrap{display:grid;gap:0}.tp-wrap .panel h2{margin-top:0}.tp-wrap .panel>.note{margin:0 0 var(--sp-2);font-size:var(--fs-sm)}
.tp-list{display:grid}.tp-row{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.6fr) auto;gap:12px;align-items:center;min-height:40px;padding:6px 4px;border-bottom:1px solid var(--line);font-size:var(--fs-dense)}.tp-row:last-of-type{border-bottom:0}.tp-row:hover{background:var(--hover)}
.tp-row>b{font-weight:600;color:var(--num);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-row small{min-width:0;color:var(--dim);font-size:var(--fs-sm)}.tp-row a{white-space:nowrap;font-size:var(--fs-sm)}
.tp-row.tp-acct{grid-template-columns:minmax(0,1fr) minmax(0,auto) auto}.tp-row code{min-width:0;font:13px/1.3 var(--font-mono);color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-row code i{font-style:normal}
.tp-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-2)}@media (min-width:761px) and (max-width:1180px){.tp-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}} /* six tiles: 3 + 3 (auto-fit made 5 + 1 at 1024 and broke "INTO THE SANTA / FLOOR", 10-24 sweep) */.tp-tiles .stat b{font-size:20px}.tp-tiles .stat small{display:block;margin-top:2px;font-size:var(--fs-cap);color:var(--dim)}
@media(max-width:760px){.tp-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"a l" "d d";gap:2px 10px;padding:8px 2px}.tp-row>:first-child{grid-area:a}.tp-row>small:nth-child(2),.tp-row>code{grid-area:d}.tp-row>:last-child{grid-area:l;justify-self:end}
  .tp-row.tp-acct{grid-template-columns:minmax(0,1fr) auto}.tp-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-row a{min-height:32px;display:inline-flex;align-items:center}}
@media (max-width:700px){.tp-row{grid-template-columns:1fr;gap:2px}}
/* SANTA by the numbers (owner 10-28, #5): the transparency page's tiles and rows, each figure with its source line under it; "—" figures dimmed */
.nb-hero code{font:13px/1.4 var(--font-mono);color:var(--txt);overflow-wrap:anywhere}.nb-tiles,.nb-tiles[class]{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.nb-fig small{display:block;margin-top:2px;color:var(--dim);font-size:var(--fs-sm)}.nb-fig small.nb-src,.nb-row .nb-src{display:block;margin-top:4px;font-style:normal;font-size:var(--fs-cap);color:var(--mute);overflow-wrap:anywhere}
.nb-none b{color:var(--mute)}.nb-floor{font-style:normal;font-size:.7em;color:var(--gold-txt);margin-left:2px;vertical-align:super}.nb-row{cursor:help}.nb-foot{margin:var(--sp-3) 0 0;font-size:var(--fs-sm)}
@media (max-width:760px){.nb-tiles,.nb-tiles[class]{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lf-adv-btn{background:none;border:1px dashed rgba(255,208,106,.45);color:#e8c98a;border-radius:6px;padding:4px 8px;cursor:pointer;font:inherit;font-size:14px}
details.lf-adv-box>summary{cursor:pointer;color:#e8c98a;font-size:14px;margin:4px 0}
.vh-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0;padding:8px 10px;border:1px solid rgba(255,208,106,.4);border-radius:8px;background:rgba(255,180,70,.08)}.vh-top b{color:#ffd06a}.vh-top small{color:var(--dim);flex-basis:100%}
.lf-adv-off{display:none!important}

/* ---- Santa's home hero, compact (design v2, owner 10-24): ≤ ~260px on a desktop, ≤ ~320px on a phone with the three figures as one row.
   Headline (2 lines), one true sub line, Buy (primary) + Launch (secondary) inline, How it works as a text link. app.js renderSantaHero */
.sm-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,540px);gap:var(--sp-5);align-items:end;margin:0 0 var(--sp-3);padding:20px 24px;border:1px solid var(--border);border-radius:var(--r-panel);background:var(--ink) center 40%/cover url('assets/hero.jpg?v=1789755095');box-shadow:var(--shadow-panel);overflow:hidden}
.sm-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,9,6,.92) 0%,rgba(12,9,6,.74) 50%,rgba(12,9,6,.5) 100%),linear-gradient(180deg,transparent 30%,rgba(12,9,6,.6) 100%)}
.sm-hero>div{position:relative;min-width:0}
.sm-eyebrow{display:inline-flex;align-items:center;gap:8px;color:#d9be86;font-size:var(--fs-sm);font-weight:500;letter-spacing:.01em}.sm-eyebrow img{image-rendering:pixelated}
.sm-title{max-width:17em;margin:6px 0 6px;font:900 34px/1.08 var(--font-display);color:var(--gold-txt);text-shadow:0 2px 0 #3a2506,0 4px 14px rgba(0,0,0,.85)}
.sm-sub{max-width:64ch;margin:0 0 var(--sp-4);color:#e9dcc2;font-size:var(--fs-body);line-height:1.5;text-shadow:0 1px 0 #000}
.sm-cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)}.sm-cta .btn.text{padding:0 4px}
.sm-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2)}
.sm-stats .stat{padding:10px 12px;background:rgba(16,12,8,.8);border-color:rgba(255,190,90,.2);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.sm-stats .stat b{margin:4px 0 2px;font-size:21px;line-height:1.1;white-space:nowrap}.sm-stats .stat b small{font:600 11px/1 var(--font-ui);letter-spacing:.04em;color:var(--dim)}
.sm-stats .stat span.sm-foot{text-transform:none;letter-spacing:0;font-size:var(--fs-cap);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:761px) and (max-width:1100px){.sm-hero{grid-template-columns:1fr;gap:var(--sp-4)}}
@media (max-width:760px){
  .sm-hero{grid-template-columns:1fr;gap:var(--sp-3);padding:14px}
  .sm-eyebrow{display:none}
  .sm-title{margin:0 0 6px;font-size:23px;line-height:1.12}
  .sm-sub{margin:0 0 var(--sp-3);font-size:var(--fs-sm);line-height:1.45}
  .sm-cta{gap:var(--sp-2)}.sm-cta>.btn:not(.text){flex:1 1 0;min-width:0;padding:0 10px}.sm-cta .btn.text{flex-basis:100%;justify-content:flex-start;min-height:24px;font-size:var(--fs-sm)}
  .sm-stats{gap:6px}.sm-stats .stat{padding:8px 8px 7px}.sm-stats .stat b{margin-bottom:0;font-size:17px}.sm-stats .stat b small,.sm-stats .stat span.sm-foot{display:none}.sm-stats .stat span{font-size:11px}
}

/* ---- the swap box, compact (design v2, owner 10-24: "widget takes up so much space, optimize real estate"): pay and receive are one ~52px row each
   (token on the left, amount on the right), the flip arrow sits between them, one summary line appears once there is an amount and the fee split /
   market comparison / route fold into Details; slippage, Turbo and the keys share one row; the Buy button is full width. app.js renderSwap */
.sw-side{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin:0 0 6px;padding:2px;background:rgba(0,0,0,.38);border:1px solid var(--line);border-radius:var(--r-ctl)}
.sw-side button{min-height:28px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--dim);font:600 var(--fs-dense)/1 var(--font-ui);cursor:pointer;transition:background-color var(--dur),color var(--dur)}
.sw-side button:hover{color:var(--txt)}.sw-side button.on{color:var(--gold-txt);background:var(--accent-soft);border-color:rgba(255,190,90,.38)}.sw-side button[data-swside="sell"].on{color:#ff9d9d;background:rgba(255,93,93,.1);border-color:rgba(255,93,93,.4)}
.sw-box{padding:3px 10px;background:#0c0906;border:1px solid var(--border);border-radius:var(--r-ctl);transition:border-color var(--dur)}
.sw-box:focus-within{border-color:rgba(255,215,106,.6)}
.sw-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:36px}
.sw-tok{display:flex;align-items:center;gap:6px;flex:none;min-width:0}.sw-tok b{font:700 var(--fs-dense)/1 var(--font-ui);color:var(--txt)}
.sw-tok select,.sw-tok .dd-btn{min-height:28px;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:var(--fill-2);color:var(--txt);font:600 var(--fs-dense)/1 var(--font-ui);box-shadow:none}
.sw-px{color:var(--dim);font-size:var(--fs-cap);white-space:nowrap}
.sw-amt{display:block;flex:1 1 auto;width:100%;min-width:0;min-height:36px;padding:0;background:transparent;border:0;box-shadow:none;outline:none;color:var(--num);font:600 20px/36px var(--font-ui);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
input.sw-amt{font-size:20px}
.sw-amt::placeholder{color:#4e4130}input.sw-amt::-webkit-outer-spin-button,input.sw-amt::-webkit-inner-spin-button{-webkit-appearance:none}input.sw-amt{-moz-appearance:textfield}
.sw-recv .sw-amt{color:var(--txt)}
.sw-sub{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:2px;padding-top:4px;border-top:1px solid var(--line)}
.sw-bal{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim);font-size:var(--fs-cap)}.sw-bal b{color:var(--txt);font-weight:600}.sw-bal small{font-size:11px}
.sw-recv .sw-bal:not(:empty){margin-top:2px;padding-top:4px;border-top:1px solid var(--line)}
.sw-max{display:flex;gap:4px;flex:none}.sw-max button{min-height:24px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-pill);background:transparent;color:var(--dim);font:600 11px/1 var(--font-ui);cursor:pointer}.sw-max button:hover{color:var(--gold-txt);border-color:rgba(255,190,90,.5)}
.sw-warn{margin-top:6px;padding:5px 8px;border:1px solid rgba(255,93,93,.4);border-radius:6px;background:rgba(255,93,93,.08);color:#ffb3b3;font-size:var(--fs-cap);line-height:1.35}
.sw-arrow{position:relative;z-index:1;display:grid;place-items:center;width:26px;height:22px;margin:-9px auto;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--gold-txt);font-size:13px;line-height:1}
.sw-sum{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--txt);overflow-wrap:anywhere}.sw-sum b{color:var(--num);font-weight:600}.sw-dim{color:var(--dim)}.sw-err{color:#ffb3b3}
.sw-det{margin-top:4px;font-size:var(--fs-cap)}.sw-det>summary{display:inline-flex;align-items:center;gap:4px;min-height:24px;color:var(--dim);cursor:pointer;list-style:none;user-select:none}.sw-det>summary::-webkit-details-marker{display:none}
.sw-det>summary::after{content:'';width:5px;height:5px;margin-left:2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform var(--dur)}.sw-det[open]>summary::after{transform:translateY(1px) rotate(225deg)}.sw-det>summary:hover{color:var(--txt)}
.sw-lines{margin-top:4px;padding:2px 10px;background:var(--fill);border-radius:6px}
.sw-lines div{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2);padding:5px 0;border-bottom:1px solid var(--line);font-size:var(--fs-cap)}.sw-lines div:last-child{border-bottom:0}
.sw-lines span{flex:none;color:var(--dim)}.sw-lines b{min-width:0;color:var(--txt);font-weight:500;text-align:right;overflow-wrap:anywhere}.sw-lines b i{color:var(--dim)}
.sw-slip{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:6px}.sw-slip>span:first-child{color:var(--dim);font-size:var(--fs-cap)}
.sw-seg{display:inline-flex;gap:1px;padding:2px;background:rgba(0,0,0,.38);border:1px solid var(--line);border-radius:7px}
.sw-seg button{min-height:24px;padding:0 7px;border:0;border-radius:5px;background:transparent;color:var(--dim);font:600 var(--fs-cap)/1 var(--font-ui);cursor:pointer}.sw-seg button:hover{color:var(--txt)}.sw-seg button.on{background:var(--accent-soft);color:var(--gold-txt)}
.sw-slip .turbo-btn{margin:0 0 0 auto;min-height:26px;padding:0 9px 0 6px;font-size:var(--fs-cap)}
.sw-slip .sw-keys{display:inline-grid;place-items:center;width:26px;height:26px;margin:0;padding:0;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--dim);font-size:0;cursor:help}.sw-slip .sw-keys svg{width:16px;height:16px}.sw-slip .sw-keys:hover{color:var(--txt)}
@media (hover:none){.sw-slip .sw-keys{display:none}}
.sw-mode{display:flex;gap:4px;margin:var(--sp-2) 0 0}.sw-mode .pick{flex:1;min-height:30px;text-align:center;font-size:var(--fs-cap);padding:0 8px}
.ge-swap.panel{padding:12px} /* owner 10-24: 'still 50% too big' — the trade box condensed again: slimmer side tabs, the flip arrow over the seam, 36px amount rows */
.sw-go{display:flex;width:100%;min-height:40px;margin-top:6px;font-size:var(--fs-body)}
.sw-st{min-height:0;margin-top:4px;font-size:var(--fs-cap)}.sw-st:empty{display:none}.sw-fine{margin-top:4px;font-size:11px;color:var(--mute)}

/* ================= DESIGN v2 — the Grand Exchange board and the coin pages (owner 10-24: "much cleaner and AAA+", "optimize real estate").
   One block, appended last so it wins by order; Valhalla shares the markup (its skin re-colours it). Phones: the matching block in mobile.css. */
/* ---- the Santa Cup, one bar (app.js renderCup): cup · the three leading coins · prize · clock · Standings (the podium and rows fold under it) */
.ge-cup{padding:10px 14px;border-width:1px;border-color:rgba(201,151,43,.75)}
.cup-bar{grid-template-columns:auto max-content minmax(0,1fr) auto auto auto;grid-template-areas:"tro name lead prize clock tog";gap:8px 16px}
.cup-bar .cup-trophy{grid-area:tro}.cup-bar .cup-name{grid-area:name;min-width:0}.cup-bar .cup-lead{grid-area:lead}.cup-bar .cup-prize{grid-area:prize}.cup-bar .cup-clock{grid-area:clock}.cup-bar .cup-tog{grid-area:tog}
.cup-name b{display:flex;align-items:center;gap:8px;font-size:19px;white-space:nowrap}
.cup-name b .live{font:600 10px/16px var(--font-ui);letter-spacing:.08em;padding:0 5px;text-shadow:none}
.cup-name span{font-size:var(--fs-cap);white-space:nowrap}
/* the leaders: whole chips only — one that does not fit drops to a second line the bar never shows (never half a chip) */
.cup-lead{display:flex;flex-wrap:wrap;gap:8px 6px;height:30px;overflow:hidden;min-width:0}
.cup-chip{display:inline-flex;align-items:center;gap:6px;flex:none;height:30px;padding:0 10px 0 4px;border:1px solid var(--border);border-radius:var(--r-pill);background:rgba(0,0,0,.32);color:var(--txt);font-size:var(--fs-sm);text-decoration:none;white-space:nowrap;transition:border-color var(--dur),background-color var(--dur)}
.cup-chip:hover{border-color:var(--border-strong);background:var(--hover)}
.cup-chip .ge-ic{width:22px;height:22px;border-width:1px;font-size:9px}
.cup-chip b{font-weight:700}.cup-chip span{font-weight:600;font-variant-numeric:tabular-nums}.cup-chip .up{color:var(--grn)}.cup-chip .dn{color:var(--red)}
.cup-bar .cup-prize b{font-size:18px;line-height:1.1}.cup-bar .cup-prize span{font-size:var(--fs-cap)}
.cup-bar .cup-clock b{font-size:var(--fs-dense);font-variant-numeric:tabular-nums}
.cup-tog{display:inline-flex;align-items:center;gap:6px;height:var(--ctl-h-sm);padding:0 12px;border:1px solid var(--border);border-radius:var(--r-ctl);background:transparent;color:var(--gold-txt);font:600 var(--fs-sm)/1 var(--font-ui);cursor:pointer;white-space:nowrap;transition:border-color var(--dur),background-color var(--dur)}
.cup-tog::after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform var(--dur)}
.cup-tog[aria-expanded="true"]::after{transform:translateY(1px) rotate(-135deg)}
.cup-tog:hover{border-color:var(--border-strong);background:var(--hover)}
.cup-more{margin-top:10px}.cup-more[hidden]{display:none}.ge-cup .cup-more .cup-podium{margin-top:0}
@media (max-width:1180px){.cup-bar{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"tro name prize prize" "lead lead clock tog"}} /* the clock drops beside Standings: with prize AND clock on row 1 a 1024px board left the name ~160px, and Valhalla's wide "VALHALLA CUP #1" ran under the prize (10-24 sweep) */
@media (max-width:560px){.cup-bar{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"tro name tog" "prize prize clock" "lead lead lead";gap:8px 10px}.cup-bar .cup-prize{display:block;text-align:left}.cup-bar .cup-prize b{white-space:nowrap}.cup-name span{display:block;overflow:hidden;text-overflow:ellipsis}.cup-name b{font-size:17px}.cup-bar .cup-clock{flex-direction:column;align-items:flex-end;border-left:0;padding-left:0}}

/* ---- King of the Hill: one quiet row (crown · coin · five figures · Trade) */
.ge-king{padding:8px 14px}
.king-strip{gap:14px}
.king-strip .king-id b{font-size:19px}
.king-mini div{padding:4px 10px;background:rgba(0,0,0,.26);border-color:var(--border);border-radius:var(--r-ctl)}
.king-mini b{font:600 var(--fs-dense)/1.3 var(--font-ui);color:var(--num);font-variant-numeric:tabular-nums}
.king-mini span{font-size:11px;letter-spacing:.06em}

/* ---- the board's head and tool bar: tighter rhythm; the glossary (i) sits beside the title, not on a line of its own */
#ecoBoard .ge-tt>b{display:flex;align-items:center;gap:2px}#ecoBoard .ge-tt>b .itip{margin-left:8px}
@media (min-width:761px){#ecoBoard .ge-boardhead{margin-bottom:12px;padding-bottom:12px}#s-eco .ge-tools{margin-bottom:10px}}
.ge-sec{padding:10px 12px 6px}.ge-sec b{font:700 var(--fs-cap)/1.3 var(--font-ui);letter-spacing:.08em}.ge-sec span{font-size:var(--fs-cap)}

@media (max-width:1050px){.king-strip .king-go{grid-row:1;grid-column:-2}} /* Trade stays on the coin's row; the five figures take the next (it took a third row) */
/* ---- the rows: one rhythm (52px), numbers white and tabular, a ticker line that never cuts a badge in half */
.ge-wide .ge-row{min-height:52px;padding:6px 12px;box-sizing:border-box}
.ge-wide .ge-th{padding:8px 12px}
.ge-wide .ge-row .ge-ic{width:36px;height:36px}
.ge-wide .ge-row .r b{font-variant-numeric:tabular-nums}
.ge-row .pr sub.z,.ge-tok-px sub.z{font-size:.72em;line-height:0;vertical-align:-.28em;margin:0 1px;color:inherit}
/* line 1, ticker and badges: whole badges only. A badge that does not fit wraps to a second line the row never shows (the fade mask cut them) */
.ge-wide .ge-row .it b{flex-wrap:wrap;height:22px;row-gap:12px;overflow:hidden;-webkit-mask-image:none;mask-image:none}
.ge-row .px2{font-size:var(--fs-cap)!important;font-variant-numeric:tabular-nums}
@container (max-width:740px){.ge-wide .ge-row .it small{display:flex;align-items:baseline;min-width:0}.ge-wide .ge-row .lp-inline{display:inline;flex:none}.ge-wide .ge-row .lp-inline span+span{display:none}.ge-wide .ge-row .it small .lp-inline+.nm::before{content:'·';margin:0 6px;opacity:.45}.ge-wide .ge-row .it small .nm{flex:1 1 auto}.ge-wide .ge-row .it small .nm>i{display:none}} /* the burn count and extras give way to the name */ /* one line: LP, then the name (it stacked to three lines at 1024) */

/* ---- Pair Radar in the side rail (app.js loadRadar): a list, 5 shown, Show all */
.radar.panel{margin:0;padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-panel);background:var(--panel-bg)}
.radar h2 i{font:600 11px/1 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);font-style:normal}
.rd-sub{margin:-4px 0 8px;color:var(--dim);font-size:var(--fs-cap);line-height:1.4}
.rd-list{display:grid}
.rd-li{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:52px;padding:6px 0;border-bottom:1px solid var(--line)}
.rd-li:last-of-type{border-bottom:0}
.rd-li img{width:32px;height:32px;border-radius:50%;object-fit:cover;background:#000;box-shadow:0 0 0 1px var(--border)}
.rd-li .rd-id{display:grid;gap:2px;min-width:0}
.rd-li .rd-id b{display:flex;align-items:center;gap:6px;min-width:0;font:700 var(--fs-dense)/1.2 var(--font-ui);color:var(--txt);white-space:nowrap;overflow:hidden}
.rd-li .rd-id small{color:var(--dim);font-size:var(--fs-cap);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-n{flex:none;padding:0 6px;border:1px solid var(--line);border-radius:var(--r-pill);color:#c9b48c;font:600 11px/16px var(--font-ui);font-style:normal}.rd-n.first{color:#8fe3a0;border-color:rgba(61,220,132,.35)}
.rd-li .rd-chg{padding:4px 7px;font-size:var(--fs-cap)}
.rd-li .rd-go{width:auto;min-height:30px;height:30px;padding:0 12px;font-size:var(--fs-cap)}
/* Trend families (owner 10-28, task #7): the owner's card in the side rail — one collapsible row per family, its kit inside */
.fam .fm-li{border-bottom:1px solid var(--line);padding:6px 0}.fam .fm-li:last-of-type{border-bottom:0}
.fm-li summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:8px;cursor:pointer;list-style:none;min-height:30px}.fm-li summary::-webkit-details-marker{display:none}
.fm-li summary b{font:700 var(--fs-dense)/1.2 var(--font-ui);color:var(--txt)}.fm-li summary small{color:var(--dim);font-size:var(--fs-cap);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fm-li summary em{font-style:normal;font:600 11px/16px var(--font-ui);color:#c9b48c;padding:0 6px;border:1px solid var(--line);border-radius:var(--r-pill)}
.fm-kit{display:grid;gap:6px;padding:6px 0 4px;font-size:var(--fs-cap);line-height:1.45;color:var(--txt)}.fm-kit code{font-size:10.5px;opacity:.7;word-break:break-all}.fm-kit p{margin:0;overflow-wrap:anywhere}.fm-kit p>span{display:inline-block;min-width:58px;color:var(--dim);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}.fm-kit small{color:var(--dim)}
.fm-t{display:inline-block;margin:0 2px 3px 0;padding:0 6px;border-radius:var(--r-pill);font:600 11px/18px var(--font-ui);font-style:normal;border:1px solid var(--line)}.fm-t.free{color:#8fe3a0;border-color:rgba(61,220,132,.35)}.fm-t.taken{color:#ff8a8a;border-color:rgba(220,70,70,.35);text-decoration:line-through}.fm-t.unknown{color:var(--dim)}
.fm-act{display:flex;gap:8px;flex-wrap:wrap}.fm-act .btn{width:auto;min-height:30px;height:30px;padding:0 12px;font-size:var(--fs-cap)}
.rd-li.hot img{box-shadow:0 0 0 2px rgba(255,170,60,.7)}

/* ---- a coin's page: the head on one row (back · coin · name · links · price + Follow), the CA in the mono face, the figures in one row of tiles */
@media (min-width:761px){
  .ge-tok-head{flex-wrap:nowrap;gap:14px;margin-bottom:12px}
  .ge-tok-head>.ge-ic.big{width:52px;height:52px}
  .ge-tok-head>.ge-tok-id{flex:1 1 auto}
  .ge-tok-id>b{font-size:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ge-tok-id span{display:block;margin-top:2px;font-size:var(--fs-sm);line-height:1.4}
  .ge-tok-head>.soc{flex:none;margin:0}
  .ge-tok-px{flex:none;display:grid;grid-template-columns:auto auto;align-items:center;column-gap:12px;margin:0}
  .ge-tok-px>b{grid-column:1;font-size:26px;white-space:nowrap}
  .ge-tok-px>span{grid-column:1;font-size:var(--fs-sm);white-space:nowrap}
  .ge-tok-px>.ge-watch{grid-column:2;grid-row:1/span 2;margin:0;min-height:var(--ctl-h-sm);padding:0 12px;font-size:var(--fs-sm)}
}
.ge-tok-px>b{font-variant-numeric:tabular-nums}
/* a narrow main column (761–1180, beside the 340px rail): the price + Follow take their own line under the name, so the "launched by · Trusted ·
   launches" line keeps the width (10-24 sweep: at 1024 it ran down a ~100px column over five lines) */
@media (min-width:761px) and (max-width:1180px){.ge-tok-head:has(>.ge-tok-px){flex-wrap:wrap;row-gap:var(--sp-2)}.ge-tok-head>.ge-tok-px{order:9;flex:1 1 100%;display:flex;align-items:center;gap:12px;padding-top:var(--sp-2);border-top:1px solid var(--line)}.ge-tok-head>.ge-tok-px>b{font-size:24px}.ge-tok-head>.ge-tok-px>.ge-watch{margin-left:auto}.ge-tok-head>.ge-tok-id{flex:1 1 0;min-width:0}.ge-stats:has(>div.wide){grid-template-columns:repeat(4,minmax(0,1fr))}.ge-stats>div.wide{grid-column:span 2}} /* …and the seven figures are 4 + 4 with the pair over two, as on a phone (4 + 3 left a hole) */
.ge-ca code{font:500 13px/1.5 var(--font-mono);padding:7px 10px;background:var(--fill);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--txt);letter-spacing:.01em}
.ge-ca .btn{min-height:34px;padding:0 14px}
.ge-stats{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin-bottom:12px}
.ge-stats div{padding:8px 12px;background:var(--fill);border:1px solid var(--line);border-radius:var(--r-ctl)}
.ge-stats span{font-size:11px;letter-spacing:.06em}
.ge-stats b{display:block;margin-top:2px;font:600 var(--fs-body)/1.3 var(--font-ui);color:var(--num);font-variant-numeric:tabular-nums;white-space:nowrap;overflow-wrap:normal}
.ge-stats small{color:var(--dim);font-size:var(--fs-cap)}
/* the trades: one line each — side, coins, what was paid, when — figures right-aligned and tabular ("Tax → SANTA" wrapped in a 52px column) */
.ge-tape-h{font-size:var(--fs-cap);letter-spacing:.06em;padding:0 2px 6px}
.ge-tape .tp{grid-template-columns:92px minmax(0,1fr) minmax(0,1.2fr) 52px;gap:12px;min-height:34px;padding:4px 12px;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;border-color:var(--line);background:rgba(10,8,5,.55)}
.ge-tape .tp>span:first-child{font-weight:600;white-space:nowrap}
.ge-tape .tp>b,.ge-tape .tp>b+span{text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ge-tape .tp b{color:var(--num);font-weight:500}.ge-tape .tp i{font-size:var(--fs-cap)}
.ge-tape .tp:hover{background:var(--hover)}
/* holders and snipers: one row each, the bar in its own cell */
.th,.sn{min-height:26px;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.th b .src-tag,.sn b .src-tag{margin-left:6px}
/* ---- /launcher: the launchers' board (app.js openLaunchers) */
.lb-table .ge-th,.lb-table .ge-row{grid-template-columns:36px minmax(0,1fr) 112px 112px 18px;column-gap:12px}
.lb-table .ge-row{min-height:52px}.lb-table .ge-row .it{gap:10px}.lb-table .ge-row .it b{font-size:var(--fs-dense)}.lb-table .ge-row .av{width:32px;height:32px;border-radius:50%;flex:none}
.lb-table .ge-row.me{box-shadow:inset 3px 0 0 var(--gold)}.lb-table .r b{color:var(--num);font-variant-numeric:tabular-nums}
.lb-table .skel{margin:10px 12px}.ge-tok-head>[data-mine]{flex:none;margin-left:auto}
@media (max-width:760px){.lb-table .ge-th,.lb-table .ge-row{grid-template-columns:24px minmax(0,1fr) 88px;column-gap:8px;padding-left:8px;padding-right:8px}.lb-table .go,.lb-table .wk{display:none}.lb-table .ge-row .it b,.lb-table .ge-row .it small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}} /* a phone: who and what they earned; this week is the desktop's */
/* ---- /ladders signed out: one line of what it is, three steps, the fee, Connect (was one 90-word paragraph in a box inside a box) */
.ld-lead{margin:0 0 var(--sp-3);font-size:var(--fs-body);color:var(--txt)}
.ld-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3);margin:0 0 var(--sp-3);padding:0;list-style:none;counter-reset:ld}
.ld-steps li{position:relative;padding:12px 14px 12px 44px;background:var(--fill);border:1px solid var(--line);border-radius:var(--r-ctl);counter-increment:ld}
.ld-steps li::before{content:counter(ld);position:absolute;left:12px;top:12px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--gold-txt);font:700 var(--fs-cap)/1 var(--font-ui)}
.ld-steps b{display:block;margin-bottom:4px;font-size:var(--fs-dense);color:var(--txt)}.ld-steps span{display:block;color:var(--dim);font-size:var(--fs-sm);line-height:1.45}
.ld .ld-btns{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-3)}
@media (max-width:900px){.ld-steps{grid-template-columns:1fr}}
/* ---- the board while it loads: eight quiet rows the size of the real ones, not a "Loading…" line */
.ge-skelrow{display:grid;grid-template-columns:36px minmax(0,220px) 1fr;align-items:center;gap:8px 12px;height:52px;padding:0 12px 0 48px;border-bottom:1px solid var(--line)}
.ge-skelrow i{grid-row:1/3;width:36px;height:36px;border-radius:50%;background:rgba(255,235,200,.07)}
.ge-skelrow .skel{grid-column:2;height:10px;margin:0}.ge-skelrow .skel+.skel{width:60%;margin:0}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* the sweep tray and a toast share the bottom edge on a phone: the toast rises above the tray while it is open (it covered the Buy button) */
@media (max-width:700px){body:has(#bbTray:not([hidden])) #toast{bottom:calc(84px + max(var(--tabbar-h),var(--safe-b)))}}
/* the KOL strip scrolls sideways: its right edge fades so the last chip reads as "more", not as cut off */
.kms-row{padding-right:28px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}.kms-row::-webkit-scrollbar{display:none}
/* ---- the side rail's referrer board: name and what they brought on two lines, the volume on the right (the name was cut to "Cy…") */
.rb{grid-template-columns:24px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:10px;row-gap:1px;padding:6px 8px;font-size:var(--fs-sm)}
.rb>span{grid-row:1/3}.rb>b{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rb>i{grid-column:2;grid-row:2;color:var(--dim);font-size:var(--fs-cap);font-style:normal}
.rb>em{grid-column:3;grid-row:1/3;font-style:normal;color:var(--num);font-variant-numeric:tabular-nums;white-space:nowrap}
.pnl-chip b{font-variant-numeric:tabular-nums;font-weight:600} /* the header P&L: figures that do not jitter as they tick */

/* the trades list as a live feed (owner 10-30): its own scroll box, a pulsing Live mark, older pages on demand */
#ecoTape .ge-tape-list{max-height:620px;overflow-y:auto;overscroll-behavior:contain;border-radius:4px}
#ecoTape .tape-live{font-style:normal;margin-left:8px;color:var(--grn);font-size:.85em;letter-spacing:.08em;display:inline-flex;align-items:center;gap:5px}
#ecoTape .tape-live::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--grn);animation:tapepulse 1.6s ease-in-out infinite}
@keyframes tapepulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
@media (prefers-reduced-motion:reduce){#ecoTape .tape-live::before{animation:none}}
#ecoTape .tape-more{display:block;width:100%;margin-top:8px}
