@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./rubik-arabic-wght-normal-B1cAZTnW.woff2) format("woff2-variations");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,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+10EFD-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(./rubik-cyrillic-ext-wght-normal-CmWdqlJJ.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,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(./rubik-cyrillic-wght-normal-B2b851D6.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./rubik-hebrew-wght-normal-ByHZ5yRs.woff2) format("woff2-variations");unicode-range:U+0590-05FF,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(./rubik-latin-ext-wght-normal-dLedyG89.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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(./rubik-latin-wght-normal-CfpeRlx2.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0e1624;--surface: #172235;--surface-2: #213049;--border: #2d3d5a;--border-input: #7183a6;--text: #f4efe4;--text-muted: #a9b3c6;--accent: #ffb020;--on-accent: #1c1404;--danger: #ff6b6b;--success: #43d39e;--warning: #ffd166;--focus: #7cc4ff;--card-face: #fbf6ea;--card-ink: #141821;--card-back: #1d2a44;--card-red: #e23d3d;--card-yellow: #f2b705;--card-green: #1e9355;--card-blue: #2c74d9;--card-pink: #e0418f;--card-teal: #0fa3a0;--card-orange: #ee6c25;--card-purple: #7d55e8;--card-wild: #141821;--font-sans: "Rubik Variable", Rubik, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-xs: 12px;--leading-xs: 16px;--weight-xs: 500;--text-sm: 14px;--leading-sm: 20px;--weight-sm: 400;--text-base: 16px;--leading-base: 24px;--weight-base: 400;--text-lg: 20px;--leading-lg: 28px;--weight-lg: 600;--text-xl: 28px;--leading-xl: 34px;--weight-xl: 700;--text-display: 44px;--leading-display: 48px;--weight-display: 800;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-card: 10px;--radius-pill: 999px;--shadow-card: 0 2px 0 rgba(0,0,0,.25), 0 6px 14px rgba(0,0,0,.35);--shadow-lift: 0 10px 24px rgba(0,0,0,.45);--shadow-pop: 0 18px 48px rgba(0,0,0,.55);--motion-fast: .12s;--motion-base: .22s;--motion-deal: .32s;--motion-ease: cubic-bezier(.2,.8,.2,1);--motion-spring: cubic-bezier(.34,1.56,.64,1);--card-w: 84px;--card-h: 126px}@media (max-width: 720px){:root{--card-w: 62px;--card-h: 93px}}@media (prefers-reduced-motion: reduce){:root{--motion-fast: 0ms;--motion-base: 0ms;--motion-deal: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}#root{padding:var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) var(--safe-area-inset-right, env(safe-area-inset-right, 0px)) var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)) var(--safe-area-inset-left, env(safe-area-inset-left, 0px))}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1{font-size:var(--text-xl);line-height:var(--leading-xl);font-weight:var(--weight-xl);margin:0}h2{font-size:var(--text-lg);line-height:var(--leading-lg);font-weight:var(--weight-lg);margin:var(--space-6) 0 var(--space-3);display:flex;align-items:center;gap:var(--space-2)}p{margin:0 0 var(--space-3)}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.muted{color:var(--text-muted)}.small{font-size:var(--text-sm);line-height:var(--leading-sm)}.error{color:var(--danger)}.row{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.row-between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.spacer,.grow{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;background:var(--surface-2);font-weight:600;cursor:pointer;transition:transform var(--motion-fast) var(--motion-ease),filter var(--motion-fast)}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.secondary{background:var(--surface-2);border-color:var(--border)}.btn.ghost{background:transparent}.btn.danger{background:var(--danger);color:var(--card-ink)}.btn.sm{min-height:32px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn.lg{min-height:52px;font-size:var(--text-lg)}.screen{min-height:100%;display:flex;flex-direction:column}.screen.center{align-items:center;justify-content:center}.screen-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border)}.screen-body{width:100%;max-width:640px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-8)}.screen-body.wide{max-width:1200px}.field{display:flex;flex-direction:column;gap:var(--space-2);border:0;padding:0;margin:0}.field>span,.field>legend{font-weight:600;margin-bottom:var(--space-1)}input[type=text],input:not([type]),.field input{min-height:48px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border-input);background:var(--surface);color:var(--text);font:inherit}.code-input{font-size:var(--text-xl)!important;letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:var(--space-2)}.avatar-pick{display:grid;place-items:center;padding:var(--space-1);border-radius:var(--radius-pill);background:transparent;border:3px solid transparent;cursor:pointer}.avatar-pick.on{border-color:var(--accent)}.avatar{border-radius:var(--radius-pill);flex:none;object-fit:cover}.avatar-fallback{display:inline-grid;place-items:center;color:var(--card-face);font-weight:700;text-shadow:0 1px 1px rgb(0 0 0 / .35)}.home{padding:var(--space-4);gap:var(--space-6)}.home-head{display:flex;justify-content:space-between;align-items:center}.profile-chip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);cursor:pointer}.hero{text-align:center;margin-top:var(--space-6)}.logo{font-size:var(--text-display);line-height:var(--leading-display);font-weight:var(--weight-display);letter-spacing:-.02em;margin-bottom:var(--space-2)}.logo:after{content:"";display:inline-block;width:.5em;height:.72em;margin-left:.15em;border-radius:.08em;background:var(--accent);transform:rotate(12deg);box-shadow:var(--shadow-card)}.logo-img{max-width:min(420px,90%)}.home-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-3);width:100%;max-width:820px;margin:0 auto}.big-action{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);text-align:left;cursor:pointer;transition:transform var(--motion-fast) var(--motion-ease)}.big-action:hover{transform:translateY(-2px)}.big-action span{display:flex;flex-direction:column}.big-action small{color:var(--text-muted)}.big-action.primary{background:var(--accent);color:var(--on-accent);border-color:transparent}.big-action.primary small{color:var(--on-accent);opacity:.8}.filters{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4)}.chip-btn{min-height:36px;padding:0 var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;cursor:pointer}.chip-btn.on{background:var(--text);color:var(--bg)}.variant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.variant-card{display:flex;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);text-align:left;cursor:pointer;transition:transform var(--motion-fast) var(--motion-ease)}.variant-card:hover{transform:translateY(-2px);border-color:var(--border-input)}.variant-cover{flex:none;width:96px;display:grid;place-items:center}.variant-cover img{width:96px;height:128px;object-fit:cover;border-radius:var(--radius-md)}.variant-text{display:flex;flex-direction:column;gap:var(--space-1)}.tags{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-1)}.chip,.badge{display:inline-flex;align-items:center;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-muted);font-size:var(--text-xs);line-height:20px;font-weight:var(--weight-xs);white-space:nowrap}.badge.team{background:var(--accent);color:var(--on-accent)}.glossary{list-style:none;padding:0;display:grid;gap:var(--space-3)}.glossary li{display:flex;gap:var(--space-3);align-items:flex-start}.glossary p{margin:0}.stepper{display:flex;align-items:center;gap:var(--space-4)}.stepper output{font-size:var(--text-xl);font-weight:700;min-width:2ch;text-align:center}.segmented{display:flex;flex-wrap:wrap;gap:var(--space-1);padding:var(--space-1);background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border)}.segmented button{flex:1;min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-sm);border:0;background:transparent;cursor:pointer;white-space:nowrap}.segmented button.on{background:var(--accent);color:var(--on-accent);font-weight:600}.segmented button:disabled{opacity:.4}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer}.toggle-row span{display:flex;flex-direction:column}.toggle-row.locked{opacity:.7;cursor:default}.switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:48px;height:28px;flex:none;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border-input);position:relative;cursor:pointer;transition:background var(--motion-base)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:var(--radius-pill);background:var(--text);transition:transform var(--motion-base) var(--motion-ease)}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(20px);background:var(--on-accent)}.lobby{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:var(--space-5)}.join-card,.seats-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.join-card{text-align:center}.room-code{font-size:var(--text-display);line-height:var(--leading-display);font-weight:var(--weight-display);letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--accent)}.qr{border-radius:var(--radius-md);margin:var(--space-3) auto;display:block}.link-btn{background:none;border:0;color:var(--focus);cursor:pointer;word-break:break-all;font-size:var(--text-sm);display:inline-flex;gap:var(--space-1);align-items:center}.seat-list,.room-list{list-style:none;padding:0;margin:0 0 var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.seat-list li{display:flex;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-2)}.seat-list li.empty{background:transparent;border:1px dashed var(--border);color:var(--text-muted);justify-content:center}.seat-list li.offline{opacity:.5}.team-btn.t0{background:var(--card-blue);color:var(--card-face)}.team-btn.t1{background:var(--card-red);color:var(--card-face)}.seats-card .btn.lg{width:100%;margin-top:var(--space-4)}.room-tile{width:100%;display:flex;gap:var(--space-4);align-items:center;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left}.room-tile strong{font-variant-numeric:tabular-nums;color:var(--accent)}.card{--w: var(--card-w);--h: var(--card-h);--tone: var(--card-wild);position:relative;flex:none;width:var(--w);height:var(--h);border-radius:var(--radius-card);border:3px solid var(--card-face);background:var(--tone) center / cover no-repeat;box-shadow:var(--shadow-card);display:grid;place-items:center;padding:0;color:var(--card-ink);-webkit-user-select:none;user-select:none;contain:layout style;transition:transform var(--motion-base) var(--motion-spring)}.card.has-art{border:0}.card-sm{--w: calc(var(--card-w) * .74);--h: calc(var(--card-h) * .74)}.card-xs{--w: 26px;--h: 39px;border-width:1.5px;border-radius:4px;box-shadow:none}.card-red{--tone: var(--card-red)}.card-yellow{--tone: var(--card-yellow)}.card-green{--tone: var(--card-green)}.card-blue{--tone: var(--card-blue)}.card-pink{--tone: var(--card-pink)}.card-teal{--tone: var(--card-teal)}.card-orange{--tone: var(--card-orange)}.card-purple{--tone: var(--card-purple)}.card-dark:not(.has-art){border-color:var(--card-ink)}.card .window{width:66%;aspect-ratio:1;border-radius:22%;background:var(--card-face);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;box-shadow:inset 0 -3px #00000014}.card.has-art .window{background:transparent;box-shadow:none}.window.quartered{background:conic-gradient(var(--card-red) 0 25%,var(--card-yellow) 0 50%,var(--card-green) 0 75%,var(--card-blue) 0)}.window.quartered-dark{background:conic-gradient(var(--card-pink) 0 25%,var(--card-teal) 0 50%,var(--card-orange) 0 75%,var(--card-purple) 0)}.window.quartered .glyph,.window.quartered .action-icon,.window.quartered-dark .glyph,.window.quartered-dark .action-icon{color:var(--card-face);filter:drop-shadow(0 1px 1px rgb(0 0 0 / .5))}.glyph{font-size:calc(var(--w) * .38);font-weight:800;font-variant-numeric:tabular-nums}.glyph-small{font-size:calc(var(--w) * .2);margin-top:2px}.action-icon,.action-img{width:50%;height:50%}.card-xs .glyph{font-size:11px}.card-xs .glyph-small,.card-xs .corner{display:none}.corner{position:absolute;color:var(--card-face);display:grid;place-items:center;line-height:0}.card-yellow .corner,.card-teal .corner,.card-orange .corner{color:var(--card-ink)}.corner.tl{top:6px;left:6px}.corner.br{bottom:6px;right:6px;transform:rotate(180deg)}.chosen-dot{position:absolute;bottom:-10px;left:50%;translate:-50% 0;width:24px;height:24px;border-radius:var(--radius-pill);background:var(--chosen, var(--card-wild));color:var(--card-face);display:grid;place-items:center;border:2px solid var(--card-face)}.card-back{background:var(--card-back) center / cover no-repeat;border-color:var(--card-face);display:grid;place-items:center}.back-mark{width:34%;height:34%;border-radius:18%;background:var(--accent);transform:rotate(12deg);box-shadow:-6px 4px 0 var(--card-face),-12px 8px 0 var(--border-input)}.card-xs .back-mark{box-shadow:none}button.card{cursor:pointer}button.card:disabled{cursor:default}.card.is-playable{transform:translateY(-10px);box-shadow:0 0 0 3px var(--accent),var(--shadow-lift)}.card.is-playable:hover,.card.is-playable:focus-visible{transform:translateY(-20px)}.card.is-dim:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:#0e162480;pointer-events:none}.just-played{animation:land var(--motion-deal) var(--motion-spring)}@keyframes land{0%{transform:translateY(-40px) rotate(-8deg) scale(1.08);opacity:0}}.table-screen{min-height:100%;display:grid;grid-template-rows:auto auto 1fr auto;grid-template-columns:1fr minmax(180px,240px);grid-template-areas:"top top" "opp opp" "center log" "me me";background:radial-gradient(ellipse at center,var(--surface-2),var(--bg) 70%) center / cover no-repeat;overflow:hidden}.table-screen.side-dark{background-image:radial-gradient(ellipse at center,color-mix(in srgb,var(--card-purple) 30%,var(--bg)),var(--bg) 70%)}.table-top{grid-area:top;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);flex-wrap:wrap}.table-title{display:flex;flex-direction:column;line-height:1.2}.chips{display:flex;flex-wrap:wrap;gap:var(--space-1);list-style:none;margin:0 0 0 auto;padding:0}.opponents{grid-area:opp;display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-2) var(--space-4)}.seat{position:relative;min-width:150px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 85%,transparent);border:2px solid var(--border);contain:layout style}.seat.active{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent)}.seat.teammate{border-style:dashed}.seat.eliminated{opacity:.4}.seat-head{display:flex;align-items:center;gap:var(--space-2)}.seat-info{display:flex;flex-direction:column;line-height:1.2;min-width:0}.seat-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}.seat-count{font-size:var(--text-sm);color:var(--text-muted)}.mini-hand{display:flex;margin-top:var(--space-2);padding-left:10px;min-height:39px}.mini-hand .card{margin-left:-14px}.called-tag{position:absolute;top:-10px;right:8px;background:var(--accent);color:var(--on-accent);font-size:var(--text-xs);font-weight:800;padding:0 var(--space-2);border-radius:var(--radius-pill)}.catch{position:absolute;inset:auto 8px -14px auto;animation:pulse .9s infinite}.clock{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:700;color:var(--accent)}.clock.low{color:var(--danger)}.emote-bubble{position:absolute;top:-24px;left:50%;translate:-50% 0;font-size:32px;animation:pop 3s var(--motion-ease) forwards}@keyframes pop{0%{transform:scale(.4);opacity:0}10%{transform:scale(1.1);opacity:1}80%{opacity:1}to{transform:translateY(-16px);opacity:0}}.center{grid-area:center;position:relative;display:flex;align-items:center;justify-content:center;gap:var(--space-8);min-height:200px}.direction{position:absolute;color:var(--border);pointer-events:none;transition:transform var(--motion-base)}.pile{position:relative;background:none;border:0;padding:0;display:grid;justify-items:center}.draw-pile{cursor:pointer}.draw-pile:disabled{cursor:default}.draw-pile:not(:disabled) .card{box-shadow:0 0 0 3px var(--focus),var(--shadow-lift)}.draw-pile.pulse .card{animation:pulse 1.2s infinite}.pile-count{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.current-color{margin-top:var(--space-4);display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--tone, var(--surface-2));color:var(--card-face);font-size:var(--text-sm);font-weight:600}.c-red{--tone: var(--card-red)}.c-yellow{--tone: var(--card-yellow);color:var(--card-ink)!important}.c-green{--tone: var(--card-green)}.c-blue{--tone: var(--card-blue)}.c-pink{--tone: var(--card-pink)}.c-teal{--tone: var(--card-teal);color:var(--card-ink)!important}.c-orange{--tone: var(--card-orange);color:var(--card-ink)!important}.c-purple{--tone: var(--card-purple)}@keyframes pulse{50%{transform:scale(1.05)}}.log{grid-area:log;list-style:none;margin:0;padding:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);display:flex;flex-direction:column;justify-content:flex-end;gap:var(--space-1)}.log li:last-child{color:var(--text)}.me{grid-area:me;padding:var(--space-2) var(--space-4) var(--space-4);background:linear-gradient(transparent,color-mix(in srgb,var(--bg) 85%,transparent) 30%)}.me-bar{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.me-name{font-weight:600}.turn-tag{background:var(--accent);color:var(--on-accent);font-weight:700;font-size:var(--text-sm);padding:0 var(--space-3);border-radius:var(--radius-pill)}.me .clock{margin-left:0}.last-card{min-width:112px;min-height:52px;border-radius:var(--radius-pill);background:var(--surface-2);font-weight:800;letter-spacing:.04em}.last-card.ready{background:var(--accent);color:var(--on-accent);animation:pulse 1s infinite}.hand{display:flex;justify-content:center;padding:24px var(--space-2) var(--space-2);overflow-x:auto;scrollbar-width:thin}.hand .card+.card{margin-left:calc(var(--w) * -.28)}.hand .card:hover{z-index:1}.prompt{max-width:640px;margin:0 auto var(--space-2);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-md)}.prompt p{margin-bottom:var(--space-2)}.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.swatch{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3);border:0;border-radius:var(--radius-md);background:var(--tone);color:var(--card-face);cursor:pointer;font-weight:600;transition:transform var(--motion-fast)}.swatch:hover{transform:scale(1.04)}.swatches.big .swatch{padding:var(--space-5) var(--space-3)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:var(--space-4);background:#050910bd;animation:fade var(--motion-base)}.modal{width:min(480px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:var(--space-4);animation:rise var(--motion-base) var(--motion-ease)}.modal h2{margin:0}.targets{display:flex;flex-direction:column;gap:var(--space-2)}.target{justify-content:flex-start}.target .muted{margin-left:auto}.results{text-align:center;align-items:center}.crown{color:var(--accent)}.scores{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.scores th,.scores td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--border)}.scores th{color:var(--text-muted);font-weight:500;font-size:var(--text-sm)}.scores tr.win td{color:var(--accent);font-weight:700}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(16px);opacity:0}}.toast,.reconnect{position:fixed;left:50%;bottom:var(--space-6);translate:-50% 0;z-index:20;padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);background:var(--text);color:var(--bg);font-weight:600;box-shadow:var(--shadow-pop);animation:rise var(--motion-base) var(--motion-ease)}.reconnect{top:var(--space-4);bottom:auto;background:var(--warning);color:var(--card-ink)}.emotes{position:relative}.emote-menu{position:absolute;bottom:110%;right:0;display:grid;grid-template-columns:repeat(4,44px);gap:var(--space-1);padding:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.emote-btn{width:44px;height:44px;font-size:24px;background:none;border:0;border-radius:var(--radius-sm);cursor:pointer}.emote-btn:hover{background:var(--surface-2)}.based-on{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--accent);font-weight:600}.chip.hot{background:var(--accent);color:var(--on-accent)}.chip-area{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.chip-area .chips{margin:0;justify-content:flex-end}.current-color.lock{margin-top:var(--space-2)}.download{align-self:center;text-decoration:none}@media (max-width: 720px){.table-screen{grid-template-columns:1fr;grid-template-areas:"top" "opp" "center" "log" "me"}.chips:not(.modifiers){display:none}.chip-area{margin-left:0;align-items:flex-start}.opponents{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start}.seat{min-width:0;flex:none;padding:var(--space-2)}.seat .mini-hand{display:none}.seat-name{max-width:76px}.opponents{gap:var(--space-2);padding-top:var(--space-3)}.center{gap:var(--space-6);min-height:160px}.log{max-height:3.5em;overflow:hidden;padding-top:0}.log li:not(:last-child){display:none}.hand{justify-content:flex-start}.lobby{grid-template-columns:1fr}.last-card{min-width:96px}}.card.has-art .corner{top:11.3%;left:12.5%;width:11%;aspect-ratio:1;translate:-50% -50%;color:var(--card-ink)}.card.has-art .corner.br{top:88.7%;left:87.5%;bottom:auto;right:auto}.card.has-art .corner svg,.card.has-art .corner img{width:100%;height:100%}.card.has-art .window{width:66%;aspect-ratio:399 / 447}.card-wild.has-art .glyph{color:var(--card-face);text-shadow:0 2px 0 rgb(0 0 0 / .45)}.card-wild.has-art .action-img{filter:invert(1) drop-shadow(0 1px 1px rgb(0 0 0 / .5))}.card-back.has-art,.card-back[style*=background-image]{border:0}.symbol-img{display:block}.variant-cover{width:120px}.variant-cover img{width:120px;height:80px}a.btn{color:var(--text);text-decoration:none}a.btn.primary{color:var(--on-accent)}.seat-who{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-1)}.seat-tagline{flex-basis:100%;font-size:var(--text-xs);line-height:var(--leading-xs)}.autoplay-note{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border-color:var(--focus)}.autoplay-note p{margin:0;display:flex;align-items:center;gap:var(--space-2)}.tutorial{min-height:100%;display:flex;flex-direction:column;padding:var(--space-4);background:radial-gradient(ellipse at 50% 30%,var(--surface-2),var(--bg) 70%)}.tut-head,.tut-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;max-width:720px;margin:0 auto}.tut-body{flex:1;width:100%;max-width:640px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-4);animation:rise var(--motion-base) var(--motion-ease)}.tut-body .lead{color:var(--text-muted);font-size:var(--text-lg);line-height:1.5}.tut-visual{min-height:150px;display:grid;place-items:center}.tut-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-3)}.tut-row .card.is-playable{transform:translateY(-8px)}.tut-pulse{animation:pulse 1.2s infinite}.tut-code{font-size:var(--text-xl)}.tut-dots{display:flex;gap:var(--space-2)}.tut-dots span{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--border)}.tut-dots span.on{width:22px;background:var(--accent)}.howto-banner{width:100%;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--accent);text-align:left;cursor:pointer}.howto-banner span{display:flex;flex-direction:column}.howto-banner svg{color:var(--accent);flex:none}.rules-list{display:grid;gap:var(--space-2);padding-left:var(--space-5)}@media (orientation: landscape) and (max-height: 540px){:root{--card-w: 52px;--card-h: 78px}.table-screen{grid-template-columns:1fr minmax(150px,200px);grid-template-areas:"top top" "opp opp" "center log" "me me"}.table-top{padding:var(--space-1) var(--space-3)}.table-title{flex-direction:row;gap:var(--space-2);align-items:baseline}.table-title .muted:first-of-type{display:none}.chip-area .chips:not(.modifiers){display:none}.opponents{flex-wrap:nowrap;overflow-x:auto;justify-content:center;gap:var(--space-2);padding:0 var(--space-3)}.seat{min-width:0;padding:var(--space-1) var(--space-2)}.seat .mini-hand{display:none}.seat .avatar{width:28px;height:28px}.center{min-height:0;gap:var(--space-6)}.direction svg{width:80px;height:80px}.current-color{margin-top:var(--space-1)}.log{font-size:var(--text-xs);line-height:var(--leading-xs);padding:var(--space-1) var(--space-2)}.me{padding:0 var(--space-3) var(--space-1)}.me-bar{margin-bottom:0}.last-card{min-height:40px}.hand{padding-top:14px}.prompt{padding:var(--space-2) var(--space-3)}.prompt p{margin-bottom:var(--space-1)}.tut-visual{min-height:90px}.tut-body{gap:var(--space-2)}.tut-body h1{font-size:var(--text-lg)}.tut-body .lead{font-size:var(--text-base)}}.table-top{background:linear-gradient(#0e1624e0,#0e162400)}.hotspot-help{display:grid;justify-items:center;gap:var(--space-2);margin-top:var(--space-3)}.hotspot-help svg{color:var(--accent)}.hotspot-help p{margin:0}.warn{color:var(--warning)}:root{--pile-card-w: clamp(78px, 21vw, 112px);--hand-card-w: clamp(62px, 17vw, 92px)}.card-pile{--w: var(--pile-card-w);--h: calc(var(--pile-card-w) * 1.5)}.card-hand{--w: var(--hand-card-w);--h: calc(var(--hand-card-w) * 1.5)}.card .idx{position:absolute;top:21%;left:12.5%;translate:-50% 0;z-index:1;font-weight:800;font-size:calc(var(--w) * .22);line-height:1;color:var(--card-face);text-shadow:0 1px 2px rgb(0 0 0 / .7);display:grid;place-items:center}.card-yellow .idx,.card-teal .idx,.card-orange .idx{color:var(--card-ink);text-shadow:0 1px 0 rgb(255 255 255 / .5)}.tbl{height:100%;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at center,var(--surface-2),var(--bg) 70%) center / cover no-repeat}.tbl.side-dark{background-image:radial-gradient(ellipse at center,color-mix(in srgb,var(--card-purple) 30%,var(--bg)),var(--bg) 70%)}.icon-btn{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--radius-md);border:1px solid var(--border);background:#172235e6;color:var(--text);cursor:pointer}.tbl-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:linear-gradient(#0e1624f0,#0e1624a6)}.tbl-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.tbl-title strong,.tbl-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbl-title span{font-size:var(--text-xs);color:var(--text-muted)}.tbl-mods{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-1);list-style:none;margin:0;padding:var(--space-1) var(--space-3) 0}.tbl-opps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-2);padding:var(--space-2) var(--space-3);width:100%;max-width:1100px;margin:0 auto}.opp{position:relative;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-2);padding:6px 8px;border-radius:var(--radius-md);background:#172235eb;border:2px solid var(--border)}.opp.active{border-color:var(--accent);box-shadow:0 0 0 3px #ffb0204d}.opp.exposed{border-color:var(--danger)}.opp.teammate{border-style:dashed}.opp.eliminated{opacity:.45}.opp-avatar{position:relative;line-height:0}.opp-bot{position:absolute;right:-3px;bottom:-3px;width:17px;height:17px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border-input);display:grid;place-items:center;color:var(--text)}.opp-info{min-width:0;display:flex;flex-direction:column;gap:2px}.opp-name{font-weight:600;font-size:var(--text-sm);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opp-meta{display:flex;align-items:center;gap:var(--space-1);min-height:16px;font-size:var(--text-xs)}.opp-meta .clock{margin:0}.opp-last{background:var(--accent);color:var(--on-accent);font-weight:800;font-size:10px;line-height:16px;padding:0 6px;border-radius:var(--radius-pill)}.opp-count{min-width:30px;height:40px;padding:0 4px;border-radius:6px;background:var(--card-back);border:2px solid var(--card-face);display:grid;place-items:center;font-weight:800;font-size:var(--text-base);font-variant-numeric:tabular-nums}.opp-catch{grid-column:1 / -1;min-height:34px;border:0;border-radius:var(--radius-sm);background:var(--danger);color:var(--card-ink);font-weight:800;display:flex;align-items:center;justify-content:center;gap:var(--space-1);cursor:pointer;animation:pulse .9s infinite}.opp .mini-hand{grid-column:1 / -1;margin:0}.opp .emote-bubble{top:-18px}.tbl-center{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.turn-banner{display:flex;align-items:center;gap:var(--space-2);max-width:100%;padding:4px var(--space-3) 4px 4px;border-radius:var(--radius-pill);background:#172235f0;border:1px solid var(--border)}.turn-banner strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.turn-banner.mine{background:var(--accent);color:var(--on-accent);border-color:transparent;animation:glow 1.6s ease-in-out infinite}.turn-banner.mine .clock{color:var(--on-accent)}.turn-banner .clock{margin:0}.turn-banner .dir{display:grid;opacity:.8}@keyframes glow{50%{box-shadow:0 0 0 6px #ffb02040}}.tbl-piles{display:flex;align-items:flex-start;justify-content:center;gap:clamp(20px,8vw,56px)}.tbl-piles .pile-count{font-size:var(--text-sm)}.last-play{display:flex;align-items:center;gap:var(--space-2);max-width:100%;padding:4px var(--space-3) 4px 4px;border-radius:var(--radius-pill);background:#0e1624c7;border:1px solid var(--border);color:var(--text-muted);font-size:var(--text-sm);cursor:pointer}.last-play span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tbl-alerts{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);width:100%}.tbl-alerts:empty{display:none}.alert{width:100%;max-width:440px;margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:0;font:inherit;font-weight:700;text-align:center;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--tone, var(--surface-2));color:var(--card-face)}.alert.bad{background:var(--danger);color:var(--card-ink);cursor:pointer}.alert.hot{background:var(--accent);color:var(--on-accent)}.pulse-soft{animation:pulse 1.1s infinite}.tbl-me{padding:0 var(--space-2) var(--space-2);background:linear-gradient(transparent,#0e1624eb 25%)}.tbl-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-1) 0;max-width:1100px;margin:0 auto}.tbl-bar .btn,.tbl-bar .hand-count{white-space:nowrap}.hand-count{font-size:var(--text-xs);color:var(--text-muted)}.tbl-bar .last-card{min-width:104px;min-height:48px}.last-card.done{opacity:.8}.last-card.ready{box-shadow:0 0 0 4px #ffb02059}.tbl-hand{display:flex;justify-content:safe center;padding:26px var(--space-1) var(--space-1);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.tbl-hand .card{flex:none}.tbl-hand .card+.card{margin-left:var(--overlap, 0px)}.tbl-hand .card:hover,.tbl-hand .card:focus-visible{z-index:2}.flash{position:fixed;left:50%;top:38%;z-index:12;translate:-50% -50%;max-width:calc(100% - 32px);padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);font-size:var(--text-lg);font-weight:800;text-align:center;box-shadow:var(--shadow-pop);pointer-events:none;animation:flash 1.7s var(--motion-ease) forwards}.flash.hot{background:var(--accent);color:var(--on-accent)}.flash.bad{background:var(--danger);color:var(--card-ink)}.flash.info{background:var(--text);color:var(--bg)}@keyframes flash{0%{opacity:0;transform:scale(.7)}12%{opacity:1;transform:scale(1.06)}20%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-12px)}}.modal-backdrop.sheet{align-items:end;padding:0}.modal-backdrop.sheet .modal{width:100%;max-width:560px;max-height:86vh;overflow-y:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:calc(var(--space-6) + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))}@media (min-width: 720px){.modal-backdrop.sheet{align-items:center;padding:var(--space-4)}.modal-backdrop.sheet .modal{border-radius:var(--radius-lg)}}.menu-sheet .chips{display:flex!important;margin:0;justify-content:flex-start}.menu-list{display:flex;flex-direction:column;gap:var(--space-2)}.menu-item{display:flex;align-items:center;gap:var(--space-3);min-height:52px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);font-weight:600;text-align:left;cursor:pointer}.menu-item.danger{color:var(--danger)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.history-list li{display:flex;align-items:center;gap:var(--space-2);min-height:32px;font-size:var(--text-sm);color:var(--text-muted)}.history-list li.play{color:var(--text)}.history-list li:first-child{color:var(--accent);font-weight:700}.overlay-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;overflow-y:auto;background:var(--bg);padding-top:var(--safe-area-inset-top, env(safe-area-inset-top, 0px))}@media (max-width: 480px){.tbl-opps{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:6px;padding:var(--space-1) var(--space-2)}.opp{grid-template-columns:auto minmax(0,1fr);gap:2px 6px;padding:5px 6px}.opp .avatar{width:30px;height:30px}.opp-count{position:absolute;top:-6px;right:-6px;min-width:26px;height:32px;font-size:var(--text-sm)}.opp-info{padding-right:14px}.opp-name{font-size:var(--text-xs)}.autoplay-btn .label{display:none}.tbl-bar .btn.sm{min-height:44px;padding:0 var(--space-3)}.hand-count{display:none}}@media (orientation: landscape) and (max-height: 540px){:root{--pile-card-w: 58px;--hand-card-w: 54px}.tbl-head{padding:2px var(--space-3)}.tbl-head .icon-btn{width:36px;height:36px}.tbl-opps{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));padding:2px var(--space-3)}.opp{padding:3px 6px}.opp .avatar{width:26px;height:26px}.opp-count{height:30px;min-width:26px;font-size:var(--text-sm)}.tbl-center{flex-direction:row;flex-wrap:wrap;gap:var(--space-2) var(--space-5);padding:2px var(--space-3)}.tbl-alerts{width:auto}.tbl-hand{padding-top:16px}.tbl-bar .last-card{min-height:40px}}.resume-banner{width:100%;max-width:820px;margin:0 auto;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);border:2px solid var(--accent);background:var(--surface);text-align:left;cursor:pointer;animation:glow 1.6s ease-in-out infinite}.resume-banner span{display:flex;flex-direction:column}.resume-banner svg{color:var(--accent)}@media (orientation: portrait) and (max-width: 480px){:root{--hand-card-w: clamp(64px, 19vw, 92px)}.opp-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;line-height:1.15}.tbl-me{padding-bottom:var(--space-3)}}@media (orientation: portrait) and (max-width: 480px){.tbl-opps{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.opp-name{overflow-wrap:break-word;font-size:var(--text-sm)}}.menu-sheet>.row-between,.history-sheet>.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
