:root{--bg: #15112b;--panel: rgba(30, 24, 62, .82);--text: #f5f2ff;--muted: #a79fd0;--primary: #ff5fa2;--primary-2: #ffb347;--radius: 18px;--panel-w: clamp(260px, 22vw, 440px)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:Fredoka,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.screen{position:fixed;top:0;right:0;bottom:0;left:0}.landing{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:8vh;pointer-events:none;text-align:center}.landing .btn{pointer-events:auto;margin-top:auto;margin-bottom:10vh}.logo{margin:0;font-size:clamp(2.6rem,7vw,5.5rem);font-weight:700;letter-spacing:-.02em;background:linear-gradient(90deg,var(--primary),var(--primary-2));-webkit-background-clip:text;background-clip:text;color:transparent}.logo.small{font-size:2rem}.tagline{color:var(--muted);font-size:clamp(1rem,2vw,1.4rem);margin:.4em 0 0}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:.9em 1.6em;font:inherit;font-weight:600;font-size:1.1rem;color:#fff;background:linear-gradient(90deg,var(--primary),var(--primary-2));box-shadow:0 8px 24px #ff5fa259;cursor:pointer;transition:transform .12s,opacity .2s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.4;cursor:default}.btn-big{font-size:1.6rem;padding:.8em 2.2em}.btn-ghost{background:#ffffff14;box-shadow:none;border:1px solid rgba(255,255,255,.15)}.input{width:100%;padding:.8em 1em;border-radius:14px;border:2px solid rgba(255,255,255,.12);background:#00000040;color:var(--text);font:inherit;font-size:1.2rem;outline:none}.input:focus{border-color:var(--primary)}.code-input{text-align:center;letter-spacing:.4em;font-size:1.8rem;font-weight:700}.stage-area{position:absolute;inset:0 calc(var(--panel-w) + 48px) 0 0}.lobby-panel{position:absolute;top:24px;right:24px;width:var(--panel-w);padding:22px;border-radius:var(--radius);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);text-align:center}.qr-box{background:#fff;border-radius:14px;overflow:hidden;line-height:0}.qr-box svg{width:100%;height:auto}.room-label{margin-top:14px;color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em}.room-code{font-size:clamp(2rem,3.4vw,4rem);font-weight:700;letter-spacing:.15em}.join-url{color:var(--muted);font-size:.75rem;word-break:break-all}.player-count{margin-top:14px;font-size:1.1rem;color:var(--muted)}.player-count span{color:var(--text);font-weight:700;font-size:1.6rem}.waiting{position:absolute;left:0;right:calc(var(--panel-w) + 48px);bottom:12vh;text-align:center;font-size:clamp(1.4rem,3vw,2.4rem);color:var(--muted)}.dots:after{content:"";animation:dots 1.4s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.nametag{padding:4px 14px;border-radius:999px;background:#141028d9;border:2px solid;font-weight:600;font-size:22px;white-space:nowrap;color:#fff;-webkit-user-select:none;user-select:none}.toasts{position:absolute;top:24px;left:24px;display:flex;flex-direction:column;gap:10px}.toast{padding:10px 18px;border-radius:999px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);animation:toast 3s ease forwards}@keyframes toast{0%{opacity:0;transform:translate(-30px)}10%,85%{opacity:1;transform:none}to{opacity:0}}.mobile{min-height:100%;max-width:480px;margin:0 auto;padding:20px 16px 28px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.mobile.center{justify-content:center;color:var(--muted);font-size:1.2rem}.preview{width:100%;aspect-ratio:1;max-height:46vh;border-radius:var(--radius);overflow:hidden}.card{width:100%;padding:18px;border-radius:var(--radius);background:var(--panel);display:flex;flex-direction:column;gap:12px;text-align:left}.card label{color:var(--muted);font-size:.9rem}.card .btn{width:100%}.error{color:#ff8a8a;margin:0}.muted{color:var(--muted);font-size:.9rem}.joined-name{font-size:2.2rem;font-weight:700}.joined p{margin:.3em 0;font-size:1.15rem}@media (max-width: 760px){.lobby-panel{--panel-w: 190px;padding:14px;top:12px;right:12px}.room-code{font-size:1.8rem}.waiting,.stage-area{right:0}}.stage-area.full{right:0}.lobby-panel{transition:width .4s,padding .4s}.lobby-panel.compact{--panel-w: clamp(130px, 9vw, 170px);padding:10px}.lobby-panel.compact .room-label{margin-top:6px;font-size:.65rem}.lobby-panel.compact .room-code{font-size:1.3rem}.lobby-panel.compact .player-count{margin-top:4px;font-size:.8rem}.lobby-panel.compact .player-count span{font-size:1rem}.brand{position:absolute;top:20px;left:24px;font-weight:700;font-size:1.3rem;background:linear-gradient(90deg,var(--primary),var(--primary-2));-webkit-background-clip:text;background-clip:text;color:transparent}.brand span{color:var(--muted);-webkit-text-fill-color:var(--muted);font-weight:400}.toasts{top:64px}kbd{display:inline-block;margin-left:.4em;padding:.1em .5em;border-radius:6px;border:1px solid rgba(255,255,255,.4);font:inherit;font-size:.7em;vertical-align:middle}.hud-bottom{position:absolute;left:0;right:calc(var(--panel-w) + 48px);bottom:8vh;display:flex;flex-direction:column;align-items:center;text-align:center}.hud-hint{font-size:clamp(1.3rem,2.6vw,2.2rem);color:var(--muted);margin:0 0 .6em}.hud-hint small{font-size:.6em}.hud-top{position:absolute;top:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:20px;padding:14px 28px 14px 14px;border-radius:999px;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hud-title{font-size:clamp(1.4rem,2.6vw,2.4rem);font-weight:700}.hud-sub{color:var(--muted);font-size:1.1rem}.hud-corner-hint{position:absolute;right:24px;bottom:20px;color:var(--muted);font-size:1.1rem}.countdown{position:relative;flex:none}.countdown svg{width:100%;height:100%;transform:rotate(-90deg)}.countdown-track{fill:none;stroke:#ffffff1f;stroke-width:8}.countdown-bar{fill:none;stroke:var(--primary-2);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .25s linear,stroke .3s}.countdown span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:2rem;font-weight:700}.countdown.urgent .countdown-bar{stroke:#ff4d4d}.countdown.urgent span{color:#ff6b6b;animation:pulse 1s infinite}@keyframes pulse{50%{transform:scale(1.15)}}.actor-label{display:flex;flex-direction:column;align-items:center;gap:8px}.bubble{position:relative;max-width:240px;padding:8px 14px;border-radius:16px;background:#fff;color:#1d1740;font-size:18px;font-weight:600;line-height:1.2;text-align:center;width:max-content;animation:pop .35s cubic-bezier(.3,1.6,.5,1)}.bubble:after{content:"";position:absolute;left:50%;bottom:-7px;margin-left:-7px;border:7px solid transparent;border-bottom:0;border-top-color:#fff}.bubble-emoji{font-size:30px;padding:4px 10px}@keyframes pop{0%{transform:scale(0)}}.reveal-card,.results-card{position:absolute;left:50%;bottom:7vh;transform:translate(-50%);width:min(900px,86vw);padding:22px 32px;border-radius:24px;background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);text-align:center;animation:rise .4s ease-out}@keyframes rise{0%{opacity:0;transform:translate(-50%,30px)}}.reveal-name{color:var(--muted);font-size:1.3rem}.reveal-idea{font-size:clamp(1.6rem,3.4vw,3rem);font-weight:700;margin:.2em 0 .3em}.stamp{display:inline-block;padding:6px 22px;border-radius:999px;font-weight:700;font-size:1.6rem;animation:stamp .45s .3s cubic-bezier(.3,1.8,.5,1) both}.stamp-fried{background:#2a2a2a;color:#ffcf40;border:3px solid #ffcf40}.stamp-saved{background:#ffd54a;color:#3a2a00}@keyframes stamp{0%{opacity:0;transform:scale(2.2) rotate(-8deg)}}.results-card{bottom:5vh}.results-kicker{color:#ffd54a;font-size:1.3rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.results-idea+.results-idea{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.results-text{font-size:clamp(1.8rem,4vw,3.6rem);font-weight:700;line-height:1.1;margin-top:.2em}.results-author{color:var(--muted);font-size:1.3rem;margin-top:.3em}.flash{position:fixed;top:0;right:0;bottom:0;left:0;background:#eaf6ff;pointer-events:none;animation:flash .6s ease-out forwards}@keyframes flash{0%,12%{opacity:.9}18%{opacity:.2}26%{opacity:.7}to{opacity:0}}.phase{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px}.phase h2{margin:0;font-size:1.7rem}.phase .btn{width:100%}.idea-input{resize:none;font-size:1.25rem;line-height:1.3}.char-count{align-self:flex-end;color:var(--muted);font-size:.8rem;margin-top:-6px}.preview-small{max-height:30vh}.ballot{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:8px}.ballot label{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:var(--panel);border:2px solid transparent;text-align:left;font-size:1.1rem;cursor:pointer;transition:border-color .15s,background .15s}.ballot input{position:absolute;opacity:0;pointer-events:none}.ballot .check{flex:none;width:30px;height:30px;border-radius:8px;border:2px solid rgba(255,255,255,.3);display:grid;place-items:center}.ballot label.marked{border-color:#ffcf40;background:#ffcf401f}.ballot label.marked .check{border-color:#ffcf40;background:#ffcf40}.ballot label.marked span:last-child{text-decoration:line-through;text-decoration-color:#ffcf40b3}.outcome{padding:14px 20px;border-radius:16px;font-size:1.3rem;font-weight:700;width:100%}.outcome small{display:block;font-size:.8em;font-weight:400;opacity:.8}.outcome.fried{background:#2a2a2a;color:#ffcf40}.outcome.saved{background:#ffd54a;color:#3a2a00}.winners{text-align:center}.winner{display:flex;flex-direction:column;gap:2px;font-size:1.3rem}.nametag.offline{opacity:.5;border-style:dashed}.link-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--muted);font:inherit;font-size:.85rem;text-decoration:underline;cursor:pointer;margin-top:10px}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:10;padding:8px;background:#ffcf40;color:#3a2a00;font-weight:600;text-align:center}
