:root{--color-bg: #0f1117;--color-bg-card: #1a1d27;--color-bg-hover: #242836;--color-bg-choice: #1e2230;--color-text: #e8e6e3;--color-text-muted: #8b8d96;--color-text-dim: #5a5c65;--color-accent: #b07aeb;--color-accent-pink: #e678b2;--color-accent-hover: #c59ef4;--color-gradient: linear-gradient(135deg, #b07aeb, #e678b2);--color-gradient-hover: linear-gradient(135deg, #c59ef4, #f098c9);--color-candle: #e8a838;--color-correct: #4caf50;--color-correct-bg: rgba(76, 175, 80, .15);--color-wrong: #ef5350;--color-wrong-bg: rgba(239, 83, 80, .15);--color-eliminated: #2a2d38;--color-border: #2a2d3a;--color-life: #ef5350;--color-combo: #e8a838;--font-main: "Inter", "Noto Sans JP", -apple-system, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-main);background:var(--color-bg);color:var(--color-text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem}.title-screen{text-align:center;animation:fadeIn .6s ease}.title-logo{font-size:3.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.5rem;background:var(--color-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.title-subtitle{font-size:1rem;color:var(--color-text-muted);margin-bottom:3rem}.start-button{font-family:var(--font-main);font-size:1.1rem;font-weight:600;padding:1rem 3rem;border:none;border-radius:12px;background:var(--color-gradient);color:#fff;cursor:pointer;transition:all .2s ease}.start-button:hover{background:var(--color-gradient-hover);transform:translateY(-2px);box-shadow:0 8px 25px #b07aeb59}.start-button:active{transform:translateY(0)}.start-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.exit-button{position:fixed;top:1rem;left:1rem;background:none;border:none;color:var(--color-text-dim);font-size:1.3rem;line-height:1;cursor:pointer;padding:.25rem .4rem;border-radius:6px;transition:color .15s,background .15s;z-index:100}.exit-button:hover{color:var(--color-text);background:var(--color-bg-hover)}.game-screen{position:relative;width:100%;max-width:600px;min-height:520px;animation:fadeIn .4s ease}.status-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:.75rem 1rem;background:var(--color-bg-card);border-radius:12px;border:1px solid var(--color-border)}.status-left{display:flex;align-items:center;gap:.75rem}.timer-wrapper{position:relative;width:36px;height:36px;flex-shrink:0}.timer-svg{width:36px;height:36px;transform:rotate(90deg) scaleX(-1);transform-origin:center}.timer-track{fill:none;stroke:var(--color-border);stroke-width:3}.timer-progress{fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .1s linear,stroke .4s ease}.timer-green{stroke:var(--color-correct)}.timer-yellow{stroke:var(--color-combo)}.timer-red{stroke:var(--color-wrong)}.timer-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.65rem;font-weight:700;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.status-lives{display:flex;gap:4px;align-items:center}.life-heart{font-size:1.2rem;transition:all .3s ease}.life-heart.active{color:var(--color-life)}.life-heart.lost{color:var(--color-text-dim);opacity:.3}.status-score{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text)}.status-info{display:flex;gap:1rem;font-size:.8rem;color:var(--color-text-muted)}.status-combo{color:var(--color-combo);font-weight:600}.question-area{text-align:center;margin-bottom:2rem}.question-word{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.01em}.question-meta{display:flex;align-items:center;justify-content:center;gap:.5rem}.question-pos{font-size:.85rem;color:var(--color-text-muted);text-transform:lowercase;background:var(--color-bg-card);display:inline-block;padding:.25rem .75rem;border-radius:20px;border:1px solid var(--color-border)}.question-word-level{font-size:.8rem;color:var(--color-text-dim)}.choices{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.choice-button{font-family:var(--font-main);font-size:1.1rem;padding:1rem 1.25rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-choice);color:var(--color-text);cursor:pointer;transition:all .15s ease;text-align:left}.choice-button:hover:not(:disabled){background:var(--color-bg-hover);border-image:var(--color-gradient) 1;border-color:var(--color-accent)}.choice-button:active:not(:disabled){transform:scale(.98)}.choice-button.correct{background:var(--color-correct-bg);border-color:var(--color-correct);color:var(--color-correct);font-weight:600}.choice-button.wrong{background:var(--color-wrong-bg);border-color:var(--color-wrong);color:var(--color-wrong)}.choice-button.eliminated{background:var(--color-eliminated);border-color:transparent;color:var(--color-text-dim);cursor:not-allowed;text-decoration:line-through;opacity:.4}.choice-button.highlighted{background:var(--color-correct-bg);border-color:var(--color-correct);color:var(--color-correct);font-weight:600;animation:pulse .5s ease}.feedback-stack{position:relative;height:1.75rem;margin-bottom:1rem}.feedback-item{position:absolute;bottom:0;left:50%;transform:translate(-50%);font-size:.9rem;font-weight:600;white-space:nowrap;animation:feedbackSlideUp 1.5s ease forwards}.feedback-correct{color:var(--color-correct)}.feedback-wrong{color:var(--color-wrong)}@keyframes feedbackSlideUp{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-2rem)}}.status-level{transition:color .3s ease}.status-level.level-up{animation:levelUpFlash 1s ease forwards}@keyframes levelUpFlash{0%,50%{color:var(--color-accent);font-weight:700}to{color:var(--color-text-muted);font-weight:400}}.progress-bar-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:.75rem;color:var(--color-text-muted)}.result-screen{width:100%;max-width:600px;text-align:center;animation:fadeIn .6s ease}.result-title{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text-muted)}.result-datetime{font-size:.8rem;color:var(--color-text-dim);margin-bottom:1.5rem;font-variant-numeric:tabular-nums}.result-score{font-size:4rem;font-weight:700;margin-bottom:.25rem;background:var(--color-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.result-score-label{font-size:1rem;color:var(--color-text-muted);margin-bottom:2rem}.result-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:1rem}.stat-value{font-size:1.75rem;font-weight:700;margin-bottom:.25rem}.stat-label{font-size:.8rem;color:var(--color-text-muted)}.beaten-by{margin-bottom:2rem;text-align:left}.beaten-by-label{font-size:.85rem;color:var(--color-text-muted);margin-bottom:.75rem;text-align:center}.beaten-by-list{display:flex;flex-direction:column}.beaten-word{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.beaten-entry{font-size:1.5rem;font-weight:700;color:var(--color-wrong)}.beaten-meaning{font-size:1rem;color:var(--color-text-muted)}.result-history{text-align:left;margin-bottom:2rem}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.result-history h3{font-size:1rem;font-weight:600;color:var(--color-text-muted)}.history-tabs{display:flex;gap:.4rem}.history-tab{font-family:var(--font-main);font-size:.75rem;padding:.3rem .65rem;border:1px solid var(--color-border);border-radius:20px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}.history-tab:hover{border-color:var(--color-accent);color:var(--color-text)}.history-tab.active{background:var(--color-gradient);border-color:transparent;color:#fff}.history-empty{font-size:.85rem;color:var(--color-text-dim);text-align:center;padding:1rem 0}.history-list{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto;padding-right:.5rem}.history-item{display:flex;flex-direction:column;gap:.2rem;padding:.5rem .75rem;border-radius:8px;background:var(--color-bg-card)}.history-item.correct{border-left:3px solid var(--color-correct)}.history-item.wrong{border-left:3px solid var(--color-wrong)}.history-main{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.history-word{font-size:.9rem;font-weight:600}.history-correct-answer{font-size:.85rem;color:var(--color-text-muted);text-align:right}.history-sub{display:flex;gap:.75rem;font-size:.75rem;color:var(--color-text-dim);font-variant-numeric:tabular-nums}.history-level{font-size:.75rem}.return-button{font-family:var(--font-main);font-size:1rem;font-weight:600;padding:1rem 3rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-card);color:var(--color-text);cursor:pointer;transition:all .15s ease}.return-button:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.allclear-screen .result-score{color:var(--color-correct)}.allclear-badge{font-size:.9rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-correct);background:var(--color-correct-bg);border:1px solid var(--color-correct);border-radius:20px;padding:.35rem 1rem;display:inline-block;margin-bottom:1rem}.tadasu-button{font-family:var(--font-main);font-size:1rem;font-weight:600;padding:1rem 3rem;border:none;border-radius:12px;background:var(--color-gradient);color:#fff;cursor:pointer;transition:all .2s ease;display:block;width:100%;margin-bottom:.75rem}.tadasu-button:hover{background:var(--color-gradient-hover);transform:translateY(-2px);box-shadow:0 8px 25px #b07aeb59}.tadasu-label{font-size:.85rem;font-weight:600;letter-spacing:.05em;background:var(--color-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--color-text-muted)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.shake{animation:shake .3s ease}@media(max-width:480px){.title-logo{font-size:2.5rem}.question-word{font-size:2rem}.result-score{font-size:3rem}.status-score{font-size:1.25rem}}
