:root{--c-felt-edge: #0a1412;--c-felt-mid: #15332c;--c-bg-top: #101c1a;--c-bg-bottom: #070d0c;--c-panel: #18211f;--c-plate: #101b19;--c-text: #e8e6e1;--c-muted: #8f9a97;--c-good: #8fd6b4;--c-warn: #e0b15f;--c-bad: #e07a5f;--c-accent: #7ee0c6;--c-team-0: #4ea8de;--c-team-1: #e07a5f;--c-gold: #f6c453;--u: min(100vw / 1920, 100dvh / 1080);--font: Noto Sans, Droid Sans, Segoe UI, Arial, sans-serif}*,*::before,*::after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font);color:var(--c-text);background:var(--c-bg-bottom);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,input,select{font:inherit;color:inherit}a{color:var(--c-accent);text-decoration:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5em;border:1px solid hsla(0,0%,100%,.12);border-radius:999px;background:#1f2a27;color:var(--c-text);padding:.55em 1.1em;cursor:pointer;user-select:none;transition:background .12s,transform .08s}.button:hover:not(:disabled){background:#283732}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.45;cursor:default}.button.primary{background:var(--c-accent);color:#062019;border-color:rgba(0,0,0,0);font-weight:600}.button.primary:hover:not(:disabled){background:#93ead3}.button.danger{color:var(--c-bad)}.panel{background:var(--c-panel);border:1px solid hsla(0,0%,100%,.07);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.45)}.field{display:flex;align-items:center;gap:10px}.field label{color:var(--c-muted);min-width:92px}.field input[type=text]{flex:1;background:#0f1715;border:1px solid hsla(0,0%,100%,.12);border-radius:20px;padding:.5em .7em;color:var(--c-text);font-size:16px}.field input[type=text]:focus{outline:none;border-color:var(--c-accent)}.choice{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.choice .caption{color:var(--c-muted);min-width:92px}.choice .opt{border:1px solid hsla(0,0%,100%,.12);border-radius:999px;padding:.3em .9em;cursor:pointer;color:var(--c-muted)}.choice .opt.on{color:#062019;background:var(--c-accent);border-color:rgba(0,0,0,0)}.choice .opt:disabled{cursor:default;opacity:.6}.toasts{position:fixed;top:30vh;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;z-index:200}.toast{background:rgba(16,27,25,.95);color:var(--c-bad);border:1px solid rgba(224,122,95,.4);padding:.6em 1.2em;border-radius:10px;font-size:18px;opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .2s}.toast.in{opacity:1;transform:none}.toast.toast-info{color:var(--c-good);border-color:rgba(143,214,180,.4)}@media(pointer: coarse){body.table-page .toast{background:rgba(10,18,16,.92);border:1px solid hsla(0,0%,100%,.12);border-radius:999px;padding:.3em 1em;max-width:80vw;font-size:calc(25*var(--u)*1.5);text-shadow:0 0 6px #000,0 0 6px #000,0 1px 2px #000;text-align:center}}.home-screen-hint{position:fixed;top:calc(env(safe-area-inset-top, 0px) + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);display:flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;background:rgba(10,18,16,.94);color:var(--c-text);border:1px solid rgba(143,214,180,.4);border-radius:999px;font-size:14px;z-index:210}.home-screen-hint button{flex:0 0 auto;width:28px;height:28px;border:0;border-radius:50%;background:hsla(0,0%,100%,.1);color:var(--c-text);font-size:18px;line-height:1;cursor:pointer}.card{display:block;aspect-ratio:132/185;filter:drop-shadow(0 2px 3px rgba(0, 0, 0, 0.45));transition:transform .11s ease-out,filter .15s}.card.dimmed{filter:brightness(0.55) saturate(0.7) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3))}.card.ghost{opacity:.68;filter:none}.card text{user-select:none}.table.tutorial .language-toggle{position:absolute;z-index:95;top:16px;right:150px;min-height:36px;padding:6px 16px;font-size:14px}.table.tutorial .modal.tribute{display:none}.table.tutorial[data-owner="2"] .table-guide,.table.tutorial[data-focus=trick] .table-guide{left:3%;width:min(390px,34vw)}.table.tutorial[data-guide-right=true] .table-guide{left:auto;right:3%;width:min(390px,34vw)}.table.tutorial[data-retained-left=true] .table-guide{left:2%;right:auto;width:calc(48% - 620*var(--u) - 12px)}.table.tutorial .plate,.table.tutorial .fan,.table.tutorial .hud,.table.tutorial .readout,.table.tutorial .sortbar{opacity:.24}.table.tutorial .sortbar,.table.tutorial .actions .hint{pointer-events:none}.table.tutorial[data-focus=partner] .plate.slot-top,.table.tutorial[data-focus=opponents] .plate.slot-left,.table.tutorial[data-focus=opponents] .plate.slot-right,.table.tutorial[data-focus=level] .hud,.table.tutorial[data-focus=score] .hud,.table.tutorial[data-focus=trick] .trick .play,.table.tutorial[data-focus=hand] .actions,.table.tutorial[data-focus=pass] .actions{opacity:1}.table.tutorial[data-focus=partner] .plate.slot-top,.table.tutorial[data-focus=level] .hud,.table.tutorial[data-focus=score] .hud{outline:2px solid #f6c453;outline-offset:8px;border-radius:8px}.table.tutorial .trick .play{width:max-content}.table.tutorial .trick .play .caption{width:max-content}.table.tutorial .trick .play .glow{display:none}.table.tutorial[data-focus=trick] .trick .play.leading::before{content:"";position:absolute;inset:-8px;border:2px solid #f6c453;border-radius:10px;pointer-events:none}.table.tutorial .actions .button:disabled{opacity:.25}.table.tutorial .actions .play:not(:disabled),.table.tutorial .actions .pass:not(:disabled){opacity:1;border-color:#f6c453;outline:2px solid #f6c453;outline-offset:3px;box-shadow:0 0 12px rgba(246,196,83,.3333333333)}.table.tutorial .hand .slot[aria-disabled=false]{filter:drop-shadow(0 0 5px #f6c453)}.table.tutorial .actions .hint{opacity:.25}.table.tutorial .table-guide{position:absolute;z-index:90;left:24%;top:20%;width:min(390px,44vw);max-height:42vh;display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid #79988a;border-radius:12px;background:rgba(18,35,31,.9607843137);box-shadow:0 8px 30px rgba(0,0,0,.5333333333);color:#e8e6e1;font-size:16px;user-select:text;touch-action:pan-y}.table.tutorial .table-guide .guide-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#a3bfb2;font-size:11px}.table.tutorial .table-guide .guide-footer{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.table.tutorial .table-guide .guide-footer>button:not(.button){color:#a3bfb2;background:rgba(0,0,0,0);border:0;padding:8px;cursor:pointer;font-size:11px}.table.tutorial .table-guide h2{font-size:20px;line-height:1.2;margin:0}.table.tutorial .table-guide .guide-copy{overflow-y:auto;min-height:0;line-height:1.45}.table.tutorial .table-guide .button{align-self:flex-end;min-height:36px;padding:6px 24px;flex-shrink:0;font-size:14px}.table.tutorial .table-guide .button:disabled{opacity:.3}@media(max-height: 550px){.table.tutorial .table-guide{top:18%;left:23%;padding:8px 12px;gap:6px;font-size:13px;max-height:44vh;width:40vw}.table.tutorial .table-guide h2{font-size:16px}}body.table-page{overflow:hidden;background:var(--c-felt-edge)}body.table-page .topbar{display:none}body.table-page{--font-title: calc(34 * var(--u));--font-headline: calc(30 * var(--u));--font-large: calc(25 * var(--u));--font-body: calc(21 * var(--u));--font-small: calc(18 * var(--u));--font-tiny: calc(16 * var(--u));--font-count: calc(38 * var(--u));--corner-safe-top: env(safe-area-inset-top, 0px);--sa-x: max(env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));--sa-l: var(--sa-x);--sa-r: var(--sa-x);--sa-t: env(safe-area-inset-top, 0px);--sa-b: env(safe-area-inset-bottom, 0px)}main.table{position:fixed;inset:0;overflow:hidden;font-size:var(--font-body);user-select:none;touch-action:none}main.table.coarse{--font-title: calc(34 * var(--u) * 1.5);--font-headline: calc(30 * var(--u) * 1.5);--font-large: calc(25 * var(--u) * 1.5);--font-body: calc(21 * var(--u) * 1.5);--font-small: calc(18 * var(--u) * 1.5);--font-tiny: calc(16 * var(--u) * 1.5);--font-count: calc(38 * var(--u) * 1.5)}.felt{position:absolute;inset:0;background:radial-gradient(circle at 50% 44%, var(--c-felt-mid) 0%, var(--c-felt-mid) 8%, var(--c-felt-edge) 62%)}.well{position:absolute;left:50%;top:44%;width:calc(min(100vw,100dvh)*.4);height:calc(min(100vw,100dvh)*.4);transform:translate(-50%, -50%);border-radius:50%;background:rgba(0,0,0,.16)}.hud{position:absolute;left:24px;top:calc(16px + var(--corner-safe-top));max-width:calc(50vw - 166.4*var(--u) - 36px);--font-small: max(12px, calc(18 * var(--u)));--font-headline: max(20px, calc(30 * var(--u)));--font-tiny: max(11px, calc(16 * var(--u)));text-shadow:0 0 5px #000,0 0 5px #000,0 1px 2px #000;line-height:1.35;z-index:3}.hud .team-scores{display:flex;align-items:flex-start;gap:calc(28*var(--u))}.hud .team-label,.hud .level-note,.hud .last-round,.hud .watchers{font-size:var(--font-small);color:var(--c-muted)}.hud .team-value{display:flex;align-items:center;gap:calc(10*var(--u));min-height:calc(36*var(--u))}.hud .rank{font-size:var(--font-headline);font-variant-numeric:tabular-nums;line-height:1.15}.hud .playing .rank{color:var(--c-gold)}.hud .playing-tag{padding:calc(3*var(--u)) calc(10*var(--u));border-radius:calc(10*var(--u));background:color-mix(in srgb, var(--c-gold) 20%, var(--c-plate));color:var(--c-gold);font-size:var(--font-tiny);text-shadow:none;white-space:nowrap}.hud .level-note,.hud .last-round{margin-top:calc(5*var(--u))}.hud .winner{color:var(--c-accent)}.hud .draw{font-size:var(--font-small);color:var(--c-accent)}.table-corner-controls{position:absolute;right:24px;top:calc(16px + var(--corner-safe-top));display:flex;align-items:center;gap:8px;z-index:3}.table-corner-controls .button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:0;height:52px;color:var(--c-muted);background:#16211f;border:1px solid #2f403d;border-radius:999px;text-decoration:none;white-space:nowrap}.table-corner-controls .button:hover{color:var(--c-text);background:#1f2d2a}.table-corner-controls .leave{width:80px;font-size:16px}.table-corner-controls .rules-toggle{width:52px}.plate{position:absolute;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:calc(10*var(--u));padding:calc(10*var(--u)) calc(16*var(--u));background:var(--c-plate);border-radius:calc(11*var(--u));border:calc(2*var(--u)) solid color-mix(in srgb, var(--team-c) 65%, #000)}.plate .who{min-width:0}.plate .who .name{font-size:var(--font-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plate .who .note{font-size:var(--font-tiny);color:var(--c-muted)}.plate .who .note.banker{color:var(--c-good)}.plate .count{font-size:var(--font-count);font-weight:600;font-variant-numeric:tabular-nums}.plate .count.gold{color:var(--c-warn)}.plate .count.out{color:var(--c-muted)}.plate.away .name{color:var(--c-warn)}.plate.away .name .reconnecting{font-size:var(--font-tiny)}.plate.active{background:color-mix(in srgb, var(--c-plate) 86%, #fff);border-width:calc(4*var(--u));border-color:color-mix(in srgb, var(--team-c) 85%, #fff)}.plate.active .name{color:color-mix(in srgb, var(--team-c) 55%, #fff)}.plate .note.leading{color:var(--c-accent)}.plate.slot-bottom{left:calc(28*var(--u) + var(--sa-l));bottom:calc(calc(185 * var(--u) + 38 * var(--u) + 24 * var(--u)) + 16*var(--u) + var(--sa-b))}.plate.slot-top{left:50%;top:calc(26*var(--u) + var(--sa-t));transform:translateX(-50%)}.plate.slot-left{left:calc(28*var(--u) + var(--sa-l));top:44%;transform:translateY(-50%)}.plate.slot-right{right:calc(28*var(--u) + var(--sa-r));top:44%;transform:translateY(-50%)}.plate .halo{position:absolute;inset:0;pointer-events:none;--halo-c: color-mix(in srgb, var(--team-c) 88%, #fff)}.plate .halo i,.plate .halo b{position:absolute;border-style:solid;border-color:var(--halo-c);animation:halo-pulse 2.136s ease-in-out infinite}.plate .halo i:nth-child(1){inset:calc(-8*var(--u));border-width:calc(7*var(--u));border-radius:calc((22 + 8)*var(--u));--lo: 0.0704;--hi: 0.176}.plate .halo i:nth-child(2){inset:calc(-10*var(--u));border-width:calc(7*var(--u));border-radius:calc((22 + 10)*var(--u));--lo: 0.0528;--hi: 0.132}.plate .halo i:nth-child(3){inset:calc(-12*var(--u));border-width:calc(7*var(--u));border-radius:calc((22 + 12)*var(--u));--lo: 0.0352;--hi: 0.088}.plate .halo i:nth-child(4){inset:calc(-14*var(--u));border-width:calc(7*var(--u));border-radius:calc((22 + 14)*var(--u));--lo: 0.0176;--hi: 0.044}.plate .halo i:nth-child(5){inset:calc(-16*var(--u));border-width:calc(7*var(--u));border-radius:calc((22 + 16)*var(--u));--lo: 0;--hi: 0}.plate .halo b{inset:calc(-6*var(--u));border-width:calc(5*var(--u));border-radius:calc(17*var(--u));--lo: 0.7;--hi: 1}@keyframes play-in{from{opacity:0;transform:translate(var(--from-x, 0px), var(--from-y, calc(26 * var(--u))))}to{opacity:1;transform:none}}@keyframes halo-pulse{0%,100%{opacity:var(--lo)}50%{opacity:var(--hi)}}.fan{position:absolute;z-index:2}.fan .fc{position:absolute;top:0}.fan{--ph: calc(112 * var(--u))}.coarse .fan{--ph: calc(112 * 1.3 * var(--u))}.fan.slot-top{left:50%;top:calc(26*var(--u) + var(--ph) + 14*var(--u) + var(--sa-t));transform:translateX(-50%)}.fan.slot-left{left:calc(28*var(--u) + var(--sa-l));top:calc(44% + var(--ph)/2 + 12*var(--u))}.fan.slot-right{right:calc(28*var(--u) + var(--sa-r));top:calc(44% + var(--ph)/2 + 12*var(--u))}.fan.slot-bottom{left:calc(28*var(--u) + var(--sa-l));bottom:calc(calc(185 * var(--u) + 38 * var(--u) + 24 * var(--u)) + var(--sa-b))}.trick{position:absolute;left:50%;top:44%;width:0;height:0;z-index:2}.trick .play{position:absolute;display:flex;flex-direction:column;align-items:center;gap:calc(4*var(--u));transform:translate(-50%, calc(var(--cards-h, 0px) / -2))}.trick .play .cards{position:relative}.trick .play .cards.ghost{opacity:.68}.trick .play .cards.ghost .card{filter:none}.trick .play .cards .tc{position:absolute;top:0}.trick .play .cards .tc .as{position:absolute;left:0;right:0;bottom:calc(-16*var(--u));font-size:var(--font-tiny);color:var(--c-accent);text-align:center;white-space:nowrap}.trick .play .caption{font-size:var(--font-small);color:color-mix(in srgb, var(--play-c) 65%, #000);text-shadow:0 0 5px rgba(0,0,0,.9),0 0 5px rgba(0,0,0,.9),0 1px 2px #000;margin-top:calc(12*var(--u));max-width:calc(420*var(--u));text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.trick .play.team-0{--play-c: color-mix(in srgb, var(--c-team-0) 75%, #fff)}.trick .play.team-1{--play-c: color-mix(in srgb, var(--c-team-1) 75%, #fff)}.trick .play.bomb .caption{color:color-mix(in srgb, var(--c-warn) 65%, #000)}.trick .play.leading .caption{color:var(--c-accent);margin-top:calc(22*var(--u))}.trick .play .glow{position:absolute;inset:calc(-10*var(--u));border-radius:calc(12*var(--u));background:rgba(126,224,198,.13);border:calc(2*var(--u)) solid rgba(126,224,198,.85);box-shadow:0 0 calc(14*var(--u)) rgba(126,224,198,.3);pointer-events:none}.trick .play .tc{animation:play-in .2s ease-out both}.trick .play.slot-bottom{top:calc(170*var(--u));--from-x: 0px;--from-y: calc(26 * var(--u))}.trick .play.slot-top{top:calc(-150*var(--u));--from-x: 0px;--from-y: calc(-26 * var(--u))}.trick .play.slot-left{left:calc(-430*var(--u));--from-x: calc(-26 * var(--u));--from-y: 0px}.trick .play.slot-right{left:calc(430*var(--u));--from-x: calc(26 * var(--u));--from-y: 0px}.trick .play.pass{transform:translate(-50%, -50%)}.trick .play.pass .word{font-size:var(--font-small);font-weight:600;letter-spacing:.08em;color:color-mix(in srgb, var(--play-c) 85%, #000);text-shadow:0 0 6px #000,0 0 6px #000,0 1px 2px #000}.readout{position:absolute;left:calc(calc(256 * var(--u)) + 60*var(--u) + var(--sa-l));right:calc(660*var(--u) + var(--sa-r));bottom:calc(calc(185 * var(--u) + 38 * var(--u) + 24 * var(--u)) + 24*var(--u) + var(--sa-b));text-align:center;z-index:3;text-shadow:0 0 5px #000,0 1px 2px #000}.coarse .readout{left:calc(332.8*var(--u) + 60*var(--u) + var(--sa-l));right:max(920*var(--u),50% + 300*var(--u));bottom:calc(calc(185 * var(--u) + 38 * var(--u) + 24 * var(--u)) + 30*var(--u) + var(--sa-b))}.readout .combo{font-size:var(--font-headline);min-height:1.3em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.readout .combo.bad{color:var(--c-bad);font-size:var(--font-small);white-space:normal}.readout .combo.ok{color:var(--c-good)}.readout .combo.bomb{color:var(--c-warn)}.readout .combo.tribute{color:var(--c-accent)}.readout .status{font-size:var(--font-small);color:var(--c-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sortbar{position:absolute;left:calc(28*var(--u) + var(--sa-l));bottom:calc(calc(185 * var(--u) + 38 * var(--u) + 24 * var(--u)) + 12*var(--u) + var(--sa-b));z-index:4}.coarse .sortbar{left:6vw}.actions{position:absolute;right:calc(28*var(--u) + var(--sa-r));bottom:calc(calc(185 * var(--u) + 38 * var(--u) + 24 * var(--u)) + 12*var(--u) + var(--sa-b));display:flex;align-items:flex-end;gap:calc(10*var(--u));z-index:4}.coarse .actions{right:calc(16*var(--u))}.actions .button,.sortbar .button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:calc(150*var(--u));height:calc(54*var(--u));padding:calc(10*var(--u)) calc(16*var(--u));font-size:var(--font-body);border-radius:999px;border:calc(2*var(--u)) solid #2f403d;background:#16211f;color:var(--c-text);transition:none}.actions .button:hover:not(:disabled),.sortbar .button:hover:not(:disabled){background:#1f2d2a;border-color:#41544f}.actions .button:active:not(:disabled),.sortbar .button:active:not(:disabled){background:#101917;border-color:#2f403d;transform:none}.actions .button:disabled,.sortbar .button:disabled{opacity:1;background:#131b1a;border-color:#212c2a;color:#48534f}.actions .button.sort,.sortbar .button.sort{width:calc(172*var(--u))}.actions .button.play,.sortbar .button.play{width:calc(232*var(--u));height:calc(68*var(--u));padding-right:calc(64*var(--u));font-size:var(--font-body);font-weight:400;background:var(--c-accent);border-color:color-mix(in srgb, var(--c-accent) 75%, #fff);color:#06231c}.actions .button.play:hover:not(:disabled),.sortbar .button.play:hover:not(:disabled){background:color-mix(in srgb, var(--c-accent) 84%, #fff);border-color:#fff}.actions .button.play:active:not(:disabled),.sortbar .button.play:active:not(:disabled){background:color-mix(in srgb, var(--c-accent) 78%, #000);border-color:var(--c-accent)}.actions .button.play:disabled,.sortbar .button.play:disabled{background:#182220;border-color:#26332f;color:#4a5754}.actions .button.play:disabled .glyph,.sortbar .button.play:disabled .glyph{color:#4a5754}.actions .button.play .glyph,.sortbar .button.play .glyph{position:absolute;right:calc(14*var(--u));top:0;bottom:0;width:calc(46*var(--u));display:flex;align-items:center;justify-content:center;font-size:calc(15*var(--u));color:#06231c}.coarse .actions .button,.coarse .sortbar .button{height:calc(102*var(--u))}.coarse .actions .button.hint,.coarse .sortbar .button.hint{width:calc(150*var(--u))}.coarse .actions .button.pass,.coarse .sortbar .button.pass{width:calc(220*var(--u))}.coarse .actions .button.play,.coarse .sortbar .button.play{width:calc(330*var(--u));height:calc(102*var(--u));padding-right:calc(16*var(--u))}.coarse .actions .button.sort,.coarse .sortbar .button.sort{width:calc(224*var(--u))}.hand{position:absolute;left:0;right:0;bottom:var(--sa-b);z-index:5}.hand .slot{position:absolute;border-radius:calc(9.9*var(--u));background:#534e3f;box-shadow:0 0 0 #534e3f,0 calc(2*var(--u)) calc(3*var(--u)) rgba(0,0,0,.35);transition:transform .17s cubic-bezier(0.2, 0.8, 0.2, 1),box-shadow .17s cubic-bezier(0.2, 0.8, 0.2, 1)}.hand .slot.hover{transform:translateY(calc(-24 * var(--u)));box-shadow:0 calc(3*var(--u)) 0 #534e3f,0 calc(10*var(--u)) calc(14*var(--u)) rgba(0,0,0,.45)}.hand .slot.selected{transform:translateY(calc(-38 * var(--u)));box-shadow:0 calc(4*var(--u)) 0 #534e3f,0 calc(14*var(--u)) calc(20*var(--u)) rgba(0,0,0,.5)}.hand .slot .card{width:100%;height:100%}.hand .slot .card:not(.dimmed){filter:none}@media(prefers-reduced-motion: reduce){.hand .slot{transition:none}}.modal{position:absolute;left:50%;top:42%;transform:translate(-50%, -50%);z-index:100;min-width:min(560px,90vw);max-width:min(760px,94vw);max-height:88dvh;overflow:auto;padding:calc(22*var(--u)) calc(28*var(--u));background:rgba(11,19,18,.97);border:1px solid hsla(0,0%,100%,.08);border-radius:calc(14*var(--u));box-shadow:0 24px 60px rgba(0,0,0,.55);font-size:var(--font-body)}.modal h2{margin:0 0 .4em;font-size:var(--font-title);font-weight:500}.modal p{margin:.3em 0}.modal .muted{color:var(--c-muted)}.modal .accent{color:var(--c-accent)}.modal .rating-line b{font-weight:600}.modal .rating-line.up b{color:var(--c-good)}.modal .rating-line.down b{color:var(--c-warn)}.modal .buttons{display:flex;gap:10px;margin-top:1em;flex-wrap:wrap}.coarse .modal.result .buttons.thumb .button,.coarse .modal .footer .button{flex:1 1 0;height:calc(96*var(--u));display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-large)}.modal .footer{display:flex;gap:calc(12*var(--u));align-items:center;margin-top:.8em}.modal .footer .button{min-height:calc(56*var(--u));display:inline-flex;align-items:center;justify-content:center}.modal .footer .start,.modal .footer .done{flex:1 1 0}.modal .footer .settings-btn{flex:0 0 auto;min-width:calc(250*var(--u))}.coarse .modal.tribute{top:calc((100dvh - calc(185 * var(--u) + 38 * var(--u) + 24 * var(--u)) - 130*var(--u) - var(--sa-b))*.42);max-height:calc((100dvh - calc(185 * var(--u) + 38 * var(--u) + 24 * var(--u)) - 130*var(--u) - var(--sa-b))*.94)}.modal.tribute .headline{font-weight:500;margin-bottom:.6em}.modal.tribute .payment{display:flex;align-items:center;gap:8px;margin:.35em 0;padding:.2em .4em;border-radius:6px}.modal.tribute .payment.mine{background:hsla(0,0%,100%,.06)}.modal.tribute .payment .mini{display:inline-block;width:calc(44*var(--u))}.modal.tribute .payment .back{display:inline-flex;align-items:center;gap:8px;margin-left:4px}.modal.tribute .payment .back .arrow{color:var(--c-muted)}.modal.tribute .payment .ret{color:var(--c-good)}.modal.tribute .instruction{margin-top:.8em}.modal.result.won h2{color:var(--c-good)}.modal.result.lost h2{color:var(--c-warn)}.modal.settings .choice{margin:.5em 0}.modal.settings .choice .caption{min-width:calc(180*var(--u))}.modal.settings .choice .opt{font-size:var(--font-body);appearance:none;background:#1f2a27}.modal.settings .choice .opt.on{background:var(--c-accent)}.coarse .modal.settings .choice .opt{min-height:calc(68*var(--u));padding:0 calc(14*var(--u));display:inline-flex;align-items:center}.modal.setup{inset:0;transform:none;min-width:0;max-width:none;max-height:none;overflow:hidden;padding:calc(10px + var(--sa-t)) calc(20px + var(--sa-r)) calc(12px + var(--sa-b)) calc(20px + var(--sa-l));border:0;border-radius:0;box-shadow:none;background:linear-gradient(135deg, #19372e, var(--c-bg-bottom));display:grid;grid-template-rows:auto auto minmax(0, 1fr) auto auto;grid-template-areas:"head" "field" "ring" "invite" "footer";gap:6px;font-size:max(16px,var(--font-body))}.modal.setup .head{grid-area:head;display:flex;align-items:center;gap:12px}.modal.setup .head h2{margin:0;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:700}.modal.setup .head .code{font-size:22px;letter-spacing:.2em;color:var(--c-good);font-weight:700}.modal.setup .head .visibility,.modal.setup .head .room-action{min-height:48px}.modal.setup .visibility,.modal.setup .room-action{appearance:none;border:1px solid #50645d;border-radius:999px;padding:0 12px;background:#1f2a27;color:var(--c-text);font:inherit;font-weight:600;cursor:pointer}.modal.setup .visibility:disabled,.modal.setup .room-action:disabled{opacity:.65;cursor:default}.modal.setup .visibility.public,.modal.setup .visibility.primary,.modal.setup .room-action.public,.modal.setup .room-action.primary{border-color:rgba(0,0,0,0);background:var(--c-accent);color:#062019}.modal.setup .room-leave{min-height:48px;padding:0 14px;font-size:16px}.modal.setup .field.name-box{grid-area:field;display:flex;align-items:center;gap:8px;margin:0;justify-self:center;width:min(100%,360px);padding:0 6px 0 16px;background:#0f1715;border:1px solid hsla(0,0%,100%,.12);border-radius:999px;cursor:text}.modal.setup .field.name-box:focus-within{border-color:var(--c-accent)}.modal.setup .field.name-box .caption{color:#bdd0c7;font-size:14px;font-weight:600;letter-spacing:.02em;white-space:nowrap;padding-right:10px;border-right:1px solid hsla(0,0%,100%,.14)}.modal.setup .field.name-box input[type=text]{flex:1;min-width:0;min-height:42px;background:rgba(0,0,0,0);border:0;border-radius:0;padding:0 4px}.modal.setup .field.name-box input[type=text]:focus{border:0}.modal.setup .table-ring{grid-area:ring;position:relative;min-height:0}.modal.setup .table-ring::before{content:"";position:absolute;inset:24px clamp(110px,18vw,260px);border-radius:999px;border:2px solid rgba(246,196,83,.45);background:#1e4c3c}.modal.setup .table-ring .ring-label{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);max-width:180px;color:#f3d896;text-align:center;font-size:17px;font-weight:600;z-index:1}.modal.setup .seats{position:absolute;inset:0}.modal.setup .seats .seat-row{position:absolute;width:clamp(190px,30vw,310px);min-height:104px;padding:8px 10px 6px;border:1px solid color-mix(in srgb, var(--c-team-0) 65%, transparent);border-radius:14px;background:#182a27;display:flex;flex-direction:column;justify-content:center;z-index:2}.modal.setup .seats .seat-row.slot-0{left:50%;bottom:0;transform:translateX(-50%)}.modal.setup .seats .seat-row.slot-1{right:0;top:50%;transform:translateY(-50%)}.modal.setup .seats .seat-row.slot-2{left:50%;top:0;transform:translateX(-50%)}.modal.setup .seats .seat-row.slot-3{left:0;top:50%;transform:translateY(-50%)}.modal.setup .seats .seat-row.team-1{border-color:color-mix(in srgb, var(--c-team-1) 65%, transparent)}.modal.setup .seats .seat-row.me{background:#24493e}.modal.setup .seats .seat-row.target{border-color:var(--c-gold)}.modal.setup .seats .seat-row .position{color:color-mix(in srgb, var(--c-team-0) 75%, #fff);font-size:16px;font-weight:600}.modal.setup .seats .seat-row.team-1 .position{color:color-mix(in srgb, var(--c-team-1) 75%, #fff)}.modal.setup .seats .seat-row .name{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:19px;font-weight:700}.modal.setup .seats .seat-row .controls{display:flex;align-items:center;gap:2px;min-height:48px}.modal.setup .seats .seat-row .controls .room-action{flex:1 1 0;min-width:0;min-height:48px;padding:0 8px;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal.setup .seats .seat-row .controls .status{color:#bdd0c7;font-size:16px}.modal.setup .invite{grid-area:invite;min-width:0;text-align:center}.modal.setup .invite .link{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--c-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;text-decoration:underline dotted}.coarse .modal.setup .invite{display:none}.modal.setup .footer{grid-area:footer;margin:0;min-height:48px}.modal.setup .footer .button{min-height:48px;font-size:16px}.modal.setup .footer .invite-all,.modal.setup .footer .settings-btn{flex:0 0 auto;min-width:112px}.modal.setup .footer .start{margin-left:auto}.modal.setup .footer .muted{margin-left:auto;color:#bdd0c7}.modal.setup .start{font-size:17px;font-weight:600}@media(max-width: 760px)and (orientation: landscape){.modal.setup{grid-template-rows:auto minmax(0, 1fr) auto;grid-template-areas:"head" "ring" "footer"}.modal.setup .field,.modal.setup .invite{display:none}.modal.setup .table-ring::before{inset:18px clamp(90px,17vw,150px)}.modal.setup .seats .seat-row{width:clamp(170px,31vw,220px);min-height:94px;padding:5px 8px 3px}.modal.setup .seats .seat-row .name{font-size:17px}.modal.setup .seats .seat-row .position,.modal.setup .seats .seat-row .controls .room-action,.modal.setup .seats .seat-row .controls .status{font-size:14px}}@media(orientation: landscape)and (max-height: 520px){.modal.setup{gap:4px;padding-top:calc(4px + var(--sa-t));padding-bottom:calc(6px + var(--sa-b))}.modal.setup .head h2,.modal.setup .head .code{font-size:19px}.modal.setup .head .visibility,.modal.setup .head .room-action,.modal.setup .head .room-leave{min-height:40px}.modal.setup .field input[type=text]{min-height:36px}.modal.setup .invite{display:none}.modal.setup .table-ring::before{inset:14px clamp(90px,17vw,200px)}.modal.setup .table-ring .ring-label{font-size:14px}.modal.setup .table-ring .ring-label:not(.moving){display:none}.modal.setup .seats .seat-row{min-height:0;padding:4px 8px;display:grid;grid-template-columns:auto minmax(0, 1fr);align-items:baseline;column-gap:6px}.modal.setup .seats .seat-row .position{font-size:14px}.modal.setup .seats .seat-row .name{margin-top:0;font-size:16px}.modal.setup .seats .seat-row .controls{grid-column:1/-1;min-height:40px}.modal.setup .seats .seat-row .controls .room-action{min-height:40px;padding:0 6px;font-size:14px}.modal.setup .seats .seat-row .controls .status{font-size:14px}.modal.setup .footer{min-height:40px}.modal.setup .footer .button{min-height:40px}}#rotate-overlay{display:none;position:fixed;inset:0;z-index:500;background:var(--c-felt-edge);color:var(--c-accent);flex-direction:column;align-items:center;justify-content:center;gap:18px;font-size:20px}#rotate-overlay .phone{width:46px;height:84px;border:3px solid var(--c-accent);border-radius:8px;animation:rotate-hint 1.6s ease-in-out infinite}@media(orientation: portrait)and (pointer: coarse){#rotate-overlay{display:flex}}@keyframes rotate-hint{0%,20%{transform:rotate(0)}60%,100%{transform:rotate(-90deg)}}.actions .button .rope-wrap{position:absolute;inset:calc(-7*var(--u));pointer-events:none}.actions .button .turn-rope{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.actions .button .turn-rope rect{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;transition:stroke-dashoffset .25s linear,stroke .4s ease}.actions .button .turn-rope .track{stroke:rgba(0,0,0,.45);stroke-width:2px;stroke-dasharray:3 3}.actions .button .turn-rope .outline{stroke:#0c1917;stroke-width:9px}.actions .button .turn-rope .core{stroke:var(--rope-c, var(--c-accent));stroke-width:5.5px}.actions .button .ember{position:absolute;width:calc(14*var(--u));height:calc(14*var(--u));margin:calc(-7*var(--u)) 0 0 calc(-7*var(--u));border-radius:50%;background:radial-gradient(circle, #fff 0%, #ffe9a8 30%, var(--rope-c, var(--c-accent)) 60%, transparent 72%);box-shadow:0 0 calc(12*var(--u)) calc(3*var(--u)) color-mix(in srgb, var(--rope-c, var(--c-accent)) 70%, transparent);animation:ember-flicker .5s ease-in-out infinite alternate}.actions.warn .button{--rope-c: var(--c-warn)}.actions.critical .button{--rope-c: var(--c-bad)}.actions.critical .play{animation:turn-critical .6s ease-in-out infinite}.actions .clock{align-self:center;font-size:var(--font-large);font-variant-numeric:tabular-nums;color:var(--c-warn);text-shadow:0 0 5px #000;margin-right:calc(6*var(--u))}.actions.critical .clock{color:var(--c-bad)}@keyframes ember-flicker{from{transform:scale(0.85);opacity:.85}to{transform:scale(1.15);opacity:1}}@keyframes turn-critical{0%,100%{transform:none}50%{transform:scale(1.04)}}@media(prefers-reduced-motion: reduce){.actions.critical .play,.actions .button .ember{animation:none}}.offline-banner{position:absolute;left:50%;top:calc(16*var(--u) + var(--sa-t));transform:translateX(-50%);display:inline-flex;align-items:center;gap:calc(10*var(--u));padding:calc(8*var(--u)) calc(18*var(--u));border-radius:999px;background:rgba(16,27,25,.95);border:1px solid rgba(224,177,95,.5);color:var(--c-warn);font-size:var(--font-small);z-index:150}.offline-banner .dot{width:calc(10*var(--u));height:calc(10*var(--u));border-radius:50%;background:var(--c-warn);animation:offline-blink 1s ease-in-out infinite}@keyframes offline-blink{0%,100%{opacity:.3}50%{opacity:1}}.plate .bubble,.bubble.mine{position:absolute;padding:calc(6*var(--u)) calc(14*var(--u));border-radius:calc(14*var(--u));background:#f4f1ea;color:#14201c;font-size:var(--font-small);white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.4);animation:bubble-in .2s ease-out both;z-index:7}.plate .bubble{left:50%;bottom:calc(100% + 10*var(--u));transform:translateX(-50%)}.plate.slot-top .bubble{bottom:auto;top:calc(100% + 10*var(--u))}.bubble.mine{left:calc(28*var(--u) + var(--sa-l));bottom:calc(185*var(--u) + 38*var(--u) + 24*var(--u) + 80*var(--u) + var(--sa-b))}@keyframes bubble-in{from{opacity:0;transform:translateX(-50%) translateY(calc(6 * var(--u)))}to{opacity:1;transform:translateX(-50%)}}.bubble.mine{animation-name:bubble-in-left}@keyframes bubble-in-left{from{opacity:0;transform:translateY(calc(6 * var(--u)))}to{opacity:1;transform:none}}.result-reopen{position:absolute;left:50%;top:calc(16*var(--u) + var(--sa-t));transform:translateX(-50%);z-index:6;padding:calc(8*var(--u)) calc(18*var(--u));font-size:var(--font-small)}.rules-toggle svg{width:28px;height:28px}.rules-dialog{box-sizing:border-box;width:min(780px,100vw - 32px);max-height:calc(100dvh - 24px);margin:auto;padding:0;color:#e8eee9;background:#101e1a;border:1px solid #496258;border-radius:16px;box-shadow:0 20px 80px rgba(0,0,0,.6);font:16px/1.5 system-ui,sans-serif;overflow:hidden}.rules-dialog::backdrop{background:rgba(0,0,0,.6)}.rules-dialog[open]{display:flex;flex-direction:column}.rules-dialog header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid #30483e}.rules-dialog h2{margin:0;font-size:22px}.rules-dialog h3{margin:18px 0 10px;font-size:18px;color:#d6c291}.rules-dialog h4{margin:0 0 8px;font-size:16px}.rules-dialog p{margin:0 0 8px}.rules-dialog .rules-close{min-width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:0}.rules-dialog .rules-close svg{display:block}.rules-dialog .rules-content{padding:16px;overflow-y:auto;overscroll-behavior:contain;min-height:0}.rules-dialog .rules-hands{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(260px, 100%), 1fr));gap:12px}.rules-dialog .rules-hand{padding:14px;border:1px solid #30483e;border-radius:10px;background:#172a23}.rules-dialog .rules-example{color:#f2d69a;font-size:17px;margin-bottom:8px;word-spacing:3px}.rules-dialog .rules-note{border-top:1px solid #30483e;margin-top:20px}.plate.menu{cursor:pointer}.plate .seat-menu-btn{position:absolute;top:calc(-14*var(--u));right:calc(-14*var(--u));z-index:4;width:max(26px,40*var(--u));height:max(26px,40*var(--u));padding:0;display:grid;place-items:center;border-radius:50%;border:1px solid hsla(0,0%,100%,.25);background:#1f2a27;color:var(--c-text);font-size:max(15px,24*var(--u));line-height:1;cursor:pointer}.plate .seat-menu-btn:hover{background:#283732}.plate.blocked .name{color:var(--c-muted);font-style:italic}.modal.setup .seat-row:has(.seat-menu-btn) .position,.modal.setup .seat-row:has(.seat-menu-btn) .name{padding-right:32px}@media(orientation: landscape)and (max-height: 520px){.modal.setup .seat-row:has(.seat-menu-btn) .position{padding-right:0}}.modal.setup .seat-row .controls .room-action.seat-menu-btn{position:absolute;top:3px;right:5px;z-index:3;flex:none;width:30px;min-width:0;height:30px;min-height:0;padding:0;display:grid;place-items:center;font-size:16px;line-height:1}@media(orientation: landscape)and (max-height: 520px){.modal.setup .seat-row .controls .room-action.seat-menu-btn{top:2px;width:26px;height:22px}}.modal .report-line{margin-top:.8em}.modal .report-line .link{appearance:none;background:none;border:0;padding:.4em 0;color:var(--c-muted);font:inherit;font-size:var(--font-small);text-decoration:underline;cursor:pointer}.modal .report-line .link:hover{color:var(--c-text)}.modal.seat-menu{z-index:300;min-width:min(420px,90vw);max-width:min(520px,94vw);top:50%}.modal.seat-menu .menu-buttons{display:flex;flex-direction:column;gap:10px;margin-top:.8em}.modal.seat-menu .menu-buttons .button{min-height:44px;font-size:var(--font-body)}