*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#05070c;--ink:#e2e8f0;--dim:#94a3b8;--faint:#64748b;--panel:#0d111aa8;--line:#94a3b824;--cyan:#22d3ee;--ember:#fb923c}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:Outfit,Segoe UI,system-ui,sans-serif;overflow:hidden}#app{position:fixed;inset:0}#gl{position:absolute;inset:0}#gl canvas{display:block}#ui{pointer-events:none;z-index:10;position:absolute;inset:0}#brand{text-align:center;-webkit-user-select:none;user-select:none;position:absolute;top:18px;left:50%;transform:translate(-50%)}#brand h1{letter-spacing:.42em;background:linear-gradient(100deg, var(--cyan) 0%, #f8fafc 48%, var(--ember) 100%);color:#0000;filter:drop-shadow(0 2px 14px #22d3ee40);-webkit-background-clip:text;background-clip:text;margin-left:.42em;font-size:clamp(20px,2.6vw,30px);font-weight:800}#brand .tm{vertical-align:super;letter-spacing:.1em;font-size:.45em}#brand p{letter-spacing:.34em;color:var(--faint);margin-top:4px;margin-left:.34em;font-size:clamp(8px,.95vw,11px);font-weight:600}#turnPill{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.22em;color:var(--dim);box-shadow:0 0 22px -8px var(--accent);border-radius:999px;align-items:center;gap:9px;padding:6px 18px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;display:flex;position:absolute;top:86px;left:50%;transform:translate(-50%)}.turn-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:50%}.turn-dot.on{animation:1.2s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}#toasts{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:132px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);background:#0a0e16db;border-radius:12px;padding:9px 20px;font-size:13px;font-weight:600;animation:.28s cubic-bezier(.2,1.4,.4,1) toastIn;box-shadow:0 10px 30px -10px #000000b3}.toast.warn{color:#fda4af;border-color:#f43f5e66}.toast.good{color:#a5f3fc;border-color:#22d3ee66}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)scale(.96)}to{opacity:1;transform:none}}.panel{background:var(--panel);background:color-mix(in srgb, var(--panel) 78%, transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto;border-radius:16px;width:236px;padding:16px 18px 14px;transition:box-shadow .4s,border-color .4s;position:absolute;top:96px}.panel.left{left:20px}#rightCol{pointer-events:none;flex-direction:column;gap:12px;width:236px;display:flex;position:absolute;top:96px;right:20px}#rightCol .panel.right{position:static}#scoreboard{pointer-events:auto;background:var(--panel);background:color-mix(in srgb, var(--panel) 78%, transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:16px;padding:12px 16px 14px;transition:box-shadow .4s,border-color .4s}.sb-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:8px;display:flex}.sb-cap{letter-spacing:.24em;color:var(--faint);font-size:9px;font-weight:700}.sb-game{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.sb-game,.sb-game em{letter-spacing:.14em;color:var(--dim);font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.sb-game em{color:var(--faint);font-size:8.5px;font-style:normal}.sb-pips{justify-content:flex-start;align-items:center;gap:7px;padding:10px 0 4px;display:flex}.sb-pip{border:1px solid var(--line);background:#94a3b81a;border-radius:4px;width:14px;height:14px;transform:rotate(45deg)}.sb-pip.P{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 10px #22d3ee80}.sb-pip.A{background:var(--ember);border-color:var(--ember);box-shadow:0 0 10px #fb923c80}.sb-pip.draw{background:#94a3b873}.sb-pip.current{border-color:var(--accent);animation:1.4s ease-in-out infinite blink}.sb-pip.blank{border:1px dashed var(--line);background:0 0}.sb-table-wrap{max-height:132px;margin-top:4px;overflow-y:auto}.sb-table-wrap::-webkit-scrollbar{width:4px}.sb-table-wrap::-webkit-scrollbar-thumb{background:#1e293b;border-radius:2px}.sb-table{border-collapse:collapse;width:100%}.sb-table th{letter-spacing:.14em;color:var(--faint);text-align:center;border-bottom:1px solid var(--line);padding:3px 8px;font-size:8.5px;font-weight:700}.sb-table th.sb-gn{text-align:left}.sb-table td{letter-spacing:.08em;color:var(--dim);text-align:center;border-top:1px solid #94a3b814;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:10.5px}.sb-table td.sb-gn{text-align:left;color:var(--faint);width:30px;overflow:hidden}.sb-table td.win{color:var(--cyan);font-weight:700}.sb-table td.lose{color:var(--faint)}.sb-table td.draw{color:var(--dim)}.modal-card.advset{width:min(500px,100vw - 40px);position:relative}.adv-close{border:1px solid var(--line);cursor:pointer;background:#94a3b814;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .25s;display:flex;position:absolute;top:14px;right:14px}.adv-close svg{width:17px;height:17px;color:var(--dim);transition:transform .35s,color .25s}.adv-close:hover{background:#f43f5e1a;border-color:#f43f5e8c;transform:rotate(90deg)}.adv-close:hover svg{color:#f43f5e}.adv-speed-block{padding:16px 0}.adv-speed-bar{gap:8px;display:flex}.adv-speed-seg{text-align:center;border:1px solid var(--line);color:var(--dim);cursor:pointer;background:#94a3b812;border-radius:12px;flex:1;padding:12px 0;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:800;transition:all .22s}.adv-speed-seg:hover{color:var(--ink);border-color:#ffffff4d}.adv-speed-seg.on{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 22px -4px var(--cyan), inset 0 0 14px -8px var(--cyan);z-index:1;background:#22d3ee29;border-width:2px;font-size:17px;font-weight:900;position:relative;transform:scale(1.12)}.adv-speed-track{background:#94a3b81f;border-radius:3px;height:6px;margin-top:12px;position:relative;overflow:hidden}.adv-track-fill{background:linear-gradient(90deg, #22d3ee80, var(--cyan));border-radius:3px;height:100%;transition:width .3s cubic-bezier(.2,1.1,.3,1);display:block;box-shadow:0 0 12px #22d3ee66}.flash-ok{animation:.55s ease-out flash-ok}@keyframes flash-ok{0%,to{filter:none}40%{filter:brightness(1.4);box-shadow:0 0 24px -4px var(--cyan)}}.sb-win-ic{color:inherit;margin-right:4px;font-size:9px;font-weight:800}.sb-rows{flex-direction:column;gap:6px;margin-top:6px;display:flex}.sb-row{background:#94a3b80f;border:1px solid #0000;border-radius:10px;align-items:center;gap:9px;padding:6px 10px;display:flex}.sb-row .dot{border-radius:50%;flex:none;width:9px;height:9px}.sb-name{letter-spacing:.12em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:Outfit,sans-serif;font-size:12px;font-weight:700;overflow:hidden}.sb-pts{color:var(--ink);font-family:JetBrains Mono,monospace;font-size:17px;font-weight:800}.panel.dropped{opacity:.6;border-color:#f43f5e73}.panel.active{border-color:color-mix(in srgb, var(--accent) 55%, transparent);box-shadow:0 0 34px -10px var(--accent), inset 0 0 22px -14px var(--accent)}.panel-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.dot{border-radius:50%;width:10px;height:10px}.panel-name{letter-spacing:.2em;font-size:14px;font-weight:800}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:13px;height:13px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.panel-body{align-items:center;gap:16px;display:flex}.ring{flex:none;width:52px;height:52px}.ring-txt{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.ring-low{animation:.7s ease-in-out infinite blink}.panel-stats{flex-direction:column;flex:1;gap:7px;display:flex}.stat{justify-content:space-between;align-items:baseline;display:flex}.stat-label{letter-spacing:.2em;color:var(--faint);font-size:9px;font-weight:700}.stat-val{color:var(--ink);font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700}.chips{flex-wrap:wrap;align-items:center;gap:5px;min-height:24px;margin-top:12px;display:flex}.chips-empty{color:var(--faint);letter-spacing:.08em;font-size:10px}.chip{width:23px;height:23px;color:var(--ink);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:#ffffff0a;border-radius:50%;place-items:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;display:grid}.unseen{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px}.unseen-label{letter-spacing:.2em;color:var(--faint);font-size:9px;font-weight:700}.unseen-vals{letter-spacing:.16em;color:var(--dim);margin-top:3px;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.5;display:block}.log-sec{border-top:1px dashed var(--line);margin-top:10px;padding-top:8px}.log-tab{cursor:pointer;width:100%;color:var(--faint);letter-spacing:.24em;background:0 0;border:none;align-items:center;gap:8px;padding:4px 2px;font-family:Outfit,sans-serif;font-size:9px;font-weight:700;transition:color .2s;display:flex}.log-tab:hover{color:var(--ink)}.log-tab .chev{flex:none;width:13px;height:13px;transition:transform .2s}.log-sec.open .chev{transform:rotate(180deg)}.log-sec #log{border-top:1px solid var(--line);max-height:132px;margin-top:4px;padding-top:6px}.log-sec.open{padding-bottom:2px}#dock{pointer-events:none;border:1px solid var(--line);background:linear-gradient(90deg, #22d3ee0d, transparent 32%, transparent 62%, #fb923c0d), linear-gradient(180deg, color-mix(in srgb, var(--panel) 96%, transparent), #070a11fa);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:40;border-bottom:none;border-radius:18px 18px 0 0;justify-content:flex-start;align-items:flex-end;gap:16px;padding:14px 22px 16px;display:flex;position:absolute;bottom:16px;left:20px;right:20px;box-shadow:0 -26px 60px -32px #000000f2,inset 0 1px #ffffff0d,inset 0 18px 30px -30px #000000e6}#dock:before{content:"";background:linear-gradient(90deg, transparent, var(--cyan) 30%, transparent 55%, var(--cyan) 78%, transparent);opacity:.6;pointer-events:none;border-radius:2px;height:2px;position:absolute;top:0;left:26px;right:26px}.dock-label{letter-spacing:.24em;color:var(--faint);margin-bottom:8px;font-size:9px;font-weight:700}#accountRow{flex-direction:column;gap:8px;width:100%;display:flex}.acc-ok{color:var(--cyan);font-family:JetBrains Mono,monospace;font-size:11px}.acc-hint{color:var(--faint);font-size:10px;line-height:1.5}.acc-forgot{align-self:flex-start;padding:6px 12px;font-size:11px}.acc-elo{color:var(--cyan);letter-spacing:.14em;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.ladder{flex-direction:column;gap:2px;width:100%;max-height:158px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.ladder::-webkit-scrollbar{width:5px}.ladder::-webkit-scrollbar-thumb{background:#1e293b;border-radius:3px}.ladder li{letter-spacing:.08em;color:var(--faint);border-radius:6px;align-items:baseline;gap:8px;padding:4px 8px;font-size:11px;display:flex}.ladder li:nth-child(odd){background:#ffffff08}.lr-rank{min-width:28px;color:var(--ink);font-family:JetBrains Mono,monospace;font-weight:700}.lr-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.lr-elo{color:var(--cyan);font-family:JetBrains Mono,monospace;font-weight:700}.ladder-empty{color:var(--faint);letter-spacing:.3em;font-size:11px}#log{max-height:128px;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.75;list-style:none;overflow-y:auto}#log li{color:var(--dim);white-space:nowrap;border-left:2px solid #0000;padding-left:8px}#log li.lp{border-left-color:var(--cyan)}#log li.la{border-left-color:var(--ember)}#log::-webkit-scrollbar{width:5px}#log::-webkit-scrollbar-thumb{background:#1e293b;border-radius:3px}#dockLeft{pointer-events:auto;flex-direction:column;align-items:flex-start;gap:12px;display:flex}#dockSides{pointer-events:auto;flex-direction:column;align-items:flex-end;gap:12px;margin-left:auto;display:flex}#matchLine{letter-spacing:.18em;color:var(--faint);font-family:JetBrains Mono,monospace;font-size:11px}#matchLine b{color:var(--ink)}#dockButtons{gap:10px;display:flex}#themeSeg{flex-direction:row;align-items:center;gap:10px;display:flex}#themeSeg .dock-label{margin-bottom:0}#themeSeg .segment{gap:6px}#themeSeg .seg{flex:none;padding:8px 16px;font-size:11px}#topLeft{pointer-events:auto;z-index:60;align-items:center;gap:10px;display:flex;position:absolute;top:18px;left:20px}#menuBtn,#soundBtn{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;pointer-events:auto;background:#0f141eb3;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .22s;display:flex}#soundBtn.muted,#soundBtn.muted svg{color:var(--faint)}#soundBtn:not(.muted) svg{color:var(--cyan);filter:drop-shadow(0 0 10px #22d3ee66)}#menuBtn svg,#soundBtn svg{width:20px;height:20px;color:var(--ink)}#menuBtn:hover,#soundBtn:hover{box-shadow:0 0 18px -6px var(--cyan);background:#1e293bd9;border-color:#ffffff4d}#topRight{pointer-events:auto;z-index:60;align-items:center;gap:10px;display:flex;position:absolute;top:18px;right:20px}#userChip{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#0f141eb3;border-radius:12px;align-items:center;gap:9px;padding:7px 14px 7px 8px;transition:all .22s;display:flex}#userChip:hover{background:#1e293bd9;border-color:#ffffff4d}#userChip:focus-visible{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}#userChip .avatar{letter-spacing:0;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:flex}#userChip .avatar-emoji{font-size:17px}#userChip .avatar svg{width:15px;height:15px}#userChip .avatar.known{background:linear-gradient(135deg, var(--cyan), #38bdf8);color:#06131f}#userChip .avatar.guest{color:var(--faint);background:#94a3b829}#userChip.guest .avatar svg{color:var(--faint)}.uc-name{letter-spacing:.1em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-family:Outfit,sans-serif;font-size:12px;font-weight:600;overflow:hidden}#menuPop{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:300px;max-height:calc(100vh - 110px);box-shadow:0 24px 60px -24px #000c, 0 0 26px -14px var(--cyan);pointer-events:auto;z-index:70;background:#0a0f18eb;border-radius:16px;padding:6px 0 10px;animation:.16s ease-out menu-in;position:absolute;top:70px;left:20px;overflow-y:auto}#menuPop::-webkit-scrollbar{width:5px}#menuPop::-webkit-scrollbar-thumb{background:#1e293b;border-radius:3px}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.menu-sec{padding:10px 14px 12px}.menu-eyebrow{letter-spacing:.24em;color:var(--faint);margin-bottom:8px;font-size:9px;font-weight:700}.menu-div{background:var(--line);height:1px;margin:2px 14px}.menu-id{align-items:center;gap:10px;padding:2px 0 10px;display:flex}.menu-id .avatar{background:linear-gradient(135deg, var(--cyan), #38bdf8);color:#06131f;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:800;display:flex}.menu-id .avatar-emoji{font-size:21px}.menu-id-text{flex-direction:column;min-width:0;display:flex}.menu-id-name{letter-spacing:.1em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.menu-id-sub{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:10px;overflow:hidden}.menu-hint{color:var(--faint);margin:0 0 10px;font-size:10px;line-height:1.5}.menu-row{width:100%;color:var(--ink);letter-spacing:.1em;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:10px;padding:9px 12px;font-family:Outfit,sans-serif;font-size:12px;font-weight:600;transition:background .16s,border-color .16s;display:flex}.menu-row:hover{border-color:var(--line);background:#94a3b817}.menu-row.primary{border-color:var(--cyan);background:#22d3ee14}.menu-row.primary:hover{background:#22d3ee24}.mr-ic{width:17px;height:17px;color:var(--faint);flex:none}.menu-row.primary .mr-ic{color:var(--cyan)}.menu-list-label{letter-spacing:.24em;color:var(--faint);margin:12px 0 6px;font-size:9px;font-weight:700}.rating-line{align-items:center;gap:12px;padding:4px 0 8px;display:flex}.rating-val{color:var(--cyan);text-shadow:0 0 18px #22d3ee59;font-family:JetBrains Mono,monospace;font-size:26px;font-weight:800}.rating-meta{flex-direction:column;gap:2px;display:flex}.rating-cap{letter-spacing:.24em;color:var(--faint);font-size:9px;font-weight:700}.rating-rank{letter-spacing:.1em;color:var(--dim);font-size:11px;font-weight:700}.stat-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin:2px 0 4px;display:grid}.stat-cell{border:1px solid var(--line);background:#94a3b80f;border-radius:9px;flex-direction:column;align-items:center;gap:2px;padding:7px 4px;display:flex}.sc-val{color:var(--ink);font-family:JetBrains Mono,monospace;font-size:14px;font-weight:800}.sc-cap{letter-spacing:.18em;color:var(--faint);font-size:8.5px;font-weight:700}.menu-opt{align-items:center;gap:10px;padding:5px 0;display:flex}.menu-opt-label{letter-spacing:.14em;width:76px;color:var(--faint);flex:none;font-size:10px;font-weight:700}.menu-opt .segment{flex-wrap:wrap;gap:5px}.menu-opt .seg{padding:6px 10px;font-size:10px}.lang-pill-sm{padding:5px 10px}.lang-pill-sm .lang-icon{width:14px;height:14px}.lang-pill-sm select{width:84px;font-size:11px}.ladder li.me{outline:1px solid var(--cyan)}.ladder li.me .lr-name{color:var(--cyan)}.lang-pill{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#0f141eb3;border-radius:12px;align-items:center;gap:8px;padding:9px 13px 9px 12px;transition:all .22s;display:flex}.lang-pill:hover{background:#1e293bd9;border-color:#ffffff4d}.lang-pill:focus-within{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan), 0 0 18px -6px var(--cyan)}.lang-pill .lang-icon{width:16px;height:16px;color:var(--cyan);flex:none}.lang-pill select{appearance:none;width:96px;color:var(--ink);letter-spacing:.08em;cursor:pointer;background:0 0;border:none;outline:none;padding:0;font-family:Outfit,sans-serif;font-size:12px;font-weight:600}.lang-pill select option{color:var(--ink);background:#0f141e;font-weight:600}#langSeg{flex-direction:column;align-items:flex-end;display:flex}#langSeg .segment{gap:6px}#langSeg .seg{flex:none;min-width:48px;padding:8px 12px;font-size:11px}.btn{pointer-events:auto;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);letter-spacing:.14em;cursor:pointer;background:#0f141eb3;border-radius:12px;padding:10px 20px;font-family:Outfit,sans-serif;font-size:12px;font-weight:700;transition:all .22s}.btn:hover:not(:disabled){background:#18202ed9;border-color:#94a3b866;transform:translateY(-1px)}.btn:disabled{opacity:.35;cursor:default}.btn.danger{color:#fda4af;border-color:#f43f5e8c}.btn.danger:hover:not(:disabled){border-color:#f43f5ee6;box-shadow:0 0 24px -6px #f43f5e99}.tabs{border:1px solid var(--line);background:#ffffff08;border-radius:12px;gap:6px;margin:16px 0 6px;padding:4px;display:flex}.tab{color:var(--dim);letter-spacing:.16em;cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:9px 0;font-family:Outfit,sans-serif;font-size:12px;font-weight:700;transition:all .2s}.tab.on{color:var(--ink);background:linear-gradient(120deg,#22d3ee29,#fb923c29);box-shadow:inset 0 0 0 1px #22d3ee59}.input{border:1px solid var(--line);width:100%;color:var(--ink);letter-spacing:.12em;background:#ffffff0a;border-radius:10px;outline:none;padding:11px 14px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:#22d3ee8c;box-shadow:0 0 16px -6px #22d3ee80}.input.code{width:170px;padding:10px 12px;font-size:11px}.modal-actions.column{flex-direction:column;align-items:stretch}.row-pair{align-items:center;gap:8px;display:flex}.row-pair .btn{flex:none}#drawBanner{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.16em;color:var(--ink);pointer-events:auto;background:#0a0e16e6;border:1px solid #22d3ee66;border-radius:14px;align-items:center;gap:12px;padding:12px 20px;font-size:12px;font-weight:700;animation:.28s cubic-bezier(.2,1.4,.4,1) toastIn;display:flex;position:absolute;bottom:132px;left:50%;transform:translate(-50%);box-shadow:0 0 30px -8px #22d3ee80}#drawBanner.out{border-color:var(--line);box-shadow:none;color:var(--dim)}#roomCode{pointer-events:auto;color:#a5f3fc;letter-spacing:.14em;cursor:pointer;background:#22d3ee14;border:1px solid #22d3ee73;border-radius:12px;padding:10px 18px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;transition:all .2s}#roomCode:hover{background:#22d3ee29;box-shadow:0 0 20px -6px #22d3ee99}.err-hint{color:#fda4af;letter-spacing:.08em;background:#f43f5e14;border:1px solid #f43f5e73;border-radius:10px;margin:10px 0 0;padding:10px 14px;font-size:11px;font-weight:600;line-height:1.6}.btn-primary{background:linear-gradient(120deg,#22d3ee29,#fb923c29);border-color:#22d3ee66}.btn-primary:hover:not(:disabled){border-color:#22d3eeb3;box-shadow:0 0 24px -6px #22d3ee99}.btn.big{padding:13px 30px;font-size:13px}#overlay{z-index:40;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);pointer-events:auto;background:#0305099e;place-items:center;animation:.25s fadeIn;display:grid;position:absolute;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{border:1px solid var(--line);background:linear-gradient(160deg,#111724f5,#0a0d16f5);border-radius:22px;width:min(430px,100vw - 40px);max-height:calc(100vh - 60px);padding:30px 34px 24px;animation:.34s cubic-bezier(.2,1.2,.3,1) modalIn;overflow-y:auto;box-shadow:0 30px 80px -20px #000c,0 0 60px -30px #22d3ee80}.modal-card.wide{width:min(560px,100vw - 40px)}.modal-card.setup{width:min(620px,100vw - 40px)}.next-game{background:#22d3ee14;border:1px solid #22d3ee73;border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.ng-hint{letter-spacing:.1em;color:var(--cyan);flex:1;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.sb-badges{gap:6px;margin-top:8px;display:flex}.sb-badge{letter-spacing:.18em;color:var(--dim);border:1px solid var(--line);background:#94a3b812;border-radius:999px;padding:3px 9px;font-size:8.5px;font-weight:700}.sb-badge.official{color:var(--ember);border-color:#fb923c73}@keyframes modalIn{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:none}}.modal-card::-webkit-scrollbar{width:6px}.modal-card::-webkit-scrollbar-thumb{background:#1e293b;border-radius:3px}.modal-eyebrow{letter-spacing:.34em;color:var(--cyan);margin-bottom:10px;font-size:10px;font-weight:700}.modal-card h2{letter-spacing:.04em;font-size:28px;font-weight:800}.modal-card h3{color:var(--ink);margin:18px 0 8px;font-size:15px;font-weight:700}.modal-sub{color:var(--dim);margin-top:8px;font-size:13.5px;line-height:1.6}.option-group{margin-top:18px}.segment{gap:8px;margin-top:2px;display:flex}.seg{border:1px solid var(--line);color:var(--dim);letter-spacing:.12em;cursor:pointer;background:#ffffff08;border-radius:10px;flex:1;padding:10px 0;font-family:Outfit,sans-serif;font-size:12px;font-weight:700;transition:all .2s}.seg.on{color:var(--ink);border-color:color-mix(in srgb, var(--accent,#94a3b8) 65%, transparent);background:color-mix(in srgb, var(--accent,#94a3b8) 12%, transparent);box-shadow:0 0 18px -6px var(--accent,#94a3b8)}.modal-actions{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.modal-foot{border-top:1px dashed var(--line);letter-spacing:.2em;color:var(--faint);margin-top:18px;padding-top:14px;font-family:JetBrains Mono,monospace;font-size:10px}.result{letter-spacing:.14em;text-align:center;margin-bottom:4px;font-size:40px;font-weight:800}.result.win{background:linear-gradient(100deg, var(--cyan), #a5f3fc);color:#0000;filter:drop-shadow(0 0 22px #22d3ee73);-webkit-background-clip:text;background-clip:text}.result.lose{background:linear-gradient(100deg, var(--ember), #fdba74);color:#0000;filter:drop-shadow(0 0 22px #fb923c66);-webkit-background-clip:text;background-clip:text}.result.draw{color:var(--dim)}.scoreboard{flex-direction:column;gap:10px;margin:20px 0 4px;display:flex}.score-row{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);letter-spacing:.18em;background:#ffffff08;border-radius:12px;justify-content:space-between;align-items:center;padding:12px 18px;font-weight:800;display:flex}.score-pts{font-family:JetBrains Mono,monospace;font-size:22px}.modal-note{color:var(--faint);margin-top:10px;font-size:11.5px;line-height:1.6}.rules-list{flex-direction:column;gap:9px;margin-top:14px;list-style:none;display:flex}.rules-list li{color:var(--dim);padding-left:16px;font-size:12.5px;line-height:1.6;position:relative}.rules-list li:before{content:"";background:var(--cyan);border-radius:2px;width:6px;height:6px;position:absolute;top:8px;left:0}.rules-list b{color:var(--ink)}.matrix{border-collapse:collapse;width:100%;font-family:JetBrains Mono,monospace;font-size:12px}.matrix th,.matrix td{text-align:center;border:1px solid #94a3b81f;padding:6px 0}.matrix thead th,.matrix tbody th{color:var(--faint);letter-spacing:.1em;font-size:10px}.matrix td.yes{color:#22d3ee;background:#22d3ee12}.matrix td.no{color:#334155}@media (max-width:900px){.panel{width:168px;padding:12px 12px 10px}#logBox{display:none}#dock{justify-content:center}}#viewSeg{flex-direction:row;align-items:center;gap:10px;display:flex}#viewSeg .dock-label{margin-bottom:0}#viewSeg .seg{flex:none;padding:8px 16px;font-size:11px}#view2d{--sq:clamp(36px, min(calc((100vw - 140px) / 8), calc((100vh - 360px) / 4)), 104px);--fp:calc(var(--sq) * .16);-webkit-user-select:none;user-select:none;touch-action:none;justify-content:center;align-items:center;padding:128px 24px 168px;display:flex;position:absolute;inset:0}.b2d{position:relative}.b2d-frame{padding:var(--fp);border-radius:calc(var(--sq) * .12);background:var(--b2-frame);position:relative;box-shadow:0 24px 60px -24px #000000d9,inset 0 0 0 1px #ffffff0f}.b2d-grid{grid-template-columns:repeat(8, var(--sq));grid-template-rows:repeat(4, var(--sq));display:grid;position:relative}.sq2{position:relative}.sq2.lt2{background:var(--b2-light)}.sq2.dk2{background:var(--b2-dark)}.sq2:before{content:"";background:var(--b2-accent);opacity:0;transition:opacity .15s;position:absolute;inset:0}#view2d.int .sq2.hov:before{opacity:.3}.sq2.lf:before{opacity:.13}.sq2.lt:before{opacity:.3}.sq2.sel:before{opacity:.5}.sq2.cap:after{content:"";background:var(--m2-cap);animation:.8s ease-in-out infinite b2cap;position:absolute;inset:0}@keyframes b2cap{0%,to{opacity:.25}50%{opacity:.6}}#view2d.int .sq2{cursor:pointer}.b2d-files{left:var(--fp);right:var(--fp);display:flex;position:absolute;bottom:-24px}.b2d-files span{width:var(--sq);text-align:center;letter-spacing:.1em;color:var(--b2-label);font-family:JetBrains Mono,monospace;font-size:10px}.b2d-ranks{top:var(--fp);bottom:var(--fp);flex-direction:column;display:flex;position:absolute;left:-26px}.b2d-ranks span{height:var(--sq);color:var(--b2-label);justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.b2d-mk{pointer-events:none;z-index:3;position:absolute;inset:0}.mk2-dot{width:calc(var(--sq) * .3);height:calc(var(--sq) * .3);background:var(--m2-accent);border-radius:50%;animation:1.4s ease-in-out infinite b2pulse;position:absolute;transform:translate(-50%,-50%)}.mk2-ring{width:calc(var(--sq) * .86);height:calc(var(--sq) * .86);border:calc(var(--sq) * .06) solid var(--m2-cap);border-radius:50%;animation:1.3s ease-in-out infinite b2pulse;position:absolute;transform:translate(-50%,-50%)}.mk2-uring{width:calc(var(--sq) * .86);height:calc(var(--sq) * .86);border:calc(var(--sq) * .06) solid var(--m2-accent);border-radius:50%;animation:1.3s ease-in-out infinite b2pulse;position:absolute;transform:translate(-50%,-50%)}@keyframes b2pulse{0%,to{opacity:.65;transform:translate(-50%,-50%)scale(1)}50%{opacity:.95;transform:translate(-50%,-50%)scale(1.07)}}.mk2-jump{position:absolute;inset:0;overflow:visible}.mk2-jump path{stroke:var(--m2-cap);fill:none;stroke-width:5px;stroke-dasharray:16 12;stroke-linecap:round;opacity:.85;animation:.9s linear infinite b2dash}.mk2-jump polygon{fill:var(--m2-cap);opacity:.9}@keyframes b2dash{to{stroke-dashoffset:-28px}}.pd2{width:var(--sq);height:var(--sq);z-index:2;will-change:transform;pointer-events:none;position:absolute;top:0;left:0}.pd2-shadow{width:calc(var(--sq) * .6);height:calc(var(--sq) * .6);filter:blur(calc(var(--sq) * .05));background:#00000061;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pd2-ring{width:calc(var(--sq) * .95);height:calc(var(--sq) * .95);border:calc(var(--sq) * .05) solid var(--m2-accent);opacity:0;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pd2-flip{perspective:calc(var(--sq) * 1.6);position:absolute;inset:0}.pd2-disc{width:calc(var(--sq) * .76);height:calc(var(--sq) * .76);background:var(--pd-body);background:radial-gradient(circle at 34% 30%, color-mix(in srgb, var(--pd-body) 72%, white), var(--pd-body) 62%);border:calc(var(--sq) * .035) solid var(--pd-ring);box-shadow:inset 0 calc(var(--sq) * -.09) calc(var(--sq) * .1) #00000059, inset 0 calc(var(--sq) * .04) calc(var(--sq) * .06) #ffffff2e;will-change:transform;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pd2.glow .pd2-disc{box-shadow:0 0 calc(var(--sq) * .22) -2px var(--pd-ring), inset 0 0 calc(var(--sq) * .12) #ffffff14}.pd2-crest{position:absolute;inset:12%}.pd2-face{font-family:var(--b2-font);font-weight:700;font-size:calc(var(--sq) * .34);text-shadow:0 calc(var(--sq) * .02) calc(var(--sq) * .03) #0006;line-height:1;position:relative;transform:translateY(.03em)}.pd2.glow .pd2-face{text-shadow:0 0 calc(var(--sq) * .16) var(--pd-ring)}.pd2-hit{pointer-events:auto;border-radius:50%;position:absolute;inset:-8%}#view2d.nonint .pd2-hit{pointer-events:none}.fx2{width:var(--sq);height:var(--sq);z-index:4;pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.fx2-shards{position:absolute;top:50%;left:50%}.fx2-shard{border-radius:2px;position:absolute;top:0;left:0}.fx2-ring{width:calc(var(--sq) * .6);height:calc(var(--sq) * .6);border:calc(var(--sq) * .05) solid #ccc;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fx2-dust{width:calc(var(--sq) * .55);height:calc(var(--sq) * .55);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (max-width:720px){#view2d{--sq:clamp(30px, min(calc((100vw - 90px) / 8), calc((100vh - 340px) / 4)), 96px);padding:118px 12px 148px}}body[data-theme=traditional]{--bg:#171210;--ink:#f0e6d2;--dim:#bda784;--faint:#94805f;--panel:#241c14;--line:#c9a22742;--cyan:#c9a227;--ember:#b03a26;background:var(--bg);font-family:Georgia,Palatino Linotype,Times New Roman,serif}body[data-theme=traditional] #brand h1,body[data-theme=traditional] .modal-card h2,body[data-theme=traditional] .modal-card h3,body[data-theme=traditional] .modal-eyebrow,body[data-theme=traditional] .btn,body[data-theme=traditional] .tab,body[data-theme=traditional] .seg,body[data-theme=traditional] .panel-name,body[data-theme=traditional] .dock-label,body[data-theme=traditional] .modal-foot,body[data-theme=traditional] #matchLine{font-family:Georgia,Palatino Linotype,Times New Roman,serif}body[data-theme=traditional] #brand p{letter-spacing:.3em;color:var(--faint)}body[data-theme=traditional] #turnPill,body[data-theme=traditional] .toast,body[data-theme=traditional] .panel,body[data-theme=traditional] #logBox,body[data-theme=traditional] .btn,body[data-theme=traditional] .tabs,body[data-theme=traditional] .segment,body[data-theme=traditional] .input,body[data-theme=traditional] #drawBanner,body[data-theme=traditional] #roomCode{-webkit-backdrop-filter:none;backdrop-filter:none;background:#241c14;border-color:#c9a2274d}body[data-theme=traditional] #overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0c0907b8}body[data-theme=traditional] .modal-card{background:linear-gradient(165deg,#2b2218,#201810);border:1px solid #c9a22759;box-shadow:0 30px 80px -20px #000000d9}body[data-theme=traditional] .modal-card::-webkit-scrollbar-thumb{background:#4a3a24}body[data-theme=traditional] .btn:hover:not(:disabled){background:#2e2419;border-color:#c9a22799}body[data-theme=traditional] .btn-primary{color:#f6ead0;background:#6e5518;border-color:#c9a227b3}body[data-theme=traditional] .btn-primary:hover:not(:disabled){background:#86691f;border-color:#c9a227e6;box-shadow:0 0 22px -8px #c9a2278c}body[data-theme=traditional] .tab{color:var(--dim)}body[data-theme=traditional] .tab.on{color:#f0e6d2;background:#332717;box-shadow:inset 0 0 0 1px #c9a22780}body[data-theme=traditional] .seg.on{color:#f0e6d2;background:#3a2c16;box-shadow:inset 0 0 0 1px #c9a2278c}body[data-theme=traditional] .toast.warn{color:#e8a894;border-color:#b03a268c}body[data-theme=traditional] .toast.good{color:#dcc27e;border-color:#c9a2278c}body[data-theme=traditional] #roomCode{color:#dcc27e;background:#33291a;border-color:#c9a22780}body[data-theme=traditional] .input:focus{border-color:#c9a22799;box-shadow:0 0 14px -6px #c9a22780}body[data-theme=traditional] .err-hint{color:#e8a894;background:#b03a261a;border-color:#b03a2680}body[data-theme=traditional] #drawBanner{border-color:#c9a22773;box-shadow:0 6px 24px -10px #000c}body[data-theme=traditional] #drawBanner.out{color:var(--dim)}body[data-theme=traditional] .result.win{color:#c9a227}body[data-theme=traditional] .result.lose{color:#c05b40}body[data-theme=traditional] .result.draw{color:var(--dim)}body[data-theme=traditional] .score-row{background:#2b2218}body[data-theme=traditional] .matrix th,body[data-theme=traditional] .matrix td{border-color:#c9a2272e}body[data-theme=traditional] .matrix td.yes{color:#c9a227;background:#c9a22717}body[data-theme=traditional] .matrix td.no{color:#5c4c34}body[data-theme=traditional] #log::-webkit-scrollbar-thumb{background:#4a3a24}body[data-theme=traditional] .chip{color:#dcc27e;border-color:#c9a22759}body[data-theme=traditional] .toast,body[data-theme=traditional] .panel,body[data-theme=traditional] #logBox,body[data-theme=traditional] #turnPill{box-shadow:0 10px 30px -12px #000c}body[data-theme=forest]{--bg:#0c130d;--ink:#e0ead0;--dim:#a9bd91;--faint:#7d9266;--panel:#1a241a;--line:#9fd06a42;--cyan:#9fd06a;--ember:#c94f3d;background:var(--bg);font-family:Georgia,Palatino Linotype,Times New Roman,serif}body[data-theme=forest] #brand h1,body[data-theme=forest] .modal-card h2,body[data-theme=forest] .modal-card h3,body[data-theme=forest] .modal-eyebrow,body[data-theme=forest] .btn,body[data-theme=forest] .tab,body[data-theme=forest] .seg,body[data-theme=forest] .panel-name,body[data-theme=forest] .dock-label,body[data-theme=forest] .modal-foot,body[data-theme=forest] #matchLine{font-family:Georgia,Palatino Linotype,Times New Roman,serif}body[data-theme=forest] #brand p{letter-spacing:.3em;color:var(--faint)}body[data-theme=forest] #turnPill,body[data-theme=forest] .toast,body[data-theme=forest] .panel,body[data-theme=forest] #logBox,body[data-theme=forest] .btn,body[data-theme=forest] .tabs,body[data-theme=forest] .segment,body[data-theme=forest] .input,body[data-theme=forest] #drawBanner,body[data-theme=forest] #roomCode{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1a241a;border-color:#9fd06a47}body[data-theme=forest] #overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:#060a06b8}body[data-theme=forest] .modal-card{background:linear-gradient(165deg,#1d2a1c,#141e12);border:1px solid #9fd06a57;box-shadow:0 30px 80px -20px #000000d9}body[data-theme=forest] .modal-card::-webkit-scrollbar-thumb{background:#33422a}body[data-theme=forest] .btn:hover:not(:disabled){background:#222e1e;border-color:#9fd06a8c}body[data-theme=forest] .btn-primary{color:#e9f4d8;background:#3f5a26;border-color:#9fd06aa6}body[data-theme=forest] .btn-primary:hover:not(:disabled){background:#4c6b2e;border-color:#9fd06ae6;box-shadow:0 0 22px -8px #9fd06a8c}body[data-theme=forest] .tab{color:var(--dim)}body[data-theme=forest] .tab.on{color:#e4eed2;background:#26331d;box-shadow:inset 0 0 0 1px #9fd06a80}body[data-theme=forest] .seg.on{color:#e4eed2;background:#2a3a1e;box-shadow:inset 0 0 0 1px #9fd06a8c}body[data-theme=forest] .toast.warn{color:#eaa794;border-color:#c94f3d8c}body[data-theme=forest] .toast.good{color:#c6dba0;border-color:#9fd06a8c}body[data-theme=forest] #roomCode{color:#c6dba0;background:#202b1c;border-color:#9fd06a80}body[data-theme=forest] .input:focus{border-color:#9fd06a99;box-shadow:0 0 14px -6px #9fd06a80}body[data-theme=forest] .err-hint{color:#eaa794;background:#c94f3d1a;border-color:#c94f3d80}body[data-theme=forest] #drawBanner{border-color:#9fd06a73;box-shadow:0 6px 24px -10px #000c}body[data-theme=forest] #drawBanner.out{color:var(--dim)}body[data-theme=forest] .result.win{color:#9fd06a}body[data-theme=forest] .result.lose{color:#c94f3d}body[data-theme=forest] .result.draw{color:var(--dim)}body[data-theme=forest] .score-row{background:#1c291a}body[data-theme=forest] .matrix th,body[data-theme=forest] .matrix td{border-color:#9fd06a2e}body[data-theme=forest] .matrix td.yes{color:#9fd06a;background:#9fd06a17}body[data-theme=forest] .matrix td.no{color:#46583a}body[data-theme=forest] #log::-webkit-scrollbar-thumb{background:#33422a}body[data-theme=forest] .chip{color:#c6dba0;border-color:#9fd06a59}body[data-theme=forest] .toast,body[data-theme=forest] .panel,body[data-theme=forest] #logBox,body[data-theme=forest] #turnPill{box-shadow:0 10px 30px -12px #000c}body[data-theme=castle]{--bg:#12100d;--ink:#e8dfc8;--dim:#b3a789;--faint:#877a5f;--panel:#1e1a14;--line:#d4af3747;--cyan:#d4af37;--ember:#a03028;background:var(--bg);font-family:Georgia,Palatino Linotype,Times New Roman,serif}body[data-theme=castle] #brand h1,body[data-theme=castle] .modal-card h2,body[data-theme=castle] .modal-card h3,body[data-theme=castle] .modal-eyebrow,body[data-theme=castle] .btn,body[data-theme=castle] .tab,body[data-theme=castle] .seg,body[data-theme=castle] .panel-name,body[data-theme=castle] .dock-label,body[data-theme=castle] .modal-foot,body[data-theme=castle] #matchLine{font-family:Georgia,Palatino Linotype,Times New Roman,serif}body[data-theme=castle] #brand p{letter-spacing:.3em;color:var(--faint)}body[data-theme=castle] #turnPill,body[data-theme=castle] .toast,body[data-theme=castle] .panel,body[data-theme=castle] #logBox,body[data-theme=castle] .btn,body[data-theme=castle] .tabs,body[data-theme=castle] .segment,body[data-theme=castle] .input,body[data-theme=castle] #drawBanner,body[data-theme=castle] #roomCode{-webkit-backdrop-filter:none;backdrop-filter:none;background:#1e1a14;border-color:#d4af374d}body[data-theme=castle] #overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:#080705bd}body[data-theme=castle] .modal-card{background:linear-gradient(165deg,#282218,#17130d);border:1px solid #d4af3761;box-shadow:0 30px 80px -20px #000000d9}body[data-theme=castle] .modal-card::-webkit-scrollbar-thumb{background:#3d372a}body[data-theme=castle] .btn:hover:not(:disabled){background:#272117;border-color:#d4af3799}body[data-theme=castle] .btn-primary{color:#f2e8ce;background:#5c4716;border-color:#d4af37b8}body[data-theme=castle] .btn-primary:hover:not(:disabled){background:#6d551a;border-color:#d4af37f2;box-shadow:0 0 22px -8px #d4af378c}body[data-theme=castle] .tab{color:var(--dim)}body[data-theme=castle] .tab.on{color:#eee4c8;background:#2f2a18;box-shadow:inset 0 0 0 1px #d4af3780}body[data-theme=castle] .seg.on{color:#eee4c8;background:#332d1a;box-shadow:inset 0 0 0 1px #d4af378c}body[data-theme=castle] .toast.warn{color:#e8a294;border-color:#a030288c}body[data-theme=castle] .toast.good{color:#d9c384;border-color:#d4af378c}body[data-theme=castle] #roomCode{color:#d9c384;background:#262014;border-color:#d4af3785}body[data-theme=castle] .input:focus{border-color:#d4af379e;box-shadow:0 0 14px -6px #d4af3780}body[data-theme=castle] .err-hint{color:#e8a294;background:#a030281a;border-color:#a0302880}body[data-theme=castle] #drawBanner{border-color:#d4af3773;box-shadow:0 6px 24px -10px #000c}body[data-theme=castle] #drawBanner.out{color:var(--dim)}body[data-theme=castle] .result.win{color:#d4af37}body[data-theme=castle] .result.lose{color:#a03028}body[data-theme=castle] .result.draw{color:var(--dim)}body[data-theme=castle] .score-row{background:#262014}body[data-theme=castle] .matrix th,body[data-theme=castle] .matrix td{border-color:#d4af3733}body[data-theme=castle] .matrix td.yes{color:#d4af37;background:#d4af3717}body[data-theme=castle] .matrix td.no{color:#5a5340}body[data-theme=castle] #log::-webkit-scrollbar-thumb{background:#3d372a}body[data-theme=castle] .chip{color:#d9c384;border-color:#d4af3761}body[data-theme=castle] .toast,body[data-theme=castle] .panel,body[data-theme=castle] #logBox,body[data-theme=castle] #turnPill{box-shadow:0 10px 30px -12px #000c}.avatar-emoji{font-family:Noto Color Emoji,Segoe UI Emoji,Apple Color Emoji,sans-serif;font-size:inherit;line-height:1}.modal-card.profile{width:min(430px,100vw - 40px)}.prof-id{align-items:center;gap:12px;padding:4px 0 12px;display:flex}.prof-avatar{border:1px solid var(--line);background:linear-gradient(135deg, var(--cyan), #38bdf8);color:#06131f;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-family:Noto Color Emoji,Segoe UI Emoji,Apple Color Emoji,sans-serif;font-size:29px;font-weight:800;transition:transform .15s,box-shadow .15s;display:flex}.prof-avatar svg{width:24px;height:24px}.prof-avatar:hover{box-shadow:0 0 22px -6px var(--cyan);transform:scale(1.06)}.prof-id-text{flex-direction:column;gap:3px;min-width:0;display:flex}.prof-id-name{letter-spacing:.07em;color:var(--ink);font-family:Outfit,sans-serif;font-size:15px;font-weight:700}.prof-id-sub{letter-spacing:.06em;color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:10px;overflow:hidden}.prof-avatars{padding-bottom:12px}.prof-avatars .dock-label{margin-bottom:8px}.prof-avatar-grid{flex-wrap:wrap}.prof-av{flex:none;min-width:46px;height:40px;padding:4px 8px;font-size:22px}.prof-av:first-child{letter-spacing:.12em;font-size:10.5px;font-weight:700}.prof-prefs{padding-bottom:6px}.prof-prefs .dock-label{margin-bottom:8px}.prof-rows{border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:0;display:flex;overflow:hidden}.prof-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;display:flex}.prof-row:last-child{border-bottom:none}.prof-k{letter-spacing:.14em;color:var(--faint);font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:700}.prof-v{letter-spacing:.06em;color:var(--ink);font-family:Outfit,sans-serif;font-size:12.5px;font-weight:700}.prof-v,.prof-avatar,.prof-av{-webkit-font-smoothing:antialiased}.prof-note{color:var(--cyan)}body[data-theme=daylight]{--bg:#e9edf1;--ink:#26313d;--dim:#5a6a80;--faint:#83919f;--panel:#f7f9fb;--line:#26313d2e;--cyan:#b45309;--ember:#b91c1c;background:var(--bg)}body[data-theme=daylight] #overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#5a66766b}body[data-theme=daylight] .modal-card{background:linear-gradient(165deg,#fff,#f2f4f7);border:1px solid #26313d38;box-shadow:0 30px 70px -30px #1e293b66}body[data-theme=daylight] #menuBtn,body[data-theme=daylight] #soundBtn,body[data-theme=daylight] #userChip,body[data-theme=daylight] .lang-pill,body[data-theme=daylight] #roomCode{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffc7;border-color:#26313d33}body[data-theme=daylight] #soundBtn:not(.muted) svg{filter:drop-shadow(0 0 8px #b4530959)}body[data-theme=daylight] #menuBtn:hover,body[data-theme=daylight] #soundBtn:hover,body[data-theme=daylight] .lang-pill:hover{background:#fffffff2;border-color:#b4530980;box-shadow:0 0 16px -6px #b453094d}body[data-theme=daylight] .lang-pill select option{background:#fff}body[data-theme=daylight] #soundBtn:not(.muted) svg,body[data-theme=daylight] .lang-icon{color:var(--cyan)}body[data-theme=daylight] #userChip .avatar.known,body[data-theme=daylight] .menu-id .avatar,body[data-theme=daylight] .prof-avatar{color:#3a2c12;background:linear-gradient(135deg,#f59e0b,#fcd34d)}body[data-theme=daylight] #menuPop{background:#fafbfdf5;border-color:#26313d33;box-shadow:0 24px 60px -24px #1e293b73}body[data-theme=daylight] #menuPop::-webkit-scrollbar-thumb{background:#cdd6de}body[data-theme=daylight] .menu-id,body[data-theme=daylight] .rating-rank,body[data-theme=daylight] .ladder-empty,body[data-theme=daylight] .menu-hint{color:var(--dim)}body[data-theme=daylight] #turnPill,body[data-theme=daylight] .toast,body[data-theme=daylight] .panel,body[data-theme=daylight] #logBox,body[data-theme=daylight] .btn,body[data-theme=daylight] .tabs,body[data-theme=daylight] .segment,body[data-theme=daylight] .input,body[data-theme=daylight] #drawBanner{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fbfcfd;border-color:#26313d33}body[data-theme=daylight] #roomCode{color:var(--cyan)}body[data-theme=daylight] .btn:hover:not(:disabled){background:#fdf3e7;border-color:#b453098c}body[data-theme=daylight] .btn-primary{color:#fff8ef;background:#b45309;border-color:#b45309d9}body[data-theme=daylight] .btn-primary:hover:not(:disabled){background:#c2570a;border-color:#b45309;box-shadow:0 0 20px -6px #b4530973}body[data-theme=daylight] .tab{color:var(--dim)}body[data-theme=daylight] .tab.on{color:#9a5b0b;background:#f8ecdc;box-shadow:inset 0 0 0 1px #b4530980}body[data-theme=daylight] .seg.on{color:#9a5b0b;background:#f8ecdc;box-shadow:inset 0 0 0 1px #b453098c}body[data-theme=daylight] .toast.warn{color:#b91c1c;border-color:#b91c1c80}body[data-theme=daylight] .toast.good{color:#15803d;border-color:#15803d80}body[data-theme=daylight] #drawBanner{box-shadow:0 8px 26px -12px #1e293b59}body[data-theme=daylight] .result.win{color:#15803d}body[data-theme=daylight] .result.lose{color:#b91c1c}body[data-theme=daylight] .result.draw{color:var(--dim)}body[data-theme=daylight] .score-row{background:#f2f4f7}body[data-theme=daylight] .matrix th,body[data-theme=daylight] .matrix td{border-color:#26313d2e}body[data-theme=daylight] .matrix td.yes{color:#15803d;background:#15803d14}body[data-theme=daylight] .matrix td.no{color:#9aa7b4}body[data-theme=daylight] .input:focus{border-color:#b4530999;box-shadow:0 0 14px -6px #b4530980}body[data-theme=daylight] .err-hint{color:#b91c1c;background:#b91c1c14;border-color:#b91c1c80}body[data-theme=daylight] .chip{color:var(--dim);border-color:#26313d3d}body[data-theme=daylight] #log::-webkit-scrollbar-thumb{background:#cdd6de}body[data-theme=daylight] .modal-card::-webkit-scrollbar-thumb{background:#cdd6de}body[data-theme=daylight] .toast,body[data-theme=daylight] .panel,body[data-theme=daylight] #logBox,body[data-theme=daylight] #turnPill{box-shadow:0 10px 26px -14px #1e293b4d}.menu-foot{gap:8px;margin-top:10px;display:flex}#menuSoundBtn{border:1px solid var(--line);width:44px;height:36px;color:var(--ink);cursor:pointer;background:#ffffff08;border-radius:10px;flex:none;justify-content:center;align-items:center;transition:border-color .18s,background .18s,box-shadow .18s;display:flex}#menuSoundBtn svg{width:17px;height:17px}#menuSoundBtn:hover{border-color:var(--cyan);box-shadow:0 0 14px -6px var(--cyan)}#menuSoundBtn:not(.on){color:var(--cyan)}#menuSoundBtn.on{color:var(--faint)}.menu-lang{border-radius:10px;flex:1;padding:7px 10px}.menu-lang select{width:100%}.modal-card.rank{width:min(430px,100vw - 40px)}.rank-tabs{margin:4px 0 14px}.rank-body{flex-direction:column;gap:12px;display:flex}.rank-career{margin-top:2px}.rank-rating{padding-bottom:2px}.rank-ladder{max-height:300px;overflow-y:auto}.rank-ladder::-webkit-scrollbar{width:5px}.rank-ladder::-webkit-scrollbar-thumb{background:#1e293b;border-radius:3px}.modal-card.about{border:1px solid #22d3ee66;border-radius:22px;width:min(430px,100vw - 40px);padding:0;position:relative;overflow:hidden}.about-bg{position:absolute;inset:0}.about-aurora{filter:blur(46px);background:conic-gradient(#22d3ee3d,#9333ea33,#fb923c2e,#22d3ee3d);animation:16s linear infinite about-spin;position:absolute;inset:-40%}.about-stars{background-image:radial-gradient(2px 2px at 12% 24%,#ffffffe6,#0000 60%),radial-gradient(1.5px 1.5px at 78% 18%,#ffffffb3,#0000 60%),radial-gradient(2px 2px at 32% 76%,#22d3eecc,#0000 60%),radial-gradient(1.5px 1.5px at 62% 58%,#fff9,#0000 60%),radial-gradient(2px 2px at 88% 82%,#fb923ccc,#0000 60%),radial-gradient(1.5px 1.5px at 52% 34%,#ffffff80,#0000 60%);animation:9s ease-in-out infinite alternate about-pan;position:absolute;inset:0}.about-orbit{position:absolute;inset:0}.about-orb{filter:blur(.5px);opacity:.85;border-radius:50%;position:absolute}.about-orb.a{background:radial-gradient(circle at 32% 28%,#22d3ee,#0e7490 70%);width:70px;height:70px;animation:11s ease-in-out infinite alternate about-drift;top:70%;left:8%}.about-orb.b{background:radial-gradient(circle at 30% 30%,#f472b6,#9d174d 74%);width:44px;height:44px;animation:14s ease-in-out infinite alternate-reverse about-drift;top:22%;left:78%}.about-orb.c{background:radial-gradient(circle at 32% 28%,#fdba74,#9a3412 72%);width:30px;height:30px;animation:17s ease-in-out infinite alternate about-drift;top:18%;left:24%}@keyframes about-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes about-pan{0%{transform:translate(-3%,-2%)scale(1.05)}to{transform:translate(3%,2%)scale(1.05)}}@keyframes about-drift{0%{transform:translateY(10px)scale(1)}to{transform:translate(16px,-14px)scale(1.12)}}.about-inner{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:54px 30px 38px;display:flex;position:relative}.about-kind{letter-spacing:.36em;color:#e2e8f0b3;text-shadow:0 2px 10px #020814cc;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.about-mark{letter-spacing:.04em;background:linear-gradient(120deg,#67e8f9 0%,#e2e8f0 30%,#67e8f9 55%,#e2e8f0 80%,#67e8f9 100%) 0 0/220% 100%;color:#0000;text-shadow:none;-webkit-background-clip:text;background-clip:text;font-family:Outfit,sans-serif;font-size:44px;font-weight:900;line-height:1.05;animation:5.5s linear infinite about-shimmer}.about-mark-hl{background:inherit;-webkit-background-clip:text;background-clip:text}.about-tm{color:var(--cyan);vertical-align:super;font-size:15px}@keyframes about-shimmer{0%{background-position:220% 0}to{background-position:0 0}}.about-tag{letter-spacing:.22em;color:#e2e8f0;text-shadow:0 2px 12px #020814d9;font-family:Outfit,sans-serif;font-size:12.5px;font-weight:700}.about-since{letter-spacing:.2em;color:#e2e8f0bf;text-shadow:0 2px 12px #020814d9;font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:700}.about-badges{gap:8px;margin-top:8px;display:flex}.about-badge{letter-spacing:.14em;color:#67e8f9;background:#0814228c;border:1px solid #67e8f973;border-radius:999px;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.modal-card.tutorial{width:min(720px,100vw - 40px);padding-top:34px;position:relative}.tut-bar{background:#94a3b824;border-radius:22px 22px 0 0;height:4px;position:absolute;top:0;left:0;right:0;overflow:hidden}.tut-bar span{background:linear-gradient(90deg, var(--cyan), #67e8f9, var(--ember));height:100%;box-shadow:0 0 14px -2px var(--cyan);transition:width .45s cubic-bezier(.3,1,.3,1);display:block}.tut-head{justify-content:space-between;align-items:center;gap:12px;margin:2px 0 14px;display:flex}.tut-count{letter-spacing:.26em;color:var(--faint);font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.tut-dots{gap:6px;display:flex}.tut-dots span{background:#94a3b838;border-radius:50%;width:7px;height:7px;transition:background .3s,box-shadow .3s,transform .3s}.tut-dots span.on{background:var(--cyan);box-shadow:0 0 10px -2px var(--cyan);transform:scale(1.15)}.tut-stage{align-items:center;gap:22px;min-height:172px;animation:.4s ease-out tut-in;display:flex}@keyframes tut-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tut-demo{border:1px solid var(--line);background:radial-gradient(18px 18px at 20% 15%,#22d3ee1a,#0000 70%),radial-gradient(16px 16px at 84% 82%,#fb923c1a,#0000 70%),linear-gradient(160deg,#0d121ed9,#060910f2);border-radius:16px;flex:none;justify-content:center;align-items:center;width:178px;height:178px;display:flex;overflow:hidden}.tut-copy{flex:1;min-width:0}.tut-copy h3{letter-spacing:.06em;color:var(--ink);margin-bottom:8px;font-family:Outfit,sans-serif;font-size:20px;font-weight:800}.tut-copy p{color:var(--dim);font-size:13px;line-height:1.65}.dm{grid-template-rows:repeat(3,46px);grid-template-columns:repeat(3,46px);gap:6px;display:grid}.dm.row{align-items:center;gap:6px;display:flex}.dm-cell{will-change:transform;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:800;display:flex}.dm-disc{color:#eef4fb;background:radial-gradient(circle at 34% 28%,#4c5a72,#232e40 66%);border:2px solid #e2e8f080;box-shadow:inset 0 -6px 12px #00000073}.dm-disc.dm-spy,.dm-disc.dm-target{color:#43331c;background:radial-gradient(circle at 34% 28%,#ffd9a8,#e9dcc0 68%);border-color:#42331c8c}.dm-in{animation:2.6s infinite both dm-pop}@keyframes dm-pop{0%{opacity:0;transform:scale(0)rotate(-30deg)}22%{opacity:1;transform:scale(1.14)rotate(4deg)}32%{transform:scale(1)}82%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.4)}}.dm-flip{transform-style:preserve-3d;animation:3.2s ease-in-out infinite dm-rotate}@keyframes dm-rotate{0%,18%{color:#0000;background:radial-gradient(circle at 34% 28%,#8a93a6,#394356 68%);transform:rotateY(0)}46%,82%{color:#43331c;background:radial-gradient(circle at 34% 28%,#ffd9a8,#e9dcc0 68%);transform:rotateY(180deg)}to{color:#0000;transform:rotateY(360deg)}}.dm-mover{z-index:2;animation:2.8s ease-in-out infinite dm-slide;position:relative}@keyframes dm-slide{0%,12%{transform:translate(0);box-shadow:inset 0 -6px 12px #00000073,0 0 #67e8f900}38%{transform:translate(-52px)scale(1.06);box-shadow:inset 0 -6px 12px #00000073,0 0 18px -4px #67e8f9}55%{transform:translate(-52px)}to{transform:translate(0)}}.dm-victim{animation:2.8s ease-in-out infinite dm-die}@keyframes dm-die{0%,34%{opacity:1;filter:saturate();transform:scale(1)}48%{opacity:.25;filter:saturate(2)brightness(1.3);transform:scale(.7)}76%{opacity:1;transform:scale(1)}to{opacity:1}}.dm-spy{color:#b91c1c;border-color:#b91c1c;animation:2.8s ease-in-out infinite dm-spy-slide}@keyframes dm-spy-slide{0%,12%{transform:translate(0)}42%{transform:translate(-52px)scale(1.1)}62%{transform:translate(-52px)}to{transform:translate(0)}}.dm-marshal{color:#e9dcc0;animation:2.8s ease-in-out infinite dm-die,1.4s ease-in-out infinite dm-shock}@keyframes dm-shock{0%,to{box-shadow:inset 0 -6px 12px #00000073,0 0 0 1px #943c3c00}50%{box-shadow:inset 0 -6px 12px #00000073,0 0 16px -2px #fb3b64d9}}.dm-over{opacity:.55;animation:2.2s ease-in-out infinite dm-bob}@keyframes dm-bob{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:.3;transform:translateY(-5px)}}.dm-leap{z-index:3;animation:2.8s cubic-bezier(.4,0,.4,1) infinite dm-arc}@keyframes dm-arc{0%,10%{transform:translate(0)scale(1)}30%{transform:translate(46px,-34px)scale(1.1)}55%{transform:translate(112px,-46px)scale(1.14)}78%{transform:translate(124px)scale(1)}92%{transform:translate(124px)}to{transform:translate(0)}}.dm-target{color:#8c2018;animation:2.8s ease-in-out infinite dm-warning;position:relative}@keyframes dm-warning{0%,55%{box-shadow:0 0 #fb3b6400}70%,84%{box-shadow:0 0 18px -3px #fb3b64f2}to{box-shadow:0 0 #fb3b6400}}.dm-fade{animation:2.8s ease-in-out infinite dm-vanish}@keyframes dm-vanish{0%,8%{opacity:1;transform:scale(1)}40%{opacity:0;transform:scale(.3)rotate(20deg)}70%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.tut-brand{flex-direction:column;align-items:center;gap:14px;display:flex}.tut-brand-name{letter-spacing:.05em;background:linear-gradient(120deg,#67e8f9,#e2e8f0,#67e8f9,#e2e8f0,#67e8f9) 0 0/200% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;font-family:Outfit,sans-serif;font-size:21px;font-weight:900;animation:4.5s linear infinite about-shimmer}.tut-brand-name i{vertical-align:super;font-size:10px;font-style:normal}.tut-orb{background:radial-gradient(circle at 30% 26%,#a5f3fc,#0891b2 45%,#164e63 85%);border-radius:50%;width:54px;height:54px;animation:3.4s ease-in-out infinite alternate tut-float;box-shadow:0 0 34px -6px #22d3ee,inset 0 -10px 16px #02141e99}@keyframes tut-float{0%{transform:translateY(-6px)}to{transform:translateY(7px)}}.tut-clock{justify-content:center;align-items:center;width:96px;height:96px;display:flex;position:relative}.tut-clock b{color:var(--ink);z-index:1;font-family:JetBrains Mono,monospace;font-size:26px}.tut-clock-ring{border:3px solid #0000;border-top-color:var(--cyan);border-right-color:var(--cyan);filter:drop-shadow(0 0 10px #22d3ee8c);border-radius:50%;animation:2.4s linear infinite tut-ring;position:absolute;inset:0}@keyframes tut-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.panel-stats.official-mode{gap:5px}.official-tag{letter-spacing:.24em;color:var(--cyan);align-items:center;gap:7px;font-family:Outfit,sans-serif;font-size:9.5px;font-weight:800;display:flex}.official-tag:before{content:"";background:var(--cyan);width:7px;height:7px;box-shadow:0 0 8px var(--cyan);border-radius:50%;flex:none;animation:1.8s ease-in-out infinite bg-pulse}@keyframes bg-pulse{0%,to{opacity:1}50%{opacity:.35}}.official-turn{letter-spacing:.08em;color:var(--dim);white-space:nowrap;font-family:Outfit,sans-serif;font-size:13.5px;font-weight:800}.official-turn.live{color:var(--cyan);text-shadow:0 0 14px var(--cyan);animation:3s ease-in-out infinite ot-slide}@keyframes ot-slide{0%,to{transform:translate(0)}50%{transform:translate(4px)}}.official-turn.live{animation:3s ease-in-out infinite ot-slide}.official-plain{letter-spacing:.12em;color:var(--faint);align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;display:flex}.official-plain:after{content:"";background:linear-gradient(90deg, var(--accent), transparent);opacity:.5;border-radius:2px;flex:1;height:3px}.tactic-debug{letter-spacing:.14em;text-align:left;color:#fbbf24;background:#140e0299;border:1px dashed #fbbf248c;border-radius:8px;margin-top:10px;padding:7px 12px;font-family:JetBrains Mono,monospace;font-size:9.5px;font-weight:700}
