@font-face{font-family:Archivo Narrow;src:url(/fonts/archivo-narrow-latin.woff2)format("woff2-variations");font-weight:500 700;font-style:normal;font-display:swap}:root{--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Archivo Narrow", "Liberation Sans Narrow", "Arial Narrow", system-ui, sans-serif;--card-w:clamp(42px, 11vw, 82px);--card-h:calc(var(--card-w) * 1.42);--duration:.18s;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--step-00:.75rem;--step-0:.85rem;--step-1:.95rem;--step-2:1.2rem;--step-3:1.45rem;--step-4:1.85rem;--deck-cap:4;--deck-fan:.011;--deck-ratio:calc(1.42 + 2 * var(--deck-cap) * var(--deck-fan));--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-pill:999px;--bg:#eae7df;--surface:#fbfaf7;--surface-2:#f2efe8;--border:#c9c2b2;--edge:#b3a993;--text:#191d1a;--text-dim:#5c6159;--felt:#1d6152;--felt-2:#164c41;--accent:#9a4c08;--accent-text:#fff8ef;--danger:#ab3125;--warn:#875710;--good:#236b47;--good-badge:#237049;--good-badge-ink:#fff;--selected-halo:#fff;--selected-ring:#101a24;--card-ink:#16202b;--card-face:#fff;--card-edge-width:1px;--band-low:#dbeafe;--band-low-edge:#4a7fc1;--band-mid:#d8f0dd;--band-mid-edge:#3f8d5c;--band-high:#fbdedd;--band-high-edge:#bf4a45;--band-high-hatch:#bf4a4529;--band-wild:#ffb968;--band-wild-2:#f28c3c;--band-wild-edge:#c56a1e;--band-wild-ink:#3a1e05;--shadow:0 1px 2px #101a241a, 0 6px 16px -6px #101a2429;--shadow-lift:0 2px 4px #101a241f, 0 14px 28px -12px #101a2442;--card-back:linear-gradient(140deg, #3a5a8c, #24385c)}:root[data-theme=dark]{--bg:#131614;--surface:#1e221d;--surface-2:#262b25;--border:#363c34;--edge:#454c42;--text:#eceee8;--text-dim:#a3ab9f;--accent:#f0a35c;--accent-text:#241203;--danger:#ef7a6c;--warn:#e0a03e;--good:#5cc38d;--good-badge:#5cc38d;--good-badge-ink:#08140d;--selected-halo:#101a24;--selected-ring:#f2f7fc;--shadow:0 1px 2px #0000005c, 0 6px 18px -8px #00000080;--shadow-lift:0 2px 6px #0006, 0 16px 32px -14px #0009}[data-cards=classic]{--card-ink:#16202b;--card-face:#fff;--card-edge-width:1px;--band-low:#dbeafe;--band-low-edge:#4a7fc1;--band-mid:#d8f0dd;--band-mid-edge:#3f8d5c;--band-high:#fbdedd;--band-high-edge:#bf4a45;--band-high-hatch:#bf4a4529;--band-wild:#ffb968;--band-wild-2:#f28c3c;--band-wild-edge:#c56a1e;--band-wild-ink:#3a1e05}[data-mat=felt]{--felt:#1d6152;--felt-2:#164c41;--mat-ink:#eaf2f8;--mat-ink-dim:#c2d4de}[data-cards=ink]{--card-ink:#1d222b;--card-face:#fff;--card-edge-width:5px;--band-low:#fff;--band-low-edge:#1d5fa8;--band-mid:#fff;--band-mid-edge:#1c6b40;--band-high:#fff;--band-high-edge:#a8322c;--band-high-hatch:#a8322c1a;--band-wild:#fff;--band-wild-2:#fff6ea;--band-wild-edge:#b4640f;--band-wild-ink:#7a3f05}[data-cards=bold] .card[data-band=low]{--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Ccircle cx='2' cy='2' r='1.1' fill='%23fff' fill-opacity='0.16'/%3E%3Ccircle cx='7' cy='7' r='1.1' fill='%23fff' fill-opacity='0.16'/%3E%3C/svg%3E")}[data-cards=bold] .card[data-band=mid]{--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M0 0h8v1H0zM0 0v8h1V0z' fill='%23fff' fill-opacity='0.16'/%3E%3C/svg%3E")}[data-cards=bold] .card[data-band=high]{--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M-1 8l10-10M-1 3l10-10M-1 13l10-10' stroke='%23fff' stroke-opacity='0.16' stroke-width='1.4'/%3E%3C/svg%3E")}[data-cards=bold]{--card-ink:#fff;--card-face:#1a5089;--card-edge-width:1px;--band-low:#1a5089;--band-low-edge:#10375f;--band-mid:#186039;--band-mid-edge:#0f4527;--band-high:#96271f;--band-high-edge:#6d1a14;--band-high-hatch:#ffffff29;--band-wild:#8f4207;--band-wild-2:#7a3806;--band-wild-edge:#572804;--band-wild-ink:#fff}[data-cards=paper]{--card-ink:#33291d;--card-face:#fbf5e9;--card-edge-width:1px;--band-low:#dfe6e4;--band-low-edge:#5c7d84;--band-mid:#e2e6d2;--band-mid-edge:#6b7a45;--band-high:#f2ddd2;--band-high-edge:#9d5540;--band-high-hatch:#9d554024;--band-wild:#e9c98f;--band-wild-2:#d9ac63;--band-wild-edge:#a97c31;--band-wild-ink:#40300f}[data-cards=contrast] .card[data-band=low]{--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Ccircle cx='2' cy='2' r='1.1' fill='%23fff' fill-opacity='0.2'/%3E%3Ccircle cx='7' cy='7' r='1.1' fill='%23fff' fill-opacity='0.2'/%3E%3C/svg%3E")}[data-cards=contrast] .card[data-band=mid]{--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M0 0h8v1H0zM0 0v8h1V0z' fill='%23fff' fill-opacity='0.2'/%3E%3C/svg%3E")}[data-cards=contrast] .card[data-band=high]{--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M-1 8l10-10M-1 3l10-10M-1 13l10-10' stroke='%23fff' stroke-opacity='0.2' stroke-width='1.4'/%3E%3C/svg%3E")}[data-cards=original] .card[data-band=low]{--pattern:repeating-conic-gradient(from 8deg at 50% 44%, #ffffff1f 0deg 7deg, #fff0 7deg 20deg);background-image:var(--pattern), radial-gradient(circle at 50% 44%, #1f6099, var(--band-low) 78%)}[data-cards=original] .card[data-band=mid]{--pattern:repeating-conic-gradient(from 3deg at 50% 44%, #ffffff1f 0deg 2.5deg, #fff0 2.5deg 8deg);background-image:var(--pattern), radial-gradient(circle at 50% 44%, #146a37, var(--band-mid) 78%)}[data-cards=original] .card[data-band=high]{--pattern:repeating-conic-gradient(from 0deg at 50% 44%, #ffffff24 0deg 3deg, #fff0 3deg 6deg, #ffffff24 6deg 9deg, #fff0 9deg 24deg);background-image:var(--pattern), radial-gradient(circle at 50% 44%, #ad2d26, var(--band-high) 78%)}[data-cards=original] .card.wild{--pattern:repeating-conic-gradient(from 0deg at 50% 44%, #ffffff4d 0deg 11deg, #fff0 11deg 22deg)}[data-cards=original] .card[data-band],[data-cards=original] .card.wild{box-shadow:inset 0 0 0 2px #fff, var(--shadow);border-color:#fff}[data-cards=original] .card .value{font-size:54cqw;font-weight:800}[data-cards=original] .card .corner{font-weight:800}[data-cards=original]{--card-ink:#fff;--card-face:#1a5691;--card-edge-width:1px;--band-low:#1a5691;--band-low-edge:#103a63;--band-mid:#0f5f30;--band-mid-edge:#0a4321;--band-high:#9e2822;--band-high-edge:#6f1b16;--band-high-hatch:#ffffff29;--band-wild:#f5a623;--band-wild-2:#e08c14;--band-wild-edge:#b06a08;--band-wild-ink:#3a1e05}[data-cards=contrast]{--card-ink:#fff;--card-face:#14181f;--card-edge-width:6px;--band-low:#14181f;--band-low-edge:#4c9ef5;--band-mid:#14181f;--band-mid-edge:#46c47c;--band-high:#14181f;--band-high-edge:#ff6f68;--band-high-hatch:#ff6f6838;--band-wild:#14181f;--band-wild-2:#14181f;--band-wild-edge:#ffa53d;--band-wild-ink:#fff}:root{--mat-ink:#eaf2f8;--mat-ink-dim:#c2d4de}[data-mat=midnight]{--felt:#1e2c55;--felt-2:#131c39;--mat-ink:#e7ecfb;--mat-ink-dim:#bcc8e8}[data-mat=walnut]{--felt:#6b4526;--felt-2:#4a2e18;--mat-ink:#fbeee0;--mat-ink-dim:#e2cbb1}[data-mat=slate]{--felt:#414c56;--felt-2:#2b333b;--mat-ink:#eef3f7;--mat-ink-dim:#c8d2da}[data-mat=clay]{--felt:#8a4232;--felt-2:#5f2b20;--mat-ink:#fdece5;--mat-ink-dim:#edc7b8}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;accent-color:var(--accent)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-animations=off]{--duration:0s}:root[data-animations=fast]{--duration:90ms}@media (prefers-reduced-motion:reduce){:root{--duration:0s}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:15px/1.55 var(--font-body);overscroll-behavior:none;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;margin:0}table,.card,.stat-value,.pile .count,.depth{font-variant-numeric:tabular-nums}button,.card,.pile{touch-action:manipulation}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:0;margin:0 0 .5em;font-weight:700;line-height:1.14}h1{font-size:var(--step-4)}h2{font-size:var(--step-3)}h3{font-size:var(--step-2)}h4{font-size:var(--step-0);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}a{color:var(--accent)}.app{flex-direction:column;min-height:100dvh;display:flex}.app-board{height:100dvh;overflow:hidden}.topbar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top));background:linear-gradient(180deg, var(--felt) 0%, var(--felt-2) 100%);color:var(--mat-ink,#eef7f2);z-index:20;border-bottom:1px solid #00000059;display:flex;position:sticky;top:0}.topbar .brand{min-height:44px;font-family:var(--font-display);font-size:var(--step-2);letter-spacing:.06em;text-transform:uppercase;color:var(--mat-ink,#eef7f2);align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.topbar .turn-note{min-width:0;color:var(--mat-ink,#eef7f2);text-overflow:ellipsis;white-space:nowrap;background:#00000038;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:7px;padding:5px 11px;font-size:.86rem;font-weight:600;display:inline-flex;overflow:hidden}.topbar .turn-note .turn-dot{background:var(--seat-colour,var(--text-dim));border-radius:50%;flex:none;width:9px;height:9px}.topbar .turn-note .turn-who{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.topbar .turn-note.mine{color:var(--good-badge-ink);background:var(--good-badge);border-color:var(--good-badge)}.topbar .turn-note.mine .turn-dot{background:var(--good-badge-ink);animation:1.6s ease-in-out infinite turn-note-pulse}@keyframes turn-note-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--good-badge-ink) 70%, transparent)}60%{box-shadow:0 0 0 5px #0000}}:root[data-animations=off] .topbar .turn-note.mine .turn-dot{animation:none}.topbar nav{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.topbar nav a{min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--mat-ink-dim,#bcd8cd);font-family:var(--font-display);font-size:var(--step-1);letter-spacing:.02em;align-items:center;text-decoration:none;display:inline-flex}.topbar nav a:hover{color:var(--mat-ink,#eef7f2)}.topbar nav a.active{color:var(--mat-ink,#eef7f2);box-shadow:inset 0 -2px 0 0 var(--band-wild,#ffb968);border-radius:0;font-weight:700}.page{width:100%;max-width:980px;padding:var(--space-4) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));flex:1;margin:0 auto}.page.wide{max-width:1400px}button,.btn{font:inherit;font-family:var(--font-display);font-size:var(--step-1);letter-spacing:.01em;border:1px solid var(--edge);background:var(--surface);color:var(--text);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;min-height:44px;transition:background var(--duration), border-color var(--duration), transform var(--duration);font-weight:600}button:hover:not(:disabled):not(.card){background:var(--surface-2)}button:active:not(:disabled):not(.card){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.card:focus-visible,.pile:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}button.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}button.small{padding:var(--space-1) var(--space-3);min-height:44px;font-size:var(--step-0)}@media (width>=900px) and (pointer:fine){button,.btn,input,select{min-height:36px;padding:6px 12px}button.small{min-height:30px;padding:4px 10px}input,select{padding:7px 11px}}input,select,textarea{font:inherit;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--edge);background:var(--surface);color:var(--text);width:100%;min-height:44px;font-size:max(16px,1rem)}label,.field-label{color:var(--text-dim);margin-bottom:4px;font-size:.85rem;display:block}.field{margin-bottom:var(--space-3)}.row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.grid2{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.card-panel{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow);margin-bottom:var(--space-5);position:relative}.card-panel:before,.card-panel:after{content:"";border:1px solid var(--edge);border-radius:var(--radius-lg);background:var(--surface);z-index:-1;pointer-events:none;position:absolute;inset:0}.card-panel:after{transform:translate(3px,3px)}.card-panel:before{opacity:.75;transform:translate(6px,6px)}.card-panel.flat:before,.card-panel.flat:after{display:none}.card-panel>h2:first-child,.card-panel>h3:first-child{margin-top:0}.muted{color:var(--text-dim);font-size:var(--step-1)}.on-mat-dim{color:var(--mat-ink-dim)}.offline-banner{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.error-banner{background:color-mix(in srgb, var(--danger) 14%, var(--surface));border:1px solid color-mix(in srgb, var(--danger) 40%, var(--border));color:var(--danger);padding:var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-3)}.badge{padding:2px var(--space-2);border-radius:var(--radius-pill);font-family:var(--font-display);font-size:var(--step-00);letter-spacing:.05em;text-transform:uppercase;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);font-weight:700;display:inline-block}.badge.turn{background:var(--good-badge);color:var(--good-badge-ink);border-color:#0000}.badge.live{background:var(--accent);color:var(--accent-text);border-color:#0000}.card{width:var(--card-w);height:calc(var(--card-w) * 1.42);border-radius:var(--radius);background:var(--card-face);box-shadow:inset 0 1px 0 #ffffff80, var(--shadow);-webkit-user-select:none;user-select:none;font-family:var(--font-display);color:var(--card-ink);transition:transform var(--duration), box-shadow var(--duration), outline-color var(--duration);border:1px solid #0000002e;flex:none;justify-content:center;align-items:center;padding:0;font-weight:800;display:flex;position:relative;container-type:size}.card.selectable:not(.selected):hover{box-shadow:inset 0 1px 0 #ffffff80, var(--shadow-lift);transform:translateY(-2px)}.card .value{font-size:46cqw;line-height:1}.card .corner{font-size:26cqw;font-weight:700;line-height:1;position:absolute;top:5cqw;left:6cqw}.card[data-band],.card.wild{background-position:50%;background-repeat:repeat}.card[data-band=low]{--edge:var(--band-low-edge);--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Ccircle cx='2' cy='2' r='1.1' fill='%23000' fill-opacity='0.13'/%3E%3Ccircle cx='7' cy='7' r='1.1' fill='%23000' fill-opacity='0.13'/%3E%3C/svg%3E");background-image:var(--pattern), linear-gradient(160deg, var(--band-low), var(--card-face));border-color:var(--band-low-edge)}.card[data-band=mid]{--edge:var(--band-mid-edge);--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M0 0h8v1H0zM0 0v8h1V0z' fill='%23000' fill-opacity='0.1'/%3E%3C/svg%3E");background-image:var(--pattern), linear-gradient(160deg, var(--band-mid), var(--card-face));border-color:var(--band-mid-edge)}.card[data-band=high]{--edge:var(--band-high-edge);--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M-1 8l10-10M-1 3l10-10M-1 13l10-10' stroke='%23000' stroke-opacity='0.13' stroke-width='1.6'/%3E%3C/svg%3E");background-image:var(--pattern), linear-gradient(160deg, var(--band-high), var(--card-face));border-color:var(--band-high-edge)}.card.wild{--edge:var(--band-wild-edge);--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath d='M7 0v14M0 7h14M2 2l10 10M12 2L2 12' stroke='%23fff' stroke-opacity='0.22' stroke-width='1.1'/%3E%3C/svg%3E");background-image:var(--pattern), linear-gradient(140deg, var(--band-wild), var(--band-wild-2));color:var(--band-wild-ink);border-color:var(--band-wild-edge)}.card.wild-as{border-color:var(--band-wild-edge);--edge:var(--band-wild-edge);box-shadow:inset 0 0 0 1.5px var(--band-wild-edge)}.card.wild-as .corner{color:var(--band-wild-edge);font-size:1.05em}.card.back,.card[data-band]:after,.card.wild:after{content:"";background:linear-gradient(to right, var(--edge) 0 var(--card-edge-width), transparent var(--card-edge-width));border-radius:inherit;pointer-events:none;position:absolute;inset:0}.card.wild .value{text-align:center;letter-spacing:.5px;font-size:30cqw}.card.back{background:var(--card-back);color:#0000;border-color:#00000059}.card.back:after{content:"";border:1px dashed #ffffff52;border-radius:6px;position:absolute;inset:5px}.card.empty{box-shadow:none;background:#ffffff0f;border:1px dashed #fff6}button.card{min-height:0}.card.selectable{cursor:pointer}.card.selected{z-index:5;box-shadow:0 0 0 2px var(--selected-halo), 0 0 0 5px var(--selected-ring), var(--shadow-lift);transform:translateY(-10px)}.card.selected:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.card.playable:before{content:"";background:var(--good);border-radius:50%;width:9px;height:9px;position:absolute;top:4px;right:4px;box-shadow:0 0 0 2px #ffffffb3}.card.small{--card-w:clamp(28px, 7vw, 44px)}.board[data-seats="2"]{--card-w:min(12vw, 10vh, 96px)}.board[data-seats="3"]{--card-w:min(11.5vw, 9.5vh, 90px)}.board[data-seats="4"]{--card-w:min(11vw, 9vh, 86px)}main{flex-direction:column;flex:1;min-height:0;display:flex}.game-shell{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.board-with-panel{flex-direction:column;flex:1;min-height:0;display:flex}.board{padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:repeating-linear-gradient(45deg, #00000009 0 1px, transparent 1px 3px), repeating-linear-gradient(-45deg, #ffffff07 0 1px, transparent 1px 3px), radial-gradient(120% 90% at 50% -10%, transparent 40%, #00000047 100%), radial-gradient(circle at 50% 26%, var(--felt), var(--felt-2));flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;box-shadow:inset 0 1px #ffffff14}.board .opponents{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-gutter:stable;flex-wrap:nowrap;flex:none;align-items:flex-start;gap:5px;max-height:32%;padding-bottom:4px;display:flex;overflow:auto;container-type:inline-size}.opponent{border:1px solid #ffffff24;border-left:var(--seat-edge-w) solid var(--seat-colour,transparent);border-radius:var(--radius-lg);--seat-pad:9px;--seat-edge-w:4px;--seat-chrome:calc(2 * var(--seat-pad) + var(--seat-edge-w) + 1px);padding:7px var(--seat-pad);color:var(--mat-ink);--mini-gap:3px;--seat-room:calc((100cqw - (var(--opponents,3) - 1) * 5px) / var(--opponents,3) - 1px);--mini-w:min(clamp(24px, 6vw, 40px), 4.2vh);background:#00000038;flex:none;width:fit-content;font-size:.92em}.opponent .name{align-items:center;gap:5px;width:0;min-width:100%;margin-bottom:5px;font-size:.85rem;font-weight:700;display:flex;overflow:hidden}.opponent .name .who{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.opponent .mini{flex-direction:row;align-items:flex-end;gap:5px}.opponent .mini .card.small{--card-w:calc(var(--mini-w) * 1.35)}.opponent .card.small,.opponent .discard-row .card.small{--card-w:var(--mini-w)}.opponent .discard-row{--pile-gap:var(--mini-gap)}.opponent .discard-stack,.opponent .stock-stack{width:var(--mini-w);--stack-cap:4}.opponent .stat{white-space:nowrap}.opponent.active{border-color:var(--good);background:color-mix(in srgb, var(--good) 52%, #0000004d);box-shadow:0 0 0 3px var(--good), 0 0 0 6px #00000080, 0 0 22px -2px color-mix(in srgb, var(--good) 70%, transparent)}.opponent.active .name{color:#fff}.opponent.active .stat{color:color-mix(in srgb, #fff 82%, var(--mat-ink-dim))}.opponent.active .stat.stock,.opponent.active .stat.stock strong{color:#fff}.opponent.active{animation:1s ease-out seat-turn}@keyframes seat-turn{0%,to{background:color-mix(in srgb, var(--good) 52%, #0000004d)}40%{background:color-mix(in srgb, var(--good) 82%, #0000004d)}}:root[data-animations=off] .opponent.active{animation:none}.opponent .dot{background:color-mix(in srgb, var(--mat-ink-dim) 55%, transparent);border-radius:50%;flex:none;width:7px;height:7px}.opponent .dot.on{background:var(--good)}.opponent .mini{align-items:flex-end;gap:5px;display:flex}.opponent .stat{font-size:var(--step-00);color:var(--mat-ink-dim)}.opponent .stat.stock{color:var(--mat-ink);line-height:1.15}.opponent .stat.stock strong{font-family:var(--font-display);font-size:var(--step-1);font-variant-numeric:tabular-nums;line-height:1}.opponent .stat strong{text-align:right;font-variant-numeric:tabular-nums;min-width:2ch;display:inline-block}.opponent .stat:not(.stock) strong{font-weight:inherit}.board .build-area{max-height:calc(var(--card-h) + 2 * var(--pile-caption));flex:1 1 0;min-height:0}.board .my-area{flex:2 1 0;min-height:0}.build-area .pile,.build-area .card{aspect-ratio:1/1.42;width:auto;height:100%;max-height:var(--card-h);min-width:0}.build-area{--pile-caption:22px;padding:var(--pile-caption) 4px;scrollbar-width:thin;flex:none;justify-content:center;align-items:center;gap:10px;display:flex;position:relative;overflow:auto hidden}.pile{width:var(--card-w);height:var(--card-h);border-radius:var(--radius);cursor:default;background:#ffffff12;border:1px dashed #ffffff61;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.pile .count{text-align:center;color:var(--mat-ink-dim);font-size:.7rem;position:absolute;bottom:-18px;left:0;right:0}.pile.target{border:2px solid var(--good);background:color-mix(in srgb, var(--good) 22%, transparent);cursor:pointer;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--good) 55%, transparent)}50%{box-shadow:0 0 0 7px #0000}}:root[data-animations=off] .pile.target{animation:none}.pile .needs{text-align:center;color:var(--mat-ink-dim);font-size:.68rem;position:absolute;top:-17px;left:0;right:0}.my-area{background:#0000002e;border-radius:12px;flex-direction:column;flex:auto;gap:8px;min-height:0;padding:8px;display:flex;overflow:hidden}.my-top{flex:3 1 0;justify-content:space-between;align-items:stretch;gap:12px;min-height:0;display:flex;container-type:size}@container (height<=90px){.my-top .zone-note{display:none}}.my-top .zone{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex}.my-top .zone>.zone-label,.my-top .zone>.zone-note{flex:none}.my-top .stock-zone{min-width:calc(var(--card-w) + var(--card-w) * 2 * var(--deck-cap) * var(--deck-fan) + 20px);flex:none}.my-top .discards-zone{flex:auto}.my-top .deck-row,.my-top .discard-row{flex:auto;justify-content:center;align-self:stretch;min-width:0;min-height:0;display:flex;container-type:size}.my-top .deck-row:has(.deck){padding-right:calc(min(100cqh / var(--deck-ratio), 100cqw, var(--card-w)) * 2 * var(--deck-cap) * var(--deck-fan))}.my-top .deck{width:min(calc(100cqh / var(--deck-ratio)), 100cqw, var(--card-w));flex:none;align-self:flex-start;height:auto}.my-top .discard-stack{--slot:calc((100cqw - (var(--discard-cols,4) - 1) * var(--pile-gap)) / var(--discard-cols,4));width:min(calc(100cqh / var(--stack-ratio)), var(--slot), var(--card-w));align-self:flex-start;height:auto}.my-top .deck-row .stock-stack{width:min(calc(100cqh / var(--stack-ratio)), 100cqw, var(--card-w));flex:none;align-self:flex-start;min-width:0;height:auto}.my-area[data-hand=left] .my-top{flex-direction:row-reverse}.zone{flex-direction:column;align-items:center;gap:4px;display:flex}.zone .zone-label{text-transform:uppercase;letter-spacing:.6px;color:var(--mat-ink-dim);font-size:.68rem}.zone .zone-label.stock-count{align-items:baseline;gap:.4em;display:flex}.zone .zone-label.stock-count strong{font-family:var(--font-display);font-size:var(--step-2);font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--mat-ink);text-align:right;min-width:2ch;font-weight:700;line-height:1}.zone .zone-note{color:var(--mat-ink-dim);font-size:.68rem}.stale-link{border:1px solid color-mix(in srgb, var(--warn) 50%, var(--border));background:color-mix(in srgb, var(--warn) 12%, var(--surface));max-width:900px;color:var(--text);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:10px auto;padding:10px 14px;display:flex}.build-label{text-transform:uppercase;letter-spacing:.6px;color:var(--mat-ink);pointer-events:none;font-size:.68rem;position:absolute;bottom:2px;left:12px}.rules-heading{margin:18px 0 8px;font-size:1rem}.rules-heading:first-child{margin-top:0}.rules-steps{margin:0 0 10px;padding-left:22px}.rules-steps li{margin-bottom:7px}.stock-zone{border-radius:var(--radius-lg);background:#00000029;padding:4px 10px 6px;box-shadow:inset 0 1px 3px #00000047}.deck{--deck-share:calc(1.42 / var(--deck-ratio) * 100%);--deck-step:calc(var(--deck-fan) * 100cqw);width:var(--card-w);aspect-ratio:1 / var(--deck-ratio);height:auto;position:relative;container-type:size}.deck:before,.deck:after{content:"";width:100cqw;height:var(--deck-share);border-radius:var(--radius);background:var(--card-face);border:1px solid #00000052;position:absolute;top:0;left:0}.deck:after{transform:translate(calc(min(var(--deck-depth,0), var(--deck-cap)) * var(--deck-step)), calc(min(var(--deck-depth,0), var(--deck-cap)) * var(--deck-step)))}.deck:before{transform:translate(calc(min(var(--deck-depth,0), var(--deck-cap)) * var(--deck-step) * 2), calc(min(var(--deck-depth,0), var(--deck-cap)) * var(--deck-step) * 2))}.deck[style*="--deck-depth: 1"]:before,.deck[style*="--deck-depth: 1"]:after,.deck[style*="--deck-depth: 0"]:before,.deck[style*="--deck-depth: 0"]:after{display:none}.deck>.card{z-index:1;--card-w:100cqw;width:100cqw;height:var(--deck-share);position:absolute;top:0;left:0}.game-shell.my-turn .stock-zone{animation:1.1s ease-out 2 stock-ready}@keyframes stock-ready{0%,to{background:#00000029;box-shadow:inset 0 1px 3px #00000047}50%{background:color-mix(in srgb, var(--good-badge) 26%, #00000029);box-shadow:inset 0 1px 3px #00000047, 0 0 0 3px var(--good-badge)}}:root[data-animations=off] .game-shell.my-turn .stock-zone{animation:none}.discard-row{--pile-gap:max(8px, calc(var(--card-w) * .16));gap:var(--pile-gap);display:flex}.discard-stack,.stock-stack{--stack-cap:6;--stack-fan:.05;--card-share:calc(100% / (1 + var(--stack-cap) * var(--stack-fan)));--stack-ratio:calc(1.42 * (1 + var(--stack-cap) * var(--stack-fan)));width:var(--card-w);aspect-ratio:1 / var(--stack-ratio);background:0 0;border:none;height:auto;min-height:0;padding:0;position:relative;container-type:size}.result-headline{font-family:var(--font-display);font-size:var(--step-2);margin:0 0 var(--space-4);font-weight:700}.result-figures{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.result-who{align-items:center;gap:var(--space-1);display:inline-flex}.add-bot{align-items:center;gap:var(--space-2);flex-wrap:wrap;width:100%;display:flex}.add-bot-label{font-family:var(--font-display);font-size:var(--step-1);margin-right:auto;font-weight:600}.add-bot-level{font-size:var(--step-0);color:var(--text-dim);margin:0;display:inline}.bot-stars{font-size:var(--step-00);letter-spacing:.04em;white-space:nowrap;opacity:.85;flex:none;line-height:1}.bot-stars[data-level=hard]{color:var(--danger);opacity:1}.bot-stars[data-level=medium]{color:var(--warn)}.opponent .bot-stars,.board .bot-stars{color:var(--band-wild)}.opponent .bot-stars[data-level=easy],.board .bot-stars[data-level=easy]{color:var(--mat-ink-dim)}.bot-level{align-items:center;gap:var(--space-1);display:inline-flex}.field .field-help{font-size:var(--step-00);margin:6px 0 0}.watching.came-home{color:var(--mat-ink);font-weight:700}.rule-brief{font-size:var(--step-00);color:var(--text-dim);margin-top:2px;display:block}.switches{gap:var(--space-3);margin:var(--space-3) 0;flex-direction:column;display:flex}.switch>label{align-items:center;gap:var(--space-2);cursor:pointer;margin:0;font-weight:600;display:flex}.switch>label input{flex:none;width:auto;margin:0}.switch>p{margin:2px 0 0 calc(1em + var(--space-2))}.presets{margin-bottom:var(--space-3)}.preset-saved{align-items:stretch;display:inline-flex}.preset-saved>button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.preset-forget{padding-left:var(--space-2);padding-right:var(--space-2);color:var(--text-dim);border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.preset-forget:hover:not(:disabled){color:var(--danger)}.history-players{white-space:normal}.history-players .badge{margin-right:var(--space-2)}.settings-page{max-width:900px}.settings-grid{columns:2;column-gap:var(--space-6)}.settings-grid>.field{break-inside:avoid;width:100%;display:inline-block}@media (width<=700px){.settings-grid{columns:1}}.panel-count{margin-left:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-display);font-size:var(--step-0);font-variant-numeric:tabular-nums;vertical-align:middle;font-weight:700;display:inline-block}.swatch{vertical-align:middle;border:2px solid;border-radius:50%;flex:none;display:inline-block}.swatch-bot{flex:none;line-height:1;display:inline-block}.player-name{align-items:center;gap:6px;display:inline-flex}.colour-picker{flex-wrap:wrap;gap:8px;display:flex}.colour-swatch-btn{cursor:pointer;border:3px solid #0000;border-radius:50%;width:44px;height:44px;min-height:44px;padding:0}.colour-swatch-btn[aria-pressed=true]{border-color:var(--text);transform:scale(1.08)}.mini-discard{flex-direction:column;align-items:center;display:flex;position:relative}.depth{color:var(--mat-ink-dim);font-size:.65rem;line-height:1.2}.stack-depth{color:#fff;letter-spacing:.2px;background:#0a1016e0;border-radius:999px;padding:0 .45em;font-size:max(9px,17cqw);font-weight:700;line-height:1.5;position:absolute;bottom:3%;left:50%;transform:translate(-50%);box-shadow:0 1px 2px #0006}.discard-stack.droppable{cursor:pointer;outline:2px dashed var(--warn);outline-offset:3px;border-radius:var(--radius);background:color-mix(in srgb, var(--warn) 14%, transparent);position:relative}.zone .zone-label.warns{color:var(--warn);font-weight:700}.discard-stack .card,.discard-stack .pile,.stock-stack .card,.stock-stack .pile{--card-w:100cqw;--peek-gap:calc(var(--card-w) * .42);--peek-cap:8;width:100cqw;height:var(--card-share);left:0;top:calc(min(var(--depth,0), var(--stack-cap)) * var(--stack-fan) * var(--card-share));transition:top var(--duration) ease-out, left var(--duration) ease-out;position:absolute}.discards-zone .discard-stack:hover .card,.discards-zone .discard-stack:focus-visible .card,.discards-zone .discard-stack:focus-within .card,[data-peek=on] .discard-stack:hover .card,[data-peek=on] .discard-stack:focus-visible .card,[data-peek=on] .discard-stack:focus-within .card{left:calc((min(var(--depth,0), var(--peek-cap)) - min(var(--pile-depth,1), var(--peek-cap)) + 1) * var(--peek-gap))}.stock-stack:hover .card,.stock-stack:focus-visible .card,.stock-stack:focus-within .card{left:calc(min(var(--depth,0), var(--peek-cap)) * var(--peek-gap))}:is(.my-top:has(.stock-stack:hover),.my-top:has(.stock-stack:focus-within),.stock-zone:has(.stock-stack:hover),.stock-zone:has(.stock-stack:focus-within),.deck-row:has(.stock-stack:hover),.deck-row:has(.stock-stack:focus-within)){overflow:visible}.opponent .stock-stack:hover .card,.opponent .stock-stack:focus-visible .card,.opponent .stock-stack:focus-within .card{left:0;top:calc(var(--depth,0) * .42 * var(--card-share))}:is(.opponent:has(.stock-stack:hover),.opponent:has(.stock-stack:focus-within)){z-index:20;position:relative;overflow:visible}:is(.board .opponents:has(.stock-stack:hover),.board .opponents:has(.stock-stack:focus-within)){overflow:visible}.stock-stack:hover .card.buried,.stock-stack:focus-visible .card.buried,.stock-stack:focus-within .card.buried{opacity:1}.stock-stack:hover,.stock-stack:focus-within{z-index:30}[data-peek=on] .opponent .discard-stack:hover .card,[data-peek=on] .opponent .discard-stack:focus-visible .card,[data-peek=on] .opponent .discard-stack:focus-within .card{left:0;top:calc(var(--depth,0) * .42 * var(--card-share))}.board .opponents:has(.discard-stack:hover){overflow:visible}.board .opponents:has(.discard-stack:focus-within){overflow:visible}.opponent:has(.discard-stack:hover){overflow:visible}.opponent:has(.discard-stack:focus-within){overflow:visible}:is(.opponent:has(.discard-stack:hover),.opponent:has(.discard-stack:focus-within)){z-index:20;position:relative}@keyframes card-dealt{0%{transform:translateY(-14%)rotateY(180deg)}70%{transform:translateY(0)rotateY(0)}85%{transform:translateY(-4%)rotateY(0)}to{transform:translateY(0)rotateY(0)}}.hand-rail{perspective:1100px}@keyframes card-dealt-back{0%,33%{opacity:1}34%,to{opacity:0}}.hand-rail .card.dealt{animation:card-dealt calc(var(--duration,.18s) * 2.6) cubic-bezier(.2, .7, .3, 1) backwards;animation-delay:calc(var(--deal-index,0) * var(--duration,.18s) * .45);transform-origin:50%}.hand-rail .card.dealt:after{content:"";border-radius:inherit;background:var(--card-back);opacity:0;animation:card-dealt-back calc(var(--duration,.18s) * 2.6) linear backwards;animation-delay:calc(var(--deal-index,0) * var(--duration,.18s) * .45);z-index:2;border:1px solid #00000059;position:absolute;inset:-1px}:root[data-animations=off] .hand-rail .card.dealt,:root[data-animations=off] .hand-rail .card.dealt:after{display:revert;animation:none;transform:none}:root[data-animations=off] .hand-rail .card.dealt:after{display:none}@media (prefers-reduced-motion:reduce){.hand-rail .card.dealt{animation:none;transform:none}.hand-rail .card.dealt:after{display:none}}.card-flights{pointer-events:none;z-index:55;position:fixed;inset:0}.card-flight{pointer-events:none;transform-origin:50%;will-change:transform;position:fixed}.card-flight .card{width:100%;height:100%;box-shadow:0 10px 22px #0006}.discard-stack .card.buried,.stock-stack .card.buried{opacity:.86}.discards-zone .discard-stack:hover .card.buried,.discards-zone .discard-stack:focus-visible .card.buried,.discards-zone .discard-stack:focus-within .card.buried,[data-peek=on] .discard-stack:hover .card.buried,[data-peek=on] .discard-stack:focus-visible .card.buried,[data-peek=on] .discard-stack:focus-within .card.buried{opacity:1}.discards-zone .discard-stack:hover,.discards-zone .discard-stack:focus-within,[data-peek=on] .discard-stack:hover,[data-peek=on] .discard-stack:focus-within{z-index:4}@media (width<=700px){.opponent{--mini-w:clamp(20px, 5.2vw, 30px)}.discard-stack .card,.discard-stack .pile,.stock-stack .card,.stock-stack .pile{--peek-cap:5}}.discard-stack:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:var(--radius)}.hand-rail{scrollbar-width:thin;flex:2 1 0;align-items:flex-end;gap:6px;min-height:0;padding:17px 4px 6px;display:flex;overflow-x:auto}.hand-rail .card{aspect-ratio:1/1.42;width:auto;height:100%;max-height:var(--card-h);flex:none;min-width:0}.turn-bar{color:var(--mat-ink);flex-wrap:wrap;flex:none;align-items:center;gap:8px;font-size:.92rem;font-weight:600;display:flex}.turn-status,.turn-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.turn-status{min-width:0}.turn-actions{margin-left:auto}.pending-pill{background:#ffd9a8;border-radius:50%;width:9px;height:9px;animation:1s ease-in-out infinite pending-fade}@keyframes pending-fade{0%,to{opacity:.25}50%{opacity:1}}.draw-pill,.conn-pill{font-size:var(--step-00);border-radius:var(--radius-pill);color:var(--band-wild);border:1px solid color-mix(in srgb, var(--band-wild) 50%, transparent);white-space:nowrap;background:#00000059;padding:3px 9px}.draw-pill{color:var(--mat-ink)}.watching{font-size:var(--step-0);color:var(--mat-ink-dim)}.hint{color:var(--mat-ink-dim);font-size:var(--step-0)}.side-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;max-height:320px;display:flex;overflow:hidden}.side-panel .tabs{border-bottom:1px solid var(--border);display:flex}.side-panel .tabs button{background:var(--surface-2);border:none;border-radius:0;flex:1}.side-panel .tabs button.active{background:var(--surface);font-weight:700}.side-panel .body{flex:1;min-height:120px;padding:10px;font-size:.88rem;overflow-y:auto}.side-panel .composer{border-top:1px solid var(--border);gap:6px;padding:8px;display:flex}.feed-line{border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);color:var(--text-dim);padding:3px 0}.feed-line strong{color:var(--text)}.chat-line{padding:3px 0}.chat-line .who{margin-right:6px;font-weight:700}.overlay{padding:var(--space-5);z-index:60;background:#080e1499;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius-lg);padding:var(--space-5);width:100%;max-width:420px;box-shadow:var(--shadow);max-height:86dvh;overflow-y:auto}.dialog .actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.game-list{margin:0;padding:0;list-style:none}.turn-summary{margin:0 0 var(--space-3)}.seat-name{white-space:nowrap}.game-row{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface);margin-bottom:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.game-row.mine-turn{border-left:4px solid var(--good);padding-left:calc(var(--space-3) - 3px);background:color-mix(in srgb, var(--good) 5%, var(--surface))}.game-row .grow{flex:1;min-width:160px}.game-row .title{font-family:var(--font-display);font-size:var(--step-2);font-weight:700}.table-scroll{overscroll-behavior-x:contain;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--step-1)}th,td{text-align:left;padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--border);vertical-align:middle}th{color:var(--text-dim);font-family:var(--font-display);font-weight:700;font-size:var(--step-00);text-transform:uppercase;letter-spacing:.09em;border-bottom:2px solid var(--edge);white-space:nowrap}.scorepad th+th,.scorepad td+td{text-align:right}.scorepad td+td{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:600}.scorepad tbody td:first-child{font-weight:600}tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}.result-stocks td{vertical-align:middle}.result-stocks .result-stock{text-align:right;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--step-3);white-space:nowrap;width:1%;line-height:1.1}.result-stocks .result-place{width:1%;padding-right:var(--space-3);color:var(--text-dim);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:700}.result-stocks tr.won{background:color-mix(in srgb, var(--accent) 12%, transparent)}.result-stocks tr.won .result-who,.result-stocks tr.won .result-stock,.result-stocks tr.won .result-place{color:var(--text);font-weight:700}.token{background:var(--surface-2);word-break:break-all;border-radius:6px;padding:3px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.qr{image-rendering:pixelated;background:#fff;border-radius:8px;width:190px;height:190px;padding:8px}@media (width>=480px){:root{--card-w:min(clamp(52px, 9.5vw, 88px), 11vh)}}@media (width>=760px){.board{gap:14px;padding:14px 18px}.opponent{--mini-w:min(clamp(24px, 6vw, 40px), 4.2vh, calc((var(--seat-room) - var(--seat-chrome) - (var(--discard-cols,4) - 1) * var(--mini-gap)) / var(--discard-cols,4)));min-width:132px;max-width:var(--seat-room);flex:none;padding:7px 9px;font-size:1em}.opponent .mini{flex-direction:row;align-items:flex-end;gap:5px}.opponent .discard-row .card.small{--card-w:clamp(20px, 3.6vw, 34px)}.build-area{grid-template-columns:repeat(var(--build-cols,4), auto);flex:auto;justify-content:center;row-gap:10px;min-height:0;display:grid;overflow:auto}.my-top{align-items:flex-end}.board-with-panel{grid-template-columns:1fr minmax(260px,320px);align-items:stretch;gap:14px;width:100%;max-width:1400px;margin:0 auto;padding:14px;display:grid}.board{border-radius:14px}.side-panel{height:100%;max-height:none}}@media (width>=760px) and (width<=1000px) and (height>=620px){.board-with-panel{flex-direction:column;grid-template-columns:none;max-width:none;display:flex}.side-panel{flex:none;height:auto;max-height:min(260px,24vh)}}@media (width>=760px){.opponent .stat.stock{font-size:var(--step-1)}.opponent .stat.stock strong{font-size:var(--step-3)}}@media (width>=1200px) and (height>=800px){:root{--card-w:min(9vw, 11.5vh, 116px)}.board[data-seats="2"]{--card-w:min(12vw, 15vh, 152px)}.board[data-seats="3"]{--card-w:min(11vw, 14vh, 142px)}.board[data-seats="4"]{--card-w:min(10vw, 13vh, 132px)}}@media (height<=720px) and (width>=760px){.board{gap:8px;padding:8px}.my-area{gap:4px;padding:4px}.build-area{--pile-caption:16px}.opponent{--seat-pad:7px;padding:4px var(--seat-pad)}.opponent .name{margin-bottom:2px}.opponent{--mini-w:min(clamp(20px, 6vw, 34px), 3.4vh, calc((var(--seat-room) - var(--seat-chrome) - (var(--discard-cols,4) - 1) * var(--mini-gap)) / var(--discard-cols,4)))}}@media (height<=500px) and (orientation:landscape){:root{--card-w:clamp(46px, 13.5vh, 70px)}.board[data-seats="2"]{--card-w:clamp(52px, 17vh, 92px)}.board[data-seats="3"]{--card-w:clamp(52px, 17vh, 88px)}.board[data-seats="4"]{--card-w:clamp(48px, 15vh, 78px)}.board-with-panel{grid-template-columns:1fr;padding:6px}.board{grid-template:"bar bar""opp mine""build mine"minmax(0,1fr)/minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;gap:4px 10px;padding:4px 10px;display:grid}.my-area{flex-direction:column;justify-content:space-evenly;min-height:0;display:flex}.build-area{align-items:center;min-height:0}.turn-bar{grid-area:bar}.board .opponents{flex:none;grid-area:opp;max-height:none;overflow:auto hidden}.board .build-area{min-height:calc(var(--card-h) + 8px)}.build-area{grid-area:build}.my-area{grid-area:mine}.opponent{--seat-pad:7px;padding:4px var(--seat-pad);--mini-w:clamp(18px, 4.4vh, 30px);max-width:none}.opponent .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.build-label{top:0;bottom:auto}.board .opponents{flex:none}.build-area{padding:32px 4px 4px}.board{position:relative}.board .hint{pointer-events:none;max-width:48%;margin:0;position:absolute;bottom:6px;left:14px}.zone .zone-label{margin-bottom:1px;font-size:.6rem}.zone .zone-note{display:none}.stock-zone{padding:2px 6px 4px}.discard-stack .card,.discard-stack .pile,.stock-stack .card,.stock-stack .pile{--peek-cap:4}.deck{margin-bottom:0}.deck:before,.deck:after{display:none}.hand-rail{min-height:calc(var(--card-h) + 8px);padding:6px 4px 2px}.side-panel{display:flex}.board-with-panel{position:relative}.board-with-panel .side-panel:not(.hidden){z-index:6;width:min(340px,62%);box-shadow:var(--shadow-lift);position:absolute;top:0;bottom:0;right:0}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.game-shell.my-turn .board{box-shadow:inset 0 0 0 3px var(--good-badge), inset 0 1px 0 #ffffff14;animation:1.1s ease-out 2 turn-arrived}@keyframes turn-arrived{0%,to{box-shadow:inset 0 0 0 3px var(--good-badge), inset 0 1px 0 #ffffff14}50%{box-shadow:inset 0 0 0 6px var(--good-badge), 0 0 26px -4px var(--good-badge), inset 0 1px 0 #ffffff14}}:root[data-animations=off] .game-shell.my-turn .board{animation:none}.side-panel.hidden{display:none}.board-with-panel.panel-hidden{grid-template-columns:1fr}.panel-open{white-space:nowrap;position:relative}.unread-dot{background:var(--danger);border:2px solid var(--surface);border-radius:50%;width:11px;height:11px;position:absolute;top:-2px;right:-2px}.panel-close{min-height:40px;color:var(--text-dim);background:0 0;border:0;margin-left:auto;padding:0 12px}.panel-close:hover:not(:disabled){color:var(--text);background:0 0}.panel-toggle{text-align:left;width:100%;min-height:44px;color:inherit;background:0 0;border:0;align-items:center;gap:8px;margin:0;padding:0;display:flex}.panel-toggle:hover:not(:disabled){background:0 0}.panel-toggle h3{margin:0}.panel-caret{color:var(--text-dim);width:.9em;font-size:.8rem}.panel-body{padding-top:10px}.style-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;display:grid}.style-option{text-align:left;border-radius:12px;flex-direction:column;align-items:stretch;gap:7px;min-height:0;padding:7px;display:flex}.style-option.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.style-preview{background:radial-gradient(circle at 50% 30%, var(--felt), var(--felt-2));border-radius:9px;justify-content:center;align-items:center;gap:4px;padding:12px 6px;display:flex}.style-preview .card{width:24px;min-width:0;height:34px;box-shadow:none}.style-preview .card .value{font-size:12px}.style-name{padding-left:2px;font-size:.82rem;font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:10px;margin-bottom:6px;display:grid}.stat-tile{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:1px;padding:10px 12px;display:flex}.stat-value{font-size:1.35rem;font-weight:700;line-height:1.1}.stat-label{color:var(--text-dim);font-size:.78rem}.stat-note{color:var(--warn);font-size:.72rem}.seat-row{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);gap:8px;padding:7px 0}.seat-row:last-child{border-bottom:none}@media (width<=700px){.turn-bar{scrollbar-width:none;flex-wrap:nowrap;gap:6px;overflow-x:auto}.turn-bar button.small{padding:5px 8px;font-size:.8rem}.turn-bar>*{flex:none}.stock-zone .zone-note{display:none}.board .opponents{max-height:27%}.side-panel{flex:0 0 min(216px,30vh);max-height:none}.topbar{flex-wrap:nowrap;gap:8px}.topbar:has(.turn-note) .brand{display:none}.topbar nav{flex-wrap:nowrap}.topbar .turn-note{min-width:0}}
