:root{--red:#fe5f55;--red-d:#a8372f;--blue:#009dff;--blue-d:#0066a8;--orange:#fda200;--orange-d:#a86b00;--green:#4bc292;--green-d:#2a7c5a;--grey:#5f7377;--grey-d:#3a4a4d;--purple:#8867a5;--gold:#eac058;--panel:#3a5055;--panel-d:#1e2b2d;--panel-in:#2b3c3f;--text:#fff;--muted:#b5c7c9;--text-scale:1;--ui-scale:1;--crt:.5;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);color:var(--text);-webkit-font-smoothing:none;font-smooth:never;font-family:m6x11,ui-monospace,monospace}*{box-sizing:border-box}html,body{overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#14282a;height:100%;margin:0;overflow:hidden}#bg{width:100%;height:100%;image-rendering:pixelated;z-index:0;position:fixed;inset:0}#stage{z-index:1;position:fixed;inset:0}#stage canvas{display:block}#app{z-index:2;pointer-events:none;font-size:calc(18px * var(--text-scale));position:fixed;inset:0}#app main,#app .panel,#app button,#app input,#app label,#app .modal-backdrop,#app .topbar,#app .action-bar{pointer-events:auto}#crt{z-index:50;pointer-events:none;display:none;position:fixed;inset:0}.crt-on #crt{background:repeating-linear-gradient(to bottom, rgba(0, 0, 0, calc(.22 * var(--crt))) 0px, rgba(0, 0, 0, calc(.22 * var(--crt))) 1px, transparent 1px, transparent 3px), radial-gradient(ellipse at center, transparent 55%, rgba(0, 0, 0, calc(.75 * var(--crt))) 100%);display:block}.crt-on:not(.reduced-motion) #crt:after{content:"";background:rgba(255, 255, 255, calc(.025 * var(--crt)));animation:.15s steps(2,end) infinite flicker;position:absolute;inset:0}@keyframes flicker{50%{opacity:.4}}h1,h2,h3{text-shadow:0 3px #00000073;margin:0 0 .4em;font-weight:400}h2{font-size:1.6em}h3{color:var(--gold);font-size:1.2em}p{margin:.4em 0}.muted{color:var(--muted)}.small{font-size:.85em}.center{text-align:center}.good{color:var(--green)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.panel{background:var(--panel);box-shadow:0 6px 0 var(--panel-d), 0 10px 24px #00000073;border:3px solid #4f6a70;border-radius:12px;padding:16px}.btn{font:inherit;color:#fff;cursor:pointer;text-shadow:0 2px #00000059;min-width:46px;min-height:46px;box-shadow:0 5px 0 var(--shadow);white-space:nowrap;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.4em;padding:.45em .9em;font-size:1.05em;transition:transform 60ms,box-shadow 60ms,filter .1s;display:inline-flex;position:relative;transform:translateY(0)}.btn:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 6px 0 var(--shadow);transform:translateY(-1px)}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--shadow);transform:translateY(4px)}.btn:disabled{filter:grayscale(.8)brightness(.65);cursor:not-allowed}.btn:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.btn-red{background:var(--red);--shadow:var(--red-d)}.btn-blue{background:var(--blue);--shadow:var(--blue-d)}.btn-orange{background:var(--orange);--shadow:var(--orange-d)}.btn-green{background:var(--green);--shadow:var(--green-d)}.btn-grey{background:var(--grey);--shadow:var(--grey-d)}.btn-purple{background:var(--purple);--shadow:#5a4270}.btn-big{min-height:56px;padding:.4em 1.2em;font-size:1.35em}.kbd{font:inherit;vertical-align:middle;color:#2b3c3f;min-width:1.7em;height:1.7em;text-shadow:none;background:linear-gradient(#f4f6f1,#d9dfd8);border-radius:5px;justify-content:center;align-items:center;margin-left:.5em;padding:0 .35em;font-size:.6em;line-height:1;display:inline-flex;translate:0 -1px;box-shadow:0 2px #8d9a98,0 3px 2px #0000004d}.btn:disabled .kbd{opacity:.45}@media (hover:none){.kbd{display:none}}.sprite{image-rendering:pixelated;vertical-align:middle;background-repeat:no-repeat;flex:none;display:inline-block;position:relative}.sprite.card>.sprite{position:absolute;inset:0}.sprite.card.dim{opacity:.4}input:not([type]),input[type=text]{font:inherit;color:#fff;background:var(--panel-in);-webkit-user-select:text;user-select:text;border:3px solid #4f6a70;border-radius:8px;width:100%;min-height:46px;padding:.35em .6em;font-size:1.2em}.field{color:var(--muted);flex-direction:column;gap:4px;display:flex}.title-screen{padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;inset:0;overflow-y:auto}.logo{letter-spacing:2px;color:#fff;text-shadow:0 6px 0 var(--red-d), 0 10px 0 #0006;margin:0;font-size:clamp(56px,13vw,128px)}.logo .wave .w>span:nth-child(odd){color:var(--red)}.logo .wave .w>span:nth-child(2n){color:var(--blue);text-shadow:0 6px 0 var(--blue-d), 0 10px 0 #0006}.wave .w{white-space:nowrap}.wave .w>span{animation:letter-idle 1.3s ease-in-out calc(var(--i) * -.37s) infinite alternate;display:inline-block}@keyframes letter-idle{0%{rotate:-2.5deg}to{rotate:2.5deg}}.logo-fan{z-index:3;justify-content:center;margin-top:-6px;padding-bottom:10px;display:flex;position:relative}.logo-fan>span{rotate:var(--a);translate:0 var(--y);transform-origin:50% 150%;filter:drop-shadow(0 6px #00000059);cursor:grab;touch-action:none;margin:0 -9px;transition:translate .45s cubic-bezier(.3,1.6,.5,1),rotate .45s cubic-bezier(.3,1.6,.5,1),scale .2s;position:relative}.logo-fan>span:hover{scale:1.05}.logo-fan>span.held{cursor:grabbing;filter:drop-shadow(0 14px #0000004d);transform-origin:50%;transition:scale .15s}.fan-hop{animation:.4s cubic-bezier(.3,1.4,.5,1) fan-hop;display:block}@keyframes fan-hop{40%{translate:0 -18px;rotate:-8deg}}.reduced-motion .logo-fan>span{transition:none}.reduced-motion .fan-hop{animation:none}.title-panel{flex-direction:column;gap:12px;width:min(420px,94vw);display:flex}.or{text-align:center;color:var(--muted)}.join-row{align-items:flex-end;gap:10px;display:flex}.join-row .code-field{flex:none;width:9em}.join-row .code-field input{width:100%}.join-row .btn{flex:1}.code-field input{text-transform:uppercase;letter-spacing:6px;text-align:center}.title-links{gap:10px;width:min(420px,94vw);display:flex}.title-links .btn{flex:1}.lobby{padding:calc(18px + var(--safe-top)) 16px calc(18px + var(--safe-bottom));flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:18px;display:flex;position:absolute;inset:0;overflow-y:auto}.lobby-room{flex-direction:column;gap:8px;width:min(380px,94vw);display:flex}.lobby-rules{width:min(560px,94vw)}.room-code{font:inherit;letter-spacing:12px;color:var(--gold);background:var(--panel-in);cursor:pointer;text-shadow:0 4px #0006;border:3px dashed #6a868c;border-radius:10px;padding:4px 0 4px 12px;font-size:3.4em}.player-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.player-list li{background:var(--panel-in);border-radius:8px;grid-template-columns:auto minmax(0,1fr) 30px 36px 40px;align-items:center;gap:8px;height:52px;padding:6px 10px;display:grid}.player-list li.empty-seat{border:2px dashed var(--panel-in);color:var(--muted);opacity:.6;background:0 0;justify-content:center;display:flex}.player-list li.offline{opacity:.5}.player-list .pname{flex:1}.dot{background:var(--green);border-radius:50%;width:10px;height:10px}.tag{background:var(--grey-d);color:var(--muted);border-radius:4px;padding:1px 6px;font-size:.75em}.x{font:inherit;color:var(--red);cursor:pointer;background:0 0;border:none;place-items:center;min-width:40px;min-height:40px;display:inline-grid}.x:hover{color:#ff8a82}.lobby-side{flex-direction:column;gap:12px;display:flex}.lobby-links{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}@media (max-width:989px){.lobby-links{order:-1;grid-template-columns:1fr 1fr}}.bot-row{gap:8px;margin-bottom:8px;display:flex}.bot-row .btn{flex:1}.player-list .slot{place-items:center;display:grid}.lobby-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:8px;display:flex}.rules-form{flex-direction:column;gap:6px;display:flex}.toggle{background:var(--panel-in);cursor:pointer;border-radius:8px;align-items:center;gap:12px;min-height:52px;padding:6px 10px;display:flex;position:relative}.toggle.disabled{cursor:default;opacity:.85}.toggle-text{flex-direction:column;flex:1;display:flex}.toggle-desc{color:var(--muted);font-size:.8em}.toggle input[type=checkbox]{opacity:0;width:1px;height:1px;position:absolute}.switch{background:var(--grey-d);border-radius:14px;flex:none;width:52px;height:28px;position:relative;box-shadow:inset 0 3px #0000004d}.switch:after{content:"";background:#cfd8da;border-radius:50%;width:22px;height:22px;transition:left .12s;position:absolute;top:3px;left:3px;box-shadow:0 2px #00000059}.toggle input:checked+.switch{background:var(--red)}.toggle input:checked+.switch:after{background:#fff;left:27px}.toggle input:focus-visible+.switch{outline:3px solid var(--gold);outline-offset:2px}.seg{box-shadow:0 3px 0 var(--panel-d);border-radius:8px;flex:none;display:flex;overflow:hidden}.seg button{font:inherit;color:#fff;background:var(--grey-d);cursor:pointer;border:none;min-height:40px;padding:6px 10px}.seg button.on{background:var(--red)}.slider input[type=range]{accent-color:var(--red);flex:1;min-height:32px}.slider-val{text-align:right;min-width:3.5em;color:var(--gold)}.modal-backdrop{z-index:20;padding:calc(10px + var(--safe-top)) 10px calc(10px + var(--safe-bottom));background:#0a121499;justify-content:center;align-items:center;animation:.15s fade;display:flex;position:fixed;inset:0}.modal{flex-direction:column;width:min(560px,96vw);max-height:100%;animation:.22s cubic-bezier(.2,1.6,.4,1) pop-in;display:flex}.modal.wide{width:min(900px,96vw)}.modal:focus{outline:none}.modal-head h2{text-align:center;background:var(--red);box-shadow:0 4px 0 var(--red-d);border-radius:8px;padding:4px}.modal-body{-webkit-user-select:text;user-select:text;flex:1;padding:6px 2px;overflow-y:auto}.modal-foot{justify-content:center;padding-top:10px;display:flex}.modal-foot .btn{width:100%}@keyframes pop-in{0%{opacity:0;transform:scale(.8)translateY(20px)}}@keyframes fade{0%{opacity:0}}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.settings-grid section{flex-direction:column;gap:6px;display:flex}.settings-actions{flex-wrap:wrap;gap:10px;display:flex}.backs{flex-wrap:wrap;gap:4px;display:flex}.back-pick{cursor:pointer;background:0 0;border:3px solid #0000;border-radius:6px;padding:0}.back-pick.on{border-color:var(--gold)}.levels{flex-direction:column;gap:6px;display:flex}.level-row{background:var(--panel-in);box-shadow:0 3px 0 var(--panel-d);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 10px;display:flex}.level-row.off{opacity:.55}.level-row.off .level-tag{text-decoration:line-through}.level-rank{color:var(--gold);width:1.2em}.level-name{flex:1;align-items:center;gap:6px;min-width:6em;display:flex}.level-bar{background:var(--panel-d);border-radius:6px;flex:2;min-width:80px;height:12px;overflow:hidden}.level-fill{background:var(--blue);height:100%;display:block}.level-fill.danger{background:var(--red)}.level-chips{background:var(--blue);text-align:center;min-width:3em;box-shadow:0 3px 0 var(--blue-d);border-radius:6px;padding:2px 10px}.level-history{flex-wrap:wrap;gap:3px;width:100%;display:flex}.hist{background:var(--panel-d);color:var(--red);border-radius:4px;padding:0 5px;font-size:.8em}.hist.good{color:var(--green)}.hist.zero{color:var(--muted)}.level-tag{text-align:center;border-radius:6px;min-width:6.5em;padding:2px 6px}.tag-blue{background:var(--blue)}.tag-red{background:var(--red)}.tag-orange{background:var(--orange)}.tag-grey{background:var(--grey)}.level-cards{gap:2px;min-width:140px;display:flex}.level-desc{min-width:160px;color:var(--muted);flex:1;align-items:center;gap:6px;display:flex}.help p{line-height:1.35}.hud{position:absolute;inset:0}.topbar{top:calc(6px + var(--safe-top));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;left:8px;right:8px}.topbar>*{pointer-events:auto}.topbar .btn{min-height:38px;padding:.2em .6em;font-size:.9em}.topbar-buttons{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.round-chip{white-space:nowrap;background:#1e2b2dd9;border-radius:8px;flex:none;align-items:center;gap:4px;padding:4px 10px;display:flex}.plate{text-align:center;pointer-events:none;background:#1e2b2de0;border:2px solid #4f6a70;border-radius:10px;min-width:110px;padding:3px 10px;transition:border-color .2s,transform .2s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px #00000059}.plate.active{border-color:var(--gold);transform:translate(-50%,-50%)scale(1.06);box-shadow:0 0 0 3px #eac0584d,0 4px #00000059}.plate.offline{opacity:.7}.plate-name{justify-content:center;align-items:center;gap:5px;display:flex}.plate-stats{justify-content:center;align-items:baseline;gap:4px;font-size:.85em;display:flex}.total{color:var(--blue);font-size:1.15em}.total.danger,.delta{color:var(--red)}.delta.good{color:var(--green)}.plate-chip{background:var(--grey-d);border-radius:4px;margin-top:2px;font-size:.75em}.plate{--pw:172px;width:var(--pw);min-width:0}.plate-nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.plate-name{min-width:0}.plate-chip{white-space:nowrap;margin:0;padding:0 6px;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%)}.plate-chip.bad+.plate-chip{top:calc(100% + 1.5em)}.plate .timer{height:3px;margin:0;position:absolute;bottom:2px;left:8px;right:8px}.wins{vertical-align:middle;flex:none;align-items:center;gap:2px;margin-left:4px;display:inline-flex}.wins b{color:var(--gold);font-size:.9em;font-weight:400}.turn-tag{filter:drop-shadow(0 3px #00000059);pointer-events:auto;animation:.45s cubic-bezier(.2,2,.4,1) tag-in,1.6s ease-in-out .45s infinite alternate tag-bob;position:absolute;top:-14px;right:-12px}.host-tag{filter:drop-shadow(0 3px #00000059);pointer-events:auto;position:absolute;top:-12px;left:-10px}.plate .dealer-chip,.plate .plate-art{pointer-events:auto}@keyframes tag-in{0%{transform:scale(0)rotate(-30deg)}}@keyframes tag-bob{0%{transform:rotate(-8deg)translateY(0)}to{transform:rotate(8deg)translateY(-3px)}}.pile-label b,.hand-points b{text-align:right;min-width:2ch;display:inline-block}.plate-chip.bad{background:var(--red-d)}.dealer-chip{background:var(--gold);color:#3a2a00;width:1.3em;height:1.3em;text-shadow:none;border-radius:50%;justify-content:center;align-items:center;font-size:.75em;display:inline-flex}.timer{background:var(--panel-d);border-radius:3px;height:5px;margin-top:3px;overflow:hidden}.timer-fill{background:var(--green);height:100%;transition:width .25s linear}.timer-fill.low{background:var(--red)}.pile-label{white-space:nowrap;pointer-events:none;background:#1e2b2dcc;border-radius:6px;padding:1px 8px;font-size:.85em;position:absolute;transform:translate(-50%,-50%)}.last-pile{background:var(--red);border-radius:4px;margin-left:4px;padding:0 4px;font-size:.85em}.formation-label{white-space:nowrap;pointer-events:none;background:#1e2b2dd9;border-radius:6px;padding:0 8px;font-size:.8em;position:absolute;transform:translate(-50%,-100%)}.formation-label.active{background:var(--orange);color:#2a1a00}.formation-label.end{background:var(--red)}.action-area{left:0;right:0;bottom:calc(8px + var(--safe-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute}.bar-status{text-align:center;background:#1e2b2de6;border-radius:8px;max-width:94vw;padding:3px 12px}.action-bar{flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;max-width:100vw;padding:0 6px;display:flex}.action-bar .slot{min-width:128px}.slot-empty{display:inline-block}.action-bar.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.sort-box,.hand-points{pointer-events:auto;background:#1e2b2dd9;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:3px 6px;font-size:.8em;display:flex}.mini{font:inherit;color:#fff;background:var(--orange);cursor:pointer;min-height:26px;box-shadow:0 2px 0 var(--orange-d);border:none;border-radius:6px;padding:1px 8px}.summary{width:min(560px,94vw);max-height:64vh;animation:.3s cubic-bezier(.2,1.6,.4,1) pop-in;position:absolute;top:44%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.summary h2{text-align:center}.score-table{border-collapse:separate;border-spacing:0 4px;width:100%}.score-table td{background:var(--panel-in);padding:4px 8px}.score-table td:first-child{border-radius:6px 0 0 6px}.score-table td:last-child{border-radius:0 6px 6px 0}.score-table .cards{flex-wrap:wrap;gap:2px;display:flex}.score-table .pts{color:var(--red);text-align:right;white-space:nowrap}.score-table .pts.good{color:var(--green)}.score-table .total{color:var(--blue);text-align:right}.score-table tr.winner td{background:#4a5f2c}.score-table tr.bust td{background:#5a2a2a}.pen{margin-left:4px}.callout{z-index:19;pointer-events:none;place-items:center;width:0;height:0;display:grid;position:fixed;top:42%;left:50%}.callout-square{background:var(--c);width:115px;height:115px;box-shadow:0 6px 0 color-mix(in srgb, var(--c) 60%, #000);animation:callout-square var(--life) cubic-bezier(.2, .9, .3, 1) forwards, callout-fade .33s ease-in calc(var(--life) - .33s) forwards;border-radius:6px;margin:-57.5px 0 0 -57.5px;position:absolute;top:0;left:0}.callout.small .callout-square{width:75px;height:75px;margin:-37.5px 0 0 -37.5px}.callout-text{color:#fff;white-space:nowrap;text-shadow:-3px 0 0 var(--panel-d), 3px 0 0 var(--panel-d), 0 -3px 0 var(--panel-d), 0 3px 0 var(--panel-d), -2px -2px 0 var(--panel-d), 2px -2px 0 var(--panel-d), -2px 2px 0 var(--panel-d), 2px 2px 0 var(--panel-d), 0 7px 0 #00000073;font-size:3em;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.callout.small .callout-text{font-size:2em}.callout-text span{animation:callout-pop-in .12s ease-out var(--pop) forwards, callout-pulse .22s ease-in-out calc(.2s + var(--i) * 25ms), callout-pop-out .33s ease-in calc(var(--life) - .33s) forwards;display:inline-block;scale:0}@keyframes callout-square{0%{transform:rotate(var(--spin)) scale(.15)}to{transform:rotate(calc(var(--spin) + 14deg)) scale(1)}}@keyframes callout-fade{to{opacity:0}}@keyframes callout-pop-in{0%{scale:0}to{scale:1}}@keyframes callout-pulse{50%{translate:0 -6px;rotate:-4deg}}@keyframes callout-pop-out{0%{scale:1}to{scale:0}}@media (max-width:600px){.callout-text{font-size:2.2em}.callout.small .callout-text{font-size:1.5em}.callout-square{width:85px;height:85px;margin:-42.5px 0 0 -42.5px}}.banner{z-index:18;background:var(--panel);box-shadow:0 6px 0 var(--panel-d), 0 14px 40px #00000080;pointer-events:none;border:3px solid #fff;border-radius:12px;align-items:center;gap:14px;width:max-content;max-width:94vw;padding:10px 26px;animation:.35s cubic-bezier(.2,1.8,.4,1) banner-in;display:flex;position:fixed;top:24%;left:50%;transform:translate(-50%,-50%)}.banner.tone-good{background:var(--green);box-shadow:0 6px 0 var(--green-d), 0 14px 40px #00000080}.banner.tone-bad{background:var(--red);box-shadow:0 6px 0 var(--red-d), 0 14px 40px #00000080}.banner.tone-info{background:var(--blue);box-shadow:0 6px 0 var(--blue-d), 0 14px 40px #00000080}.banner-text{text-shadow:0 4px #00000059;font-size:2em}.banner-sub{opacity:.95;font-size:.95em}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(-6deg)}}.hint{z-index:60;background:var(--panel-d);border:2px solid var(--gold);text-align:center;pointer-events:none;border-radius:8px;max-width:min(260px,80vw);padding:5px 10px;font-size:.8em;line-height:1.25;animation:.14s cubic-bezier(.2,1.6,.4,1) hint-in;position:fixed;transform:translate(-50%,-100%);box-shadow:0 4px #0006}.hint.below{transform:translate(-50%)}.hint:after{content:"";border:6px solid #0000;border-top-color:var(--gold);position:absolute;top:100%;left:50%;translate:-50%}.hint.below:after{border-top-color:#0000;border-bottom-color:var(--gold);top:auto;bottom:100%}@keyframes hint-in{0%{opacity:0;scale:.8}}.reduced-motion .hint{animation:none}.toast{left:50%;top:calc(64px + var(--safe-top));z-index:40;background:var(--panel);text-align:center;border:2px solid #4f6a70;border-radius:8px;max-width:92vw;padding:6px 14px;animation:.2s pop-in;position:fixed;transform:translate(-50%)}.toast.error{background:var(--red);border-color:#fff}.reconnecting{z-index:45;text-align:center;background:var(--red);padding:calc(4px + var(--safe-top)) 0 4px;position:fixed;top:0;left:0;right:0}.history{top:calc(6px + var(--safe-top));right:6px;bottom:calc(6px + var(--safe-bottom));z-index:15;flex-direction:column;width:288px;padding:10px;animation:.2s ease-out slide-in;display:flex;position:fixed}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}}.history-head{justify-content:space-between;align-items:center;display:flex}.history-head h2{margin:0;font-size:1.3em}.history-list{-webkit-user-select:text;user-select:text;flex-direction:column;flex:1;gap:3px;margin:6px 0 0;padding:0 4px 0 0;font-size:.85em;list-style:none;display:flex;overflow-y:auto}.hline{background:var(--panel-in);border-left:3px solid #0000;border-radius:6px;padding:3px 7px;line-height:1.3}.hline.mine{border-left-color:var(--gold)}.hline.round{background:var(--blue);text-align:center;box-shadow:0 2px 0 var(--blue-d);margin-top:6px}.hline.big{background:var(--red-d)}.hline.score{background:var(--panel-d)}.hscore{margin-right:8px;display:inline-block}.hcard{text-shadow:none;background:#f2f2ee;border-radius:3px;margin:0 1px;padding:0 3px;font-weight:400;display:inline-block}.suit-h,.suit-d{color:#e8343e}.suit-c,.suit-s{color:#1d2b2d}.high-contrast .suit-d{color:#e8862a}.high-contrast .suit-c{color:#1a73c9}.btn.pressed{filter:brightness(1.25);box-shadow:0 2px 0 var(--shadow);transform:translateY(3px)}@media (min-width:900px){.history-open .hud .topbar,.history-open .hud .action-area,.history-open .banner,.history-open .toast{margin-right:300px}.history-open .hud .action-area{right:0}.history-open .banner,.history-open .toast,.history-open .callout,.history-open .hud .summary{left:calc(50% - 150px)}}@media (max-width:899px){.history{width:min(86vw,320px);box-shadow:-10px 0 40px #00000080}}.app-root{display:contents}.panel{background:linear-gradient(#3f585d 0%,#34494d 100%);border-color:#5a777d;border-radius:14px}.modal-body{overscroll-behavior:contain;overflow-y:auto}.modal-foot{flex-wrap:wrap;align-items:center;gap:10px}.modal-foot .btn{flex:1;width:auto;max-width:320px}.muted.small,.small{font-size:.82em}.hl{border-radius:4px;padding:0 .15em;font-weight:400}.hl-r{color:#ff8a80}.hl-g{color:#7be0b1}.hl-b{color:#6cc4ff}.hl-o{color:#ffc35c}.bad{color:var(--red)}.tilt{transform:perspective(260px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(var(--ts,1));will-change:transform;transition:transform .18s ease-out,filter .18s}.sprite.tilt{animation:3.4s ease-in-out infinite alternate idle-sway}.sprite.tilt:nth-child(3n+2){animation-duration:3.9s;animation-delay:-1.3s}.sprite.tilt:nth-child(3n){animation-duration:3.1s;animation-delay:-2.4s}@keyframes idle-sway{0%{translate:0 -1px;rotate:-1.6deg}to{translate:0 1.5px;rotate:1.6deg}}.tilt.tilting{--ts:1.12;filter:drop-shadow(0 6px #0000004d);z-index:2;transition:transform 60ms linear}.tilt.tilting:after{content:"";background:radial-gradient(circle at var(--mx,50%) var(--my,50%), #ffffff59, transparent 55%);pointer-events:none;mix-blend-mode:screen;border-radius:4px;position:absolute;inset:0}.sprite.joker,.sprite.card{position:relative}.sprite.soul{pointer-events:none;animation:2.6s ease-in-out infinite soul-float;position:absolute;inset:0}@keyframes soul-float{0%,to{translate:0 -2%;rotate:-1.5deg}50%{translate:0 -9%;rotate:1.5deg}}.tilt .soul{transition:scale .25s ease-out}.tilt.tilting .soul{scale:1.14}.tabs{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:10px;display:flex}.tab{font:inherit;color:var(--muted);background:var(--panel-d);cursor:pointer;border:none;border-radius:8px;min-height:38px;padding:6px 14px;box-shadow:0 3px #00000059}.tab.on{color:#fff;background:var(--red);box-shadow:0 3px 0 var(--red-d)}.tab-body{flex-direction:column;gap:6px;min-height:300px;display:flex}.keys-title{margin:.6em 0 .2em}.keys-list{grid-template-columns:max-content 1fr;align-items:center;gap:6px 14px;margin:0;display:grid}.keys-list dt{text-align:right}.keys-list .kbd{margin-left:0;font-size:.8em}.keys-list dd{margin:0}@media (min-width:700px){.keys-list{grid-template-columns:max-content 1fr max-content 1fr}}@media (hover:none){.keys-title,.keys-list{display:none}}.rules-reset{justify-content:flex-end;margin-top:10px;display:flex}.lefty .action-bar,.lefty .main-actions{direction:rtl}.lefty .action-bar .btn{direction:ltr}.bslider-track{background:var(--panel-d);cursor:pointer;touch-action:none;border-radius:8px;flex:1.3;min-width:140px;height:30px;position:relative;box-shadow:inset 0 3px #00000059}.bslider-fill{background:var(--red);height:100%;box-shadow:0 3px 0 var(--red-d);border-radius:8px;justify-content:flex-end;align-items:center;min-width:34px;transition:width 80ms;display:flex}.bslider-val{color:#fff;text-shadow:0 2px #00000059;white-space:nowrap;padding:0 8px}.bslider-track:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.round-chip{gap:8px}.bust-chip{background:var(--red);box-shadow:0 2px 0 var(--red-d);border-radius:6px;padding:0 6px}.leave-btn{--shadow:#3a1c1f;background:#5a2f33;margin-left:10px}.seat-dot{background:var(--seat,var(--green));border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;box-shadow:0 0 0 2px #0000004d}.seat-dot.big{width:14px;height:14px}.plate{border-color:color-mix(in srgb, var(--seat,#4f6a70) 55%, #2b3c3f)}.plate.active{border-color:var(--gold)}.formation-label{border-bottom:2px solid var(--seat,transparent)}.pile-label b{color:var(--gold)}.peek{pointer-events:auto;z-index:5;position:absolute;transform:translate(-50%,-50%)}.peek-btn{font:inherit;color:#fff;cursor:pointer;background:#1e2b2de6;border:2px solid #8867a5;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:.8em;display:flex;box-shadow:0 4px #00000059}.peek-panel{width:max-content;max-width:94vw;padding:10px 12px;animation:.18s cubic-bezier(.2,1.6,.4,1) pop-in;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.peek-panel h3{margin:0 0 6px;font-size:1em}.peek-grid{flex-direction:column;gap:3px;display:flex}.peek-row{align-items:center;gap:2px;display:flex}.peek-suit{text-align:right;flex:none;width:3.2em;padding-right:6px;font-size:.9em}.peek-rank{text-align:center;width:25.6px;color:var(--muted);flex-direction:column;font-size:.7em;display:flex}.peek-rank b{color:#fff;font-weight:400}.peek-suit.suit-h,.peek-suit.suit-d{color:#ff7a7a}.peek-suit.suit-c,.peek-suit.suit-s{color:#cfe0e2}.hand-bar{pointer-events:auto;white-space:nowrap;z-index:3;align-items:center;gap:14px;display:flex;position:absolute;transform:translate(-50%,-50%)}.sort-row,.hand-points{background:#1e2b2de0;border-radius:10px;flex-direction:row;align-items:center;gap:6px;padding:4px 8px;font-size:.82em;display:flex;box-shadow:0 3px #0000004d}.hand-points b{color:var(--red);font-size:1.25em}.mini{background:var(--grey);box-shadow:0 2px 0 var(--grey-d);min-height:30px;padding:2px 10px}.mini.on{background:var(--orange);box-shadow:0 2px 0 var(--orange-d)}.sort-sep{background:#ffffff2e;border-radius:1px;align-self:stretch;width:2px;margin:2px}.auto-toggle{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;min-height:30px;padding:0 4px;display:inline-flex}.auto-toggle.on{color:#fff}.mini-switch{background:var(--grey-d);border-radius:8px;width:30px;height:16px;transition:background .15s;position:relative;box-shadow:inset 0 2px #00000059}.mini-switch .knob{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px}.auto-toggle.on .mini-switch{background:var(--green)}.auto-toggle.on .mini-switch .knob{transform:translate(14px)}.action-area{left:8px;right:8px}.action-bar{grid-template-columns:1fr auto 1fr;align-items:end;gap:10px;width:100%;max-width:1100px;display:grid}.main-actions{pointer-events:auto;justify-content:center;gap:10px;display:flex}.main-actions .btn{white-space:nowrap;width:250px}.main-actions .btn .btn-label,.hold .btn-label>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.hold.special{width:210px}.corner{pointer-events:auto;display:flex}.corner.left{justify-content:flex-start}.corner.right{justify-content:flex-end}.hold{touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;min-height:52px;padding:.3em .9em;overflow:hidden}.hold .btn-label{flex-direction:column;align-items:center;line-height:1.1;display:flex;position:relative}.hold-sub{opacity:.85;font-size:.62em}.hold-fill{width:calc(var(--hold,0) * 100%);pointer-events:none;background:#ffffff59;position:absolute;top:0;bottom:0;left:0}.hold .kbd{position:absolute;top:4px;right:6px}.bar-status{border:1px solid #4f6a70}.summary-modal .score-table th{text-align:left;color:var(--muted);padding:0 8px 2px;font-size:.85em;font-weight:400}.score-table th.num,.score-table td.num{text-align:right}.score-table .pname{white-space:nowrap}.score-table .pname .seat-dot{margin-right:6px}.score-table td.cards{flex-wrap:wrap;align-items:center;gap:3px;min-height:52px;display:flex}.score-table .total{font-size:1.2em}.sb-rows{flex-direction:column;gap:8px;margin:8px 0 14px;display:flex}.sb-row{background:var(--panel-in);border-left:5px solid var(--seat);box-shadow:0 3px 0 var(--panel-d);border-radius:10px;grid-template-columns:2em minmax(7em,1.2fr) 3em 3fr auto;align-items:center;gap:12px;padding:8px 12px;display:grid}.sb-row.lead{background:#3d5a3a}.sb-rank{color:var(--gold);font-size:1.3em}.sb-name{align-items:center;gap:6px;display:flex}.sb-total{color:#fff;text-align:right;font-size:1.8em}.sb-meter{flex-direction:column;gap:2px;display:flex}.sb-bar{background:var(--panel-d);border-radius:6px;height:12px;overflow:hidden}.sb-fill{background:var(--blue);height:100%;display:block}.sb-fill.danger{background:var(--red)}.sb-left{color:var(--muted);font-size:.75em}.sb-delta{background:var(--red-d);text-align:center;border-radius:6px;min-width:3em;padding:2px 8px}.sb-delta.good{background:var(--green-d)}.sb-delta.zero{background:var(--grey-d)}.sb-grid{border-collapse:separate;border-spacing:2px;width:100%;font-size:.85em}.sb-grid th{color:var(--muted);font-weight:400}.sb-grid td{background:var(--panel-in);border-radius:4px;padding:3px 6px}.sb-grid td.good{color:var(--green)}.sb-grid td.zero{color:var(--muted)}.sb-grid td.bad{color:#ff9f97}.sb-grid td.ender{box-shadow:inset 0 -2px 0 var(--gold)}.sb-grid td.total{color:#fff}.f-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.f-row{background:var(--panel-in);box-shadow:0 3px 0 var(--panel-d);border-radius:10px;align-items:center;gap:10px;padding:6px 10px;display:flex}.f-row.off{opacity:.55}.f-row.off .level-tag{text-decoration:line-through}.f-row .level-tag{min-width:6em;font-size:.85em}.f-cards{flex:none;gap:2px;display:flex}.f-desc{color:var(--muted);align-items:center;gap:6px;font-size:.8em;display:flex}.f-tximtxom{background:#4a3d24;margin-top:6px}.f-tximtxom .f-cards .sprite.card{transition:transform .25s}.f-ride{color:var(--muted);align-items:center;gap:10px;font-size:.85em;display:flex}.help-page{align-items:flex-start;gap:18px;min-height:190px;padding:6px 4px;display:flex}.help-text{margin:0;font-size:1.05em;line-height:1.5}.history-list{scrollbar-width:auto;scrollbar-color:var(--gold) var(--panel-d);padding-right:8px}.history-list::-webkit-scrollbar{width:12px}.history-list::-webkit-scrollbar-track{background:var(--panel-d);border-radius:6px}.history-list::-webkit-scrollbar-thumb{background:var(--gold);border:2px solid var(--panel-d);border-radius:6px}.hname{text-shadow:0 1px #00000080;font-weight:400}.hscore-title{margin-bottom:2px}.hscores{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.hscores li{grid-template-columns:1fr auto auto;gap:8px;display:grid}.lang-switch{top:calc(12px + var(--safe-top));box-shadow:0 3px 0 var(--panel-d);border-radius:8px;display:flex;position:absolute;right:12px;overflow:hidden}.lang-switch button{font:inherit;color:var(--muted);background:var(--panel-in);cursor:pointer;border:none;min-height:40px;padding:6px 12px}.lang-switch button.on{color:#fff;background:var(--red)}.player-list li{border-left:4px solid var(--seat,transparent)}.icon-btn{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;place-items:center;min-width:36px;min-height:36px;font-size:1.1em;display:inline-grid}.icon-btn:hover{color:#fff}button,label,.toggle,.seg,.tabs,.bslider,[role=slider],.lang-switch,.plate,.hand-bar,.action-bar{-webkit-user-select:none;user-select:none}input.rename{flex:1;min-height:36px;font-size:1em}.art-btn{cursor:pointer;background:0 0;border:none;padding:0;line-height:0}.art-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}.plate.has-art{grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding-left:6px;display:grid}.plate.has-art>:not(.plate-art){grid-column:2}.plate-art{grid-area:1/1/span 4;line-height:0;display:inline-block}@media (max-width:600px),(max-height:500px){.plate-art{zoom:.75}.plate.has-art{column-gap:5px}}.plate-art.juice{animation:.7s ease-out juice}@keyframes juice{0%{transform:scale(1)rotate(0)}15%{transform:scale(1.3)rotate(-12deg)}30%{transform:scale(1.22)rotate(9deg)}45%{transform:scale(1.14)rotate(-6deg)}60%{transform:scale(1.08)rotate(4deg)}80%{transform:scale(1.03)rotate(-2deg)}to{transform:scale(1)rotate(0)}}.plate-stats{white-space:nowrap}@media (min-width:1100px){.lobby-rules{width:min(780px,60vw)}.rules-form{grid-template-columns:1fr 1fr;gap:6px;display:grid}}@media (max-width:700px){.action-bar{grid-template-columns:1fr 1fr;grid-template-areas:"main main""left right";row-gap:6px}.main-actions{grid-area:main}.corner.left{grid-area:left}.corner.right{grid-area:right}.main-actions .btn{flex:1 1 0;width:auto;min-width:0}.hold,.hold.special{width:100%;min-height:44px}.corner{justify-content:stretch!important}.f-grid{grid-template-columns:1fr}.f-tximtxom{flex-wrap:wrap;row-gap:2px}.f-tximtxom .f-desc{flex-basis:100%}.sb-row{grid-template-columns:1.4em 1fr 2.6em}.sb-meter,.sb-delta{grid-column:2/span 2}.leave-btn{margin-left:0}.help-page .sprite.joker{display:none}.hand-bar{gap:6px}}@media (max-width:700px),(max-height:500px){.f-grid{gap:4px}.f-row{gap:8px;padding:3px 8px}.f-row .level-tag{min-width:6.5em;font-size:.75em}.f-desc .sprite.joker,.f-ride .sprite.joker{display:none}.f-tximtxom{margin-top:4px}.f-ride{margin:4px 0 0;font-size:.75em}}@media (max-height:500px){.f-lead{display:none}}.reduced-motion *,.reduced-motion :before,.reduced-motion :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}@media (max-width:600px),(max-height:500px){#app{font-size:calc(15px * var(--text-scale))}.action-bar .slot{flex:1;min-width:0}.action-bar{gap:5px;width:100%}.btn{padding:.35em .5em}.plate{--pw:124px;padding:2px 6px}.turn-tag,.host-tag{zoom:.75}.banner-text{font-size:1.5em}.topbar .btn{min-width:34px;min-height:34px}.sort-box{display:none}}@media (max-height:500px) and (orientation:landscape){.summary{max-height:70vh;top:46%}}.tab-body.stacked{display:grid}.tab-body.stacked>.tab-panel{gap:inherit;flex-direction:column;grid-area:1/1;display:flex}.tab-body.stacked>.tab-panel.hidden{visibility:hidden}.rules-btn{font:inherit;color:#fff;background:var(--green);box-shadow:0 2px 0 var(--green-d);cursor:pointer;pointer-events:auto;border:none;border-radius:6px;min-height:24px;padding:1px 8px;font-size:.85em}.rules-btn:hover{filter:brightness(1.15)}.rules-view .toggle.disabled{opacity:1}.rules-view .toggle input,.rules-view .seg button{cursor:default}.modal-head{position:relative}.modal-corner{position:absolute;top:50%;right:6px;transform:translateY(-50%)}.report-btn{font:inherit;color:#fff;cursor:pointer;opacity:.7;background:#00000040;border:2px solid #ffffff59;border-radius:6px;place-items:center;width:30px;height:30px;display:grid}.report-btn:hover,.report-btn:focus-visible{opacity:1}.credits{color:var(--muted);text-align:center;-webkit-user-select:text;user-select:text;margin:0;font-size:.8em}.credits a{color:var(--blue)}.title-screen>.credits{bottom:max(8px, env(safe-area-inset-bottom));position:absolute;left:0;right:0}.room-code{position:relative;overflow:hidden}.room-code.copied .code-text{visibility:hidden}.room-code.copied{border-color:var(--green)}.copied-msg{letter-spacing:0;color:#fff;background:var(--green);justify-content:center;align-items:center;font-size:.36em;animation:.25s ease-in 1.35s forwards callout-fade;display:flex;position:absolute;inset:0}.copied-msg span{animation:callout-pop-in .12s ease-out var(--pop) forwards;display:inline-block;scale:0}.toggle.tone-punish,.lg.tone-punish{--tone:var(--red)}.toggle.tone-info,.lg.tone-info{--tone:var(--blue)}.toggle.tone-support,.lg.tone-support{--tone:var(--green)}.toggle[class*=tone-]{background:color-mix(in srgb, var(--tone) 16%, var(--panel-in));box-shadow:inset 4px 0 0 var(--tone)}.rules-legend{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;gap:6px 14px;margin:0 0 2px;font-size:.8em;display:flex}.lg:before{content:"";background:var(--tone,var(--grey));vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.changelog-modal .modal-body{max-height:70vh}.cl-legend{flex-wrap:wrap;justify-content:center;gap:6px 16px;margin:0 0 8px;font-size:.85em;display:flex}.cl-release{margin-bottom:12px}.cl-release h3{color:var(--gold);align-items:center;gap:8px;margin:0 0 4px;display:flex}.cl-release ul{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.cl-release li{background:var(--panel-in);box-shadow:inset 3px 0 0 var(--k);border-radius:6px;align-items:baseline;gap:8px;padding:4px 8px;font-size:.9em;display:flex}.k-new{--k:var(--green)}.k-change{--k:var(--blue)}.k-fix{--k:var(--orange)}.k-removed{--k:var(--red)}.cl-kind{border-bottom:2px solid var(--k)}.cl-icon{flex:none;font-family:system-ui,Noto Color Emoji,Apple Color Emoji,Segoe UI Emoji,sans-serif}
