@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600&display=swap";:root{font-family:DM Sans,Noto Sans JP,system-ui,sans-serif;font-synthesis:none;line-height:1.6;--green: #245c49;--muted: #65756d;--line: #dce3db;--ink: #233c35;--surface: #fffefa;--soft: #eef3e8;--page: #f7f8f4;color:var(--ink);background:var(--page)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.file-button{border:1px solid #cad7cc;background:#fff;color:#254c3d;border-radius:9px;padding:9px 16px;cursor:pointer;transition:background .15s,border-color .15s}button:hover:not(:disabled),.file-button:hover{background:#eff5ed;border-color:#7b9d88}button:disabled{opacity:.48;cursor:not-allowed}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover:not(:disabled){background:#183e31}button.danger{color:#982c2c;border-color:#dca4a4}a{color:var(--green);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d5a242;outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:600;letter-spacing:-.055em;line-height:1.2;margin-bottom:12px}h2{font-size:1.5rem;letter-spacing:-.035em;line-height:1.35}h3{font-size:1.05rem;line-height:1.4;margin-bottom:8px}h4{margin-bottom:8px}p{color:#566a60}input,select{border:1px solid #c9d4ca;border-radius:8px;background:#fff;padding:10px 12px;min-height:44px;color:#233c35;max-width:100%}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:500}label.check{flex-direction:row;align-items:center;gap:10px;padding:8px 0;font-weight:400}label.check input{min-height:unset;width:18px;height:18px;accent-color:var(--green)}progress{width:100%;height:8px;border:0;border-radius:20px;overflow:hidden;accent-color:#53836a;background:#e4e9e1}progress::-webkit-progress-bar{background:#e4e9e1}progress::-webkit-progress-value{background:#53836a;border-radius:20px}.app-shell{display:flex;min-height:100vh}.sidebar{width:238px;flex-shrink:0;position:fixed;height:100dvh;padding:32px 22px 22px;background:#fffefa;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:1.4rem;font-weight:700;line-height:1.4;color:#254c3c}.brand small{display:block;font-size:.67rem;font-weight:400;color:var(--muted)}.brand-mark{width:46px;height:46px;display:grid;place-items:center;background:#e7eddf;border-radius:12px;font-size:1.7rem;font-family:Noto Sans JP,sans-serif}nav{display:grid;gap:7px;margin-top:44px}nav a{display:flex;gap:14px;align-items:center;text-decoration:none;color:#627068;padding:10px 14px;font-size:.9rem;border-radius:8px}nav a[aria-current]{background:#eaf0e5;color:#234f39;font-weight:600}nav a:hover{background:#f1f4ec}.nav-icon{width:20px;font-size:1.2rem;text-align:center}.nav-count{margin-left:auto;background:#d7e5cd;border-radius:12px;font-size:.75rem;padding:0 7px}.sidebar-bottom{margin-top:auto;padding:40px 10px 0;font-size:.75rem}.sidebar-bottom p{margin:12px 0}.main-shell{margin-left:238px;width:calc(100% - 238px);min-width:0}.topbar{height:83px;display:flex;justify-content:flex-end;gap:20px;align-items:center;padding:0 44px;border-bottom:1px solid var(--line);background:#fffefa}.sync-status{color:var(--muted);font-size:.75rem}.topbar button{font-size:.82rem;padding:7px 12px}.mobile-brand{display:none}main{max-width:1320px;margin:auto;padding:44px}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:30px}.page-heading p{margin-bottom:0;font-size:.9rem}.eyebrow{font-size:.66rem;letter-spacing:.12em;font-weight:700;color:#75816c;display:block;margin-bottom:10px;text-transform:uppercase}.level-select{min-width:110px;font-size:.75rem}.hero{background:#eaf0e0;border:1px solid #dbe5cc;border-radius:16px;padding:35px;display:grid;grid-template-columns:1fr 180px;align-items:center;gap:28px}.hero h2{font-size:clamp(1.6rem,2.5vw,2rem);margin-bottom:12px}.hero p{font-size:.9rem;max-width:510px}.hero .eyebrow{color:#687e50}.hero-character{color:#3e654d;font-size:7.5rem;text-align:center;line-height:1.1;font-weight:500;font-family:Noto Sans JP,sans-serif}.hero-character span{display:block;font-size:.7rem;margin-top:18px;font-weight:400;color:#6a7e5a}.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}.button-row button{font-size:.85rem}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0 34px}.stat{background:#fffefa;border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:flex-start}.stat>span{font-size:.75rem;color:var(--muted)}.stat strong{font-size:2rem;font-weight:500;line-height:1.5;margin-top:5px}.text-button{padding:0;background:none;border:0;border-radius:0;color:#3a7053;font-size:.8rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-heading h2,.section-heading h3,.section-heading .eyebrow{margin-bottom:0}.section-heading>.muted{font-size:.75rem}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.feature-card{text-align:left;padding:22px 18px;background:#fffefa;border-color:var(--line);border-radius:12px}.feature-card h3{margin-top:17px;font-size:.95rem}.feature-card p{font-size:.78rem;min-height:60px}.feature-icon{display:inline-grid;place-items:center;width:44px;height:44px;background:#f2e9da;border-radius:12px;font-size:1.6rem;color:#8e754e;font-weight:500}.feature-card:nth-child(2) .feature-icon{background:#e4ecdf;color:#567746}.feature-card:nth-child(3) .feature-icon{background:#e2e8ef;color:#586d89}.feature-card:nth-child(4) .feature-icon{background:#ede3e2;color:#9c6966}.panel{background:#fffefa;border:1px solid var(--line);border-radius:12px;padding:28px;margin-bottom:22px}.panel p{font-size:.92rem}.level-overview{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.level-overview button{display:flex;flex-direction:column;align-items:flex-start;padding:14px;border-color:#e1e6dc;background:#f7f9f2}.level-overview strong{font-size:1.1rem;margin-bottom:6px}.level-overview span{font-size:.69rem;color:var(--muted)}.small{font-size:.78rem!important}.muted{color:var(--muted)}.badge{font-size:.68rem;padding:4px 8px;color:#60734c;border-radius:6px;background:#edf2e5;display:inline-block}.grow{flex:1;min-width:0}.center{text-align:center}.toolbar{display:flex;gap:16px;align-items:end;margin-bottom:15px;flex-wrap:wrap}.toolbar .grow{min-width:190px}.item-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.item-card{background:#fffefa;border:1px solid var(--line);border-radius:11px;padding:20px;overflow-wrap:anywhere}.word-button{font-family:Noto Sans JP,sans-serif;font-size:1.6rem;font-weight:500;border:0;background:none;padding:0;text-align:left;line-height:1.6}.reading{font-family:Noto Sans JP,sans-serif;font-size:.9rem;color:#456b55;margin:3px 0}.romaji{font-size:.78rem;color:#7b806b;margin:3px 0}.meaning{font-size:.85rem;margin-top:10px}.kanji-card .word-button{font-size:2.8rem}.audio-button{font-size:.75rem;padding:5px 11px;background:#f3f6ee}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin:25px 0;font-size:.85rem}.notice{padding:18px 22px;border-radius:10px;border:1px solid #dedcbd;background:#f7f4e3;margin-bottom:22px;color:#6a654a;font-size:.87rem}.course-intro{display:flex;gap:28px;justify-content:space-between;align-items:center}.course-intro p{max-width:570px;margin-bottom:0}.course-progress{min-width:150px;display:flex;flex-direction:column;text-align:center;gap:5px}.course-progress strong{font-size:1.5rem}.course-progress span{font-size:.8rem}.unit{padding:20px;display:flex;align-items:center;gap:18px;border:1px solid var(--line);background:#fffefa;border-radius:10px;margin-bottom:12px}.unit.locked{background:#f0f2ec}.unit.passed{border-color:#a9c5a1}.unit-number{height:40px;min-width:40px;border-radius:50%;display:grid;place-items:center;background:#e9efe1;color:#526e43}.unit .eyebrow{margin-bottom:5px}.unit h3,.unit p{margin-bottom:0}.unit .button-row{flex-shrink:0}.segmented,.filter-chips{display:flex;gap:8px;flex-wrap:wrap}button[aria-pressed=true]{background:#e1edd6;border-color:#8fa47a}.filter-chips{margin:18px 0 28px}.filter-chips button{font-size:.75rem;padding:6px 12px;border-radius:20px}.kana-section{margin:24px 0}.kana-section h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:#748169}.kana-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(83px,1fr));gap:10px}.kana-tile{display:flex;flex-direction:column;align-items:center;background:#fffefa;padding:12px 6px;min-height:98px}.kana-tile span:first-child{font-family:Noto Sans JP,sans-serif;font-size:1.75rem}.kana-tile span:last-child{font-size:.73rem;color:var(--muted)}.grammar-lesson summary{cursor:pointer;font-weight:600;font-size:1.1rem}.grammar-lesson[open] summary{margin-bottom:18px}.grammar-lesson>p,.lesson-preview>p{white-space:pre-line}.example{display:flex;flex-direction:column;gap:6px;margin:18px 0;border-left:3px solid #cadbb9;padding-left:18px;text-align:left}.example p{margin-bottom:4px}.example [lang=ja]{font-family:Noto Sans JP,sans-serif}.example button{align-self:flex-start}.quiz{max-width:800px;margin-left:auto;margin-right:auto}.quiz-prompt{font-size:clamp(1.6rem,4vw,2.4rem);padding:34px 0;text-align:center;overflow-wrap:anywhere}.grammar-question{padding:30px 0;line-height:1.8}.choices{display:grid;grid-template-columns:1fr 1fr;gap:14px}.choices button{min-height:65px;font-size:1.15rem;overflow-wrap:anywhere}.choices button.correct-choice{border-color:#65a163;background:#e7f2e3;opacity:1}.choices button.wrong-choice{border-color:#c7887e;background:#f9eae5;opacity:1}.feedback{margin:20px 0;padding:20px;border:1px solid;border-radius:10px}.feedback.correct{border-color:#b6d2aa;background:#edf4e7;color:#36603b}.feedback.incorrect{border-color:#dfbbb2;background:#faf0e9;color:#8b4e3e}.feedback p{margin-bottom:12px}.feedback .primary{display:block;margin-top:16px}.quiz-result{text-align:center}.result-score{font-size:4rem;font-weight:600;color:var(--green)}.mistakes{margin-top:35px;text-align:left}.mistakes article{border-top:1px solid var(--line);padding-top:16px}form{display:grid;gap:18px}form>button.primary{justify-self:start}.account{max-width:620px}.flashcard{width:100%;padding:40px 30px;min-height:330px;background:#f7f9f1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.flashcard-word{font-size:clamp(2.2rem,5vw,3.6rem);font-family:Noto Sans JP,sans-serif;line-height:1.6;overflow-wrap:anywhere}.flashcard .muted{font-size:.85rem}.card-meaning{font-size:1rem;max-width:700px}.rating-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:24px 0}dialog{padding:28px;border:1px solid var(--line);border-radius:16px;background:#fffefa;color:#233c35;max-width:min(840px,95vw);max-height:90dvh;overflow:auto;width:780px}dialog::backdrop{background:#14281dc2;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.dialog-heading h2{margin:0;overflow-wrap:anywhere}.practice-modes{display:grid;grid-template-columns:1fr 1fr;gap:16px}.practice-modes button{text-align:left;padding:20px;font-weight:600}.practice-modes span{display:block;font-size:.75rem;font-weight:400;margin-top:8px;color:var(--muted)}.word-detail{margin-bottom:25px}.word-detail>button{margin-right:10px}.writing-grids{display:grid;grid-template-columns:1fr 1fr;gap:20px}.writing-pad{border:1px solid #ccd8c6;border-radius:8px;width:100%;max-height:310px;aspect-ratio:1;display:block;background:#fdfdf8;touch-action:none;-webkit-user-select:none;user-select:none}.writing-pad text{font-size:5px;fill:#a76e51}.writing-pad path:not(.grid-lines),.drawn-stroke{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.animated-stroke{stroke:#426d4e;stroke-dasharray:1;stroke-dashoffset:1;animation:draw .55s linear forwards}.grid-lines{stroke:#d6dece;stroke-width:.4;stroke-dasharray:2}.trace-stroke{stroke:#e2e7db}.drawn-stroke{stroke:#284934}.file-button{position:relative;overflow:hidden;display:inline-block;font-size:.85rem}.file-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%}.source{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.error-banner{display:flex;justify-content:space-between;gap:15px;background:#f9e9e2;color:#7c3d30;padding:16px;border:1px solid #d9b5a8;border-radius:10px;margin-bottom:24px;overflow-wrap:anywhere}.error-banner button{align-self:start;flex-shrink:0}.empty-state{text-align:center;padding:60px 20px}footer{border-top:1px solid var(--line);margin-top:40px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:.7rem;color:var(--muted)}@keyframes draw{to{stroke-dashoffset:0}}@media(min-width:1600px){main{padding-top:55px}}@media(max-width:1180px){.sidebar{width:210px;padding:28px 16px}.main-shell{margin-left:210px;width:calc(100% - 210px)}main{padding:30px}.feature-grid{grid-template-columns:repeat(2,1fr)}.feature-card p{min-height:0}.level-overview{grid-template-columns:repeat(3,1fr)}.item-grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr 140px}.hero-character{font-size:6rem}}@media(max-width:800px){.sidebar{width:100%;height:auto;position:sticky;bottom:0;top:auto;order:2;z-index:5;padding:0;overflow-x:auto;border-top:1px solid var(--line);border-right:0}.sidebar .brand,.sidebar-bottom{display:none}nav{display:flex;margin:0;gap:0;padding:5px;justify-content:space-around}nav a{flex-direction:column;font-size:.59rem;gap:1px;padding:7px 10px;white-space:nowrap}.nav-icon{font-size:1.05rem}.nav-count{display:none}.app-shell{flex-direction:column}.main-shell{margin:0;width:100%;flex:1}.mobile-brand{display:block;margin-right:auto;font-size:1.1rem;font-weight:700;text-decoration:none}.topbar{padding:0 22px;height:65px}.sync-status{display:none}main{padding:28px 22px}.stats-grid{gap:10px}.stat{padding:14px}.stat>span{font-size:.65rem}.stat strong{font-size:1.6rem}.unit{flex-wrap:wrap}.unit .button-row{margin-left:58px;margin-top:0}.course-intro{align-items:start}}@media(max-width:520px){main{padding:24px 16px}.page-heading{gap:14px}.page-heading p{font-size:.82rem}.hero{padding:24px;grid-template-columns:1fr}.hero-character{display:none}.hero h2{font-size:1.65rem}.stats-grid{grid-template-columns:1fr 1fr}.feature-grid{gap:10px}.feature-card{padding:17px 14px}.section-heading{flex-wrap:wrap}.level-overview{grid-template-columns:repeat(2,1fr)}.panel{padding:21px 17px}.item-grid{gap:10px}.item-card{padding:14px}.word-button{font-size:1.3rem}.reading{font-size:.8rem}.meaning{font-size:.76rem}.toolbar{gap:12px}.toolbar label{width:100%}.unit{gap:12px;padding:16px}.unit .button-row{margin-left:52px}.course-intro{flex-direction:column}.course-progress{width:100%;text-align:left}.choices,.practice-modes{grid-template-columns:1fr}.writing-grids{gap:10px}dialog{padding:20px 16px}.rating-buttons{gap:6px}.rating-buttons button{padding:10px 6px;font-size:.8rem}footer{flex-direction:column;gap:8px}nav{justify-content:start}nav a{flex:1;padding:7px 9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition:none!important}}:root{--shine: #fff9;--depth: #27302a12;--surface: #fffdf6;--page: #f3f0e8;--ink: #292e2b;--muted: #61685f;--line: #d7d4c8;--green: #475f53;--soft: #eceee5;--button-ink: #fff}:root[data-theme=dark],:root[data-theme=seasonal]:not([data-light=day]){--page: #151b20;--surface: #202a30;--soft: #2b373d;--ink: #f1eee5;--muted: #bdc7c7;--line: #4a575b;--green: #b7d5b9;--button-ink: #10251c;--shine: #ffffff10;--depth: #0003}:root[data-theme=light]{--button-ink: #fff}:root[data-theme=seasonal][data-season=spring]{--green: #805071;--soft: #f6eaf0;--line: #ddcbd8}:root[data-theme=seasonal][data-season=summer]{--green: #286e67;--soft: #e0f0e9;--line: #c4d8d0}:root[data-theme=seasonal][data-season=autumn]{--green: #8d5033;--soft: #f4e9dc;--line: #dcc8b3}:root[data-theme=seasonal][data-season=winter]{--green: #3a6587;--soft: #e6eef7;--line: #c6d3e2}:root[data-theme=seasonal]:not([data-light=day])[data-season=spring]{--green: #e1b5d5;--soft: #382937;--line: #62485c}:root[data-theme=seasonal]:not([data-light=day])[data-season=summer]{--green: #9ed5c8;--soft: #203d3a;--line: #42615b}:root[data-theme=seasonal]:not([data-light=day])[data-season=autumn]{--green: #e8b492;--soft: #3b2c26;--line: #695047}:root[data-theme=seasonal]:not([data-light=day])[data-season=winter]{--green: #b8cfee;--soft: #263445;--line: #495c74}:root[data-theme=seasonal][data-light=day]{--button-ink: white}:root[data-theme=seasonal]:not([data-light=day]){--button-ink: #19201e}body{background:var(--page);color:var(--ink)}.app-shell{display:block;position:relative;isolation:isolate}.main-shell{margin:0;width:100%}.seasonal-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;background:var(--page);pointer-events:none}.scenery-layer{position:absolute;top:0;right:0;bottom:0;left:0;background-position:center;background-size:cover;opacity:0;transition:opacity 3s ease-in-out}.scenery-layer.visible{opacity:1}.scenery-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,#0d141a55,#0d141a18)}.topbar{position:sticky;top:0;z-index:20;height:auto;min-height:86px;padding:12px clamp(16px,3vw,48px);display:flex;justify-content:space-between;gap:18px;background:color-mix(in srgb,var(--surface) 95%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-color:var(--line);box-shadow:0 3px 24px var(--depth),inset 0 1px var(--shine)}.brand{flex-shrink:0;gap:10px;color:var(--ink)}.brand-mark{width:44px;height:48px;font-size:2rem;background:linear-gradient(155deg,#ae594e,#82382f);color:#fff7e6;border:1px solid #783e35;border-radius:12px 5px;box-shadow:inset 0 1px 1px #fff6,0 2px 4px #0002;font-family:Yu Mincho,Hiragino Mincho ProN,serif}.brand-word{font-size:1.15rem;font-weight:500;letter-spacing:.04em}.brand-word small{font-size:.65rem;letter-spacing:.02em}.topbar nav{margin:0;display:flex;gap:3px;flex:1;align-items:center;justify-content:center}.topbar nav a{display:flex;flex-direction:row;font-size:.82rem;padding:10px;white-space:nowrap;gap:5px;color:var(--muted);border-radius:6px;border-bottom:2px solid transparent}.topbar nav a[aria-current],.topbar nav a:hover{background:var(--soft);color:var(--green);border-bottom-color:var(--green)}.header-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}.topbar .account-button{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-control{position:relative;display:flex;width:144px;min-width:144px;height:46px;margin:0;padding:4px;border:1px solid var(--line);border-radius:25px;background:color-mix(in srgb,var(--soft) 80%,var(--line));box-shadow:inset 0 2px 5px #00000014,0 1px var(--shine)}.theme-thumb{position:absolute;left:4px;top:4px;bottom:4px;width:calc((100% - 8px) / 3);border-radius:22px;background:linear-gradient(160deg,var(--shine),transparent),var(--surface);box-shadow:0 2px 5px #0003,inset 0 1px var(--shine);transition:transform .24s cubic-bezier(.2,.8,.2,1);pointer-events:none}.theme-option{position:relative;flex:1;align-items:center;justify-content:center;cursor:pointer;color:var(--muted)}.theme-option input{position:absolute;top:-4px;right:0;bottom:-4px;left:0;width:100%;height:44px;min-height:44px;padding:0;opacity:0;cursor:pointer;margin:0}.theme-option svg{width:21px;height:21px;pointer-events:none}.theme-option:has(input:checked){color:var(--green)}.theme-option:has(input:focus-visible){outline:2px solid var(--green);outline-offset:3px;border-radius:22px}.ambient-controls{position:relative;font-size:.8rem}.ambient-controls summary{display:grid;place-items:center;width:44px;height:44px;cursor:pointer;border:1px solid var(--line);border-radius:50%;list-style:none;background:linear-gradient(155deg,var(--shine),transparent),var(--surface);box-shadow:0 2px 4px var(--depth),inset 0 1px var(--shine)}.ambient-controls summary::-webkit-details-marker{display:none}.ambient-controls summary svg{width:21px;height:21px}.ambient-controls .sound-playing{color:var(--green);background-color:var(--soft)}.ambient-panel{display:grid;gap:18px;position:absolute;right:0;top:calc(100% + 15px);width:260px;padding:22px;border:1px solid var(--line);background:var(--surface);border-radius:18px;box-shadow:0 12px 40px #0003,inset 0 1px var(--shine)}.volume-control>span{display:flex;justify-content:space-between}.volume-control output{color:var(--muted);font-variant-numeric:tabular-nums}.ambient-panel input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:0;height:44px;border:0;border-radius:0;background:linear-gradient(var(--green),var(--green)) no-repeat left center;cursor:pointer}.ambient-panel input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:color-mix(in srgb,var(--green) 25%,transparent)}.ambient-panel input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 6px #0003,inset 0 1px var(--shine)}.ambient-panel input[type=range]::-moz-range-track{height:4px;background:color-mix(in srgb,var(--green) 25%,transparent);border-radius:4px}.ambient-panel input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 6px #0003}main{max-width:1280px;padding:35px 36px calc(110px + env(safe-area-inset-bottom))}.page-heading{background:var(--surface);border-radius:12px;padding:18px 24px;min-height:72px;border:1px solid var(--line)}.page-heading h1{margin:0;font-size:1.75rem}.page-heading .level-select{flex-direction:row;align-items:center;gap:12px}.page-heading .level-select select{min-width:80px}.hero{background:linear-gradient(120deg,var(--shine),transparent 55%),color-mix(in srgb,var(--surface) 95%,transparent);border-color:var(--line);min-height:210px;padding:32px 38px;box-shadow:inset 0 1px var(--shine),0 10px 35px var(--depth);border-radius:20px 8px}.hero h2{font-size:2.4rem;color:var(--ink);margin:0 0 20px}.hero h2>span,.hero-character{font-family:Yu Mincho,Hiragino Mincho ProN,Noto Sans JP,serif;font-weight:500;letter-spacing:.08em}.hero h2 small{display:block;font-size:.8rem;letter-spacing:.08em;color:var(--muted);font-weight:400;margin-top:6px}.hero-character{color:var(--green);font-size:6rem;text-shadow:0 1px var(--shine)}.panel,.item-card,.feature-card,.stat,.unit,.kana-tile,dialog{color:var(--ink);background:linear-gradient(160deg,var(--shine),transparent 42%),var(--surface);border-color:var(--line);box-shadow:inset 0 1px var(--shine),0 5px 18px var(--depth)}.section-heading>h2{color:var(--ink)}:root[data-theme=seasonal] main>.section-heading,:root[data-theme=seasonal] .section-heading>h2{background:var(--surface);border-radius:8px;padding:8px 14px}.feature-card:hover:not(:disabled),.item-card:hover,.unit:hover{border-color:var(--green)}.feature-card{min-height:150px;border-radius:16px 6px;transition:transform .2s,box-shadow .2s,border-color .2s}.feature-card:hover:not(:disabled){transform:translateY(-3px);box-shadow:inset 0 1px var(--shine),0 10px 24px var(--depth)}.feature-card p,.feature-card .text-button{display:none}.feature-icon{background:linear-gradient(140deg,var(--shine),transparent),var(--soft)!important;color:var(--green)!important;border:1px solid var(--line);border-radius:10px 4px;box-shadow:inset 0 1px var(--shine)}.feature-card h3{margin-bottom:0}.level-overview button,.flashcard,.unit.locked,.notice,.badge,.unit-number,button[aria-pressed=true]{background:var(--soft);color:var(--ink);border-color:var(--line)}.nav-count{background:var(--soft);color:var(--green)}p,.panel p,.romaji,.reading,.meaning,.level-overview span,.stat>span,.muted,.eyebrow,.text-button,.source,.practice-modes span{color:var(--muted)}.reading,.word-button,.flashcard-word{color:var(--ink)}.eyebrow{letter-spacing:.06em}a,.text-button,.result-score{color:var(--green)}button,input,select,.file-button{background-color:var(--surface);color:var(--ink);border-color:var(--line)}button,.file-button{background-image:linear-gradient(175deg,var(--shine),transparent 55%);box-shadow:inset 0 1px var(--shine),0 2px 3px var(--depth);border-radius:10px 5px}button:hover:not(:disabled),.file-button:hover{background:var(--soft);border-color:var(--green)}button.primary{background:linear-gradient(175deg,#ffffff24,transparent 55%),var(--green);color:var(--button-ink, white);border-color:var(--green);box-shadow:inset 0 1px #ffffff40,0 3px 7px var(--depth)}button.primary:hover:not(:disabled){background:var(--green);filter:brightness(.9)}.audio-button{background:var(--soft)}.text-button,.word-button{box-shadow:none;background-image:none;border-radius:0}dialog{position:fixed;top:0;right:0;bottom:0;left:0;margin:auto}dialog.account-dialog{width:min(520px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px)}body:has(dialog[open]){overflow:hidden}.appearance-settings .theme-control{margin-bottom:12px}.appearance-settings p{margin-bottom:0}.feedback.correct{background:#e5f1e2;border-color:#9bbd94;color:#254c27}.feedback.correct p,.feedback.correct h3{color:#254c27}.feedback.incorrect,.error-banner{background:#fae9e3;border-color:#d3a594;color:#723b2a}.feedback.incorrect p{color:#723b2a}.choices button.correct-choice{color:#254c27}.choices button.wrong-choice{color:#723b2a}.writing-pad{background:#fffefa}.writing-pad.model .animated-stroke{stroke:#426d4e}.grammar-lesson p{line-height:1.9}.grammar-lesson .example{padding:12px 18px;background:var(--soft);border-radius:0 8px 8px 0;border-color:var(--green)}.daily-challenge{margin-top:24px}.daily-challenge h2{font-size:1.3rem}.daily-challenge h3,.daily-challenge .daily-prompt{font-size:1.25rem;line-height:1.8}.daily-answer-mode{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.daily-answer-mode{padding:10px 14px;border:1px solid var(--line);border-radius:8px}.daily-answer-mode legend{font-size:.75rem;color:var(--muted);padding:0 6px}.daily-answer-mode label{flex-direction:row;align-items:center;gap:7px;padding:4px;font-size:.82rem}.daily-answer-mode input[type=radio]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;min-height:16px;width:16px;height:16px;padding:0;margin:0;accent-color:var(--green)}.daily-challenge .choices{margin:16px 0}.daily-challenge form{max-width:650px}.daily-challenge input[type=text]{width:100%}.insight-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.insight-stats>div{background:var(--soft);border-radius:10px;padding:15px}.insight-stats dt{font-size:.8rem;color:var(--muted)}.insight-stats dd{font-size:1.75rem;font-weight:600;margin:5px 0 0}.activity-chart{width:100%;height:auto;max-height:310px;color:var(--green)}.review-insights table{border-collapse:collapse;width:100%;margin-top:16px;font-size:.82rem}.review-insights th,.review-insights td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.review-insights{overflow-x:auto}.activity-table summary{cursor:pointer;color:var(--muted);margin-top:16px}.scenery-controls{display:flex;gap:6px;min-width:0;align-items:center;font-size:.7rem}.scene-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.scenery-controls button{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:10px}.scenery-controls svg{width:20px;height:20px}footer.site-footer{position:fixed;inset:auto 0 0;z-index:15;display:flex;justify-content:space-between;align-items:center;flex-direction:row;gap:16px;margin:0;min-height:62px;padding:8px clamp(16px,3vw,48px) calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 95%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:0 -3px 24px var(--depth),inset 0 1px var(--shine)}.site-footer>a{flex-shrink:0}.sr-only{position:absolute;height:1px;width:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1200px){.topbar{flex-wrap:wrap;gap:12px 20px;padding:10px 24px}.topbar nav{order:3;width:100%;flex-basis:100%;justify-content:center;padding:0}.header-controls{margin-left:auto}}@media(max-width:800px){.app-shell{display:block}.topbar{position:sticky;top:0;padding:10px 18px;min-height:112px}.topbar nav{display:flex;overflow-x:auto;justify-content:space-between;gap:3px;-webkit-overflow-scrolling:touch}.topbar nav a{flex:0 0 auto;padding:8px;font-size:.77rem}.main-shell{margin:0;width:100%}main{padding:24px 18px calc(100px + env(safe-area-inset-bottom))}.header-controls{gap:12px}.theme-control{width:144px;min-width:144px}.page-heading{padding:15px 20px}.sync-status{display:block}}@media(max-width:520px){.topbar{padding:8px 12px;gap:8px 10px}.brand-mark{width:40px;height:40px;font-size:1.8rem}.header-controls{gap:9px}.theme-control{width:132px;min-width:132px}.ambient-controls{font-size:.72rem}.topbar .account-button{max-width:85px;min-height:44px;font-size:.73rem;padding:8px}.topbar nav a{font-size:.72rem;padding:8px 7px}main{padding:20px 12px calc(100px + env(safe-area-inset-bottom))}.page-heading{margin-bottom:20px;padding:13px 17px}.page-heading h1{font-size:1.45rem}.page-heading .level-select{font-size:.72rem;gap:7px}.hero{display:grid;grid-template-columns:1fr 65px;padding:24px;min-height:150px}.hero-character{display:block;font-size:4rem}.hero h2{font-size:1.8rem}.hero .button-row{gap:8px}.hero button{font-size:.75rem;padding:9px 10px}.hero .button-row button{white-space:nowrap}.feature-card{min-height:120px}.insight-stats{grid-template-columns:1fr 1fr;gap:10px}.review-insights th,.review-insights td{padding:8px;font-size:.75rem}.ambient-panel{right:-70px}footer.site-footer{padding-inline:12px;gap:10px}.scene-name{max-width:calc(100vw - 230px)}}@media(max-width:380px){.topbar{padding-inline:8px}.header-controls{width:100%;justify-content:space-between;gap:10px}.brand-mark{width:38px;height:40px}.ambient-panel{right:-90px}.hero{grid-template-columns:1fr}.hero-character{display:none}}@media(prefers-reduced-motion:reduce){.scenery-layer,.theme-thumb,.feature-card{transition:none}.feature-card:hover:not(:disabled){transform:none}}
