:root{--bg: #fff8f0;--card: #ffffff;--shadow: rgba(255,140,0,.15);--orange: #ff8c00;--orange-light: #ffb347;--orange-pale: #fff3e0;--green: #2ecc71;--red: #e74c3c;--blue: #3498db;--text: #2d2d2d;--muted: #999;--gold: #f39c12;--silver: #95a5a6;--bronze: #cd7f32}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:Nunito,sans-serif;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background-image:radial-gradient(circle at 20% 20%,rgba(255,179,71,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,140,0,.1) 0%,transparent 50%)}.app{width:100%;max-width:480px}.screen{display:none}.screen.active{display:block;animation:pop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.card{background:var(--card);border-radius:24px;padding:32px 28px;box-shadow:0 8px 32px var(--shadow),0 2px 8px #0000000f}.title-chara{text-align:center;margin-bottom:0;position:relative;display:inline-block;width:100%}.chara-img{width:280px;height:auto;animation:bounce 2s ease-in-out infinite;filter:drop-shadow(0 8px 16px rgba(255,140,0,.3));position:relative;z-index:1}.chara-name{font-size:.75rem;font-weight:800;color:var(--orange);letter-spacing:2px;margin-top:-4px;margin-bottom:4px;position:relative;z-index:1}.floating-numbers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.float-num{position:absolute;font-family:Nunito,sans-serif;font-weight:900;color:var(--orange);opacity:0;animation:floatUp var(--dur) ease-in-out var(--delay) infinite;-webkit-user-select:none;user-select:none}@keyframes floatUp{0%{opacity:0;transform:translateY(20px) scale(.7) rotate(var(--rot))}15%{opacity:.85}70%{opacity:.6}to{opacity:0;transform:translateY(-90px) scale(1.1) rotate(var(--rot2))}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.title-main{text-align:center;font-size:1.9rem;font-weight:900;color:var(--orange);margin-bottom:4px;letter-spacing:-.5px}.title-sub{text-align:center;font-size:.85rem;color:var(--muted);margin-bottom:28px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.stage-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.stage-btn{display:flex;align-items:center;gap:16px;padding:16px 20px;border:2.5px solid transparent;border-radius:16px;cursor:pointer;font-family:Nunito,sans-serif;font-size:1rem;font-weight:800;background:var(--orange-pale);color:var(--text);transition:all .18s;text-align:left}.stage-btn:hover{border-color:var(--orange);background:#fff;transform:translate(6px);box-shadow:0 4px 16px var(--shadow)}.stage-icon{font-size:1.6rem;min-width:36px;text-align:center}.stage-info{flex:1}.stage-name{display:block;font-size:1.05rem;font-weight:900}.stage-desc{display:block;font-size:.75rem;color:var(--muted);font-weight:700;margin-top:2px}.stage-arrow{color:var(--orange);font-size:1.2rem}.ranking-link{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:2px solid var(--orange-light);border-radius:12px;cursor:pointer;font-family:Nunito,sans-serif;font-size:.9rem;font-weight:800;background:transparent;color:var(--orange);transition:all .18s;width:100%}.ranking-link:hover{background:var(--orange-pale)}.name-screen-title{text-align:center;font-size:1.4rem;font-weight:900;margin-bottom:6px}.name-stage-label{text-align:center;font-size:.85rem;color:var(--muted);font-weight:700;margin-bottom:28px}.name-input-wrap{margin-bottom:20px}.name-input-wrap label{display:block;font-size:.8rem;font-weight:800;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.name-input{width:100%;padding:14px 18px;border:2.5px solid #eee;border-radius:12px;font-family:Nunito,sans-serif;font-size:1.1rem;font-weight:700;outline:none;transition:border-color .18s}.name-input:focus{border-color:var(--orange)}.game-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.progress-wrap{flex:1;margin:0 12px}.progress-dots{display:flex;gap:5px;justify-content:center}.dot{width:10px;height:10px;border-radius:50%;background:#eee;transition:all .3s}.dot.correct{background:var(--green)}.dot.wrong{background:var(--red)}.dot.current{background:var(--orange);animation:dotPulse .8s ease-in-out infinite}@keyframes dotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.4)}}.game-timer{font-family:DotGothic16,monospace;font-size:1.5rem;color:var(--orange);min-width:60px;text-align:right}.game-q-num{font-size:.75rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:2px;min-width:60px}.question-card{background:linear-gradient(135deg,var(--orange) 0%,var(--orange-light) 100%);border-radius:20px;padding:40px 28px;text-align:center;margin-bottom:20px;position:relative;overflow:hidden;box-shadow:0 8px 24px #ff8c004d}.question-card:before{content:"×";position:absolute;font-size:12rem;font-weight:900;color:#ffffff14;top:-30px;right:-20px;line-height:1}.question-text{font-size:clamp(2.5rem,10vw,3.5rem);font-weight:900;color:#fff;letter-spacing:-1px;text-shadow:0 2px 8px rgba(0,0,0,.15);position:relative;z-index:1}.question-text .eq{opacity:.7;font-size:.7em}.answer-wrap{display:flex;gap:10px;align-items:center;margin-bottom:16px}.answer-input{flex:1;padding:16px 20px;border:2.5px solid #eee;border-radius:14px;font-family:Nunito,sans-serif;font-size:1.8rem;font-weight:900;text-align:center;outline:none;transition:all .18s;color:var(--text)}.answer-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px #ff8c0026}.answer-input.correct-anim{border-color:var(--green);background:#f0fff6}.answer-input.wrong-anim{border-color:var(--red);background:#fff5f5;animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.submit-btn{padding:16px 20px;background:var(--orange);border:none;border-radius:14px;cursor:pointer;font-size:1.2rem;transition:all .18s;color:#fff;font-weight:900}.submit-btn:hover{background:var(--orange-light);transform:scale(1.05)}.submit-btn:active{transform:scale(.97)}.feedback-overlay{display:none;flex-direction:column;align-items:center;gap:6px;padding:14px;border-radius:14px;margin-bottom:16px;animation:pop .3s cubic-bezier(.34,1.56,.64,1)}.feedback-overlay.show{display:flex}.feedback-overlay.correct{background:#f0fff6;border:2px solid var(--green)}.feedback-overlay.wrong{background:#fff5f5;border:2px solid var(--red)}.feedback-mark{font-size:2.2rem;line-height:1}.feedback-text{font-size:.95rem;font-weight:800;color:var(--text)}.feedback-answer{font-size:.85rem;color:var(--muted);font-weight:700}.result-header{text-align:center;margin-bottom:24px}.result-emoji{font-size:3.5rem;margin-bottom:8px}.result-title{font-size:1.5rem;font-weight:900;margin-bottom:4px}.result-stage-name{font-size:.8rem;font-weight:700;color:var(--muted);letter-spacing:2px;text-transform:uppercase}.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.result-stat{background:var(--orange-pale);border-radius:14px;padding:16px;text-align:center}.result-stat-label{display:block;font-size:.7rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:6px}.result-stat-val{display:block;font-size:1.8rem;font-weight:900;color:var(--orange)}.result-answers{background:#fafafa;border-radius:14px;padding:14px 16px;margin-bottom:20px;max-height:220px;overflow-y:auto}.result-answer-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #eee;font-size:.9rem;font-weight:700}.result-answer-row:last-child{border-bottom:none}.row-mark{font-size:1.1rem;min-width:22px}.row-q{flex:1;color:var(--text)}.row-ans{color:var(--muted)}.row-ans.wrong-ans{color:var(--red);text-decoration:line-through}.row-correct{color:var(--green);font-weight:900}.btn-row{display:flex;gap:10px}.ranking-header{text-align:center;margin-bottom:20px}.ranking-title{font-size:1.5rem;font-weight:900;margin-bottom:16px}.stage-tabs{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-bottom:20px}.stage-tab{padding:7px 14px;border:2px solid #eee;border-radius:20px;cursor:pointer;font-family:Nunito,sans-serif;font-size:.78rem;font-weight:800;background:#fff;color:var(--muted);transition:all .18s}.stage-tab.active{border-color:var(--orange);color:var(--orange);background:var(--orange-pale)}.ranking-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;min-height:200px}.rank-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--orange-pale);border-radius:12px;animation:slideIn .3s ease both}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.rank-row.rank-1{background:linear-gradient(135deg,#fff9e6,#fff3cc);border:2px solid var(--gold)}.rank-row.rank-2{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid var(--silver)}.rank-row.rank-3{background:linear-gradient(135deg,#fff5ef,#ffe8da);border:2px solid var(--bronze)}.rank-num{font-size:1.1rem;font-weight:900;min-width:28px;text-align:center;color:var(--muted)}.rank-row.rank-1 .rank-num{color:var(--gold)}.rank-row.rank-2 .rank-num{color:var(--silver)}.rank-row.rank-3 .rank-num{color:var(--bronze)}.rank-name{flex:1;font-weight:800;font-size:.95rem}.rank-score{text-align:right}.rank-score-correct{font-size:1rem;font-weight:900;color:var(--orange)}.rank-score-time{font-size:.75rem;color:var(--muted);font-weight:700}.rank-empty{text-align:center;color:var(--muted);font-weight:700;padding:40px;font-size:.9rem}.btn{flex:1;padding:14px;border:none;border-radius:14px;cursor:pointer;font-family:Nunito,sans-serif;font-size:.95rem;font-weight:800;transition:all .18s}.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-light);transform:translateY(-2px);box-shadow:0 4px 16px #ff8c004d}.btn-ghost{background:var(--orange-pale);color:var(--orange)}.btn-ghost:hover{background:#ffe4b5}.name-badge{display:inline-block;background:var(--orange-pale);color:var(--orange);font-weight:800;padding:4px 12px;border-radius:20px;font-size:.85rem;margin-bottom:20px}
