:root{--bg: #0b0b0f;--surface: #12151a;--surface-2: #171b21;--text: #e8ebf0;--dim: #7a8394;--faint: #4a5261;--line: #1e232b;--accent: #16c6c9;--accent-fill: rgba(22, 198, 201, .12);--up: #2fbf71;--down: #e5484d;--gold: #f5c451;--radius: 9px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,system-ui,Segoe UI,Roboto,Inter,sans-serif;font-size:14px;line-height:1.3;overscroll-behavior:none;-webkit-font-smoothing:antialiased}.num{font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}.btn{border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;background:var(--surface)}.btn.primary{border-color:var(--accent);color:var(--accent);background:var(--accent-fill);font-weight:600}.btn:disabled{opacity:.4;cursor:default}.screen{height:100%;display:flex;flex-direction:column;padding-top:var(--safe-top)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:8px;font-weight:600;letter-spacing:.2px}.brand .duel{color:var(--dim);font-weight:500}.hud{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line)}.hud.me{border-top:1px solid var(--line);border-bottom:0}.hud .stats{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.hud .row{display:flex;align-items:baseline;gap:12px;flex-wrap:nowrap;white-space:nowrap}.hud .label{color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.4px}.hud .big{font-size:22px;font-weight:600;display:inline-flex;align-items:center;gap:4px}.hud .wall{display:inline-flex;align-items:center;gap:4px;font-size:15px}.hud .res{display:flex;gap:10px;color:var(--text);font-size:13px}.hud .res span{display:inline-flex;align-items:center;gap:3px}.hud .res .inc{color:var(--dim);font-size:11px}.hud .curve{flex:0 0 auto}.hud.me .big{color:var(--accent)}.delta{font-size:11px;margin-left:4px}.delta.up{color:var(--up)}.delta.down{color:var(--down)}.arena{flex:1;min-height:120px;display:flex;align-items:center;justify-content:center;gap:18px;padding:8px 12px;position:relative}.deck{width:46px;height:64px;border:1px solid var(--line);border-radius:6px;background:repeating-linear-gradient(135deg,var(--surface) 0 6px,var(--surface-2) 6px 12px);display:flex;align-items:flex-end;justify-content:center;color:var(--dim);font-size:11px;padding-bottom:4px}.lastplay{display:flex;align-items:center;gap:10px}.lastplay .who{color:var(--dim);font-size:11px;text-transform:uppercase}.lastplay .card{height:auto}.hint{position:absolute;bottom:6px;left:12px;right:12px;text-align:center;color:var(--dim);font-size:12px}.timerbar{display:flex;align-items:center;gap:10px;padding:6px 12px;border-top:1px solid var(--line)}.timerbar .track{flex:1;height:4px;background:var(--line);border-radius:2px;overflow:hidden}.timerbar .fill{height:100%;background:var(--accent);transition:width .25s linear}.timerbar .fill.late{background:var(--down)}.timerbar .fill.theirs{background:var(--dim)}.timerbar .clock{width:44px;text-align:right;font-weight:600}.timerbar .clock.late{color:var(--down)}.hand{--cw: clamp(82px, 23vw, 108px);height:calc(var(--cw) / .7 + 64px);display:flex;align-items:flex-end;overflow-x:auto;overflow-y:visible;padding:44px 12px calc(10px + var(--safe-bottom));gap:0;scrollbar-width:none}.hand::-webkit-scrollbar{display:none}.hand .slot{flex:0 0 auto;width:var(--cw);height:calc(var(--cw) / .7);margin-right:calc(var(--cw) * -.3);transition:transform .18s ease,margin .18s ease}.hand .slot:last-child{margin-right:0}.hand .slot.sel{transform:translateY(-34px) scale(1.08);margin-right:8px;margin-left:20px;z-index:5;position:relative}.hand .slot.dead{opacity:.45}.card{width:100%;height:100%;aspect-ratio:.7;border-radius:8px;background:var(--surface);border:1px solid var(--line);position:relative;overflow:hidden;display:flex;flex-direction:column}.card .edge{height:3px}.card.red .edge{background:var(--down)}.card.blue .edge{background:#4ea3ff}.card.green .edge{background:var(--up)}.card.gold{border-color:var(--gold)}.card .cost{position:absolute;top:7px;right:7px;min-width:22px;height:22px;border-radius:11px;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;padding:0 5px}.card .art{flex:1;position:relative;min-height:0;overflow:hidden}.card .art svg{position:absolute;inset:0;width:100%;height:100%}.card .artlabel{position:absolute;left:6px;right:6px;bottom:5px;font-size:10px;font-weight:600;color:var(--text);text-shadow:0 1px 2px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .title{font-size:11px;font-weight:600;padding:4px 6px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .fx{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);font-size:11px}.card .fx .col{padding:4px 5px;min-height:36px}.card .fx .col+.col{border-left:1px solid var(--line)}.card .fx .h{color:var(--dim);font-size:9px;text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}.card .fx .it{display:flex;align-items:center;gap:3px;white-space:nowrap}.card .fx .it.up{color:var(--up)}.card .fx .it.down{color:var(--down)}.card .note{font-size:10px;color:var(--dim);padding:2px 6px 5px;border-top:1px solid var(--line)}.card.compact .title,.card.compact .fx,.card.compact .note{display:none}.card.compact .cost{right:auto;left:6px;top:8px}.sheet{position:fixed;inset:0;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet .panel{width:100%;max-width:480px;background:var(--surface);border-top-left-radius:14px;border-top-right-radius:14px;padding:14px 14px calc(14px + var(--safe-bottom));border-top:1px solid var(--line)}.sheet .panel .card{width:200px;height:auto;margin:0 auto 12px;font-size:13px}.sheet .panel .card .fx,.sheet .panel .card .title{font-size:13px}.sheet .actions{display:flex;gap:10px}.sheet .actions .btn{flex:1;text-align:center}.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.center h1{font-size:26px;margin:0;font-weight:700}.center p{color:var(--dim);margin:0;max-width:360px}.langs{display:flex;gap:6px}.langs .btn.on{border-color:var(--accent);color:var(--accent)}.result .big{font-size:40px;font-weight:800}.result .big.win{color:var(--up)}.result .big.loss{color:var(--down)}.kv{display:grid;grid-template-columns:auto auto;gap:4px 16px;color:var(--dim);font-size:13px}.kv b{color:var(--text);font-weight:600}.land{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden}.land .sides{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;padding:12px 20px}.land .hud{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.land .hand{justify-content:center}.land .hand{--cw: clamp(96px, 12vh, 128px)}.land .hand .slot{margin-right:-18px}@keyframes cp-play-in{0%{transform:translateY(40px) scale(.85);opacity:0}to{transform:none;opacity:1}}@keyframes cp-hit{0%{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}to{transform:translate(0)}}@keyframes cp-pop{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes cp-flash-up{0%{color:var(--up)}to{color:inherit}}@keyframes cp-flash-down{0%{color:var(--down)}to{color:inherit}}@keyframes cp-pulse{0%,to{opacity:1}50%{opacity:.55}}.lastplay{animation:cp-play-in .28s ease-out}.hud.hit{animation:cp-hit .35s ease-in-out}.hud .big.pop{animation:cp-pop .4s ease-out}.hud .big.flash-up{animation:cp-flash-up .9s ease-out}.hud .big.flash-down{animation:cp-flash-down .9s ease-out}.timerbar .clock.late{animation:cp-pulse .8s ease-in-out infinite}.hud .curve line{transition:all .3s ease-out}.result .big{animation:cp-pop .5s ease-out}@media(prefers-reduced-motion:reduce){.lastplay,.hud.hit,.hud .big.pop,.hud .big.flash-up,.hud .big.flash-down,.timerbar .clock.late,.result .big{animation:none}.hud .curve line,.hand .slot{transition:none}}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--dim);padding:4px 10px;border:1px solid var(--line);border-radius:999px}.pill .dot,.toast .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.pill.up{color:var(--up);border-color:color-mix(in srgb,var(--up) 40%,transparent)}.pill.down{color:var(--down);border-color:color-mix(in srgb,var(--down) 40%,transparent)}.pill.dim,.dim{color:var(--dim)}.err{color:var(--down);font-size:13px;max-width:360px}.namebtn{background:none;border:0;color:var(--text);font:inherit;font-size:14px;cursor:pointer;padding:6px 10px;border-radius:var(--radius)}.namebtn:hover{background:var(--surface)}.namefrm{display:flex;gap:6px}.namefrm input{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font:inherit;padding:8px 10px;width:180px}.namefrm input:focus{outline:2px solid var(--accent);outline-offset:1px}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:cp-spin .9s linear infinite}@keyframes cp-spin{to{transform:rotate(360deg)}}.toast{position:fixed;left:50%;top:calc(var(--safe-top) + 52px);transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13px;z-index:30}.toast.down{color:var(--down)}.btn.danger{border-color:var(--down);color:var(--down)}.delta-big{font-size:22px;font-weight:700}.delta-big.up{color:var(--up)}.delta-big.down{color:var(--down)}.board{padding:12px 16px;overflow:auto}.board table{width:100%;border-collapse:collapse;font-size:14px}.board th{text-align:left;color:var(--dim);font-weight:500;font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line)}.board th.num,.board td.num{text-align:right}.board td{padding:8px;border-bottom:1px solid var(--line)}.board tr.me td{color:var(--accent)}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
