*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;background:#0b0e14;color:#f4f6fb}
#app{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}
.screen{width:min(960px,100%);max-width:960px}
.hidden{display:none}.active{display:block}
.title{font-size:clamp(28px,8vw,56px);text-align:center;margin:16px 0 24px 0;letter-spacing:.5px}
.logo{font-size:clamp(64px,20vw,140px);text-align:center;animation:bop 2s ease-in-out infinite}
.logo.small{font-size:clamp(24px,6vw,42px);animation:none}
.subtitle{font-size:clamp(20px,5vw,32px);margin:0;text-align:center;letter-spacing:.4px}
.game-header{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px auto 12px auto;width:100%;max-width:320px}
.hint{opacity:.8;text-align:center;margin-top:8px}.hint.small{font-size:12px;opacity:.65}
#splash .btn{display:block;margin:16px auto 0 auto;min-width:200px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border:0;border-radius:16px;font-weight:700;font-size:18px;cursor:pointer;transition:transform .08s ease,box-shadow .2s ease,filter .2s}
.btn.primary{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff;box-shadow:0 8px 20px rgba(239,68,68,.35)}
.btn.secondary{background:#7f1d1d;color:#fff;box-shadow:0 4px 12px rgba(127,29,29,.3)}
.btn:active{transform:scale(.98);filter:brightness(.92)}
#result{text-align:center}
#result .final{font-size:clamp(32px,6vw,48px);margin:20px 0 10px 0;font-weight:700}
#result .final strong{color:inherit}
#result .btn{margin:20px auto 0 auto}
.score-low{color:#f87171!important}

.hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:0 auto 10px auto;max-width:560px;width:100%}
.hud .round,.hud .score{text-align:center;background:#121625;border:1px solid #21273b;border-radius:12px;padding:6px 10px;font-size:14px}
.hud-left,.hud-right{display:flex;justify-content:center}
.timer{display:flex;justify-content:center;align-items:center}
.pie{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#3b82f6 0deg,#3b82f6 360deg);position:relative;box-shadow:0 4px 14px rgba(59,130,246,.35)}
.pie::after{content:'';position:absolute;inset:6px;background:#0b0e14;border-radius:50%}
#timerText{position:relative;z-index:1;font-weight:800}

.stage{position:relative;aspect-ratio:1/1;width:100%;max-width:560px;margin:0 auto 12px auto;border-radius:20px;overflow:hidden;background:#0e1425;border:1px solid #1d2340;transition:border-color .2s ease}
.stage.flash-green{border-color:#22c55e;animation:flashBorderGreen .55s ease-in-out 3}
.stage.flash-red{border-color:#ef4444;animation:flashBorderRed .55s ease-in-out 3}
#photo{width:100%;height:100%;object-fit:cover;display:block;user-select:none;-webkit-user-drag:none;transition:filter .2s ease}
#photo.flash-green{animation:flashImageGreen .55s ease-in-out 3}
#photo.flash-red{animation:flashImageRed .55s ease-in-out 3}
.big-x{position:absolute;inset:0;display:grid;place-items:center;font-size:32vmin;color:#ff3b3b;text-shadow:0 8px 30px rgba(255,59,59,.65);background:rgba(255,59,59,.1)}
.big-x.hidden{display:none}

.choices{display:grid;gap:8px;grid-template-columns:repeat(2,1fr);max-width:560px;margin:0 auto}
.choice{padding:14px;border-radius:14px;border:1px solid #991b1b;background:linear-gradient(135deg,#ef4444,#7f1d1d);box-shadow:0 6px 16px rgba(239,68,68,.25);color:#fff;font-size:18px;font-weight:700;text-align:center;cursor:pointer;transition:transform .08s ease,box-shadow .2s ease,filter .2s}
.choice:active{transform:scale(.98);filter:brightness(.92)}
.choice.correct{background:#0fbf6b;border-color:#1ee9a0;color:#0b0e14}
.choice.wrong{background:#991b1b;border-color:#f87171;color:#fff}

@media(min-width:640px){.choices{grid-template-columns:repeat(4,1fr)}}
@keyframes bop{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes flashImageGreen{0%,100%{filter:none}50%{filter:saturate(1.4) hue-rotate(-35deg)}}
@keyframes flashImageRed{0%,100%{filter:none}50%{filter:saturate(1.4) hue-rotate(15deg)}}
@keyframes flashBorderGreen{0%,100%{border-color:#22c55e}50%{border-color:#14532d}}
@keyframes flashBorderRed{0%,100%{border-color:#ef4444}50%{border-color:#7f1d1d}}
