:root{color-scheme:dark;--bg: #05070c;--panel: #12172400;--text: #f4f6fb;--text-muted: #9aa3b8;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);overflow:hidden}.display-page{position:relative;height:100vh;width:100vw}.code-entry-screen{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center}.code-entry-screen h1{font-size:clamp(2.5rem,6vw,5rem);margin:0}.code-entry-screen form{display:flex;flex-direction:column;gap:16px;align-items:center}.code-entry-input{font-size:2rem;text-align:center;letter-spacing:.1em;padding:16px 24px;border-radius:12px;border:1px solid #2a3348;background:#0d1220;color:var(--text);width:280px}.code-entry-button{font-size:1.2rem;padding:14px 32px;border-radius:999px;border:none;background:#6366f1;color:#fff;font-weight:700;cursor:pointer}.code-entry-button:disabled{opacity:.5}.code-entry-error{color:#fca5a5}.lobby-view{height:100%;display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,5vh,80px) clamp(24px,6vw,100px);gap:clamp(24px,5vh,60px)}.lobby-header{display:flex;justify-content:space-between;align-items:center}.lobby-title{font-size:clamp(1.5rem,3vw,2.5rem);color:var(--text-muted);letter-spacing:.3em}.lobby-code{font-size:clamp(4rem,12vw,9rem);font-weight:800;letter-spacing:.08em}.lobby-qr{background:#0d1220;padding:20px;border-radius:20px}.lobby-teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(16px,2vw,32px)}.lobby-team-card{border:3px solid;border-radius:20px;padding:clamp(20px,3vw,36px);display:flex;flex-direction:column;align-items:center;gap:10px}.lobby-team-icon{font-size:clamp(2.5rem,5vw,4rem)}.lobby-team-name{font-size:clamp(1.2rem,2vw,1.8rem);font-weight:800;letter-spacing:.05em}.lobby-team-count{font-size:clamp(1rem,1.5vw,1.4rem);color:var(--text-muted)}.lobby-hint{text-align:center;color:var(--text-muted);font-size:clamp(1rem,1.5vw,1.4rem)}.question-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(16px,3vh,40px);padding:clamp(24px,5vh,60px) clamp(24px,6vw,100px)}.question-countdown{font-size:clamp(3rem,8vw,6rem);font-weight:800;min-width:2ch;text-align:center}.question-countdown.is-urgent{color:#ef4444;animation:pulse .6s ease-in-out infinite}.question-countdown.is-locked{color:var(--text-muted)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.question-screen-prompt{font-size:clamp(1.8rem,4vw,3.2rem);text-align:center;max-width:1100px;margin:0}.question-screen-options{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,24px);width:100%;max-width:1100px}.question-screen-option{border-radius:16px;padding:clamp(20px,3vw,32px);font-size:clamp(1.2rem,2.2vw,1.8rem);font-weight:700;color:#fff;display:flex;align-items:center;gap:16px}.question-screen-letter{font-size:.9em;opacity:.75}.answer-progress-bar{width:100%;max-width:700px;height:14px;background:#1a2233;border-radius:999px;overflow:hidden}.answer-progress-fill{height:100%;background:#6366f1;transition:width .3s ease}.answer-progress-label{color:var(--text-muted);font-size:clamp(1rem,1.5vw,1.3rem)}.reveal-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(16px,2.5vh,32px);background:radial-gradient(circle at 50% 30%,#6366f1,#05070c 75%)}.reveal-trophy{font-size:clamp(4rem,10vw,8rem)}.reveal-screen.is-animated .reveal-trophy{animation:trophy-drop .6s cubic-bezier(.34,1.56,.64,1)}.reveal-screen.is-animated.is-blinking{animation:winner-blink 1s ease-in-out infinite}@keyframes winner-blink{0%,to{background:radial-gradient(circle at 50% 30%,var(--winner-color),#05070c 75%)}50%{background:radial-gradient(circle at 50% 30%,var(--winner-color),var(--winner-color) 75%)}}@keyframes trophy-drop{0%{transform:translateY(-60px) scale(.5);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.reveal-winner-name{font-size:clamp(2.5rem,7vw,5.5rem);font-weight:900;text-align:center;text-shadow:0 4px 24px rgba(0,0,0,.4)}.reveal-screen.is-animated .reveal-winner-name{animation:winner-pop .5s ease-out .2s both}@keyframes winner-pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.reveal-breakdown{width:100%;max-width:760px;display:flex;flex-direction:column;gap:14px}.reveal-breakdown-row{display:grid;grid-template-columns:200px 1fr 60px;align-items:center;gap:16px;font-size:clamp(1rem,1.6vw,1.4rem);font-weight:700}.reveal-breakdown-bar-track{height:20px;background:#ffffff1a;border-radius:999px;overflow:hidden}.reveal-breakdown-bar-fill{height:100%;border-radius:999px;transition:width .8s ease}.reveal-breakdown-pct{text-align:right;color:var(--text-muted)}.leaderboard-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(20px,3vh,40px);padding:clamp(24px,5vh,60px)}.leaderboard-screen h1{font-size:clamp(2rem,5vw,3.5rem);margin:0}.leaderboard-subtitle{color:var(--text-muted);font-size:clamp(1.1rem,2vw,1.6rem);margin:-12px 0 0}.leaderboard-screen-list{list-style:none;margin:0;padding:0;width:100%;max-width:800px;display:flex;flex-direction:column;gap:14px}.leaderboard-screen-list li{display:grid;grid-template-columns:50px 60px 1fr auto;align-items:center;gap:16px;border:2px solid #2a3348;border-radius:16px;padding:clamp(14px,2vw,22px) clamp(20px,3vw,32px);font-size:clamp(1.2rem,2.2vw,1.8rem);font-weight:700}.leaderboard-screen-list li.is-leader{background:#eab3081f;border-color:#eab308}.leaderboard-rank{color:var(--text-muted)}.leaderboard-points{text-align:right}.pause-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#05070cd9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700}.pause-overlay-icon{font-size:clamp(3rem,6vw,5rem)}.victory-video-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;display:flex;align-items:center;justify-content:center;z-index:50}.victory-video-overlay video{width:100%;height:100%;object-fit:contain}
