:root{font-family:Inter,"Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;color:#263c36;background:#f7f8f6;font-synthesis:none;--bg:#f7f8f6;--panel:#fff;--ink:#263c36;--muted:#75827b;--line:#e5e9e3;--green:#24745c;--soft:#edf4ee;--shadow:0 8px 30px #263c3605}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button,a{color:inherit}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d6aa41;outline-offset:4px}a{text-decoration:none}button svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-.04em;line-height:1.5;font-weight:700}h2{font-size:20px;letter-spacing:-.025em}h3{font-size:15px}p{line-height:1.9}small{font-size:12px}button{transition:background .15s,transform .15s}.primary,.secondary,.textbutton,.account{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:600}.primary{background:var(--green);color:#fff;border:1px solid var(--green)}.primary:hover{background:#195d49;transform:translateY(-1px)}.secondary{border:1px solid var(--line);background:var(--panel)}.secondary:hover,.textbutton:hover{background:var(--soft)}.textbutton{color:var(--green);padding:10px 8px}.sub{font-size:13px;color:var(--muted);line-height:1.9}.app-layout{max-width:1440px;margin:auto}.topbar{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 56px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand>.panda{width:48px;height:52px}.brand>span:not(.panda){font-size:23px;font-weight:800;letter-spacing:.08em}.brand small{display:block;font-size:8px;letter-spacing:.17em;color:var(--muted);margin-top:3px}.topbar nav{display:flex;gap:10px}.topbar nav button{display:flex;align-items:center;gap:8px;padding:12px 15px;font-size:13px;color:var(--muted);border-radius:9px}.topbar nav button.active{background:var(--soft);color:var(--green);font-weight:700}.account{font-size:12px;color:var(--muted)}main{max-width:1170px;padding:44px 32px 20px;margin:auto;min-height:calc(100vh - 175px)}.pageheading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.pageheading p{font-size:13px;color:var(--muted);margin-top:8px}.page-footer{max-width:1106px;margin:30px auto 0;padding:20px 0 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.mobile-nav{display:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:var(--shadow)}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-title>span{font-size:11px;color:var(--muted)}.eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--green);margin-bottom:16px}.today-hero{display:flex;align-items:center;justify-content:space-between;gap:32px;background:#edf3e9;border:1px solid #e0e8db;border-radius:20px;padding:38px 46px;margin-bottom:30px}.today-hero h2{font-size:29px;line-height:1.5}.today-hero p{font-size:13px;max-width:490px;margin-top:10px;color:#5c7062}.today-hero .primary{min-width:260px;justify-content:space-between}.queue-counts{display:flex;gap:32px;margin:24px 0;font-size:12px;color:#627669}.queue-counts b{font-size:28px;color:#294a38;margin-right:5px;font-weight:600}.hero-note{display:block;color:#73816e;margin-top:12px;font-size:11px}.hero-panda{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.hero-panda>.panda{width:208px;height:215px}.hero-panda>span:last-child{font-size:11px;letter-spacing:.08em;color:#668261;margin-top:8px}.panda{display:inline-block;width:140px;height:146px}.panda svg{display:block;width:100%;height:100%;overflow:visible}.panda-body{transform-origin:120px 230px;animation:breathe 5s ease-in-out infinite}.panda-wave{transform-origin:164px 184px;animation:wave 8s ease-in-out infinite}.panda-eyes{transform-box:fill-box;transform-origin:center;animation:blink 5.3s infinite}.celebrate .panda-body{animation:celebrate .8s ease-in-out 2}.brand .panda-wave{animation:none}@keyframes breathe{50%{transform:translateY(-3px) rotate(-1deg)}}@keyframes wave{0%,60%,100%{transform:rotate(0)}65%,75%{transform:rotate(9deg)}70%,80%{transform:rotate(-6deg)}}@keyframes blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.08)}}@keyframes celebrate{50%{transform:translateY(-12px) rotate(3deg)}}.home-bottom{display:grid;grid-template-columns:1.65fr 1fr;gap:26px}.home-aside{display:flex;flex-direction:column;gap:26px}.big-number{font-size:42px;letter-spacing:-.04em;margin-top:28px;font-weight:600}.big-number small{font-size:14px;color:var(--muted);font-weight:400;letter-spacing:0}.home-aside .segmented{margin-top:25px}.home-aside p:not(.sub){font-size:12px;color:var(--muted);margin:12px 0}.how-to{padding:0 20px}.how-to h3{margin-bottom:18px}.how-to p{font-size:12px;margin:12px 0}.how-to b{color:#91a393;margin-right:14px;font-size:10px;letter-spacing:.1em}.field-label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:var(--muted)}select,input[type=search]{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);padding:10px 12px;min-height:42px;font-size:13px}.grade-row{display:flex;align-items:center;gap:15px;padding:20px 0;border-bottom:1px solid var(--line)}.grade-row:last-of-type{border-bottom:0}.grade-row>div{flex:1;min-width:0}.deck-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px}.deck-label span{font-size:10px;color:var(--muted)}.grade-row small{font-size:10px;color:var(--muted)}.grade-row .secondary{font-size:11px;padding:8px 12px}.segmented{height:6px;display:flex;background:var(--line);border-radius:8px;overflow:hidden;margin:10px 0}.segmented i{background:var(--green)}.segmented em{background:#b2cda6}.study-preferences{border-top:1px solid var(--line);padding-top:20px;margin-top:6px}.study-preferences summary{font-size:12px;cursor:pointer}.study-preferences p{margin-top:16px}.format-tabs,.filters{display:flex;gap:6px;flex-wrap:wrap;margin-top:15px}.format-tabs button,.filters button{border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--muted);font-size:12px}.format-tabs .active,.filters .active{background:var(--soft);color:var(--green);border-color:#acc8b8}.study-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;color:var(--muted);font-size:12px}.study-main{max-width:750px;margin:0 auto}.session-progress{margin:24px 0}.session-progress>div:first-child{display:flex;justify-content:space-between;font-size:12px;margin-bottom:12px}.session-progress b span{font-weight:400;color:var(--muted);margin-left:8px}.track{height:5px;background:var(--line);border-radius:8px;overflow:hidden}.track i{height:100%;display:block;background:var(--green);border-radius:8px}.question-panel{padding:28px 40px;text-align:center}.question-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:30px}.question-tag{display:inline-block;color:var(--green);background:var(--soft);font-size:11px;padding:6px 9px;border-radius:5px}.question-panel h2{font-size:17px;font-weight:500}.word-stage{padding:38px 0 26px}.glyph{font-family:"Noto Serif CJK SC","Songti SC","SimSun",serif;font-size:90px;font-weight:500;line-height:1.4;color:var(--ink)}.glyph.long-word{font-size:56px}.pronunciation{display:flex;justify-content:center;align-items:center;gap:12px;min-height:24px;margin-top:12px;font-size:20px;color:var(--muted)}.sound{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;width:42px;height:42px;background:var(--soft);color:var(--green)}.reveal{width:100%;max-width:440px;margin:12px auto 24px}.flash-answer{padding:20px 0;border-top:1px solid var(--line)}.answer-reading{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;font-size:22px}.answer-reading>b{display:none}.meaning{font-size:22px;margin:18px 0;color:var(--ink)}.source-detail{font-size:10px;text-align:left;color:var(--muted);margin-top:14px}.source-detail summary{cursor:pointer}.rating-prompt{font-size:12px;color:var(--muted);margin-bottom:14px}.rating-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}.rating{border:1px solid var(--line);border-radius:10px;padding:14px 4px;background:var(--panel);min-height:68px}.rating b{font-size:13px;display:block}.rating small{display:block;font-size:10px;margin-top:7px;color:var(--muted)}.rating-0{color:#9d6558;background:#fcf5f1}.rating-1{color:#947c3f;background:#fbf8ed}.rating-2{background:var(--green);color:#fff}.rating-2 small{color:#d5e7dc}.rating-3{color:var(--green);background:var(--soft)}.rating:hover{transform:translateY(-3px)}.shortcut{text-align:center;margin-top:18px;font-size:10px;color:var(--muted)}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answer-option{border:1px solid var(--line);padding:18px 14px;display:flex;gap:12px;align-items:center;justify-content:center;border-radius:10px;background:var(--panel);min-height:67px;font-size:16px}.option-key{color:var(--muted);font-size:10px}@media(hover:hover) and (pointer:fine){.answer-option:hover{border-color:var(--green)}}.answer-option.correct{background:#e2f2e6;color:#286843;border-color:#6aa781;opacity:1}.answer-option.incorrect{background:#f8e8e0;color:#9b5342;opacity:1}.feedback{border-radius:10px;background:var(--soft);padding:20px;margin-top:20px}.feedback-title{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;margin-bottom:15px}.feedback.negative{background:#faf4e8}.question-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:24px}.hint{display:flex;align-items:center;gap:10px;text-align:left;color:#8d7a4e}.hint p{font-size:11px}.hint span{display:block;font-size:10px}.completion{text-align:center;padding:35px}.completion .panda{width:160px;height:170px;display:block;margin:auto}.completion p{font-size:14px;color:var(--muted);margin:20px 0}.completion button{margin:5px}.completion h2{font-size:24px}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:25px}.summary-stats section>span{font-size:12px;color:var(--muted)}.summary-stats section>b{display:block;font-size:36px;margin-top:18px}.summary-stats small{font-size:13px;font-weight:400;color:var(--muted)}.records-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:25px;align-items:start}.accuracy{display:flex;align-items:center;gap:20px;margin:25px 0}.ring{width:90px;height:90px;border-radius:50%;background:conic-gradient(var(--green) var(--pct),var(--soft) 0);display:grid;place-items:center}.ring b{display:grid;place-items:center;background:var(--panel);width:72px;height:72px;border-radius:50%;font-size:20px}.accuracy span{font-size:12px;color:var(--muted)}.accuracy strong{display:block;margin-top:8px}.week-chart{display:flex;gap:12px;height:120px}.week-chart>div{flex:1;display:flex;flex-direction:column;text-align:center;gap:8px}.bar-space{display:flex;align-items:flex-end;height:95px;background:var(--soft);border-radius:4px}.bar-space i{display:block;width:100%;background:#a8c4a0;border-radius:4px}.week-chart small,.weekly-caption{font-size:11px;color:var(--muted)}.weekly-caption{margin-top:18px}.catalog-tools{margin-bottom:25px}.searchbox{display:flex;align-items:center;gap:12px}.searchbox input{width:100%;max-width:560px}.result-count{font-size:12px;color:var(--muted);margin:18px 0}.word-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.word-tile{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--panel);font-size:11px}.word-tile:hover{border-color:var(--green)}.word-tile b{font-size:28px}.tile-status{font-size:9px;color:var(--green)}.tile-pinyin{font-size:13px;color:var(--muted)}.pagination{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:30px;font-size:12px}.detail-panel{text-align:center;max-width:750px;margin:auto}.detail-panel>.primary{margin-top:30px}.detail-panel .glyph{margin-bottom:25px}.help-rail{display:none}.comparison{display:flex;gap:30px;justify-content:center;margin:20px}.comparison small,.comparison strong{display:block}.comparison strong{font-size:30px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.settings-section{display:flex;align-items:flex-start;flex-direction:column;gap:18px}.settings-section h2{display:flex;align-items:center;gap:10px}.settings-section p{font-size:13px;color:var(--muted)}.settings-section .field-label{width:100%}.check-label{font-size:13px;display:flex;align-items:center;gap:9px;min-height:36px}.divider{height:1px;background:var(--line);width:100%}.sources{grid-column:1/-1}.sources a{color:var(--green);text-decoration:underline}.tones{display:flex;flex-wrap:wrap;gap:6px}.tones button{flex-direction:column}.fatal{max-width:600px;margin:15vh auto;padding:30px}.fatal p{margin:20px 0}#notice{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#263c36;color:white;padding:16px 22px;max-width:90%;width:max-content;border-radius:12px;font-size:13px;box-shadow:0 6px 25px #0002;z-index:20}[hidden]{display:none!important}[data-theme=dark]{--bg:#14231f;--panel:#1e3029;--ink:#e1e9df;--muted:#a1b1a5;--line:#354a3d;--green:#408d70;--soft:#293e31;background:var(--bg);color:var(--ink)}[data-theme=dark] .today-hero{background:#243b2a;border-color:#3d513e}[data-theme=dark] .today-hero p,[data-theme=dark] .queue-counts,[data-theme=dark] .queue-counts b{color:#c6d8c4}[data-theme=dark] .rating-0,[data-theme=dark] .rating-1{background:var(--panel)}[data-theme=dark] .feedback.negative{background:#463d28}
@media(max-width:1000px){.topbar{padding:0 28px}.topbar nav{gap:0}.topbar nav button{padding:12px}.account{font-size:0;gap:0}.today-hero{padding:30px}.today-hero h2{font-size:25px}.hero-panda>.panda{width:170px;height:180px}.home-bottom{grid-template-columns:1.4fr 1fr;gap:18px}.panel{padding:22px}.grade-row{gap:10px}.deck-label{align-items:flex-start;flex-direction:column;gap:4px}.word-tiles{grid-template-columns:repeat(4,1fr)}.page-footer{margin-left:32px;margin-right:32px}.home-aside .big-number{font-size:35px}}
@media(max-width:700px){.topbar{height:76px;padding:0 20px}.topbar nav{display:none}.brand>.panda{width:40px;height:43px}.brand>span:not(.panda){font-size:20px}.brand small{font-size:7px}.account{font-size:11px;gap:6px;padding:8px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--line);padding:8px 8px max(8px,env(safe-area-inset-bottom));z-index:10;justify-content:space-around}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10px;color:var(--muted);min-width:60px;min-height:46px}.mobile-nav button.active{color:var(--green);font-weight:700}main{padding:28px 18px 15px}h1{font-size:25px}.pageheading{align-items:flex-start;gap:15px;flex-wrap:wrap;margin-bottom:22px}.pageheading p{font-size:12px}.today-hero{position:relative;padding:26px 22px;overflow:hidden;gap:0}.today-hero>div:first-child{z-index:1;width:100%}.today-hero h2{font-size:23px;max-width:75%}.today-hero p{font-size:12px;max-width:75%}.today-hero .eyebrow{font-size:9px}.hero-panda{position:absolute;right:-22px;top:34px}.hero-panda>.panda{width:112px;height:125px}.hero-panda>span:last-child{display:none}.queue-counts{gap:28px;margin:22px 0}.queue-counts b{font-size:26px}.today-hero .primary{width:100%;font-size:13px;min-width:0}.hero-note{font-size:10px}.home-bottom,.records-layout,.settings-grid{grid-template-columns:1fr}.home-aside{gap:22px}.home-aside .panel{display:none}.panel{padding:22px 18px;border-radius:13px}.deck-label{flex-direction:row;align-items:center}.grade-row .secondary{font-size:10px;padding:8px}.grade-row small{font-size:9px}.panel-title h2{font-size:17px}.panel-title select{max-width:180px}.page-footer{margin:18px 18px 86px;font-size:9px;gap:10px}.word-tiles{grid-template-columns:repeat(2,1fr);gap:10px}.word-tile{padding:15px}.summary-stats{gap:8px}.summary-stats .panel{padding:16px 10px}.summary-stats section>span{font-size:10px}.summary-stats section>b{font-size:27px}.summary-stats small{font-size:9px;display:block}.question-panel{padding:23px 18px}.question-panel h2{font-size:16px}.question-top{margin-bottom:25px}.word-stage{padding:35px 0 20px}.glyph{font-size:76px}.glyph.long-word{font-size:42px}.study-top{margin-bottom:0}.study-top>span{font-size:10px}.study-top button{font-size:12px}.rating-actions{gap:6px}.rating b{font-size:11px}.rating small{font-size:9px}.rating{padding:13px 2px}.answer-reading{font-size:20px}.meaning{font-size:20px}.answer-option{font-size:14px;padding:14px 10px;gap:8px}.shortcut{display:none}.question-footer{gap:10px}.hint{display:none}.question-footer>.textbutton{margin-left:auto}.question-footer .primary{font-size:12px}.completion h2{font-size:21px}.sources{grid-column:auto}#notice{bottom:85px}.format-tabs button{font-size:11px;padding:10px}.stats-panel{margin-top:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Gentle head tilt and a small headset glint; reduced-motion remains respected. */
.panda-head{transform-origin:120px 155px;animation:panda-nuzzle 9s ease-in-out infinite}.panda-star{transform-origin:180px 45px;animation:panda-glint 8s ease-in-out infinite}.brand .panda-head,.brand .panda-star{animation:none}@keyframes panda-nuzzle{0%,30%,65%,100%{transform:rotate(0)}42%,52%{transform:rotate(-4deg)}}@keyframes panda-glint{0%,67%,83%,100%{opacity:1;transform:scale(1)}75%{opacity:.65;transform:scale(.85)}}@media(prefers-reduced-motion:reduce){.panda-head,.panda-star{animation:none!important}}

/* Expression and secondary movement stay subtle at the actual mascot size. */
.panda-happy-eyes{opacity:0}.panda-scarf{transform-origin:138px 168px;animation:panda-scarf-sway 5s ease-in-out infinite}.celebrate .panda-eyes{opacity:0;animation:none}.celebrate .panda-happy-eyes{opacity:1}.hero-panda:hover .panda-head{animation:panda-greet 1.8s ease-in-out}.brand .panda-scarf{animation:none}
@keyframes panda-scarf-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(4deg)}}
@keyframes panda-greet{0%,100%{transform:rotate(0)}35%{transform:rotate(-7deg)}65%{transform:rotate(-4deg)}}
@media(prefers-reduced-motion:reduce){.panda-scarf,.hero-panda:hover .panda-head{animation:none!important}}

.audio-controls{margin:18px auto 4px;max-width:540px}.audio-buttons{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.audio-buttons .secondary{font-size:13px;min-height:42px;padding:9px 14px}.audio-status{font-size:11px!important;color:var(--muted);line-height:1.7;min-height:19px;margin-top:10px}.audio-caution{font-size:11px;color:#9b794a;line-height:1.8;margin-top:8px}.is-playing .audio-buttons .secondary:first-child{border-color:var(--green);background:var(--soft)}.voice-samples{width:100%;border-top:1px solid var(--line);padding-top:20px}.voice-samples>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.voice-samples .secondary{flex-direction:column;gap:4px;min-width:88px}.voice-samples small{font-weight:400;font-size:12px;color:var(--muted)}.voice-samples h3{font-size:14px}.audio-service{border-left:3px solid var(--green);padding-left:12px}@media(max-width:700px){.audio-buttons{gap:6px}.audio-buttons .secondary{font-size:12px;padding:9px 11px}.audio-status{font-size:10px!important}}

.question-pinyin{font-size:26px;line-height:1.5;color:var(--green);margin:10px 0 12px;letter-spacing:.02em}.kanji-reference{max-width:570px;margin:20px auto 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--soft);text-align:left}.kanji-reference>span{font-size:12px;color:var(--muted)}.kanji-reference>div{display:flex;flex-wrap:wrap;gap:8px 16px;margin:10px 0}.kanji-pair{display:inline-flex;align-items:center;gap:7px;font-size:19px}.kanji-pair b,.kanji-pair strong{font-weight:500}.kanji-pair i{font-style:normal;font-size:13px;color:var(--muted)}.kanji-reference small{font-size:10px;color:var(--muted);line-height:1.7;display:block}.answer-set{display:flex;justify-content:center;align-items:center;gap:10px 18px;flex-wrap:wrap}.answer-set>b{font-size:28px}.answer-set>span{font-size:19px;color:var(--green)}.answer-set>strong{font-size:18px;font-weight:600}.auto-review-note{font-size:12px;color:var(--muted);margin-top:14px}.glyph-hint{font-size:64px}.question-panel .word-stage{padding:23px 0 26px}@media(max-width:700px){.question-pinyin{font-size:23px}.kanji-pair{font-size:17px}.kanji-reference{padding:12px}.question-panel .question-footer>.sub{font-size:10px}.glyph-hint{font-size:48px}}

/* Keep the complete prompt and answer grid together, particularly on phones. */
.kanji-reference{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:6px;margin:3px auto 0;padding:0;border:0;border-radius:0;background:none;text-align:center;line-height:1.5}.kanji-reference>span:first-child{font-size:12px;color:var(--muted)}.kanji-reference>span[lang]{font-size:15px;color:var(--muted);letter-spacing:.08em}.kanji-reference small{font-size:11px}.question-pronunciation{display:flex;align-items:center;justify-content:center;gap:10px;min-height:38px;margin-top:2px}.question-pronunciation .question-pinyin{font-size:23px;margin:0;line-height:1.4}.question-pronunciation .question-audio{margin:0;max-width:none}.question-audio .sound{width:36px;height:36px}.question-audio .audio-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0}.question-audio .textbutton{padding:4px;min-height:36px;font-size:12px}.question-panel .word-stage{padding:10px 0 18px}.question-panel .glyph{font-size:72px;line-height:1.15}.question-panel .glyph.long-word{font-size:48px}.question-panel .glyph-hint{font-size:50px}.question-panel .question-top{margin-bottom:14px}.question-panel .question-footer{margin-top:14px}.is-studying main{padding-top:16px}.is-studying .study-top{margin-bottom:0}.is-studying .session-progress{margin:10px 0 14px}.is-studying .session-progress>div:first-child{margin-bottom:8px}.is-studying .question-panel{padding:20px 28px}.is-studying .answer-option{min-height:56px;padding:12px}.is-studying .answer-grid{gap:10px}.is-studying .shortcut{margin-top:10px}.is-studying .feedback{padding:14px;margin-top:14px}.is-studying .feedback-title{margin-bottom:8px}.is-studying .auto-review-note{margin-top:8px}
@media(max-width:700px){.is-studying .topbar{height:60px}.is-studying main{padding:8px 12px 12px}.is-studying .study-top{min-height:34px}.is-studying .study-top .textbutton{min-height:34px;padding:6px}.is-studying .session-progress{margin:6px 0 10px}.is-studying .question-panel{padding:14px}.is-studying .question-top{margin-bottom:10px}.is-studying .question-tag{padding:4px 8px}.is-studying .question-panel h2{font-size:15px;line-height:1.5}.is-studying .question-panel .word-stage{padding:8px 0 14px}.is-studying .question-panel .glyph{font-size:60px;line-height:1.1}.is-studying .question-panel .glyph.long-word,.is-studying .question-panel .glyph-hint{font-size:40px}.is-studying .question-pinyin{font-size:21px}.is-studying .answer-option{min-height:50px;font-size:14px;padding:10px 8px}.is-studying .answer-grid{gap:8px}.is-studying .question-footer{margin-top:8px;gap:4px}.is-studying .question-footer button{min-height:40px;padding:8px}.is-studying .question-footer>.sub{max-width:55%;line-height:1.5}.is-studying .kanji-reference{margin-top:0}.is-studying .kanji-reference>span[lang]{font-size:14px}.is-studying .page-footer{margin-top:12px}.is-studying .answer-set>b{font-size:22px}.is-studying .answer-set>span,.is-studying .answer-set>strong{font-size:16px}}

.question-pronunciation{flex-wrap:wrap}.audio-retry{font-size:12px;padding:4px 8px;min-height:36px}
.topbar .account{gap:8px;padding:5px 10px 5px 5px;min-height:44px;border:1px solid var(--line);border-radius:24px;background:var(--panel);color:var(--green);flex-shrink:0}.account-avatar{display:block;flex-shrink:0}.topbar .account>span{font-size:11px;white-space:nowrap}.topbar .account:hover{background:var(--soft);border-color:#abc6b6}.settings-section h2 .account-avatar{width:28px;height:28px}
.today-hero.today-plan{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(290px,.9fr);gap:40px;padding:32px 36px;overflow:visible;align-items:center}.today-plan .today-summary,.today-plan .today-actions{min-width:0}.today-plan .hero-intro{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:14px;align-items:center}.today-plan .hero-copy{min-width:0}.today-plan .eyebrow{font-size:9px;letter-spacing:.14em;margin-bottom:14px}.today-plan h2{font-size:27px;line-height:1.55;max-width:none;letter-spacing:-.035em}.today-plan h2>span{display:block;white-space:nowrap}.today-plan .hero-panda{position:static;right:auto;top:auto;width:130px;min-width:0;padding:8px 4px;margin:0}.today-plan .hero-panda>.panda{display:block;width:122px;height:136px;margin:0;font-size:inherit;letter-spacing:normal}.today-plan p.hero-description{max-width:none;margin-top:12px;font-size:13px;line-height:1.85;color:var(--muted);text-wrap:pretty}.daily-progress{margin-top:24px}.daily-progress>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.daily-progress>div:first-child>span{font-size:12px;color:var(--muted)}.daily-progress strong{font-size:26px;font-variant-numeric:tabular-nums;line-height:1.2;white-space:nowrap}.daily-progress strong small{font-size:13px;font-weight:400;color:var(--muted)}.daily-progress .track{height:6px;background:#dce6d9}.daily-progress-note{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:9px;font-size:11px;color:var(--muted)}.daily-progress-note>span:first-child{display:flex;align-items:center;gap:4px;color:var(--green)}.today-plan .today-actions{border-left:1px solid #dbe5d6;padding-left:32px}.goal-control-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.goal-control-head>label{font-size:13px;font-weight:650}.goal-stepper{display:flex;align-items:center;flex-shrink:0;border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.goal-stepper button{width:36px;min-height:44px;font-size:18px;font-weight:400;color:var(--green);padding:0}.goal-stepper button:hover{background:var(--soft)}.goal-stepper input{width:39px;min-width:0;padding:0;border:0;background:transparent;color:var(--ink);text-align:center;font-size:20px;font-weight:650;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield;min-height:44px}.goal-stepper input::-webkit-inner-spin-button,.goal-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.goal-stepper>span{font-size:11px;color:var(--muted);padding-right:5px}.today-goal-control input[type=range]{--goal-fill:9%;display:block;width:100%;height:38px;margin:5px 0 0;appearance:none;background:transparent;cursor:pointer;accent-color:var(--green)}.today-goal-control input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:5px;background:linear-gradient(to right,var(--green) var(--goal-fill),#d9e3d5 var(--goal-fill))}.today-goal-control input[type=range]::-webkit-slider-thumb{appearance:none;width:21px;height:21px;margin-top:-8px;background:var(--panel);border:5px solid var(--green);border-radius:50%;box-shadow:0 2px 5px #263c3620}.today-goal-control input[type=range]::-moz-range-track{height:5px;border-radius:5px;background:#d9e3d5}.today-goal-control input[type=range]::-moz-range-progress{height:5px;border-radius:5px;background:var(--green)}.today-goal-control input[type=range]::-moz-range-thumb{width:12px;height:12px;background:var(--panel);border:5px solid var(--green);border-radius:50%}.goal-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.goal-presets button{min-height:40px;border:1px solid #d9e3d5;background:var(--panel);border-radius:9px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.goal-presets button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff;font-weight:650}.goal-presets button:hover{border-color:var(--green)}.today-plan p.goal-help{max-width:none;font-size:10px;line-height:1.7;color:var(--muted);margin-top:9px}.today-plan .today-start{width:100%;min-width:0;min-height:48px;margin-top:18px}.today-plan .hero-note{font-size:10px;line-height:1.7;margin-top:9px;color:var(--muted);text-align:center}.goal-default{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--ink);min-height:44px;border-radius:8px;padding:10px 12px;font-size:16px}.completion .completion-actions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:320px;margin:0 auto}.completion .completion-actions button{margin:0;min-height:48px}.completion p.completion-note{font-size:12px;margin:18px auto 8px;max-width:320px}.completion h2{word-break:keep-all;overflow-wrap:anywhere}.completion .panda{margin-bottom:12px}.completion strong{color:var(--ink);white-space:nowrap}.deck-panel{scroll-margin-top:20px}
[data-theme=dark] .today-plan .today-actions{border-color:var(--line)}[data-theme=dark] .daily-progress .track{background:var(--line)}[data-theme=dark] .goal-presets button{border-color:var(--line)}
@media(min-width:701px) and (max-width:1000px){.today-hero.today-plan{gap:24px;padding:28px}.today-plan .today-actions{padding-left:24px}.today-plan .hero-intro{grid-template-columns:minmax(0,1fr) 90px;gap:8px}.today-plan .hero-panda{width:90px;padding:6px 0}.today-plan .hero-panda>.panda{width:90px;height:103px}.today-plan h2{font-size:21px}.goal-control-head{flex-wrap:wrap}}
@media(max-width:700px){.topbar{padding:0 18px}.today-hero.today-plan{display:block;padding:22px 20px;margin-bottom:24px;border-radius:18px}.today-plan .hero-intro{grid-template-columns:minmax(0,1fr) 94px;gap:8px}.today-plan .hero-panda{width:94px;padding:7px 0}.today-plan .hero-panda>.panda{width:94px;height:106px}.today-plan h2{font-size:22px;line-height:1.5}.today-plan .eyebrow{font-size:8px;letter-spacing:.12em;margin-bottom:10px}.today-plan p.hero-description{font-size:12px;margin-top:4px;line-height:1.8}.daily-progress{margin-top:20px}.daily-progress>div:first-child>span{font-size:11px}.daily-progress strong{font-size:24px}.today-plan .today-actions{padding:18px 0 0;margin-top:18px;border-left:0;border-top:1px solid #dbe5d6}.goal-control-head>label{font-size:12px}.goal-presets button{min-height:40px}.today-plan .today-start{margin-top:15px;font-size:13px}.topbar .account{gap:6px}.topbar .account>span{font-size:11px}.completion{padding:24px 18px}.completion h2{font-size:20px}}
@media(max-width:374px){.topbar{padding:0 14px}.topbar .account{padding-right:8px}.topbar .account>svg:last-child{display:none}.topbar .account>span{font-size:10px}.brand{gap:6px}.brand small{font-size:6px;letter-spacing:.1em}.today-hero.today-plan{padding:18px 16px}.today-plan .hero-intro{grid-template-columns:minmax(0,1fr) 78px;gap:6px}.today-plan .hero-panda{width:78px}.today-plan .hero-panda>.panda{width:78px;height:90px}.today-plan h2{font-size:19px}.today-plan .eyebrow{font-size:7px}.goal-control-head{gap:6px}.goal-control-head>label{font-size:11px}.goal-stepper button{width:30px}.daily-progress>div:first-child{gap:6px}.daily-progress>div:first-child>span{font-size:10px}}
.goal-control-head{flex-wrap:wrap;row-gap:8px}.goal-value{display:flex;align-items:baseline;gap:7px;flex-shrink:0;padding:3px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);white-space:nowrap}.goal-value input{appearance:textfield;-moz-appearance:textfield;width:4ch;min-width:4ch;flex-shrink:0;min-height:40px;padding:0;border:0;background:transparent;color:var(--ink);font-size:22px;font-weight:650;line-height:1.5;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:0}.goal-value input::-webkit-inner-spin-button,.goal-value input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.goal-value>span{font-size:13px;color:var(--muted);line-height:1.5}
.today-goal-control .energy-slider{position:relative;height:44px;margin:2px 0 4px;min-width:0;background:none;border:0;box-shadow:none;isolation:isolate}.energy-slider .energy-rail{position:absolute;left:11px;right:11px;top:20px;height:4px;border-radius:4px;background:var(--line);pointer-events:none}.energy-slider .energy-fill{position:relative;width:var(--goal-fill);height:100%;border-radius:inherit;background:var(--charge-color);box-shadow:0 0 6px rgba(57,177,180,calc(var(--charge)*.36)),0 0 12px rgba(57,177,180,calc(var(--charge)*.15));transition:background .12s,box-shadow .12s}.energy-slider .energy-fill:after{content:"";position:absolute;inset:1px 2px auto;height:1px;border-radius:inherit;background:#c9ffff;opacity:calc(var(--charge)*.65);pointer-events:none}.today-goal-control .energy-slider input[type=range]{position:relative;z-index:1;display:block;width:100%;height:44px;margin:0;padding:0;background:transparent;appearance:none;cursor:pointer}.today-goal-control .energy-slider input[type=range]::-webkit-slider-runnable-track{height:4px;background:transparent}.today-goal-control .energy-slider input[type=range]::-moz-range-track,.today-goal-control .energy-slider input[type=range]::-moz-range-progress{height:4px;background:transparent}.today-goal-control .energy-slider input[type=range]::-webkit-slider-thumb{appearance:none;width:22px;height:22px;margin-top:-9px;border:3px solid var(--charge-color);border-radius:50%;background:var(--panel);box-shadow:0 1px 3px #263c3620,0 0 0 3px rgba(69,190,188,calc(var(--charge)*.09)),0 0 14px rgba(69,190,188,calc(var(--charge)*.38));transition:box-shadow .12s,border-color .12s,transform .12s}.today-goal-control .energy-slider input[type=range]::-moz-range-thumb{width:16px;height:16px;border:3px solid var(--charge-color);border-radius:50%;background:var(--panel);box-shadow:0 1px 3px #263c3620,0 0 14px rgba(69,190,188,calc(var(--charge)*.38));transition:box-shadow .12s,border-color .12s,transform .12s}.today-goal-control .energy-slider input[type=range]:active::-webkit-slider-thumb{transform:scale(1.08)}.today-goal-control .energy-slider input[type=range]:active::-moz-range-thumb{transform:scale(1.08)}[data-theme=dark] .energy-slider .energy-fill{filter:brightness(1.25)}@media(prefers-reduced-motion:reduce){.energy-slider .energy-fill,.today-goal-control .energy-slider input[type=range]::-webkit-slider-thumb{transition:none}.today-goal-control .energy-slider input[type=range]::-moz-range-thumb{transition:none}}
/* Mobile navigation is a layout row, independent of the scrolling content. */
@media(max-width:700px){html,body{height:100%;overflow:hidden}#app{height:100%}.app-layout{height:100vh;height:100dvh;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;margin:0}.page-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scroll-padding-bottom:18px;padding-top:env(safe-area-inset-top,0px)}.app-layout>.mobile-nav{position:relative;inset:auto;flex-shrink:0;width:100%;margin:0;z-index:10;padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:var(--panel);transform:none}.page-scroll main{min-height:0}.page-scroll .page-footer{margin-bottom:0;padding-bottom:24px}.page-scroll .deck-panel{scroll-margin-bottom:18px}}
/* Continuous green-to-violet charge, with fine discharges inside the existing bounds. */
.energy-slider .energy-rail{left:14px;right:14px;top:16px;height:12px;background:var(--line);border-radius:20px}.energy-slider .energy-fill{overflow:hidden;background:linear-gradient(100deg,var(--charge-color),var(--charge-light));box-shadow:0 0 7px rgba(130,89,220,calc(var(--charge)*.18))}.energy-slider .energy-fill:after{inset:0;height:100%;background:linear-gradient(#ffffff12,transparent);opacity:1}.energy-fill #bar-discharge{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.today-goal-control .energy-slider input[type=range]::-webkit-slider-runnable-track{height:12px}.today-goal-control .energy-slider input[type=range]::-moz-range-track,.today-goal-control .energy-slider input[type=range]::-moz-range-progress{height:12px}.today-goal-control .energy-slider input[type=range]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-8px;border:1px solid #e0e7e3;background:#fff;box-shadow:0 1px 4px #34305826,0 0 9px rgba(144,117,251,calc(var(--charge)*.22))}.today-goal-control .energy-slider input[type=range]::-moz-range-thumb{width:26px;height:26px;border:1px solid #e0e7e3;background:#fff;box-shadow:0 1px 4px #34305826,0 0 9px rgba(144,117,251,calc(var(--charge)*.22))}.today-plan .hero-panda.charged-panda{position:relative;isolation:isolate}.charged-panda:before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(ellipse,#a5a2ff28,transparent 70%);opacity:var(--charge);pointer-events:none;z-index:-1}.charged-panda .panda-discharge{position:absolute;inset:-4%;width:108%;height:108%;pointer-events:none}.charged-panda>.panda{position:relative;z-index:0}[data-theme=dark] .energy-slider .energy-fill{filter:none}
/* A quiet writing desk, replaced by the compact quiz after tracing. */
.trace-steps{display:flex;align-items:center;gap:9px;margin-bottom:16px;font-size:12px;color:var(--muted,#77857d)}.trace-steps>span{display:flex;align-items:center;gap:6px;white-space:nowrap}.trace-steps b{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#eaf0e8;font-size:11px}.trace-steps [aria-current]{color:#36755f;font-weight:700}.trace-steps [aria-current] b{background:#36755f;color:white}.trace-steps i{width:24px;height:1px;background:#dbe3dc}.trace-steps .textbutton{margin-left:auto;font-size:11px;padding:5px;min-height:32px}.trace-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.trace-heading h2{margin:0;font-size:17px}.trace-heading>span{font-size:12px;color:#7a8980;white-space:nowrap}.trace-reading{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0 2px;flex-wrap:wrap}.trace-reading>span{font-size:21px;letter-spacing:.08em}.trace-reading p{margin:0;font-size:20px;color:#527361}.tracing-panel .kanji-reference{justify-content:center;margin:0 0 12px}.trace-workspace{width:100%;max-width:420px;margin:auto}.trace-paper{position:relative;width:100%;font-size:min(70vw,320px);aspect-ratio:1;margin:auto;border:1px solid #d6dfd5;border-radius:18px;overflow:hidden;isolation:isolate;background:linear-gradient(45deg,transparent 49.7%,#c5cec32b 49.8%,#c5cec32b 50.2%,transparent 50.3%),linear-gradient(-45deg,transparent 49.7%,#c5cec32b 49.8%,#c5cec32b 50.2%,transparent 50.3%),#fbfaf5;box-shadow:inset 0 1px 9px #4e594207,0 4px 14px #34433106}.trace-paper:before,.trace-paper:after{content:'';position:absolute;pointer-events:none;z-index:0}.trace-paper:before{left:50%;top:0;bottom:0;border-left:1px dashed #c7cec580}.trace-paper:after{top:50%;left:0;right:0;border-top:1px dashed #c7cec580}.trace-guide{position:absolute;inset:0;display:grid;place-items:center;font-family:'Kaiti SC',KaiTi,STKaiti,'Noto Serif CJK SC','Songti SC',serif;font-size:inherit;line-height:1;color:#8f9a893a;user-select:none;pointer-events:none}.trace-paper canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;user-select:none;cursor:crosshair;z-index:1}.trace-tools{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:2px}.trace-tools .textbutton{font-size:11px;min-height:40px;padding:6px}.trace-ink-note{font-size:10px;color:#879186}.trace-characters{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin:5px 0 12px}.trace-character{position:relative;width:36px;height:36px;min-height:36px;border:1px solid #e1e7df;background:transparent;border-radius:10px;color:#829083;font-size:18px}.trace-character.active{border-color:#52977a;background:#edf5ed;color:#285b46;box-shadow:0 0 0 2px #55967b12}.trace-character.done{color:#36755f}.trace-character svg{position:absolute;right:-3px;bottom:-3px;background:#36755f;color:#fff;border-radius:50%;padding:2px;width:14px;height:14px}.trace-bottom{display:flex;align-items:center;gap:10px}.trace-bottom>.primary{flex:1;justify-content:center;min-height:48px}.trace-bottom .trace-skip{font-size:11px;min-height:44px;white-space:nowrap;padding:6px}.trace-footnote{text-align:center;font-size:10px;color:#879186;margin:10px 0 0}.tracing-panel~.shortcut{display:none}[data-theme=dark] .trace-steps [aria-current]{color:#b5dcc5}[data-theme=dark] .trace-character.active{background:#304b3c;color:#d0ecda}[data-theme=dark] .trace-reading p{color:#add4bd}
@media(max-width:600px){.tracing-panel .trace-steps{margin-bottom:10px}.trace-heading h2{font-size:14px}.trace-reading{margin-top:8px;gap:9px}.trace-reading p{font-size:18px}.tracing-panel .kanji-reference{margin-bottom:9px}.trace-characters{margin:0 0 8px}.trace-footnote{font-size:9px;margin-top:6px}.trace-bottom>.primary{min-height:44px}.trace-steps{margin-bottom:10px}.trace-steps .textbutton{font-size:10px}}

/* Give finger writing the full available width instead of shrinking with viewport height. */
.is-tracing .trace-tools .textbutton{font-size:13px;min-height:44px;padding:8px}.is-tracing .trace-ink-note{font-size:12px}.is-tracing .trace-character{width:44px;height:44px;min-height:44px;font-size:21px}.is-tracing .trace-bottom .trace-skip{font-size:12px}.is-tracing .trace-heading{flex-wrap:wrap}.is-tracing .trace-footnote{font-size:12px}.is-tracing .trace-characters{margin:4px 0 10px}
@media(max-width:700px){.is-tracing .topbar,.is-tracing .page-footer{display:none}.is-tracing main{padding:4px 8px 10px}.is-tracing .question-panel{padding:12px}.is-tracing .study-top>span{display:none}.is-tracing .session-progress{margin:3px 4px 7px}.is-tracing .trace-steps{margin-bottom:6px}.is-tracing .trace-reading{margin-top:5px}.is-tracing .tracing-panel .kanji-reference{margin-bottom:7px}.is-tracing .trace-paper{border-radius:14px}.is-tracing .trace-tools{margin-top:0}.is-tracing .trace-footnote{margin-top:6px;line-height:1.5}.is-tracing .trace-heading h2{font-size:14px}}
@media(max-width:360px){.is-tracing .trace-ink-note{display:none}}

/* Safari must not start text selection during a long finger stroke. */
.is-tracing,.is-tracing *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.trace-guide.raster-guide{visibility:hidden}.trace-paper canvas{-webkit-user-select:none;-webkit-touch-callout:none}.trace-bottom .primary:disabled{opacity:1;background:var(--soft);color:var(--green);border-color:var(--line)}

.trace-bottom #trace-next{position:relative;overflow:hidden}.trace-bottom #trace-next[data-waiting=true]:after{content:'';position:absolute;bottom:0;left:0;height:3px;width:100%;background:#b9e4c8;transform-origin:left;animation:trace-wait 1s linear both}@keyframes trace-wait{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.boot-loading{min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:32px 24px;background:radial-gradient(ellipse at 50% 42%,#e7f1e5 0,transparent 52%),#f7f8f6;text-align:center}.boot-content{width:min(100%,300px);display:flex;flex-direction:column;align-items:center;padding-bottom:6vh}.boot-mascot{width:142px;height:150px;margin-bottom:22px}.boot-mascot svg{width:100%;height:100%;overflow:visible}.boot-loading h1{color:#285644;font-size:28px;letter-spacing:.16em;font-weight:700;line-height:1.4}.boot-loading h1 span{display:block;font-size:10px;letter-spacing:.34em;margin:8px 0 0;color:#698675;font-weight:600}.boot-track{width:112px;height:3px;border-radius:4px;background:#dde8dc;overflow:hidden;margin:30px 0 16px}.boot-track i{display:block;width:42%;height:100%;border-radius:4px;background:#508e71;animation:boot-drift 1.6s ease-in-out infinite}.boot-loading p{color:#6f8175;font-size:13px;letter-spacing:.04em}.boot-retry{font-size:12px;color:#7d8b80;margin-top:24px;padding:12px;text-decoration:underline;text-underline-offset:4px;opacity:0;visibility:hidden;animation:boot-retry 0s 8s forwards}@keyframes boot-drift{0%{transform:translateX(-110%)}100%{transform:translateX(340%)}}@keyframes boot-retry{to{opacity:1;visibility:visible}}@media(prefers-reduced-motion:reduce){.boot-mascot *,.boot-track i,#trace-next[data-waiting=true]:after{animation:none!important}.boot-track i{width:100%;opacity:.5}}

/* Keep the next action in a separate viewport row, not inside scrolling feedback. */
.answer-dock{display:none}
@media(max-width:700px){.is-studying .topbar{display:none}.has-answer-dock>.mobile-nav{display:none}.has-answer-dock>.answer-dock{display:block;position:relative;z-index:10;background:var(--panel);border-top:1px solid var(--line);padding:10px max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));box-shadow:0 -5px 22px #263c3608}.answer-dock-status{display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:600;margin-bottom:8px;color:var(--green)}.answer-dock-status.negative{color:#a06440}.answer-dock-actions{display:flex;align-items:center;gap:12px}.answer-dock-actions>.primary{flex:1;min-height:48px;justify-content:space-between;padding:12px 20px;font-size:15px}.answer-dock-actions>.textbutton{font-size:12px;min-height:44px}.has-answer-dock .question-panel>.question-footer{display:none}.has-answer-dock .page-footer{display:none}.has-answer-dock .feedback{margin-top:10px}.has-answer-dock .trace-steps{margin-bottom:8px}}
.path-home-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.path-home-heading h1{font-size:28px}.path-home-heading p{font-size:14px;color:var(--muted);margin-top:7px}.path-home-heading .charged-panda{position:relative;width:90px;height:100px;flex-shrink:0}.path-home-heading .panda{width:90px;height:100px}.course-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.course-home-card{padding:26px}.course-card-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.course-symbol{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--soft);color:var(--green)}.reading-path .course-symbol{background:#eef0fa;color:#646fa0}.course-card-heading h2{font-size:20px}.course-card-heading p{font-size:12px;color:var(--muted);margin-top:3px}.course-day-state{font-size:12px;color:var(--green);margin-left:auto}.course-day-progress{display:flex;align-items:baseline;justify-content:space-between;margin:24px 0 9px;gap:8px}.course-day-progress>span{font-size:13px;color:var(--muted)}.course-day-progress strong{font-size:28px;font-variant-numeric:tabular-nums}.course-day-progress small{font-size:13px;font-weight:400;color:var(--muted)}.course-card-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:10px 0 18px}.course-home-card>.primary{width:100%;justify-content:space-between;min-height:48px}.course-card-total{font-size:12px;color:var(--muted);text-align:center;margin-top:12px}.path-home-bottom{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px;align-items:start}.path-goal{padding:18px}.path-goal summary{font-size:14px;cursor:pointer;color:var(--green);font-weight:600}.path-goal summary span{display:block;font-size:12px;color:var(--muted);font-weight:400;margin:5px 0 0 18px}.path-goal .today-goal-control{margin-top:22px}.path-explainer{padding:12px}.path-explainer h2{font-size:17px}.path-explainer p{font-size:13px;color:var(--muted);margin-top:8px}.course-tabs{display:flex;gap:6px;margin:10px 0}.course-tabs button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:10px;font-size:14px}.course-tabs button[aria-pressed=true]{background:var(--soft);border-color:var(--green);color:var(--green);font-weight:600}@media(max-width:700px){.path-home-heading{margin-bottom:14px;gap:8px}.path-home-heading h1{font-size:22px}.path-home-heading p{font-size:12px}.path-home-heading .charged-panda,.path-home-heading .panda{width:65px;height:72px}.course-home-grid,.path-home-bottom{grid-template-columns:1fr;gap:14px}.course-home-card{padding:18px}.course-card-heading{gap:9px}.course-card-heading h2{font-size:18px}.course-card-heading p{font-size:12px}.course-symbol{width:36px;height:36px}.course-day-state{width:100%;margin:0;font-size:12px}.course-day-progress{margin:10px 0 7px}.course-day-progress strong{font-size:25px}.course-card-meta{margin:8px 0 12px}.course-card-total{margin-top:9px}.path-home-bottom{margin-top:16px}.path-explainer{padding:10px 4px}}
.flow-progress p{font-size:12px;color:var(--muted);margin-top:5px}.daily-companion{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 30px;margin-bottom:20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(120deg,var(--soft),var(--panel))}.companion-copy>span{font-size:13px;color:var(--muted)}.companion-copy>strong{display:block;font-size:40px;line-height:1.3;letter-spacing:-.04em;margin:5px 0}.companion-copy strong small{font-size:14px;font-weight:400;letter-spacing:0;margin-left:8px;color:var(--muted)}.companion-copy p{font-size:15px;color:var(--green);margin:6px 0}.companion-copy>small{font-size:12px;color:var(--muted)}.companion-panda,.companion-panda .panda{width:140px;height:146px;flex-shrink:0}.panda-mouth-quiet{opacity:0}.mood-quiet .panda-head{transform:translateY(3px) rotate(-3deg);transform-origin:120px 150px}.mood-quiet .panda-mouth-normal{opacity:0}.mood-quiet .panda-mouth-quiet{opacity:1}.mood-quiet .panda-wave{animation:none;transform:rotate(-9deg);transform-origin:164px 184px}.mood-happy .panda-eyes,.mood-joy .panda-eyes{opacity:0;animation:none}.mood-happy .panda-happy-eyes,.mood-joy .panda-happy-eyes{opacity:1}.mood-happy .panda-wave{animation:wave 3s ease-in-out infinite}.mood-joy .panda-body{animation:panda-joy 2.4s ease-in-out infinite}.mood-joy .panda-wave{animation:wave 1.8s ease-in-out infinite}@keyframes panda-joy{0%,70%,100%{transform:translateY(0)}20%{transform:translateY(-10px) rotate(-3deg)}40%{transform:translateY(-3px) rotate(3deg)}}@media(max-width:700px){.daily-companion{padding:18px;gap:8px;margin-bottom:14px}.companion-panda,.companion-panda .panda{width:104px;height:115px}.companion-copy>strong{font-size:32px}.companion-copy p{font-size:13px}.companion-copy>small{font-size:11px}.flow-progress p{font-size:11px}}@media(prefers-reduced-motion:reduce){.companion-panda *{animation:none!important}}

/* Prevent Safari's outer-page bounce from carrying the navigation away from the visible bottom. */
@media(max-width:700px){html,body{overscroll-behavior:none}body{position:fixed;inset:0;width:100%;height:100%;overflow:hidden}#app{position:fixed;left:0;right:0;top:var(--app-visible-top,0px);height:100vh;height:var(--app-visible-height,100dvh);overflow:hidden}.app-layout{height:100%;min-height:0;max-height:100%;width:100%;grid-template-rows:minmax(0,1fr) auto}.page-scroll{min-width:0;overscroll-behavior:contain}.app-layout>.mobile-nav,.app-layout>.answer-dock{align-self:end;min-width:0}.boot-loading{min-height:100%;height:100%;overflow-y:auto}}
