:root{--felt:#0e5138;--felt-deep:#083423;--felt-edge:#052419;--wood:#6a4424;--wood-dark:#3f2612;--wood-light:#8a5c33;--surface-raised:#263c30;--ink:#f1f4f2;--ink-dim:#b0bdc1;--ink-faint:#8e9fa5;--tile-face:#fbf6e9;--tile-face-low:#efe5cc;--tile-edge:#d6c9a8;--tile-edge-dark:#b9a97f;--red:#cf2e2e;--yellow:#9a6a00;--blue:#1a5bc4;--black:#1b1b1d;--team0:#9edac6;--team1:#e6b995;--accent:#f6c945;--accent-ink:#2b2100;--danger:#e25a52;--pair:#a98bff;--panel:#06140ef5;--panel-solid:#0f2a20;--line:#ddeaec21;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--gutter:16px;--inset-l:env(safe-area-inset-left,0px);--inset-r:env(safe-area-inset-right,0px);--side-x:calc(max(var(--gutter), var(--inset-l)) + max(var(--gutter), var(--inset-r)));--tile-lg-w:min(calc((100vw - 2 * var(--gutter) - 12px - 12 * 3px) / 13), 46px);--tile-lg-h:calc(var(--tile-lg-w) * 1.42);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none}html,body,#root{height:100%;margin:0}body{background:var(--felt-edge);color:var(--ink)}button{font:inherit;color:inherit}button,[role=button],.tile,.rack,.sorter,.seg{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{border:1px solid var(--line);cursor:pointer;letter-spacing:.01em;white-space:nowrap;transition:transform .14s var(--ease-out), background-color .16s ease, opacity .16s ease;background:#ffffff12;border-radius:11px;padding:9px 14px;font-size:14px;font-weight:650}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.38;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:none;border-color:#0000}.btn-danger{background:var(--danger);color:#fff;border-color:#0000}.btn-ghost{background:0 0}.btn-small{padding:6px 10px;font-size:13px}.btn-big{border-radius:14px;width:100%;padding:15px;font-size:17px}@media (hover:hover) and (pointer:fine){.btn:hover:not(:disabled){background-color:#ffffff21}.btn-primary:hover:not(:disabled){background-color:#ffd767}.btn-danger:hover:not(:disabled){background-color:#ec6a62}}.icon-btn{border:1px solid var(--line);cursor:pointer;width:44px;height:44px;transition:transform .14s var(--ease-out);background:#ffffff0d;border-radius:10px;place-items:center;display:grid}.icon-btn:active{transform:scale(.94)}.tile{background:var(--tile-face);box-shadow:0 2px 0 var(--tile-edge), 0 3px 0 var(--tile-edge-dark), 0 4px 5px #0003;font-variant-numeric:tabular-nums;transition:transform .14s var(--ease-out), box-shadow .14s var(--ease-out);border-radius:7px;flex-direction:column;flex:none;justify-content:center;align-items:center;margin-bottom:4px;font-weight:800;line-height:1;display:flex;position:relative}.tile[data-color=red]{color:var(--red)}.tile[data-color=yellow]{color:var(--yellow)}.tile[data-color=blue]{color:var(--blue)}.tile[data-color=black]{color:var(--black)}.tile-num{letter-spacing:-.03em}.tile-dot{aspect-ratio:1;opacity:.9;background:currentColor;border-radius:50%;width:24%;margin-top:13%}.tile-okey{background:radial-gradient(circle at 35% 35%, #ffe9a0, var(--accent) 60%, #b98a00);border-radius:50%;width:7px;height:7px;position:absolute;top:3px;right:3px;box-shadow:0 0 0 1px #0003}.tile-fake{font-size:1.25em}.tile-lg{width:var(--tile-lg-w);height:var(--tile-lg-h);font-size:calc(var(--tile-lg-w) * .56);border-radius:7px}.tile-md{width:30px;height:42px;font-size:17px}.tile-sm{width:24px;height:34px;box-shadow:0 0 0 .5px #503c1440, 0 2px 0 var(--tile-edge), 0 3px 0 var(--tile-edge-dark), 0 4px 6px #00000047;border-radius:5px;margin-bottom:3px;font-size:14px}.tile-sm .tile-dot{margin-top:9%}.tile-sm .tile-okey{width:5px;height:5px;top:2px;right:2px}.tile-xs{width:11px;height:15px;box-shadow:0 1px 0 var(--tile-edge-dark), 0 2px 3px #0000004d;border-radius:2px;margin-bottom:2px}.tile-back{background:var(--tile-face-low)}.tile-md.tile-back:after,.tile-lg.tile-back:after{content:"";border:1.5px solid #6e552338;border-radius:3px;position:absolute;inset:24% 22%}.tile-click{cursor:pointer}.tile-click:active{transform:scale(.96)}.tile-selected,.tile-selected:active{box-shadow:0 0 0 2px var(--accent), 0 3px 0 var(--tile-edge), 0 4px 0 var(--tile-edge-dark), 0 12px 16px #0006;transform:translateY(-9px)}.tile-sm.tile-selected{transform:none}.tile-warn{box-shadow:0 0 0 2px var(--danger), 0 3px 0 var(--tile-edge), 0 4px 6px #0000004d}.start{min-height:100%;padding:max(24px, env(safe-area-inset-top)) var(--gutter) max(24px, env(safe-area-inset-bottom));background:var(--felt-edge);place-items:center;display:grid}.start-card{text-align:left;grid-template-columns:1fr 1fr;align-items:center;gap:64px;width:min(880px,100%);display:grid}.fan{--tile-lg-w:44px;justify-content:flex-start;gap:7px;margin-top:36px;display:flex}.fan-tile{transform:rotate(-6deg)}.fan-tile:nth-child(2n){transform:translateY(-8px)rotate(4deg)}.start h1{letter-spacing:-.035em;margin:0;font-size:clamp(40px,5vw,60px);font-weight:700}.start-sub{color:var(--ink-dim);margin:6px 0 26px}.brand-mark{border:1px solid var(--accent);width:42px;height:48px;color:var(--accent);border-radius:10px;place-items:center;margin-bottom:24px;font-weight:700;display:inline-grid}.start-play{background:var(--panel-solid);border:1px solid var(--line);border-radius:24px;min-width:0;padding:28px}.field-label{width:100%;color:var(--ink-dim);margin-top:8px;font-size:13px}.field-help{color:var(--ink-faint);align-self:flex-start;margin:-6px 0 4px;font-size:12px}.field small{float:right;color:var(--ink-faint)}.start-panel h2{letter-spacing:-.025em;align-self:flex-start;margin:8px 0 0;font-size:22px;font-weight:650}.start-panel .seg{width:100%;margin:0 0 6px}.start-panel .seg button{flex:1}.start-panel .btn-big{justify-content:space-between;align-items:center;display:flex}@media (width<=640px){.start-card{grid-template-columns:1fr;gap:28px;width:min(400px,100%)}.start-brand{text-align:center}.brand-mark{display:none}.fan{--tile-lg-w:34px;justify-content:center;margin-top:20px}.start-play{padding:22px}.start-brand .start-sub{margin-bottom:0}}.seg{border:1px solid var(--line);background:#00000047;border-radius:13px;margin-bottom:18px;padding:4px;display:inline-flex}.seg button{cursor:pointer;background:0 0;border:0;border-radius:9px;padding:10px 20px;font-weight:600;transition:background-color .16s,color .16s}.seg button.on{background:var(--ink);color:var(--felt-deep)}.game{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.scorebar{padding:8px var(--gutter);padding-top:max(8px, env(safe-area-inset-top));background:var(--felt-edge);border-bottom:1px solid var(--line);align-items:center;gap:10px;font-size:14px;display:flex}.hand-pill{font-variant-numeric:tabular-nums;font-weight:700}.hand-pill small{color:var(--ink-faint);margin-left:1px;font-weight:500}.score-teams{cursor:pointer;background:0 0;border:0;gap:6px;margin-left:auto;padding:0;display:flex}.team-0{--team:var(--team0)}.team-1{--team:var(--team1)}.team-score{border:1px solid var(--line);background:#ffffff0d;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;display:inline-flex}.team-score b{font-variant-numeric:tabular-nums;font-size:15px}.team-dot{background:var(--team);border-radius:50%;width:8px;height:8px}.team-name{color:var(--ink-dim);font-size:13px}.kafa-chip{background:color-mix(in srgb, var(--team) 22%, transparent);color:var(--team);border-radius:999px;padding:2px 6px;font-size:11px;font-weight:700}th.team-0,th.team-1,span.team-0,span.team-1,b.team-0,b.team-1{color:var(--team)}.felt{background:radial-gradient(90% 70% at 50% 45%, #ffffff12, transparent 70%), radial-gradient(150% 120% at 50% 50%, var(--felt) 35%, var(--felt-deep) 85%);grid-template:"top top top""left middle right"minmax(0,1fr)/50px minmax(0,1fr) 50px;min-height:0;padding:8px 6px 70px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000059,inset 0 18px 40px #00000059,inset 0 -18px 40px #0000004d}.felt:before{content:"";pointer-events:none;opacity:.35;background-image:radial-gradient(#ffffff0d 1px,#0000 1px),radial-gradient(#0000001f 1px,#0000 1px);background-position:0 0,2px 3px;background-size:5px 5px,7px 7px;position:absolute;inset:0}.felt>.opp,.felt>.middle{position:relative}.opp{flex-direction:column;align-items:center;gap:5px;min-width:0;font-size:12px;display:flex}.opp-top{grid-area:top}.opp-left{grid-area:left;justify-content:center}.opp-right{grid-area:right;justify-content:center}.avatar{background:color-mix(in srgb, var(--team) 12%, var(--panel-solid));width:40px;height:40px;box-shadow:0 0 0 1px color-mix(in srgb, var(--team) 45%, transparent);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:750;transition:box-shadow .22s;display:grid;position:relative}.avatar-count{background:var(--panel-solid);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;min-width:20px;padding:2px 5px;font-size:10px;font-weight:700;position:absolute;bottom:-4px;right:-18px}.opp-right .avatar-count{left:-18px;right:auto}.opp-hand{gap:1px;display:flex}.opp-hand-v{flex-direction:column;gap:0}.opp-hand-v .tile+.tile{margin-top:-11px}.badge{white-space:nowrap;background:#ffffff1f;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:650}.badge-pair{background:color-mix(in srgb, var(--pair) 35%, transparent);color:#e6dcff}.opp-left .avatar,.opp-right .avatar{width:34px;height:34px;font-size:11px}.opp-left .badge,.opp-right .badge{white-space:normal;text-align:center;max-width:100%;padding:3px 5px}.middle{flex-direction:column;grid-area:middle;gap:8px;min-height:0;display:flex}.info-line{flex-wrap:wrap;justify-content:center;gap:6px;font-size:12px;display:flex}.chip{border:1px solid var(--line);color:var(--ink);font-variant-numeric:tabular-nums;background:#00000038;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;display:inline-flex}.chip-label{color:var(--ink-dim)}.chip-sep{color:var(--ink-faint)}.chip-pair{background:color-mix(in srgb, var(--pair) 28%, transparent);border-color:color-mix(in srgb, var(--pair) 45%, transparent);color:#e6dcff;font-weight:650}.mini-tile{background:var(--tile-face);width:16px;height:20px;box-shadow:0 1px 0 var(--tile-edge-dark);border-radius:3px;place-items:center;font-size:11px;font-weight:800;display:inline-grid}.mini-tile[data-color=red]{color:var(--red)}.mini-tile[data-color=yellow]{color:var(--yellow)}.mini-tile[data-color=blue]{color:var(--blue)}.mini-tile[data-color=black]{color:var(--black)}.groups{overscroll-behavior:contain;flex-direction:column;flex:1;gap:10px;min-height:0;padding:4px 2px;display:flex;overflow-y:auto}.group-section{flex-direction:column;gap:5px;display:flex}.group-label{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--team) 80%, var(--ink));align-items:center;gap:6px;margin:0;font-size:10px;font-weight:700;display:flex}.group-label:after{content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--team) 40%, transparent), transparent);flex:1;height:1px}.group-list{flex-wrap:wrap;gap:8px;display:flex}.table-empty{color:var(--ink-faint);flex:1;place-items:center;font-size:13px;display:grid}.group{background:#0003;border-radius:9px;gap:2px;padding:4px 4px 1px;display:flex;box-shadow:inset 0 1px 2px #00000059,0 1px #ffffff0d}.center-stack{justify-content:center;align-items:flex-end;gap:18px;padding-bottom:2px;display:flex}.deck{border-radius:10px;padding:4px;transition:box-shadow .2s;position:relative}.deck:before,.deck:after{content:"";background:var(--tile-edge);border-radius:7px;width:30px;height:42px;position:absolute;left:4px;box-shadow:0 3px 6px #0000004d}.deck:before{top:10px;transform:translate(4px)}.deck:after{top:7px;transform:translate(2px)}.deck .tile{z-index:1}.deck-active{cursor:pointer;box-shadow:0 0 0 2px var(--accent)}.deck-active:active .tile{transform:scale(.96)}.deck-count{z-index:2;background:var(--panel-solid);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700;position:absolute;bottom:-6px;right:-10px}.indicator{color:var(--ink-faint);letter-spacing:.04em;flex-direction:column;align-items:center;gap:4px;font-size:10px;display:flex}.pile{background:#00000029;border-radius:11px;place-items:center;width:48px;height:60px;transition:box-shadow .2s,background-color .2s;display:grid;position:absolute;box-shadow:inset 0 2px 6px #00000059,0 1px #ffffff0d}.pile>*{grid-area:1/1}.pile-under{opacity:.75;transform:rotate(-9deg)translate(-3px,1px)}.pile-bl{bottom:8px;left:8px}.pile-br{bottom:8px;right:8px}.pile-tl{top:8px;left:8px}.pile-tr{top:8px;right:8px}.pile-take{cursor:pointer;box-shadow:inset 0 2px 6px #00000059, 0 0 0 2px var(--accent)}.pile-take:active .tile{transform:scale(.96)}.pile-over{background:color-mix(in srgb, var(--danger) 30%, transparent);box-shadow:inset 0 2px 6px #00000059, 0 0 0 2px var(--danger)}.pile-empty{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:10px;font-weight:700}.me{padding:10px var(--gutter);padding-bottom:max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:linear-gradient(#ffffff0f,#0000 30%),linear-gradient(#3a2414,#24160b);flex-direction:column;gap:8px;display:flex;position:relative}.status{color:var(--ink-dim);min-height:18px;font-size:13px;line-height:1.35}.status-mine{color:var(--accent);font-weight:650}.status-mine:before{content:"";background:var(--accent);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.stage{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stage-group{cursor:pointer;transition:transform .14s var(--ease-out);background:#ffffff12;border-radius:9px;gap:2px;padding:4px 4px 1px;display:flex}.stage-group:active{transform:scale(.97)}.stage-bad{background:color-mix(in srgb, var(--danger) 22%, transparent)}.stage-sum{font-variant-numeric:tabular-nums;background:color-mix(in srgb, var(--danger) 25%, transparent);color:#ffd2cf;border-radius:999px;padding:5px 10px;font-size:13px;font-weight:750}.stage-sum.ok{background:color-mix(in srgb, var(--team0) 25%, transparent);color:#d4ffe9}.actions{flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;display:flex}.spacer{flex:1}.sorter{border:1px solid var(--line);border-radius:10px;align-items:center;font-size:12px;display:inline-flex;overflow:hidden}.sorter-label{color:var(--ink-faint);padding:0 8px;font-weight:600}.sorter button{border:0;border-left:1px solid var(--line);cursor:pointer;background:#ffffff0d;padding:7px 10px;font-weight:650;transition:background-color .14s}.sorter button:active{background:#ffffff29}@media (hover:hover) and (pointer:fine){.sorter button:hover{background:#ffffff1f}}.rack{background:linear-gradient(180deg, #ffffff1a, transparent 18%), repeating-linear-gradient(92deg, #0000000d 0 2px, transparent 2px 9px), linear-gradient(180deg, var(--wood-light), var(--wood) 40%, var(--wood-dark));border-radius:12px;gap:7px 3px;padding:9px 6px 5px;transition:box-shadow .24s;display:grid;box-shadow:inset 0 1px #ffffff2e,inset 0 -3px #00000059,0 6px 14px #00000059}.rack-turn{box-shadow:inset 0 1px 0 #ffffff2e, inset 0 -3px 0 #00000059, 0 0 0 1px color-mix(in srgb, var(--accent) 70%, transparent), 0 6px 14px #00000059}.rack-slot{height:calc(var(--tile-lg-h) + 4px);background:#00000029;border-radius:6px;place-items:start center;transition:background-color .12s;display:grid;box-shadow:inset 0 2px 3px #00000040}.rack-drag{touch-action:none;cursor:grab}.rack-dragging{z-index:10;cursor:grabbing;position:relative}.rack-dragging .tile{box-shadow:0 3px 0 var(--tile-edge), 0 4px 0 var(--tile-edge-dark), 0 16px 24px #00000073}.modal-back{-webkit-backdrop-filter:blur(3px);width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);padding:var(--gutter);z-index:50;background:#020a0799;border:0;place-items:center;margin:0;position:fixed;inset:0}.modal-back[open]{display:grid}.modal-back::backdrop{background:0 0}.modal{width:min(400px,100%);max-height:calc(100dvh - 2 * var(--gutter));overscroll-behavior:contain;background:var(--panel-solid);border:1px solid var(--line);border-radius:20px;padding:22px;overflow-y:auto;box-shadow:inset 0 1px #ffffff14,0 24px 60px #0000008c}.modal h2{letter-spacing:-.015em;margin:0 0 8px;font-size:21px}.modal p{margin:6px 0;line-height:1.45}.muted{color:var(--ink-dim);font-size:14px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.toggle{cursor:pointer;border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;font-size:15px;display:flex}.toggle input{width:20px;height:20px;accent-color:var(--accent)}.winner{text-align:center;color:var(--accent);letter-spacing:-.02em;font-size:24px;font-weight:850}.result{border-collapse:collapse;width:100%;margin-top:10px;font-size:15px}.result td,.result th{text-align:left;padding:7px 4px}.result .num{text-align:right;font-variant-numeric:tabular-nums}.result th:not(:first-child){text-align:right}.result tr.sep td{border-top:1px solid var(--line)}.toasts{top:max(58px, calc(env(safe-area-inset-top) + 50px));z-index:60;width:min(360px, calc(100vw - 2 * var(--gutter)));pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 8px 20px #00000059}.toast:before{content:"";background:#ffffff73;border-radius:50%;flex:none;width:7px;height:7px}.toast-good:before{background:var(--team0)}.toast-bad:before{background:var(--danger)}.note{background:var(--panel);border:1px solid var(--line);z-index:40;max-width:calc(100vw - 2 * var(--gutter));border-radius:12px;padding:10px 16px;font-size:14px;position:fixed;bottom:38%;left:50%;transform:translate(-50%);box-shadow:0 10px 24px #0006}@media (width>=760px){.felt{grid-template-columns:96px minmax(0,1fr) 96px;padding:14px 14px 84px}.avatar,.opp-left .avatar,.opp-right .avatar{width:48px;height:48px;font-size:13px}.tile-xs{width:14px;height:20px}.opp-hand-v .tile+.tile{margin-top:-14px}.tile-sm{width:30px;height:42px;font-size:17px}.pile{width:56px;height:68px}.me{align-items:center}.me>*{width:min(760px,100%)}}@media (prefers-reduced-motion:reduce){.deck-active,.pile-take,.opp-active .avatar{animation:none}.tile,.btn{transition-duration:0s}}@media (pointer:coarse){.btn,.sorter button,.seg button,.tabs button,.rotate-hint{min-height:44px}}.rack-row{grid-template-columns:minmax(0,1fr);display:grid}.side-sort{display:none}.rotate-hint{border:1px solid var(--line);color:var(--ink-dim);cursor:pointer;background:#ffffff0f;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:none}.rotate-hint u{color:var(--ink-faint)}@media (orientation:portrait) and (pointer:coarse){.rotate-hint{display:inline-flex}}.sort-icon{gap:1px;display:inline-flex}.sort-icon span{background:var(--tile-face);width:12px;height:16px;box-shadow:0 1px 0 var(--tile-edge-dark);border-radius:2px;place-items:center;font-size:9px;font-weight:800;display:grid}.sort-icon span[data-color=red]{color:var(--red)}.sort-icon span[data-color=blue]{color:var(--blue)}@media (orientation:landscape) and (height<=560px){:root{--gutter:10px;--tile-lg-w:min(calc((100vw - var(--side-x) - 2 * 72px - 12px - 12 * 3px) / 13), calc(100dvh * .095), 46px)}.game{grid-template-rows:minmax(0,1fr) auto;position:relative}.scorebar{z-index:5;padding:max(6px, env(safe-area-inset-top)) max(var(--gutter), var(--inset-r)) 0 max(var(--gutter), var(--inset-l));pointer-events:none;background:0 0;border:0;position:absolute;inset:0 0 auto}.scorebar>*{pointer-events:auto}.icon-btn{background:#0000004d;width:40px;height:40px}.hand-pill{background:#0000004d;border-radius:999px;padding:4px 8px;font-size:13px}.team-score{background:#0000004d;padding:3px 8px}.felt{padding:max(6px, env(safe-area-inset-top)) max(6px, env(safe-area-inset-right)) 6px max(6px, env(safe-area-inset-left));grid-template:".top."40px"left middle right"minmax(0,1fr)/70px minmax(0,1fr) 70px}.opp-top{flex-direction:row;justify-content:center;align-items:center;gap:8px}.opp-top .avatar,.opp-left .avatar,.opp-right .avatar{width:30px;height:30px;font-size:10px}.opp-left .avatar-count{bottom:-6px;right:-20px}.opp-right .avatar-count{bottom:-6px;left:-20px;right:auto}.pile{width:42px;height:50px}.pile-tl{top:46px;left:max(12px, env(safe-area-inset-left))}.pile-tr{top:46px;right:max(12px, env(safe-area-inset-right))}.pile-bl{bottom:6px;left:max(12px, env(safe-area-inset-left))}.pile-br{bottom:6px;right:max(12px, env(safe-area-inset-right))}.opp-left,.opp-right{justify-content:center;gap:3px;padding:52px 0}.opp-left .badge,.opp-right .badge{padding:2px 5px;font-size:9px}.opp-left .opp-hand,.opp-right .opp-hand{display:none}.middle{grid-template:"groups info""groups center"minmax(0,1fr)/minmax(0,1fr) auto;gap:8px 12px;padding-top:4px;display:grid}.info-line{flex-direction:column;grid-area:info;align-items:stretch;gap:4px}.chip{justify-content:center;padding:2px 8px;font-size:11px}.mini-tile{width:14px;height:18px;font-size:10px}.indicator>span{display:none}.groups{background:#0000001f;border-radius:12px;flex-direction:row;grid-area:groups;gap:0;padding:6px;box-shadow:inset 0 1px 4px #0000004d}.group-section{flex:1;min-width:0;padding:0 8px}.group-section+.group-section{border-left:1px solid var(--line)}.table-empty{background:#0000001f;border-radius:12px;grid-area:groups}.center-stack{grid-area:center;align-self:end;align-items:center;gap:14px}.me{padding:6px max(var(--gutter), var(--inset-r)) max(6px, env(safe-area-inset-bottom)) max(var(--gutter), var(--inset-l));grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"status actions""rack rack";align-items:center;gap:6px 10px;display:grid}.me>*{width:auto}.status{grid-area:status;min-width:0;font-size:12px}.actions{flex-wrap:nowrap;grid-area:actions;min-height:34px}.actions .spacer,.sorter{display:none}.btn{padding:7px 12px;font-size:13px}.rotate-hint{display:none}.stage{z-index:6;background:var(--panel);border:1px solid var(--line);max-width:calc(100vw - 2 * var(--gutter));border-radius:12px;flex-wrap:nowrap;padding:6px 8px;position:absolute;bottom:calc(100% + 8px);left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 10px 24px #0006}.rack-row{grid-area:rack;grid-template-columns:64px minmax(0,1fr) 64px;align-items:stretch;gap:8px}.side-sort{border:1px solid var(--line);background:var(--surface-raised);cursor:pointer;transition:transform .14s var(--ease-out);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:750;line-height:1.1;display:flex}.side-sort:active{transform:scale(.96)}.rack{gap:5px 3px;padding:6px 6px 3px}.toasts{top:max(48px, calc(env(safe-area-inset-top) + 42px))}.note{bottom:50%}.modal{width:min(480px,100%);padding:16px 18px}.result{font-size:14px}.result td,.result th{padding:4px}.start-card{grid-template-columns:1fr 1fr;gap:24px;width:min(760px,100%)}.start-brand{text-align:center}.start-brand .fan{justify-content:center}.start-play{padding:14px 18px}.start{padding-block:max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-bottom))}.start-panel{gap:8px}.start-panel h2{margin:0;font-size:20px}.brand-mark{display:none}.start h1{font-size:38px}}.tabs{border:1px solid var(--line);background:#00000047;border-radius:13px;gap:4px;margin:0 0 20px;padding:4px;display:flex}.tabs button{cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:9px 18px;font-weight:650;transition:background-color .16s,color .16s}.tabs button.on{background:var(--ink);color:var(--felt-deep)}.start-panel{flex-direction:column;align-items:center;gap:12px;display:flex}.start-panel .start-sub{width:100%;margin:0 0 4px;font-size:14px;line-height:1.5}.field{text-align:left;width:100%;color:var(--ink-dim);flex-direction:column;gap:6px;font-size:13px;display:flex}.field input{font:inherit;color:var(--ink);border:1px solid var(--line);background:#00000047;border-radius:12px;outline:none;padding:12px 14px;font-size:16px;transition:border-color .16s}.field input:focus{border-color:var(--accent)}.field-error{color:#ffb4ae;margin:0;font-size:13px}.lobby{min-height:100%;padding:max(16px, env(safe-area-inset-top)) var(--gutter) max(16px, env(safe-area-inset-bottom));background:var(--felt-edge);place-items:center;display:grid}.lobby-card{flex-direction:column;gap:20px;width:min(520px,100%);display:flex}.lobby-head{align-items:center;gap:10px;display:flex}.lobby-code{flex:1;align-items:baseline;gap:8px;display:flex}.lobby-code b{letter-spacing:.12em;font-variant-numeric:tabular-nums;font-size:24px}.lobby-conn,.lobby-wait{text-align:center;color:var(--ink-dim);margin:0;font-size:14px}.lobby-table{grid-template:".top.""left felt right"".bottom."/1fr 1.4fr 1fr;align-items:center;gap:10px;display:grid;position:relative}.lobby-felt{text-align:center;min-height:90px;color:var(--ink-dim);border:1px solid var(--line);background:#0000002e;border-radius:18px;grid-area:felt;place-items:center;padding:12px;font-size:12px;display:grid}.spot-top{grid-area:top}.spot-bottom{grid-area:bottom}.spot-left{grid-area:left}.spot-right{grid-area:right}.lobby-seat{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.lobby-mine .avatar{box-shadow:0 0 0 2px var(--accent), 0 4px 10px #00000059}.lobby-name{overflow-wrap:anywhere;flex-direction:column;align-items:center;gap:2px;min-width:0;max-width:100%;font-size:13px;font-weight:650;display:flex}.lobby-team{letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb, var(--team) 80%, var(--ink));font-size:10px;font-weight:700}.lobby-host,.lobby-off{color:var(--ink-faint);font-size:10px;font-weight:600}.lobby-host{color:var(--accent)}.lobby-settings{border:1px solid var(--line);background:#0000002e;border-radius:14px;flex-direction:column;gap:10px;padding:12px;display:flex}.lobby-row{justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.lobby-row .seg{margin:0}.lobby-row .seg button{padding:7px 12px;font-size:13px}.lobby-row .seg button:disabled{cursor:default}.lobby-gate{background:var(--panel-solid);border:1px solid var(--line);border-radius:20px;padding:22px}.lobby-gate h2{letter-spacing:.08em;align-items:baseline;gap:8px;margin:0;display:flex}.conn-banner{background:color-mix(in srgb, var(--danger) 25%, transparent);color:#ffd2cf;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:600}.countdown{min-width:24px;height:20px;color:var(--ink);font-variant-numeric:tabular-nums;vertical-align:1px;background:#00000059;border-radius:999px;place-items:center;margin-right:8px;padding:0 6px;font-size:12px;font-weight:750;display:inline-grid}.countdown-low{background:var(--danger);color:#fff}.avatar-bot{background:var(--panel-solid);border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;padding:1px 5px;font-size:9px;font-weight:700;position:absolute;top:-6px;left:-8px}.avatar-timer{position:absolute;top:-12px;left:50%;transform:translate(-50%)}.avatar-timer .countdown{margin:0}@media (orientation:landscape) and (height<=560px){.lobby-card:not(.lobby-gate){grid-template-columns:1.1fr 1fr;grid-template-areas:"head head""table settings""table action";align-items:start;gap:10px 24px;width:min(860px,100%);display:grid}.lobby-head{grid-area:head}.lobby-table{grid-area:table;gap:4px}.lobby-table .avatar{width:34px;height:34px}.lobby-felt{min-height:60px}.lobby-settings{grid-area:settings}.lobby-card>.btn-big,.lobby-wait{grid-area:action}.lobby-conn{grid-area:head;justify-self:center}}.lobby-warn{color:var(--danger)}.lobby-ok{color:var(--team0)}.lobby-bet{flex-direction:column;gap:6px;font-size:13px;line-height:1.4;display:flex}.lobby-bet p{margin:0}.lobby-bot-vote{color:var(--ink-dim);background:#ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.lobby-bot-vote .btn{flex:none}.lobby-row .seg{flex-wrap:wrap;justify-content:flex-end}.pot-chip{white-space:nowrap;align-items:center;gap:5px;font-weight:650;display:inline-flex}.bet-result{justify-content:center;align-items:center;gap:6px;margin:4px 0 8px;font-size:18px;font-weight:750;display:flex}.bet-win{color:var(--team0)}.bet-loss{color:var(--ink-dim)}.salon-list{flex-direction:column;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.salon{border:1px solid var(--line);background:#0000002e;border-radius:14px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.salon-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.salon-head b{font-size:15px;display:block}.salon-head small,.salon-meta{color:var(--ink-dim);font-size:12px}.salon-head .btn{flex:none}.salon-meta{flex-wrap:wrap;justify-content:space-between;gap:6px;display:flex}.salon-tables{flex-wrap:wrap;gap:6px;display:flex}.salon-table{border:1px solid var(--line);min-height:36px;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:#ffffff0d;font-size:12px}.lobby-salon{color:var(--ink-dim);margin:0;font-size:13px;line-height:1.4}.start-legal{text-align:center;color:var(--ink-faint);margin-top:14px;font-size:12px}.start-legal a,.legal a,.account-panel small a{color:var(--ink-dim);text-underline-offset:2px}.legal{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));background:var(--felt-edge);color:var(--ink);overflow-y:auto}.legal-card{max-width:680px;margin:0 auto;font-size:15px;line-height:1.6}.legal-card h1{margin:12px 0 8px;font-size:26px}.legal-card h2{margin:22px 0 6px;font-size:17px}.legal-card ul{padding-left:20px}.legal-card li+li{margin-top:6px}.legal-links{margin-top:20px;font-size:13px}.middle{grid-template:"info info""groups center"minmax(0,1fr)/minmax(0,1fr) 58px;gap:6px 8px;min-width:0;display:grid}.info-line{flex-direction:row;grid-area:info;align-items:center}.center-stack{flex-direction:column;grid-area:center;align-self:center;align-items:center;gap:18px}.groups,.table-empty{grid-area:groups;min-width:0;min-height:0}.table-area{grid-area:groups;min-width:0;min-height:0;display:flex;position:relative}.table-scroll-hint{pointer-events:none;color:var(--ink-dim);background:var(--felt-deep);border-radius:5px 5px 0 0;padding:2px 6px;font-size:10px;position:absolute;bottom:0;right:6px}.groups{overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y;background:#00000017;border-radius:10px;flex-direction:column;gap:12px;padding:6px;display:flex;overflow:hidden auto}.group-section{flex:none;min-width:0;padding:0}.table-scroll-surface{flex-direction:column;gap:12px;min-height:100%;display:flex}.group-section+.group-section{border:0;border-top:1px solid var(--line);padding-top:10px}.group-label{color:var(--ink-dim);letter-spacing:.03em;text-transform:none;margin-bottom:4px;font-size:10px}.group-label:after{display:none}.group-list{align-items:flex-start;gap:8px}.group-card{background:#00000029;border:1px solid #0000;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;width:max-content;min-width:0;max-width:100%;display:grid;position:relative}.group-owner{text-overflow:ellipsis;white-space:nowrap;max-width:140px;color:var(--ink-dim);grid-column:1/-1;padding:2px 5px;font-size:10px;line-height:12px;display:block;overflow:hidden}.group-owner:before{content:"";vertical-align:middle;background:var(--team);border-radius:50%;width:4px;height:4px;margin-right:4px;display:inline-block}.group-scroll{overscroll-behavior-x:contain;scrollbar-width:thin;touch-action:pan-x pan-y;min-width:0;max-width:100%;overflow-x:auto}.group{width:max-content;min-width:100%;min-height:44px;box-shadow:none;color:inherit;touch-action:manipulation;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-wrap:nowrap;justify-content:center;align-items:center;gap:2px;margin:0;padding:3px;display:flex}.group .tile-sm{flex:0 0 36px;width:36px;height:48px;font-size:25px}.group .tile-selected{transform:none}.group-ready{background:#e5c86c1f;border-color:#e5c86c}.group-over{outline-offset:-2px;background:#e5c86c47;outline:2px solid #ffe49a}.group:focus-visible,.swap-target:focus-visible,.groups:focus-visible{outline-offset:-2px;outline:2px solid #ffe49a}.swap-targets{gap:2px;display:flex}.swap-target{border:0;border-left:1px solid var(--line);width:44px;min-width:44px;min-height:44px;color:var(--ink-dim);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border-radius:0 6px 6px 0;flex:1;padding:4px;font-size:11px}.swap-ready{color:#ffe49a;background:#e5c86c1f}.swap-preview{padding:6px;font-size:13px}.table-drag-preview{pointer-events:none;filter:drop-shadow(0 8px 6px #0000004d);transform:translateY(-54px)}@media (orientation:landscape) and (height<=560px){.felt{grid-template-rows:36px minmax(0,1fr);grid-template-columns:48px minmax(0,1fr) 48px}.middle{gap:4px 6px;padding-top:0}.info-line{flex-wrap:nowrap;justify-content:center;gap:4px}.groups{gap:8px;padding:4px}.group-list{gap:6px}.group .tile-sm{flex-basis:34px;width:34px;height:46px;font-size:24px}.center-stack{gap:14px}.opp-top{gap:4px}.opp-top .opp-hand{display:none}.opp-left,.opp-right{padding:46px 0}.pile-tl,.pile-tr{top:42px}.pile-tl,.pile-bl{left:max(6px, env(safe-area-inset-left))}.pile-tr,.pile-br{right:max(6px, env(safe-area-inset-right))}.me{gap:4px 8px}.actions{min-height:44px}.actions .btn{min-height:44px;padding:7px 10px}}@media (orientation:portrait) and (width<=600px){.felt{grid-template-columns:36px minmax(0,1fr) 36px;padding-bottom:58px}.middle{grid-template:"info""groups"minmax(0,1fr)"center"/minmax(0,1fr)}.center-stack{flex-direction:row;justify-content:center;gap:18px}.center-stack .tile-md{width:25px;height:35px;font-size:19px}.indicator>span{display:none}.deck{min-width:44px;min-height:44px}.group-list{gap:6px}.opp-left .opp-hand,.opp-right .opp-hand{display:none}.opp-left .avatar,.opp-right .avatar{width:30px;height:30px;font-size:10px}.actions .btn{min-height:44px}}.match-options{flex-wrap:wrap;gap:12px;width:100%;display:flex}.match-options label{min-width:110px;color:var(--ink-dim);flex-direction:column;flex:1;gap:6px;font-size:13px;display:flex}.match-options select{border:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--ink);border-radius:9px;padding:8px;font-size:16px}.rack-recognized:after{content:"";pointer-events:none;background:#e5c86c;border-radius:3px;height:3px;position:absolute;bottom:0;left:2px;right:2px}.rack-slot{position:relative}.rack-counter{color:#efdcaa;font-variant-numeric:tabular-nums;gap:12px;font-size:12px;display:flex}.rack-row.rack-unassisted{grid-template-columns:minmax(0,1fr)}@media (orientation:landscape) and (height<=560px){.me{grid-template-areas:"status actions""counter actions""rack rack"}.rack-counter{grid-area:counter;font-size:11px}.actions{max-width:60vw;overflow-x:auto}.actions .btn{flex-shrink:0}.rack-unassisted .rack{width:100%}}.game{--tile-lg-h:calc(var(--tile-lg-w) * 1.42)}.me{gap:5px;padding-top:6px}.rack{row-gap:4px;padding-top:5px;padding-bottom:3px}.group-owner{padding-top:1px;padding-bottom:1px}@media (width>=900px) and (height>=561px){.game{--tile-lg-w:39px}.me>*{width:min(660px,100%)}}@media (orientation:landscape) and (height<=560px){.game{--tile-lg-w:min(calc((100vw - var(--side-x) - 192px - 48px) / 13), 8dvh, 38px)}.me{padding-top:3px;padding-bottom:max(4px, env(safe-area-inset-bottom));gap:2px 8px}.rack-slot{height:max(44px, calc(var(--tile-lg-h) + 2px))}.rack-row{grid-template-columns:54px minmax(0,1fr) 54px;gap:6px}.side-sort{gap:4px;font-size:11px}.groups{padding:3px}}.me{background:linear-gradient(#0000000a,#0000002e);border-top:0}.rack-slot{box-shadow:none;background:#0000000d;border-bottom:2px solid #2d18093d;border-radius:3px}.rack-slot-over{background:color-mix(in srgb, var(--accent) 35%, transparent)}.groups{box-shadow:none;background:0 0}.group-card{background:#0000000f;border-radius:5px}.group-ready{background:#e5c86c1f}.group-over{background:#e5c86c47}@media (orientation:landscape) and (height<=560px){.me{grid-template-columns:minmax(0,650px) 180px;grid-template-areas:"status actions""counter actions""rack actions";justify-content:center;gap:2px 12px;padding-top:4px}.rack-row,.rack-row.rack-unassisted{grid-template-columns:minmax(0,1fr)}.side-sort{display:none}.actions{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-self:center;align-items:stretch;gap:5px;max-width:none;max-height:none;display:grid;overflow:visible}.actions .btn{border-radius:9px;width:100%;min-height:44px;padding:6px}.actions .sorter{background:#0000001f;border:0;flex:0 0 44px;grid-column:1/-1;justify-content:center;min-height:44px;display:flex}.sorter-label{display:none}.sorter button{flex:1;min-width:44px;min-height:44px;padding:6px}.status{font-size:11px}.rack-counter{gap:14px}.rack{border-radius:7px;padding-left:5px;padding-right:5px}}.rack-move-target{cursor:pointer;touch-action:manipulation;background:#ffe08f17;border:1px dashed #ffe08fa6;border-radius:4px;width:100%;height:100%;position:absolute;inset:0}.rack-move-target:focus-visible{outline-offset:-2px;outline:2px solid #ffe49a}.rack-move-target:active{background:#ffe08f4d}.rack-has-selection .tile-selected{outline-offset:1px;outline:2px solid #ffe49a}.rack-slot{margin-bottom:22px}.rack-group-handle{z-index:2;cursor:grab;touch-action:none;background:0 0;border:0;height:22px;padding:6px 12px;position:absolute;top:100%;left:0}.rack-group-handle span{background:#d7b16a;border-radius:4px;height:5px;display:block;box-shadow:0 1px 2px #39220d}.rack-group-handle:focus-visible{outline:2px solid #ffe49a}.rack-group-preview{gap:3px;display:flex}.rack-heading{display:contents}@media (orientation:landscape) and (height<=560px){.me{grid-template-areas:"heading actions""rack actions"}.rack-heading{flex-wrap:wrap;grid-area:heading;justify-content:space-between;align-items:center;gap:2px 10px;display:flex}.rack-heading .status{flex:1;order:-1;font-size:11px}.rack-counter{flex-shrink:0;gap:8px;font-size:10px}.rack-slot{margin-bottom:10px}.rack-group-handle{padding:14px 12px 3px;top:calc(100% - 12px)}.felt{grid-template-rows:30px minmax(0,1fr)}.group-owner{line-height:10px}.table-scroll-surface{gap:6px}.group-section+.group-section{padding-top:4px}}.table-view-toggle{border:1px solid var(--line);background:var(--felt-deep);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;border-radius:9px;padding:4px 10px;font-size:11px}.table-expanded .me{grid-template-columns:minmax(0,1fr);grid-template-areas:"rack""actions";gap:4px;padding-top:4px;display:grid}.table-expanded .rack-heading{display:none}.table-expanded .rack-row{grid-area:rack;width:100%;min-width:0}.table-expanded .rack{touch-action:pan-x;gap:3px;padding:6px;overflow:auto hidden;grid-template-columns:repeat(26,44px)!important}.table-expanded .rack-slot{height:48px;margin-bottom:0}.table-expanded .rack .tile-lg{width:32px;height:44px;font-size:22px}.table-expanded .rack-group-handle{display:none}.table-expanded .actions{flex-flow:row;justify-content:flex-start;width:100%;max-width:none;min-height:44px;display:flex;overflow-x:auto}.table-expanded .actions .btn{flex:none;width:auto;min-height:44px}.table-expanded .actions .sorter{display:none}.table-expanded .group .tile-sm{flex-basis:40px;width:40px;height:54px;font-size:28px}.action-discard:disabled{opacity:1;color:#aab6ad;box-shadow:none;background:#244438;border-color:#416052}@media (orientation:landscape) and (height<=560px){.game:not(.table-expanded) .actions{grid-template-rows:repeat(3,minmax(44px,auto));min-height:142px}.game:not(.table-expanded) .action-open{grid-area:1/1}.game:not(.table-expanded) .action-pairs{grid-area:1/2}.game:not(.table-expanded) .action-discard{grid-area:2/2}.game:not(.table-expanded) .action-confirm{grid-area:2/1}.game:not(.table-expanded) .action-cancel{grid-area:2/2}.game:not(.table-expanded) .actions:has(.action-cancel) .action-discard{visibility:hidden}.game:not(.table-expanded) .actions .sorter{grid-row:3}}.table-expanded .rack .tile-lg{font-size:22px}.middle>.table-view-toggle{z-index:1;grid-area:center;align-self:end;width:58px;padding:4px;line-height:1.2}.middle>.center-stack{align-self:start;padding-bottom:50px}.info-line{gap:6px}.info-line .chip{background:0 0;border-color:#0000;padding:2px 4px}.info-line .chip+.chip{border-left:1px solid #ffffff24;border-radius:0}@media (orientation:landscape) and (height<=560px){.middle{row-gap:3px}.info-line{justify-content:flex-start;min-height:22px}.middle>.center-stack{gap:8px}}@media (orientation:portrait) and (width<=600px){.middle>.center-stack{align-self:center;padding-bottom:0;padding-right:64px}.middle>.table-view-toggle{place-self:center end}.info-line{flex-wrap:wrap;justify-content:center}}.info-line{border-bottom:1px solid #d8e7d81f;gap:10px;padding-bottom:3px}.info-line .mode-label{color:#b1c8b9;letter-spacing:.02em;font-size:10px}.info-line .opening-label{color:#dce8dc;align-items:baseline;gap:5px;font-size:12px;display:inline-flex}.opening-label .chip-label,.opening-unit{color:#b1c8b9;font-size:10px}.opening-label b{color:#f3e3b8;font-variant-numeric:tabular-nums;font-size:13px}.info-line .chip-pair{color:#efdcaa;font-size:10px}.table-view-toggle{color:#dce8dc;background:#05201880;border-color:#dee7d533}.table-view-toggle[aria-pressed=true]{color:#f4dfab;border-color:#bcaa77}.table-view-toggle:focus-visible{outline-offset:2px;outline:2px solid #f4dfab}.modal:has(.score-sheet){background:#102b22;width:min(520px,100%);padding:20px}.score-sheet{flex-direction:column;gap:14px;max-height:calc(100dvh - 80px);display:flex}.score-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.score-heading h2{margin:0;font-size:22px}.score-heading p{color:var(--ink-dim);margin:5px 0 0;font-size:12px}.score-heading .icon-btn{flex-shrink:0;width:44px;height:44px;font-size:26px}.score-summary{grid-template-columns:1fr 1fr;gap:10px;display:grid}.score-summary-team{border:1px solid var(--line);background:#ffffff08;border-top:2px solid;border-radius:10px;flex-direction:column;padding:12px 16px;display:flex}.score-summary-team>span{font-size:13px;font-weight:650}.score-summary-team strong{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:4px;font-size:30px;line-height:1.2}.score-summary-team small{color:var(--ink-dim);font-size:11px}.score-summary-team>div{margin-top:8px;font-size:11px}.score-history{overscroll-behavior:contain;border:1px solid var(--line);border-radius:8px;min-height:65px;overflow-y:auto}.score-history table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.score-history th,.score-history td{text-align:right;border-bottom:1px solid var(--line);padding:10px 14px}.score-history th:first-child{text-align:left;color:var(--ink-dim);font-weight:500}.score-history thead{background:var(--panel);position:sticky;top:0}.score-history tbody tr:nth-child(2n){background:#ffffff08}.score-history .score-no-hands{text-align:center;color:var(--ink-dim)}.score-footnote{color:var(--ink-dim);margin:0;font-size:11px;line-height:1.5}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (orientation:landscape) and (height<=560px){.modal:has(.score-sheet){width:min(620px,100%);padding:14px 18px}.score-sheet{gap:8px;max-height:calc(100dvh - 56px)}.score-summary-team{grid-template-columns:1fr auto;padding:6px 12px;display:grid}.score-summary-team strong{grid-area:1/2/3;margin:0;font-size:26px}.score-summary-team small{display:none}.score-summary-team>div{margin-top:3px}}.indicator{border-radius:10px;padding:4px;transition:box-shadow .14s ease-out,background-color .14s ease-out}.indicator-finish{cursor:pointer;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent);outline:1px dashed color-mix(in srgb, var(--accent) 80%, transparent);outline-offset:3px}.indicator-finish>span{color:var(--accent);font-weight:700}.indicator-over{background:color-mix(in srgb, var(--accent) 22%, transparent);box-shadow:0 0 0 3px var(--accent)}.indicator-finish:active .tile{transform:scale(.96)}.rack-recognized:after{display:none}.rack-group-handle span{height:3px;box-shadow:none;background:#f0d69680;border-radius:2px}.rack-group-handle[aria-pressed=true] span{background:#ffe49a}@media (orientation:landscape) and (height<=560px){.game:not(.table-expanded){--rack-col:min(650px, calc(100vw - var(--side-x) - 192px));--tile-lg-w:min(calc(13.5dvh * .76), calc((var(--rack-col) - 24px) / 13 - 2px), 48px);--tile-lg-h:min(13.5dvh, calc(var(--tile-lg-w) * 1.4))}.game:not(.table-expanded) .rack{justify-self:center;column-gap:1px;width:max-content;max-width:100%;grid-template-columns:repeat(13, calc(var(--tile-lg-w) + 2px))!important}}@media (orientation:portrait) and (width<=600px){.me{padding-inline:8px}.game:not(.table-expanded){--tile-lg-w:calc((100vw - 16px - 12px - 12px) / 13);--tile-lg-h:calc(var(--tile-lg-w) * 1.38)}.game:not(.table-expanded) .rack{column-gap:1px;padding-inline:6px}}.group-owner{opacity:.75;font-size:9px;line-height:11px}.swap-target{color:#dce8dcb3;font-size:10px;line-height:1.15}.table-view-toggle{place-items:center;width:44px;height:44px;padding:0;display:grid}.middle>.table-view-toggle{width:44px}.hand-pill,.team-score,.kafa-chip{white-space:nowrap}@media (width<=420px){.scorebar{gap:6px}.team-score{gap:5px;padding:4px 8px}.team-score b{font-size:14px}.team-name{font-size:12px}.kafa-chip{padding:1px 5px;font-size:10px}}@media (orientation:landscape) and (height<=560px){.opp-top .badge{margin-left:6px}}.opp-left .avatar,.opp-right .avatar{flex-direction:column;justify-content:center;align-items:center;gap:1px;line-height:1;display:flex}.opp-left .avatar-count,.opp-right .avatar-count{min-width:0;color:var(--ink-dim);background:0 0;border:0;padding:0;font-size:9px;position:static}@media (orientation:landscape) and (height<=560px){.opp-left .avatar,.opp-right .avatar{width:34px;height:34px}}.chat-btn{position:relative}.chat-unread{background:var(--accent);min-width:18px;height:18px;color:var(--accent-ink);text-align:center;border-radius:9px;padding:0 4px;font-size:11px;font-weight:800;line-height:18px;position:absolute;top:-4px;right:-4px}.avatar-tap{cursor:pointer;-webkit-tap-highlight-color:transparent}.avatar-tap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.avatar-gift{filter:drop-shadow(0 1px 1px #00000080);pointer-events:none;font-size:16px;line-height:1;position:absolute;bottom:-6px;left:-6px}.speech{z-index:30;background:var(--tile-face);color:#1d1d1d;text-align:left;overflow-wrap:anywhere;pointer-events:none;border-radius:12px;width:max-content;max-width:min(220px,46vw);padding:6px 10px;font-size:13px;font-weight:600;line-height:1.25;position:absolute;box-shadow:0 6px 18px #00000059}.speech-top{top:calc(100% + 8px);left:50%;translate:-50%}.speech-left{top:50%;left:calc(100% + 8px);translate:0 -50%}.speech-right{top:50%;right:calc(100% + 8px);translate:0 -50%}.speech-bottom{bottom:0;left:50%;translate:-50%}.my-social{z-index:30;pointer-events:none;width:24px;height:24px;position:absolute;bottom:8px;left:50%;translate:-50%}.my-social .avatar-gift{font-size:20px;bottom:0;left:0}.my-social .speech{bottom:28px}.gift-pop{z-index:40;background:color-mix(in srgb, var(--felt-edge) 88%, transparent);border:1px solid var(--line);color:var(--ink);white-space:nowrap;pointer-events:none;border-radius:16px;align-items:center;gap:10px;padding:10px 16px;font-size:14px;display:flex;position:absolute;top:38%;left:50%;translate:-50% -50%;box-shadow:0 12px 30px #00000073}.gift-pop-icon{font-size:34px;line-height:1}.sheet-back{z-index:200;background:#00000059;justify-content:flex-end;display:flex;position:fixed;inset:0}.chat-sheet{width:min(360px,100%);height:100%;padding:max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) 14px;background:var(--panel-solid);border-left:1px solid var(--line);flex-direction:column;gap:10px;display:flex;overflow:hidden;box-shadow:-18px 0 50px #00000073}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h2{margin:0;font-size:18px}.sheet-head .icon-btn{font-size:22px;line-height:1}.sheet-sub{color:var(--ink-dim);justify-content:space-between;align-items:center;margin:6px 0 0;font-size:13px;font-weight:650;display:flex}.chat-log{overscroll-behavior:contain;background:#00000038;border-radius:12px;flex:auto;min-height:60px;margin:0;padding:8px 10px;font-size:14px;line-height:1.4;list-style:none;overflow-y:auto}.chat-log li+li{margin-top:4px}.chat-log b{color:var(--team1);font-weight:650}.chat-log .chat-mine b{color:var(--team0)}.chat-emoji{font-size:18px}.chat-emojis,.chat-quick{scrollbar-width:none;overscroll-behavior-x:contain;flex:none;gap:6px;display:flex;overflow-x:auto}.chat-emojis::-webkit-scrollbar{display:none}.chat-quick::-webkit-scrollbar{display:none}.chat-emojis button{cursor:pointer;background:#ffffff0f;border:0;border-radius:10px;flex:none;width:44px;height:44px;font-size:20px}.chat-emojis button:active,.chat-quick button:active,.gift-item:active:not(:disabled){transform:scale(.96)}.chat-quick .chip{white-space:nowrap;border:1px solid var(--line);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;background:#ffffff0d;flex:none;font-size:13px}.chat-input{flex:none;gap:8px;display:flex}.chat-input input{border:1px solid var(--line);min-width:0;min-height:44px;color:var(--ink);font:inherit;background:#00000040;border-radius:10px;flex:1;padding:0 12px;font-size:16px}.player-sheet{overscroll-behavior:contain;border-bottom-left-radius:16px;align-self:flex-start;height:auto;max-height:100%;overflow-y:auto}.gift-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.gift-item{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;transition:transform .14s var(--ease-out);background:#ffffff0d;border-radius:12px;justify-items:center;gap:2px;padding:10px 6px;font-size:13px;display:grid}.gift-item small{color:var(--ink-dim)}.gift-item:disabled{opacity:.45;cursor:default}.gift-icon{font-size:28px;line-height:1.1}@media (prefers-reduced-motion:reduce){.gift-item,.chat-emojis button{transition:none}}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-arabic-wght-normal-CGnJ-sf6.woff2)format("woff2-variations");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-cyrillic-ext-wght-normal-BjodpZir.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-cyrillic-wght-normal-DveCct9I.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-hebrew-wght-normal-BIkpbuMU.woff2)format("woff2-variations");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-latin-ext-wght-normal-OacczzuJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-latin-wght-normal-CnQIisVs.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}body{background:#0a1611}.tile{font-family:Rubik Variable,system-ui,sans-serif;font-weight:700}:root{--red:#d7262b;--blue:#1f5fcf;--yellow:#df9800;--black:#1b1b1b}.felt{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(120% 95% at 50% 42%,#14683f 0%,#0f5534 55%,#093a23 100%);border-radius:22px;margin:4px 6px 0;box-shadow:inset 0 0 0 7px #6b4220,inset 0 0 0 8px #8a5a2f,inset 0 0 0 10px #3a210d,inset 0 14px 34px #00000073,inset 0 -10px 26px #00000059}.felt:before{display:none}.tile:not(.tile-back){background:#fbf6e8;box-shadow:0 0 0 .5px #5a461e4d,0 3px #d8cdae,0 4px #b6a67c,0 5px 7px #0000004d}.tile-selected:not(.tile-back){box-shadow:0 0 0 2px var(--accent), 0 3px 0 #d8cdae, 0 4px 0 #b6a67c, 0 10px 14px #0006}.tile-warn:not(.tile-back){box-shadow:0 0 0 2px var(--danger), 0 3px 0 #d8cdae, 0 5px 7px #0000004d}.avatar{box-shadow:0 0 0 2px color-mix(in srgb, var(--team) 70%, transparent), 0 4px 10px #0006;background:#12241c}.rack{background:linear-gradient(#ffffff1a,#0000 14%),repeating-linear-gradient(90deg,#0000 0 7px,#00000012 7px 8px,#ffffff08 8px 15px,#0000000d 15px 17px),linear-gradient(#8a5a30,#6a4021 45%,#4a2b14);border:1px solid #2e1a0a;box-shadow:inset 0 1px #ffffff29,0 8px 18px #00000073}.rack-slot{background:0 0;border-bottom:3px solid #1e100673}.me{background:linear-gradient(#0d1d16,#0a1611)}.btn-primary{background:linear-gradient(#f4c94b,#e2a92b);border:0;box-shadow:0 3px #a5760f,0 5px 10px #0000004d}.btn:not(.btn-primary):not(.btn-danger){background:#1b3429;border-color:#2c4a3c;box-shadow:0 3px #0b1712}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #0b1712}.avatar,.opp-left .avatar,.opp-right .avatar{box-shadow:0 0 0 1px color-mix(in srgb, var(--team) 65%, transparent), 0 4px 10px #0006;background:linear-gradient(#22322b,#131e19);border-radius:9px}.opp-active .avatar{box-shadow:0 0 0 2px var(--accent), 0 4px 12px #00000073}.opp-left .avatar,.opp-right .avatar{height:42px}.opp .badge{color:var(--ink-dim);background:0 0;padding:0;font-size:10px}.opp .badge-pair{color:#d6c8ff}.group-owner{height:7px;padding:3px 0 0 5px;font-size:0;line-height:0}.group-owner:before{opacity:.85;width:5px;height:5px;margin:0}.info-line .mode-label{display:none}.info-line .mode-label+.chip{border-left:0}.pile{box-shadow:none;background:0 0;border:1px dashed #ffffff1a}.pile:has(.tile){border-color:#0000}.pile-take{border:2px solid var(--accent)}.deck-count{color:#6b5a33;z-index:2;pointer-events:none;background:0 0;border:0;place-items:center;width:100%;height:100%;padding:0;font-family:Rubik Variable,system-ui,sans-serif;font-size:14px;font-weight:700;display:grid;inset:0 auto auto 0}.deck .tile-back:after{display:none}.group .tile-sm .tile-num,.center-stack .tile .tile-num,.pile .tile .tile-num{letter-spacing:-.06em}.group .tile-sm{font-size:22px}@media (orientation:landscape) and (height<=560px){.group .tile-sm{font-size:21px}.middle>.table-view-toggle{z-index:2;border-radius:8px;grid-area:info;place-self:center end;width:44px;height:30px;min-height:30px;position:relative}.middle>.table-view-toggle:after{content:"";position:absolute;inset:0 0 -3px}.middle>.center-stack{gap:6px;padding-bottom:0}.center-stack .indicator{padding:2px}}.table-expanded .group .tile-sm{font-size:25px}:is(.pile-take,.pile-take:has(.tile)){border:2px solid var(--accent)}.opp{position:relative}.opp>.opp-hand[data-place]{opacity:0;pointer-events:none;width:0;height:0;display:block;position:absolute;top:10px;left:50%;overflow:visible}.opp>.opp-hand[data-place] .tile{margin:0;position:absolute;top:0;left:-6px}.self-pair{background:color-mix(in srgb, var(--pair) 35%, transparent);color:#e6dcff;vertical-align:1px;white-space:nowrap;border-radius:999px;margin-right:8px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.action-discard:disabled{color:#f4efe24d;box-shadow:none;background:#f4efe208;border-color:#0000}.actions .sorter{background:0 0;border:1px solid #f4efe21a;border-radius:10px;overflow:hidden}.sorter button{color:#f4efe2b3;box-shadow:none;background:0 0;font-weight:600}.sorter button+button{border-left:1px solid #f4efe21a}@media (orientation:landscape) and (height<=560px){.game:not(.table-expanded) .action-discard{grid-column:1/-1}.game:not(.table-expanded) .actions:is(:has(.action-confirm),:has(.action-extra)) .action-discard{grid-column:2}.game:not(.table-expanded) .action-extra{grid-area:2/1}}.start{background:radial-gradient(120% 90% at 30% 45%,#14583a 0%,#0d3a27 45%,#08241a 100%)}.start h1{letter-spacing:0;font-family:Rubik Variable,system-ui,sans-serif;font-weight:700}.start-brand .fan{--tile-lg-w:48px;--tile-lg-h:66px;gap:9px;margin-top:22px}.start-brand .fan .tile-lg{width:var(--tile-lg-w);height:var(--tile-lg-h);font-size:calc(var(--tile-lg-w) * .62)}.start-brand .fan-tile .tile{box-shadow:0 3px #cfc3a4,0 10px 18px #00000059}.start-play{background:#081e15b8;border-color:#f4efe217;box-shadow:0 18px 40px #0000004d}.start-panel select,.start-panel input{font:inherit;font-size:16px}.start-panel .btn-big{min-height:52px;padding:0 18px;font-size:17px;font-weight:700}@media (width<=640px){.start-brand .fan{--tile-lg-w:42px;--tile-lg-h:58px}}@media (orientation:landscape) and (height<=560px){.start-panel h2{display:none}.start-panel .field input,.start-panel select{height:42px;min-height:42px}}.team-score.team-leading{box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--accent) 70%, transparent);border-radius:999px}.score-breakdown{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:6px 0 4px;font-size:13px}.score-breakdown th,.score-breakdown td{border-bottom:1px solid var(--line);text-align:right;padding:7px 8px}.score-breakdown thead th{border-bottom-width:2px;font-size:12px;font-weight:700}.score-breakdown tbody th{text-align:left;color:var(--ink-dim);font-weight:500}.score-breakdown tbody th small{color:var(--ink-faint);font-size:10px;display:block}.score-breakdown .score-total th,.score-breakdown .score-total td{color:var(--ink);border-bottom:0;font-size:15px}.score-lead{color:var(--accent);margin:6px 0 10px;font-weight:700}.score-lead small{color:var(--ink-dim);font-weight:400}.score-kafa{color:var(--accent);font-size:10px;display:block}.score-history .score-how{color:var(--ink-dim);text-align:left;font-size:11px}.score-history th:last-child{text-align:left}@media (orientation:landscape) and (height<=560px){.score-breakdown th,.score-breakdown td{padding:4px 8px}.score-lead{margin:4px 0 6px}}.rack-trial .tile{outline:2px dashed var(--accent);outline-offset:1px}.pile-trying>.tile,.pile-trying>.pile-drag{opacity:.35}.pile-drag{touch-action:none;cursor:grab}.pile-dragging{opacity:.35}.match-options label{min-width:84px}.support{gap:8px;margin:14px 0 4px;display:grid}.support h3{margin:6px 0 0;font-size:14px}.support small{color:var(--ink-dim);font-size:12px}.support-buy,.support-rewards,.support-use{gap:6px;display:grid}.support-rewards{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.support-use{grid-template-columns:1fr 1fr;align-items:center}.support-thanks,.support-msg{color:var(--accent);margin:0;font-weight:600}.supporter-badge{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--accent);border-radius:999px;margin-top:6px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.start{position:relative}.start-account{top:max(10px, env(safe-area-inset-top));right:max(12px, var(--inset-r));z-index:2;position:absolute}.account-chip{min-height:40px;color:var(--ink);font:inherit;cursor:pointer;background:#081e15b3;border:1px solid #f4efe224;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-weight:650;display:inline-flex}.account-chip.account-daily{border-color:var(--accent)}.account-chips{color:var(--accent);font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:inline-flex}.chip-dot{background:radial-gradient(circle at 35% 35%,#ffe28a,#d39a1c);border-radius:50%;width:12px;height:12px;display:inline-block;box-shadow:inset 0 0 0 2px #00000026}.account-gift{background:var(--accent);color:#2b2100;border-radius:999px;padding:1px 8px;font-size:11px}.account-panel{gap:10px;display:grid}.account-panel h2{margin:0}.account-balance{align-items:center;gap:6px;margin:0;font-size:18px;display:flex}.account-dev,.account-rename{align-items:end;gap:8px;display:flex}.account-dev input{border:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--ink);font:inherit;border-radius:9px;flex:1;padding:8px;font-size:16px}.account-rename .field{flex:1}.btn-apple{color:#fff;background:#000;border-color:#000}.btn-google{color:#1f1f1f;background:#fff;border-color:#dadce0}.account-delete p{color:var(--ink-dim);margin:0}.start-game{color:var(--accent);letter-spacing:.04em;margin:2px 0 0;font-size:15px;font-weight:700}.action-finish{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 55%, transparent), 0 3px 0 #a5760f}@media (orientation:landscape) and (height<=560px){.game:not(.table-expanded) .action-finish{grid-area:1/1/auto/-1}}
