/* 全画面の読みやすさをここで調整。森の画像・ブランド色は既存のまま。 */
:root{--body-size:18px;--small-size:15px;--answer-size:21px;--question-size:clamp(23px,3vw,29px);--muted:#475467;--reading-weight:500;--reading-line:1.85}
body{font-size:var(--body-size);font-weight:var(--reading-weight);line-height:var(--reading-line)}
button,input,select,textarea{font:inherit;line-height:1.6}button{min-height:48px;white-space:normal;overflow-wrap:anywhere}button.textbtn{min-height:44px;font-size:16px}p,li,td,th,.lesson{overflow-wrap:anywhere}h1,h2,h3{letter-spacing:normal;line-height:1.5;font-weight:800}h1{font-size:clamp(27px,4vw,36px)}h2{font-size:25px}h3{font-size:21px}small{font-size:var(--small-size);line-height:1.7}.muted{color:var(--muted)}
.main,.content,.card,.word,.lesson>span,.row>*{min-width:0}.content{padding-bottom:90px}.row,.sectionhead{flex-wrap:wrap}.card{padding:clamp(18px,3vw,28px)}.study{max-width:860px}.study .card{padding:clamp(18px,3vw,32px)}.study p,.study .note,.study .example p,.feedback p{font-size:18px;line-height:1.95}.question-title{font-size:var(--question-size);font-weight:800;line-height:1.7;margin:24px 0}.choice{font-size:var(--answer-size);font-weight:650;min-height:64px;padding:18px 20px;line-height:1.75}.choice small{font-size:16px;color:#344054}.choices{gap:14px}.passage{font-size:22px;line-height:2.05}.example strong{font-size:23px}.word strong{font-size:26px}.word button{font-size:16px;min-height:46px}.wordgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.tokens button{font-size:20px;min-height:50px}.steps span{font-size:14px;font-weight:700}.note,.toast,.homework-item p,.greeting p,.hero p{font-size:16px;line-height:1.85}.note{color:#344054}.badge,.demo-label{font-size:14px;line-height:1.6}.eyebrow{font-size:13px}.lesson{font-weight:500}.lesson p,.lesson small,.homework-item small,.stat small,.stat i{font-size:15px}.lesson h3{font-size:21px}.stat strong{font-size:30px}.nav button{font-size:16px;color:#475467}.sidefoot,.footer{font-size:14px;color:#475467}td,th,caption{font-size:16px}.tablewrap{max-width:100%}.tablewrap table{min-width:620px}.field textarea{font-size:18px!important;line-height:1.9!important}.calendar-day{min-height:80px}.calendar-day small,.weekday,.trend-column small{font-size:13px}.calendar-day strong{font-size:16px}.speech-status{color:#344054;font-size:16px;margin:0 0 14px}.speech-status:empty{display:none}
.quest-bubble>small,.mini-quest .muted,.mini-quest>small{font-size:15px}.quest-bubble>p[lang]{font-size:24px}.quest-choices span{font-size:18px}.mini-quest h2{font-size:25px}.quest-launch-label{font-size:13px;padding:5px 8px}.resident-shadow{pointer-events:none}.storybook-heading{max-width:calc(100% - 125px)}.storybook-heading h2{font-size:clamp(22px,3vw,30px)}.storybook-heading p,.storybook-location,.storybook-location small,.storybook-xp>small{font-size:14px}.storybook-location small{font-weight:600}.storybook-heading .eyebrow{font-size:11px}.next-forest h3{font-size:22px}.next-forest p,.next-forest .muted{font-size:16px}.next-forest .eyebrow{font-size:13px}.area-card strong,.area-card small{font-size:15px}.animal-tile small,.animal-detail small,.reward-history small,.adventure-preview small{font-size:15px}.growth-card small,.growth-gallery .muted,.fox-growth>small{font-size:15px}.growth-card strong{font-size:18px}
@media(max-width:1050px){.topbar{height:auto;min-height:89px;padding:16px 24px;flex-wrap:wrap}.topbar .row{gap:8px}.columns{grid-template-columns:minmax(0,1fr)}.stat{padding:16px}.area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){body{font-size:18px}.content{padding:24px 16px 125px}.sidebar{height:auto;min-height:86px;padding-bottom:env(safe-area-inset-bottom)}.nav{flex-wrap:wrap}.nav button{font-size:12px;min-width:0;width:16.666%;padding:8px 2px;line-height:1.6}.nav b{font-size:23px}.topbar{padding:12px 16px;gap:8px}.mobilebrand{font-size:22px}.topbar select{font-size:16px;max-width:156px}.topbar .textbtn{font-size:15px}.hero{padding:23px 20px;grid-template-columns:minmax(0,1fr) 96px}.hero h2{font-size:27px}.hero-art .mascot{max-width:110px}.hero-art:before{width:110px;height:110px}.stats{gap:8px}.stat{padding:12px 9px}.stat small,.stat i{font-size:13px}.stat strong{font-size:26px}.word{padding:14px}.word strong{font-size:24px}.lesson{gap:10px;padding:16px}.lesson-icon{width:42px;height:48px}.lesson h3{font-size:20px}.steps span{font-size:13px;padding:6px 8px}.calendar{gap:3px}.calendar-day{min-height:72px;padding:6px 1px}.calendar-day small{font-size:11px}.calendar-day strong{font-size:15px}.storybook-scene{height:410px}.storybook-heading{padding:12px;max-width:calc(100% - 88px)}.storybook-heading h2{font-size:23px}.storybook-heading p{font-size:13px}.storybook-heading .eyebrow{font-size:9px}.storybook-friends{top:170px;bottom:64px}.storybook-location{gap:3px;bottom:12px}.storybook-location small{font-size:12px}.quest-launch-label{font-size:11px;bottom:-25px}.next-forest{grid-template-columns:minmax(0,1fr)}.next-forest>img{height:140px}.next-forest h3{font-size:22px}.quest-conversation{flex-wrap:wrap}.quest-portrait{flex-basis:76px}.quest-bubble{flex-basis:180px}.quest-bubble>p[lang]{font-size:23px}.mini-quest h2{font-size:23px}.quest-choice{min-height:110px}.quest-choice svg{width:52px;height:52px}}
@media(max-width:360px){.hero{grid-template-columns:minmax(0,1fr)}.hero-art{display:none}.stats{grid-template-columns:minmax(0,1fr)}.stat small{font-size:15px}.wordgrid{grid-template-columns:minmax(0,1fr)}.nav button{font-size:11px}.topbar .row{width:100%}}

.content p[style*="font-size"]{font-size:16px!important}.storybook-location{background:#183526b8;border-radius:10px;padding:6px 8px}.storybook-location span,.storybook-location small{color:#fff}

.speech-controls:not([hidden]){display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:#eaf8ff;border:1px solid #b7dff0;border-radius:12px;padding:10px 14px;margin-bottom:16px}.speech-controls .speech-status{flex:1;margin:0;min-width:180px}.animal-tile strong{font-size:17px}.animal-detail h3{font-size:22px}.animal-detail p,.adventure-award p.muted,.world-actions button{font-size:16px}.award-animals small,.reward-history details{font-size:14px}.area-grid .area-card{min-height:140px}

.word strong{overflow-wrap:anywhere}@media(max-width:480px){.wordgrid{grid-template-columns:minmax(0,1fr)}}@media print{.speech-controls,.speech-status{display:none!important}.content{padding:0}.card{padding:12px 0}body{font-size:12pt}}

/* Navigation only: readable desktop labels and compact mobile tabs. */
.lesson-warmup .warmup-finn{display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:16px;background:#f1f7ed;color:#294c3b;margin:14px 0}.lesson-warmup .warmup-finn .mascot{width:64px;height:76px;flex-shrink:0}.lesson-warmup .warmup-finn p{font-size:18px;font-weight:600;line-height:1.7;margin:0}.lesson-warmup .choices{margin:20px 0}.lesson-warmup .warmup-audio-help{font-size:15px;color:#415547;margin:10px 0}.lesson-warmup .warmup-picture-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lesson-warmup .warmup-picture-choices .choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px 8px;font-size:20px}.lesson-warmup .warmup-picture-choices small{font-size:16px;color:#344054}.lesson-warmup .warmup-correct{animation:warmup-glow .6s ease-out}.lesson-warmup .primary{min-height:52px;margin:8px 0}.reduced .lesson-warmup .warmup-correct{animation:none}
@keyframes warmup-glow{from{transform:translateY(3px);opacity:.75}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.lesson-warmup .warmup-correct{animation:none}}
@media(max-width:480px){.lesson-warmup .warmup-picture-choices{grid-template-columns:minmax(0,1fr)}.lesson-warmup .warmup-picture-choices .choice{flex-direction:row;flex-wrap:wrap;gap:12px;min-height:90px}.lesson-warmup .warmup-picture-choices svg{width:64px;height:64px}.lesson-warmup .warmup-finn{gap:10px;padding:10px}.lesson-warmup .warmup-finn p{font-size:17px}.lesson-warmup>button.primary{width:100%}}
/* Homework page only; shared home/teacher homework lists stay unchanged. */
.writing-challenges{margin-top:28px;color:#18324f}.writing-challenges>h2{font-size:24px}.writing-challenges p{font-size:16px;line-height:1.8}.writing-challenges .writing-challenge{margin:16px 0}.writing-challenges h3{font-size:22px}.writing-challenges h4{font-size:17px;margin:14px 0 6px}.writing-challenges textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;padding:12px;border:1px solid #a9bfb0;border-radius:12px;font-size:18px;color:#18324f;background:#fff;resize:vertical}.writing-challenges .field small{display:block;font-size:15px;color:#415547}.writing-challenges .primary{background:#02b7ff;color:#073149}.writing-challenges .challenge-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.writing-challenges .challenge-response p{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px;background:#edf5ec;padding:12px}.writing-challenges .challenge-status{font-weight:600;color:#29553a}.writing-challenges .homework-result{border:1px solid #dbe6da;border-radius:14px;padding:16px;margin:12px 0}.writing-challenges summary{cursor:pointer;font-weight:600;overflow-wrap:anywhere}.writing-challenges form{margin-bottom:24px}.writing-challenges button{min-height:48px}.writing-challenges .field input,.writing-challenges .field select{max-width:100%;min-width:0}
@media(max-width:620px){.writing-challenges .challenge-buttons button{width:100%}.writing-challenges .mission-card{padding:16px}}
.mission-page .mission-instructions{margin-top:16px;padding-top:14px;border-top:1px solid #dbe6da}.mission-page .mission-instructions h3{font-size:16px;color:#294c3b;margin:12px 0 4px}.mission-page .mission-instructions p{font-size:16px;color:#344b40;line-height:1.8;margin:0;overflow-wrap:anywhere}
.homework-results .homework-result{border:1px solid #dbe6da;border-radius:14px;padding:14px 16px;margin:12px 0;background:#fffef8}.homework-results .homework-result summary{cursor:pointer;font-size:18px;font-weight:600;overflow-wrap:anywhere;min-height:44px}.homework-results .homework-result dl{display:grid;grid-template-columns:minmax(95px,1fr) minmax(0,2fr);gap:8px 14px;font-size:16px}.homework-results .homework-result dd{margin:0;overflow-wrap:anywhere}.homework-results .homework-result h3{font-size:18px;margin-top:20px}.homework-results .homework-result p{font-size:16px;overflow-wrap:anywhere}.homework-results .homework-composition p{white-space:pre-wrap}.homework-results .homework-composition{border-top:1px solid #dbe6da;padding-top:10px}
@media(max-width:620px){.homework-results .homework-result dl{grid-template-columns:minmax(0,1fr)}.homework-results .homework-result dd{margin-bottom:8px}}
.mission-page{color:#18324f}.mission-welcome{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;border-radius:22px;border:1px solid #d5e5d5;background:linear-gradient(110deg,#fffef2f5,#eef8e8ee),url('/assets/forest/clearing.png') center/cover}.mission-welcome h1{font-size:clamp(26px,3vw,32px);color:#294c3b;margin:6px 0 10px}.mission-welcome p{margin-bottom:0;color:#365443}.mission-welcome .eyebrow{font-size:13px;color:#48665d}.mission-finn{flex:0 0 105px}.mission-finn img{display:block;width:100%;height:130px;object-fit:contain}.mission-guidance{font-size:16px;color:#415547;line-height:1.8;margin:18px 0 24px}
.mission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.mission-card{min-width:0;padding:20px;border:1px solid #dbe6da;border-radius:20px;background:#fffef8;box-shadow:0 4px 15px #24492e08}.mission-card-heading{display:flex;align-items:center;gap:12px}.mission-card-heading>div{min-width:0}.mission-icon{font-size:25px;color:#946e13}.mission-course{font-size:14px;color:#486050}.mission-card h2{font-size:22px;line-height:1.5;margin:4px 0 0;overflow-wrap:anywhere}.mission-details{margin:18px 0 14px;padding:10px 14px;background:#eff6ef;border-radius:12px}.mission-details>div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:5px 0;font-size:16px}.mission-details dt{color:#486050}.mission-details dd{margin:0;font-weight:600;overflow-wrap:anywhere}.mission-date{display:block;color:#415547;font-size:14px;overflow-wrap:anywhere}.mission-actions{margin-top:18px}.mission-actions .primary{width:100%;background:#02b7ff;color:#073149;font-size:17px;font-weight:600;min-height:50px}.mission-delivered{color:#29553a;font-size:19px;font-weight:700;margin:0 0 5px}.mission-empty{grid-column:1/-1;padding:26px 18px;text-align:center;border:1px dashed #b6cdb9;border-radius:18px;background:#fffef8}.mission-empty>span{color:#946e13;font-size:30px}.mission-empty h2{font-size:22px;margin-top:8px}.mission-empty p{color:#415547}
@media(max-width:800px){.mission-list{grid-template-columns:minmax(0,1fr)}}
@media(max-width:620px){.mission-welcome{padding:18px 16px;gap:8px}.mission-finn{flex-basis:72px}.mission-finn img{height:100px}.mission-welcome p{font-size:16px}.mission-welcome .eyebrow{font-size:11px}.mission-card{padding:18px}.mission-card h2{font-size:21px}}
/* Review only: recover word stars with Finn. */
.review-adventure{color:#18324f}
.review-welcome{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;border:1px solid #d5e5d5;border-radius:22px;background:linear-gradient(110deg,#fffef2f5,#eef8e8ee),url('/assets/forest/clearing.png') center/cover}
.review-welcome h1{font-size:clamp(25px,3vw,32px);margin:6px 0 10px;line-height:1.5;color:#294c3b}
.review-welcome p{margin-bottom:0;color:#365443}.review-welcome .eyebrow{font-size:13px;color:#48665d}
.review-finn{flex:0 0 105px}.review-finn img{display:block;width:100%;height:130px;object-fit:contain}
.review-guidance{font-size:16px;line-height:1.8;color:#415547;margin:18px 0 24px}
.review-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 14px}.review-section-title h2{font-size:23px;margin:0}
.review-count{background:#def3ff;border:1px solid #b7e0ed;border-radius:16px;padding:4px 16px;font-size:30px;font-weight:800;color:#075b7b}.review-count small{font-size:16px;margin-left:6px;color:inherit}
.review-scheduled-count{font-size:15px;color:#415547}
.review-word-card{display:flex;align-items:center;gap:14px;padding:16px 18px;margin-bottom:10px;border:1px solid #dbe6da;border-radius:17px;background:#fffef8}
.review-word-star{font-size:25px;color:#946e13;flex-shrink:0}.review-word-copy{flex:1;min-width:0}.review-word-copy small{font-size:14px;color:#486050}.review-word-copy p{font-size:18px;font-weight:600;line-height:1.7;margin:4px 0 0}
.review-word-card button{flex-shrink:0;font-size:17px;min-height:48px}.review-word-card .primary{background:#02b7ff;color:#073149}.review-word-card .white{border:1px solid #cfdfd2;color:#294c3b}
.review-upcoming .review-word-card{background:#f2f6f1}.review-empty{text-align:center;background:#fffef8;border:1px dashed #b6cdb9;border-radius:18px;padding:24px 18px}.review-empty>span{font-size:30px;color:#946e13}.review-empty p{font-size:18px;margin:8px 0}.review-empty small{color:#415547}
.review-star-recovered .review-recovered-message{font-size:20px;font-weight:800;color:#29553a}.review-star-recovered{animation:review-star-joy .65s ease-out both}
@keyframes review-star-joy{0%{transform:translateY(5px);opacity:.7}60%{transform:translateY(-4px)}100%{transform:translateY(0);opacity:1}}
.reduced .review-star-recovered{animation:none}
@media(prefers-reduced-motion:reduce){.review-star-recovered{animation:none}}
@media(max-width:620px){.review-welcome{gap:8px;padding:18px 16px}.review-finn{flex-basis:72px}.review-finn img{height:100px}.review-welcome h1{font-size:25px}.review-welcome p{font-size:16px}.review-word-card{flex-wrap:wrap;gap:8px 12px;padding:14px}.review-word-copy{flex-basis:calc(100% - 40px)}.review-word-card button{width:100%}.review-section-title h2{font-size:22px}}
/* Course catalog only: existing scenery is decorative, never an unlock. */
.course-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
.course-catalog .course-path{padding:0;margin:0;overflow:hidden;border:1px solid #d6e3d8;border-radius:22px;background:#fffef8;box-shadow:0 5px 18px #24492e0c;min-width:0}
.course-catalog .course-path-art{display:block;width:100%;height:108px;object-fit:cover;object-position:center 55%}
.course-catalog .course-path-body{padding:18px 22px 22px;color:#18324f}
.course-catalog .course-path-level{font-size:14px;font-weight:600;color:#315b47}
.course-catalog .course-path h2{font-size:23px;margin:5px 0 8px;line-height:1.5}
.course-catalog .course-path-summary{font-size:16px;line-height:1.7;color:#344b40;margin:0 0 16px}
.course-catalog .course-path-status{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:14px;font-weight:600;color:#3c5348}
.course-catalog .course-path .progress{margin:10px 0 16px;height:8px}
.course-catalog .course-path .primary{width:100%;font-size:17px;font-weight:600;color:#073149;min-height:48px;border-radius:13px}
.course-catalog .course-tone-1{background:#f2faff}.course-catalog .course-tone-2{background:#fff9ee}.course-catalog .course-tone-3{background:#f6f3ff}
.course-catalog .course-path button:focus-visible{outline:3px solid #075b7b;outline-offset:3px}
@media(max-width:680px){.course-catalog-grid{grid-template-columns:minmax(0,1fr);gap:16px}.course-catalog .course-path-art{height:100px}.course-catalog .course-path-body{padding:16px 18px 20px}.course-catalog .course-path h2{font-size:23px}}
.shell .sidebar .nav{gap:10px}
.shell .sidebar .nav button{display:flex;align-items:center;gap:8px;padding:13px 10px;font-size:18px;font-weight:600;line-height:1.6;color:#18324f;min-width:0}
.shell .sidebar .nav button b{flex:0 0 28px;width:28px;font-size:24px;font-weight:800;line-height:1.2;text-align:center;color:inherit}
.shell .sidebar .nav button.active{color:#123752}
@media(max-width:620px){
 .shell .sidebar .nav{gap:0}
 .shell .sidebar .nav button{flex-direction:column;justify-content:center;gap:3px;width:16.666%;padding:8px 2px;font-size:12px;line-height:1.6}
 .shell .sidebar .nav button b{flex:0 0 auto;width:auto;font-size:25px}
}
