:root{--color-pink: #ec4899;--color-purple: #8b5cf6;--color-cyan: #00fff5;--color-dark: #07070f;--color-surface-navy: #0f172a;--color-difficulty-easy: #00ffc2;--color-difficulty-medium: #ffb800;--color-difficulty-hard: #ff2e63;--color-medal-gold: #ffd700;--color-medal-silver: #e2e8f0;--color-medal-bronze: #cd7f32;--color-timer-urgency: #ff003c;--font-display: "Orbitron", sans-serif;--font-body: "Pretendard", -apple-system, system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-dark);color:#f5f5ff;font-family:var(--font-body);-webkit-tap-highlight-color:transparent}button{font-family:var(--font-body);cursor:pointer;min-height:44px;min-width:44px}a{color:var(--color-cyan)}.footer{color:#64748b;font-size:12px;text-align:center;padding-bottom:24px}.btn{border:none;border-radius:12px;padding:14px 24px;font-weight:700;font-size:16px;background:linear-gradient(135deg,var(--color-pink),var(--color-purple));color:#fff;box-shadow:0 0 20px #ec489966;transition:transform .15s ease}.btn:active{transform:scale(.97)}.btn-outline{background:transparent;border:2px solid var(--color-cyan);color:var(--color-cyan);box-shadow:none}.input{border-radius:10px;border:2px solid rgba(139,92,246,.5);background:#ffffff0d;color:#fff;padding:12px 16px;font-size:16px}.input:focus{outline:none;border-color:var(--color-cyan)}.card{background:#ffffff0d;border:1px solid rgba(139,92,246,.35);border-radius:16px;padding:16px}@keyframes pop-in{0%{transform:scale(.4) rotate(-8deg);opacity:0}60%{transform:scale(1.15) rotate(3deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.fx-pop-in{animation:pop-in .4s cubic-bezier(.34,1.56,.64,1)}@keyframes shake-x{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.fx-shake{animation:shake-x .4s ease}@keyframes glow-pulse{0%,to{box-shadow:0 0 #00fff500}50%{box-shadow:0 0 32px #00fff5cc}}.fx-glow-pulse{animation:glow-pulse 1s ease-in-out infinite}@keyframes reveal-sweep{0%{filter:blur(14px) brightness(.4);opacity:.3}60%{filter:blur(4px) brightness(1.1)}to{filter:blur(0) brightness(1);opacity:1}}.fx-reveal{animation:reveal-sweep .7s ease-out}@keyframes score-float{0%{transform:translateY(0) scale(.6);opacity:0}30%{transform:translateY(-8px) scale(1.2);opacity:1}to{transform:translateY(-40px) scale(1);opacity:0}}.fx-score-float{animation:score-float 1s ease-out forwards}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(220px) rotate(540deg);opacity:0}}.fx-confetti{animation:confetti-fall 1.4s ease-in forwards}.bg-cyber-grid{background-image:linear-gradient(rgba(0,255,245,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,245,.05) 1px,transparent 1px);background-size:32px 32px}@keyframes scanline{0%{transform:translateY(-100%);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(100vh);opacity:0}}.fx-scanline{position:fixed;top:0;left:0;width:100%;height:2px;background:#00fff559;box-shadow:0 0 12px #00fff599;animation:scanline 6s linear infinite;pointer-events:none;z-index:5}.text-glow{text-shadow:0 0 20px rgba(236,72,153,.8)}@keyframes pulse-urgency{0%,to{box-shadow:0 0 #ff003c99;border-color:#ff003c99}50%{box-shadow:0 0 20px 4px #ff003c80;border-color:#ff003c}}.fx-timer-urgent{animation:pulse-urgency 1s infinite;border-color:var(--color-timer-urgency)!important;color:var(--color-timer-urgency)!important}.clip-corner{clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}@keyframes stamp-slam{0%{transform:scale(2.4) rotate(-14deg);opacity:0}45%{transform:scale(.85) rotate(-14deg);opacity:1}62%{transform:scale(1.12) rotate(-14deg)}80%{transform:scale(.97) rotate(-14deg)}to{transform:scale(1) rotate(-14deg);opacity:1}}.fx-stamp{display:inline-block;animation:stamp-slam .45s cubic-bezier(.2,1.6,.4,1);border-width:6px;border-style:solid;border-radius:12px;padding:6px 22px;font-family:var(--font-display);font-weight:900;font-size:26px;letter-spacing:2px}.fx-stamp-correct{color:var(--color-difficulty-easy);border-color:var(--color-difficulty-easy);text-shadow:0 0 14px var(--color-difficulty-easy);box-shadow:0 0 28px #00ffc280}.fx-stamp-wrong{color:var(--color-timer-urgency);border-color:var(--color-timer-urgency);text-shadow:0 0 14px var(--color-timer-urgency);box-shadow:0 0 28px #ff003c80}@keyframes curtain-wipe{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0% 0)}}.fx-curtain-reveal{animation:curtain-wipe .7s cubic-bezier(.65,0,.35,1)}@keyframes scan-sweep{0%{top:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.fx-scan-sweep{position:absolute;left:0;width:100%;height:6px;background:linear-gradient(90deg,transparent,var(--color-cyan),transparent);box-shadow:0 0 16px 4px var(--color-cyan);animation:scan-sweep .7s cubic-bezier(.65,0,.35,1);pointer-events:none;z-index:3}@keyframes reveal-flash{0%{opacity:0}30%{opacity:.9}to{opacity:0}}.fx-reveal-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,#fff,var(--color-cyan) 60%,transparent 100%);animation:reveal-flash .45s ease-out;pointer-events:none;z-index:4;border-radius:12px}@keyframes countdown-pulse{0%{transform:scale(1.6);opacity:0}30%{transform:scale(1);opacity:1}70%{transform:scale(1);opacity:1}to{transform:scale(.6);opacity:0}}.fx-countdown-pulse{animation:countdown-pulse .9s ease-out}@keyframes rank-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-6deg)}}.fx-rank-float{animation:rank-float 1.6s ease-in-out infinite}.fx-rank-float-0{animation-duration:1.3s}.fx-rank-float-1{animation-duration:1.6s;animation-delay:.15s}.fx-rank-float-2{animation-duration:1.9s;animation-delay:.3s}@keyframes podium-confetti-fall{0%{transform:translateY(-40px) rotate(0);opacity:0}8%{opacity:1}to{transform:translate(var(--drift, 0px),480px) rotate(720deg);opacity:0}}.fx-podium-confetti-piece{position:absolute;top:0;animation:podium-confetti-fall 3.2s cubic-bezier(.25,.1,.4,1) forwards;pointer-events:none}@keyframes podium-burst-in{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}.fx-podium-burst{animation:podium-burst-in .6s cubic-bezier(.2,1.4,.4,1)}@keyframes podium-spotlight-sweep{0%{transform:translate(-120%) rotate(20deg);opacity:0}15%{opacity:.5}85%{opacity:.5}to{transform:translate(120%) rotate(20deg);opacity:0}}.fx-podium-spotlight{position:absolute;top:-20%;left:0;width:40%;height:140%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:podium-spotlight-sweep 2.4s ease-in-out infinite;pointer-events:none}
