:root{--navy:#182a43;--ink:#22334a;--muted:#64717f;--cream:#faf7f0;--gold:#f6cd72;--line:#e2e4e0;--teal:#327267}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px}button,select,a{ -webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #3d90c8;outline-offset:4px}header{max-width:1180px;margin:auto;padding:27px 32px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;color:var(--ink);font:600 24px 'Outfit',sans-serif;display:flex;align-items:center;gap:10px}.brand:first-letter{color:#d39d35}.header-note{font-size:11px;letter-spacing:1.5px;color:var(--muted)}.dot{padding:0 10px;color:#b5aa98}main{max-width:1180px;padding:0 32px;margin:auto}.hero{background:var(--navy);border-radius:28px;min-height:430px;display:grid;grid-template-columns:1.2fr 1fr;color:#fff;overflow:hidden;padding:54px 58px;position:relative}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}.hero .eyebrow{color:#b3c4d8}h1{font:500 clamp(36px,4.5vw,58px)/1.12 'Outfit',sans-serif;letter-spacing:-1.5px;margin:23px 0 20px}h1 em{font-style:normal;color:var(--gold)}.hero p{line-height:1.8;color:#d8e0e9;font-size:16px;margin-bottom:26px}.hero p span{font-size:13px;color:#b0c1d2}.primary,.outline{min-height:50px;padding:14px 20px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;gap:13px;font-weight:700;text-decoration:none;border:0}.primary{background:var(--gold);color:var(--navy)}.primary:hover{background:#f9d98f}.primary span,.primary small,.outline small{font-size:11px;font-weight:500}.outline{background:transparent;border:1px solid #ccd5d8;color:var(--ink)}.outline:hover{background:#eaf0ef}.sky-art{position:relative;display:grid;place-items:center;min-height:300px}.orbit{position:absolute;width:300px;height:300px;border:1px solid #ffffff13;border-radius:50%}.o2{width:390px;height:390px}.big-star{width:220px;transform:rotate(9deg);filter:drop-shadow(0 15px 35px #0002)}.big-star svg{display:block;width:100%}.tiny{position:absolute;color:var(--gold);font-size:24px}.t1{top:20px;left:40px}.t2{right:5px;top:85px;font-size:38px}.t3{bottom:25px;left:50px;font-size:17px}.t4{bottom:65px;right:40px;font-size:36px}.art-caption{position:absolute;bottom:-14px;font-size:11px;letter-spacing:2px;color:#91a5bc}.sections{display:grid;grid-template-columns:repeat(3,1fr);padding:30px 0;border-bottom:1px solid var(--line);gap:20px}.sections a{font-weight:600;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:12px;font-size:14px}.sections b{font-size:11px;color:#8a978f;background:#eceee5;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}.sections small{color:#8a918e;font-weight:400}.block{padding-top:54px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.section-head .eyebrow{color:var(--teal)}h2{font:500 30px/1.2 'Outfit',sans-serif;letter-spacing:-.7px;margin:10px 0}.section-head p{font-size:13px;color:var(--muted);line-height:1.8;margin:0}.section-head p span{margin-left:5px}.pill{white-space:nowrap;border:1px solid #dcded6;border-radius:30px;padding:9px 14px;color:#6f7a70;font-size:11px}.listening-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:24px}.lyrics{display:grid;gap:10px}.lyric{border:1px solid var(--line);border-radius:16px;padding:17px 20px;background:#fff;display:flex;align-items:center;text-align:left;gap:18px;color:var(--ink);transition:background .2s,border .2s;width:100%}.lyric:hover{border-color:#9bb5ab}.lyric.playing{background:#e6f1ea;border-color:#76a08a}.line-num{font:500 13px 'Outfit',sans-serif;color:#a0aaa4}.line-text{flex:1}.line-text strong{display:block;font:500 20px/1.4 'Outfit',sans-serif}.line-text small{display:block;font-size:12px;color:#788277;margin-top:5px}.play-dot{border:1px solid #dce4dc;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:12px;color:var(--teal);flex-shrink:0}.control-card{background:#e9eee7;border-radius:20px;padding:26px}.card-icon{color:var(--teal);font-size:27px}h3{font:500 23px 'Outfit',sans-serif;margin:12px 0}.control-card p{font-size:12px;color:#667363;line-height:1.8}.full{width:100%;margin-top:10px}.control-card label{display:block;font-size:12px;font-weight:700;margin:20px 0 8px}.control-card label span{font-size:11px;font-weight:400;color:#6d7c70;float:right}select{width:100%;min-height:44px;border:1px solid #cbd6c9;border-radius:9px;background:#f9fbf7;padding:8px;color:var(--ink);font-size:12px}.status{min-height:44px;margin-bottom:0!important}details{font-size:11px;color:#647161;line-height:1.7;margin-top:8px}summary{cursor:pointer;padding:8px 0}.word-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.word{background:#fff;border:1px solid var(--line);border-radius:18px;padding:25px 8px 20px;color:var(--ink)}.word:hover{background:#fff5da;border-color:#dfc173}.word-emoji{display:block;font-size:32px;height:49px}.word strong{font:500 22px 'Outfit',sans-serif;display:block}.word small{display:block;color:#7f887e;margin-top:7px;font-size:12px}.word .hint{font-size:11px;margin-top:16px;color:#849a88}.game-section{padding-bottom:40px}.game{display:grid;grid-template-columns:.8fr 1.3fr;border-radius:22px;background:#f0e9dc;overflow:hidden}.game-prompt{padding:35px;text-align:center;background:#e9e0cf;display:flex;flex-direction:column;align-items:center;justify-content:center}.listening-icon{font-size:48px;margin-bottom:15px;color:#8b7143}.game-prompt p{font-size:12px;color:#81745f;line-height:1.8}.game-answer{padding:30px}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.choice{min-height:64px;background:#fffdf7;border:2px solid transparent;border-radius:13px;color:var(--ink);font:500 22px 'Outfit',sans-serif}.choice:hover{border-color:#ddbf80}.choice.correct{background:#dfeddf;border-color:#6d9d78}.choice.wrong{background:#fff0db;border-color:#d8ac72}.feedback{font-size:13px;line-height:1.6;min-height:57px;margin-top:18px;color:#6b715e}.game-answer .outline{font-size:13px;min-height:44px}footer{border-top:1px solid var(--line);padding:35px 0 45px;text-align:center;color:#899086;font-size:12px}footer .brand{justify-content:center;font-size:20px}.fine{font-size:10px;line-height:1.9;margin-top:20px} @media(max-width:760px){header{padding:22px 20px}.header-note{font-size:9px;letter-spacing:.5px}.header-note .dot{display:none}.brand{font-size:21px}main{padding:0 18px}.hero{grid-template-columns:1fr;padding:32px 28px;min-height:0;border-radius:22px}.hero .eyebrow{font-size:8px;letter-spacing:1.4px}h1{font-size:41px;margin:20px 0 16px}.hero p{font-size:14px}.sky-art{position:absolute;right:-20px;bottom:15px;width:150px;min-height:170px;opacity:.75;pointer-events:none}.big-star{width:110px}.orbit{width:150px;height:150px}.o2{width:190px;height:190px}.art-caption,.t3,.t4{display:none}.t1{top:0;left:20px;font-size:15px}.t2{font-size:18px;right:15px;top:10px}.hero-copy{position:relative;z-index:1}.hero .primary{font-size:13px}.hero .primary span{font-size:10px}.sections{padding:21px 0;gap:8px}.sections a{display:flex;flex-wrap:wrap;gap:6px;font-size:11px}.sections b{width:23px;height:23px;font-size:9px}.sections small{display:none}.block{padding-top:38px}h2{font-size:25px}.section-head p{font-size:12px}.section-head p span{display:block;margin:0}.pill{padding:7px 10px;font-size:10px}.listening-layout{grid-template-columns:1fr;gap:18px}.lyric{padding:16px 13px;gap:12px}.line-text strong{font-size:18px}.line-text small{font-size:11px}.play-dot{width:31px;height:31px}.control-card{padding:22px}.word-grid{grid-template-columns:repeat(3,1fr);gap:10px}.word{padding:20px 8px 15px}.word strong{font-size:20px}.word-emoji{font-size:29px}.word .hint{margin-top:12px}.game{grid-template-columns:1fr}.game-prompt{padding:20px}.listening-icon{font-size:30px;margin:0 0 10px}.game-prompt p{margin-bottom:0}.game-answer{padding:20px}.choice{font-size:21px}.section-head{align-items:flex-start}.section-head .pill{margin-top:4px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}} 
.lesson-title{color:var(--gold);font:500 19px Outfit,sans-serif;margin-bottom:10px}@media(max-width:760px){header .brand{font-size:18px}.header-note{display:none}}@media(max-width:760px){.sections a{flex-direction:column;align-items:flex-start;gap:8px}.section-head .pill{flex-shrink:0}}

.sections{grid-template-columns:repeat(4,1fr)}.spelling-section{padding-top:10px;padding-bottom:45px}.spelling-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px}.spelling-top{display:flex;gap:12px;flex-wrap:wrap}.spelling-card label{display:block;margin:25px 0 10px;font-weight:700;font-size:13px}.spelling-card label span{color:var(--muted);font-weight:400;margin-left:8px}.spelling-card input{width:100%;max-width:540px;height:62px;border:2px solid #cddbd2;background:#f8fbf7;color:var(--ink);border-radius:13px;font:500 25px Outfit,sans-serif;padding:12px 18px;letter-spacing:3px}.spelling-card input::placeholder{font:400 14px Arial,sans-serif;letter-spacing:0;color:#7b887e}.spelling-card input:focus{outline:3px solid #f1ce7a;outline-offset:3px}.letter-bank{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.letter-bank button{width:47px;height:49px;border:1px solid #d8dfd4;border-radius:10px;background:#eff4ec;color:var(--ink);font:500 25px Outfit,sans-serif}.letter-bank button:hover{background:#f9e7b9}.spelling-actions{display:flex;gap:10px;flex-wrap:wrap}.spelling-actions button{font-size:13px}.voice-note{border-top:1px solid var(--line);padding-top:20px;display:flex;gap:14px;color:#718078}.voice-note>span{font-size:28px}.voice-note strong{font-size:13px}.voice-note p{font-size:11px;line-height:1.8;max-width:680px;margin-bottom:0}.spelling-card .feedback{margin-bottom:10px;min-height:32px}@media(max-width:760px){.sections{grid-template-columns:repeat(2,1fr);gap:16px}.sections a{flex-direction:row;align-items:center;gap:8px}.spelling-card{padding:20px}.spelling-top button{font-size:12px}.spelling-card input{font-size:23px}.spelling-actions .primary{width:100%}}
.sections{grid-template-columns:repeat(5,1fr)}.source-notice{display:flex;gap:15px;padding:21px 24px;background:#edf1e8;border:1px solid #dae2d4;border-radius:16px;margin-top:24px}.source-notice>span{font-size:26px;color:#658570}.source-notice strong{font-size:13px;color:#43654f}.source-notice p{font-size:12px;line-height:1.9;margin:8px 0 0;color:#6c7b69}.word-grid{grid-template-columns:repeat(4,1fr)}.pending-card{background:#f4f3ed;border:1px dashed #cdd3c8;border-radius:18px;padding:24px}.pending-heading{display:flex;align-items:center;gap:14px}.pending-heading h3,.activity-title h3{margin:0 0 5px;font-size:21px}.pending-heading p,.activity-title p{margin:0;color:#788172;font-size:12px;line-height:1.7}.stage{flex-shrink:0;display:grid;place-items:center;width:36px;height:36px;background:#e3e9db;border-radius:12px;color:#64805f;font-weight:700}.pending-tag{margin-left:auto;white-space:nowrap;font-size:10px;background:#e8e9e0;color:#77806e;border-radius:15px;padding:7px 11px}.pending-copy{font-size:12px;line-height:1.9;color:#7a8173;margin:18px 0}.pending-control{min-height:40px;font:400 11px 'DM Sans',sans-serif;background:transparent;border:1px solid #d1d7cb;padding:10px 13px;border-radius:10px;color:#74806b}.pending-control:disabled{opacity:.75}.pending-controls{display:flex;gap:8px;flex-wrap:wrap}.song-pending{margin-bottom:28px}.activity-title{display:flex;align-items:center;gap:14px;margin-bottom:18px}.extension-heading{margin:26px 0 15px}.extension-heading h3{font-size:19px;margin-bottom:6px}.extension-heading p{font-size:12px;color:#7b8478;margin:0}.extension-grid .word{padding-top:17px}.pending-stack{display:grid;gap:16px}.mode-help{font-size:11px!important}.practice-intro{margin-top:50px;padding:30px;background:var(--navy);border-radius:20px;color:#fff}.practice-intro .eyebrow{color:#c6d4bc}.practice-intro h2{color:var(--gold)}.practice-intro p{font-size:12px;line-height:1.8;color:#bcc9d7}.practice-intro + .block{padding-top:30px}@media(max-width:760px){.sections{grid-template-columns:repeat(3,1fr);gap:16px 8px}.sections a{font-size:10px;gap:5px}.sections b{width:21px;height:21px;font-size:8px}.word-grid{grid-template-columns:repeat(2,1fr)}.source-notice{padding:18px;gap:10px}.source-notice p{font-size:11px}.pending-card{padding:18px}.pending-heading{gap:9px;flex-wrap:wrap}.pending-heading h3,.activity-title h3{font-size:18px}.pending-heading>div{flex:1;min-width:150px}.pending-tag{margin-left:45px}.pending-copy{font-size:11px}.pending-controls{gap:6px}.pending-control{font-size:10px;padding:9px}.activity-title{align-items:flex-start}.activity-title p{font-size:11px}.practice-intro{padding:24px;margin-top:35px}}

.recording{padding:20px 24px;background:#edf4f3;border:1px solid #cbdedc;border-radius:16px;margin:14px 0}.recording strong{display:block;margin-bottom:10px;font-size:15px}.recording audio{width:100%;display:block}.audio-error{color:#a33434}.story-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.story-lines{display:grid;gap:10px;margin:20px 0}.story-line{display:grid;grid-template-columns:100px 1fr 20px;gap:12px;text-align:left;border:1px solid #d5dee5;background:white;padding:18px;border-radius:12px;align-items:center;color:#182a43}.story-line small{color:#426b72}.extra-audio{margin:40px 0;background:#f5f0e8;padding:24px;border-radius:18px}.extra-audio summary{font-size:18px;cursor:pointer}.pending-card h3{margin-top:18px}@media(max-width:600px){.recording{padding:16px 10px}.story-line{grid-template-columns:1fr 20px}.story-line small{grid-column:1/-1}.sections{flex-wrap:wrap}.sections a{min-width:120px}}

@media(max-width:600px){.sections a{min-width:0;overflow-wrap:anywhere}.recording audio{min-width:0}}
.book-intro{display:flex;gap:30px;align-items:center;justify-content:space-between;padding:30px 0}.book-intro h1{font-size:36px;margin:12px 0}.book-intro h1 em{color:#327267}.book-intro p{color:#64717f;font-size:13px;line-height:1.8}.book-note{font-size:12px;line-height:1.8;color:#697b77;max-width:440px}.page-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.page-tabs button{padding:13px 10px;border:1px solid #d7dfd7;border-radius:12px;background:#fff;color:#23364a;font-weight:bold}.page-tabs button[aria-current=page]{background:#203b4b;color:#fff;border-color:#203b4b}.page-tabs small{display:block;font-size:10px;font-weight:400;margin-top:6px}.reader-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:18px 0}.reader-toolbar .outline{min-height:42px;padding:10px 14px;font-size:12px}#pageStatus{font-size:13px;text-align:center}.book-spread{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:26px;align-items:start}.book-photo{margin:0}.book-photo>button{background:#eee5d8;padding:0;border:0;border-radius:14px;overflow:hidden;width:100%;display:block}.book-photo img{width:100%;display:block}.book-photo figcaption{font-size:11px;text-align:center;padding:10px;color:#6f7c75}.book-readable{background:#fff;padding:28px;border:1px solid #dfe4dc;border-radius:16px;min-width:0}.book-readable h2{color:#347969}.book-readable h3{font-size:19px;line-height:1.6}.book-readable button[data-read],.printed-words button{display:block;text-align:left;width:100%;padding:10px 0;background:none;border:0;color:#213d51;font-size:17px;line-height:1.6}.printed-song button{padding:4px 0!important}.printed-words button{font-size:24px}.printed-words span,.printed-song span{color:#598d7b;font-size:12px}.translation{font-size:12px;line-height:1.8;color:#778273}.book-task,.dialogue-panel{padding:16px;background:#f2f6ec;border-radius:12px;margin:15px 0}.dialogue-panel small{display:block;color:#6f8f73}.dialogue-panel b{display:inline-grid;place-items:center;width:28px;height:28px;background:#d7e5cb;border-radius:50%}.dialogue-panel p{margin:10px 0}.book-choices{border:1px solid #ddd;border-radius:10px}.book-choices label{display:block;padding:10px;font-size:13px}.book-choices input{width:20px;height:20px;vertical-align:middle;margin-right:10px}.book-order{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.book-order label{font-size:12px}.book-order select{margin-top:6px}.given-answer{display:block;padding:12px;color:#347969}.page-audio{margin-top:24px;border-top:1px solid #ddd;padding-top:20px}.page-audio label{font-size:13px;font-weight:bold;display:block;margin-bottom:8px}.page-audio audio{display:block;width:100%;min-width:0;margin-top:12px}.page-audio p,.tts-note{font-size:11px;line-height:1.7;color:#6c7c70}.sky-template{border:1px solid #bacabc;padding:12px;margin-top:14px}.sky-template>div{display:grid;grid-template-columns:1fr 1fr}.sky-template section{border:1px solid #bacabc;min-height:120px;text-align:center;padding:14px 5px}.sky-template section p{font-size:11px;color:#899a89}.study-extras{margin-top:38px;margin-bottom:30px;font-size:16px}.study-extras>summary{padding:20px;background:#ecefe5;border-radius:14px;font-size:17px;font-weight:bold}.study-extras>.hero{margin-top:24px}#pageZoom{width:min(98vw,1200px);max-width:98vw;height:95vh;max-height:95vh;border:0;border-radius:12px;padding:12px;background:#faf7f0}#pageZoom::backdrop{background:#102130b8}#pageZoom form{display:flex;justify-content:flex-end;margin-bottom:10px}.zoom-scroll{height:calc(100% - 62px);overflow:auto}.zoom-scroll img{display:block;width:100%;min-width:780px;max-width:none}@media(max-width:760px){.book-intro{display:block;padding-top:10px}.book-intro h1{font-size:29px}.page-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.book-spread{grid-template-columns:1fr;gap:12px}.book-readable{padding:20px}.reader-toolbar{gap:5px}#pageStatus{font-size:10px}.reader-toolbar .outline{padding:10px 8px;font-size:11px}.book-intro .book-note{font-size:11px}.page-tabs small{font-size:9px}.book-photo img{width:100%}.study-extras>summary{font-size:14px}}

.book-spread.text-only{display:block;max-width:850px;margin:0 auto}.text-only .book-readable{padding:32px 40px}@media(max-width:760px){.text-only .book-readable{padding:20px}}
.assist-body{padding:24px 0}.assist-body>section{margin:30px 0}.assist-body #assistFocus{font-size:14px;line-height:1.8;color:#62776d}.assist-game{background:#f1ebdf;border-radius:18px;padding:24px}.assist-game .choices{margin-top:18px}.assist-body .word-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.assist-body .pill{vertical-align:middle;margin-left:10px}.assist-body #speechStatus{font-size:12px;line-height:1.8;min-height:50px}@media(max-width:600px){.assist-body .word-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assist-body h2{font-size:22px}.assist-game{padding:18px}.assist-body .word strong{font-size:18px}.assist-body .word{overflow-wrap:anywhere}}

.ppt-figure{margin:20px 0;background:#f8faf7;border:1px solid #e1e6df;border-radius:12px;overflow:hidden}.ppt-figure a{display:block}.ppt-figure img{display:block;width:100%;height:auto}.ppt-figure figcaption{padding:10px 12px;font-size:11px;line-height:1.7;color:#667b71}.ppt-figure.small{max-width:396px}.ppt-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ppt-pair .ppt-figure img{aspect-ratio:1.5;object-fit:contain;background:#edf1ea}.ppt-example{font-size:13px;margin:20px 0}.ppt-example summary{padding:14px;background:#edf2e8;border-radius:10px}@media(max-width:600px){.ppt-pair{grid-template-columns:1fr;gap:0}.ppt-figure{margin:14px 0}}

.answerless-slide{aspect-ratio:2048/850;overflow:hidden}.answerless-slide img{display:block;width:100%;height:auto;max-width:none}.ppt-example>p{font-size:14px;padding:10px;line-height:1.8}

.vocab-view{max-width:600px;margin-left:auto;margin-right:auto}.vocab-view a{aspect-ratio:850/940;overflow:hidden}.vocab-view img{width:240.941176%;max-width:none;margin-left:-72.352941%;margin-top:-22.352941%}

.listening-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}.listening-picture{display:block;position:relative;overflow:hidden;width:100%;background:#fff}.listening-picture img{position:absolute;height:auto;max-width:none}.picture-zoom{display:block;padding:0;border:1px solid #d5dfda;border-radius:8px;overflow:hidden;width:100%;background:#fff}#pictureZoom{width:min(94vw,950px);max-height:95vh;border:0;border-radius:16px;padding:20px;background:#fff;color:#22334a}#pictureZoom::backdrop{background:#142334b8}#pictureZoom form{text-align:right}#pictureZoom h2{font-size:18px}@media(max-width:600px){.listening-choices{grid-template-columns:1fr}.listening-choices label{font-size:15px}#pictureZoom{padding:12px}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.lesson-tip{font-size:13px;color:#45685d;line-height:1.8;margin:10px 0 18px}.image-lesson{margin:18px 0;background:#fff;border:1px solid #e0e6df;border-radius:14px;overflow:hidden}.lesson-image{position:relative;overflow:hidden}.lesson-image>img{display:block;width:100%;height:auto}.book-readable .image-hotspot[data-read]{position:absolute;display:block;border:2px solid #2a766c35;border-radius:8px;background:transparent;padding:0;min-height:0;margin:0;z-index:1}.book-readable .image-hotspot[data-read]:hover,.book-readable .image-hotspot[data-read]:focus-visible{background:#ffe9a245;border-color:#29695b;outline:3px solid #f3c36c;outline-offset:0}.image-lesson figcaption{padding:12px;font-size:11px;line-height:1.8;color:#5c7269}.image-lesson a,.song-source a{color:#256456;text-decoration:underline}.vocab-lesson{max-width:600px;margin-left:auto;margin-right:auto}.vocab-lesson .lesson-image{aspect-ratio:850/940}.vocab-lesson .lesson-image>img{width:240.941176%;max-width:none;margin-left:-72.352941%;margin-top:-22.352941%}.unit-cover{min-height:480px;border-radius:18px;overflow:hidden;background:linear-gradient(90deg,#102c43dd,#102c4333),url('assets/mini-project/unit-sky.png') center/cover;padding:42px;display:flex;align-items:center;color:#fff}.unit-cover h2{font-size:44px!important;color:#fff!important}.unit-cover h3{font-size:28px!important;color:#fff}.unit-cover p{color:#fff;line-height:1.8}.unit-cover>div{max-width:430px}.song-lesson{position:relative;background:#fce9e7;border-radius:18px;padding:24px 10px 22px;overflow:hidden;text-align:center}.song-lesson h3{position:relative;font-size:25px!important;color:#923e3e;z-index:1}.song-lesson .translation{position:relative;z-index:1;color:#694f50}.book-readable .song-lesson button[data-read]{position:relative;z-index:1;width:72%;margin:0 auto;background:#fce9e7e8;text-align:center;font-size:21px;line-height:1.4;padding:9px 3px;border-radius:8px}.song-lesson button:hover{background:#fff1b8!important}.song-art{position:absolute;bottom:45px;width:21%;aspect-ratio:350/420;overflow:hidden;pointer-events:none}.song-art img{position:absolute;width:585.715%;height:auto;max-width:none;top:-107.143%}.song-art.girl{left:0}.song-art.girl img{left:-21.429%}.song-art.boy{right:0}.song-art.boy img{left:-454.286%}.song-source{position:relative;z-index:2;font-size:11px;color:#72595a;margin:18px 0 0}.project-observe{border-radius:16px;overflow:hidden;background:#24564f;margin:20px 0;color:white}.observe-instruction{padding:18px 22px}.observe-instruction h3{margin-top:0}.book-readable .observe-instruction button[data-read]{color:white}.observe-skies{display:grid;grid-template-columns:1fr 1fr}.observe-skies>div{min-height:200px;padding:20px;display:flex;align-items:flex-end;font-size:25px;font-weight:bold;color:white;text-shadow:0 2px 5px #000;background:linear-gradient(0deg,#0007,transparent),url('assets/mini-project/day-sky.jpeg') center/cover}.observe-skies>div+div{background-image:linear-gradient(0deg,#0007,transparent),url('assets/mini-project/night-sky.jpeg')}.text-only .book-readable{padding:28px}@media(max-width:600px){.text-only .book-readable{padding:14px}.unit-cover{padding:24px;min-height:380px}.unit-cover h2{font-size:34px!important}.unit-cover h3{font-size:23px!important}.song-lesson{padding:18px 4px}.song-lesson h3{font-size:21px!important}.book-readable .song-lesson button[data-read]{font-size:17px;width:82%;padding:10px 2px}.song-art{width:19%;bottom:45px;opacity:.8}.observe-skies>div{min-height:155px;padding:12px;font-size:21px}.observe-instruction{padding:16px}.book-readable .image-hotspot[data-read]{border-width:1px;border-radius:4px}}
.song-art{mix-blend-mode:multiply}.book-readable .song-lesson button[data-read]{background:#fce9e7}
.song-lesson{padding-bottom:165px}.song-art{bottom:8px;width:20%;opacity:1}.song-source{margin-bottom:0}@media(max-width:600px){.song-lesson{padding-bottom:100px}.song-art{width:24%;bottom:6px}}

/* Use the available display width; keep prose readable without shrinking activities. */
header,main{max-width:none;width:100%;padding-left:clamp(18px,2.2vw,42px);padding-right:clamp(18px,2.2vw,42px)}
.book-spread.text-only{max-width:none;width:100%}
.book-readable>p,.book-intro>.book-note{max-width:85ch}
.vocab-lesson{max-width:min(100%,1000px)}
@media(min-width:1100px){.text-only .book-readable{padding:32px}.sky-drawing{padding:22px}.book-intro{gap:40px}}
.readalong-practice{margin:28px 0;padding:24px;background:#eef5f2;border:1px solid #b9cfc8;border-radius:18px}.readalong-practice>h2{font-size:24px}.readalong-practice>label{display:block;margin:14px 0 8px;font-weight:600}.readalong-practice>select{display:block;width:100%;max-width:800px;margin-bottom:14px;min-height:48px}.readalong-practice>p{max-width:85ch;line-height:1.8}.readalong-practice>audio{display:none}@media(max-width:600px){.readalong-practice{padding:16px}.readalong-practice>h2{font-size:21px}}
.song-play-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.song-play-actions button{flex:1;min-width:190px}
/* Persistent page controls, with reserved end space and modal-safe hiding. */
body{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}html{scroll-padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}.floating-page-nav{position:fixed;z-index:100;bottom:max(12px,env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:max-content;max-width:calc(100% - 24px);padding:8px;background:#fffef7;border:1px solid #b3c7c2;border-radius:18px;box-shadow:0 5px 24px #17362b26}.floating-page-nav button{min-height:48px;min-width:118px;padding:10px 15px;border:0;border-radius:11px;background:#234c51;color:#fff;font-weight:700}.floating-page-nav button:disabled{background:#e3ebe7;color:#65736f;opacity:1}.floating-page-nav span{font-size:13px;white-space:nowrap;color:#234c51;text-align:center;min-width:96px}body:has(dialog[open]) .floating-page-nav{visibility:hidden;pointer-events:none}@media(max-width:600px){.floating-page-nav{gap:6px;padding:6px;border-radius:15px}.floating-page-nav button{min-width:94px;padding:10px 8px;font-size:13px}.floating-page-nav span{font-size:12px;min-width:86px}}
/* Song/story pages are moderately narrower; the sky-log drawing page stays wide. */
.book-spread.text-only:is([data-book-page="35"],[data-book-page="36"],[data-book-page="37"]){max-width:1200px}
main:has(.book-spread:is([data-book-page="35"],[data-book-page="36"],[data-book-page="37"]))>.readalong-practice,main:has(.book-spread:is([data-book-page="35"],[data-book-page="36"],[data-book-page="37"]))>.study-extras{max-width:1200px;margin-left:auto;margin-right:auto}
/* Page turns sit in reserved side rails, centered in the viewport. */
body{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}html{scroll-padding-bottom:24px}
header,main{padding-left:max(52px,env(safe-area-inset-left,0px));padding-right:max(52px,env(safe-area-inset-right,0px))}
.floating-page-nav{position:static;display:contents;width:auto;max-width:none;transform:none;background:none;border:0;padding:0;box-shadow:none}
.floating-page-nav button{position:fixed;z-index:100;top:50%;transform:translateY(-50%);width:44px;min-width:44px;min-height:52px;padding:0;border-radius:13px;font-size:36px;line-height:1;background:#234c51;box-shadow:0 3px 12px #17362b26}
#floatPrev{left:max(3px,env(safe-area-inset-left,0px))}#floatNext{right:max(3px,env(safe-area-inset-right,0px))}
.floating-page-nav span{position:fixed;z-index:100;top:calc(50% + 32px);right:max(3px,env(safe-area-inset-right,0px));width:44px;min-width:0;padding:4px 0;font-size:10px;line-height:1.4;background:#fffef7;border-radius:6px;color:#234c51;pointer-events:none}
body:has(dialog[open]) .floating-page-nav>*{visibility:hidden;pointer-events:none}
@media(min-width:1100px){header,main{padding-left:64px;padding-right:64px}.floating-page-nav button{width:50px;min-width:50px;min-height:60px}#floatPrev{left:6px}#floatNext{right:6px}.floating-page-nav span{right:9px;top:calc(50% + 36px)}}
/* Uploaded Story time sky: decorative outer backdrop only, never the drawing surface. */
body{isolation:isolate;background:#c6d4e6}
.courseware-sky{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.courseware-sky svg{display:block;width:100%;height:100%;pointer-events:none}
header{background:#fffaf0e8;border-bottom:1px solid #ffffffa8}
.book-intro{margin-top:24px;padding:28px;border-radius:24px;background:#fffaf0e8;box-shadow:0 8px 28px #344b6c12}
.reader-toolbar{background:#fffaf0f5;border-radius:14px;padding:10px}
.reader-toolbar .outline{background:#fff}
footer{margin-top:28px;padding-left:18px;padding-right:18px;border-radius:20px;background:#fffaf0f2;color:#526274}
footer .fine{color:#526274}
@media(max-width:600px){.book-intro{padding:18px;margin-top:18px;border-radius:18px}}
/* Unit review is a separate study page, not an extra numbered textbook page. */
.review-group{margin:28px 0}.review-group>h3{color:#24574e}.review-words{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.book-readable .review-word[data-read]{display:flex;flex-direction:column;align-items:flex-start;gap:9px;width:100%;margin:0;padding:20px;background:#f5f8ef;border:1px solid #ccdbcc;border-radius:16px;text-align:left;min-height:138px}.review-word strong{font-size:25px;color:#21494e}.review-word span{font-size:16px;color:#344f49}.review-word small{font-size:12px;color:#526960}.book-readable .review-word[data-read]:hover{background:#fff2c7;border-color:#9c8543}@media(min-width:900px){.page-tabs{grid-template-columns:repeat(7,minmax(0,1fr))}}@media(max-width:600px){.review-words{grid-template-columns:1fr}.book-readable .review-word[data-read]{min-height:128px;padding:16px}}

#spellFeedback{font-size:clamp(20px,1.8vw,25px);font-weight:700;line-height:1.6;padding:18px 20px;margin:22px 0 0;border:2px solid #cad5df;border-radius:14px;background:#f3f7fa;color:#29465b;min-height:0;overflow-wrap:anywhere}#spellFeedback[data-state="correct"]{background:#e9f7ed;border-color:#278343;color:#125b2b}#spellFeedback[data-state="wrong"]{background:#fff0ed;border-color:#c64c32;color:#8d2719}@media(max-width:600px){#spellFeedback{padding:15px 12px;font-size:20px}}

#readalongPhrase{font-size:clamp(22px,2vw,28px);font-weight:600;line-height:1.5;min-height:62px;padding:12px 38px 12px 16px;box-sizing:border-box;min-width:0}#readalongPhrase option{font-size:inherit}@media(max-width:600px){#readalongPhrase{font-size:22px;min-height:60px;padding-left:12px;padding-right:30px}}

.unit-grammar{margin-top:40px;padding-top:28px;border-top:3px solid #a8c8cc}.grammar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grammar-card{min-width:0;padding:22px;border:1px solid #c7d9d5;border-radius:16px;background:#f3f8f5;color:#233f3d}.grammar-card h3{font-size:22px;margin:0 0 15px}.grammar-card p{font-size:18px;line-height:1.75}.grammar-rule{font-weight:700;color:#285d64}.grammar-card blockquote{margin:16px 0 10px;padding:14px 16px;border-left:4px solid #e9b957;background:white;border-radius:6px;font-size:clamp(22px,2vw,28px);line-height:1.5;overflow-wrap:anywhere}.grammar-meaning{font-weight:600}.grammar-card small{display:block;margin-top:16px;line-height:1.6;color:#526b69}@media(max-width:800px){.grammar-grid{grid-template-columns:1fr}.grammar-card{padding:18px}.grammar-card h3{font-size:21px}.grammar-card p{font-size:17px}}

.project-read-button{min-height:44px;padding:10px 14px;border:2px solid #fff;border-radius:10px;color:#164b43;background:#fff;font-size:16px;font-weight:700}.project-read-status{font-size:14px!important;line-height:1.6}
/* Keep the original song characters in their own lower illustration area. */
.song-lesson{padding-bottom:260px}.song-art{width:20%;max-width:180px;aspect-ratio:310/410;bottom:8px}.song-art img{width:660.6452%;top:-109.7561%}.song-art.girl img{left:-33.871%}.song-art.boy img{left:-511.2903%}@media(max-width:600px){.song-lesson{padding-bottom:120px}.song-art{width:24%;max-width:90px}}
