:root{--bg:#0a090f;--bg-2:#14111d;--blob-1:#a855f747;--blob-2:#38bdf829;--surface:#181520b8;--surface-soft:#ffffff0a;--border:#ffffff14;--text:#a6a1b3;--text-h:#f6f4fb;--text-muted:#6e697c;--accent:#a855f7;--accent-strong:#c084fc;--accent-2:#38bdf8;--accent-soft:#a855f729;--accent-border:#a855f773;--success:#34d399;--success-soft:#34d39924;--danger:#f87171;--danger-soft:#f8717124;--shadow-sm:0 1px 2px #0006;--shadow-md:0 16px 36px -16px #000000a6, 0 2px 10px #0006;--shadow-lg:0 32px 72px -24px #000000bf;--glow:0 0 0 1px #ffffff0a inset, 0 0 32px -8px var(--accent-soft);--radius-lg:22px;--radius-md:14px;--radius-sm:9px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}*{box-sizing:border-box}body{background:linear-gradient(180deg, var(--bg-2), var(--bg) 40%);background-attachment:fixed;min-height:100svh;margin:0}#root{text-align:center;box-sizing:border-box;flex-direction:column;width:720px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--sans);color:var(--text-h);font-weight:600}h1{letter-spacing:-1.2px;margin:0;font-size:44px}@media (width<=1024px){h1{font-size:32px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}button{font-family:inherit}code{font-family:var(--mono);border-radius:var(--radius-sm);color:var(--text-h);background:var(--surface-soft);padding:4px 8px;font-size:15px;line-height:135%;display:inline-flex}.app{box-sizing:border-box;flex-direction:column;padding:56px 20px 80px;display:flex;position:relative}.version-badge{letter-spacing:.04em;color:var(--text-muted);opacity:.5;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:600;position:fixed;top:14px;right:16px}@media (width<=420px){.app{padding:32px 12px 56px}.quiz-card{padding:24px 0}.breakdown,.breakdown tbody,.breakdown tr,.breakdown td{width:auto;display:block}.breakdown tr{border-top:1px solid var(--border);padding:10px 12px}.breakdown tr:first-child{border-top:none}.breakdown td{border-top:none;padding:2px 0}}.theme-scope{flex-direction:column;align-items:center;gap:28px;transition:filter .6s;display:flex;position:relative}.theme-scope-grammar{filter:hue-rotate()}.theme-scope-time{filter:hue-rotate(-60deg)}.theme-scope-particle{filter:hue-rotate(70deg)}.theme-bg{pointer-events:none;background:radial-gradient(720px circle at 15% -10%, var(--blob-1), transparent 60%), radial-gradient(620px circle at 90% 10%, var(--blob-2), transparent 55%);transition:filter .6s;position:fixed;inset:0}.theme-scope-grammar .feedback-correct .feedback-icon,.theme-scope-grammar .feedback-correct .feedback-title,.theme-scope-grammar .feedback-incorrect .feedback-icon,.theme-scope-grammar .feedback-incorrect .feedback-title,.theme-scope-grammar .diff-wrong,.theme-scope-grammar .diff-correct{filter:hue-rotate();transition:filter .6s}.theme-scope-time .feedback-correct .feedback-icon,.theme-scope-time .feedback-correct .feedback-title,.theme-scope-time .feedback-incorrect .feedback-icon,.theme-scope-time .feedback-incorrect .feedback-title,.theme-scope-time .diff-wrong,.theme-scope-time .diff-correct{filter:hue-rotate(60deg);transition:filter .6s}.theme-scope-particle .feedback-correct .feedback-icon,.theme-scope-particle .feedback-correct .feedback-title,.theme-scope-particle .feedback-incorrect .feedback-icon,.theme-scope-particle .feedback-incorrect .feedback-title,.theme-scope-particle .diff-wrong,.theme-scope-particle .diff-correct,.theme-scope-particle .particle-blank-input-correct,.theme-scope-particle .particle-blank-input-incorrect{filter:hue-rotate(-70deg);transition:filter .6s}.app-header{flex-direction:column;align-items:center;gap:10px;display:flex}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:13px;font-weight:600}.title-word-wrap{display:inline-block;position:relative}.title-word{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0 2px}.title-reveal{border-radius:var(--radius-sm);letter-spacing:normal;color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));white-space:nowrap;box-shadow:var(--shadow-md);z-index:1;opacity:0;pointer-events:none;margin-bottom:8px;padding:5px 12px;font-size:14px;font-weight:500;transition:opacity .1s,transform .1s;position:absolute;bottom:100%;left:50%;transform:translate(-50%,3px)scale(.94)}.title-reveal-visible{opacity:1;transform:translate(-50%)scale(1)}.mode-tabs{gap:8px;margin-top:4px;display:flex}.mode-tab{font:inherit;color:var(--text-muted);background:var(--surface-soft);border:1px solid var(--border);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;transition:color .15s,background .15s,border-color .15s}.mode-tab:hover{color:var(--text-h)}.mode-tab-active{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:none;padding:7px 15px}.quiz-subtabs{justify-content:center;gap:6px;margin-bottom:18px;display:flex}.quiz-subtab{font:inherit;color:var(--text-muted);background:var(--surface-soft);border:1px solid var(--border);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;transition:color .15s,background .15s,border-color .15s}.quiz-subtab:hover{color:var(--text-h)}.quiz-subtab-active{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:none;padding:5px 13px}.score-pill{align-items:center;gap:10px;margin-top:4px;font-size:14px;display:flex}.score-pill-label{color:var(--text-muted)}.score-pill-value{color:var(--text-h);font-weight:600}.score-pill-track{background:var(--accent-soft);border-radius:999px;width:60px;height:5px;display:inline-block;overflow:hidden}.score-pill-fill{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:999px;height:100%;transition:width .3s;display:block}.vocab-toggle-wrap{padding-top:4px}.vocab-toggle-wrap[aria-hidden=true]{opacity:0}.vocab-toggle{font:inherit;color:var(--text-muted);background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:6px 14px;font-size:13px;font-weight:600;transition:color .15s,border-color .15s}.vocab-toggle:hover{color:var(--text-h);border-color:var(--accent-border)}.vocab-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10;background:#0000008c;justify-content:center;align-items:center;padding:20px;animation:.15s card-in;display:flex;position:fixed;inset:0}.vocab-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:440px;max-height:80vh;box-shadow:var(--shadow-lg);text-align:left;flex-direction:column;padding:20px;display:flex}.vocab-panel-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.vocab-panel-header h2{margin:0}.vocab-close{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.vocab-close:hover{color:var(--text-h)}.vocab-tabs{flex-wrap:nowrap;gap:6px;margin-bottom:14px;display:flex}.vocab-tab{font:inherit;color:var(--text-muted);background:var(--surface-soft);border:1px solid var(--border);white-space:nowrap;cursor:pointer;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:600;transition:color .15s,background .15s,border-color .15s}.vocab-tab:hover{color:var(--text-h)}.vocab-tab-active{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:none;padding:7px 11px}.vocab-items{border:1px solid var(--border);border-radius:var(--radius-md);height:360px;margin:0;padding:0;list-style:none;overflow-y:auto}.vocab-item{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 14px;display:flex}.vocab-item:first-child{border-top:none}.vocab-item-kana{color:var(--text-h);flex-shrink:0;font-size:16px}.vocab-item-english{color:var(--text-muted);text-align:right;font-size:13px}.drill-carousel{width:100%;overflow:hidden}.drill-track{width:300%;display:flex}.drill-pane{flex:0 0 33.3333%;min-width:0}.quiz-card{text-align:center;background:0 0;width:100%;max-width:480px;margin:0 auto;padding:0 0 18px;animation:.25s card-in}.drill-pane-grammar .quiz-card,.drill-pane-particle .quiz-card{padding-top:42px}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.prompt-block{flex-direction:column;align-items:center;gap:34px;margin-bottom:28px;display:flex}.prompt{color:var(--text-h);font-size:25px;font-weight:500}.particle-question{flex-direction:column;align-items:center;gap:14px;width:100%;display:flex}.particle-context-wrap{text-align:center}.particle-context{color:var(--text-h);margin:0;font-size:25px;font-weight:500}.particle-prompt{letter-spacing:.02em}.particle-blank-form{position:static}.quiz-card input.particle-blank-input{text-align:center;border:none;border-bottom:2px solid var(--accent);width:2.6em;color:var(--accent);caret-color:var(--accent);vertical-align:baseline;background:0 0;border-radius:0;margin:0 2px;padding:0 2px;font-size:20px;font-weight:700}.quiz-card input.particle-blank-input:read-only{caret-color:#0000}.particle-blank-input-correct{border-bottom-color:var(--success);color:var(--success)}.particle-blank-input-incorrect{border-bottom-color:var(--danger);color:var(--danger)}.particle-blank-label{color:var(--accent);margin:0 0 4px;font-size:13px;font-weight:600}.clock-face{fill:var(--surface-soft);stroke:var(--border);stroke-width:2px}.clock-tick{stroke:var(--text-muted);stroke-width:2px}.clock-number{fill:var(--text);font-size:14px;font-weight:600}.clock-hand{transform-box:view-box;transform-origin:100px 100px;stroke-linecap:round;transition:transform .6s cubic-bezier(.4,0,.2,1)}.clock-hand-hour{stroke:var(--text-h);stroke-width:5px}.clock-hand-minute{stroke:var(--accent);stroke-width:3px}.clock-center{fill:var(--accent)}.digital-clock{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);font-variant-numeric:tabular-nums;letter-spacing:.02em;width:280px;height:150px;color:var(--accent);text-shadow:0 0 14px var(--accent-soft);justify-content:center;align-items:center;gap:4px;font-family:Courier New,ui-monospace,monospace;font-size:64px;font-weight:700;display:flex;box-shadow:inset 0 2px 10px #00000073}.digital-clock-hour{text-align:right;min-width:1.1em}.digital-clock-colon{animation:2s steps(1,jump-none) infinite digital-clock-blink}@keyframes digital-clock-blink{50%{opacity:.25}}.digital-clock-minute{text-align:left;min-width:1.1em}.quiz-card input{color:var(--text-h);caret-color:var(--accent);box-sizing:border-box;text-align:center;background:0 0;border:none;width:100%;padding:8px 0;font-size:34px;font-weight:500}.quiz-card input:focus{outline:none}.quiz-card input:read-only{color:var(--text-muted);caret-color:#0000}.answer-form{position:relative}.idle-hint{color:var(--text-muted);pointer-events:none;white-space:nowrap;justify-content:center;align-items:center;font-size:25px;font-weight:400;display:flex;position:absolute;inset:0}.idle-hint-cursor{background:var(--accent);width:2px;height:34px;margin-left:3px;animation:1s steps(2,jump-none) infinite idle-hint-cursor-blink;display:inline-block}@keyframes idle-hint-cursor-blink{50%{opacity:0}}.word-wrap{position:relative}.quiz-card .word-token{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:5px;margin:0 -3px;padding:1px 3px;transition:background .15s,color .15s}.quiz-card .word-token:hover{background:var(--accent-soft)}.quiz-card .word-token-active{color:var(--accent);background:var(--accent-soft)}.quiz-card .word-token rt{color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:.5em;font-weight:500}.word-reveal{border-radius:var(--radius-sm);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));white-space:nowrap;box-shadow:var(--shadow-md);z-index:1;opacity:0;pointer-events:none;margin-bottom:6px;padding:3px 9px;font-size:.85em;transition:opacity .1s,transform .1s;position:absolute;bottom:100%;left:50%;transform:translate(-50%,3px)scale(.94)}.word-reveal-visible{opacity:1;transform:translate(-50%)scale(1)}.feedback{text-align:left;margin-top:24px;animation:.2s card-in}.feedback-header{justify-content:center;align-items:center;gap:8px;display:flex}.feedback-title{font-size:19px;font-weight:600}.feedback-icon{align-items:center;display:inline-flex}.feedback-correct .feedback-icon,.feedback-correct .feedback-title{color:var(--success)}.feedback-incorrect .feedback-icon,.feedback-incorrect .feedback-title{color:var(--danger)}.feedback-body{margin-top:18px}.next-button{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));cursor:pointer;width:100%;box-shadow:var(--shadow-md);border:none;margin-top:16px;padding:12px 0;font-size:16px;font-weight:600;display:block}.next-button:active{transform:translateY(1px)}.diff{border-radius:var(--radius-md);background:var(--surface-soft);margin:0 0 14px;padding:14px 16px}.feedback p.diff-row{color:var(--text-h);align-items:center;margin-bottom:4px;font-size:19px;display:flex}.diff-row:last-child{margin-bottom:0}.diff-label{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;flex:0 0 84px;font-size:11px;font-weight:600}.diff-text{word-break:break-all;letter-spacing:1px;flex:auto;min-width:0;overflow:hidden}.diff-wrong{color:var(--danger);background:var(--danger-soft);border-radius:3px;text-decoration:line-through}.diff-correct{color:var(--success);background:var(--success-soft);border-radius:3px;font-weight:600}.feedback p.grammar-tip{border-radius:var(--radius-md);background:var(--accent-soft);color:var(--text);text-align:left;margin:0 0 14px;padding:10px 14px;font-size:14px}.grammar-tip strong{color:var(--accent)}.breakdown{table-layout:fixed;border-collapse:collapse;text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);width:100%;font-size:14px;overflow:hidden}.breakdown td{border-top:1px solid var(--border);vertical-align:top;word-break:break-word;padding:10px 12px}.breakdown tr:first-child td{border-top:none}.breakdown-kana{width:28%;color:var(--text-h);font-size:16px}.breakdown-label{width:30%;color:var(--accent);font-weight:600}.breakdown-explanation{color:var(--text)}
