:root{--bg: #1b1650;--bg2: #2c1f78;--panel: rgba(255, 255, 255, .08);--panel-strong: rgba(255, 255, 255, .14);--text: #ffffff;--muted: rgba(255, 255, 255, .7);--accent: #ffc23d;--pink: #ff5470;--good: #2fbf71;--bad: #ff5470;--opt0: #e5484d;--opt1: #2f6fed;--opt2: #e09b12;--opt3: #2e9e5b;--byu: #1f5fc4;--byu-dark: #002e5d;--utah: #cc0000;--utah-dark: #7a0000;--radius: 18px;font-family:Fredoka,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%}body{background:radial-gradient(1200px 800px at 20% 0%,var(--bg2),var(--bg) 60%) fixed,var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:var(--accent)}h1,h2,h3{margin:0;font-weight:700;line-height:1.15}.muted{color:var(--muted)}.small{font-size:.85em}.center-text{text-align:center}.center{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px 16px;text-align:center}.banner{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--accent);color:#222;text-align:center;font-weight:600;padding:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:999px;background:var(--panel-strong);font-weight:600;text-decoration:none;color:var(--text);transition:transform .1s ease,filter .15s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);color:#1b1650;box-shadow:0 6px #b8860b}.btn-primary:active{box-shadow:0 2px #b8860b;transform:translateY(4px)}.btn-primary:disabled{background:var(--panel-strong);color:var(--muted);box-shadow:none}.btn-big{width:100%;padding:16px;font-size:1.25rem}.btn-ghost{padding:10px 16px;border-radius:999px;color:var(--muted);font-weight:500}.btn-fs{color:var(--text);background:var(--panel-strong)}.btn-ghost:hover{background:var(--panel);color:var(--text)}.input{width:100%;font:inherit;font-size:1.25rem;padding:14px 16px;border-radius:14px;border:3px solid transparent;background:#fff;color:#1b1650;outline:none}.input:focus{border-color:var(--accent)}.input-code{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-size:2rem;font-weight:700}.pill{display:inline-block;padding:6px 16px;border-radius:999px;background:var(--panel-strong);font-weight:600}.pill-bonus{background:linear-gradient(90deg,#ff7a18,#ff2d55)}.team-badge{display:inline-block;padding:1px 8px;border-radius:6px;font-size:.7em;font-weight:700;vertical-align:middle}.team-byu{background:var(--byu)}.team-utah{background:var(--utah)}.team-text-byu{color:#8db8ff;font-weight:600}.team-text-utah{color:#ff8080;font-weight:600}.streak{margin-left:8px;color:var(--accent);font-weight:700}.logo{display:flex;flex-direction:column;align-items:center;line-height:.9;transform:rotate(-3deg)}.logo-word{font-size:clamp(2.5rem,7vw,5.5rem);font-weight:700;text-shadow:0 5px 0 rgba(0,0,0,.3)}.logo-accent{color:var(--accent);margin-top:-.05em}.logo-small .logo-word{font-size:2rem}.subtitle{color:var(--muted);font-size:1.1rem;margin:12px 0 0;text-align:center}.pop{animation:pop .35s cubic-bezier(.3,1.6,.6,1) both}@keyframes pop{0%{transform:scale(.6);opacity:0}}.slide-up{animation:slideup .5s .4s ease-out both}@keyframes slideup{0%{transform:translateY(30px);opacity:0}}.host{height:100vh;height:100dvh;overflow:hidden;padding:3vh 4vw 11vh;display:flex;flex-direction:column;font-size:max(9px,min(1.6vw,2.85vh))}.host.is-bonus{background:radial-gradient(1200px 700px at 50% -10%,rgba(255,90,40,.35),transparent 70%)}.host-controls{position:fixed;right:2vw;bottom:2.5vh;display:flex;gap:10px;align-items:center;z-index:20}.host-controls .btn-primary{font-size:1.1em;padding:.55em 1.2em}.host-controls .btn-ghost{padding:.45em .8em}.lobby{display:flex;flex-direction:column;gap:3vh;flex:1}.lobby-head{display:flex;flex-direction:column;align-items:center}.lobby-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:3vw;align-items:start}.join-card{background:#fff;color:#1b1650;border-radius:28px;padding:3vh 2vw;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 12px #00000040}.join-label{margin:0;font-size:.9em;color:#5a5689}.join-host{margin:4px 0 12px;font-size:1.5em;font-weight:700}.room-code{font-size:4.5em;font-weight:700;letter-spacing:.12em;line-height:1;color:#e5484d;margin:4px 0 12px}.qr{width:min(15vw,27vh);height:auto;image-rendering:pixelated}.lobby-side{display:flex;flex-direction:column;gap:2vh}.mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:var(--radius);background:var(--panel);border:3px solid transparent;font-weight:600;text-align:left}.mode-on{background:var(--panel-strong);border-color:var(--accent)}.mode-icon{font-size:1.6em}.players-head{font-size:1.3em}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{padding:8px 18px;border-radius:999px;background:var(--panel-strong);font-weight:600;font-size:1.05em}.chip-off{opacity:.45}.chip-byu{background:var(--byu)}.chip-utah{background:var(--utah)}.chip-right{background:var(--good)}.team-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:14px}.team-col{border-radius:var(--radius);padding:14px;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;min-height:20vh}.team-col-head{width:100%;font-weight:700;font-size:1.2em;margin-bottom:4px}.team-col-byu{background:linear-gradient(160deg,var(--byu),var(--byu-dark))}.team-col-utah{background:linear-gradient(160deg,var(--utah),var(--utah-dark))}.team-col-none{background:var(--panel)}.team-col .chip{background:#fff3}.qview,.reveal{display:flex;flex-direction:column;gap:2.5vh;flex:1}.q-top{display:flex;justify-content:space-between;align-items:center}.answered{font-size:1.1em;color:var(--muted)}.answered b{color:var(--text);font-size:1.4em}.q-prompt{font-size:2.3em;text-align:center;background:#fff;color:#1b1650;border-radius:24px;padding:3vh 3vw;box-shadow:0 10px #00000040;text-wrap:balance}.q-prompt-small{font-size:1.5em;padding:2vh 2.5vw}.q-mid{display:flex;align-items:center;justify-content:center;gap:3vw}.hint{font-size:1.6em;font-weight:600}.timer{position:relative;width:7em;height:7em;flex:none}.timer svg{width:100%;height:100%}.timer-track{fill:#00000040;stroke:#ffffff26;stroke-width:8}.timer-fill{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .1s linear}.timer-low .timer-fill{stroke:var(--pink)}.timer-num{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:2.6em;font-weight:700}.timer-low .timer-num{animation:pulse 1s infinite}@keyframes pulse{50%{transform:scale(1.12)}}.opts{display:grid;grid-template-columns:1fr 1fr;gap:1.6vh 1.2vw}.opts-2{grid-template-columns:1fr 1fr}.opt{display:flex;align-items:center;gap:18px;padding:2.4vh 1.6vw;border-radius:var(--radius);font-size:1.5em;font-weight:600;text-align:left;box-shadow:0 6px #0000004d;position:relative;overflow:hidden;transition:opacity .3s,transform .3s}.opt-mark{font-size:1.2em;width:1.4em;text-align:center;flex:none}.opt-text{flex:1}.opt-0{background:var(--opt0)}.opt-1{background:var(--opt1)}.opt-2{background:var(--opt2)}.opt-3{background:var(--opt3)}.opt-true{background:var(--opt1)}.opt-false{background:var(--opt0)}.opts-reveal .opt-wrong{opacity:.35}.opts-reveal .opt-correct{transform:scale(1.03);outline:5px solid #fff}.opt-count{display:flex;align-items:center;gap:10px;width:18%;justify-content:flex-end}.opt-bar{height:.6em;border-radius:999px;background:#ffffffb3;transition:width .6s ease-out;min-width:4px}.answer-big{font-size:3em;font-weight:700;text-align:center;color:#fff;background:var(--good);border-radius:24px;padding:2vh 2vw;align-self:center;box-shadow:0 8px #00000040}.typed-reveal,.number-reveal{display:flex;flex-direction:column;gap:2vh;align-items:center}.guesses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 2vw;width:min(100%,60em)}.guess{display:grid;grid-template-columns:1fr auto auto;gap:16px;padding:8px 16px;border-radius:12px;background:var(--panel);font-weight:600}.guess-best{background:var(--good)}.guess-val{font-weight:700}.guess-pts{color:var(--accent);min-width:4.5em;text-align:right}.guess-best .guess-pts{color:#fff}.learn{background:linear-gradient(135deg,#ffc23d2e,#ffffff0f);border:2px solid rgba(255,194,61,.55);border-radius:24px;padding:2.2vh 2.4vw}.learn-label{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.85em}.learn-text{font-size:1.45em;margin:8px 0 12px;line-height:1.3;text-wrap:pretty}.learn-src{color:var(--muted);font-size:.95em}.learn-src b{color:var(--text)}.scores{display:flex;flex-direction:column;gap:3vh;align-items:center}.scores-title{font-size:3em}.board{list-style:none;margin:0;padding:0;width:min(100%,50em);display:flex;flex-direction:column;gap:10px}.board-row{display:grid;grid-template-columns:2.2em 1fr auto auto;align-items:center;gap:18px;padding:12px 22px;border-radius:16px;background:var(--panel-strong);font-size:1.35em;font-weight:600;animation:slideup .4s ease-out both;cursor:pointer}.board-row:nth-child(1){background:linear-gradient(90deg,#ffc23d,#ff9f1c);color:#1b1650}.board-row:nth-child(2){animation-delay:.05s}.board-row:nth-child(3){animation-delay:.1s}.board-row:nth-child(4){animation-delay:.15s}.board-row:nth-child(5){animation-delay:.2s}.board-rank{font-weight:700;text-align:center}.board-gain{color:var(--good);font-size:.85em}.board-row:nth-child(1) .board-gain{color:#145c2f}.board-row:nth-child(1) .streak{color:#b42318}.board-score{font-weight:700;min-width:4.5em;text-align:right}.teambar-wrap{width:min(100%,60em)}.teambar-labels{display:flex;justify-content:space-between;font-size:1.6em;font-weight:700;margin-bottom:10px}.teambar-labels em{font-style:normal;color:var(--good);font-size:.7em}.teambar{display:flex;height:2.6em;border-radius:999px;overflow:hidden;box-shadow:0 6px #0000004d;background:var(--utah)}.teambar-byu{background:linear-gradient(90deg,var(--byu-dark),var(--byu));transition:width 1s cubic-bezier(.3,1.3,.6,1)}.teambar-utah{flex:1;background:linear-gradient(90deg,var(--utah),var(--utah-dark))}.bonus-intro{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2vh}.bonus-flame{font-size:6em;line-height:1}.bonus-title{font-size:5em;background:linear-gradient(90deg,#ffc23d,#ff5470);-webkit-background-clip:text;background-clip:text;color:transparent}.bonus-intro h2{font-size:2em}.bonus-sub{font-size:1.6em;margin:0}.final{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3vh;text-align:center}.team-winner{font-size:3em;font-weight:700;padding:2vh 3vw;border-radius:24px;background:var(--panel-strong)}.team-winner-byu{background:linear-gradient(135deg,var(--byu),var(--byu-dark))}.team-winner-utah{background:linear-gradient(135deg,var(--utah),var(--utah-dark))}.team-final-scores{font-size:.45em;opacity:.85;margin-top:6px}.podium{display:flex;align-items:flex-end;gap:1.5vw}.podium-col{width:13em;display:flex;flex-direction:column;align-items:center;gap:6px;animation:slideup .6s ease-out both}.podium-1{animation-delay:1.2s}.podium-2{animation-delay:.6s}.podium-name{font-size:1.6em;font-weight:700}.podium-score{color:var(--muted)}.podium-block{width:100%;display:grid;place-items:center;border-radius:18px 18px 0 0;font-size:2.2em;font-weight:700}.podium-1 .podium-block{height:30vh;background:linear-gradient(#ffd45c,#e0a400);color:#1b1650}.podium-2 .podium-block{height:21vh;background:linear-gradient(#e3e6ee,#a3a9b8);color:#1b1650}.podium-3 .podium-block{height:14vh;background:linear-gradient(#e7a36b,#a8622c)}.final-invite{font-size:1.3em;max-width:40em;margin:0}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.confetti span{position:absolute;top:-20px;width:12px;height:18px;border-radius:3px;animation:fall linear infinite}@keyframes fall{to{top:110vh;transform:rotate(720deg) translate(60px)}}.final>*:not(.confetti){position:relative;z-index:1}.phone{min-height:100%;display:flex;flex-direction:column;padding:0 16px calc(16px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto}.phone-byu{box-shadow:inset 0 6px 0 var(--byu)}.phone-utah{box-shadow:inset 0 6px 0 var(--utah)}.phone-join{justify-content:center;align-items:stretch;gap:16px;padding-top:32px}.join-form{display:flex;flex-direction:column;gap:16px;margin-top:12px}.join-form label{display:flex;flex-direction:column;gap:6px;font-weight:600}.err{color:#ffb3c0;font-weight:600;margin:0}.host-link{text-align:center;color:var(--muted);font-size:.9rem;margin-top:12px}.phone-head{display:flex;justify-content:space-between;align-items:center;padding:14px 2px 10px;font-weight:600;font-size:1.1rem}.phone-score{background:var(--panel-strong);padding:4px 14px;border-radius:999px}.phone-main{flex:1;display:flex;flex-direction:column}.leave{align-self:center;margin-top:16px}.phone-lobby,.phone-bonus,.phone-final,.locked{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}.phone-lobby h2,.locked h2,.phone-bonus h2,.phone-final h2{font-size:2.2rem}.team-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.team-btn{display:flex;flex-direction:column;align-items:center;padding:26px 8px;border-radius:var(--radius);border:4px solid transparent;opacity:.75;transition:transform .15s,opacity .15s}.team-btn-byu{background:linear-gradient(160deg,var(--byu),var(--byu-dark))}.team-btn-utah{background:linear-gradient(160deg,var(--utah),var(--utah-dark))}.team-btn-on{opacity:1;border-color:#fff;transform:scale(1.04)}.team-btn-name{font-size:2rem;font-weight:700}.team-btn-mascot{opacity:.85}.locked-icon{font-size:4rem}.locked-answer{font-size:1.3rem;font-weight:600;background:var(--panel-strong);padding:10px 18px;border-radius:14px;margin:0}.phone-final-score{font-size:1.6rem;font-weight:700;color:var(--accent);margin:0}.pad{flex:1;display:flex;flex-direction:column;gap:14px}.pad-top{display:flex;justify-content:space-between;align-items:center}.pad-time{font-size:1.4rem;font-weight:700}.pad-time-low{color:var(--pink)}.pad-prompt{font-size:1.15rem;font-weight:600;line-height:1.3;margin:0}.pad-opts{flex:1;display:grid;grid-template-columns:1fr;gap:10px}.pad-opts .opt{font-size:1.15rem;padding:16px 14px;min-height:64px}.pad-opts .opt:active{transform:scale(.97)}.pad-opts-2 .opt{font-size:1.8rem;justify-content:center}.pad-opts-2 .opt-text{flex:none}.pad-form{display:flex;flex-direction:column;gap:12px}.input-answer{font-size:1.5rem;text-align:center}.unit{text-align:center;color:var(--muted)}.result{flex:1;display:flex;flex-direction:column;gap:14px}.result-card{border-radius:24px;padding:24px 16px;text-align:center;background:var(--panel-strong)}.result-card h2{font-size:2.4rem}.result-right .result-card{background:var(--good)}.result-close .result-card{background:#d98c0b}.result-wrong .result-card{background:var(--bad)}.result-pts{font-size:2rem;font-weight:700;margin-top:4px}.result-card .streak{margin:6px 0 0;color:#fff}.result-answer{margin:10px 0 0;font-size:1.1rem}.result-rank{text-align:center;font-size:1.2rem;margin:0}.result-team{text-align:center;margin:0}.phone-learn{background:var(--panel);border:2px solid rgba(255,194,61,.45);border-radius:18px;padding:14px 16px}.phone-learn p{margin:6px 0 10px;line-height:1.35}.phone-learn a{font-size:.9rem}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.confetti{display:none}}.reveal{gap:1.8vh}.reveal .opt{font-size:1.2em;padding:1.5vh 1.4vw}.reveal .answer-big{font-size:2.4em;padding:1.4vh 2vw}.reveal .learn{padding:1.6vh 2vw}.reveal .learn-text{font-size:1.3em;margin:4px 0 8px}.reveal .learn-src{font-size:.85em}.qview{gap:2vh}.qview .q-prompt{font-size:2.1em;padding:2.6vh 3vw}.qview .timer{width:6em;height:6em}.qview .opt{padding:2vh 1.6vw;font-size:1.4em}.lobby{gap:2vh}.lobby .logo-word{font-size:3.4em}.lobby .subtitle{margin-top:6px}.team-col{min-height:12vh}.scores{gap:2vh}.scores-title{font-size:2.6em}.board{gap:8px}.board-row{font-size:1.2em;padding:.4em 1em}.teambar-labels{font-size:1.4em;margin-bottom:6px}.teambar{height:2.2em}.team-col .chip{font-size:.9em;padding:.3em .8em}.lobby-note{margin:0}
