:root{--bg:#f6f8f9;--paper:#fff;--ink:#20352f;--muted:#6b7773;--green:#245b47;--green-dark:#1c4939;--mint:#e6f0e9;--line:#e3e8e5;--orange:#ba673b;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Segoe UI,Yu Gothic UI,Meiryo,sans-serif;font-size:16px;line-height:1.6}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.035em;line-height:1.25}h1{font-size:clamp(1.8rem,3vw,2.45rem);font-weight:650}h2{font-size:1.45rem;font-weight:650}h3{font-size:1.06rem;font-weight:650}p{color:var(--muted)}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #b26d38}button{border:0}svg{flex-shrink:0}::selection{background:#d4e9d9}main{outline:none}[lang=ja]{letter-spacing:.025em;font-family:Yu Gothic,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}.app-shell{min-height:100vh}.sidebar{display:none}.sidebar-toggle{border:1px solid var(--line);width:40px;height:40px;color:var(--green);background:#fff;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.sidebar-toggle:hover{background:#eaf1e9}.sidebar-reopen{display:none}@media (min-width:1100px){.sidebar-collapsed .sidebar{display:none}.sidebar-collapsed .workspace{margin-left:0}.sidebar-reopen{margin-right:16px;display:grid}.sidebar-collapsed .breadcrumb{margin-right:auto}}.workspace{min-width:0}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:68px;padding:0 20px;display:flex}.mobile-brand{letter-spacing:-.07em;align-items:center;gap:8px;font-size:1.5rem;font-weight:750;display:flex}.mobile-brand>span{background:var(--green);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;font-size:1.3rem;display:grid}.breadcrumb{color:var(--muted);align-items:center;gap:12px;font-size:.88rem;display:none}.breadcrumb strong{color:var(--ink);font-weight:550}.local-badge{color:var(--muted);align-items:center;gap:7px;font-size:.78rem;display:flex}.local-badge>span{background:#5d8e70;border-radius:50%;width:6px;height:6px}main{max-width:1440px;margin:0 auto;padding:0 18px 100px}.eyebrow{letter-spacing:.13em;color:var(--muted);font-size:.72rem;font-weight:650}.level-bar{border-bottom:1px solid var(--line);align-items:center;gap:14px;margin-bottom:26px;padding:22px 0;display:flex}.level-bar>.eyebrow{flex-shrink:0;font-size:.68rem}.level-options{background:#edf0ee;border-radius:10px;gap:4px;padding:4px;display:flex}.level-options button{color:#697670;background:0 0;border-radius:7px;width:40px;min-height:36px;font-size:.84rem;font-weight:650}.level-options button.selected{background:var(--green);color:#fff;box-shadow:0 2px 4px #1c49391a}.level-hint{color:var(--muted);align-items:center;gap:8px;margin-left:auto;font-size:.8rem;display:none}.page-title{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.page-title .eyebrow{margin-bottom:10px;display:block}.page-title p{margin-top:12px;font-size:.92rem}.date-label{white-space:nowrap;color:var(--muted);align-items:center;gap:7px;font-size:.83rem;display:none}.dashboard-grid{gap:24px;display:grid}.dashboard-main,.dashboard-aside{min-width:0}.welcome-card{background:var(--green);color:#fff;border-radius:var(--radius);align-items:center;min-height:305px;padding:28px 24px;display:flex;position:relative;overflow:hidden}.welcome-copy{z-index:1;position:relative}.pill{letter-spacing:.06em;border:1px solid #ffffff38;border-radius:6px;align-items:center;gap:8px;padding:5px 10px;font-size:.65rem;font-weight:550;display:inline-flex}.welcome-card h2{letter-spacing:-.035em;margin:20px 0 13px;font-size:clamp(1.8rem,3vw,2.3rem);line-height:1.2}.welcome-card p{color:#d7e5dc;font-size:.85rem;line-height:1.7}.welcome-card .button{margin-top:24px}.button{border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:11px 19px;font-size:.87rem;font-weight:600;line-height:1.35;transition:background .18s,transform .18s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.primary{background:var(--green);color:#fff}.primary:hover:not(:disabled){background:var(--green-dark)}.secondary{border-color:var(--line);color:var(--ink);background:#fff}.secondary:hover:not(:disabled){background:#f0f5f1}.light{color:var(--green);background:#f5f9f1}.full{width:100%}.kanji-motif{flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:210px;height:240px;margin-left:auto;display:none;position:relative}.kanji-motif>[lang=ja]{color:#e2ebd7;z-index:1;font-family:Yu Mincho,serif;font-size:140px;line-height:1.4;transform:rotate(-7deg)}.kanji-motif small{z-index:1;letter-spacing:.2em;color:#d3e4d8;font-size:.72rem}.motif-ring{border:1px solid #aec9b540;border-radius:50%;width:210px;height:210px;position:absolute;top:5px}.motif-ring:after{content:"";border:1px solid #aec9b530;border-radius:50%;width:172px;height:172px;position:absolute;top:18px;left:18px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:18px 0 28px;display:grid}.stat-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:15px 12px;position:relative}.stat-icon{border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;display:none}.green{color:#557c5d;background:#ecf3ed}.orange{color:#b87745;background:#fcf0e7}.blue{color:#6178a8;background:#edf0f9}.stat-value{letter-spacing:-.035em;font-size:1.6rem;font-weight:650;line-height:1.3;display:block}.stat-value small{color:#8c9791;font-size:.9rem;font-weight:400}.stat-card p{margin-top:7px;font-size:.69rem}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin:0 0 18px;display:flex}.section-heading h2{font-size:1.22rem}.small-muted{color:var(--muted);font-size:.8rem}.section-heading>.small-muted{letter-spacing:.045em;font-size:.62rem}.area-grid{grid-template-columns:1fr;gap:14px;display:grid}.area-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;transition:box-shadow .2s,border-color .2s;display:block}.area-card:hover{border-color:#a8bfb0;box-shadow:0 6px 22px #20352f08}.card-top{justify-content:space-between;align-items:center;margin-bottom:19px;display:flex}.card-top>svg{color:#8a9890}.area-icon{color:#5e7c4d;background:#e8f1e7;border-radius:12px;place-items:center;width:46px;height:46px;display:grid}.kanji .area-icon{color:#b0714c;background:#fbede4}.gramatica .area-icon{color:#8072ae;background:#eeedf8}.leitura .area-icon{color:#688bad;background:#e9f0f8}.area-card h3{font-size:1.13rem}.area-card p{margin:8px 0 24px;font-size:.81rem}.progress-label{color:var(--muted);justify-content:space-between;margin-bottom:9px;font-size:.71rem;display:flex}.progress-label strong{color:var(--ink);font-weight:550}.progress-track{background:#edf1ee;border-radius:6px;width:100%;height:5px;overflow:hidden}.progress-track>span{background:#72916c;border-radius:6px;height:100%;transition:width .3s;display:block}.kanji .progress-track>span{background:#c68b61}.gramatica .progress-track>span{background:#9a8ebf}.leitura .progress-track>span{background:#7e9fc3}.exam-banner{background:#edf2ef;border:1px solid #dce7de;border-radius:14px;align-items:center;gap:16px;margin-top:20px;padding:22px 18px;display:flex}.exam-banner-icon{display:none}.exam-banner .eyebrow{font-size:.62rem}.exam-banner h3{margin:5px 0 7px}.exam-banner p{font-size:.77rem}.exam-banner>svg{margin-left:auto}.dashboard-aside{align-content:start;gap:20px;display:grid}.panel{border-radius:var(--radius);border:1px solid var(--line);background:#fff;padding:24px}.review-panel{padding:26px}.round-icon{width:42px;height:42px;color:var(--green);background:#f0f4ef;border-radius:50%;place-items:center;display:grid}.subtle{border-color:var(--line);color:var(--muted);background:#f9faf8;font-size:.62rem}.review-panel h2{margin:25px 0 13px;font-size:1.5rem}.review-panel p{margin-bottom:22px;font-size:.84rem;line-height:1.8}.review-panel p strong{color:var(--ink);font-weight:600}.microcopy{color:var(--muted);justify-content:center;align-items:center;gap:5px;margin-top:14px;font-size:.65rem;display:flex}.week-panel .section-heading{margin-bottom:12px}.week-panel .section-heading h3{font-size:1rem}.week-panel .section-heading svg{color:#688568}.week-panel>p{font-size:.78rem}.week-days{justify-content:space-between;gap:4px;margin:20px 0;display:flex}.week-days>div{color:var(--muted);flex-direction:column;align-items:center;gap:8px;font-size:.68rem;display:flex}.day-circle{border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:27px;height:27px;display:flex}.day-circle>span{background:#d4ddd5;border-radius:50%;width:4px;height:4px}.day-circle.today{border-color:#547d62}.day-circle.studied{background:var(--green);color:#fff;border-color:var(--green)}.week-summary{border-top:1px solid var(--line);flex-direction:column;padding-top:14px;font-size:.78rem;display:flex}.week-summary span{color:var(--muted);font-size:.7rem}.word-panel{text-align:center;border-radius:var(--radius);background:#f5f5ee;border:1px solid #e7e8dd;padding:27px}.word-panel .eyebrow{font-size:.64rem;display:block}.word-japanese{color:#6a785b;margin:12px 0 0;font-size:3.2rem;display:block}.word-panel>[lang=ja]:not(.word-japanese){color:var(--muted);font-size:.85rem}.word-panel h3{margin:10px 0}.word-panel p{margin-bottom:20px;font-size:.81rem!important}.word-panel a{border-top:1px solid #e2e5d9;justify-content:center;align-items:center;gap:9px;padding-top:16px;font-size:.77rem;font-weight:600;display:flex}.page-footer{color:#88938d;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:32px 0 0;font-size:.67rem;display:flex}.page-footer>span:first-child{color:#6c806f;margin-right:3px;font-size:.88rem}.page-footer>span:last-child{text-align:center;width:100%}.mobile-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:8px 5px max(8px, env(safe-area-inset-bottom));z-index:20;background:#fffffff5;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav a{color:#79837e;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:48px;font-size:.66rem;display:flex}.mobile-nav a.active{color:var(--green);background:#edf4ee;font-weight:650}.notice{color:#4c6756;background:#eef4ef;border:1px solid #dfe8e0;border-radius:12px;margin:24px 0;padding:17px 20px;font-size:.84rem}.warning{color:#865829;background:#fff5e8;border-color:#f0d8b5}.empty{text-align:center;padding:45px 24px}.empty p{margin:14px 0 24px}.empty h1{margin-bottom:20px}.back-link{color:var(--muted);align-items:center;gap:8px;margin-bottom:22px;font-size:.85rem;display:inline-flex}.lesson-summary{align-items:center;gap:24px;margin-bottom:22px;font-size:.88rem;display:flex}.lesson-summary>span{white-space:nowrap}.lesson-summary .progress-track{max-width:360px;margin-left:auto}.lesson-grid{gap:20px;display:grid}.lesson-card{flex-direction:column;scroll-margin-top:25px;display:flex}.lesson-card:target{border-color:var(--green);box-shadow:0 0 0 2px #245b4722}.lesson-meta{color:var(--muted);letter-spacing:.05em;justify-content:space-between;margin-bottom:26px;font-size:.7rem;display:flex}.lesson-meta>span:last-child{align-items:center;gap:5px;display:flex}.lesson-card.completed .lesson-meta>span:last-child{color:var(--green)}.lesson-card h2{font-size:2rem;line-height:1.5}.lesson-card h2.kanji-title{font-size:3.8rem}.reading{color:#7c877f;font-size:1rem}.lesson-card h3{margin:18px 0 10px}.lesson-card>p:not(.reading){font-size:.9rem}.example{background:#f8faf7;border:1px solid #e8ece7;border-radius:12px;flex:1;margin:24px 0;padding:20px}.example .eyebrow{font-size:.65rem}.example>p{color:var(--ink);margin:12px 0 18px;font-size:1.15rem;line-height:2}details summary{cursor:pointer;color:var(--green);align-content:center;min-height:34px;font-size:.82rem;font-weight:550}details p{margin-top:12px;font-size:.9rem}.success-button{color:var(--green);background:#edf5ed;border-color:#dbe8db}.flash-layout,.quiz-layout{gap:24px;display:grid}.session-top{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;font-size:.88rem;display:flex}.session-top strong{color:var(--ink);font-size:.83rem}.flash-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;min-height:380px;margin:22px 0;padding:28px;display:flex;position:relative;overflow:hidden;box-shadow:0 6px #e8ede9}.flash-card h2{margin:24px 0 5px;font-size:4.4rem;font-weight:550;line-height:1.6}.flash-card>.small-muted{margin:16px 0 30px}.flash-card.flipped{background:#f1f6ee}.card-answer h3{margin:8px 0 20px;font-size:1.3rem}.card-answer>[lang=ja]:not(.reading){color:var(--ink);margin-bottom:8px;font-size:1.1rem}.flash-decoration{color:#d5dfd4;font-family:serif;font-size:2.5rem;position:absolute;bottom:15px;right:24px}.rating-buttons{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tips-panel{height:fit-content}.tips-panel>h2{margin:18px 0 28px;font-size:1.65rem}.review-step{gap:15px;margin-bottom:22px;display:flex}.review-step>span{color:#90a089;font-size:.9rem;font-weight:650}.review-step h3{margin-bottom:7px;font-size:.96rem}.review-step p{font-size:.84rem}.tips-panel .notice{margin:20px 0 0;font-size:.78rem}.session-complete>svg{color:var(--green);margin-bottom:22px}.session-complete .text-link{justify-content:center;align-items:center;gap:8px;margin-top:20px;font-size:.9rem;display:flex}.exam-intro{text-align:center;max-width:830px;margin:auto;padding:36px 22px}.intro-icon{width:78px;height:78px;color:var(--green);background:#edf3eb;border-radius:22px;place-items:center;margin:0 auto 23px;display:grid}.exam-intro h2{margin:22px 0 15px;font-size:1.8rem}.exam-intro>p{max-width:490px;margin:0 auto}.exam-features{flex-wrap:wrap;justify-content:center;gap:18px;margin:32px 0;display:flex}.exam-features span{align-items:center;gap:8px;font-size:.85rem;display:flex}.exam-disclaimer{border-top:1px solid var(--line);max-width:580px;margin:32px auto 0;padding-top:24px;font-size:.8rem}.exam-disclaimer a{color:var(--green);margin-top:12px;text-decoration:underline;display:inline-block}.timer{font-variant-numeric:tabular-nums;background:#eff4ee;border-radius:7px;align-items:center;gap:8px;padding:8px 12px;display:flex}.timer.urgent{color:#a34129;background:#fff0e9}.question-number{margin:30px 0 18px;display:block}.question-prompt{letter-spacing:.025em;font-size:1.3rem;line-height:1.8}.passage{color:var(--ink);white-space:pre-wrap;background:#f4f7f2;border-radius:12px;margin-bottom:22px;padding:24px;font-size:1.08rem;line-height:2.15}.options{border:0;gap:12px;margin:24px 0 28px;padding:0;display:grid}.options label{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:12px;min-height:60px;padding:15px;line-height:1.7;display:flex}.options label.chosen{background:#eff5ed;border-color:#527b5f}.options label>svg{color:var(--green);margin-left:auto}.options input{accent-color:var(--green);flex-shrink:0;width:16px;height:16px}.option-index{color:var(--muted);font-size:.75rem}.quiz-controls{justify-content:space-between;gap:12px;display:flex}.quiz-aside{height:fit-content}.quiz-aside h3{margin-bottom:12px}.quiz-aside p{margin-top:15px;font-size:.84rem}.question-map{grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0;display:grid}.question-map button{border:1px solid var(--line);min-height:44px;color:var(--muted);background:#f8faf8;border-radius:8px}.question-map button.answered{color:var(--green);background:#dfecdf;border-color:#dfecdf}.question-map button.current{outline:2px solid var(--green);outline-offset:2px}.quiz-aside .notice{margin-bottom:0;font-size:.78rem}.result-hero{text-align:center;flex-direction:column;align-items:center;gap:25px;display:flex}.result-score{letter-spacing:-.08em;color:var(--green);font-size:4.2rem;font-weight:650}.result-score span{font-size:2rem}.result-hero h2{margin:8px 0 12px}.result-hero p{margin-top:9px;font-size:.85rem}.result-areas{grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0 32px;display:grid}.result-areas .panel{padding:18px}.result-areas span{color:var(--muted);font-size:.8rem;display:block}.result-areas strong{margin-top:8px;font-size:1.4rem;display:block}.answer-list{gap:18px;margin-bottom:25px;display:grid}.answer-status{border-radius:6px;margin-bottom:20px;padding:5px 10px;font-size:.76rem;display:inline-block}.correct{color:var(--green);background:#ebf4e9}.incorrect{color:#9d5035;background:#fff0e7}.answer-card h3{margin-bottom:20px;font-size:1.1rem;line-height:1.8}.answer-card>p{margin-top:12px;font-size:.9rem}.answer-card .explanation{color:#4d6654;background:#f5f7f3;border-radius:10px;padding:18px}.progress-levels{gap:13px;display:grid}.level-progress{align-items:center;gap:18px;padding:22px 18px;display:flex}.level-label{width:48px;height:48px;color:var(--green);background:#edf4ec;border-radius:10px;flex-shrink:0;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.level-progress>div{flex:1}.level-progress h3{margin-bottom:12px;font-size:.9rem}.level-progress p{margin-top:9px;font-size:.73rem}.level-progress>strong{font-size:1.25rem;display:none}.progress-levels+.section-heading{margin-top:32px}.history-list{gap:10px;display:grid}.history-item summary{flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.86rem;display:flex}.history-item summary:after{content:"+"}.history-item[open] summary:after{content:"−"}.history-item p{font-size:.8rem}.backup-panel{flex-direction:column;gap:24px;margin-top:30px;display:flex}.backup-panel p{max-width:650px;margin-top:12px;font-size:.85rem}.backup-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:#fff;padding:12px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:15px}@media (min-width:520px){.area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{padding:20px}.stat-icon{float:right;display:flex}.stat-value{font-size:1.85rem}.stat-card p{font-size:.76rem}.exam-banner-icon{width:48px;height:48px;color:var(--green);background:#e1eadd;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.result-areas{grid-template-columns:repeat(4,1fr)}.level-progress>strong{display:block}.welcome-card{padding:30px}.kanji-motif{display:flex}.welcome-copy{max-width:68%}.kanji-motif{opacity:.8;position:absolute;right:15px}.welcome-copy h2{font-size:2rem}.rating-buttons .button{min-height:52px}}@media (min-width:760px){main{padding:0 30px 100px}.topbar{padding:0 30px}.level-bar{gap:20px}.level-hint,.date-label{display:flex}.dashboard-aside{grid-template-columns:1fr 1fr}.word-panel{grid-column:1/-1}.lesson-grid{grid-template-columns:1fr 1fr}.reading-grid{grid-template-columns:1fr;max-width:850px}.lesson-card{padding:28px}.flash-layout,.quiz-layout{grid-template-columns:minmax(0,1fr) 290px}.exam-intro{padding:50px}.result-hero{text-align:left;flex-direction:row;padding:34px}.quiz-panel{padding:32px}.backup-panel{padding:30px}.kanji-motif{position:relative;right:auto}.welcome-copy{max-width:none}.welcome-card h2{font-size:2.3rem}.welcome-card p{font-size:.9rem}.page-footer{justify-content:flex-start}.page-footer>span:last-child{width:auto;margin-left:auto}.flash-card{min-height:410px}}@media (min-width:1100px){.sidebar{border-right:1px solid var(--line);z-index:30;background:#fff;flex-direction:column;width:236px;padding:32px 19px 0;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{letter-spacing:-.07em;align-items:center;gap:12px;margin:0 10px 48px;font-size:2rem;font-weight:750;line-height:1;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:12px;place-items:center;width:44px;height:44px;font-size:1.75rem;display:grid}.brand-caption{letter-spacing:.095em;color:#7f8982;margin-top:9px;font-size:.47rem;font-weight:550;display:block}.sidebar-label{letter-spacing:.11em;color:#929b94;margin:0 13px 14px;font-size:.57rem;font-weight:650}.nav-link{color:#768179;border-radius:8px;align-items:center;gap:12px;min-height:46px;margin-bottom:4px;padding:11px 13px;font-size:.83rem;display:flex}.nav-link:hover,.area-nav:hover{background:#f5f7f3}.nav-link.active{color:var(--green);background:#eaf1e9;font-weight:600}.nav-dot{background:var(--green);border-radius:50%;width:5px;height:5px;margin-left:auto}.sidebar-divider{background:var(--line);height:1px;margin:26px 12px}.area-nav{color:#7a857d;border-radius:6px;align-items:center;gap:13px;padding:10px 14px;font-size:.81rem;display:flex}.area-nav>svg{color:#a7b0a8;margin-left:auto}.tiny-dot{background:#91ab7e;border-radius:3px;width:7px;height:7px}.dot-1{background:#c89c78}.dot-2{background:#a59ac4}.dot-3{background:#8eaec9}.sidebar-bottom{margin-top:auto;padding-top:22px}.daily-note{color:#7f9578;margin:0 8px 28px}.daily-note p{color:#93a08f;margin-top:8px;font-size:.72rem;line-height:1.9}.daily-note strong{color:#677c60;font-weight:500}.profile{border-top:1px solid var(--line);align-items:center;gap:9px;padding:22px 0;display:flex}.profile-icon{border:1px solid var(--line);color:#698160;background:#f4f6f1;border-radius:50%;flex-shrink:0;place-items:center;width:33px;height:33px;display:grid}.profile strong{font-size:.67rem;font-weight:600}.profile small{color:#9aa299;font-size:.59rem;display:block}.profile>.sidebar-toggle{color:#a4afa5;margin-left:auto}.workspace{margin-left:236px}.mobile-brand,.mobile-nav{display:none}.breadcrumb{display:flex}.topbar{height:76px;padding:0 36px}main{padding:0 36px 26px}.level-bar{margin-bottom:30px;padding:23px 0}.level-options button{width:42px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 280px;gap:24px}.dashboard-aside{grid-template-columns:1fr}.word-panel{grid-column:auto}.welcome-card{min-height:315px;padding:30px 26px}.welcome-copy h2{font-size:2.05rem}.kanji-motif{width:150px;height:210px;margin-right:-12px}.kanji-motif>[lang=ja]{font-size:115px}.motif-ring{width:160px;height:160px;top:14px}.motif-ring:after{width:130px;height:130px;top:14px;left:14px}.kanji-motif small{letter-spacing:.12em;font-size:.59rem}.welcome-card p{font-size:.8rem}.welcome-card .pill{gap:6px;font-size:.55rem}.page-title p{font-size:.87rem}.page-title h1{font-size:2rem}.stat-icon{width:30px;height:30px;position:absolute;top:16px;right:13px}.stat-icon svg{width:17px}.stat-card{padding:17px 15px}.stat-value{margin-top:4px;font-size:1.65rem}.stat-card p{font-size:.69rem}.stat-value small{font-size:.75rem}.area-card{padding:22px}.review-panel{padding:25px 22px}.review-panel h2{font-size:1.4rem}.week-panel{padding:22px}.week-panel .section-heading h3{font-size:.88rem}.day-circle{width:25px;height:25px}.review-panel .microcopy{font-size:.61rem}.flash-layout,.quiz-layout{grid-template-columns:minmax(0,1fr) 300px}.flash-layout{max-width:1080px}.stat-grid{gap:12px}.date-label{font-size:.75rem}.backup-panel{flex-direction:row;justify-content:space-between;align-items:center}.backup-actions{flex-direction:column;flex-shrink:0}}@media (min-width:1360px){.sidebar{width:252px;padding-left:23px;padding-right:23px}.workspace{margin-left:252px}.topbar{padding:0 44px}main{padding-left:44px;padding-right:44px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 300px;gap:28px}.welcome-card{min-height:322px;padding:34px}.welcome-copy h2{font-size:2.4rem}.welcome-card p{font-size:.87rem}.welcome-card .pill{font-size:.65rem}.kanji-motif{width:185px;height:230px}.kanji-motif>[lang=ja]{font-size:132px}.motif-ring{width:185px;height:185px}.motif-ring:after{width:153px;height:153px;top:15px;left:15px}.page-title h1{font-size:2.3rem}.stat-card{padding:20px}.stat-value{font-size:1.9rem}.stat-icon{width:34px;height:34px;top:20px;right:18px}.stat-card p{font-size:.77rem}.stat-value small{font-size:.87rem}.review-panel{padding:28px}.review-panel h2{font-size:1.55rem}.week-panel{padding:25px}.day-circle{width:28px;height:28px}.week-panel .section-heading h3{font-size:.97rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.eyebrow,.pill,.subtle,.small-muted,.sidebar-label,.section-heading>.small-muted,.level-bar>.eyebrow,.welcome-card .pill,.microcopy,.review-panel .microcopy,.word-panel .eyebrow,.page-footer,.lesson-meta,.example .eyebrow,.exam-banner .eyebrow,.level-progress p,.profile small,.brand-caption,.week-summary span,.week-days,.progress-label,.answer-status,.option-index{font-size:.75rem}.nav-link,.area-nav,.button,.local-badge,.area-card p,.stat-card p,.review-panel p,.word-panel a,.week-panel>p,.week-summary,.exam-banner p,.date-label,.breadcrumb,.mobile-nav a,.quiz-aside p,.lesson-card>p:not(.reading),.backup-panel p,.history-item p{font-size:.875rem}.page-title p,.lesson-card>p:not(.reading),.review-step p,.quiz-aside>p,.exam-intro>p,.example details p,.answer-card>p,.backup-panel p{font-size:1rem}.brand-caption{font-size:.53rem}.profile strong,.mobile-nav a{font-size:.75rem}.sidebar-label{letter-spacing:.055em}.section-heading>.small-muted{letter-spacing:.015em}.stat-card p{font-size:.75rem}.level-hint{font-size:.875rem}.welcome-card .pill{letter-spacing:.015em}@media (max-width:359px){.level-bar{gap:8px}.level-options button{width:33px}.level-options{gap:2px}.level-bar>.eyebrow{font-size:.7rem}.panel{padding:20px}.rating-buttons{grid-template-columns:1fr}.lesson-summary{flex-wrap:wrap}.lesson-summary .progress-track{margin:0}.section-heading{flex-wrap:wrap}.quiz-controls .button{padding:10px}.level-progress{gap:10px}.level-label{width:38px;height:40px}}@media (min-width:520px) and (max-width:759px){.welcome-copy{max-width:calc(100% - 155px)}.kanji-motif{width:170px;right:8px}.kanji-motif>[lang=ja]{font-size:115px}}@media (min-width:1100px) and (max-height:850px){.sidebar{overflow-y:auto}.brand{margin-bottom:30px}.sidebar-divider{margin-top:16px;margin-bottom:16px}.daily-note{margin-bottom:16px}.daily-note p{font-size:.75rem}.sidebar-bottom{padding-top:15px}}.reading-settings{background:#edf4ef;border:1px solid #dce7df;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 0 24px;padding:20px 22px;display:flex}.reading-settings strong{font-size:1rem}.reading-settings p{color:#4f6959;margin-top:4px;font-size:.875rem}.reading-settings .reading-help{flex-basis:100%;margin-top:0;font-size:.8rem;line-height:1.65}.reading-modes{flex-wrap:wrap;gap:5px;display:flex}.reading-modes button{color:#3e5e4c;background:#fff;border:1px solid #cddbd1;border-radius:8px;min-height:42px;padding:9px 13px;font-size:.875rem}.reading-modes button[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}.reading-aid{min-width:0;margin:12px 0 18px}.phonetic-reading{text-align:left;background:#f0f5ef;border-left:3px solid #8aa889;border-radius:0 8px 8px 0;padding:10px 13px}.phonetic-reading .eyebrow{letter-spacing:.07em;font-size:.7rem}.phonetic-reading p{color:#365743;overflow-wrap:anywhere;margin-top:3px;font-size:1rem;line-height:1.9}.phonetic-reading p[lang=ja-Latn]{letter-spacing:.01em;font-family:Segoe UI,sans-serif}.audio-controls{flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px;display:flex}.audio-controls button{min-height:42px;color:var(--green);background:#fff;border:1px solid #d9e3d9;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 11px;font-size:.875rem;font-weight:550;display:inline-flex}.audio-controls button:hover{background:#e6f0e5}.reading-aid .audio-status{color:#516951;margin:7px 0 0;font-size:.8rem}.reading-aid .audio-error{color:#9d5035}.card-answer{width:100%}.card-answer>.reading-aid{max-width:570px;margin:15px auto 22px}.card-answer .audio-controls{justify-content:center}.flash-decoration{pointer-events:none}.word-panel .phonetic-reading p{margin-bottom:0!important}.word-panel .audio-controls{justify-content:center}.word-panel .reading-aid{margin-bottom:18px}@media (max-width:520px){.reading-settings{padding:17px}.reading-modes{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.reading-modes button{padding:10px}.flash-card{padding:22px 18px}.audio-controls button{min-height:44px}}.mobile-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.cloud-account{background:#f3f8f1;margin-bottom:26px}.cloud-heading{color:var(--green);align-items:center;gap:12px;margin-bottom:18px;display:flex}.cloud-account p{margin:13px 0}.cloud-account .account-note,.cloud-account .small-muted{font-size:.875rem}.account-actions{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.sync-status{color:var(--green);font-weight:650}.character-strokes{border-top:1px solid var(--line);text-align:left;margin:15px 0 0;padding-top:9px}.character-strokes summary{min-height:44px;font-size:.875rem}.character-picker{flex-wrap:wrap;gap:6px;margin:14px 0;display:flex}.character-picker button{border:1px solid var(--line);min-width:42px;min-height:42px;color:var(--ink);background:#fff;border-radius:8px;font-size:1.25rem}.character-picker button[aria-pressed=true]{background:var(--green);color:#fff}.stroke-player{max-width:500px;margin:auto}.stroke-board{aspect-ratio:1;background:#fffef9;border:1px solid #d1ded1;border-radius:12px;width:100%;max-width:300px;margin:10px auto 16px;overflow:hidden}.stroke-board svg{width:100%;height:100%;display:block}.stroke-grid{stroke:#e4e7df;stroke-width:.45px;stroke-dasharray:2 2;fill:none}.stroke-ghost,.stroke-ink{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.stroke-ghost{stroke:#e1e6df}.stroke-ink{stroke:#234e38}.stroke-number{fill:#ad582e;paint-order:stroke;stroke:#fffef9;stroke-width:1.5px;font:7px Segoe UI,sans-serif}.stroke-status{justify-content:center;align-items:center;gap:16px;margin:12px 0;font-size:.875rem;display:flex}.stroke-status strong{font-size:1.5rem}.stroke-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;display:flex}.stroke-controls>.button{min-width:44px;padding:10px}.stroke-controls label{color:var(--muted);align-items:center;gap:6px;font-size:.75rem;display:flex}.stroke-controls select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;min-height:44px;padding:10px 6px;font-size:.875rem}.stroke-credit{text-align:center;line-height:1.7;margin:18px 0!important;font-size:.75rem!important}.stroke-credit a{text-decoration:underline}.writing-layout{align-items:start;gap:22px;display:grid}.writing-library .reading-modes{margin-bottom:22px}.kana-library{gap:7px;margin:20px 0;display:grid}.kana-row{flex-wrap:wrap;gap:7px;display:flex}.kana-row button{border:1px solid var(--line);min-width:48px;min-height:64px;color:var(--ink);background:#fff;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.kana-row button[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}.kana-row button>span[lang=ja]{font-size:1.4rem}.kana-row small{font-size:.7rem}.practiced-dot{background:#cda665;border-radius:50%;width:5px;height:5px;position:absolute;top:4px;right:4px}.writing-search{flex-direction:column;gap:7px;font-size:.875rem;display:flex}.writing-search input{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:100%;padding:12px}.writing-detail>.small-muted{margin-top:17px}.writing-detail{position:sticky;top:20px}.writing-detail>.button{margin-top:20px}@media (min-width:850px){.writing-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.95fr)}}@media (max-width:359px){.mobile-nav a{font-size:.65rem}.writing-library{padding:18px}.kana-row{gap:4px}.kana-row button{min-width:42px}}.catalog-tools,.study-tabs,.catalog-pagination{flex-wrap:wrap;align-items:center;gap:14px;margin:20px 0;display:flex}.catalog-tools{padding:20px}.catalog-tools>label:first-child{flex:1;min-width:180px}.catalog-tools input[type=search],.catalog-tools select{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;margin-top:6px;padding:10px 12px;display:block}.check-filter{align-items:center;gap:8px;font-size:.875rem;display:flex}.check-filter input{width:20px;height:20px}.catalog-pagination{justify-content:space-between}.catalog-pagination span{font-size:.875rem}.source-panel,.practice-panel{margin-bottom:24px;padding:clamp(20px,4vw,36px)}.source-panel h2,.source-panel h3{margin:24px 0 12px}.source-panel h2:first-child{margin-top:0}.source-panel p,.source-card p,.spi-lessons p{color:#52635b;line-height:1.8}.source-panel>p{margin:12px 0 20px}.table-scroll{margin:24px 0;overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%;min-width:620px;font-size:.875rem}.table-scroll caption{text-align:left;margin-bottom:12px;font-weight:600}.table-scroll th,.table-scroll td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px}.table-scroll th{background:#edf3ef}.source-panel a:not(.button),.source-card a{text-underline-offset:3px;text-decoration:underline}.sources-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:20px;display:grid}.source-card{padding:24px}.source-card h2{margin-bottom:12px;font-size:1.1rem;line-height:1.5}.source-card small{color:var(--muted);margin-top:14px;display:block}.spi-lessons{margin-top:24px}.spi-lessons h2{font-size:1.35rem}.spi-lessons .example{font-size:1rem}.practice-question h3{margin:14px 0;font-size:1.15rem;line-height:1.8}.practice-question .options{margin-bottom:20px}.practice-question .notice p{margin:14px 0}.transcript{border-top:1px solid var(--line);margin-top:28px;padding-top:20px}.transcript summary{cursor:pointer;font-weight:600}.transcript>p{margin:20px 0}.page-footer>a{text-decoration:underline}@media (max-width:1099px){.workspace{padding-bottom:calc(125px + env(safe-area-inset-bottom))}.mobile-nav a{min-height:46px}}@media (min-width:1100px){.sidebar{overflow-y:auto}}@media (max-width:519px){.catalog-tools>*{width:100%}.catalog-pagination{gap:8px}.catalog-pagination .button{padding:10px 12px}}
:root{--bg:#f8f8f1;--paper:#fffffc;--ink:#294638;--muted:#657264;--green:#365f47;--green-dark:#244533;--line:#e2e5d8;--radius:22px}.brand{letter-spacing:-1.3px;font-size:27px!important;font-weight:800!important}.brand-mark{background:0 0!important}.brand-caption{letter-spacing:1px!important;font-size:8px!important}.locale-select{font:inherit;color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:8px;margin-left:auto;padding:7px;font-size:12px}.topbar .local-badge{margin-left:10px}.button{border-radius:14px!important;font-weight:650!important}.button.primary{box-shadow:0 4px #244533}.button.primary:active{transform:translateY(2px);box-shadow:0 2px #244533}.button:disabled{box-shadow:none}.icon-button{width:42px;height:42px;color:var(--ink);background:#edf0e6;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.text-link{color:var(--green);text-underline-offset:4px;background:0 0;padding:8px;font-size:14px;text-decoration:underline}.center{text-align:center}.dinosaur{filter:drop-shadow(0 5px 1px #29463804);width:100%;overflow:visible}.dino-body{transform-origin:175px 300px;animation:3.8s ease-in-out infinite dino-breathe}.dino-tail{transform-origin:175px 199px;animation:3.4s ease-in-out infinite dino-tail}.dino-head{animation:5.4s ease-in-out infinite dino-nod}.dino-arm{transform-origin:152px 165px;animation:4.8s ease-in-out infinite dino-arm}.dino-eyes{transform-box:fill-box;transform-origin:50%;animation:6s infinite dino-blink}.dino-leg{transform-origin:135px 211px}.mood-correct .dino-body,.mood-celebrate .dino-body{animation:.85s cubic-bezier(.22,.9,.34,1) 2 dino-hop}.mood-correct .dino-arm,.mood-celebrate .dino-arm{animation:.35s ease-in-out 4 dino-wave}.mood-wrong .dino-head{animation:1s ease-in-out dino-think}.mood-almost .dino-head{animation:.8s ease-in-out 2 dino-nudge}.mood-celebrate[data-body-plan=biped] .dino-leg.near.hindleg{animation:.8s ease-in-out 2 dino-kick}.dino-sparkles{transform-origin:140px 140px;animation:.9s ease-out 2 dino-sparkle}.mood-correct .dino-shadow,.mood-celebrate .dino-shadow{transform-origin:175px 301px;animation:.85s 2 dino-shadow}@keyframes dino-breathe{50%{transform:scale(1.015,.985)}}@keyframes dino-tail{50%{transform:rotate(6deg)}}@keyframes dino-nod{50%{transform:rotate(-2deg)}}@keyframes dino-arm{50%{transform:rotate(-7deg)}}@keyframes dino-blink{0%,43%,47%,to{transform:scaleY(1)}45%{transform:scaleY(.1)}}@keyframes dino-hop{0%,to{transform:translateY(0)}18%{transform:scale(1.04,.95)}48%{transform:translateY(-20px)rotate(-4deg)}78%{transform:translateY(0)scale(1.025,.98)}}@keyframes dino-wave{50%{transform:rotate(-35deg)}}@keyframes dino-think{50%{transform:rotate(9deg)translateY(3px)}}@keyframes dino-nudge{50%{transform:rotate(-6deg)}}@keyframes dino-kick{50%{transform:rotate(-15deg)}}@keyframes dino-sparkle{0%{opacity:0;transform:scale(.5)}55%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.2)}}@keyframes dino-shadow{50%{opacity:.6;transform:scale(.8)}}.dashboard-heading{max-width:750px;margin:16px 0 30px}.dashboard-heading h1{max-width:720px;margin:12px 0 15px;font-size:clamp(30px,3.4vw,46px)}.dashboard-heading p{font-size:16px}.dashboard-adventure{background:#e8eddb;border-radius:28px;grid-template-columns:1.05fr 1fr;min-height:330px;margin-bottom:24px;padding:35px 38px;display:grid;position:relative;overflow:hidden}.dashboard-adventure:after{content:"";background:#d4dfc3;border-radius:50%;width:600px;height:230px;position:absolute;bottom:-150px;right:-60px}.dashboard-adventure>div{z-index:1}.dashboard-adventure h2{white-space:pre-line;margin:15px 0;font-size:clamp(26px,3vw,38px)}.dashboard-adventure p{max-width:390px;margin-bottom:23px;font-size:14px}.dashboard-adventure small{color:#54664f;margin-top:17px;font-size:11px;display:block}.new-pill{letter-spacing:1px;color:#56704a;align-items:center;gap:7px;font-size:10px;font-weight:700;display:inline-flex}.dashboard-cast{align-self:end;min-height:260px;position:relative}.dashboard-cast .dinosaur{width:76%;position:absolute;bottom:-3px}.hero-hana{right:-23px;transform:scale(.83)}.hero-momo{left:-25px}.hello-bubble{background:#fffff8;border-radius:22px 22px 22px 3px;padding:10px 15px;font-size:12px;font-weight:600;position:absolute;top:0;right:10%;transform:rotate(5deg);box-shadow:0 8px 25px #385c4310}.dashboard-metrics{grid-template-columns:repeat(4,1fr);gap:20px;margin:30px 0 40px;display:grid}.dashboard-metrics>div{border-right:1px solid var(--line);padding:0 20px 0 5px}.dashboard-metrics>div:last-child{border:0}.dashboard-metrics span{letter-spacing:1.1px;color:var(--muted);font-size:9px;font-weight:700;display:block}.dashboard-metrics strong{margin-top:8px;font-size:29px;display:block}.dashboard-metrics small{color:var(--muted);font-size:13px;font-weight:400}.section-title-row{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.section-title-row span{color:var(--muted);font-size:12px}.feature-library{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.feature-tile{border:1px solid var(--line);background:#fffffa;border-radius:19px;padding:23px;transition:transform .2s,box-shadow .2s}.feature-tile:hover{transform:translateY(-4px);box-shadow:0 12px 24px #2946380a}.feature-tile>div{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.feature-tile>div>span{opacity:.4;font-size:11px}.feature-tile h3{margin-bottom:8px;font-size:17px}.feature-tile p{min-height:40px;font-size:12px}.feature-tile>svg{color:#aa7b55;margin-top:17px}.dashboard-bottom{border-top:1px solid var(--line);align-items:center;gap:20px;margin:40px 0 10px;padding:25px 0;font-size:12px;display:flex}.dashboard-bottom>span{white-space:nowrap;font-size:22px}.dashboard-bottom>a{white-space:nowrap;color:var(--green);margin-left:auto;font-weight:600}.game-title-row{justify-content:space-between;align-items:center;gap:24px;margin:15px 0 24px;display:flex}.game-title-row h1{max-width:620px;margin-top:10px;font-size:clamp(25px,2.5vw,34px)}.xp-pill{color:#85622b;white-space:nowrap;background:#fff0cd;border-radius:30px;align-items:center;gap:8px;padding:10px 17px;font-size:14px;font-weight:700;display:flex}.world-hero{background:#e2ead6;border-radius:28px;grid-template-columns:1.2fr 1fr;min-height:300px;padding:30px 35px;display:grid;position:relative;overflow:hidden}.world-N4{background:#dee9de}.world-N3{background:#dce9e7}.world-N2{background:#e4e1ee}.world-N1{background:#efe4d2}.world-copy,.world-friend{z-index:1}.world-copy{align-self:center}.world-label{letter-spacing:2px;color:#647e58;font-size:10px;font-weight:700}.world-copy h2{max-width:400px;margin:12px 0;font-size:34px}.world-copy p{max-width:360px;margin-bottom:24px;font-size:14px}.world-friend{text-align:center;position:relative}.world-friend>.dinosaur{max-width:290px}.world-friend>span{color:#466647;margin-top:-8px;font-size:10px;display:block}.world-scenery{pointer-events:none;position:absolute;inset:0}.world-scenery>span{background:#cad9b8;border-radius:50%;width:500px;height:200px;position:absolute;bottom:-145px;right:-20px;transform:rotate(-10deg)}.world-scenery>span:nth-child(2){background:#b9cca4;bottom:-160px;right:120px}.world-scenery>span:nth-child(3){background:#fff6d3;width:60px;height:60px;top:27px;right:30px}.game-stat-row{border-bottom:1px solid var(--line);gap:35px;padding:22px 4px;font-size:13px;display:flex}.game-stat-row>span{align-items:center;gap:9px;display:flex}.game-stat-row svg{color:#b48a57}.game-tabs{border-bottom:1px solid var(--line);gap:25px;margin:20px 0 24px;display:flex}.game-tabs button{color:var(--muted);background:0 0;border-bottom:3px solid #0000;padding:12px 3px}.game-tabs button[aria-selected=true]{border-color:var(--green);color:var(--green);font-weight:700}.trail-layout{grid-template-columns:220px 1fr;gap:25px;display:grid}.unit-list{background:#f0f2e7;border-radius:22px;align-self:start;padding:21px}.unit-list>p{margin:7px 0 18px;font-size:11px}.unit-list>div{gap:5px;max-height:660px;display:grid;overflow:auto}.unit-list button{color:var(--ink);text-align:left;background:0 0;border-radius:10px;align-items:center;gap:12px;padding:10px;font-size:12px;display:flex}.unit-list button>span{opacity:.6;font-size:10px}.unit-list button>svg{margin-left:auto}.unit-list button[aria-pressed=true]{background:#fff;font-weight:700;box-shadow:0 4px 12px #31473309}.trail-map{border:1px solid var(--line);background:#fffffa;border-radius:24px;overflow:hidden}.trail-map>header{background:#f0f3e9;align-items:center;gap:10px;padding:22px 25px;display:flex}.trail-map>header h2{margin:5px 0;font-size:23px}.trail-map>header p{max-width:330px;font-size:12px}.trail-map>header>.dinosaur{width:105px;margin-left:auto}.stage-path{grid-template-columns:1fr 1fr;gap:25px 20px;max-width:410px;margin:30px auto;padding:0 20px;display:grid;position:relative}.stage-path:before{content:"";pointer-events:none;border:4px dashed #e6eadc;border-radius:100px;position:absolute;inset:40px 20%}.stage-stop{flex-direction:column;align-items:center;gap:7px;display:flex;position:relative}.stage-node{color:#99a68c;z-index:1;background:#e6ebdd;border-radius:45%;justify-content:center;align-items:center;width:77px;height:67px;display:flex;position:relative;box-shadow:0 5px #d1d9c6}.stage-node.current{color:#fff;background:#d99068;box-shadow:0 5px #b8724e}.stage-node.complete{color:#fff;background:#6a9260;box-shadow:0 5px #466e42}.stage-node:disabled{opacity:.6}.stage-stop>span{color:#708066;font-size:10px}.stage-stop>small{color:#bc9045;font-size:11px;line-height:1}.start-tag{letter-spacing:.5px;color:#825f38;z-index:2;background:#fff5d4;border:1px solid #ecdca7;border-radius:6px;padding:2px 7px;font-size:8px;position:absolute;top:-14px}.map-pagination{justify-content:center;align-items:center;gap:25px;padding:0 0 25px;font-size:12px;display:flex}.friend-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.friend-card{border:1px solid var(--line);color:var(--ink);text-align:center;background:#fffffb;border-radius:24px;flex-direction:column;align-items:center;padding:15px 20px 23px;display:flex}.friend-card .dinosaur{max-width:180px}.friend-card strong{font-size:24px}.friend-card>span{margin:2px 0 10px;font-size:12px}.friend-card>small{color:var(--muted);min-height:35px;font-size:11px}.friend-card>b{color:#64864d;margin-top:15px;font-size:10px}.friend-card.selected{background:#eef2e5;border:2px solid #6f905d}.game-note{border-top:1px solid var(--line);gap:8px;margin-top:35px;padding-top:20px;font-size:11px;display:grid}.game-note a{color:var(--green);font-weight:700}.game-session{max-width:770px;margin:10px auto}.session-header{align-items:center;gap:20px;margin-bottom:20px;display:flex}.session-header>span{white-space:nowrap;font-size:12px}.session-progress{background:#e7ebdf;border-radius:20px;flex:1;height:10px;overflow:hidden}.session-progress>span{background:#93ae71;border-radius:20px;height:100%;transition:width .4s;display:block}.challenge{border:1px solid var(--line);background:#fffffc;border-radius:26px;padding:25px 40px 35px}.challenge-top{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.challenge-guide{align-items:center;max-width:480px;margin:5px auto 0;display:flex}.challenge-guide>.dinosaur{flex-shrink:0;width:130px}.speech-bubble{color:#527046;background:#f0f3e9;border-radius:18px 18px 18px 2px;max-width:300px;padding:14px 20px;font-size:13px}.japanese-word{text-align:center;margin:8px 0 15px;font-size:clamp(34px,5vw,53px)}.challenge-prompt{text-align:center;margin:12px 0;font-size:clamp(19px,2.5vw,27px);line-height:1.8}.challenge .center{font-size:13px}.answer-grid{grid-template-columns:1fr 1fr;gap:12px;margin:25px 0;display:grid}.answer-option{text-align:left;color:var(--ink);overflow-wrap:anywhere;background:#fffffc;border:2px solid #e0e6d8;border-radius:14px;align-items:center;gap:12px;min-height:65px;padding:16px;display:flex;box-shadow:0 3px #e0e6d8}.answer-option span{color:#89977e;border:1px solid #d9dfd2;border-radius:5px;padding:1px 5px;font-size:10px}.answer-option b{flex:1;font-size:18px;font-weight:500}.answer-option.chosen{background:#f0f5e8;border-color:#94ae77;box-shadow:0 3px #94ae77}.answer-option:disabled{opacity:1}.answer-option.right{background:#edf5df;border-color:#739857;box-shadow:0 3px #739857}.answer-option.incorrect{background:#fff3e8;border-color:#d6a17f;box-shadow:0 3px #d6a17f}.game-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;margin:25px 0 0;display:flex}.answer-feedback{background:#f6eee0;border-radius:18px;margin-top:24px;padding:20px}.answer-feedback.correct{background:#edf4e4}.answer-feedback p{overflow-wrap:anywhere;margin:8px 0 15px;font-size:14px}.answer-feedback .button{margin-top:15px}.reading-switch{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.reading-switch select{font:inherit;background:#fffffa;border:1px solid #d1d9c6;border-radius:7px;padding:5px;font-size:12px}.story-paper{background:#f6f5ed;border-left:3px solid #c9ae77;border-radius:0 15px 15px 0;margin:10px 0 23px;padding:22px;font-size:17px;line-height:2.1}.listen-center{flex-direction:column;align-items:center;gap:12px;display:flex}.listen-orb{color:#fff;background:#829b6f;border-radius:27px;justify-content:center;align-items:center;width:95px;height:85px;display:flex;box-shadow:0 5px #5f7a4e}.listen-center p{font-size:13px}.typing-label{flex-direction:column;gap:10px;margin-top:24px;font-size:12px;display:flex}.typing-label input{color:var(--ink);background:#fafbf6;border:2px solid #d8e0d0;border-radius:14px;padding:16px;font-size:22px}.writing-practice{text-align:center}.writing-practice>p{margin:10px 0;font-size:12px}.writing-pad{aspect-ratio:1;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;background:#fcfcf6;border:2px solid #dfe5d6;border-radius:20px;width:100%;max-width:300px;margin:15px auto;display:block}.trace-guide{stroke-dasharray:1;animation:1.7s ease-in-out forwards trace-draw}.writing-practice small{color:var(--muted);max-width:400px;margin:20px auto 0;font-size:10px;display:block}.writing-practice>.text-link{font-size:11px}.stage-complete{text-align:center;padding:25px}.stage-complete>.dinosaur{width:230px;margin:0 auto;display:block}.stage-complete h1{margin:10px 0;font-size:32px}.stage-complete p{max-width:490px;margin:12px auto;font-size:14px}.earned-stars{color:#bb8f42;justify-content:center;gap:10px;margin:20px;display:flex}.earned-stars svg{width:36px;height:36px}@keyframes trace-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@media (min-width:1100px){.brand-caption{font-size:7px!important}.sidebar{width:245px}.workspace{margin-left:245px}}@media (max-width:900px){.dashboard-adventure{grid-template-columns:1fr 1fr;padding:27px}.dashboard-cast .dinosaur{width:95%}.hero-hana{right:-42px}.hero-momo{left:-35px}.friend-grid{grid-template-columns:repeat(2,1fr)}.trail-layout{grid-template-columns:180px 1fr}.unit-list{padding:15px}.world-copy h2{font-size:28px}}@media (max-width:650px){.topbar{gap:6px}.locale-select{max-width:80px;font-size:11px}.local-badge{font-size:10px!important}.mobile-brand{gap:5px;font-size:22px!important}.mobile-brand img{display:inline-block}.dashboard-heading{margin-top:8px}.dashboard-heading h1{font-size:31px}.dashboard-adventure{grid-template-columns:1fr;padding:26px 24px 0}.dashboard-adventure h2{font-size:30px}.dashboard-cast{width:100%;max-width:310px;height:205px;min-height:205px;margin:auto}.dashboard-cast .dinosaur{width:76%}.hero-momo{left:-12px}.hero-hana{right:-17px}.hello-bubble{font-size:10px;top:14px}.dashboard-metrics{grid-template-columns:repeat(2,1fr);gap:20px;margin:25px 0 30px}.dashboard-metrics>div:nth-child(2){border:0}.dashboard-metrics span{font-size:8px}.dashboard-metrics strong{font-size:26px}.feature-library{grid-template-columns:repeat(2,1fr);gap:10px}.feature-tile{padding:17px}.feature-tile h3{font-size:15px}.feature-tile p{font-size:11px}.section-title-row{align-items:flex-start}.section-title-row h2{font-size:21px}.section-title-row span{white-space:nowrap;font-size:10px}.dashboard-bottom{flex-wrap:wrap;gap:10px}.dashboard-bottom a{margin-left:0}.game-title-row{gap:15px}.game-title-row h1{font-size:26px}.game-title-row .eyebrow{font-size:9px}.xp-pill{padding:8px 11px;font-size:11px}.world-hero{grid-template-columns:1fr;min-height:0;padding:26px 24px 14px}.world-copy h2{font-size:30px}.world-copy p{font-size:13px}.world-friend>.dinosaur{width:210px;margin-top:0}.world-friend>span{font-size:9px}.game-stat-row{justify-content:space-between;gap:14px;font-size:10px}.game-stat-row>span{gap:5px}.game-stat-row svg{width:15px}.trail-layout{grid-template-columns:1fr}.unit-list{padding:15px 18px}.unit-list>p{display:none}.unit-list>div{margin-top:10px;display:flex;overflow-x:auto}.unit-list button{flex-shrink:0;padding:9px;font-size:11px}.unit-list button>span{display:none}.trail-map>header{padding:20px}.trail-map>header>.dinosaur{width:90px}.stage-path{max-width:300px}.friend-card{padding:10px 12px 20px}.friend-card>.dinosaur{width:130px}.friend-card>strong{font-size:22px}.friend-card>span,.friend-card>small{font-size:10px}.game-session{margin-top:0}.session-header{gap:12px}.session-header>span{font-size:10px}.challenge{padding:20px 16px 25px}.challenge-top .eyebrow{font-size:9px}.challenge-guide>.dinosaur{width:100px}.speech-bubble{padding:12px;font-size:11px}.answer-grid{gap:10px}.answer-option{min-height:62px;padding:12px 10px}.answer-option b{font-size:16px}.answer-option>span{display:none}.story-paper{padding:16px;font-size:15px}.game-actions{gap:12px}.stage-complete{padding:15px 0}.stage-complete h1{font-size:27px}.mobile-nav{overflow-x:auto;justify-content:flex-start!important}.mobile-nav a{flex:0 0 65px;min-width:65px}.mobile-nav a:first-child{background:#edf2e3}.game-note{font-size:10px}}.dashboard-cast{height:290px;min-height:290px}.dashboard-cast .dinosaur{max-width:315px;max-height:290px}.dashboard-cast .hero-momo{left:0}.dashboard-cast .hero-hana{right:-10px}.brand-caption{white-space:nowrap;letter-spacing:.4px!important}.dashboard-cast .hello-bubble{top:5px}@media (max-width:650px){.dashboard-cast{height:205px;min-height:205px}.dashboard-cast .hero-momo{left:-12px}.dashboard-cast .hero-hana{right:-17px}}@media (prefers-reduced-motion:reduce){.dinosaur *,.trace-guide{animation:none!important}.feature-tile,.session-progress>span{transition:none!important}}.trail-layout>*,.unit-list>div{min-width:0}@media (max-width:1099px){.mobile-nav{padding:7px 8px calc(7px + env(safe-area-inset-bottom));flex-wrap:nowrap;justify-content:flex-start;gap:4px;display:flex;overflow-x:auto}.mobile-nav a{flex:0 0 68px;min-width:68px;font-size:10px}.workspace{padding-bottom:calc(78px + env(safe-area-inset-bottom))}}
