:root{color-scheme:dark;--bg: #111014;--panel: #1b1922;--panel-soft: #24202d;--text: #f7f1ff;--muted: #b9aec9;--border: rgba(255, 255, 255, .1);--pink: #ff6fab;--purple: #9f7cff;--orange: #ffb060;--green: #7ee2a8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0;min-height:100vh;background:radial-gradient(circle at top right,rgba(255,111,171,.12),transparent 28rem),var(--bg);color:var(--text)}*,*:before,*:after{box-sizing:border-box}button,input{font:inherit}button{border:1px solid var(--border);border-radius:8px;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;padding:.75rem 1rem;cursor:pointer;min-height:2.75rem;transition:transform .12s ease,border-color .12s ease,filter .12s ease}button:hover:not(:disabled),.button-link:hover,.next-lesson-card:hover{filter:brightness(1.08)}button:active:not(:disabled),.button-link:active,.next-lesson-card:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:3px}input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:8px;background:#121018;color:var(--text);padding:.85rem 1rem}p,h1,h2,h3,span,strong,small,a{overflow-wrap:anywhere;min-width:0}a{color:var(--text)}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(20rem,30rem) minmax(16rem,1fr);align-items:center;gap:4rem;padding:3rem clamp(1rem,5vw,6rem);box-sizing:border-box}.auth-panel,.panel{border:1px solid var(--border);border-radius:8px;background:linear-gradient(180deg,#ffffff0d,#ffffff05),var(--panel);box-shadow:0 24px 80px #0000004d;padding:clamp(1rem,2.5vw,2rem)}.auth-panel form{display:grid;gap:1rem}.auth-panel label{display:grid;gap:.4rem;color:var(--muted)}.auth-panel h1,.hero h1,.panel h1{margin:0 0 1rem;font-size:clamp(2rem,4vw,4rem);letter-spacing:0}.wordmark,.brand{font-weight:800;letter-spacing:0}.wordmark span,.brand span{color:var(--pink);font-weight:600}.eyebrow{color:var(--orange);text-transform:uppercase;font-size:.78rem;font-weight:700}.error{color:#ff9a9a}.field-error{color:#ffb1b1}.ghost{background:transparent;color:var(--text);margin-top:1rem}.lesson-preview,.glyph-card,.next-lesson-card{border-radius:8px;min-height:18rem;background:linear-gradient(135deg,#2b2031,#141118 55%,#3b2130);border:1px solid var(--border);display:grid;place-items:center;text-align:center;padding:2rem}.lesson-preview strong,.glyph-card strong,.next-lesson-card>strong,.review-prompt{font-size:clamp(5rem,16vw,12rem);line-height:1;font-weight:800;color:var(--pink);text-shadow:0 0 40px rgba(255,111,171,.28)}.app-shell{min-height:100vh;display:grid;grid-template-columns:16rem 1fr;min-width:0}.sidebar{position:sticky;top:0;height:100vh;box-sizing:border-box;border-right:1px solid var(--border);background:#100f14eb;padding:1.25rem;min-width:0}.sidebar nav{display:grid;gap:.35rem;margin-top:2rem}.sidebar button{background:transparent;color:var(--muted);text-align:left}.sidebar button.active{color:#fff;background:#ff6fab29;border-color:#ff6fab66}.workspace{padding:1.25rem clamp(1rem,3vw,2.5rem) 3rem;min-width:0;width:100%}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;margin-bottom:1.5rem}.compact-profile{display:grid;gap:.1rem;min-width:0;max-width:18rem;background:var(--panel-soft);text-align:left}.compact-profile span,.compact-profile small{min-width:0;overflow-wrap:anywhere}.hero{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:1rem;align-items:stretch;margin-bottom:1rem}.hero>*,.stats>*,.grid-two>*,.cards>*,.module-list>*{min-width:0}.hero-copy{min-width:0}.next-lesson-card{color:var(--text);text-decoration:none;min-width:0;min-height:18rem;transition:transform .12s ease,border-color .12s ease,filter .12s ease}.next-lesson-card:hover,.next-lesson-card:focus-visible{border-color:#ff6fab99}.next-lesson-card h2,.next-lesson-card p{margin:.25rem 0}.next-lesson-card b{color:var(--orange)}.next-lesson-empty{place-content:center}.stats,.grid-two,.cards,.module-list{display:grid;gap:1rem}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1rem}.stats article{border:1px solid var(--border);border-radius:8px;background:var(--panel-soft);padding:1rem}.stats span,.panel span,.module p,small{color:var(--muted)}.stats strong,.panel b{display:block;font-size:2rem;margin-top:.25rem}.grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.cards{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.mini{min-width:0}.mini span{display:block;line-height:1.55}.module{border-top:1px solid var(--border);padding-top:1rem}.module a{display:flex;justify-content:space-between;gap:1rem;padding:.75rem;border-radius:8px;text-decoration:none}.module a>span{min-width:0}.module a>small{flex:0 0 auto}.module a:hover{background:#ffffff0f}.module a.locked{color:#766f83;pointer-events:none}.review{text-align:center;margin-bottom:1rem;min-width:0}.review-stage{min-height:29rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1rem;padding-top:1rem}.review-prompt-region{min-height:9rem;display:grid;place-items:center;align-content:center;gap:.75rem;width:100%}.review-reveal-region{min-height:3rem;display:grid;place-items:center}.review-answer-region{min-height:5.5rem;display:grid;place-items:center;width:100%}.review-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem;text-align:left}.review-count{margin:0;font-size:clamp(2.5rem,7vw,5.5rem);line-height:1}.review-remaining{color:var(--muted)}.review-answer{margin-inline:auto;max-width:42rem}.review-empty{padding:2rem 0}.xp-badge{flex:0 0 auto;border:1px solid rgba(126,226,168,.45);border-radius:999px;background:#7ee2a81f;color:var(--green);padding:.5rem .75rem;font-weight:800}.rating-row{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.5rem}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0 0;padding:0;list-style:none}.review-prompt-region .tag-list{justify-content:center;margin-top:0}.tag-badge{display:inline-flex;align-items:center;min-height:1.65rem;border:1px solid rgba(255,176,96,.55);border-radius:999px;padding:.15rem .55rem;color:var(--text)!important;background:#ffb0601f;font-size:.75rem;font-weight:800;line-height:1}.tag-badge[data-tag=CUSTOM]{border-color:#9f7cff99;background:#9f7cff26}.rating-row button{white-space:nowrap}.bars{min-height:10rem;display:flex;align-items:end;gap:.5rem;border-bottom:1px solid var(--border)}.bars span{width:1rem;background:linear-gradient(var(--orange),var(--pink));border-radius:8px 8px 0 0}.lesson-page{max-width:56rem;margin:0 auto;padding:2rem 1rem 4rem}.lesson-shell{margin-top:.75rem;min-width:0}.lesson-header{display:grid;gap:.75rem}.lesson-header>*{margin-block:0}.lesson-introduction{max-width:50rem;color:var(--muted);font-size:1.05rem;line-height:1.7}.lesson-intro-copy{border-top:1px solid var(--border);margin-top:.75rem;padding-top:1.25rem}.lesson-intro-copy h2{margin-top:0}.character-sequence{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin:1.75rem 0}.character-tab{min-width:0;display:grid;place-items:center;gap:.25rem;background:var(--panel-soft);color:var(--text);padding:.7rem .4rem}.character-tab span{color:var(--text);font-family:Noto Sans JP,Yu Gothic,Hiragino Kaku Gothic ProN,sans-serif;font-size:clamp(1.5rem,5vw,2.25rem);line-height:1}.character-tab.active{border-color:var(--pink);background:#ff6fab24;box-shadow:0 0 0 2px #ff6fab1f}.character-lesson{display:grid;grid-template-columns:minmax(14rem,.8fr) minmax(16rem,1.2fr);grid-template-areas:"copy mnemonic" "details mnemonic";align-items:start;gap:1.5rem;border:1px solid var(--border);border-radius:8px;background:#00000021;padding:clamp(1rem,3vw,1.75rem);min-width:0}.character-copy{grid-area:copy;min-width:0}.character-copy h2{display:flex;align-items:baseline;gap:.75rem;margin:.2rem 0 .75rem;font-size:clamp(2rem,7vw,4.5rem)}.character-copy h2 span{color:var(--pink);font-family:Noto Sans JP,Yu Gothic,Hiragino Kaku Gothic ProN,sans-serif}.character-step,.asset-status{color:var(--muted)}.character-pronunciation{line-height:1.6}.audio-button{margin-top:.5rem}.asset-status{display:block;margin-top:.5rem}.mnemonic-frame{grid-area:mnemonic;width:100%;max-width:30rem;aspect-ratio:4/3;margin:0 auto;border:1px dashed rgba(255,255,255,.22);border-radius:8px;overflow:hidden;background:linear-gradient(135deg,#9f7cff1a,#ff6fab14)}.mnemonic-frame img{display:block;width:100%;height:100%;object-fit:contain}.mnemonic-placeholder{width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:.65rem;padding:1rem;text-align:center}.mnemonic-placeholder span{color:var(--pink);font-family:Noto Sans JP,Yu Gothic,Hiragino Kaku Gothic ProN,sans-serif;font-size:clamp(4rem,12vw,7rem);line-height:1}.mnemonic-placeholder small{max-width:100%;font-size:.7rem}.character-details{grid-area:details;min-width:0;line-height:1.65}.example-word{border-left:3px solid var(--purple);padding-left:1rem}.example-word>span,.example-word>strong{display:block}.example-word>strong{margin-top:.25rem;font-family:Noto Sans JP,Yu Gothic,Hiragino Kaku Gothic ProN,sans-serif;font-size:1.75rem}.example-word p{margin-block:.35rem}.pronunciation-note{border-left:3px solid var(--orange);padding-left:1rem;color:var(--muted)}.lesson-navigation{display:flex;justify-content:space-between;gap:1rem;margin-top:1.25rem}button.secondary{background:transparent;color:var(--text)}.completion-hint{color:var(--muted);text-align:right}.completion-card{margin-top:1.5rem;border-top:1px solid var(--border);padding-top:1.5rem}.button-link{display:inline-flex;align-items:center;min-height:2.75rem;border:1px solid var(--border);border-radius:8px;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;padding:.75rem 1rem;text-decoration:none}.success{color:var(--green)}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.profile-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem}.level-emblem{flex:0 0 auto;border-radius:999px;background:#9f7cff29;border:1px solid rgba(159,124,255,.5);color:var(--text);padding:.75rem 1rem;font-weight:800}.xp-progress{display:grid;gap:.75rem;margin:1.5rem 0}.xp-progress>div{display:flex;justify-content:space-between;gap:1rem}.xp-progress progress{width:100%;height:.8rem;accent-color:var(--pink)}.account-flag{font-size:1.2rem!important}.break-anywhere{overflow-wrap:anywhere}.dialog-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#000000b8}.confirm-dialog{width:min(32rem,100%)}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.75rem}.lesson-block{border-top:1px solid var(--border);padding:1.25rem 0}.japanese{display:block;font-size:clamp(2rem,8vw,4rem);color:var(--pink)}blockquote{border-left:4px solid var(--orange);margin:1rem 0;padding-left:1rem;color:var(--muted)}@media(max-width:860px){.auth-page,.app-shell,.hero,.grid-two{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--border);width:100%;max-width:100vw;min-width:0}.sidebar nav{display:flex;max-width:100%;min-width:0;overflow-x:auto;padding-bottom:.5rem}.sidebar button{white-space:nowrap}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{grid-template-columns:1fr}.compact-profile{max-width:none}.profile-heading,.xp-progress>div{flex-direction:column}.character-lesson{grid-template-columns:1fr;grid-template-areas:"copy" "mnemonic" "details"}}@media(max-width:520px){.workspace,.sidebar{padding-inline:.85rem}.stats{grid-template-columns:1fr}.review-heading{align-items:stretch;flex-direction:column}.xp-badge{align-self:flex-start}.inline-form{grid-template-columns:1fr}.lesson-preview,.next-lesson-card{min-height:14rem}.lesson-page{padding-inline:.75rem}.character-sequence{gap:.35rem}.character-tab{padding-inline:.2rem}.character-tab span{font-size:1.7rem}.lesson-navigation{align-items:stretch;flex-direction:column-reverse}.lesson-navigation button{width:100%}.completion-hint{text-align:left}.review-stage{min-height:27rem}}
