@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Space+Mono:wght@400;700&display=swap";:root{--felt:oklch(21% .09 158);--felt-mid:oklch(26% .09 158);--felt-rim:oklch(16% .07 155);--surface:#fffdf7;--surface-2:oklch(95.5% .012 78);--surface-3:oklch(92% .018 78);--bg:oklch(93.5% .022 80);--ink:oklch(19% .02 225);--ink-mid:oklch(42% .04 225);--ink-soft:oklch(62% .04 220);--teal:oklch(50% .17 180);--teal-light:oklch(62% .16 178);--teal-bg:oklch(93% .06 178);--teal-glow:oklch(65% .2 158);--gold:oklch(70% .15 78);--gold-bg:oklch(95% .05 78);--card-face:#fffef8;--card-red:oklch(50% .22 22);--card-black:oklch(18% .02 225);--card-border:oklch(84% .028 78);--green:oklch(56% .18 155);--amber:oklch(68% .18 70);--danger:oklch(52% .22 22);--r-sm:6px;--r-md:12px;--r-lg:18px;--r-xl:28px;--r-card:8px;--shadow-card:0 1px 3px #00000024, 0 0 0 1px #0000000f;--shadow-raised:0 4px 14px #00000038, 0 0 0 1px #00000014;--shadow-panel:0 2px 16px #00000012, 0 0 0 1px #0000000a;--shadow-felt:inset 0 2px 14px #00000073, 0 0 0 5px var(--felt-rim), 0 4px 24px #0000004d;--glow-selected:0 0 0 2px white, 0 0 0 4px var(--teal), 0 6px 20px #00000047;color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Sora,system-ui,sans-serif;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(165deg, var(--bg) 0%, oklch(90% .028 82) 100%);min-height:100vh}button,input{font:inherit;background:0 0;border:none}.app-shell{flex-direction:column;gap:14px;width:100%;max-width:1120px;margin:0 auto;padding:16px 20px 28px;display:flex}.screen{width:100%;animation:.22s fade-up}.error-banner{color:oklch(38% .18 22);border-radius:var(--r-md);background:oklch(96% .05 22);border:1px solid oklch(76% .12 22);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.error-banner p{margin:0;font-size:.9rem}.notice-banner{color:oklch(34% .13 155);border-radius:var(--r-md);background:oklch(95% .045 155);border:1px solid oklch(74% .1 155);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.notice-banner p{margin:0;font-size:.9rem;font-weight:700}h1,h2,h3,p,ol,ul{margin:0}.btn{border-radius:var(--r-md);white-space:nowrap;border:1.5px solid #0000;flex-shrink:0;justify-content:center;align-items:center;gap:7px;padding:9px 18px;font-size:.88em;font-weight:600;transition:all .14s;display:inline-flex}.btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--teal);color:#fff;border-color:var(--teal)}.btn-primary:not(:disabled):hover{background:var(--teal-light);transform:translateY(-1px);box-shadow:0 4px 14px oklch(50% .17 180/.38)}.btn-secondary{background:var(--surface-2);color:var(--ink);border-color:var(--card-border)}.btn-secondary:not(:disabled):hover{background:var(--surface);border-color:var(--ink-soft)}.btn-danger{color:oklch(42% .16 25);background:oklch(94% .055 25);border-color:oklch(72% .11 25)}.btn-danger:not(:disabled):hover{background:oklch(90% .075 25);transform:translateY(-1px)}.btn-ghost{color:var(--ink-mid);border-color:var(--card-border);background:0 0}.btn-ghost:not(:disabled):hover{background:var(--surface-2);color:var(--ink)}.btn-sm{border-radius:var(--r-sm);padding:5px 12px;font-size:.78em}.btn-lg{padding:13px 28px;font-size:.98em}.w-full{width:100%}.panel{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--r-lg);box-shadow:var(--shadow-panel);padding:20px}.kicker{text-transform:uppercase;letter-spacing:.1em;color:var(--teal);font-size:.72em;font-weight:700}.label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:.74em;font-weight:700}.note{color:var(--ink-soft);font-size:.8em}.mb12{margin-bottom:12px}.mt12{margin-top:12px}.field{flex-direction:column;gap:5px;display:flex}.field-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:.74em;font-weight:700}.input{border:1.5px solid var(--card-border);border-radius:var(--r-md);color:var(--ink);background:#fff;padding:10px 14px;font-size:.95em;transition:border-color .15s,box-shadow .15s}.input:focus,button:focus-visible{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px oklch(50% .17 180/.14)}.code-input{letter-spacing:.18em;text-align:center;text-transform:uppercase;font-family:Space Mono,monospace;font-size:1.3em}.sr-only-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative}.toggle-info{flex-direction:column;flex:1;display:flex}.toggle-label{color:var(--ink);font-size:.88em;font-weight:600}.toggle-desc{color:var(--ink-soft);margin-top:2px;font-size:.75em}.toggle-track{background:var(--surface-3);border:1.5px solid var(--card-border);border-radius:100px;flex-shrink:0;width:42px;height:24px;transition:all .2s;position:relative}.toggle-on{background:var(--teal);border-color:var(--teal)}.toggle-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #0003}.toggle-on .toggle-thumb{transform:translate(18px)}.status-dot{background:var(--ink-soft);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.dot-online{background:var(--green);box-shadow:0 0 0 2px oklch(88% .1 155)}.status-badge{letter-spacing:.01em;white-space:nowrap;text-align:center;border-radius:100px;justify-content:center;align-items:center;gap:4px;padding:3px 9px;font-size:.68em;font-weight:700;display:inline-flex}.badge-online,.badge-ready{color:oklch(30% .14 155);background:oklch(91% .09 155)}.badge-offline,.badge-waiting{color:oklch(48% .1 75);background:oklch(93% .06 75)}.badge-host{background:var(--gold-bg);color:oklch(40% .14 78)}.badge-you{background:var(--teal-bg);color:var(--teal)}.badge-safe{color:oklch(34% .14 145);background:oklch(92% .07 145)}.badge-shithead{color:oklch(31% .09 92);background:oklch(89% .07 92)}.badge-turn{background:var(--teal-bg);color:var(--teal);animation:1.6s infinite pulse-badge}.badge-neutral{background:var(--surface-3);color:var(--ink-mid)}@keyframes pulse-badge{0%,to{box-shadow:0 0 oklch(65% .2 158/.4)}50%{box-shadow:0 0 0 5px oklch(65% .2 158/0)}}.playing-card{background:var(--card-face);border:1px solid var(--card-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);-webkit-user-select:none;user-select:none;color:var(--card-black);flex-direction:column;flex-shrink:0;justify-content:space-between;padding:0;transition:transform .14s,box-shadow .14s;animation:.22s card-deal-in;display:flex;position:relative;overflow:hidden}@keyframes card-deal-in{0%{opacity:0;transform:translateY(-14px)scale(.86)}to{opacity:1;transform:none}}.card-sm{width:40px;height:57px}.card-md{width:60px;height:86px}.card-lg{width:78px;height:112px}.card-clickable{cursor:pointer}.card-clickable:hover:not(.card-selected):not(:disabled){box-shadow:var(--shadow-raised);transform:translateY(-5px)}.card-selected{box-shadow:var(--glow-selected);z-index:3;transform:translateY(-10px)}.card-disabled,.playing-card:disabled{opacity:.42;filter:saturate(.55);pointer-events:none}.card-red{color:var(--card-red)}.card-corner{flex-direction:column;align-items:center;padding:3px 4px;line-height:1.1;display:flex}.card-corner-bottom{align-self:flex-end;transform:rotate(180deg)}.card-rank{font-family:Space Mono,monospace;font-size:.82em;font-weight:700}.card-suit-small{font-size:.6em}.card-center{flex:1;justify-content:center;align-items:center;display:flex}.card-suit-large{font-size:1.55em;line-height:1}.card-sm .card-rank{font-size:.62em}.card-sm .card-suit-large{font-size:1.1em}.card-sm .card-corner{padding:2px 3px}.card-lg .card-rank{font-size:1em}.card-lg .card-suit-large{font-size:2em}.card-special-badge{text-align:center;letter-spacing:.07em;color:#fff;padding:2px 0;font-size:.44em;font-weight:800;line-height:1.5;position:absolute;bottom:0;left:0;right:0}.card-sm .card-special-badge{display:none}.special-reset{background:oklch(56% .22 220)}.special-clone{background:oklch(56% .22 285)}.special-cap{background:oklch(56% .22 48)}.special-skip{background:oklch(56% .22 190)}.special-burn{background:oklch(56% .22 10)}.card-face-down{background:linear-gradient(145deg,oklch(28% .16 245),oklch(20% .19 262));border-color:oklch(38% .13 245)}.card-back-inner{background:repeating-linear-gradient(45deg,#0000,#0000 3px,oklch(35% .15 245/.35) 3px 4px);border:1.5px solid oklch(42% .14 245);border-radius:4px;justify-content:center;align-items:center;display:flex;position:absolute;inset:4px}.card-back-label{color:oklch(72% .12 245);font-family:Space Mono,monospace;font-size:.6em;font-weight:700}.card-slot{border-radius:var(--r-card);background:oklch(100% 0 0/.05);border:2px dashed oklch(55% .08 158/.55);flex-shrink:0;justify-content:center;align-items:center;display:flex}.empty-face-down-slot{background:0 0;border-color:oklch(55% .08 158/.38)}.slot-label{color:oklch(65% .06 158);font-size:.68em;font-weight:600}.pile-stack{width:60px;height:86px;position:relative}.pile-card{border-radius:var(--r-card);width:60px;height:86px;box-shadow:var(--shadow-card);background:linear-gradient(145deg,oklch(28% .16 245),oklch(20% .19 262));border:1px solid oklch(38% .13 245);position:absolute}.pile-card-3{transform:translate(-3px,-4px)}.pile-card-2{transform:translate(-1px,-2px)}.pile-card-1{transform:translate(1px)}.pile-empty{box-shadow:none;background:0 0;border:2px dashed oklch(55% .08 158/.45)}.pile-count{text-align:center;color:oklch(80% .05 158);font-size:.72em;font-weight:700;position:absolute;bottom:-22px;left:0;right:0}.pile-card-burn{background:linear-gradient(145deg,oklch(26% .14 22),oklch(18% .12 15));border-color:oklch(38% .14 22)}.card-row{flex-wrap:nowrap;align-items:flex-end;gap:6px;display:flex}.card-row-sm{gap:4px}.card-row-hand{flex-wrap:wrap;gap:8px}.player-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9em;font-weight:800;display:flex;position:relative}.avatar-sm{width:32px;height:32px;font-size:.78em}.avatar-md{width:44px;height:44px}.avatar-lg{width:56px;height:56px;font-size:1.15em}.avatar-active:after{content:"";border:2.5px solid var(--teal-glow);border-radius:50%;animation:1.6s infinite pulse-ring;position:absolute;inset:-4px}.avatar-disconnected{filter:saturate(0)brightness(.75);opacity:.6}@keyframes pulse-ring{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(1.07)}}.home-screen{justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:24px 20px;display:flex}.home-inner{flex-direction:column;gap:28px;width:100%;max-width:440px;display:flex}.home-title-area{text-align:center}.home-suit-row{justify-content:center;gap:8px;margin-bottom:10px;display:flex}.suit-deco{font-size:1.6em}.suit-s,.suit-c{color:var(--card-black)}.suit-h,.suit-d{color:var(--card-red)}.home-title{letter-spacing:-.03em;color:var(--ink);font-size:clamp(2rem,7vw,3em);font-weight:800}.home-sub{color:var(--ink-mid);margin-top:6px;font-size:.88em}.home-status{align-items:center;gap:6px;margin-top:10px;display:inline-flex}.home-card{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--r-xl);box-shadow:var(--shadow-panel);overflow:hidden}.home-tabs{border-bottom:1px solid var(--card-border);display:flex}.home-tab{color:var(--ink-soft);text-align:center;border-bottom:2px solid #0000;flex:1;padding:14px;font-size:.88em;font-weight:600;transition:all .15s}.home-tab:hover{color:var(--ink);background:var(--surface-2)}.home-tab.tab-active{color:var(--teal);border-bottom-color:var(--teal);background:var(--surface)}.home-form{flex-direction:column;gap:16px;padding:24px;display:flex}.home-cta{width:100%}.beta-access-screen{place-items:center;min-height:min(620px,100vh - 72px);display:grid}.beta-access-inner{width:min(100%,440px)}.beta-access-card{flex-direction:column;gap:14px;padding:24px;display:flex}.beta-access-error{color:oklch(42% .16 25);font-size:.84em;font-weight:700}.rule-option{border-top:1px solid var(--surface-3);padding:12px 0}.lobby-screen{grid-template-columns:1fr 1fr;gap:20px;max-width:930px;min-height:100%;margin:0 auto;padding:24px;display:grid}.lobby-left,.lobby-right{flex-direction:column;gap:16px;display:flex}.lobby-code-panel{flex-direction:column;gap:8px;display:flex}.room-control-row{flex-wrap:wrap;gap:8px;display:flex}.room-code-display{letter-spacing:.18em;color:var(--ink);font-family:Space Mono,monospace;font-size:clamp(1.8rem,5vw,2.4em);font-weight:700}.room-code-sub{color:var(--ink-soft);font-size:.8em}.lobby-panel-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.player-count-badge{background:var(--teal-bg);color:var(--teal);border-radius:100px;padding:3px 10px;font-size:.75em;font-weight:700}.player-list{flex-direction:column;gap:6px;margin-bottom:14px;padding:0;list-style:none;display:flex}.player-row{border-radius:var(--r-md);background:var(--surface-2);border:1px solid #0000;align-items:center;gap:10px;padding:8px 10px;display:flex}.player-row-empty{opacity:.55;border:1px dashed var(--card-border);background:0 0}.player-row-info{flex:1;align-items:center;gap:7px;display:flex}.player-row-name{color:var(--ink);font-size:.88em;font-weight:600}.player-connection{align-items:center;gap:6px;display:inline-flex}.avatar-empty{background:var(--surface-3);border:1.5px dashed var(--card-border);border-radius:50%}.lobby-player-req{margin-bottom:12px}.waiting-state{align-items:center;gap:10px;padding:12px 0;display:flex}.waiting-dots{gap:5px;display:flex}.waiting-dots span{background:var(--ink-soft);border-radius:50%;width:7px;height:7px;animation:.9s infinite bounce-dot}.waiting-dots span:nth-child(2){animation-delay:.15s}.waiting-dots span:nth-child(3){animation-delay:.3s}@keyframes bounce-dot{0%,80%,to{opacity:.5;transform:scale(1)}40%{opacity:1;transform:scale(1.3)}}.avatar-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.avatar-option{border-radius:var(--r-md);cursor:pointer;border:1.5px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;transition:all .15s;display:flex}.avatar-option:hover{background:var(--surface-2)}.avatar-option-selected{border-color:var(--teal);background:var(--teal-bg)}.avatar-sprite-placeholder{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1em;font-weight:800;display:flex}.avatar-option-label{color:var(--ink-soft);font-size:.68em;font-weight:600}.avatar-preview-row{border-top:1px solid var(--surface-3);align-items:center;gap:12px;padding-top:12px;display:flex}.avatar-preview-name{font-size:.9em;font-weight:700}.rules-list{flex-direction:column;gap:14px;display:flex}.rule-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.felt-table-setup{min-width:210px}.player-zone-setup .player-zone-row{border-bottom-color:var(--card-border)}.setup-ready-meta{flex-direction:column;gap:4px;display:flex}.setup-ready-count{color:var(--ink-soft);font-size:.74em}.setup-lock-btn{min-width:230px}.action-bar-setup{justify-content:flex-start}.game-screen{border-radius:var(--r-xl);flex-direction:column;min-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 3px 16px #00000014}.game-event-strip{background:var(--surface);border-bottom:1px solid var(--card-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 20px;display:flex}.event-text{color:var(--ink-mid);font-size:.82em;font-style:italic}.event-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.turn-badge{background:var(--teal-bg);color:var(--teal);border-radius:100px;flex-shrink:0;align-items:center;gap:6px;padding:4px 12px;font-size:.78em;font-weight:700;display:flex}.turn-dot{background:var(--teal-glow);border-radius:50%;width:7px;height:7px;animation:1.2s infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.4)}}.game-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.opponents-row{flex-shrink:0;justify-content:center;gap:12px;padding:14px 16px 10px;display:flex}.opponent-panel{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--r-lg);max-width:260px;box-shadow:var(--shadow-panel);flex-direction:column;flex:1;gap:8px;padding:12px 14px;transition:border-color .2s;display:flex;position:relative}.opp-active{border-color:var(--teal)}.opp-safe{background:linear-gradient(180deg, var(--surface), oklch(96% .035 145));border-color:oklch(78% .12 145)}.opp-safe .opp-card-zone{opacity:.55;filter:saturate(.75)}.opp-shithead{background:linear-gradient(180deg, var(--surface), oklch(93% .05 92));border-color:oklch(62% .12 92)}.opp-forfeited{opacity:.58;border-color:oklch(72% .045 250)}.opp-disconnected{opacity:.65}.opp-turn-glow{border-radius:var(--r-lg);box-shadow:0 0 0 2px var(--teal-glow), 0 0 20px oklch(65% .2 158/.2);pointer-events:none;position:absolute;inset:0}.opp-header{align-items:center;gap:8px;display:flex}.opp-info{flex:1;min-width:0}.opp-name{white-space:nowrap;text-overflow:ellipsis;font-size:.85em;font-weight:700;overflow:hidden}.opp-counts{gap:6px;margin-top:2px;display:flex}.count-chip{background:var(--surface-3);color:var(--ink-mid);border-radius:4px;padding:2px 6px;font-size:.68em;font-weight:700}.opp-card-zone{padding-bottom:8px;position:relative}.zone-face-down-opp{gap:4px;display:flex}.zone-face-up-opp{z-index:2;gap:4px;display:flex;position:absolute;top:6px;left:0}.felt-center{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:12px 16px;display:flex}.felt-table{background:radial-gradient(ellipse at 50% 45%, var(--felt-mid), var(--felt));border-radius:var(--r-xl);box-shadow:var(--shadow-felt);align-items:center;gap:24px;padding:24px 36px;display:flex}.felt-pile-area{flex-direction:column;align-items:center;gap:8px;display:flex}.felt-pile-label{text-transform:uppercase;letter-spacing:.07em;color:oklch(68% .06 158);margin-top:16px;font-size:.68em;font-weight:700}.felt-status-below{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:10px;display:flex}.rule-tag{letter-spacing:.04em;border-radius:100px;padding:4px 10px;font-size:.68em;font-weight:800}.tag-cap{color:oklch(72% .18 50);background:oklch(70% .18 50/.25);border:1px solid oklch(70% .18 50/.4)}.tag-base{background:var(--felt);color:oklch(75% .06 158);border:1px solid var(--felt-mid)}.discard-pile{width:60px;height:86px;position:relative}.discard-card-wrap{position:absolute;top:0;left:0}.discard-pile-burning .discard-card-wrap .playing-card{filter:drop-shadow(0 0 10px oklch(70% .2 45));animation:.52s ease-in-out infinite alternate burn-card-flicker}.discard-pile-burning:after{content:"";border-radius:var(--r-card);pointer-events:none;background:radial-gradient(circle at 50% 100%,oklch(70% .22 45/.45),#0000 58%),radial-gradient(circle at 30% 65%,oklch(62% .22 18/.35),#0000 42%),radial-gradient(circle at 70% 58%,oklch(78% .18 72/.28),#0000 46%);animation:.7s ease-in-out infinite alternate burn-glow;position:absolute;inset:-10px}.discard-card-deck-reveal{transform-origin:50%;perspective:600px;animation:.52s cubic-bezier(.22,.61,.36,1) deck-reveal-flip}.discard-card-deck-reveal .playing-card{backface-visibility:hidden;animation:.52s cubic-bezier(.22,.61,.36,1) deck-reveal-card-face}@keyframes deck-reveal-flip{0%{opacity:.85;transform:translate(-90px,-8px)rotate(-12deg)}60%{opacity:1;transform:translate(0)rotate(0)}to{opacity:1;transform:translate(0)rotate(0)}}@keyframes deck-reveal-card-face{0%{filter:brightness(.6);transform:rotateY(180deg)scale(.92)}60%{filter:brightness(1.1);transform:rotateY(20deg)scale(1.02)}to{filter:brightness();transform:rotateY(0)scale(1)}}@keyframes burn-card-flicker{0%{transform:translateY(0)scale(1)}to{transform:translateY(-2px)scale(1.02)}}@keyframes burn-glow{0%{opacity:.45;transform:scale(.96)}to{opacity:.9;transform:scale(1.05)}}.discard-empty{border-radius:var(--r-card);color:oklch(60% .06 158);text-align:center;border:2px dashed oklch(55% .08 158/.5);justify-content:center;align-items:center;width:60px;height:86px;padding:4px;font-size:.65em;display:flex}.player-zone{background:var(--surface);border-top:1px solid var(--card-border);flex-direction:column;flex-shrink:0;display:flex;box-shadow:0 -2px 12px #0000000f}.player-zones{flex-direction:column;display:flex}.player-zone-row{border-bottom:1px solid var(--surface-3);align-items:center;gap:14px;padding:10px 18px;display:flex}.player-hand-row{padding:14px 18px}.zone-label-col{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;width:72px;display:flex}.zone-label-text{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-size:.7em;font-weight:700}.zone-label-count{color:var(--ink-mid);font-family:Space Mono,monospace;font-size:.68em;font-weight:800}.player-card-zone{min-height:96px;padding-bottom:10px;position:relative}.zone-face-down-player{gap:6px;display:flex}.zone-face-up-player{z-index:2;gap:6px;display:flex;position:absolute;top:8px;left:0}.player-you-row{border-top:1px solid var(--surface-3);align-items:center;gap:14px;padding:10px 18px 14px;display:flex}.player-you-identity{flex-direction:column;flex-shrink:0;align-items:center;gap:3px;width:72px;display:flex}.player-you-row .zone-label-text{font-size:.65em}.action-bar-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.action-bar{justify-content:space-between;align-items:center;gap:10px;padding:8px 18px 14px;display:flex}.safe-watch-message{color:var(--ink-mid);flex-wrap:wrap;align-items:center;gap:10px;font-size:.82em;font-weight:600;display:flex}.pending-pickup-message,.pending-burn-message{color:var(--ink-mid);flex-wrap:wrap;align-items:center;gap:10px;font-size:.82em;font-weight:700;display:flex}.pending-pickup-message .status-badge,.pending-burn-message .status-badge{min-width:42px}.game-screen-finished{background:radial-gradient(circle at 50% 35%, oklch(96% .03 78), var(--surface-2))}.endgame-event-strip{border-bottom-color:oklch(84% .05 78)}.turn-badge-final{background:var(--gold-bg);color:oklch(40% .14 78)}.game-body-endgame{overflow:visible}.felt-center-endgame{justify-content:flex-start;padding:16px}.endgame-stage{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);align-items:stretch;gap:18px;width:100%;display:grid}.felt-table-endgame{flex-wrap:wrap;justify-content:center;min-height:300px;position:relative;overflow:hidden}.felt-table-endgame:before{content:"";border-radius:var(--r-lg);pointer-events:none;border:1px solid oklch(80% .08 78/.2);position:absolute;inset:16px;box-shadow:inset 0 0 42px oklch(75% .16 78/.18)}.final-card-spotlight{z-index:1;border-radius:var(--r-lg);background:oklch(99% .025 78/.12);flex-direction:column;align-items:center;gap:9px;min-width:180px;padding:14px 16px 12px;display:flex;position:relative;box-shadow:0 0 34px oklch(76% .16 78/.3)}.final-card-label{text-transform:uppercase;letter-spacing:.08em;color:oklch(86% .09 78);font-size:.72em;font-weight:800}.final-card-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:124px;display:flex}.final-card-wrap{filter:drop-shadow(0 8px 18px #00000047)}.final-card-caption{text-align:center;color:oklch(78% .06 158);max-width:230px;font-size:.76em;font-weight:700}.final-card-empty{color:oklch(74% .06 158)}.endgame-overlay{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-panel);border:1px solid oklch(82% .04 78);flex-direction:column;gap:14px;padding:16px;display:flex}.endgame-heading{flex-direction:column;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.endgame-heading h2{font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.1}.standings-list{flex-direction:column;gap:9px;padding:0;list-style:none;display:flex}.standing-row{border-radius:var(--r-md);background:var(--surface-2);border:1px solid #0000;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:10px;display:grid}.standing-gold{background:oklch(96% .06 78);border-color:oklch(78% .14 78)}.standing-silver{background:oklch(95% .025 240);border-color:oklch(76% .055 240)}.standing-bronze{background:oklch(94% .055 48);border-color:oklch(72% .12 48)}.standing-shithead{background:oklch(92% .055 108);border-color:oklch(62% .1 108)}.standing-rank-badge{width:34px;height:34px;box-shadow:var(--shadow-card);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:1.1em;display:inline-flex}.standing-main{flex-direction:column;min-width:0;display:flex}.standing-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-size:.68em;font-weight:800}.standing-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.95em;font-weight:800;overflow:hidden}.standing-stamp{border-radius:var(--r-sm);color:oklch(28% .08 108);text-transform:uppercase;letter-spacing:.04em;background:oklch(84% .08 108);justify-self:end;padding:4px 8px;font-size:.66em;font-weight:800;transform:rotate(-2deg)}.endgame-actions{margin-top:auto;padding-top:4px}.player-zone-endgame{border-top-color:oklch(82% .04 78)}.endgame-you-message{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.results-screen{flex-direction:column;gap:16px;max-width:940px;margin:0 auto;padding:20px;display:flex}.results-hero h1{font-size:clamp(1.5rem,3vw,2rem)}.results-layout{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}.results-column{flex-direction:column;gap:12px;display:flex}.results-list{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.results-row{border-radius:var(--r-md);background:var(--surface-2);align-items:center;gap:10px;padding:8px 10px;display:flex}.results-position{color:var(--ink-soft);min-width:2.2rem;font-family:Space Mono,monospace;font-weight:700}.results-name{flex:1;font-weight:600}.results-summary{justify-content:space-between}.results-callout{background:var(--teal-bg);border-radius:var(--r-md);border:1px solid oklch(83% .06 178);flex-direction:column;gap:4px;padding:12px;display:flex}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=920px){.app-shell{padding:12px 12px 20px}.lobby-screen{grid-template-columns:1fr;padding:16px}.results-layout,.endgame-stage{grid-template-columns:1fr}.felt-table{gap:16px;padding:16px 20px}.opponents-row{justify-content:flex-start;gap:8px;padding:10px 10px 6px;overflow-x:auto}.opponent-panel{min-width:230px;max-width:230px}.action-bar{flex-direction:column;align-items:stretch}.safe-watch-message,.pending-pickup-message,.pending-burn-message,.player-zone-row{align-items:flex-start}.player-card-zone{width:100%;padding-bottom:16px;overflow-x:auto}}@media (width<=640px){.home-screen{min-height:auto;padding:8px}.home-form{padding:18px}.game-screen{border-radius:var(--r-lg);min-height:auto}.game-event-strip{padding:8px 10px}.event-text{font-size:.76em}.turn-badge{padding:4px 10px;font-size:.72em}.felt-center-endgame{padding:10px}.felt-table-endgame{min-height:0}.final-card-spotlight{order:-1;width:100%}.standing-row{grid-template-columns:auto auto minmax(0,1fr)}.standing-row .status-badge,.standing-stamp{grid-column:3;justify-self:start}.player-you-row{flex-direction:column;align-items:flex-start}.player-you-identity{flex-direction:row;width:auto}.action-bar-buttons{width:100%}.action-bar-buttons .btn{flex:1}.setup-lock-btn{min-width:0}}
