/* ================================================================
   Prototype layer: only what interaction needs (inputs, hover/focus, scroll, modal, toast).
   The look itself is design A's styles.css + its page CSS, unchanged.
   ================================================================ */
[role=button],.chip,.seg>*,.tgl span,.mana-pick span{cursor:pointer;user-select:none}
.seg>.dis{opacity:.4;cursor:not-allowed}
:focus-visible{outline:1px solid var(--gold-hi);outline-offset:2px}
input{font:inherit;color:var(--text);background:transparent;border:0;outline:0;min-width:0}
input::placeholder{color:var(--muted);opacity:1}
input[type=search]::-webkit-search-cancel-button{filter:grayscale(1) opacity(.6)}
.search input{flex:1;height:100%;font-size:14px}
.search:focus-within{border-color:var(--line-2)}
.pool-search input{flex:1;height:100%;font-size:14px}
.pool-search:focus-within,.codebox:focus-within,.imp input:focus,.inp:focus-within{border-color:var(--gold)}
.inp input{flex:1;height:100%;font:500 16px var(--f-ui)}
.codebox input{width:100%;height:100%;font:500 13px var(--f-mono);letter-spacing:.02em}
a.rows{display:block;color:inherit}
a.shell{display:block;color:inherit}
a.shell:hover h5{color:var(--gold-hi)}
a.ct{color:inherit}
.btn:hover{border-color:var(--gold)}
.btn.gold:hover{filter:brightness(1.08)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.chip:hover,.seg>*:hover,.mana-pick span:hover{color:var(--text)}
a.hc:hover{border-color:var(--gold-lo)}
/* auth chip */
.authslot{display:flex;align-items:center;gap:12px}
.authslot .out{white-space:nowrap;font:500 10.5px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.authslot .out:hover{color:var(--text)}
.tol-demo{position:fixed;left:14px;bottom:14px;z-index:55;max-width:min(420px,calc(100vw - 28px));padding:8px 12px;background:rgba(var(--night-rgb),.96);border:1px solid var(--line);font:500 11.5px/1.45 var(--f-mono);color:var(--gold-hi);letter-spacing:.02em;pointer-events:none}
.si-google[disabled]{opacity:.6;cursor:wait}
button.vis{font:600 10.5px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;text-align:left;cursor:pointer}
button.vis:hover{color:var(--gold-hi)}
/* builder: real scrolling + add/remove affordances */
/* scroll regions. The page CSS (inlined after this file) says overflow:hidden and leaves flex children at
   min-height:auto, so a long deck list grew past the panel instead of scrolling. These selectors out-rank it. */
.bld .col{min-height:0;overflow:hidden}
.bld .col>.dk-head,.bld .col>.dk-curve,.bld .col>.dk-foot,.bld .col>.filters{flex:none}
.bld .col>.dk-list{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.bld .col>.grid-wrap{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
.bld .col:first-child{overflow-y:auto;overscroll-behavior:contain;padding-bottom:14px}
.bld .col>.dk-foot{position:relative;z-index:1;box-shadow:0 -10px 18px -12px rgba(0,0,0,.7)}
.scrolly,.bld .col>.dk-list,.bld .col>.grid-wrap,.bld .col:first-child{scrollbar-width:thin;scrollbar-color:var(--gold-lo) transparent}
.bld .col>.dk-list::-webkit-scrollbar,.bld .col>.grid-wrap::-webkit-scrollbar,.bld .col:first-child::-webkit-scrollbar{width:8px}
.bld .col>.dk-list::-webkit-scrollbar-track,.bld .col>.grid-wrap::-webkit-scrollbar-track,.bld .col:first-child::-webkit-scrollbar-track{background:transparent}
.bld .col>.dk-list::-webkit-scrollbar-thumb,.bld .col>.grid-wrap::-webkit-scrollbar-thumb,.bld .col:first-child::-webkit-scrollbar-thumb{background:var(--line-2);border:2px solid transparent;background-clip:padding-box}
.bld .col>.dk-list:hover::-webkit-scrollbar-thumb,.bld .col>.grid-wrap:hover::-webkit-scrollbar-thumb{background-color:var(--gold-lo)}
/* pool sections: the Avatar's own 8 cards, then everything else it can play */
.pool .psec+.psec{margin-top:26px}
.pool .psh{margin:0 0 14px}
.pool .psh .n{font-weight:600}
.pool .psh::after{content:"";order:2;flex:1;height:1px;background:linear-gradient(90deg,var(--gold-lo),rgba(var(--gold-rgb),.15))}
.pool .psh .lb{color:var(--text)}
.pool .psh .lb b{font-weight:600;color:var(--gold-hi)}
.pool .psh.f-g .lb{color:var(--lumen)} .pool .psh.f-s .lb{color:#f08a5d}
.pool .psec.all .psh .lb{color:var(--text-2)}
.pool .psec.own{padding:12px 12px 14px;margin:0 -12px;background:linear-gradient(180deg,rgba(var(--gold-rgb),.07),transparent 70%);border-top:1px solid var(--gold-lo)}
.pool .nomatch{font-size:14px;color:var(--muted);padding:6px 0 2px}
.cb .gridp.pool{padding-top:20px}
/* info line under each card: mana · atk / hp with labelled icons */
.ct .ft{gap:6px}
.ct .ft .st{margin-left:0;display:flex;gap:10px;align-items:center;color:var(--text-2)}
.ct .ft .s{display:inline-flex;align-items:center;gap:3px;font:600 12px/1 var(--f-mono)}
.ct .ft .s svg{width:11px;height:11px;flex:none}
.ct .ft .s.m{color:var(--mana)} .ct .ft .s.a{color:var(--atk)} .ct .ft .s.h{color:var(--hp)}
.ct .ft .s.t{color:var(--muted);font-weight:500;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
.ct .ft .s.up{color:var(--gold-hi)}
.ct .ft .pips{margin-left:auto}
.bld .ct .add{opacity:.0}
@media (hover:none){.bld .ct .add{opacity:1;transform:none}}
/* hover preview */
.peek{position:fixed;z-index:40;pointer-events:none;width:min(640px,calc(100vw - 16px));background:var(--night-2);border:1px solid var(--line-2);box-shadow:0 26px 70px rgba(0,0,0,.65);padding:16px;animation:pk .12s ease-out}
.peek[hidden]{display:none}
.peek::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--gold-lo)}
@keyframes pk{from{opacity:0;transform:translateY(4px)}}
.ci{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
.ci-img img{width:100%;height:auto;display:block;filter:drop-shadow(0 10px 18px rgba(0,0,0,.6))}
.ci-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font:500 11px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
.ci-meta>span{display:inline-flex;align-items:center;gap:6px}
.ci-meta svg{width:13px;height:13px}
.ci-meta .ci-h{color:var(--gold-hi)}
.ci-name{font:500 34px/1.02 var(--f-display);font-variation-settings:"opsz" 144;letter-spacing:-.015em;margin:10px 0 8px;color:var(--text)}
.ci-tags{display:flex;flex-wrap:wrap;gap:6px}
.ci-tags .tg{font:500 10.5px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 7px;border:1px solid var(--line-2);color:var(--text-2)}
.ci-tags .tg.d.Offensive{color:#f08a5d;border-color:rgba(240,138,93,.45)} .ci-tags .tg.d.Defensive{color:var(--lumen);border-color:rgba(110,170,255,.4)}
.ci-tags .tg.p{color:var(--gold-hi);border-color:var(--gold-lo)}
.ci-stats{display:flex;align-items:stretch;gap:8px;margin:14px 0 12px}
.ci-cap{align-self:center;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);writing-mode:vertical-rl;transform:rotate(180deg)}
.sc{min-width:68px;padding:7px 10px 6px;border:1px solid currentColor;display:flex;flex-direction:column;gap:3px;background:rgba(var(--night-rgb),.55)}
.sc small{font:500 9.5px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.sc b{font:600 28px/1 var(--f-mono);color:var(--text)}
.sc.m{color:var(--mana)} .sc.a{color:var(--atk)} .sc.h{color:var(--hp)}
.ci-text{font-size:15.5px;line-height:1.58;color:var(--text);max-width:52ch}
.ci-text .kw,.ci-uptext .kw{font-weight:650;color:var(--gold-hi);text-decoration:underline;text-decoration-color:rgba(var(--gold-rgb),.45);text-underline-offset:3px}
.ci-text .none{color:var(--muted)}
.ci-up{display:flex;align-items:baseline;gap:10px;margin-top:14px;padding-top:10px;border-top:1px solid var(--line-3);font:500 12px var(--f-mono)}
.ci-up .l{letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.ci-up .v{font-weight:600;font-size:16px;color:var(--gold-hi)}
.ci-up .k{color:var(--faint);font-size:10.5px;letter-spacing:.1em}
.ci-up.none{color:var(--muted);letter-spacing:.08em}
.ci-uptext{font-size:14px;line-height:1.5;color:var(--text-2);margin-top:6px}
.ci-uptext .mono{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-right:4px}
.ci-ret{margin-top:10px;color:#f08a5d;font-size:14px}
/* card detail modal */
.cmodal .cm{display:block;width:min(820px,94vw);max-height:92vh;overflow-y:auto;padding:24px 26px 20px;grid-template-columns:none}
.cmodal .ci{grid-template-columns:300px minmax(0,1fr);gap:26px}
.cmodal .ci-name{font-size:40px;padding-right:30px}
.cm-acts{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.cm-acts .btn{height:40px;padding:0 18px}
.cm-acts .hint{font-size:13px}
.cm-deck{display:flex;align-items:baseline;gap:6px;margin-right:auto;font:500 12px var(--f-mono);color:var(--muted)}
.cm-deck .mono{letter-spacing:.14em;text-transform:uppercase;font-size:10px;margin-right:4px}
.cm-deck b{font:600 22px var(--f-mono);color:var(--gold-hi)}
@media (max-width:760px){.ci,.cmodal .ci{grid-template-columns:1fr}.ci-img{max-width:280px}}
/* sign-in: Google only */
.modal-card.si{grid-template-columns:340px 1fr;width:min(880px,92vw)}
.si-body{padding:30px 34px 26px;position:relative}
.si-body h2{font:400 38px/1.02 var(--f-display);font-variation-settings:'opsz' 144;letter-spacing:-.015em;margin:12px 0 10px}
.si-lead{color:var(--text-2);font-size:15.5px;max-width:46ch}
.si-google{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;width:100%;height:58px;margin-top:24px;background:#f4efe4;color:#16130d;border:1px solid var(--gold-hi);box-shadow:0 0 0 4px rgba(var(--gold-rgb),.12);font:600 13px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:box-shadow .15s,transform .15s}
.si-google .g{display:flex;align-items:center;justify-content:center;height:100%;border-right:1px solid rgba(22,19,13,.14)}
.si-google .t{text-align:left;padding-left:16px}
.si-google .ar{font-size:18px;color:#6b5528}
.si-google:hover{box-shadow:0 0 0 5px rgba(var(--gold-rgb),.22)}
.si-google:hover .ar{transform:translateX(3px)}
.si-google:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}
.si-once{margin-top:9px;font-size:11px;letter-spacing:.06em;color:var(--muted)}
.si-gets{list-style:none;margin:22px 0 0;padding:0;border-top:1px solid var(--line)}
.si-gets li{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line-3);font-size:14px;color:var(--text-2)}
.si-gets .n{font:500 11px var(--f-mono);color:var(--gold)}
.si-gets b{font:600 16px var(--f-display);color:var(--text)}
.si-fine{margin-top:16px;font-size:12.5px}
.bld .ct{cursor:pointer}
.bld .ct .add{position:absolute;right:5%;bottom:6%;width:30px;height:30px;border-radius:50%;border:1px solid var(--gold-hi);background:var(--gold);color:#140f04;font:600 18px/1 var(--f-mono);display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.85);transition:opacity .15s,transform .15s}
.bld .ct:hover .add,.bld .ct .add:focus-visible{opacity:1;transform:none}
.bld .ct.maxed .add,.bld .ct.full .add{display:none}
.bld .ct:hover .art img{transform:translateY(-2px)}
.bld .ct .art img{transition:transform .15s}
.bld .ct.full:not(.in-deck) .art img{filter:saturate(.5) brightness(.7) drop-shadow(0 8px 14px rgba(0,0,0,.55))}
.ct.retired .art img{filter:grayscale(.8) brightness(.6)}
.dr.click{cursor:pointer}
.dr.click:hover .x{color:#f08a5d}
.dr.click:hover .x::before{content:"−";margin-right:5px}
.dr.flash{animation:fl .5s}
@keyframes fl{from{background:rgba(var(--gold-rgb),.35)}to{background:var(--night-2)}}
.dk-name{display:block;width:100%;padding:0;border-bottom:1px dashed transparent}
.dk-name:hover,.dk-name:focus{border-bottom-color:var(--line-2)}
.slots .msg.ok{color:#6fc39a}
.imp{display:grid;grid-template-columns:1fr auto auto;gap:6px}
.imp input{height:28px;border:1px dashed var(--line-2);padding:0 8px;font:500 11.5px var(--f-mono);background:var(--night)}
.empty-pool{grid-column:1/-1;padding:40px 0;text-align:center;color:var(--muted)}
.empty-pool button{color:var(--gold-hi);text-decoration:underline;text-underline-offset:3px}
.dk-empty{padding:22px 16px;color:var(--muted);font-size:14px;line-height:1.45}
.count button{color:var(--gold-hi);font:inherit;margin-left:8px;text-decoration:underline;text-underline-offset:3px}
.hpick a,.hpick span{display:block}
.hpick a:hover img{filter:none}
/* deck page */
.dband .dcode .code{white-space:normal;word-break:break-all;font-size:clamp(13px,.95vw,17px)}
.vg.list{display:block;max-width:760px}
.vg .ct{cursor:default}
/* profile */
.avgrid span{cursor:pointer}
.avgrid span:hover{border-color:var(--gold-lo)}
.inp.bad{border-color:#f08a5d}
.drow .acts2{display:flex;gap:6px;flex-wrap:wrap}
.drow a h4:hover{color:var(--gold-hi)}
/* modal */
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center}
.modal[hidden]{display:none}
.modal-back{position:absolute;inset:0;background:rgba(var(--veil-rgb),.82)}
.modal-card{position:relative;width:min(900px,92vw);display:grid;grid-template-columns:330px 1fr;background:var(--night-2);border:1px solid var(--line-2);box-shadow:0 30px 80px rgba(0,0,0,.6)}
.modal-art{position:relative;background:url(assets/art/poster.webp) 40% 38%/cover}
.modal-art-veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(var(--night-rgb),.95),rgba(var(--night-rgb),.1) 55%)}
.modal-art-cap{position:absolute;left:20px;right:20px;bottom:20px}
.modal-x{position:absolute;right:14px;top:10px;color:var(--muted);font-size:20px;width:32px;height:32px}
.modal-x:hover{color:var(--text)}
/* toast */
.toasts{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:center;gap:14px;max-width:min(640px,92vw);padding:11px 16px;background:var(--night-3);border:1px solid var(--gold-lo);box-shadow:0 14px 40px rgba(0,0,0,.55);font-size:14px;color:var(--text);animation:tin .18s ease-out}
.toast b{font:600 10.5px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi);white-space:nowrap}
.toast code{font:500 12px var(--f-mono);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}
.toast.err{border-color:rgba(240,138,93,.7)} .toast.err b{color:#f08a5d}
.toast button{font:600 10.5px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-hi);text-decoration:underline;text-underline-offset:3px}
@keyframes tin{from{opacity:0;transform:translateY(8px)}}
.kv span{white-space:nowrap}
/* sign-in modal: email + password under the Google button */
.modal-card.si{max-height:94vh;overflow-y:auto}
.si-main[hidden],.si-step[hidden],.si-form [hidden],.si-msg[hidden],.si-sent[hidden]{display:none!important}
.si-or{display:flex;align-items:center;gap:12px;margin:20px 0 12px;font:500 10.5px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.si-or::before,.si-or::after{content:"";flex:1;height:1px;background:var(--line)}
.si-tabs{display:flex;width:100%}
.si-tabs>button{flex:1;justify-content:center;height:36px;font:600 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer}
.si-tabs>button.on{color:var(--text)}
.si-tabs>button:hover{color:var(--text)}
.si-form{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.si-form .inp{height:42px;padding:0 4px 0 12px}
.si-form .inp input{font:500 15.5px var(--f-ui)}
.si-form .fld .hint{font-size:12px}
.si-eye{flex:none;height:32px;padding:0 10px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-left:1px solid var(--line);cursor:pointer}
.si-eye:hover{color:var(--text)}
.si-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.si-submit{min-width:170px;height:40px}
.si-forgot{font:500 12.5px var(--f-ui);color:var(--text-2);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px;cursor:pointer;padding:6px 0}
.si-forgot:hover{color:var(--gold-hi)}
.si-forgot[hidden]{display:none}
.si-msg{display:flex;gap:10px 14px;align-items:baseline;flex-wrap:wrap;padding:9px 12px;font:400 13.5px/1.45 var(--f-ui);border:1px solid rgba(224,86,28,.45);background:rgba(56,13,13,.45);color:#f3b79a}
.si-msg.ok{border-color:var(--line-2);background:rgba(var(--gold-rgb),.07);color:var(--text)}
.si-act{font:600 10.5px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-hi);border-bottom:1px solid var(--gold-lo);cursor:pointer}
.si-main .si-gets{margin-top:20px}
.si-main .si-gets li{padding:8px 0}
.si-fine a,.foot-priv{color:var(--text-2);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.si-fine a:hover,.foot-priv:hover{color:var(--gold-hi)}
.si-step .si-lead{margin-top:2px}
.si-sent{margin-top:14px;padding:9px 12px;font-size:11.5px;line-height:1.5;letter-spacing:.02em;color:var(--gold-hi);border:1px solid var(--line-2);background:rgba(var(--gold-rgb),.06)}
.si-avs{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.si-avs button{display:block;padding:0;border:1px solid var(--line-2);aspect-ratio:1;cursor:pointer;background:var(--night)}
.si-avs button img{display:block;width:100%;height:100%;object-fit:cover}
.si-avs button.on{border-color:var(--gold-hi);box-shadow:0 0 0 2px rgba(var(--gold-rgb),.35)}
.si-avs button:hover{border-color:var(--gold)}
.si-pw{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.si-pw.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.si-form .inp input:focus-visible{outline:0}
.si-form .inp:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb),.12)}
/* long nicknames never run under "Sign out" */
.authslot{flex:0 0 auto;min-width:0;max-width:300px}
.top .search{min-width:150px}
.authslot .out{flex:none}
.who{min-width:0;white-space:nowrap}
.who img{flex:none}
.who .nk{min-width:0;max-width:220px;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1300px){.top{gap:18px}.top .search{min-width:150px}}
.who{min-width:30px}
/* deck visibility: badge, segmented Private / Public, owner button next to the deck title */
.vbadge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;font:600 10.5px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--line-2);color:var(--text-2);background:rgba(var(--night-rgb),.6)}
.vbadge.pub{color:var(--lumen);border-color:rgba(115,204,242,.45);background:rgba(13,22,56,.55)}
.vbadge svg,.visseg svg,.dvis .btn svg{flex:none}
.visseg{display:flex;border:1px solid var(--line-2)}
.visseg button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;height:32px;padding:0 10px;font:600 10.5px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer;border-right:1px solid var(--line-2)}
.visseg button:last-child{border-right:0}
.visseg button:hover{color:var(--text)}
.visseg button.private.on{background:var(--night-4);color:var(--text);box-shadow:inset 0 -2px 0 var(--gold)}
.visseg button.public.on{background:rgba(13,22,56,.8);color:var(--lumen);box-shadow:inset 0 -2px 0 var(--lumen)}
.dk-vis{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}
.dk-vis .lab{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.dk-vishint{font-size:12px;line-height:1.4;margin-top:-4px}
.dtitle{display:flex;align-items:flex-end;gap:10px 22px;flex-wrap:wrap}
.dtitle h1{min-width:0}
.dvis{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;max-width:560px}
.dvis[hidden]{display:none}
.dvis .btn{gap:7px}
.dvis-hint{flex-basis:100%;font-size:12.5px}
.viscell{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.vtog{font:600 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-hi);border-bottom:1px solid var(--gold-lo);padding:3px 0;cursor:pointer;white-space:nowrap}
.vtog:hover{color:var(--text)}
.pgrid .shelf .drow{grid-template-columns:64px minmax(200px,1.4fr) 150px minmax(0,1fr) 124px 92px}
.shelf-vishint{margin-top:12px;font-size:13px;line-height:1.5}
.shelf-vishint b{color:var(--text-2);font-weight:600}
@media (max-width:1300px){.who .nk{max-width:110px}}
@media (max-width:1120px){.who .nk{display:none}}

/* ---------- profile: danger zone + Delete account dialog ---------- */
.danger{margin:34px var(--pad) 0;padding:0}
.danger-in{display:flex;align-items:center;justify-content:space-between;gap:20px 32px;margin-top:14px;padding:20px 22px;border:1px solid rgba(224,86,28,.38);background:linear-gradient(90deg,rgba(56,13,13,.42),rgba(56,13,13,.12))}
.danger-in h3{font:500 22px/1.15 var(--f-display);color:#f3b79a;margin:0 0 6px}
.danger-in p{margin:0;max-width:72ch;color:var(--text-2);font-size:14.5px;line-height:1.5}
.danger-in .btn{flex:0 0 auto;height:42px;padding:0 20px}
.btn.ember:hover:not([disabled]){border-color:var(--ember);color:#ffb08a}
.modal-card.del{display:block;width:min(560px,92vw);max-height:94vh;overflow-y:auto;padding:26px 30px 26px;border-color:rgba(224,86,28,.45)}
.modal-card.del h2{font:500 30px/1.1 var(--f-display);margin:12px 44px 14px 0}
.modal-card.del .hr .n{color:var(--ember)}
.del-list{margin:0 0 10px;padding:0;list-style:none;display:grid;gap:7px}
.del-list li{position:relative;padding-left:20px;color:var(--text);font-size:15px;line-height:1.45}
.del-list li::before{content:"";position:absolute;left:3px;top:.6em;width:7px;height:7px;background:var(--ember);transform:rotate(45deg)}
.del-list b{color:#f3b79a;font-weight:600;overflow-wrap:anywhere}
.del-note{color:var(--text-2);font-size:13px;margin:0}
#delForm [hidden]{display:none!important}
.del-row{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.del-row .btn{height:42px;padding:0 18px}
.del-go:not([disabled]){border-color:var(--ember);background:rgba(106,29,18,.75);color:#ffd2bd}
.tol-deleted{left:50%;transform:translateX(-50%);bottom:auto;top:76px;color:var(--text);border-color:rgba(224,86,28,.45);text-align:center}

/* ---------- public decks: a responsive grid of deck cards (decks page + home strip); 1 / 2 (>=1100px) / 3 (>=1600px) columns ---------- */
.flist{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:14px}
@media (min-width:1100px){.flist{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media (min-width:1600px){.flist{grid-template-columns:repeat(3,minmax(0,1fr))}}
.flist .hint{padding:14px 0;grid-column:1/-1}
.fcard{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line-2);background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(0,0,0,.12)),var(--night-2);transition:border-color .15s}
.fcard:hover{border-color:var(--gold-lo)}
.fcard.g{box-shadow:inset 0 2px 0 rgba(115,204,242,.45)}.fcard.s{box-shadow:inset 0 2px 0 rgba(240,138,93,.5)}
.fc-top{display:grid;grid-template-columns:78px minmax(0,1fr);gap:16px;align-items:center;padding:16px 16px 12px;color:inherit;text-decoration:none}
.fc-hero{display:block;width:78px;height:104px;border:1px solid var(--line-2);overflow:hidden;background:var(--night-3)}
.fcard.g .fc-hero{border-color:rgba(115,204,242,.4)}.fcard.s .fc-hero{border-color:rgba(240,138,93,.42)}
.fc-hero img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;display:block}
.fc-tt{display:flex;flex-direction:column;gap:5px;min-width:0}
.fc-kick{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fcard.s .fc-kick{color:#f0a27c}.fcard.g .fc-kick{color:#8fd3f2}
.fc-name{font:600 24px/1.12 var(--f-display);color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fc-top:hover .fc-name,.fc-top:focus-visible .fc-name{color:var(--gold-hi)}
.fc-stats{font-size:11px;letter-spacing:.06em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-cards{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;padding:0 16px 14px;text-decoration:none}
.fc-t{position:relative;display:block;aspect-ratio:360/527;border:1px solid var(--line-3);border-bottom:2px solid var(--rc,var(--line-2));overflow:hidden;background:var(--night-3)}
.fc-t img{width:100%;height:100%;object-fit:cover;display:block}
.fc-t i{position:absolute;right:2px;bottom:2px;font:600 10px/1 var(--f-mono);font-style:normal;color:var(--gold-hi);background:rgba(5,8,18,.82);padding:2px 3px}
.fc-more{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted);border:1px dashed var(--line-2)}
.fc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding:11px 16px;border-top:1px solid var(--line-3);background:rgba(0,0,0,.16)}
.fr-own{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-2);min-width:0}
.fr-own span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-own b{color:var(--gold-hi);font-weight:500}
.fr-own .oav{width:24px;height:24px;flex:none;object-fit:cover;border:1px solid var(--gold-lo);display:inline-flex;align-items:center;justify-content:center;font:600 11px var(--f-mono);color:var(--gold-hi);background:var(--night-3)}
.fr-cnt{display:flex;gap:14px;font-size:13px;color:var(--text-2);flex:none}
.fr-cnt span{display:inline-flex;align-items:center;gap:5px}
.fr-cnt span:first-child svg{color:#f08a5d}
.fr-cnt svg{color:var(--muted)}

/* ---------- deck page: like + notes count, Share image, clock line ---------- */
.dreact{display:flex;align-items:center;gap:16px;margin-top:12px}
.dreact[hidden]{display:none}
.kudos{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border:1px solid var(--line-2);color:var(--text);font:600 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;background:rgba(var(--night-rgb),.5)}
.kudos b{font-weight:600;color:var(--gold-hi);letter-spacing:.04em}
.kudos:hover{border-color:#f08a5d}
.kudos.on{border-color:rgba(240,138,93,.6);background:rgba(106,29,18,.45);color:#ffd2bd}
.kudos.on svg path{fill:#f08a5d;stroke:#f08a5d}
.kudos[disabled]{opacity:.7}
.dcm{font-size:12px;letter-spacing:.08em;color:var(--muted)}
.dcm:hover{color:var(--gold-hi)}
.dband .dcode .g2 .dc-btn{grid-column:1/-1;gap:8px}
.dclock{margin-top:10px;font-size:11.5px;letter-spacing:.04em;color:var(--muted)}
.modal-card.dcimg{display:block;width:min(560px,94vw);max-height:94vh;overflow-y:auto;padding:24px 28px 24px}
.modal-card.dcimg h2{font:500 28px/1.1 var(--f-display);margin:10px 44px 16px 0}
.dc-prev{min-height:240px;max-height:min(64vh,720px);overflow-y:auto;border:1px solid var(--line-2);background:var(--night);display:flex;align-items:flex-start;justify-content:center}
.dc-prev img{display:block;width:100%;height:auto}
.dc-wait{align-self:center}
.dc-wait{font-size:12px;letter-spacing:.1em;color:var(--muted);padding:20px;text-align:center}
.dc-row{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.dc-row .btn{height:42px;padding:0 18px}
.dc-row .btn.off{opacity:.45;pointer-events:none}
.dc-row [hidden]{display:none}

/* ---------- short deck codes: code box, offline code toggle, private / unknown code message ---------- */
.dband .dcode .code{font-size:clamp(22px,1.9vw,30px);letter-spacing:.12em;text-align:center}
.dband .dcode .code.none{font-size:13px;letter-spacing:.06em;color:var(--muted);text-align:left}
.dlong{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;margin:0 0 12px}
.dlong-btn{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px dotted var(--line-2);padding:2px 0}
.dlong-btn:hover{color:var(--gold-hi)}
.dlong-in{flex-basis:100%;order:3;font:500 11.5px/1.5 var(--f-mono);color:var(--text-2);word-break:break-all;padding:8px 10px;border:1px dashed var(--line-2);background:rgba(var(--night-rgb),.5)}
.dlong-in[hidden]{display:none}
.dgate{padding:60px var(--pad) 70px;max-width:760px}
.dgate[hidden]{display:none}
.dgate h1{font:400 48px/1.05 var(--f-display);margin:14px 0 12px}
.dgate p{color:var(--text-2);font-size:17px;max-width:56ch;margin:0 0 22px}
.dgate .row{display:flex;gap:10px;flex-wrap:wrap}
body.dgated .dband,body.dgated .dbody{display:none}
/* ---------- deck page: note threads (replies one level deep) and note hearts ---------- */
.note-thread{border-bottom:1px solid var(--line-3)}
.note-thread>.note-item{border-bottom:0}
.note-replies{margin:0 0 12px 48px;padding-left:14px;border-left:1px solid var(--line-2)}
.note-replies .note-item{grid-template-columns:28px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:0}
.note-replies .note-item+.note-item{border-top:1px solid var(--line-3)}
.note-replies .note-item img{width:28px;height:28px}
.note-replies .note-top b{font-size:15px}
.note-gone p{margin-top:8px;font:500 12px var(--f-mono);letter-spacing:.06em;color:var(--muted)}
.note-gone-av{display:block;width:36px;height:36px;border:1px dashed var(--line-2)}
.note-acts{display:flex;gap:14px;align-items:center;margin-top:6px}
.note-act{background:none;border:0;padding:4px 0;color:var(--muted);font:600 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.note-act:hover,.note-act:focus-visible{color:var(--gold-hi)}
.note-act.out:hover{color:#f08a5d}
.nk{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:4px 0;color:var(--muted);font:600 11px/1 var(--f-mono);letter-spacing:.04em;cursor:pointer}
.nk svg{width:12px;height:12px}
.nk:hover{color:#f08a5d}
.nk.on{color:#ffd2bd}.nk.on svg path{fill:#f08a5d;stroke:#f08a5d}
.nk b{font-weight:600;font-variant-numeric:tabular-nums}
.note-rform{margin:10px 0 4px}
.note-rform textarea{min-height:58px}
.note-rform .note-form-row{justify-content:flex-end}
@media (max-width:640px){.note-replies{margin-left:18px;padding-left:10px}.note-act,.nk{padding:10px 0}}

/* ---------- header tag: "unofficial fan page" visible at every width (EARTHwise request) ---------- */
@media (max-width:1300px){
:root .top .mark{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:10px;row-gap:3px;align-items:center;justify-items:start}
:root .top .mark svg{grid-row:1 / span 2}
:root .top .mark .wm{grid-column:2;align-self:end}
:root .top .mark .sub{display:block;grid-column:2;align-self:start;border-left:0;padding-left:0;margin-left:0;font:500 9.5px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
:root .top .mark .sub-a{display:none}
}
