:root{
  --bg:#0b0d10;--bg2:#13161b;--bg3:#1a1e25;--bg4:#232832;--line:#22272f;--line2:#303642;--ink:#f2f4f3;--ink2:#c6ccd6;--muted:#8a919f;
  --green:#50d490;--green2:#1c8460;--green-dim:rgba(80,212,144,.14);--bad:#ff7a6a;
  --head:'Outfit',system-ui,sans-serif;--body:'Inter',system-ui,sans-serif;--mono:'Geist Mono',ui-monospace,monospace;
  --r:14px;--r2:10px;
}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#2c3340 transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#2c3340;border-radius:99px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#3d4656;background-clip:content-box}
::selection{background:var(--green);color:#06130c}
html{background:var(--bg);color:var(--ink);font:15px/1.55 var(--body);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh}
[hidden]{display:none!important}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3{font-family:var(--head);letter-spacing:-.02em;line-height:1.1;margin:0}
h1{font-size:26px;font-weight:700}
h2{font-size:20px;font-weight:700}
h3{font-size:16px;font-weight:600}
p{margin:0}
.mono{font-family:var(--mono);font-size:12.5px;letter-spacing:.01em;font-variant-numeric:tabular-nums}
.dim{color:var(--muted)}
.hide{display:none!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border:1px solid var(--line2);border-radius:999px;background:var(--bg3);color:var(--ink);font:600 14px var(--body);cursor:pointer;transition:background .15s,border-color .15s}
.btn:hover{background:var(--bg4)}
.btn:disabled{opacity:.55;cursor:default}
.btn.small{height:34px;padding:0 14px;font-size:13px}
.btn.green{background:var(--green);color:#06130c;border-color:var(--green)}
.btn.green:hover{background:#63e0a0}
.btn.ghost{background:transparent}
.seg{display:inline-flex;padding:3px;border-radius:999px;background:var(--bg2);border:1px solid var(--line);gap:2px}
.seg button{border:0;background:transparent;border-radius:999px;padding:6px 12px;font:500 13px var(--body);color:var(--muted);cursor:pointer}
.seg button.on{background:var(--bg4);color:var(--ink)}
.seg button:hover:not(.on){color:var(--ink)}
.form-error{color:var(--bad)}

/* app frame: top bar, left rail, content, right rail */
.top{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;height:60px;padding:0 16px;background:var(--bg);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:9px;font:700 19px var(--head);letter-spacing:-.03em;margin-right:6px}
.brand img{width:30px;height:30px}
.search{flex:1;display:flex;align-items:center;gap:10px;max-width:560px;height:40px;padding:0 14px;border-radius:999px;background:var(--bg2);border:1px solid var(--line)}
.search svg{width:16px;height:16px;color:var(--muted);flex:none}
.search input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--ink);font:14px var(--body)}
.search input::placeholder{color:var(--muted)}
.top .right{margin-left:auto;display:flex;align-items:center;gap:8px}
.xbtn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--bg2);border:1px solid var(--line)}
.ca{display:inline-flex;align-items:center;gap:10px;padding:0 5px 0 13px;height:36px;border:1px solid var(--line2);border-radius:999px;background:var(--bg2);font:inherit;font-size:13px;color:var(--ink);cursor:pointer}
.ca-k{font-weight:700;letter-spacing:.04em;font-size:11px;color:var(--muted)}
.ca-v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500}
.ca-copy{padding:5px 10px;border-radius:999px;background:var(--green);color:#06130c;font-size:12px;font-weight:600}
.ca.is-copied .ca-copy{background:#9fe3b6}
.ca.big{height:48px;font-size:15px}
.wallet{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;background:var(--bg2);border:1px solid var(--line2);color:var(--ink);font:600 13px var(--body);cursor:pointer}
.wallet .wdot{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.wallet.on .wdot{background:var(--green)}
.frame{display:grid;grid-template-columns:200px minmax(0,1fr) 340px;gap:0;min-height:calc(100vh - 60px)}
.rail{position:sticky;top:60px;align-self:start;height:calc(100vh - 60px);padding:16px 10px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.rail a{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border-radius:var(--r2);color:var(--ink2);font-weight:500}
.rail a svg{width:18px;height:18px;color:var(--muted)}
.rail a:hover{background:var(--bg2);color:var(--ink)}
.rail a.on{background:var(--bg3);color:var(--ink)}
.rail a.on svg{color:var(--green)}
.rail .spacer{flex:1}
.rail .create{margin:8px 2px 0;height:42px;border-radius:999px;background:var(--green);color:#06130c;justify-content:center;font-weight:600}
.rail .create:hover{background:#63e0a0}
.rail .foot{padding:10px 12px 0;font-size:12px;color:var(--muted);line-height:1.45}
.main{padding:18px 22px 60px;min-width:0}
.side{position:sticky;top:60px;align-self:start;height:calc(100vh - 60px);overflow:auto;padding:18px 18px 40px;border-left:1px solid var(--line);display:grid;gap:22px;align-content:start}
.side h3{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.side .count{margin-left:auto;font:500 12px var(--mono);color:var(--muted)}

/* board */
.boardbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px;margin-bottom:14px}
.boardbar .live{display:flex;align-items:center;gap:8px;color:var(--muted)}
.live:not(:empty)::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.counters{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--muted);margin-bottom:16px}
.counters b{color:var(--ink);font-weight:500}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px}
.card{position:relative;display:grid;grid-template-columns:84px 1fr;gap:12px;padding:10px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line);cursor:pointer;text-align:left;color:inherit;font:inherit;transition:border-color .15s,background .15s}
.card:hover{background:var(--bg3);border-color:var(--line2)}
.card.open{border-color:rgba(80,212,144,.5)}
.card img{width:84px;height:84px;border-radius:10px;object-fit:cover;background:var(--bg3)}
.card .body{display:grid;gap:3px;min-width:0;align-content:start}
.card .name{display:flex;align-items:baseline;gap:7px;min-width:0}
.card .name b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .name .t{color:var(--muted);font:500 12px var(--mono)}
.card .about{font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .meta{display:flex;flex-wrap:wrap;gap:3px 10px;font:500 12px var(--mono);color:var(--muted)}
.card .meta .g{color:var(--green)}
.card .win{position:absolute;right:10px;top:10px;padding:3px 8px;border-radius:999px;background:var(--green);color:#06130c;font:500 11px var(--mono)}
.list{display:grid;gap:6px}
.row{display:grid;grid-template-columns:40px 1fr 110px 140px 100px 100px;gap:12px;align-items:center;padding:8px 12px 8px 8px;border-radius:var(--r2);background:var(--bg2);border:1px solid var(--line);cursor:pointer}
.row:hover{background:var(--bg3)}
.row.head{background:transparent;border:0;cursor:default;color:var(--muted);padding-top:0;padding-bottom:0}
.row img{width:40px;height:40px;border-radius:8px;object-fit:cover;background:var(--bg3)}
.row b{font-weight:600}
.row .t{color:var(--muted)}
.empty{padding:48px 20px;color:var(--muted);text-align:center;border:1px dashed var(--line2);border-radius:var(--r)}
.empty.small{padding:10px 0;text-align:left;border:0}

/* side panels */
.wins{display:grid;gap:8px}
.wincard{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:var(--r2);background:var(--bg2);border:1px solid rgba(80,212,144,.4);cursor:pointer}
.wincard img{width:48px;height:48px;border-radius:8px;object-fit:cover;background:var(--bg3)}
.wincard b{font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wincard .mono{color:var(--muted)}
.wincard .left{font:600 15px var(--mono);color:var(--green)}
.refused{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.refused li{padding:10px 12px;border-radius:var(--r2);background:var(--bg2);border:1px solid var(--line);font-size:13px;line-height:1.5}
.refused li b{font-weight:600}
.refused li .mono{color:var(--muted);display:block;margin-top:2px}
.pumpedbox{padding:14px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line);display:grid;gap:10px}
.pumpedbox .pcoin img{width:44px;height:44px}
.pumpedbox p{font-size:13px;color:var(--ink2)}

/* pages */
.page{max-width:820px}
.page h1{margin-bottom:8px}
.page .lede{color:var(--ink2);font-size:15.5px;max-width:64ch;margin-bottom:24px}
.docs{display:grid;gap:28px;max-width:72ch}
.docs h2{margin-bottom:8px;padding-top:8px}
.docs p{color:var(--ink2)}
.docs .box{padding:16px 18px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line)}
.docs ul{margin:0;padding-left:20px;color:var(--ink2)}

/* launch */
.launch-grid{display:grid;grid-template-columns:1.2fr .9fr;gap:18px}
.form{display:grid;gap:14px;padding:20px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line)}
.field{display:grid;gap:6px}
.field>span{font-size:13px;font-weight:600;color:var(--ink2)}
.field em{font-style:normal;font-weight:400;color:var(--muted)}
.field input:not([type=file]),.field textarea{padding:0 12px;border-radius:10px;border:1px solid var(--line2);background:var(--bg);color:var(--ink);font:inherit;outline:0}
.field input:not([type=file]){height:42px}
.field textarea{padding:10px 12px;resize:vertical;min-height:80px}
.field input:not([type=file]):focus,.field textarea:focus{border-color:var(--green)}
.field input.up{text-transform:uppercase}
.field input.bad{border-color:var(--bad)}
.file{position:relative}
.file input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.file-box{display:flex;align-items:center;gap:12px;min-height:68px;padding:10px 12px;border-radius:10px;border:1px dashed var(--line2);background:var(--bg);color:var(--muted);font-size:13px;cursor:pointer}
.file-box:hover,.file.drag .file-box{border-color:var(--green)}
.file-box img{width:46px;height:46px;border-radius:8px;object-fit:cover}
.checks{display:grid;gap:14px;align-content:start;padding:20px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line)}
.check-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.check-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--bg);font-size:14px}
.check-list .st{font:500 11px var(--mono);letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:var(--bg4);color:var(--muted);min-width:70px;text-align:center}
.check-list li.clear .st{background:var(--green-dim);color:var(--green)}
.check-list li.match .st{background:rgba(255,122,106,.18);color:var(--bad)}
.check-list li.checking .st{color:var(--ink)}
.preview{display:grid;gap:8px}
.pcoin{display:flex;align-items:center;gap:10px}
.pcoin img{width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--bg3)}
.pcoin div{display:grid}
.pcoin b{font-weight:600}
.pcoin .mono{color:var(--muted)}
.pcoin.big img{width:60px;height:60px}
.refused-view,.window-view{padding:20px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line)}
.rv-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:14px}
.coin-card{display:grid;gap:10px;padding:16px;border-radius:var(--r2);background:var(--bg);border:1px solid var(--line)}
.coin-card .pcoin img{width:60px;height:60px}
.coin-card p{color:var(--ink2);font-size:14px}
.rv-ref{display:grid;gap:12px;align-content:start}
.rv-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.copybox{display:flex;align-items:center;gap:8px;padding:5px 5px 5px 12px;border-radius:999px;background:var(--bg);border:1px solid var(--line2);overflow:hidden}
.copybox code{flex:1;min-width:0;font-family:var(--mono);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wv-grid{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start}
.wv-ring{position:relative;width:200px;height:200px}
.wv-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.wv-ring .track{fill:none;stroke:var(--line2);stroke-width:8}
.wv-ring .arc{fill:none;stroke:var(--green);stroke-width:8;stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:0}
.wv-time{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:2px}
.wv-time b{font-size:30px;font-weight:500}
.wv-time span{font-size:12.5px;color:var(--muted)}
.wv-body{display:grid;gap:12px}
.join{display:flex;gap:8px}
.join input{flex:1;min-width:0;height:38px;padding:0 12px;border-radius:999px;border:1px solid var(--line2);background:var(--bg);color:var(--ink);font:12.5px var(--mono);outline:0}
.join input:focus{border-color:var(--green)}
.wallets{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:200px;overflow:auto}
.wallets li{display:flex;justify-content:space-between;padding:7px 10px;border-radius:8px;background:var(--bg);font:12.5px var(--mono)}
.wallets li.paid{background:var(--green-dim)}
.wallets li span:last-child{color:var(--muted)}
.wv-done{display:grid;gap:12px;padding:14px;border-radius:var(--r2);background:var(--bg);border:1px solid var(--green2)}

/* community */
.com-grid{display:grid;grid-template-columns:.9fr 1.2fr;gap:18px;align-items:start}
.com-form{display:grid;gap:14px;padding:20px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line)}
.com-form form{display:grid;gap:14px}
.com-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.com-tools{display:flex;justify-content:flex-end;min-height:18px;margin-bottom:8px}
.wishes{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wish{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 16px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line)}
.wish .rank{font:600 12.5px var(--mono);color:var(--muted);width:24px;text-align:center}
.wish.lead{border-color:rgba(80,212,144,.5)}
.wish.lead .rank{color:var(--green)}
.wish .body{display:grid;gap:4px;min-width:0}
.wish .body b{font-weight:600;font-size:15px}
.wish .body p{font-size:13.5px;color:var(--ink2)}
.wish .by{font:500 11.5px var(--mono);color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}
.wish .by .badge{color:var(--green)}
.votes{display:grid;grid-template-columns:auto auto;gap:6px;align-items:center}
.vote{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:999px;border:1px solid var(--line2);background:var(--bg);color:var(--ink2);font:500 12.5px var(--mono);cursor:pointer}
.vote:hover{border-color:var(--ink2)}
.vote.on.up{background:var(--green-dim);border-color:var(--green);color:var(--green)}
.vote.on.down{background:rgba(255,122,106,.14);border-color:var(--bad);color:var(--bad)}
.vote svg{width:11px;height:11px}
.score{grid-column:1/-1;text-align:center;font:600 18px var(--head);color:var(--ink)}
.score.pos{color:var(--green)}
.score.neg{color:var(--bad)}

/* panel, modal, toast */
.panel{position:fixed;inset:0;z-index:60;display:flex;justify-content:flex-end;background:rgba(0,0,0,.55)}
.panel-in{position:relative;width:min(480px,100%);height:100%;overflow:auto;padding:24px;background:var(--bg2);border-left:1px solid var(--line)}
.close{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line2);background:var(--bg3);color:var(--ink);cursor:pointer;font-size:13px}
.pbody{display:grid;gap:16px}
.pbody .pcoin img{width:72px;height:72px;border-radius:12px}
.pbody .pcoin b{font:700 20px var(--head)}
.pbody dl{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;margin:0;font-size:14px}
.pbody dt{color:var(--muted)}
.pbody dd{margin:0}
.pbody a{color:var(--green)}
.modal{position:fixed;inset:0;z-index:70;display:grid;place-items:center;background:rgba(0,0,0,.6);padding:16px}
.modal-in{position:relative;width:min(420px,100%);padding:24px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--line2);display:grid;gap:12px}
.modal-in p{color:var(--ink2);font-size:14px}
.wallet-list{display:grid;gap:8px}
.wopt{display:flex;align-items:center;justify-content:space-between;gap:12px;height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--line2);background:var(--bg);color:var(--ink);font:600 14px var(--body);cursor:pointer}
.wopt:hover{border-color:var(--green)}
.wopt .mono{color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;z-index:80;transform:translateX(-50%);padding:9px 14px;border-radius:999px;background:var(--green);color:#06130c}

.mobilenav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:35;height:56px;background:var(--bg);border-top:1px solid var(--line);align-items:center;justify-content:space-around}
.mobilenav a{color:var(--ink2);font-size:12px;font-weight:600;display:grid;justify-items:center;gap:2px}
.mobilenav a.on{color:var(--green)}
@media (max-width:1180px){.frame{grid-template-columns:64px minmax(0,1fr) 300px}.rail a span,.rail .foot{display:none}.rail a{justify-content:center;padding:0}.rail .create{font-size:0}.rail .create::before{content:"+";font-size:22px;line-height:1}}
@media (max-width:960px){.frame{grid-template-columns:64px minmax(0,1fr)}.side{display:none}.launch-grid,.rv-grid,.com-grid{grid-template-columns:1fr}.row{grid-template-columns:40px 1fr 90px 90px}.row .h3,.row .h4{display:none}}
@media (max-width:640px){.frame{grid-template-columns:minmax(0,1fr)}.rail{display:none}.main{padding:14px 14px 80px}.search{display:none}.ca-v{display:none}.wallet span:not(.wdot){display:none}.row{grid-template-columns:36px 1fr 80px}.row .h2{display:none}.grid{grid-template-columns:1fr}.wv-grid{grid-template-columns:1fr}.wv-ring{margin:0 auto}.wish{grid-template-columns:auto 1fr}.votes{grid-column:1/-1;grid-template-columns:auto auto auto;justify-content:start}.score{grid-column:auto}.mobilenav{display:flex}}
