:root{--bg: #1a1033;--bg-2: #2a1b4e;--fg: #fff8f0;--muted: #b9aed6;--card: rgba(255, 255, 255, .08);--gold: #f6c453;--silver: #d9d9e3;--bronze: #d28a5a;--a: #e5484d;--b: #2f80ed;--c: #f2b705;--d: #27ae60;--ok: #27ae60;--ng: #e5484d;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,system-ui,sans-serif;color:var(--fg);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1200px 800px at 20% 0%,var(--bg-2),var(--bg));-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}button:disabled{cursor:default}a{color:var(--gold)}.choice-a{--col: var(--a)}.choice-b{--col: var(--b)}.choice-c{--col: var(--c)}.choice-d{--col: var(--d)}.home{padding:40px 24px;max-width:480px;margin:0 auto}.home li{margin:12px 0;font-size:18px}.screen{min-height:100vh;padding:3vh 4vw;display:flex;flex-direction:column;gap:2vh}.screen.center{align-items:center;justify-content:center;font-size:3vw}.screen-header{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.screen-header .qno{font-size:3.2vw;font-weight:800;color:var(--gold);letter-spacing:.05em}.screen-header .status{font-size:2vw;color:var(--muted)}.screen-header .status strong{color:var(--fg);font-size:2.6vw}.question-text{font-size:3.6vw;font-weight:700;line-height:1.35;text-align:center;padding:2vh 2vw;background:var(--card);border-radius:24px}.question-image{max-height:32vh;max-width:100%;object-fit:contain;align-self:center;border-radius:16px}.question-body{display:flex;gap:2vw;flex:1;min-height:0}.question-body .choices{flex:1}.question-body .side{width:26vw;display:flex;flex-direction:column;gap:1.5vh}.choices{display:grid;grid-template-columns:1fr 1fr;gap:1.5vh 1.5vw}.choice{position:relative;overflow:hidden;display:flex;align-items:center;gap:1.2vw;padding:2.2vh 2vw;border-radius:20px;background:var(--col);color:#fff;font-size:2.6vw;font-weight:700;min-height:12vh;transition:opacity .4s,transform .4s,box-shadow .4s}.choice-c.choice{color:#2b2200}.choice .letter{flex:none;width:4.5vw;height:4.5vw;border-radius:50%;background:#ffffff40;display:grid;place-items:center;font-size:2.4vw}.choice .text{flex:1;line-height:1.3}.choice .count{font-size:2vw;opacity:.9;white-space:nowrap}.choice .bar{position:absolute;left:0;bottom:0;height:1vh;background:#ffffffb3;transition:width .8s ease-out}.choice.dim{opacity:.25;transform:scale(.97)}.choice.correct{box-shadow:0 0 0 .5vw var(--gold),0 0 4vw #f6c45399;transform:scale(1.03)}.choice.correct:after{content:"正解";position:absolute;top:.8vh;right:1vw;background:var(--gold);color:#3a2a00;font-size:1.6vw;padding:.3vh 1vw;border-radius:999px}.countdown{height:2.2vh;background:#ffffff1f;border-radius:999px;overflow:hidden}.countdown .fill{height:100%;background:linear-gradient(90deg,var(--gold),#ff8a5c);transition:width .1s linear}.countdown .fill.urgent{background:linear-gradient(90deg,#ff5c5c,#ff2d2d)}.panel{background:var(--card);border-radius:20px;padding:2vh 1.5vw}.panel h3{margin:0 0 1vh;font-size:1.6vw;color:var(--gold);letter-spacing:.05em}.fastest-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8vh}.fastest-list li{display:flex;align-items:center;gap:.8vw;font-size:1.7vw;font-weight:700;animation:pop .4s ease-out both}.fastest-list li:nth-child(2){animation-delay:.15s}.fastest-list li:nth-child(3){animation-delay:.3s}.fastest-list li:nth-child(4){animation-delay:.45s}.fastest-list li:nth-child(5){animation-delay:.6s}.fastest-list .pos{width:2.4vw;color:var(--gold)}.fastest-list .num{color:var(--muted);font-size:1.3vw}.fastest-list .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fastest-list .time{font-variant-numeric:tabular-nums}.empty{color:var(--muted);font-size:1.5vw}@keyframes pop{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:none}}.lobby{flex:1;display:grid;grid-template-columns:1fr 1.2fr;gap:4vw;align-items:center}.lobby .qr-box{background:#fff;padding:2vw;border-radius:24px;display:grid;place-items:center}.lobby .qr-box img{width:100%;max-width:38vh;aspect-ratio:1}.lobby .qr-url{margin-top:1.5vh;color:#333;font-size:1.4vw;word-break:break-all;text-align:center}.lobby h1{font-size:4vw;margin:0 0 1vh}.lobby .lead{font-size:2vw;color:var(--muted);margin:0 0 3vh;line-height:1.5}.lobby .count{font-size:2.2vw;margin-bottom:1.5vh}.lobby .count strong{font-size:5vw;color:var(--gold);margin-right:.5vw}.chips{display:flex;flex-wrap:wrap;gap:.6vw;max-height:32vh;overflow:hidden}.chip{background:var(--card);border-radius:999px;padding:.6vh 1.2vw;font-size:1.4vw;animation:pop .4s ease-out both}.chip .num{color:var(--muted);margin-right:.4vw;font-size:1.1vw}.final h1{font-size:4vw;margin:0;text-align:center;color:var(--gold);letter-spacing:.1em}.final .sub{text-align:center;color:var(--muted);font-size:1.6vw;margin:.5vh 0 2vh}.ranking{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1vh 2vw}.ranking li{display:flex;align-items:center;gap:1.2vw;background:var(--card);border-radius:16px;padding:1.2vh 1.5vw;font-size:2vw;font-weight:700}.ranking li.hidden{color:var(--muted)}.ranking li.revealed{animation:pop .5s ease-out both}.ranking li.first{grid-column:1 / -1;font-size:3.2vw;background:linear-gradient(90deg,#f6c45359,#f6c4531a);box-shadow:0 0 3vw #f6c45380;padding:2.5vh 2vw}.ranking .rank{width:5vw;color:var(--gold);white-space:nowrap}.ranking li.first .rank{color:var(--gold)}.ranking li.second .rank{color:var(--silver)}.ranking li.third .rank{color:var(--bronze)}.ranking .num{color:var(--muted);font-size:.7em}.ranking .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking .score{font-size:.7em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ranking .score b{color:var(--fg);font-size:1.2em}.rest{margin-top:2vh;display:flex;flex-wrap:wrap;gap:.6vw}.rest .chip{font-size:1.2vw}.phone{min-height:100vh;max-width:520px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:16px}.phone-header{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--muted)}.phone-header .me{color:var(--fg);font-weight:700;font-size:16px}.phone-header .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ng);margin-right:6px}.phone-header .dot.on{background:var(--ok)}.phone h1{font-size:24px;margin:16px 0 4px;text-align:center}.phone .lead{color:var(--muted);text-align:center;margin:0 0 16px;line-height:1.6}.form{display:flex;flex-direction:column;gap:14px;background:var(--card);padding:20px;border-radius:20px}.form label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.form input{font:inherit;font-size:20px;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#00000040;color:var(--fg)}.form input:focus{outline:2px solid var(--gold)}.btn{font-size:18px;font-weight:700;padding:14px 18px;border-radius:14px;border:none;background:var(--gold);color:#3a2a00}.btn:disabled{opacity:.5}.btn.secondary{background:var(--card);color:var(--fg)}.btn.danger{background:var(--ng);color:#fff}.error{color:#ff8a8a;font-size:14px}.phone-status{text-align:center;padding:24px 16px;background:var(--card);border-radius:20px}.phone-status .big{font-size:28px;font-weight:800;margin:0 0 6px}.phone-status .big.ok{color:#6fe39a}.phone-status .big.ng{color:#ff8a8a}.phone-status .small{color:var(--muted);font-size:14px;line-height:1.6;margin:0}.phone-status .rank{font-size:44px;font-weight:900;color:var(--gold);margin:8px 0}.phone-status .rank small{font-size:18px;color:var(--muted);margin-left:6px}.phone .countdown{height:10px}.phone-q{font-size:15px;color:var(--muted);text-align:center;line-height:1.5}.phone-q strong{color:var(--fg);font-size:17px}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1;min-height:44vh}.answer-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:none;border-radius:20px;background:var(--col);color:#fff;font-size:18px;font-weight:700;padding:12px;line-height:1.3;box-shadow:0 6px #00000040;transition:transform .1s,opacity .3s;-webkit-tap-highlight-color:transparent}.answer-btn.choice-c{color:#2b2200}.answer-btn .letter{font-size:40px;font-weight:900;line-height:1}.answer-btn .text{font-size:15px;opacity:.95}.answer-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px #00000040}.answer-btn:disabled{opacity:.35;box-shadow:none}.answer-btn.picked{opacity:1;outline:4px solid #fff}.answer-btn.picked:after{content:"回答済み";position:absolute;top:8px;right:8px;background:#00000080;color:#fff;font-size:11px;padding:2px 8px;border-radius:999px}.answer-btn.correct{outline:4px solid var(--gold);opacity:1}.answer-btn.wrong-pick{outline:4px solid #ff8a8a}.admin{max-width:720px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:16px}.admin h1{font-size:20px;margin:0;display:flex;justify-content:space-between;align-items:center}.admin h1 .badge{font-size:13px;padding:4px 10px;border-radius:999px;background:var(--card);color:var(--muted)}.admin h1 .badge.live{background:var(--ng);color:#fff}.card{background:var(--card);border-radius:16px;padding:14px 16px}.card h2{font-size:14px;color:var(--muted);margin:0 0 8px;font-weight:600;letter-spacing:.05em}.admin .qtext{font-size:18px;font-weight:700;line-height:1.4;margin:0 0 10px}.admin-choices{display:flex;flex-direction:column;gap:6px}.admin-choice{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#0003;position:relative;overflow:hidden}.admin-choice .letter{width:26px;height:26px;border-radius:50%;background:var(--col);display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff;flex:none}.admin-choice.choice-c .letter{color:#2b2200}.admin-choice .text{flex:1}.admin-choice .cnt{color:var(--muted);font-variant-numeric:tabular-nums}.admin-choice.correct{outline:2px solid var(--gold)}.admin-choice.correct .text:after{content:" ✓ 正解";color:var(--gold);font-weight:700}.admin-choice .bar{position:absolute;left:0;bottom:0;height:3px;background:var(--col);transition:width .4s}.controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.controls .btn{padding:16px 12px}.controls .btn.wide{grid-column:1 / -1;font-size:20px}.hint{color:var(--muted);font-size:13px;margin:0;line-height:1.5}.stat-row{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.stat-row b{color:var(--fg);font-size:18px}.qlist{display:flex;flex-wrap:wrap;gap:6px}.qlist button{border:none;border-radius:8px;padding:6px 10px;background:#00000040;color:var(--fg);font-size:13px}.qlist button.current{background:var(--gold);color:#3a2a00;font-weight:700}.plist{width:100%;border-collapse:collapse;font-size:13px}.plist th,.plist td{text-align:left;padding:6px;border-bottom:1px solid rgba(255,255,255,.08)}.plist th{color:var(--muted);font-weight:600}.plist .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ng)}.plist .dot.on{background:var(--ok)}.plist .kick{background:none;border:none;color:var(--muted);font-size:12px;text-decoration:underline}.plist td.num{font-variant-numeric:tabular-nums}.danger-zone{display:flex;gap:10px;flex-wrap:wrap}.danger-zone .btn{font-size:14px;padding:10px 14px}@media(max-width:640px){.controls{grid-template-columns:1fr}}@keyframes float-up{0%{transform:translateY(110vh) scale(.6);opacity:0}10%{opacity:.7}90%{opacity:.5}to{transform:translateY(-10vh) scale(1.2);opacity:0}}.sparkles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.sparkles span{position:absolute;bottom:0;border-radius:50%;background:radial-gradient(circle,#f6c453e6,#f6c45300);animation:float-up linear infinite}.screen,.phone,.admin{position:relative;z-index:1}.audio-toggle{position:fixed;top:10px;right:10px;z-index:60;border:none;border-radius:999px;padding:8px 14px;font-size:13px;background:#ffffff1f;color:var(--fg);opacity:.9}.audio-toggle:not(.on){background:var(--gold);color:#3a2a00;font-weight:700;animation:pulse 1.6s ease-in-out infinite}.audio-toggle.on{opacity:.35}.audio-toggle.on:hover{opacity:.9}@keyframes glow{0%,to{text-shadow:0 0 1vw rgba(246,196,83,.4)}50%{text-shadow:0 0 3vw rgba(246,196,83,.9)}}.title-glow{color:var(--gold);animation:glow 2.4s ease-in-out infinite}@keyframes bump{0%{transform:scale(1.5);color:var(--gold)}to{transform:scale(1)}}.bump{display:inline-block;animation:bump .35s ease-out}.sec.urgent{color:#ff5c5c}@keyframes enter{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}.enter{animation:enter .5s cubic-bezier(.2,.8,.2,1) both}.choices .choice.enter:nth-child(1){animation-delay:.15s}.choices .choice.enter:nth-child(2){animation-delay:.3s}.choices .choice.enter:nth-child(3){animation-delay:.45s}.choices .choice.enter:nth-child(4){animation-delay:.6s}.qtotal{font-size:.5em;color:var(--muted)}@keyframes vignette{0%,to{box-shadow:inset 0 0 #ff3c3c00}50%{box-shadow:inset 0 0 12vw 2vw #ff3c3c73}}.screen.urgent:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;animation:vignette 1s ease-in-out infinite}@keyframes overlay-in{0%{opacity:0;transform:scale(1.6)}25%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1.03)}to{opacity:0;transform:scale(1.1)}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;font-size:8vw;font-weight:900;letter-spacing:.04em;white-space:nowrap;pointer-events:none}.overlay-start{color:#fff;background:#27ae608c;text-shadow:0 .5vw 2vw rgba(0,0,0,.5);animation:overlay-in 1.3s ease-out both}.overlay-closed{color:#fff;background:#e5484d99;text-shadow:0 .5vw 2vw rgba(0,0,0,.5);animation:overlay-in 1.8s ease-out both}@keyframes suspense-in{0%{opacity:0}to{opacity:1}}.overlay-suspense{color:var(--gold);background:#0a0519d1;font-size:8vw;animation:suspense-in .3s ease-out both}@keyframes dots{0%{content:""}33%{content:"."}66%{content:".."}to{content:"..."}}.overlay-suspense .dots:after{content:"...";animation:dots 1.2s steps(1) infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.pulse{animation:pulse 1s ease-in-out infinite}@keyframes slot-pulse{0%,to{box-shadow:0 0 #f6c45333;background:#f6c45314}50%{box-shadow:0 0 2vw .4vw #f6c45380;background:#f6c45338}}.ranking li.suspense{color:var(--gold);animation:slot-pulse .5s ease-in-out infinite}.ranking li.first.revealed{animation:enter .8s cubic-bezier(.2,.8,.2,1) both,glow-box 1.6s ease-in-out infinite .8s}@keyframes glow-box{0%,to{box-shadow:0 0 2vw #f6c45366}50%{box-shadow:0 0 5vw #f6c453e6}}.phone-body{display:flex;flex-direction:column;gap:16px;flex:1;border-radius:24px;transition:background .3s}@keyframes flash-ok{0%{background:#27ae60b3}to{background:transparent}}@keyframes flash-ng{0%{background:#e5484db3}to{background:transparent}}.phone-body.flash-ok{animation:flash-ok .9s ease-out}.phone-body.flash-ng{animation:flash-ng .9s ease-out}.phone-status.winner{background:linear-gradient(180deg,rgba(246,196,83,.35),var(--card));box-shadow:0 0 30px #f6c45380}.phone .rank.enter{animation:enter .6s cubic-bezier(.2,.8,.2,1) both}.question-body.with-side .choice{font-size:2.1vw}
