:root{--bg:#10141f;--bg-elevated:#1d2636;--panel:#2c3a4f;--panel-border:#4a5d79;--slate:#3a4a63;--slate-light:#56708f;--ink:#1d1d2b;--text:#fff;--text-dim:#a9bad4;--text-faint:#6b7d98;--accent:#ffcd4d;--accent-dim:#ffcd4d2e;--accent-strong:#ffe08a;--gold-light:#fff3c4;--orange:#ff9a2e;--orange-light:#ffc27a;--danger:#fe5f55;--danger-bg:#fe5f552e;--red-light:#ff9c95;--success:#35bd86;--green-light:#8ce6bf;--blue-light:#6cc8ff;--suit-a:#fe5f55;--suit-b:#009dff;--suit-c:#35bd86;--suit-d:#8e5bff;--card-face:#f5f2ea;--card-back:radial-gradient(circle, #fe5f55 0 22%, transparent 24%), repeating-linear-gradient(45deg, #c33c3c 0 4px, #a82d2d 4px 8px);--radius-sm:8px;--radius:12px;--radius-lg:16px;--chunk:0 0 0 2px var(--ink), 0 5px 0 var(--ink);--shadow-soft:var(--chunk);--shadow-card:0 0 0 2px var(--ink), 4px 5px 0 #00000073;--font-display:"Press Start 2P", "Pixelify Sans", system-ui, sans-serif;--font-body:"Press Start 2P", "Pixelify Sans", system-ui, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font:500 16px/1.4 var(--font-body);font-variant-ligatures:none;font-size-adjust:cap-height .7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{min-height:100svh;margin:0;overflow-x:hidden}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--font-display);margin:0}p{margin:0}button{font:inherit;color:inherit}input{font:inherit}ul{margin:0;padding:0;list-style:none}.bg-swirl{z-index:-1;pointer-events:none;background:var(--bg);position:fixed;inset:0;overflow:hidden}.bg-swirl:before,.bg-swirl:after{content:"";filter:blur(48px);width:160vmax;height:160vmax;margin:-80vmax 0 0 -80vmax;position:absolute;top:50%;left:50%}.bg-swirl:before,.bg-swirl--gold:after{will-change:transform;animation:40s linear infinite bg-swirl-spin}.bg-swirl:before{opacity:.9;background:conic-gradient(#1f6e6b,#1a2c4f,#8a2334,#1f6e6b,#1a2c4f,#8a2334,#1f6e6b)}.bg-swirl:after{opacity:0;background:conic-gradient(#b8860b,#5a3a0a,#ffcd4d,#b8860b,#5a3a0a,#ffcd4d,#b8860b);transition:opacity 1.2s}.bg-swirl--gold:after{opacity:.85}@keyframes bg-swirl-spin{to{transform:rotate(360deg)}}.crt{z-index:100;pointer-events:none;background:repeating-linear-gradient(0deg,#0000001a 0 2px,#0000 2px 4px),radial-gradient(#0000 55%,#0000008c 100%);position:fixed;inset:0}.screen{flex-direction:column;flex:1;display:flex}.join-screen,.lobby-screen,.loading-screen{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;padding:1.5rem 1rem;display:flex}.loading-screen{color:var(--text-dim);text-transform:uppercase;flex-direction:row;gap:.75rem;font-weight:700}.screen-title{text-transform:uppercase;text-align:center;text-shadow:3px 3px 0 var(--ink);font-size:clamp(1.6rem,6vw,2.2rem);font-weight:700}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.75rem;font-weight:700}.panel{border-radius:var(--radius-lg);background:var(--panel);border:3px solid var(--panel-border);width:min(26rem,100%);box-shadow:var(--chunk);padding:1.25rem}.btn{border:3px solid var(--slate-light);border-radius:var(--radius);background:var(--slate);color:#fff;font:700 1.05rem/1.1 var(--font-body);text-transform:uppercase;letter-spacing:.03em;text-shadow:2px 2px 0 var(--ink);box-shadow:var(--chunk);cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.2rem;transition:transform 80ms,box-shadow 80ms,filter .15s;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn:active:not(:disabled){box-shadow:0 0 0 2px var(--ink), 0 1px 0 var(--ink);transform:translateY(4px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--orange);border-color:var(--orange-light)}.btn--ghost{background:var(--slate);border-color:var(--slate-light)}.btn--danger{background:var(--danger);border-color:var(--red-light)}.btn--small{border-width:2px;padding:.4rem .75rem;font-size:.85rem}.btn--block{width:100%}.btn--icon{width:2.6rem;height:2.6rem;padding:0;font-size:1.2rem}.btn:focus-visible,.tab:focus-visible,.count-pill:focus-visible,.text-input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.field{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.field-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);font-size:.72rem;font-weight:700}.text-input{border:3px solid var(--slate-light);border-radius:var(--radius-sm);background:var(--bg);color:#fff;padding:.65rem .8rem;font-size:1rem;box-shadow:inset 0 3px #0006}.text-input:focus-visible{border-color:var(--accent);outline-offset:1px}.code-input{letter-spacing:.3em;text-align:center;text-transform:uppercase;padding-left:calc(.8rem + .3em);font-size:1.4rem;font-weight:700}.code-input::placeholder{color:var(--text-faint);opacity:1}.mode-tabs{gap:.4rem;margin-bottom:1rem;display:flex}.tab{border:2px solid var(--slate);border-radius:var(--radius-sm);background:var(--bg-elevated);color:#8193ad;text-transform:uppercase;cursor:pointer;flex:1;padding:.55rem;font-weight:700}.tab--active{background:var(--accent);border-color:var(--gold-light);color:var(--ink);box-shadow:0 3px 0 var(--ink)}.player-count-picker{flex-wrap:wrap;gap:.35rem;display:flex}.count-pill{border:2px solid var(--slate);border-radius:var(--radius-sm);background:var(--bg-elevated);min-width:2.6rem;color:var(--text-dim);text-transform:uppercase;cursor:pointer;flex:1;padding:.45rem .5rem;font-size:.85rem;font-weight:700;transition:transform 80ms}.count-pill:active:not(:disabled){transform:translateY(2px)}.count-pill:disabled{opacity:.55;cursor:not-allowed}.count-pill--active,.count-pill--active:disabled{opacity:1;background:var(--success);border-color:var(--green-light);color:#fff;text-shadow:2px 2px 0 var(--ink);box-shadow:0 3px 0 var(--ink)}.hint{color:var(--text-dim);font-size:.8rem}.hint--tight{margin-top:.35rem}.hint--invite{border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--accent);text-align:center;margin-bottom:.9rem;padding:.5rem .7rem}.alert{border:2px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-bg);color:#ffd2cf;padding:.55rem .75rem;font-size:.85rem;animation:.4s ease-in-out alert-shake}@keyframes alert-shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.connection-banner{z-index:95;border:3px solid var(--red-light);border-radius:var(--radius);background:var(--danger);max-width:calc(100vw - 2rem);box-shadow:var(--chunk);text-shadow:2px 2px 0 var(--ink);align-items:center;gap:.6rem;padding:.55rem .9rem;font-weight:700;animation:.5s both banner-shake-in;display:flex;position:fixed;top:.75rem;left:50%;transform:translate(-50%)}@keyframes banner-shake-in{0%{transform:translate(-50%,-150%)}60%{transform:translate(-50%)}70%{transform:translate(calc(-50% - 6px))}80%{transform:translate(calc(6px - 50%))}90%{transform:translate(calc(-50% - 3px))}to{transform:translate(-50%)}}.pixel-spinner{border:2px solid var(--ink);background:conic-gradient(var(--accent) 0 25%, transparent 0 50%, var(--accent) 0 75%, transparent 0);flex:none;width:1.1rem;height:1.1rem;animation:.8s steps(4,end) infinite pixel-spin;display:inline-block}@keyframes pixel-spin{to{transform:rotate(360deg)}}.avatar{background:var(--suit-d);width:2.2rem;height:2.2rem;box-shadow:0 0 0 2px var(--ink);text-shadow:1px 1px 0 var(--ink);border:3px solid #ffffff8c;border-radius:9px;flex:none;place-items:center;font-size:.85rem;font-weight:700;display:grid}.avatar--sm{width:2rem;height:2rem;font-size:.75rem}.status-dot{border:2px solid var(--ink);border-radius:2px;flex:none;width:.6rem;height:.6rem}.status-dot--on{background:var(--success)}.status-dot--off{background:var(--danger);animation:1s steps(2,end) infinite status-blink}@keyframes status-blink{50%{opacity:.2}}.suit-a{--suit-color:var(--suit-a)}.suit-b{--suit-color:var(--suit-b)}.suit-c{--suit-color:var(--suit-c)}.suit-d{--suit-color:var(--suit-d)}@keyframes card-sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)translateY(-3px)}}@media (prefers-reduced-motion:reduce){.bg-swirl:before,.bg-swirl:after,.pixel-spinner,.status-dot--off,.connection-banner,.alert{animation:none}}.mute-button[aria-pressed=true]{opacity:.6;text-decoration:line-through}.floating-mute{z-index:20;position:fixed;top:.75rem;right:.75rem}.rules-screen{flex-direction:column;flex:1;align-items:center;gap:1.25rem;width:100%;padding:1.5rem 1rem 3rem;display:flex}.rules-back{align-self:flex-start}.rules-panel{flex-direction:column;gap:1.1rem;width:min(40rem,100%);display:flex}.rules-section-title{color:var(--accent);text-transform:uppercase;text-shadow:2px 2px 0 var(--ink);margin-bottom:.35rem;font-size:1.1rem}.rules-section-text{color:#e4ebf5;font-size:.95rem;line-height:1.55}.rules-section-text+.rules-section-text{margin-top:.5rem}.mission-visual{aspect-ratio:1;flex:none;width:4.5rem;display:block;position:relative;container-type:inline-size}.mv-body{--cw:29cqw;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.mv-row{justify-content:center;align-items:center;gap:3cqw;display:flex}.mv-card{width:var(--cw);aspect-ratio:5/7;background:var(--card-face);box-shadow:0 0 0 max(1px, 1cqw) var(--ink), 1.5cqw 2cqw 0 #00000073;color:var(--suit-color,var(--ink));border:max(1.5px,1.6cqw) solid #fff;border-radius:max(3px,3.5cqw);flex:none;place-items:center;display:grid;position:relative}.mv-card--other{border-color:var(--slate-light);color:var(--text-dim);font-size:calc(var(--cw) * .6);background:repeating-linear-gradient(45deg,#2f3d55 0 1.5cqw,#283449 1.5cqw 3cqw);font-weight:700;line-height:1}.mv-card--back{background:var(--card-back);color:#fff;text-shadow:1cqw 1cqw 0 var(--ink);font-size:18cqw;font-weight:700}.mv-digit{font-family:var(--font-display);font-size:calc(var(--cw) * .44);font-weight:700;line-height:1;transform:translate(4%,4%)}.mv-shape{width:calc(var(--cw) * .52);aspect-ratio:1;background:var(--suit-color);display:block}.mv-shape--A{clip-path:polygon(50% 4%,100% 92%,0 92%)}.mv-shape--B{width:calc(var(--cw) * .48);border-radius:50%}.mv-shape--C{width:calc(var(--cw) * .42);border-radius:10%}.mv-shape--D{clip-path:polygon(50% 0,92% 50%,50% 100%,8% 50%)}.mv-touch{border:max(1.5px, 1.6cqw) solid var(--success);background:#35bd862e;border-radius:6cqw;gap:0;padding:3cqw}.mv-ban{aspect-ratio:1;border:3cqw solid var(--danger);width:20cqw;box-shadow:0 0 0 max(1px, 1cqw) var(--ink), inset 0 0 0 max(1px, 1cqw) var(--ink);border-radius:50%;flex:none;position:relative}.mv-ban:after{content:"";background:var(--danger);width:100%;height:3cqw;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.mv-stairs{align-items:flex-end;gap:0}.mv-stairs>.mv-card:nth-child(2){margin-bottom:10cqw}.mv-stairs>.mv-card:nth-child(3){margin-bottom:20cqw}.mv-grid{grid-template-columns:repeat(2,auto);gap:4cqw;display:grid;position:relative}.mv-jumble>.mv-card:first-child{transform:rotate(-8deg)}.mv-jumble>.mv-card:nth-child(2){transform:rotate(6deg)translateY(4%)}.mv-jumble>.mv-card:nth-child(3){transform:rotate(7deg)translateY(-3%)}.mv-jumble>.mv-card:nth-child(4){transform:rotate(-5deg)}.mv-badge{border:max(1.5px, 1.4cqw) solid var(--accent);background:var(--ink);min-width:26cqw;height:26cqw;color:var(--accent);font-family:var(--font-display);white-space:nowrap;border-radius:13cqw;place-items:center;padding:0 4cqw;font-size:14cqw;font-weight:700;line-height:1;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mv-seesaw{position:absolute;inset:0}.mv-beam{background:var(--text-dim);height:5cqw;box-shadow:0 0 0 max(1px, 1cqw) var(--ink);border-radius:1.5cqw;position:absolute;bottom:32cqw;left:3cqw;right:3cqw}.mv-fulcrum{background:var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%);width:25cqw;height:20.5cqw;position:absolute;bottom:13cqw;left:50%;transform:translate(-50%)}.mv-fulcrum:after{content:"";background:var(--text-dim);clip-path:polygon(50% 0,100% 100%,0 100%);position:absolute;inset:2cqw 3cqw 1.5cqw}.mv-load{justify-content:center;align-items:flex-end;width:48cqw;display:flex;position:absolute;bottom:38.5cqw}.mv-load--left{left:1cqw}.mv-load--right{right:1cqw}.mv-pile{margin-top:4cqw;margin-right:4cqw;display:grid}.mv-pile>.mv-card{grid-area:1/1}.mv-pile>.mv-card:first-child{transform:translate(4cqw,-4cqw)rotate(8deg)}.mv-double{gap:0}.mv-double>.mv-pile+.mv-pile{margin-left:-3cqw}.mv-weight{border:max(1.5px, 1.4cqw) solid var(--accent);background:var(--ink);color:var(--accent);font-family:var(--font-display);white-space:nowrap;border-radius:3cqw 3cqw 1.5cqw 1.5cqw;padding:5cqw 3.5cqw 4cqw;font-size:18cqw;font-weight:700;line-height:1}.mv-body--pair{--cw:36cqw}.mv-body--pair .mv-apart{--cw:32cqw}.mv-body--pair .mv-gap{--cw:28cqw;gap:2.5cqw}.mv-body--sumEqualsSymbol,.mv-body--sumCompare{--cw:30cqw}.mv-body--sumCompare .mv-double{--cw:22cqw}.mv-grid--mini{--cw:18cqw;gap:2cqw}.mv-body--unknown{--cw:44cqw}.end-screen{text-align:center;flex-direction:column;grid-area:1/1/-1/-1;align-self:center;align-items:center;gap:.8rem;width:min(30rem,100%);margin:0 auto;padding:1.5rem 0 2rem;display:flex}.end-screen-reason{border-radius:var(--radius-sm);background:var(--danger);text-transform:uppercase;box-shadow:var(--chunk);padding:.2rem .6rem;font-size:.8rem;font-weight:700}.end-screen-title{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-size:.85rem;font-weight:700}.end-screen-badge{margin:3.5rem 0 2.5rem}.end-screen-subtitle{text-shadow:2px 2px 0 var(--ink);font-size:1rem;font-weight:700}.end-screen-score{align-items:baseline;gap:.5rem;display:flex}.end-screen-score-value{color:var(--suit-a);font-variant-numeric:tabular-nums;text-shadow:4px 4px 0 var(--ink);font-size:clamp(3rem,14vw,4.5rem);font-weight:700;line-height:1}.end-screen-score-label{text-transform:uppercase;text-shadow:2px 2px 0 var(--ink);font-size:1.1rem;font-weight:700}.end-screen-tally{text-align:left;flex-direction:column;gap:.5rem;width:100%;display:flex}.end-screen-tally-row{grid-template-columns:minmax(0,11rem) 1fr;align-items:center;gap:.6rem;font-size:.85rem;font-weight:700;display:grid}.end-screen-tally-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.end-screen-tally-bar{border:2px solid var(--ink);background:var(--suit-d);transform-origin:0;border-radius:4px;height:.9rem;display:block}.end-screen-tally-row:nth-child(2) .end-screen-tally-bar{background:var(--suit-a)}.end-screen-tally-row:nth-child(3) .end-screen-tally-bar{background:var(--suit-b)}.end-screen-tally-row:nth-child(4) .end-screen-tally-bar{background:var(--suit-c)}.end-screen-tally-bar--deal,.end-screen-tally-row:nth-child(n) .end-screen-tally-bar--deal{background:var(--slate-light)}.end-screen-details{text-align:left;width:100%}.end-screen-details>summary{border:3px solid var(--slate-light);border-radius:var(--radius);background:var(--slate);box-shadow:var(--chunk);text-align:center;text-transform:uppercase;cursor:pointer;padding:.5rem .8rem;font-weight:700;list-style:none}.end-screen-details>summary::-webkit-details-marker{display:none}.end-screen-details>summary:after{content:" ▾"}.end-screen-details[open]>summary:after{content:" ▴"}.end-screen-missions{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.end-screen-mission{border-radius:var(--radius-sm);background:var(--panel);align-items:center;gap:.7rem;padding:.5rem;display:flex}.end-screen-mission-body{flex-direction:column;gap:.15rem;font-size:.85rem;display:flex}.end-screen-mission-by{color:var(--accent);font-size:.72rem}.end-screen-actions{gap:.6rem;width:100%;margin-top:.5rem;display:flex}.end-screen-actions .btn--primary{flex:2;font-size:1.25rem}.end-screen-actions .btn--ghost{flex:1}.side-panel{align-items:stretch;gap:.5rem;display:flex;position:relative}.stat{border:3px solid var(--panel-border);border-radius:var(--radius);background:var(--panel);min-width:0;box-shadow:var(--chunk);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.15rem;padding:.35rem .3rem;display:flex}.stat-label{color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;font-size:.62rem;font-weight:700}.stat-hint{color:var(--text-dim);font-size:.62rem}.stat--missions{background:var(--suit-a);border-color:var(--red-light)}.stat--missions .stat-label{color:#ffe1de}.stat--timer{background:var(--suit-b);border-color:var(--blue-light)}.stat--timer .stat-label{color:#dff2ff}.stat--timer:has(.countdown-timer--urgent){background:var(--danger);border-color:var(--red-light)}.difficulty-badge{color:var(--accent)}.medal-track{gap:.3rem;display:flex}.medal{border:2px solid var(--ink);background:var(--slate-light);border-radius:50%;width:.95rem;height:.95rem}.medal--won{animation:.5s cubic-bezier(.34,1.56,.64,1) medal-coin-in}.medal--won.medal--bronze{background:radial-gradient(circle at 35% 30%,#f3c08b,#a8622a)}.medal--won.medal--silver{background:radial-gradient(circle at 35% 30%,#fff,#8e9aa6)}.medal--won.medal--gold{background:radial-gradient(circle at 35% 30%,#fff3b0,#c9971c)}@keyframes medal-coin-in{0%{transform:scale(0)rotate(-180deg)}to{transform:none}}.countdown-timer{font-variant-numeric:tabular-nums;text-shadow:2px 2px 0 var(--ink);font-size:1.15rem;font-weight:700}.countdown-timer--urgent{animation:1s ease-in-out infinite timer-pulse}@keyframes timer-pulse{50%{transform:scale(1.18)}}.mission-history{position:relative}.mission-history-orb{color:#fff;text-shadow:3px 3px 0 var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;font-size:1.35rem;font-weight:700;line-height:1;display:inline-flex}.mission-history-orb:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.mission-history-orb-count--pop{animation:.46s cubic-bezier(.34,1.56,.64,1) orb-bump;display:inline-block}@keyframes orb-bump{40%{color:var(--gold-light);transform:scale(1.6)rotate(-8deg)}}.streak-badge{background:var(--ink);color:var(--accent);text-transform:uppercase;border-radius:6px;padding:.05rem .4rem;font-size:.62rem;font-weight:700;animation:.46s cubic-bezier(.34,1.56,.64,1) orb-bump}.stat--hot{box-shadow:var(--chunk), 0 0 18px 4px #ffcd4da6;animation:.9s ease-in-out infinite alternate hot-streak}@keyframes hot-streak{to{box-shadow:var(--chunk), 0 0 28px 8px #ff9a2ed9}}.mission-history-backdrop{z-index:85;background:#0a0a1499;position:fixed;inset:0}.mission-history-popover{z-index:86;border:3px solid var(--panel-border);border-radius:var(--radius-lg);background:var(--panel);width:min(26rem,100vw - 2rem);max-height:70svh;box-shadow:var(--chunk);text-align:left;padding:.9rem;animation:.3s cubic-bezier(.34,1.56,.64,1) popover-in;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}@keyframes popover-in{0%{opacity:0;transform:translate(-50%,-40%)scale(.9)}}.mission-history-list{flex-direction:column;gap:.5rem;display:flex}.mission-history-item{border-radius:var(--radius-sm);background:var(--slate);align-items:center;gap:.7rem;padding:.5rem;display:flex}.mission-history-item-body{flex-direction:column;gap:.15rem;font-size:.85rem;display:flex}.mission-history-item-by{color:var(--accent);font-size:.72rem}.mission-history-empty{color:var(--text-dim);text-align:center}.side-panel-menu-toggle{flex:none;align-self:stretch;height:auto}.side-panel-extras{z-index:40;border:3px solid var(--panel-border);border-radius:var(--radius);background:var(--panel);min-width:12rem;box-shadow:var(--chunk);flex-direction:column;align-items:stretch;gap:.5rem;padding:.75rem;display:none;position:absolute;top:calc(100% + .5rem);right:0}.side-panel--menu-open .side-panel-extras{display:flex}.game-code-pill{border-radius:var(--radius-sm);background:var(--accent);color:var(--ink);letter-spacing:.15em;align-self:center;padding:.3rem .6rem;font-weight:700}.abandon-confirm{flex-direction:column;gap:.4rem;display:flex}.abandon-confirm-text{text-align:center;font-size:.8rem}.stat--medals .stat-hint,.stat--medals .stat-label-extra{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width>=56rem) and (aspect-ratio>=1){.stat--medals .stat-hint,.stat--medals .stat-label-extra{clip-path:none;width:auto;height:auto;position:static;overflow:visible}.side-panel{flex-direction:column;gap:.7rem}.stat{flex:none;padding:.6rem}.stat-label,.stat-hint{font-size:.75rem}.mission-history-orb{font-size:2.2rem}.medal{width:1.5rem;height:1.5rem}.countdown-timer{font-size:1.8rem}.side-panel-menu-toggle{display:none}.side-panel-extras{min-width:0;box-shadow:none;background:0 0;border:0;margin-top:auto;padding:0;display:flex;position:static}}@media (prefers-reduced-motion:reduce){.medal--won,.countdown-timer--urgent,.mission-history-orb-count--pop,.streak-badge,.stat--hot,.mission-history-popover{animation:none}}.game-board{--hand-w:clamp(3.8rem, 18vw, 5.5rem);--pile-w:clamp(3rem, 14vw, 4.6rem);flex:1;grid-template-rows:auto 1fr;gap:.75rem;min-height:100svh;padding:.75rem;display:grid}.board-main{flex-direction:column;justify-content:space-between;align-items:center;gap:.5rem;min-width:0;display:flex}@media (width>=56rem) and (aspect-ratio>=1){.board-main{gap:.9rem}.game-board{--hand-w:clamp(5rem, 7vw, 6.5rem);--pile-w:clamp(4.2rem, 5.6vw, 5.4rem);grid-template-rows:none;grid-template-columns:14rem 1fr;gap:1rem;padding:1rem}}.opponents{justify-content:center;gap:.4rem;max-width:100%;display:flex}.seat{border-radius:var(--radius);background:#1d1d2b59;flex-direction:column;align-items:center;gap:.2rem;min-width:0;padding:.3rem .45rem;display:flex}.seat-body{flex-direction:column;align-items:center;gap:.15rem;min-width:0;display:flex}.seat-name{text-overflow:ellipsis;white-space:nowrap;max-width:5.5rem;text-shadow:2px 2px 0 var(--ink);font-size:.8rem;font-weight:700;line-height:1;overflow:hidden}.seat-count{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.seat-hand{padding-left:7px;display:flex}.seat-hand-card{background:var(--card-back);width:14px;height:20px;box-shadow:0 0 0 1px var(--ink);border:1.5px solid #fff;border-radius:3px;margin-left:-7px}@media (width>=56rem) and (aspect-ratio>=1){.opponents{flex-wrap:wrap;gap:.6rem 1.5rem}.seat{flex-direction:row;gap:.5rem;padding:.35rem .6rem .35rem .35rem}.seat-body{align-items:flex-start}.seat-name{max-width:10rem;font-size:1rem}}.seat--active .avatar{background:var(--accent);border-color:var(--gold-light);color:var(--ink);text-shadow:none;animation:.6s ease-in-out infinite alternate seat-bob}@keyframes seat-bob{to{transform:translateY(-4px)}}.missions{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.35rem,1.8vw,.6rem);width:min(100%,30rem);display:grid}@media (width>=56rem) and (aspect-ratio>=1){.missions{width:min(100%,34rem)}}.mission-card{min-width:0;position:relative}.mission-card-trigger{border:3px solid var(--slate-light);border-radius:var(--radius);background:linear-gradient(180deg, #465a7a, var(--slate) 55%);width:100%;box-shadow:var(--chunk);cursor:pointer;-webkit-tap-highlight-color:transparent;padding:4%;transition:border-color .15s,transform .15s;animation:.45s cubic-bezier(.34,1.56,.64,1) both mission-enter;display:block}.mission-card-trigger .mission-visual{width:100%}.mission-card-trigger:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.mission-card--open .mission-card-trigger{border-color:var(--accent);transform:translateY(-3px)}@media (hover:hover){.mission-card:hover .mission-card-trigger{border-color:var(--accent);transform:translateY(-3px)}}@keyframes mission-enter{0%{opacity:0;transform:translateY(-24px)scale(.8)rotate(-4deg)}}.mission-tooltip{z-index:30;border:2px solid var(--slate-light);border-radius:var(--radius-sm);background:var(--ink);opacity:0;visibility:hidden;pointer-events:none;width:max-content;max-width:min(16rem,80vw);padding:.5rem .7rem;font-size:.82rem;line-height:1.35;transition:opacity .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.mission-card:first-child .mission-tooltip{left:0;transform:none}.mission-card:last-child .mission-tooltip{left:auto;right:0;transform:none}.mission-card--open .mission-tooltip{opacity:1;visibility:visible}@media (hover:hover){.mission-card:hover .mission-tooltip{opacity:1;visibility:visible}}.piles{justify-content:center;align-items:center;gap:clamp(.4rem,2vw,1rem);padding-bottom:1.3rem;display:flex}.draw-pile{width:var(--pile-w);aspect-ratio:5/7;flex:none;position:relative}.draw-pile-card{background:var(--card-back);box-shadow:0 0 0 2px var(--ink);border:3px solid #fff;border-radius:9px;position:absolute;inset:0}.draw-pile-card--back-2{transform:translate(6px,6px)}.draw-pile-card--back-1{transform:translate(3px,3px)}.draw-pile-count{white-space:nowrap;text-shadow:2px 2px 0 var(--ink);font-size:.65rem;font-weight:700;position:absolute;top:calc(100% + .45rem);left:0}.draw-pile:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.playing-card{width:var(--hand-w);aspect-ratio:5/7;color:var(--suit-color);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:none;padding:0;position:relative;container-type:inline-size}.playing-card--pile,.playing-card--empty{width:var(--pile-w)}.playing-card-inner{background:var(--card-face);box-shadow:0 0 0 2px var(--ink), 4px 5px 0 #00000073;border:3px solid #fff;border-radius:9px;transition:box-shadow .15s,filter .15s;animation:3.2s ease-in-out infinite card-sway;display:block;position:absolute;inset:0}.playing-card-value{color:var(--suit-color);font-size:26cqw;font-weight:700;line-height:1;position:absolute}.playing-card-value--top{top:7cqw;left:9cqw}.playing-card-value--bottom{bottom:7cqw;right:9cqw;transform:rotate(180deg)}.playing-card-glyph{color:var(--suit-color);text-shadow:3px 3px #00000026;font-size:46cqw;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.playing-card:disabled{cursor:default}.playing-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.hand .playing-card:disabled .playing-card-inner{filter:saturate(.55)brightness(.8)}.playing-card--selected .playing-card-inner{box-shadow:0 0 0 2px var(--ink), 0 0 0 5px var(--accent), 4px 12px 0 #0006;animation-play-state:paused}.playing-card--highlighted .playing-card-inner{box-shadow:0 0 0 2px var(--ink), 0 0 0 5px var(--success), 0 0 18px 4px #35bd86b3}.playing-card--empty{border:3px dashed var(--slate-light);color:var(--text-faint);text-transform:uppercase;cursor:default;border-radius:9px;place-items:center;font-size:.8rem;display:grid}.playing-card--just-played .playing-card-inner{box-shadow:0 0 0 2px var(--ink), 0 0 0 5px var(--accent);animation:.46s cubic-bezier(.34,1.56,.64,1) both card-land}.playing-card--just-played:after{content:"";background:var(--accent);width:6px;height:6px;box-shadow:30px -20px 0 var(--accent), -32px -14px 0 #fff, 26px 24px 0 var(--suit-color), -24px 26px 0 var(--accent), 0 -36px 0 #fff, 38px 6px 0 var(--suit-color), -38px 4px 0 var(--suit-color), 4px 36px 0 #fff;pointer-events:none;margin:-3px;animation:.5s ease-out both card-dust;position:absolute;top:50%;left:50%}.playing-card--land-delayed .playing-card-inner,.playing-card--land-delayed:after{animation-delay:.5s}@keyframes card-land{0%{transform:translateY(-10px)scale(1.18,.78)}45%{transform:translateY(3px)scale(.92,1.1)}to{transform:none}}@keyframes card-dust{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.5)}}.status-strip{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem .75rem;min-height:2.4rem;display:flex}.status-strip-turn{color:var(--text-dim);text-transform:uppercase;text-shadow:2px 2px 0 var(--ink);font-size:1.05rem;font-weight:700;display:inline-block}.status-strip-turn--yours{color:var(--accent);text-shadow:3px 3px 0 var(--ink);font-size:clamp(1.3rem,5vw,1.7rem)}.status-strip-badge{border-radius:var(--radius-sm);background:var(--accent);color:var(--ink);text-transform:uppercase;box-shadow:var(--chunk);padding:.25rem .6rem;font-weight:700}.hand{min-height:calc(var(--hand-w) * 1.4 + 1.9rem);perspective:900px;justify-content:center;align-items:flex-end;gap:clamp(.35rem,1.8vw,.8rem);padding:1.4rem .5rem .5rem;display:flex}@keyframes draw-flight-move{0%{opacity:1;transform:translate(0)scale(1)rotate(0)}60%{transform:translate(calc(var(--dx) * .6), calc(var(--dy) * .6 - 40px)) scale(.9) rotate(-12deg)}to{transform:translate(var(--dx), var(--dy)) scale(.7) rotate(8deg);opacity:0}}.draw-flight{z-index:60;pointer-events:none;background:var(--card-back);box-shadow:0 0 0 2px var(--ink);border:3px solid #fff;border-radius:9px;animation:.55s cubic-bezier(.3,.7,.4,1) forwards draw-flight-move;position:fixed}.draw-flight--you{box-shadow:0 0 0 2px var(--ink), 0 0 16px 4px #ffcd4d99}@keyframes play-flight-move{0%{opacity:0;transform:translate(0)scale(.9)rotate(-8deg)}10%{opacity:1}50%{transform:translate(calc(var(--dx) * .5), calc(var(--dy) * .5 - 70px)) scale(1.15) rotate(10deg)}to{transform:translate(var(--dx), var(--dy)) scale(1) rotate(0);opacity:1}}.play-flight{z-index:61;pointer-events:none;cursor:default;animation:.55s cubic-bezier(.45,0,.2,1) forwards play-flight-move;position:fixed}.play-flight .playing-card-inner{animation:none}.play-flight--you .playing-card-inner{box-shadow:0 0 0 2px var(--ink), 0 0 0 5px var(--accent), 0 10px 18px #00000073}@keyframes mission-flight-move{0%{background:var(--slate);border-color:var(--slate-light);transform:scale(1)}12%{background:var(--success);border-color:var(--green-light);transform:scale(1.14)rotate(-3deg)}24%{transform:scale(.96)rotate(2deg)}38%{background:var(--success);border-color:var(--green-light);opacity:1;transform:scale(1)}70%{transform:translate(calc(var(--dx) * .55), calc(var(--dy) * .55 - 40px)) scale(.7) rotate(-10deg)}to{transform:translate(var(--dx), var(--dy)) scale(.25) rotate(20deg);opacity:.2;background:var(--success);border-color:var(--green-light)}}.mission-flight{z-index:62;pointer-events:none;border:3px solid var(--green-light);border-radius:var(--radius);background:var(--success);box-shadow:var(--chunk);place-items:center;animation:.9s cubic-bezier(.45,0,.3,1) forwards mission-flight-move;display:grid;position:fixed}.mission-flight .mission-visual{width:90%}.mission-flight-stamp{background:var(--success);color:#fff;width:2.2rem;height:2.2rem;text-shadow:2px 2px 0 var(--ink);box-shadow:0 0 0 2px var(--ink);border:3px solid #fff;border-radius:50%;place-items:center;font-size:1.2rem;font-weight:700;animation:.35s cubic-bezier(.34,1.56,.64,1) 50ms both mission-stamp;display:grid;position:absolute;top:-.9rem;right:-.7rem}@keyframes mission-stamp{0%{opacity:0;transform:scale(2.6)rotate(-25deg)}to{opacity:1;transform:scale(1)rotate(-8deg)}}.mission-toast{z-index:70;pointer-events:none;text-align:center;flex-direction:column;align-items:center;gap:.25rem;max-width:min(24rem,100vw - 2rem);animation:.35s cubic-bezier(.34,1.56,.64,1) both mission-toast-in;display:flex;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}@keyframes mission-toast-in{0%{opacity:0;transform:translate(-50%,-30%)scale(.4)rotate(-6deg)}}.mission-toast-title{color:var(--accent);text-transform:uppercase;text-shadow:4px 4px 0 var(--ink), -2px -2px 0 var(--ink), 2px -2px 0 var(--ink), -2px 2px 0 var(--ink);font-size:clamp(1.8rem,7vw,2.6rem);font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) both toast-line-pop}.mission-toast-combo{border:3px solid var(--red-light);border-radius:var(--radius-sm);background:var(--danger);text-transform:uppercase;text-shadow:2px 2px 0 var(--ink);box-shadow:var(--chunk);padding:.15rem .6rem;font-size:1.1rem;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) both toast-line-pop;rotate:-4deg}.mission-toast-chain{color:var(--blue-light);text-transform:uppercase;text-shadow:3px 3px 0 var(--ink);font-size:1.3rem;font-weight:700;animation:.4s cubic-bezier(.34,1.56,.64,1) both chain-in}.mission-toast--chain .mission-toast-title{color:var(--blue-light)}.mission-toast-text{border-radius:var(--radius-sm);background:#1d1d2bd9;padding:.3rem .6rem;font-size:.9rem;animation:.25s ease-out both toast-line-pop}@keyframes toast-line-pop{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.18)}to{transform:scale(1)}}@keyframes chain-in{0%{opacity:0;transform:translate(-40px)skew(-15deg)}}.medal-reveal--bronze{--medal:#d9823b;--medal-light:#f3c08b;--medal-dark:#8a4a17}.medal-reveal--silver{--medal:#b8c4d0;--medal-light:#fff;--medal-dark:#5d6b7a}.medal-reveal--gold{--medal:#ffcd4d;--medal-light:#fff6c2;--medal-dark:#c98a12}.medal-reveal{z-index:80;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.medal-reveal-backdrop{background:#0a0a14b8;animation:3.2s forwards medal-reveal-fade;position:absolute;inset:0}.medal-reveal-content{flex-direction:column;align-items:center;gap:.4rem;animation:3.2s forwards medal-reveal-fade;display:flex;position:relative}@keyframes medal-reveal-fade{0%{opacity:0}8%,88%{opacity:1}to{opacity:0}}.medal-reveal-badge{border:4px solid var(--medal-light);background:radial-gradient(circle at 35% 30%, var(--medal-light), var(--medal) 45%, var(--medal-dark));width:8rem;height:8rem;box-shadow:0 0 0 3px var(--ink), 0 6px 0 var(--ink), 0 0 50px 12px color-mix(in srgb, var(--medal) 55%, transparent);border-radius:50%;place-items:center;animation:.9s cubic-bezier(.34,1.56,.64,1) both medal-drop;display:grid;position:relative}.medal-reveal-badge:before{content:"";z-index:-1;background:repeating-conic-gradient(color-mix(in srgb, var(--medal) 35%, transparent) 0 10deg, transparent 10deg 20deg);border-radius:50%;animation:10s linear infinite medal-rays;position:absolute;inset:-3.5rem}.medal-reveal-badge-glyph{color:var(--medal-dark);text-shadow:0 2px 0 var(--medal-light);font-size:4rem}@keyframes medal-drop{0%{transform:translateY(-60vh)rotate(-40deg)scale(.6)}60%{transform:translateY(0)rotate(8deg)scale(1.1)}80%{transform:translateY(-12px)rotate(-3deg)scale(.97)}to{transform:none}}@keyframes medal-rays{to{transform:rotate(360deg)}}.medal-reveal-title{color:var(--medal-light);text-align:center;text-transform:uppercase;text-shadow:4px 4px 0 var(--ink);font-size:clamp(1.8rem,7vw,2.8rem);font-weight:700;animation:.5s cubic-bezier(.34,1.56,.64,1) .35s both medal-title-in}.medal-reveal-subtitle{text-transform:uppercase;text-shadow:2px 2px 0 var(--ink);font-size:1.2rem;font-weight:700}@keyframes medal-title-in{0%{opacity:0;transform:scale(2)}}.medal-reveal-burst{position:absolute;top:4rem;left:50%}.medal-reveal-confetti{background:var(--medal);width:10px;height:10px;animation:confetti-burst 1.4s var(--delay) cubic-bezier(.2, .8, .3, 1) both;position:absolute}.medal-reveal-confetti:nth-child(4n+1){background:var(--suit-a)}.medal-reveal-confetti:nth-child(4n+2){background:var(--suit-b)}.medal-reveal-confetti:nth-child(4n+3){background:var(--suit-c)}@keyframes confetti-burst{0%{transform:rotate(var(--angle)) translateY(0) scale(.4);opacity:1}to{transform:rotate(var(--angle)) translateY(-170px) rotate(540deg) scale(1);opacity:0}}.time-extension-flash{z-index:75;color:var(--success);pointer-events:none;text-shadow:5px 5px 0 var(--ink);font-size:clamp(3rem,14vw,6rem);font-weight:700;animation:2s cubic-bezier(.34,1.56,.64,1) forwards extension-pop;position:fixed;top:35%;left:50%}@keyframes extension-pop{0%{opacity:0;transform:translate(-50%)scale(.3)}15%{opacity:1;transform:translate(-50%)scale(1.2)}25%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-40px)scale(1)}}.rules-overlay{z-index:90;background:#0a0a14c7;justify-content:center;display:flex;position:fixed;inset:0;overflow-y:auto}@media (prefers-reduced-motion:reduce){.playing-card-inner,.seat--active .avatar,.mission-card-trigger,.medal-reveal-badge,.medal-reveal-badge:before,.medal-reveal-title,.medal-reveal-confetti,.mission-toast,.mission-toast-title,.mission-toast-combo,.mission-toast-chain,.mission-toast-text,.playing-card--just-played:after{animation:none}.draw-flight,.play-flight,.mission-flight{display:none}}.playing-card-tilt{display:block;position:absolute;inset:0}.playing-card--hand:not(:disabled){touch-action:none;cursor:grab}.playing-card--hand:active:not(:disabled){cursor:grabbing}.playing-card--ghost{pointer-events:none}.playing-card--pending .playing-card-inner{box-shadow:0 0 0 2px var(--ink), 0 0 0 5px var(--accent), 0 0 22px 6px #ffcd4d8c;animation:none}.playing-card--drop-target{transition:transform .12s;transform:scale(1.14)}.playing-card--shake .playing-card-tilt{animation:.42s ease-in-out card-shake}@keyframes card-shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)rotate(-4deg)}40%{transform:translate(10px)rotate(4deg)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.board-main--shake{animation:.5s .45s both board-shake}@keyframes board-shake{0%,to{transform:none}20%{transform:translate(-8px,4px)rotate(-.6deg)}40%{transform:translate(7px,-5px)rotate(.5deg)}60%{transform:translate(-5px,3px)}80%{transform:translate(4px,-2px)}}.game-board:has(.countdown-timer--critical):after{content:"";z-index:55;pointer-events:none;animation:1s ease-in-out infinite critical-edge;position:fixed;inset:0;box-shadow:inset 0 0 60px 18px #fe5f558c}@keyframes critical-edge{50%{opacity:.35}}.countdown-timer--critical{animation-duration:.5s}@media (prefers-reduced-motion:reduce){.playing-card--shake .playing-card-tilt,.board-main--shake{animation:none}.game-board:has(.countdown-timer--critical):after{animation:none}}.join-hero{text-align:center;flex-direction:column;align-items:center;gap:.9rem;display:flex}.game-title{flex-direction:column;align-items:center;line-height:.9;display:flex}.game-title-number{color:var(--accent);text-shadow:5px 5px 0 var(--ink), -2px -2px 0 var(--ink), 2px -2px 0 var(--ink), -2px 2px 0 var(--ink);font-size:clamp(4.5rem,20vw,7rem);font-weight:700}.game-title-word{text-shadow:4px 4px 0 var(--ink);font-size:clamp(2rem,9vw,3.2rem);font-weight:700;display:flex}.game-title-word>span{animation:1.4s ease-in-out infinite title-hop;display:inline-block}@keyframes title-hop{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}.join-deco{justify-content:center;gap:.6rem;height:5.5rem;padding-top:.6rem;display:flex}.join-deco-card{aspect-ratio:5/7;background:var(--card-face);width:3.4rem;color:var(--suit-color);box-shadow:0 0 0 2px var(--ink), 4px 5px 0 #0006;border:3px solid #fff;border-radius:8px;place-items:center;font-size:1.8rem;animation:3s ease-in-out infinite card-sway;display:grid}.join-deco-card:first-child{translate:0 10px;rotate:-10deg}.join-deco-card:nth-child(2){rotate:-3deg}.join-deco-card:nth-child(3){rotate:4deg}.join-deco-card:nth-child(4){translate:0 10px;rotate:10deg}.tagline{max-width:26rem;color:var(--text-dim);font-size:.95rem}.join-panel .btn--block{margin-top:.25rem;padding:.85rem 1.2rem;font-size:1.2rem}@media (width>=56rem) and (aspect-ratio>=1){.join-deco-card{width:4.2rem;font-size:2.2rem}}@media (prefers-reduced-motion:reduce){.game-title-word>span,.join-deco-card{animation:none}}.lobby-panel{flex-direction:column;gap:1rem;width:min(30rem,100%);display:flex}.lobby-panel .field{margin-bottom:0}.code-badge{flex-direction:column;align-items:center;gap:.6rem;display:flex}.code-badge-label{text-transform:uppercase;color:var(--text-dim);font-size:.72rem;font-weight:700}.code-badge-value{gap:.4rem;display:flex}.code-char{aspect-ratio:5/7;background:var(--card-face);width:2.6rem;color:var(--ink);box-shadow:0 0 0 2px var(--ink), 3px 4px 0 #0006;border:3px solid #fff;border-radius:7px;place-items:center;font-size:1.7rem;font-weight:700;animation:3s ease-in-out infinite card-sway;display:grid}.code-badge-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.capacity-row{flex-direction:column;gap:.35rem;display:flex}.capacity-label{text-shadow:2px 2px 0 var(--ink);font-weight:700}.capacity-bar{border:2px solid var(--ink);background:var(--ink);border-radius:4px;height:.8rem;overflow:hidden}.capacity-bar-fill{background:var(--success);height:100%;transition:width .4s cubic-bezier(.34,1.56,.64,1);display:block}.player-list{perspective:600px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.player-chip{border:3px solid var(--slate-light);border-radius:var(--radius);background:var(--slate);min-width:0;box-shadow:var(--chunk);align-items:center;gap:.45rem;padding:.45rem .5rem;display:flex}.player-chip--open{box-shadow:none;background:0 0;border-style:dashed}.seat-number{color:var(--text-dim);font-size:.7rem}.player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.player-name--empty{color:var(--text-faint);font-weight:500}.avatar--empty{background:0 0;border-style:dashed;animation:3s linear infinite avatar-spin}@keyframes avatar-spin{to{transform:rotate(360deg)}}.host-crown{color:var(--accent);text-shadow:1px 1px 0 var(--ink)}.host-badge{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lobby-panel>.btn--primary{padding:.9rem 1.2rem;font-size:1.25rem}@media (prefers-reduced-motion:reduce){.code-char,.avatar--empty{animation:none}}
