/* nopad: PS1 menu screen meets a clean AI dashboard. Single dark look by choice. */
:root{
  --void:#07080c; --panel:#10131c; --panel2:#151a27; --line:#222839; --text:#d6dbe7; --dim:#7a8299; --glow:#9db4ff; --ok:#8ff0c4; --bad:#ff8f9f;
  --hi:#ffffff; --deep:#05060a; --stripbg:rgba(7,8,12,.92); --scrim:rgba(7,8,12,.82); --grid:#10141f;
  --pix:"Silkscreen","Courier New",monospace;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{background:var(--void)}
body{color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.6;margin:0;padding-top:env(safe-area-inset-top,0px)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);z-index:20}
a{color:var(--glow)}
img{max-width:100%}
[hidden]{display:none!important}
.wrap{max-width:760px;margin:0 auto;padding-inline:16px;padding-block:0 64px}
.strip{position:sticky;top:env(safe-area-inset-top,0px);z-index:6;background:var(--stripbg);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.strip .in{max-width:760px;margin:0 auto;padding-inline:16px;padding-block:10px;display:flex;align-items:center;gap:12px}
.metrics{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1}
.metrics::-webkit-scrollbar{display:none}
.brand{font-family:var(--pix);font-size:18px;color:var(--hi);letter-spacing:.04em;white-space:nowrap;text-decoration:none}
.m{white-space:nowrap}
.m span{display:block;font-size:10px;color:var(--dim);letter-spacing:.14em;text-transform:uppercase}
.m b{font-weight:500;font-variant-numeric:tabular-nums}
.live{width:7px;height:7px;background:var(--ok);display:inline-block;margin-right:6px;box-shadow:0 0 8px var(--ok);animation:blink 1.6s steps(2) infinite}
@keyframes blink{50%{opacity:.25}}
button{font:inherit;cursor:pointer}
button:disabled{opacity:.4;cursor:not-allowed}
.btn{font-family:var(--pix);font-size:13px;letter-spacing:.06em;color:var(--void);background:var(--text);border:0;padding:10px 16px;white-space:nowrap}
.btn:hover:not(:disabled){background:var(--hi);box-shadow:0 0 18px rgba(157,180,255,.45)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line);padding:6px 10px;font-size:11px}
.btn.ghost:hover:not(:disabled){border-color:var(--glow);color:var(--hi);box-shadow:none}
.btn.buy,.btn.buy:hover:not(:disabled){background:var(--ok)}.btn.sell,.btn.sell:hover:not(:disabled){background:var(--bad)}
.btn.buy:hover:not(:disabled),.btn.sell:hover:not(:disabled){filter:brightness(1.12)}
.chip{font-size:12px;padding:6px 10px;background:var(--panel);border:1px solid var(--line);color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}
.chip:hover{border-color:var(--glow)}
:focus-visible{outline:1px solid var(--glow);outline-offset:3px}
.hero{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;padding-block:44px 24px;gap:14px}
#poly{width:256px;height:192px;max-width:100%;image-rendering:pixelated}
h1{font-family:var(--pix);font-weight:400;font-size:clamp(40px,11vw,76px);line-height:1;margin:0;color:var(--hi);text-shadow:0 0 24px rgba(157,180,255,.35)}
.lede{color:var(--dim);max-width:30em;margin:0;text-wrap:balance}
.ca{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);padding:8px 10px;max-width:100%}
.ca code{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ca em,.cad em{font-style:normal;color:var(--glow)}
section{padding-block:36px;border-top:1px solid var(--line)}
h2{font-family:var(--pix);font-weight:400;font-size:20px;margin:0 0 4px;color:var(--hi);letter-spacing:.03em}
.sub{color:var(--dim);margin:0 0 20px}
.lbl{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);display:block;margin-bottom:6px}
input,textarea,select{width:100%;font:inherit;background:var(--panel);color:var(--text);border:1px solid var(--line);padding:9px 10px}
input:focus{border-color:var(--glow);outline:none}
input[type=file]{padding:7px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid2>*{min-width:0}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.launch{display:grid;gap:12px}
.preview{width:56px;height:56px;border:1px solid var(--line);background:var(--panel);object-fit:cover;image-rendering:pixelated}
.tablewrap{overflow-x:auto;border:1px solid var(--line)}
table{border-collapse:collapse;width:100%;min-width:600px;font-size:13px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-weight:400;background:var(--panel)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
td.r{font-family:var(--pix);color:var(--dim);width:40px}
tbody tr:first-child td.r{color:var(--glow)}
tr.link{cursor:pointer}
tr.link:hover td{background:var(--panel)}
.coincell{display:flex;gap:10px;align-items:center;min-width:0}
.thumb{width:32px;height:32px;flex:none;object-fit:cover;background:var(--panel2);border:1px solid var(--line)}
.tk{color:var(--hi)}
.cad{color:var(--dim);font-size:11px}
.empty{padding:28px 12px;text-align:center;color:var(--dim)}
.note{font-size:11px;color:var(--dim)}
.up{color:var(--ok)}.down{color:var(--bad)}
.panel{background:var(--panel);border:1px solid var(--line);padding:16px}

/* coin page */
.coinhead{display:flex;gap:14px;align-items:center;padding-block:28px 16px}
.coinhead>img{width:64px;height:64px;object-fit:cover;border:1px solid var(--line);background:var(--panel)}
.coinhead h2{font-size:24px}
.links{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}
.stats div{min-width:0}
.stats b{display:block;font-weight:500;color:var(--hi);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.bar{height:8px;background:var(--panel2);border:1px solid var(--line);margin:6px 0 14px}
.bar i{display:block;height:100%;background:var(--glow);box-shadow:0 0 10px var(--glow)}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.tgroup{display:flex;border:1px solid var(--line);background:var(--panel);overflow-x:auto;max-width:100%}
.tbtn{background:none;border:0;border-right:1px solid var(--line);color:var(--dim);font-size:11px;padding:6px 9px;white-space:nowrap}
.tgroup .tbtn:last-child{border-right:0}
.tbtn:hover{color:var(--hi)}
.tbtn.on{color:var(--void);background:var(--glow)}
.arena{position:relative;height:440px;border:1px solid var(--line);background:var(--deep);overflow:hidden}
.arena #tv{position:absolute;inset:0}
.arena canvas{position:absolute;inset:0;width:100%;height:100%}
#draw{pointer-events:none;z-index:2;touch-action:none}
#fx{pointer-events:none;z-index:3}
.legend{position:absolute;left:8px;top:6px;z-index:4;font-size:11px;color:var(--dim);pointer-events:none;background:rgba(5,6,10,.7);padding:2px 6px;max-width:calc(100% - 80px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend b{color:var(--hi);font-weight:500}
.arena .hud{position:absolute;left:50%;top:30px;transform:translateX(-50%);z-index:4;font-family:var(--pix);font-size:12px;color:var(--glow);pointer-events:none}
.ctabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:14px}
.ctab{background:none;border:0;color:var(--dim);font-family:var(--pix);font-size:13px;padding:10px 14px}
.ctab.on{color:var(--hi);box-shadow:inset 0 -2px 0 var(--glow)}
table.slim{min-width:520px}
table.slim td,table.slim th{padding:7px 10px}
.tag{font-size:10px;letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor;padding:0 4px;color:var(--glow);margin-left:4px}
.info{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.info>div{min-width:0}
.info b{font-weight:500;color:var(--hi);word-break:break-word}
.caFull{font-size:11px;word-break:break-all}
.seg{display:inline-flex;border:1px solid var(--line);background:var(--panel)}
.seg button{background:none;border:0;border-right:1px solid var(--line);color:var(--dim);font-family:var(--pix);font-size:11px;padding:7px 12px}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--glow);color:var(--void)}
.pager{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.bw{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.bw>div{min-width:0}
.arena.flash-buy{animation:fbuy .35s}
.arena.flash-sell{animation:fsell .35s}
@keyframes fbuy{0%{box-shadow:inset 0 0 0 3px var(--ok),0 0 30px var(--ok)}100%{box-shadow:none}}
@keyframes fsell{0%{box-shadow:inset 0 0 0 3px var(--bad),0 0 30px var(--bad);filter:hue-rotate(40deg) contrast(1.4)}100%{box-shadow:none;filter:none}}
.trade{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.trade>div{min-width:0;display:grid;gap:8px;align-content:start}
.quick{display:flex;gap:6px}
.quick button{flex:1}
.est{font-size:12px;color:var(--dim);min-height:1.6em}
.tape{display:grid;gap:4px;font-size:12px;max-height:260px;overflow:auto}
.tape div{display:grid;grid-template-columns:70px 1fr auto auto;gap:10px;padding-block:4px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.tape div>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* wallet */
.bal{font-family:var(--pix);font-size:34px;color:var(--hi);line-height:1}
.bal small{font-family:var(--mono);font-size:13px;color:var(--dim)}
.hold{display:grid;gap:4px;margin-top:12px}
.hold a{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-block:6px;color:var(--text);text-decoration:none;font-variant-numeric:tabular-nums}
.hold a:hover{color:var(--hi)}
.rekt{text-align:center;padding-block:40px;display:grid;gap:12px;justify-items:center}
.rekt .big{font-family:var(--pix);font-size:48px;color:var(--bad);text-shadow:0 0 24px var(--bad)}

.feed{display:grid;gap:10px}
.post{border:1px solid var(--line);background:var(--panel);padding:14px}
.post .h{display:flex;gap:8px;align-items:center;margin-bottom:6px;font-size:12px}
.post .h b{color:var(--hi);font-weight:500}
.post .h span{color:var(--dim)}
.post p{margin:0}
footer{color:var(--dim);font-size:11px;border-top:1px solid var(--line);padding-top:20px}

.overlay{position:fixed;inset:0;z-index:15;background:var(--scrim);display:grid;place-items:center;padding:16px}
.modal{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--glow);box-shadow:0 0 40px rgba(157,180,255,.18);padding:20px;display:grid;gap:12px}
.modal p{margin:0;color:var(--dim);font-size:12px}
.tabs{display:flex;border-bottom:1px solid var(--line)}
.tab{flex:1;background:none;border:0;color:var(--dim);font-family:var(--pix);font-size:12px;padding:8px}
.tab.on{color:var(--hi);box-shadow:inset 0 -2px 0 var(--glow)}
.err{color:var(--bad);font-size:12px;min-height:1.4em}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--text);color:var(--void);padding:9px 14px;font-size:12px;max-width:calc(100% - 32px);z-index:25}

.est.bad{color:var(--bad)}
input.bad{border-color:var(--bad)}
.quick button{padding-inline:4px}
@media (max-width:560px){
  /* compact trading screen: chart, stats and the trade box fit on one phone screen */
  .coinhead{padding-block:12px 6px;gap:10px}
  .coinhead>img{width:40px;height:40px}
  .coinhead h2{font-size:18px}
  .links{font-size:11px;gap:8px}
  .stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:6px}
  .stats .lbl{font-size:8px;letter-spacing:.08em;margin-bottom:2px}
  .stats b{font-size:11px}
  .bar{margin:4px 0 8px;height:6px}
  #sCurveLbl{font-size:9px;margin-bottom:0}
  .toolbar{flex-wrap:nowrap;overflow-x:auto;gap:6px;margin-bottom:6px;scrollbar-width:none}
  .toolbar::-webkit-scrollbar{display:none}
  .tgroup{flex:none;overflow:visible}
  .tbtn{font-size:10px;padding:5px 7px}
  .legend{font-size:10px}
  /* buy and sell stay side by side on phones, just smaller */
  .trade{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
  .trade>div{gap:5px}
  .trade .lbl{font-size:9px;margin-bottom:0}
  .trade input{padding:6px 8px;font-size:16px}
  .quick{gap:3px;flex-wrap:nowrap}
  .quick .btn.ghost{font-size:9px;letter-spacing:0;padding:5px 0;flex:1 1 0;min-width:0}
  .trade .btn.buy,.trade .btn.sell{padding:8px 6px;font-size:12px}
  .est{font-size:10px;min-height:1.5em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #posPnl{margin-top:4px!important;font-size:11px}
  .ctab{font-size:11px;padding:8px 10px}
  .grid2{grid-template-columns:1fr}
  .brand span{display:none}
  .arena{height:300px}
  .info,.bw{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.live{animation:none}.arena.flash-buy,.arena.flash-sell{animation:none}}

/* names, pictures and the verified badge */
.uname{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;max-width:100%;vertical-align:middle}
.uname:hover span{color:var(--hi);text-decoration:underline}
.uname span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.av{width:18px;height:18px;flex:none;object-fit:cover;border:1px solid var(--line);background:var(--panel2)}
.av0,.avbig.av0,.avhuge.av0{display:inline-grid;place-items:center;font-family:var(--pix);font-size:10px;color:var(--glow)}
.avbig{width:44px;height:44px;flex:none;object-fit:cover;border:1px solid var(--line);background:var(--panel2)}
.avbig.av0{font-size:18px}
.avhuge{width:84px;height:84px;flex:none;object-fit:cover;border:1px solid var(--glow);background:var(--panel2);box-shadow:0 0 24px rgba(157,180,255,.2)}
.avhuge.av0{font-size:34px}
.vbadge{width:14px;height:14px;flex:none;vertical-align:middle}
.pname .vbadge{width:20px;height:20px;margin-left:8px}
.whead{display:flex;gap:12px;align-items:center;margin:8px 0 14px;flex-wrap:wrap}
.phead{display:flex;gap:16px;align-items:center;padding-block:28px 18px}
.pname{font-size:26px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.wtitle{font-family:var(--pix);font-weight:400;font-size:18px;color:var(--hi);margin:0}
textarea{resize:vertical;line-height:1.5}
#welcome .row .btn{text-decoration:none}

/* $NOPAD chart on the home page */
.dexbox{border:1px solid var(--line);background:var(--deep);height:440px;position:relative}
.dexbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.dexwait{position:absolute;inset:0;display:grid;place-content:center;gap:6px;text-align:center;padding:16px}
.dexwait b{font-family:var(--pix);font-weight:400;color:var(--hi);font-size:16px}
/* your position on a coin */
.pos{margin-top:12px;border:1px solid var(--line);background:var(--panel);padding:10px 12px}
.pos:empty{display:none}
.posgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:6px}
.posgrid b{display:block;font-weight:500;color:var(--hi);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:560px){
  .dexbox{height:340px}
  .pos{margin-top:8px;padding:8px 10px}
  .posgrid{gap:6px}
  .posgrid .lbl{font-size:8px;margin-bottom:0}
  .posgrid b{font-size:11px}
}
@media (max-width:560px){
  .hero{padding-block:24px 16px;gap:10px}
  #poly{width:192px;height:144px}
  .lede{font-size:11.5px;line-height:1.7}
}

/* bonded badge */
.bonded{display:inline-flex;align-items:center;gap:4px;font-family:var(--pix);font-size:11px;color:#1a1300;background:#ffd166;padding:2px 7px;vertical-align:middle;box-shadow:0 0 14px rgba(255,209,102,.45)}
.bonded.sm{font-size:9px;padding:1px 5px}
.bonded[hidden]{display:none}

/* pixel cat logo */
.brand{display:inline-flex;align-items:center;gap:8px}
.catlogo{width:24px;height:20px;flex:none;filter:drop-shadow(0 0 6px rgba(157,180,255,.35))}

/* ---------- hero: pixel SOL buys and sells ---------- */
.hero{position:relative}
.herofx{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.hero>*:not(.herofx){position:relative;z-index:1}
.heropop{position:absolute;display:inline-flex;align-items:center;gap:5px;font-family:var(--pix);font-size:13px;white-space:nowrap;image-rendering:pixelated;animation:heropop 1.8s steps(18) forwards;opacity:0}
.heropop.buy{color:var(--ok);text-shadow:0 0 10px rgba(143,240,196,.55)}
.heropop.sell{color:var(--bad);text-shadow:0 0 10px rgba(255,143,159,.55)}
.solpx{width:14px;height:12px;image-rendering:pixelated;shape-rendering:crispEdges;flex:none}
@keyframes heropop{0%{opacity:0;transform:translateY(8px) scale(.6)}12%{opacity:1;transform:translateY(0) scale(1.15)}22%{transform:scale(1)}80%{opacity:.9}100%{opacity:0;transform:translateY(-34px)}}

/* ---------- candle cursor ---------- */
html.candlecursor,html.candlecursor *{cursor:none!important}
html.candlecursor input,html.candlecursor textarea,html.candlecursor select,html.candlecursor [contenteditable]{cursor:text!important}
html.candlecursor iframe,html.candlecursor .arena,html.candlecursor .arena *{cursor:crosshair!important}
.candlecur{position:fixed;left:0;top:0;z-index:100;pointer-events:none;--h:14px;--c:#8ff0c4;transition:opacity .12s}
.candlecur .wick{position:absolute;left:-1px;top:0;width:2px;height:calc(var(--h) + 10px);background:var(--c)}
.candlecur .body{position:absolute;left:-5px;top:4px;width:10px;height:var(--h);background:var(--c);box-shadow:0 0 10px var(--c)}
.candlecur.down{--c:#ff8f9f}
.candlecur.pumping .body{animation:pumpglow .3s steps(2) infinite}
.candlecur .pumplbl{position:absolute;left:12px;top:0;font:400 11px var(--pix);color:#8ff0c4;white-space:nowrap;text-shadow:0 0 8px #8ff0c4}
@keyframes pumpglow{50%{filter:brightness(1.5)}}

/* ---------- cat buddy ---------- */
.buddy{position:fixed;left:calc(10px + env(safe-area-inset-left,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:16;width:170px;pointer-events:none}
.buddy>*{pointer-events:auto}
.bstage{position:relative;height:78px;pointer-events:none}
.bcat{position:absolute;left:0;bottom:0;width:72px;height:72px;image-rendering:pixelated;cursor:pointer;pointer-events:auto;transform-origin:36px 36px;filter:drop-shadow(0 3px 0 rgba(0,0,0,.5))}
.bcat:focus-visible{outline:1px dashed var(--glow)}
.byarn{position:absolute;left:0;bottom:2px;width:18px;height:18px;image-rendering:pixelated;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 0 6px rgba(255,106,213,.6))}
.bbubble{position:absolute;left:4px;bottom:76px;background:var(--text);color:var(--void);font:400 10px var(--pix);padding:3px 7px;white-space:nowrap;pointer-events:none}
.bbubble::after{content:"";position:absolute;left:16px;bottom:-4px;border:4px solid transparent;border-top-color:var(--text);border-bottom:0}
.bfx{position:absolute;inset:0;pointer-events:none}
.bfloat{position:absolute;bottom:56px;font:400 12px var(--pix);animation:bfloat 1.5s forwards}
.bfloat.p{color:#ff8faf}.bfloat.g{color:var(--ok)}.bfloat.z{color:var(--glow)}
@keyframes bfloat{to{transform:translate(10px,-40px);opacity:0}}
.bshow{font:400 11px var(--pix);background:var(--panel);color:var(--text);border:1px solid var(--line);padding:6px 10px}
.bmenu{position:absolute;left:0;bottom:84px;width:220px;background:var(--panel);border:1px solid var(--glow);box-shadow:0 0 30px rgba(0,0,0,.6);padding:10px;display:grid;gap:8px;font-size:11px}
.bm-top{display:flex;justify-content:space-between;align-items:center}
.bm-top b{font:400 13px var(--pix);color:var(--hi);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bmenu button{background:var(--panel2);border:1px solid var(--line);color:var(--text);font:400 10px var(--pix);padding:5px 6px}
.bmenu button:hover{border-color:var(--glow);color:var(--hi)}
.bm-x{padding:2px 7px!important}
.bm-bars{display:grid;gap:4px}
.bm-bars label{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:6px;color:var(--dim);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.bm-bars span{height:7px;background:var(--panel2);border:1px solid var(--line)}
.bm-bars i{display:block;height:100%;background:var(--ok);transition:width .4s}
.bm-bars i.low{background:var(--bad)}
.bm-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.bm-dress{display:grid;gap:4px}
.bm-dress div{display:grid;grid-template-columns:30px 22px 1fr 22px;align-items:center;gap:4px}
.bm-dress span{color:var(--dim);font-size:10px;text-transform:uppercase}
.bm-dress em{font-style:normal;text-align:center;color:var(--hi);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bm-dress button{padding:3px 0}
.bm-nameform{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px}
.bm-nameform input{padding:5px 7px;font-size:12px}
.bm-foot{display:flex;justify-content:space-between;gap:4px}
.pcatrow{display:flex;gap:14px;align-items:center;margin:0 0 14px}
.pcat{width:72px;height:72px;image-rendering:pixelated;border:1px solid var(--line);background:var(--panel)}
.pcatrow b{color:var(--hi);font-weight:500}
@media (max-width:560px){.bmenu{width:min(240px,calc(100vw - 24px))}.heropop{font-size:10px;gap:3px}.solpx{width:10px;height:9px}}
@media (prefers-reduced-motion:reduce){.bfloat{animation:none;opacity:0}}

/* PNL card */
.pnlmodal{max-width:640px}
.pnlimg{width:100%;aspect-ratio:16/9;border:1px solid var(--line);background:var(--void);display:block}
.pnlbtn{margin-top:8px}
#pnlBox .row .btn{text-decoration:none}

.pwrow{display:flex;gap:6px;align-items:center}
.pwrow a{flex:1;min-width:0}
.pnlmini{padding:3px 7px!important;font-size:10px!important}

/* ---------- nopadgotchi ---------- */
.bfollow{position:absolute;left:0;bottom:0;width:190px;height:78px;pointer-events:none}
.bbubble{max-width:170px;white-space:normal;line-height:1.3}
.bcat.kitten{width:58px;height:58px}
.bfloat.r{color:#ff4d4d}.bfloat.s{color:#8fd19e}
.bconf{position:absolute;bottom:40px;width:5px;height:5px;animation:bconf 1.1s ease-out forwards}
@keyframes bconf{to{transform:translate(var(--dx),var(--dy)) rotate(200deg);opacity:0}}
.poops{position:absolute;left:0;bottom:0;height:20px;pointer-events:none}
.poop{position:absolute;bottom:2px;width:15px;height:13px;border:0;padding:0;pointer-events:auto;cursor:pointer;image-rendering:pixelated;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 7' shape-rendering='crispEdges'%3E%3Cpath fill='%238b5a2b' d='M3 0h2v1H3zM2 1h4v2H2zM1 3h6v2H1zM0 5h8v2H0z'/%3E%3Cpath fill='%23b07a45' d='M3 1h1v1H3zM2 3h1v1H2zM1 5h2v1H1z'/%3E%3C/svg%3E") center/contain no-repeat}
.poop::after{content:"";position:absolute;left:2px;top:-7px;width:2px;height:4px;background:#7a8299;opacity:.6;box-shadow:6px 1px 0 #7a8299;animation:stink 1s steps(2) infinite}
@keyframes stink{50%{transform:translateY(-2px)}}
.bmenu{width:236px;padding:0;background:none;border:0;box-shadow:none;bottom:86px}
.egg{background:radial-gradient(circle at 30% 20%,#b7c6ff,#6f7fd0 55%,#4a578f);border-radius:48% 48% 44% 44% / 40% 40% 56% 56%;padding:22px 18px 16px;box-shadow:0 10px 30px rgba(0,0,0,.6),inset 0 -6px 0 rgba(0,0,0,.25),inset 0 4px 0 rgba(255,255,255,.25);display:grid;gap:10px;justify-items:center}
.eggtop{display:flex;justify-content:space-between;align-items:center;width:100%}
.eggbrand{font:400 10px var(--pix);color:#1b2142;letter-spacing:.06em}
.egg .bm-x{background:#1b2142;color:#b7c6ff;border:0;font:400 10px var(--pix);padding:2px 7px}
.lcd{width:100%;background:#c8d4b0;color:#253020;border:4px solid #3a4766;box-shadow:inset 0 0 0 2px #a9b88f,inset 2px 2px 6px rgba(0,0,0,.25);padding:8px;display:grid;gap:6px;font:400 10px var(--mono)}
.lcd-head{display:flex;justify-content:space-between;gap:6px;align-items:baseline}
.lcd-head b{font:400 12px var(--pix);color:#1d2619;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lcd-stage{font-size:9px;white-space:nowrap}
.lcd-icons{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.lcd-icons button{background:none;border:1px solid transparent;padding:2px;color:#253020;line-height:0}
.lcd-icons button svg{width:100%;height:auto;fill:currentColor}
.lcd-icons button.sel{border-color:#253020;background:#b4c299}
.lcd-icons button.alert{animation:lcdblink 1s steps(2) infinite}
@keyframes lcdblink{50%{color:#c8d4b0;background:#253020}}
.lcd-label{text-align:center;font:400 10px var(--pix);min-height:1.2em}
.lcd-stats{display:grid;gap:3px}
.lcd-stats div{display:flex;justify-content:space-between;align-items:center}
.hearts{display:inline-flex;gap:3px}
.hearts i{width:9px;height:8px;background:#a9b88f;clip-path:polygon(50% 100%,0 40%,0 15%,20% 0,50% 20%,80% 0,100% 15%,100% 40%)}
.hearts i.on{background:#253020}
.lcd-info{text-align:center;font-size:9px;border-top:1px dashed #8a9a70;padding-top:5px}
.lcd-dress{display:grid;gap:4px;border-top:1px dashed #8a9a70;padding-top:6px}
.lcd-dress>div{display:grid;grid-template-columns:38px 20px 1fr 20px;align-items:center;gap:3px}
.lcd-dress span{font-size:9px;text-transform:uppercase}
.lcd-dress em{font-style:normal;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lcd-dress button,.lcd-row button,.lcd .bm-nameform button{background:#b4c299;border:1px solid #253020;color:#253020;font:400 9px var(--pix);padding:3px 4px}
.lcd-row{display:flex!important;justify-content:center}
.lcd .bm-nameform{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px}
.lcd .bm-nameform input{background:#e2ead2;color:#253020;border:1px solid #253020;padding:3px 5px;font-size:12px}
.eggbtns{display:flex;gap:18px;margin-top:2px}
.eggbtns button{width:30px;height:30px;border-radius:50%;border:0;background:radial-gradient(circle at 35% 30%,#ffd1dc,#ff6a95 60%,#c23d66);color:#5a1028;font:400 10px var(--pix);box-shadow:0 3px 0 #8a2347}
.eggbtns button:active{transform:translateY(2px);box-shadow:0 1px 0 #8a2347}
.egghide{background:none!important;border:0!important;color:#1b2142!important;font:400 9px var(--pix)!important;opacity:.75;padding:0!important}
.lcd button:hover{color:#1d2619;border-color:#253020}
.bbubble.mad{background:#ff4d4d;color:var(--hi);font-size:11px}.bbubble.mad::after{border-top-color:#ff4d4d}
.bbubble.win{background:#8ff0c4;color:var(--void)}.bbubble.win::after{border-top-color:#8ff0c4}

/* ---------- chat ---------- */
.chatw{position:fixed;right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:14;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.chatbtn{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--glow);color:var(--hi);font:400 13px var(--pix);padding:10px 14px;box-shadow:0 0 22px rgba(157,180,255,.25);position:relative}
.chatbtn svg{width:18px;height:18px}
.chatbtn:hover{background:var(--panel2)}
.isopen .chatbtn{border-color:var(--line);box-shadow:none}
.chatbadge{position:absolute;top:-8px;right:-8px;min-width:20px;height:20px;padding:0 5px;background:var(--bad);color:var(--void);font:400 10px var(--pix);display:grid;place-items:center}
.chatpanel{width:min(360px,calc(100vw - 28px));height:min(520px,calc(100dvh - 140px));background:var(--panel);border:1px solid var(--glow);box-shadow:0 10px 40px rgba(0,0,0,.6);display:flex;flex-direction:column;position:relative}
.chathead{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}
.chathead b{font:400 14px var(--pix);color:var(--hi);flex:1}
.chaton{font-size:11px;color:var(--dim);display:inline-flex;align-items:center;gap:2px}
.chatx{background:none;border:1px solid var(--line);color:var(--text);font:400 11px var(--pix);padding:2px 8px}
.chatlist{flex:1;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.cmsg{display:grid;gap:3px;padding:6px 8px;border-left:2px solid transparent}
.cmsg.mine{border-left-color:var(--glow);background:rgba(157,180,255,.05)}
.cmeta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.cmeta .uname{font-size:12px;min-width:0}
.cmeta .av{width:24px;height:24px}
.cmeta time{font-size:10px;color:var(--dim);flex:none}
.cbody{font-size:13px;line-height:1.45;color:var(--text);word-break:break-word;white-space:pre-wrap;padding-left:30px}
.chatnew{position:absolute;left:50%;bottom:64px;transform:translateX(-50%);background:var(--glow);color:var(--void);border:0;font:400 10px var(--pix);padding:5px 10px}
.chatform{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;padding:10px;border-top:1px solid var(--line)}
.chatform input{font-size:14px}
.chatform .btn{min-width:64px;padding:8px 10px}
.chatgate{padding:12px;border-top:1px solid var(--line);font-size:12px;color:var(--dim);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chaterr{color:var(--bad);font-size:11px;padding:0 10px 8px;min-height:0}
.chaterr:empty{display:none}
.chatempty{text-align:center;margin:auto}
@media (max-width:560px){
  .chatw{right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  .chatbtn span{display:none}
  .chatbtn{padding:11px}
  .chatpanel{position:fixed;left:8px;right:8px;bottom:calc(66px + env(safe-area-inset-bottom,0px));width:auto;height:min(70dvh,560px)}
}

/* ---------- profile ---------- */
.pbanner{aspect-ratio:3/1;width:100%;max-width:100%;margin-top:16px;background-size:cover;background-position:center;border:1px solid var(--line);background-color:var(--panel2)}
.phead2{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:-52px;padding-inline:16px;flex-wrap:wrap}
.phead2 .avhuge{width:104px;height:104px;border:3px solid var(--void);box-shadow:0 0 0 1px var(--glow)}
.pactions{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:4px}
.pactions .btn{text-decoration:none}
.pinfo{padding:12px 0 6px;display:grid;gap:8px}
.pbio{margin:0;max-width:44em;white-space:pre-wrap;word-break:break-word}
.pmeta{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.xlink{display:inline-flex;align-items:center;gap:6px;color:var(--hi);text-decoration:none;border:1px solid var(--line);padding:4px 9px;font-size:12px}
.xlink:hover{border-color:var(--glow)}
.pfollow{display:flex;gap:16px}
.linkbtn{background:none;border:0;padding:0;color:var(--dim);font:inherit;font-size:13px}
.linkbtn b{color:var(--hi);font-weight:500}
.linkbtn:hover{text-decoration:underline}
.ptop5{padding-block:18px}
.top5row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.top5card{position:relative;display:grid;justify-items:center;gap:6px;padding:12px 6px;border:1px solid var(--line);background:var(--panel);text-decoration:none;color:var(--text);min-width:0}
.top5card:hover{border-color:var(--glow)}
.top5card .avbig{width:56px;height:56px}
.top5n{position:absolute;left:6px;top:4px;font:400 11px var(--pix);color:var(--glow)}
.top5name{display:inline-flex;align-items:center;gap:4px;font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lbody{display:grid;gap:8px;max-height:min(60vh,480px);overflow:auto}
.lrow .av{width:28px;height:28px}
.pemodal{max-width:520px;max-height:calc(100dvh - 32px);overflow:auto}
.pebanner{aspect-ratio:3/1;width:100%;background-size:cover;background-position:center;border:1px solid var(--line)}
.filebtn{position:relative;overflow:hidden;cursor:pointer}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pefriends{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.pefriends input{padding:7px 8px;font-size:13px}
@media (max-width:560px){
  .phead2{margin-top:-40px;padding-inline:8px}
  .phead2 .avhuge{width:80px;height:80px}
  .top5row{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  .top5card{padding:8px 2px}
  .top5card .avbig{width:44px;height:44px}
  .top5name{font-size:10px}
  .pefriends{grid-template-columns:1fr 1fr}
}

/* ---------- front page top 5s ---------- */
.topbox{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.topbox>div{min-width:0}
.tophead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.tophead h3{font:400 15px var(--pix);color:var(--hi);margin:0}
.toplist{display:grid;gap:8px}
.topcard{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);background:var(--panel);text-decoration:none;color:var(--text);min-width:0}
.topcard:hover{border-color:var(--glow);background:var(--panel2)}
.topn{font:400 14px var(--pix);color:var(--dim);width:16px;flex:none}
.topcard:first-child .topn{color:#ffd166}
.topimg{width:52px;height:52px;flex:none;object-fit:cover;border:1px solid var(--line);background:var(--panel2);image-rendering:auto}
.topimg.av0{display:grid;place-items:center;font:400 22px var(--pix);color:var(--glow)}
.topmain{display:grid;gap:3px;min-width:0}
.topname{display:inline-flex;align-items:center;gap:6px;color:var(--hi);font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topsub{font-size:13px;font-variant-numeric:tabular-nums}
@media (max-width:640px){.topbox{grid-template-columns:1fr}}

/* ---------- nocat: draggable, menu always on screen, text wraps ---------- */
.buddy.dragging .bcat{cursor:grabbing;filter:drop-shadow(0 10px 6px rgba(0,0,0,.55))}
.bcat{cursor:grab}
.bmenu{position:fixed;left:8px;top:8px;bottom:auto;width:min(260px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;overscroll-behavior:contain;z-index:3}
.egg{padding:clamp(14px,4vw,22px) clamp(12px,4vw,18px) 14px;border-radius:44% 44% 40% 40% / 30% 30% 46% 46%}
.lcd{font-size:clamp(9px,2.6vw,10px);overflow-wrap:anywhere}
.lcd-head{flex-wrap:wrap;row-gap:2px}
.lcd-head b{max-width:100%}
.lcd-stage{white-space:normal}
.lcd-label,.lcd-info,.lcd-tip{text-wrap:balance}
.lcd-info{line-height:1.45}
.lcd-stats div{gap:6px}
.lcd-stats div>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lcd-lv{display:grid;gap:3px;border-top:1px dashed #8a9a70;padding-top:5px}
.lcd-lvtop{display:flex;justify-content:space-between;align-items:baseline;gap:6px;flex-wrap:wrap}
.lcd-lvn{font:400 12px var(--pix);color:#1d2619}
.lcd-lvp{font-size:9px}
.lcd-bar,.lcdbar{height:7px;background:#a9b88f;border:1px solid #253020}
.lcd-bar i,.lcdbar i{display:block;height:100%;background:#253020;transition:width .5s}
.lcd-tip{margin:0;font-size:9px;line-height:1.35;color:#3a4a33}
.lcd-dress>div{grid-template-columns:minmax(24px,auto) 20px minmax(0,1fr) 20px}
.lcd .bm-nameform input{min-width:0}
.eggbtns{gap:clamp(10px,5vw,18px)}
.bfollow.below .bbubble{bottom:auto;top:80px}
.bfollow.below .bbubble::after{bottom:auto;top:-4px;border-top:0;border-bottom:4px solid var(--text)}
.bfollow.below .bbubble.mad::after{border-bottom-color:#ff4d4d}
.bfollow.below .bbubble.win::after{border-bottom-color:#8ff0c4}
.bbubble{max-width:min(180px,calc(100vw - 40px));overflow-wrap:anywhere}

/* ticker check */
.tickmsg{font-size:11px;min-height:1.4em;margin-top:3px}

/* ---------- top 10 nocats ---------- */
.nocats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nocat{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);background:var(--panel);min-width:0}
.nocat.podium{border-color:#3a4766}
.nocat.p1{border-color:#ffd166;box-shadow:0 0 18px rgba(255,209,102,.18)}
.nocatn{font:400 15px var(--pix);color:var(--dim);width:22px;flex:none}
.p1 .nocatn{color:#ffd166}.p2 .nocatn{color:#c4d0f0}.p3 .nocatn{color:#ff9f43}
.nocatimg{width:64px;height:64px;flex:none;image-rendering:pixelated;background:var(--deep);border:1px solid var(--line)}
.nocatmain{display:grid;gap:3px;min-width:0;flex:1}
.nocatmain>b{color:var(--hi);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nocatown{font-size:12px;min-width:0}
.nocatown .av{width:18px;height:18px}
.nocatlv{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.nocatlv span:first-child{font-family:var(--pix);color:var(--glow)}
.nocat .lcdbar{background:var(--panel2);border-color:var(--line)}
.nocat .lcdbar i{background:var(--glow)}
.pbar{width:160px;max-width:100%;margin:4px 0 2px;background:var(--panel2);border-color:var(--line)}
.pbar i{background:var(--glow)}
.lvtable{margin-top:14px;font-size:12px}
.lvtable summary{cursor:pointer;color:var(--dim)}
.lvtable>div{display:grid;gap:4px;margin-top:8px;max-width:420px}
.lvtable>div>div{display:grid;grid-template-columns:1fr auto auto;gap:14px;border-bottom:1px solid var(--line);padding-block:4px}
@media (max-width:640px){.nocats{grid-template-columns:1fr}.nocatimg{width:56px;height:56px}}
.eggtop{padding-inline:16%}
.egg{border-radius:38% 38% 34% 34% / 14% 14% 24% 24%}.eggtop{padding-inline:12%}

/* ---------- real $NOPAD trading ---------- */
.realbox{margin-top:18px;border:2px solid #ffd166;background:linear-gradient(180deg,rgba(255,209,102,.06),transparent 60%),var(--panel);padding:14px;display:grid;gap:12px;box-shadow:0 0 30px rgba(255,209,102,.08)}
.realbox:empty{display:none}
.realbox p{margin:0;overflow-wrap:anywhere}
.realhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.realhead h3{margin:0;font:400 16px var(--pix);color:var(--hi)}
.realbadge{font:400 10px var(--pix);background:#ffd166;color:#1a1300;padding:3px 7px;letter-spacing:.06em}
.realwarn{display:grid;gap:10px;border:1px dashed #ffd166;padding:12px}
.realwarn b{color:#ffd166;font-family:var(--pix);font-weight:400}
.realack{display:flex;gap:8px;align-items:flex-start;font-size:13px;cursor:pointer}
.realack input{width:auto;margin-top:3px;accent-color:#ffd166}
.realwallet{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.realwallet .realbal{flex:1;min-width:140px;color:var(--dim);font-variant-numeric:tabular-nums}
.realside{justify-self:start}
.realform{display:grid;gap:6px}
.realform .quick{flex-wrap:wrap}
.realquote{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:1px solid var(--line);padding:12px;background:var(--panel2)}
.realquote>div{min-width:0}
.realquote b{display:block;color:var(--hi);font-weight:500;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.realquote .note,.realquote .row,.realquote .realack{grid-column:1/-1}
.realmsg{font-size:12px;min-height:1.2em}
.realmsg.bad{color:var(--bad)}.realmsg.ok{color:var(--ok)}
.realmsg a{color:var(--ok)}
.realsafe{margin:0;padding-left:18px;font-size:11px;color:var(--dim);display:grid;gap:3px}
.realca{font-size:11px;color:var(--hi);word-break:break-all}
.realhist summary{cursor:pointer;font-size:12px;color:var(--dim)}
.realhist div{display:grid;grid-template-columns:42px 1fr 1fr 60px 24px;gap:8px;font-size:12px;padding-block:4px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
@media (max-width:560px){.realquote{grid-template-columns:1fr}.realhist div{grid-template-columns:38px 1fr 1fr 48px 20px;gap:4px;font-size:11px}}

/* ---------- themes: dark is the default above ---------- */
html[data-theme="light"]{--void:#f4f5f8;--panel:#ffffff;--panel2:#eef0f5;--line:#d9dde6;--text:#2a2f3a;--dim:#6b7280;--glow:#4f6bed;--ok:#0f9d63;--bad:#d93a58;--hi:#0d1018;--deep:#ffffff;--stripbg:rgba(244,245,248,.92);--scrim:rgba(20,24,32,.45);--grid:#eceef3;color-scheme:light}
html[data-theme="matrix"]{--void:#020604;--panel:#07110b;--panel2:#0b1910;--line:#12331f;--text:#b6f5c8;--dim:#4f8a63;--glow:#39ff88;--ok:#39ff88;--bad:#ff5f6d;--hi:#eafff0;--deep:#010402;--stripbg:rgba(2,6,4,.92);--scrim:rgba(2,6,4,.82);--grid:#0a1a10}
html[data-theme="vapor"]{--void:#140b24;--panel:#1d1135;--panel2:#26174a;--line:#3b2766;--text:#f3d9ff;--dim:#a083c9;--glow:#ff71ce;--ok:#01cdfe;--bad:#ff6b8b;--hi:#ffffff;--deep:#10081e;--stripbg:rgba(20,11,36,.92);--scrim:rgba(20,11,36,.82);--grid:#241544}
html[data-theme="gameboy"]{--void:#c4cfa1;--panel:#b3c08c;--panel2:#a5b37e;--line:#8b9a63;--text:#1f2a12;--dim:#4d5a33;--glow:#2f3d17;--ok:#2f6b1f;--bad:#8c2f2f;--hi:#0f1608;--deep:#9fae74;--stripbg:rgba(196,207,161,.94);--scrim:rgba(31,42,18,.55);--grid:#b0bd88;color-scheme:light}
html[data-theme="ocean"]{--void:#06141c;--panel:#0b2230;--panel2:#0f2c3d;--line:#17405a;--text:#d3ecf5;--dim:#6f98ab;--glow:#4fd1ff;--ok:#5ef2c4;--bad:#ff8a8a;--hi:#ffffff;--deep:#041018;--stripbg:rgba(6,20,28,.92);--scrim:rgba(6,20,28,.82);--grid:#0c2433}
html[data-theme="sunset"]{--void:#1a0f0f;--panel:#261616;--panel2:#321c1b;--line:#4a2a27;--text:#f7e3d4;--dim:#b08a7a;--glow:#ffb35c;--ok:#8fe3a0;--bad:#ff7a6b;--hi:#fff6ee;--deep:#140b0b;--stripbg:rgba(26,15,15,.92);--scrim:rgba(26,15,15,.82);--grid:#2a1817}
html[data-theme="light"] body::after,html[data-theme="gameboy"] body::after{background:repeating-linear-gradient(to bottom,rgba(0,0,0,.025) 0 1px,transparent 1px 3px)}
html[data-theme="light"] h1,html[data-theme="gameboy"] h1{text-shadow:none}
.themebtn{display:inline-grid;place-items:center;width:34px;height:32px;padding:0}
.themebtn i{width:16px;height:16px;border-radius:50%;background:conic-gradient(var(--glow) 0 50%,var(--text) 50% 100%);border:1px solid var(--line)}
.themepop{position:fixed;z-index:30;background:var(--panel);border:1px solid var(--glow);box-shadow:0 10px 30px rgba(0,0,0,.35);padding:6px;display:grid;gap:2px;min-width:170px}
.themepop button{display:flex;align-items:center;gap:10px;background:none;border:0;color:var(--text);font:inherit;font-size:13px;padding:7px 9px;text-align:left}
.themepop button:hover,.themepop button.on{background:var(--panel2);color:var(--hi)}
.themepop .sw{display:inline-flex;width:28px;height:16px;border:1px solid rgba(128,128,128,.4);flex:none}
.themepop .sw b{flex:1}

/* ---------- Padbridge town ---------- */
.townwrap{border:3px solid #3a2a14;box-shadow:0 0 0 2px #8b6a3a,0 10px 30px rgba(0,0,0,.35);background:#5d9a3c;line-height:0}
.towncanvas{width:100%;aspect-ratio:480/272;display:block;image-rendering:pixelated;touch-action:manipulation}
.townbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin-top:10px}
.townemotes{display:flex;flex-wrap:wrap;gap:4px}
.temote{width:34px;height:34px;font-size:18px;line-height:1;background:var(--panel);border:1px solid var(--line);padding:0;display:grid;place-items:center}
.temote:hover{border-color:var(--glow);transform:translateY(-2px)}
.townform{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.townlog{margin-top:10px;background:#d8c9a3;color:#2a1d0a;border:2px solid #6b4f24;padding:6px 10px;font-size:12px;line-height:1.5;min-height:3em;display:grid;gap:1px}
.townlog:empty{display:none}
.townlog b{color:#1e3f8c;font-weight:600}
.townlog span{color:#2a1d0a;overflow-wrap:anywhere}
@media (max-width:700px){.townbar{grid-template-columns:1fr}.temote{width:30px;height:30px;font-size:16px}}

.chatemo{width:38px;background:var(--panel2);border:1px solid var(--line);font-size:18px;padding:0}
.emogrid{display:grid;grid-template-columns:repeat(9,1fr);gap:2px;padding:8px 10px;border-top:1px solid var(--line);max-height:150px;overflow:auto}
.emogrid button{background:none;border:0;font-size:20px;padding:4px 0;line-height:1}
.emogrid button:hover{background:var(--panel2)}

/* coin banner and owner tools */
.cbanner{aspect-ratio:3/1;width:100%;margin-top:16px;background-size:cover;background-position:center;border:1px solid var(--line);background-color:var(--panel2)}
.coinhead.hasbanner{padding-top:12px}
.coinhead.hasbanner>img{width:84px;height:84px;margin-top:-46px;border:2px solid var(--void);box-shadow:0 0 0 1px var(--line)}
#coinEditBtn{flex:none;align-self:flex-start}
.ceimg{width:56px;height:56px;flex:none;display:grid;place-items:center;border:1px solid var(--line);background:var(--panel2);color:var(--dim);overflow:hidden}
.ceimg img{width:100%;height:100%;object-fit:cover}
@media (max-width:640px){
  .cbanner{margin-top:8px}
  .coinhead.hasbanner>img{width:56px;height:56px;margin-top:-30px}
  #coinEditBtn{padding:6px 8px;font-size:11px}
}
.ownset{display:flex;gap:6px;align-items:center}.ownset input{width:120px;min-width:0;padding:6px 8px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid3>*{min-width:0}
@media (max-width:640px){.grid3{grid-template-columns:1fr}}

/* earn SOL page */
.earnbtn{background:var(--ok);border-color:var(--ok);color:var(--void)}
.earnhead{padding-block:24px 8px}
.earnhead h2{font-size:26px;margin:8px 0 6px}
.cash{color:var(--ok)}
.earngrid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:20px;align-items:start;padding-bottom:40px}
.earnbox{display:flex;flex-direction:column;gap:14px;position:sticky;top:76px}
.streak .pips{display:flex;gap:8px;align-items:center;margin:8px 0 6px}
.streak .pips i{width:34px;height:14px;border:1px solid var(--line);background:var(--panel2)}
.streak .pips i.on{background:var(--ok);border-color:var(--ok);box-shadow:0 0 10px color-mix(in srgb,var(--ok) 50%,transparent)}
.bonuspip{font-size:11px;padding:2px 6px;border:1px dashed var(--line);color:var(--dim)}
.bonuspip.on{border:1px solid var(--hi);color:var(--hi)}
.linkstate{font-size:13px;line-height:1.5;padding:10px 12px;border:1px solid var(--line);background:var(--panel2);overflow-wrap:anywhere}
#ePost{display:inline-flex;gap:8px;align-items:center;justify-content:center;text-decoration:none}
.eform .row{flex-wrap:nowrap}.eform input{flex:1;min-width:0}
.estats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.estats b{display:block;font-size:13px;margin-top:2px;overflow-wrap:anywhere}
.erules summary{cursor:pointer;color:var(--dim);font-size:13px}
.erules ul{margin:8px 0 0;padding-left:18px;color:var(--dim);font-size:12px;line-height:1.6}
.feedhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.feedhead h2{margin:0}
.earnfeed .tabs{display:flex;gap:6px;margin:10px 0}
#eFeed{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.xpost{border:1px solid var(--line);background:var(--panel);padding:12px 14px}
.xphead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.xph{display:inline-flex;gap:4px;align-items:center;color:var(--dim);text-decoration:none}
.xph:hover{color:var(--text)}
.xpreward{margin-left:auto;font-size:12px;color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent);padding:2px 6px}
.xpreward.gone{color:var(--bad);border-color:var(--bad)}
.xptext{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;font-size:14px}
.xpopen{font-size:12px}
#eMore{margin-top:12px}
@media (max-width:800px){
  .earngrid{grid-template-columns:1fr}
  .earnbox{position:static}
  .earnhead h2{font-size:22px}
}
.demonote{border:1px dashed var(--line);padding:8px 10px;margin:8px 0 0}

/* platform stats */
.platsec{padding-top:8px}
.plathead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.plathead .note{display:inline-flex;align-items:center;gap:6px}
.livedot{width:8px;height:8px;background:var(--ok);display:inline-block;animation:livedot 1.6s steps(2) infinite}
@keyframes livedot{50%{opacity:.25}}
.platgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:12px}
.platgrid.more{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:-1px}
.plathead .platmorebtn{margin-left:auto}
.plathead h2{margin-right:auto}
.ptile{background:var(--panel);padding:14px 14px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.ptile .lbl{margin:0}
.ptile b{font-size:22px;font-weight:600;color:var(--text);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.ptile .note{font-size:11px;overflow-wrap:anywhere}
.platgrid.more .ptile:last-child b{color:var(--hi)}
@media (max-width:900px){.platgrid.main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.platgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.ptile{padding:10px}.ptile b{font-size:17px}.platgrid.more{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.livedot{animation:none}}

/* $NOPAD pool details and self drawn chart */
.nopadinfo{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:10px;font-size:12px;color:var(--dim)}
.nopadinfo span{display:inline-flex;align-items:center;gap:6px;min-width:0}
.nopadinfo img{width:18px;height:18px;object-fit:cover;border:1px solid var(--line)}
.nopadinfo b{color:var(--text);font-weight:500}
.nopadinfo .up,.metrics small.up{color:var(--ok)}
.nopadinfo .down,.metrics small.down{color:var(--bad)}
.metrics small{font-size:11px;font-weight:400;margin-left:2px}
.poolchart{position:absolute;inset:0 0 18px 0}
.poolsrc{position:absolute;left:8px;bottom:2px;font-size:10px}

/* real $NOPAD chart */
.ncwrap{display:block}
.nchead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ncid{display:flex;align-items:center;gap:12px;min-width:0}
.ncid img,.ncimg0{width:48px;height:48px;object-fit:cover;border:1px solid var(--line);background:var(--panel2);display:grid;place-items:center;color:var(--dim);flex:none}
.ncid b{font-weight:600}
.ncpx{margin-top:2px;font-size:13px}
.ncpx b{font-size:18px}
.ncpx .up,.ncstats .up,.nctrades .up{color:var(--ok)}
.ncpx .down,.ncstats .down,.nctrades .down{color:var(--bad)}
.ncbtns{display:flex;gap:8px}
.ncbtns .btn{min-width:92px}
.ncarena{height:440px}
.ncarena #ncTv{position:absolute;inset:0}
.ncmsg{position:absolute;inset:0;display:grid;place-items:center;color:var(--dim);font-size:13px;pointer-events:none}
.ncmsg[hidden]{display:none}
.ncstats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:12px 0 16px}
.ncstats>div{background:var(--panel);padding:10px 12px;min-width:0}
.ncstats .lbl{margin:0 0 4px}
.ncstats b{font-size:15px;overflow-wrap:anywhere}
.ncfilter{margin-bottom:10px}
.nctrades tr.buy td:first-child{box-shadow:inset 2px 0 var(--ok)}
.nctrades tr.sell td:first-child{box-shadow:inset 2px 0 var(--bad)}
.nctrades tr.flash{animation:ncflash 1.6s ease-out}
@keyframes ncflash{from{background:color-mix(in srgb,var(--hi) 22%,transparent)}to{background:transparent}}
.ncsrc{font-size:11px;margin-top:8px}
@media (max-width:640px){
  .ncarena{height:340px}
  .ncstats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ncstats>div:last-child{grid-column:span 2}
  .ncbtns{width:100%}.ncbtns .btn{flex:1}
  .ncid img,.ncimg0{width:40px;height:40px}
  .nctrades th:nth-child(5),.nctrades td:nth-child(5){display:none}
}
@media (prefers-reduced-motion:reduce){.nctrades tr.flash{animation:none}}
.ncscroll{max-height:440px;overflow:auto;border-bottom:1px solid var(--line)}
.ncscroll thead th{position:sticky;top:0;background:var(--void);z-index:1}
@media (max-width:640px){.ncscroll{max-height:360px}}

/* ticker */
.ticker{display:flex;align-items:center;border-bottom:1px solid var(--line);background:var(--panel);font-size:12px;height:34px;overflow:hidden;position:relative}
.ticker[hidden]{display:none}
.tklbl{flex:none;padding:0 12px;height:100%;display:flex;align-items:center;color:var(--void);background:var(--hi);font-family:var(--pix);font-size:11px;letter-spacing:.04em;text-transform:uppercase;z-index:1}
.tkview{flex:1;overflow:hidden;height:100%;mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent)}
.tktrack{display:flex;width:max-content;height:100%;animation:tkscroll var(--tkdur,40s) linear infinite}
.ticker:hover .tktrack,.ticker:focus-within .tktrack{animation-play-state:paused}
.tkset{display:flex;height:100%}
.tkitem{display:inline-flex;align-items:center;gap:7px;padding:0 16px;height:100%;color:var(--text);text-decoration:none;border-right:1px solid var(--line);white-space:nowrap}
.tkitem:hover{background:var(--panel2)}
.tkitem img,.tkimg0{width:18px;height:18px;object-fit:cover;border:1px solid var(--line);background:var(--panel2);display:inline-block}
.tkitem b{font-weight:600}
.tkitem span{color:var(--dim)}
.tkitem .up{color:var(--ok)}.tkitem .down{color:var(--bad)}
.tkitem .tkb{color:#ffd166;display:inline-flex}.tkitem .tkb svg{width:12px;height:12px}
.tkitem.real b{color:var(--hi)}
.tkreal{font-size:9px;padding:1px 4px;border:1px solid #ffd166;color:#ffd166!important}
@keyframes tkscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:640px){.ticker{height:30px;font-size:11px}.tklbl{padding:0 8px;font-size:9px}.tkitem{padding:0 12px;gap:5px}}
@media (prefers-reduced-motion:reduce){.tktrack{animation:none}.tkview{overflow-x:auto}.tkset[aria-hidden]{display:none}}
.platmorebtn{color:var(--hi);text-decoration:underline;font-size:12px}
/* collapsible details under the trading areas */
details.ncmore,details.cmore{margin-top:16px;border:1px solid var(--line);background:var(--panel)}
details.ncmore>summary,details.cmore>summary{cursor:pointer;list-style:none;padding:12px 14px;font-family:var(--pix);font-size:13px;color:var(--text);display:flex;align-items:center;gap:10px}
details.ncmore>summary::-webkit-details-marker,details.cmore>summary::-webkit-details-marker{display:none}
details.ncmore>summary::before,details.cmore>summary::before{content:"+";display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid var(--line);color:var(--hi);font-family:var(--mono,monospace)}
details[open].ncmore>summary::before,details[open].cmore>summary::before{content:"\2212"}
details.ncmore>summary .note,details.cmore>summary .note{font-family:inherit;font-size:11px}
details.ncmore[open],details.cmore[open]{padding:0 14px 14px}
details.ncmore[open]>summary,details.cmore[open]>summary{margin:0 -14px 12px;border-bottom:1px solid var(--line)}
#ncTradeSlot .realbox{margin-top:14px}
.ncwrap .ncstats{margin-top:0}
.cquick{display:flex;align-items:flex-end;gap:20px;margin:6px 0 14px}
.cquick b{font-size:22px;display:block;margin-top:2px}
.cqcurve{flex:1;min-width:0}
.cqcurve .bar{margin:6px 0 4px}
.cmore .stats{margin-top:0}
@media (max-width:640px){.cquick{gap:12px;margin:4px 0 10px}.cquick b{font-size:17px}}
.tkshort{display:none}
.platmorebtn{white-space:nowrap}
@media (max-width:640px){
  .tkfull{display:none}.tkshort{display:inline}
  .plathead h2{font-size:18px}
  .plathead .note{display:none}
  details.ncmore>summary .note,details.cmore>summary .note{display:none}
}

/* trading rules and slippage */
.lrules{border:1px solid var(--line);padding:12px;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.lrules legend{padding:0 6px;margin:0}
.lrules .seg{align-self:flex-start}
.lrules .note{margin:0}
.lrules [hidden]{display:none}
.crules{min-width:0}
.rulepill{display:inline-block;margin-top:4px;font-size:11px;padding:3px 7px;border:1px solid var(--line);color:var(--dim);white-space:nowrap}
.rulepill.free{border-color:var(--ok);color:var(--ok)}
.slipbox{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.slipbox .lbl{margin:0}
.slipbox .seg button{padding:5px 9px;font-size:11px}
.slipbox input{width:84px;padding:5px 8px;font-size:12px}
.slipbox .note{font-size:11px;flex-basis:100%;margin:0}
@media (max-width:640px){.cquick{flex-wrap:wrap}.crules{order:3;flex-basis:100%}.slipbox{gap:6px}.slipbox .seg button{padding:4px 7px}}

/* real launch */
.lreal{display:flex;gap:10px;align-items:flex-start;border:1px dashed #ffd166;padding:12px;cursor:pointer}
.lreal input{margin-top:3px;flex:none}
.lreal b{display:block;color:#ffd166;font-weight:600;margin-bottom:4px}
.lreal .note{display:block;margin:0}
.realpanel{border:1px solid var(--line);background:var(--panel);padding:12px 14px;margin:0 0 14px;display:flex;flex-direction:column;gap:10px;font-size:13px}
.realpanel.rpgo{border-color:#ffd166}
.realpanel.rplive{border-color:var(--ok);box-shadow:0 0 0 1px color-mix(in srgb,var(--ok) 30%,transparent),0 0 24px color-mix(in srgb,var(--ok) 15%,transparent)}
.rptop{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.rplabel{font-family:var(--pix);font-size:11px;padding:2px 7px;background:#ffd166;color:#07080c;margin-right:8px;display:inline-block}
.realpanel.rplive .rplabel{background:var(--ok)}
.rplabel.bad{background:var(--bad)}
.rpbar{height:10px;border:1px solid var(--line);background:var(--panel2)}
.rpbar i{display:block;height:100%;background:linear-gradient(90deg,#ffd166,var(--ok))}
.rpnums{display:flex;justify-content:space-between;gap:10px;color:var(--dim);font-size:12px;flex-wrap:wrap}
.rpca{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.rpca code{overflow-wrap:anywhere;font-size:12px}
.rpca .lbl{margin:0}
#realChildChart{margin-top:4px}
#rpDeposit{align-self:flex-start}
.lreal input[type=checkbox]{width:16px;height:16px;min-width:16px;padding:0;margin:2px 0 0;accent-color:#ffd166}

/* nocat device shells */
.egg[data-shell="1"]{background:radial-gradient(circle at 30% 20%,#ffd1e6,#f07fb0 55%,#b14f7e)}
.egg[data-shell="2"]{background:radial-gradient(circle at 30% 20%,#d4ffe9,#6fd6a8 55%,#2f8f66)}
.egg[data-shell="3"]{background:radial-gradient(circle at 30% 20%,#fff7c2,#f5d64a 55%,#b8971f)}
.egg[data-shell="4"]{background:radial-gradient(circle at 30% 20%,#ffd9b8,#ff9f43 55%,#c0661a)}
.egg[data-shell="5"]{background:radial-gradient(circle at 30% 20%,#ffb8b8,#e74c3c 55%,#9b2a1f)}
.egg[data-shell="6"]{background:radial-gradient(circle at 30% 20%,#5b6378,#252a38 55%,#0d1018)}
.egg[data-shell="7"]{background:radial-gradient(circle at 30% 20%,#ffffff,#e6e9f0 55%,#b5bccb)}
.egg[data-shell="8"]{background:radial-gradient(circle at 30% 20%,#fff3c4,#e0b84a 50%,#8a6a1a)}
.egg[data-shell="9"]{background:radial-gradient(circle at 30% 20%,rgba(214,200,255,.85),rgba(140,110,220,.75) 55%,rgba(80,55,150,.85));backdrop-filter:blur(4px)}
.egg[data-shell="6"] .eggbrand{color:#c4d0f0}.egg[data-shell="6"] .egghide{color:#c4d0f0!important}
.egg[data-shell="7"] .eggbrand,.egg[data-shell="3"] .eggbrand{color:#3a4766}
