:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}*{box-sizing:border-box}body{margin:0}#root{min-height:100vh}.app-page{box-sizing:border-box;color:#0f172a;background:linear-gradient(#f1f5f9 0%,#e2e8f0 100%);place-items:center;min-height:100vh;padding:24px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:grid}.panel{background:#f8fafc;border:1px solid #cbd5e1;border-radius:16px;width:min(680px,100%);margin-inline:auto;padding:24px;box-shadow:0 14px 30px #0f172a24}.panel-title{color:#0f172a;margin:0;font-size:1.75rem}.panel-subtitle{color:#334155;margin:8px 0 0}.panel-meta{color:#1e293b;margin:10px 0 0;font-size:.95rem}.warning-icon{color:#b45309;justify-content:center;align-items:center;margin-left:6px;font-size:.9rem;line-height:1;display:inline-flex}.field{margin-top:16px;display:block}.field-label{color:#1e293b;margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}.field-input{box-sizing:border-box;color:#0f172a;background:#fff;border:1px solid #94a3b8;border-radius:8px;width:100%;padding:10px 12px;font-size:16px}.field-input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb33}.single-action-row{margin-top:14px}.join-row{align-items:flex-end;gap:10px;margin-top:12px;display:flex}.join-field{flex:1;margin-top:0}.room-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:10px 14px;font-weight:700}.btn-primary{color:#fff;background:#1d4ed8}.btn-primary:hover{background:#1e40af}.btn-secondary{color:#0f172a;background:#fff;border-color:#94a3b8}.btn-secondary:hover{background:#e2e8f0}.player-list{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.player-item{background:#fff;border:1px solid #cbd5e1;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.player-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.player-info{flex-direction:column;gap:4px;display:flex}.player-name{color:#0f172a}.player-color-dot{vertical-align:middle;border:1px solid #94a3b8;border-radius:999px;width:11px;height:11px;margin-left:6px;display:inline-block}.player-id{color:#475569;overflow-wrap:anywhere;font-size:.8rem}.ready-pill{white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:700}.latency-pill{white-space:normal;text-align:right;overflow-wrap:anywhere}.ready-pill.ready{color:#14532d;background:#bbf7d0}.ready-pill.waiting{color:#78350f;background:#fde68a}.status-pill{color:#fff;white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:700}.status-pill.connected{background:#15803d}.status-pill.disconnected{background:#b91c1c}.lobby-controls{gap:12px;margin-top:16px;display:grid}.color-picker-grid{flex-wrap:wrap;gap:10px;display:flex}.color-swatch{cursor:pointer;border:2px solid #cbd5e1;border-radius:999px;width:34px;height:34px}.color-swatch.selected{border-color:#0f172a;box-shadow:0 0 0 2px #0f172a33}.color-swatch:disabled{cursor:not-allowed;opacity:.35}.play-area-section{margin-top:18px}.play-area-title{margin:0 0 10px;font-size:1.1rem}.play-area{aspect-ratio:1;touch-action:none;-webkit-user-select:none;user-select:none;background:#f1f5f9;border:2px dashed #94a3b8;border-radius:16px;width:100%;max-height:420px;position:relative;overflow:hidden}.player-circle{will-change:transform, left, top;backface-visibility:hidden;pointer-events:none;touch-action:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff}.player-circle.self{box-shadow:0 0 0 2px #0f172a}.player-circle-warning{color:#111827;text-shadow:0 0 2px #fffffff2;font-size:.8rem;line-height:1}.room-meta{color:#1e293b;border-top:1px solid #cbd5e1;gap:6px;margin-top:18px;padding-top:14px;display:grid}.room-meta p{overflow-wrap:anywhere;margin:0}@media (width<=640px){.app-page{padding:14px}.panel{padding:16px}.join-row{flex-direction:column;align-items:stretch}.room-header{flex-direction:column;align-items:flex-start}.player-item{align-items:flex-start}.player-right{justify-content:flex-start}.latency-pill{text-align:left}}.room-code-row{align-items:center;gap:8px;margin-top:8px;display:flex}.room-code{color:#334155;font-size:.9rem;font-weight:600}.btn-sm{padding:6px 10px;font-size:.8rem}.qr-modal-backdrop{z-index:50;background:#0f172a73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.qr-modal{text-align:center;background:#fff;border:1px solid #cbd5e1;border-radius:14px;width:min(360px,100%);padding:18px;box-shadow:0 20px 40px #0f172a47}.qr-modal-title{margin:0 0 10px;font-size:1.1rem}.qr-image{background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:min(280px,100%);height:auto}.qr-link{color:#475569;word-break:break-all;margin:12px 0;font-size:.8rem}.glitch-hud{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.glitch-hud span{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:700}.glitch-icon-card{text-align:center;background:#fff;border:1px solid #cbd5e1;border-radius:12px;margin-top:16px;padding:16px;position:relative;overflow:hidden}.glitch-icon-card.heat-surge-enabled{background:#fecaca;border-color:#ef4444;box-shadow:0 0 0 3px #ef444459}.heat-surge-pill{color:#475569;background:#e2e8f0;border:1px solid #cbd5e1}.heat-surge-pill.active{color:#7f1d1d;background:#fecaca;border-color:#ef4444}.heat-surge-callout{color:#991b1b;letter-spacing:.02em;margin:8px 0 6px;font-weight:800}.vote-indicator-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:14px;display:flex}.vote-indicator{border:1px solid #94a3b8;border-radius:999px;width:16px;height:16px;transition:filter .12s,opacity .12s,transform .12s}.vote-indicator.pending{filter:grayscale();opacity:.35}.vote-indicator.voted{filter:none;opacity:1;transform:scale(1.05)}.glitch-icon{font-size:4rem;line-height:1}.partial-break-stimulus{filter:contrast(1.2)drop-shadow(0 0 10px #f8717159);letter-spacing:-.08em;display:inline-block;transform:skew(-4deg)rotate(-2deg)}.corruption-intensity-medium{box-shadow:0 0 0 calc(1px + (1px * var(--corruption-medium-glow,0))) rgba(99, 102, 241, calc(.08 + (.2 * var(--corruption-medium-glow,0)))), 0 0 calc(4px + (14px * var(--corruption-medium-glow,0))) rgba(99, 102, 241, calc(.02 + (.18 * var(--corruption-medium-glow,0))))}.corruption-intensity-high{box-shadow:0 0 0 calc(2px + (1px * var(--corruption-high-glow,0))) rgba(220, 38, 38, calc(.15 + (.2 * var(--corruption-high-glow,0)))), 0 0 calc(8px + (16px * var(--corruption-high-glow,0))) rgba(220, 38, 38, calc(.06 + (.26 * var(--corruption-high-glow,0))))}.corruption-flicker-light{animation:.42s steps(2,end) infinite corruption-flicker}.corruption-flicker-heavy{animation:.12s steps(2,end) infinite corruption-flicker}.corruption-hue-light .glitch-icon{filter:hue-rotate(24deg)saturate(1.2)}.corruption-hue-heavy .glitch-icon{filter:hue-rotate(58deg)saturate(1.45)}.corruption-pulse-light .glitch-icon{animation:.4s ease-in-out infinite corruption-pulse}.corruption-pulse-heavy .glitch-icon{animation:.24s ease-in-out infinite corruption-pulse}.corruption-distort-light .glitch-icon{transform:skew(-3deg)}.corruption-distort-heavy .glitch-icon{transform:skew(-7deg)scale(1.04)}.corruption-invert-flash{animation:.9s steps(2,end) infinite corruption-invert-flash}.corruption-static-overlay:after{content:"";mix-blend-mode:screen;opacity:.9;pointer-events:none;background-image:repeating-linear-gradient(0deg,#ffffff29 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#ffffff14 0 1px,#0000 1px 4px);animation:.12s steps(2,end) infinite corruption-static-shift;position:absolute;inset:0}.corruption-edge-cracks-light:before,.corruption-edge-cracks-heavy:before{content:"";pointer-events:none;border-radius:inherit;mix-blend-mode:screen;background:linear-gradient(120deg,#0000 0 10%,#f8717142 10.5% 11.5%,#0000 12% 22%,#f8717133 23% 24%,#0000 25% 100%),linear-gradient(-75deg,#0000 0 70%,#fbbf2433 71% 72%,#0000 73% 100%);position:absolute;inset:0}.corruption-edge-cracks-heavy:before{opacity:1;filter:saturate(1.2)}.corruption-edge-cracks-light:before{opacity:.65}.corruption-transition-beat-unstable{animation:.11s linear infinite round-transition-shake}.corruption-color-instability-light .glitch-icon{animation:.85s linear infinite corruption-color-instability}.corruption-distort-pulse-light .glitch-icon{animation:.85s ease-in-out infinite corruption-distort-pulse}.corruption-static-pulse-before-reveal:after{animation:.2s steps(2,end) infinite corruption-static-shift}.corruption-static-surge-transition{animation:.26s steps(2,end) infinite corruption-static-surge}.corruption-transition-pulse-bright .glitch-icon{animation:.3s ease-in-out infinite corruption-pulse-bright}.corruption-multiple-light-effects{animation:.36s steps(2,end) infinite corruption-flicker}.corruption-two-heavy-layers{animation:.11s steps(2,end) infinite corruption-flicker}.corruption-overload-reveal .glitch-icon{animation:.21s steps(2,end) infinite corruption-overload-reveal}.corruption-overload-transition{animation:60ms linear infinite round-transition-shake}.corruption-maximum{animation:90ms steps(2,end) infinite corruption-flicker}@keyframes corruption-color-instability{0%{filter:hue-rotate()saturate(1.1)}50%{filter:hue-rotate(18deg)saturate(1.35)}to{filter:hue-rotate(-12deg)saturate(1.15)}}@keyframes corruption-distort-pulse{0%,to{transform:skew(0)scale(1)}50%{transform:skew(-4deg)scale(1.03)}}@keyframes corruption-pulse-bright{0%,to{filter:brightness();transform:scale(1)}50%{filter:brightness(1.28);transform:scale(1.08)}}@keyframes corruption-static-surge{0%,to{filter:none}40%{filter:contrast(1.2)brightness(1.12)}60%{filter:contrast(.92)brightness(.9)}}@keyframes corruption-overload-reveal{0%,to{filter:none;transform:scale(1)}50%{filter:brightness(1.35)contrast(1.22);transform:scale(1.06)skew(-5deg)}}@keyframes corruption-flicker{0%{opacity:1}50%{opacity:.76}to{opacity:1}}@keyframes corruption-pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes corruption-invert-flash{0%,85%,to{filter:none}90%{filter:invert()}}@keyframes corruption-static-shift{0%{transform:translate(0)}50%{transform:translate(-1px,1px)}to{transform:translate(1px,-1px)}}.round-transition-shake{animation:80ms linear infinite round-transition-shake}@keyframes round-transition-shake{0%{transform:translate(0)rotate(0)}25%{transform:translate(-4px)rotate(-5deg)}50%{transform:translate(4px)rotate(5deg)}75%{transform:translate(-3px)rotate(-4deg)}to{transform:translate(0)rotate(0)}}.save-it-freeze{pointer-events:none;filter:saturate(1.35)contrast(1.08);animation:.12s steps(2,end) 4 save-it-freeze-pulse;transform:scale(1.01)}@keyframes save-it-freeze-pulse{0%{opacity:1}50%{opacity:.82}to{opacity:1}}.answer-row{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.answer-btn{min-height:54px;font-size:1.1rem}.kill-screen{background:#fff1f2;border:1px solid #fecdd3;border-radius:12px;margin-top:16px;padding:14px}.kill-screen h2{margin-top:0}.kill-screen p{margin:8px 0}.save-it-callout{text-align:center;letter-spacing:.08em;color:#b91c1c;text-shadow:0 0 14px #f87171a6;margin-top:12px;font-weight:900;animation:.16s steps(2,end) 4 save-it-callout-flash}@keyframes save-it-callout-flash{0%{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.pregame-countdown{color:#0f172a;text-shadow:0 8px 24px #0f172a47;pointer-events:none;z-index:60;background:#fff;place-items:center;font-size:clamp(5rem,20vw,12rem);font-weight:900;display:grid;position:fixed;inset:0}.pregame-loading-text{color:#0f172a;text-align:center;background:#fff;place-items:center;min-height:100vh;padding:24px;font-size:clamp(1.4rem,4vw,2rem);font-weight:700;display:grid}.pregame-blank-screen{min-height:100vh}.debug-button{position:absolute;top:12px;right:12px}.panel{position:relative}.debug-modal-backdrop{z-index:55;background:#0f172a80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.debug-modal{background:#fff;border-radius:12px;width:min(720px,100%);max-height:85vh;padding:16px;overflow:auto}.debug-modal-header{justify-content:space-between;align-items:center;display:flex}.debug-json{color:#e2e8f0;background:#0f172a;border-radius:8px;padding:12px;font-size:12px;overflow:auto}.store-action-list{flex-direction:column;gap:10px;margin-top:14px;display:flex}.store-action-list .btn{text-align:center;width:100%}.store-close-btn{margin-top:10px}.orientation-warning-overlay{z-index:9999;background:#030712c7;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.orientation-warning-card{color:#f8fafc;text-align:center;background:#111827;border:1px solid #f59e0b;border-radius:12px;max-width:320px;padding:1rem 1.25rem;font-weight:700}.purchase-result-overlay{z-index:90;background:#0f172a70;place-items:center;display:grid;position:fixed;inset:0}.purchase-result-card{color:#fff;border:2px solid #0000;border-radius:14px;width:min(420px,100vw - 2rem);padding:1rem 1.2rem;box-shadow:0 16px 40px #0206176b}.purchase-result-card h2{margin:0 0 .5rem;font-size:clamp(1.15rem,3.5vw,1.5rem)}.purchase-result-card p{color:#ffffffed;margin:0}.purchase-result-card .btn{margin:1rem auto 0;display:block}.purchase-result-card.success{background:linear-gradient(145deg,#16a34a,#166534);border-color:#86efacdb}.purchase-result-card.failed{background:linear-gradient(145deg,#dc2626,#7f1d1d);border-color:#fecacacc}.connection-banner{color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;margin-top:14px;padding:10px 12px;font-size:.9rem}.connection-banner.connected{color:#14532d;background:#f0fdf4;border-color:#86efac}.connection-banner.connecting,.connection-banner.reconnecting{color:#78350f;background:#fffbeb;border-color:#fde68a}.connection-banner.degraded{color:#9a3412;background:#fff7ed;border-color:#fdba74}.connection-banner.disconnected{color:#991b1b;background:#fef2f2;border-color:#fecaca}.status-pill.connecting{background:#d97706}.status-pill.reconnecting{color:#111827;background:#f59e0b}.status-pill.degraded{background:#ea580c}
