@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&display=swap');
:root{--ink:#233d30;--gold:#f0c36e;--paper:#faf0d6;--wood:#39291e}*{box-sizing:border-box}body{margin:0;background:#152d24 url('forest.jpg') left center/cover fixed;color:var(--ink);font:17px/1.65 system-ui,sans-serif;min-height:100dvh}button,select,textarea{font:inherit}button{cursor:pointer;transition:filter .2s,transform .2s}button:hover{filter:brightness(1.08)}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:3px solid #64bfc3;outline-offset:4px}button:disabled{opacity:.5;cursor:default}header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 5vw;color:#ffe6ad;text-shadow:0 2px 4px #000}header .brand{font:700 26px 'Noto Serif SC',Georgia,serif}header small{display:block;font-size:14px;font-weight:400;letter-spacing:1px}button.ghost,select{border:1px solid #bca271;border-radius:12px;background:#233b30ed;color:#ffedcb;padding:9px 16px}header button{margin-left:8px}h1,h2,h3{font-family:'Noto Serif SC',Georgia,serif;line-height:1.4}h1{font-size:clamp(30px,3.3vw,48px);margin:12px 0}h2{font-size:28px;margin:8px 0 18px}.eyebrow{font-size:14px;letter-spacing:2px;text-transform:uppercase;color:#906d37}.home{min-height:calc(100dvh - 200px);display:flex;justify-content:flex-end;align-items:center;padding:2vh 6vw 5vh}.paper{background:linear-gradient(125deg,#fff7e5,#efe0ba);border:2px solid #ba9755;border-radius:22px;box-shadow:0 0 0 7px #423523b3,0 18px 65px #0008,inset 0 0 40px #b9833220;padding:36px}.mission{width:min(510px,46vw);text-align:center}.rule{height:1px;background:linear-gradient(90deg,transparent,#b29052,transparent);margin:26px 0}.mission .question{font-size:22px;margin:32px 0}.primary{display:block;width:100%;padding:16px 24px;border-radius:16px;border:2px solid #b38135;color:#412d0d;background:linear-gradient(#ffe4a0,#edb647);box-shadow:inset 0 2px 1px #fff8,0 5px 0 #896129;font-weight:700;font-size:20px}.secondary{border:1px solid #bba271;color:#43503b;background:#fff7df;border-radius:12px;padding:10px 18px}.subtle{color:#796950;font-size:14px}.mission .secondary{margin-top:18px;width:100%}.nav{display:flex;justify-content:center;gap:2px;margin:0 auto 24px;width:min(1000px,90%);padding:9px;background:linear-gradient(#62472e,#35291e);border:1px solid #b29356;border-radius:18px;box-shadow:0 8px 25px #0008}.nav button{flex:1;background:none;border:0;color:#ffe5ac;padding:12px;font-size:17px}.nav button+button{border-left:1px solid #ad8e574d}.shell{max-width:1160px;margin:20px auto 40px;padding:0 24px}.reading-layout{display:grid;grid-template-columns:1fr 285px;gap:24px}.reader{padding:30px 42px}.reader-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.segments{display:flex;gap:8px;margin:18px 0}.segments button{flex:1;padding:8px;border-radius:8px;border:1px solid #baa374;background:#eee1bc;color:#52614b}.segments button.active{background:#234d3e;color:#fff2d5}.passage{font-family:Georgia,serif;font-size:23px;line-height:1.95;white-space:normal;margin:24px 0}.token{border:0;padding:0 1px;background:none;color:inherit;font:inherit;border-radius:4px}.token:hover{background:#e9cd82}.token.key{border-bottom:2px dotted #a2813a}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.actions .primary{width:auto;font-size:17px;padding:10px 20px}.side{align-self:start}.side .paper{padding:22px;margin-bottom:20px}.side h3{margin:0 0 14px}.hint{font-size:16px}.notice{padding:13px;background:#e5ddbf;border-radius:10px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}.card{border:1px solid #bf9d60;border-radius:14px;background:#fff9e9;padding:20px;text-align:left;color:var(--ink)}.card h3{margin:0 0 10px;font-size:24px}.card.selected{outline:3px solid #346b55;background:#e8f0dc}dialog{border:2px solid #b99754;border-radius:22px;background:var(--paper);max-width:480px;width:90%;padding:28px;color:var(--ink);box-shadow:0 20px 100px #0008}dialog::backdrop{background:#071a14b3}dialog h2{font:38px Georgia;margin:8px 0}dialog .close{float:right;border:0;background:none;font-size:24px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#193b30;color:#fff4d6;padding:12px 24px;border:1px solid #c4a360;border-radius:14px;z-index:20;display:none;max-width:90vw}progress{accent-color:#397357;width:100%;height:10px}.center{text-align:center}.gamebox{position:relative;border:2px solid #bd9c5d;border-radius:16px;overflow:hidden;background:#18372d}.gamebox canvas{width:100%;display:block;touch-action:none}.game-toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:15px 0;flex-wrap:wrap}.controls{display:flex;gap:10px;justify-content:center}.controls button{min-width:70px;min-height:54px;touch-action:none}.feedback{margin:18px 0;padding:16px;border-radius:12px;background:#e5ead6}.choice{display:block;width:100%;margin:10px 0;text-align:left}.readonly{opacity:.68}.audio{width:100%;margin-top:20px}textarea{width:100%;min-height:120px;padding:15px;border:1px solid #b99d69;border-radius:12px;background:#fffaf0;color:var(--ink)}.badge{display:inline-block;border:1px solid #c7a05b;border-radius:99px;padding:5px 14px;font-size:14px;background:#fff0bb}.view-title{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.view-title h2{margin:0}.float-note{color:#fff3d1;text-shadow:0 2px 4px black;text-align:center}.recording{color:#a33527}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:800px){header{padding:18px 20px}.brand{font-size:20px!important}header small{font-size:12px}.home{padding:32vh 22px 32px;min-height:auto}.mission{width:100%;padding:25px}.reading-layout{grid-template-columns:1fr}.reader{padding:22px}.side{display:grid;grid-template-columns:1fr 1fr;gap:15px}.side .paper{padding:18px}.nav{width:94%}.nav button{font-size:14px;padding:9px 5px}.shell{padding:0 15px}.passage{font-size:21px}.paper{padding:24px}.reader-top{flex-wrap:wrap}}@media(max-width:480px){.side{display:block}.reader-top h2{font-size:24px}.game-toolbar{font-size:14px}header .brand{font-size:17px!important}header .ghost{padding:8px;font-size:14px}.mission .question{font-size:20px}.view-title{align-items:start;flex-direction:column}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.narration-panel{background:#e4ddc3;border:1px solid #c7b27f;border-radius:14px;padding:18px;margin:20px 0}.narration-panel .audio{margin:10px 0;width:100%}.narration-panel .actions{gap:8px}.narration-panel strong{font-size:16px}.narration-panel button{font-size:14px;padding:8px 12px}

.passage{text-align:left;word-spacing:normal;letter-spacing:normal;overflow-wrap:normal;word-break:normal}.token{display:inline;white-space:normal;text-align:inherit}

#wordDialog{background:#fff8e8!important;background-image:none!important;color:#193629!important;opacity:1;isolation:isolate;border:2px solid #b58a3d;padding:32px;width:min(520px,calc(100vw - 32px));max-width:520px;max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 24px 90px #0009;color-scheme:light}
#wordDialog::backdrop{background:rgba(6,22,16,.62)}
#wordDialog h2{color:#163b2b;font-family:Georgia,serif;font-size:clamp(36px,7vw,46px);font-weight:700;line-height:1.2;margin:16px 0 20px;overflow-wrap:anywhere}
#wordDialog p{font-size:21px;line-height:1.6;color:#243b2f;margin:0 0 26px}
#wordDialog .eyebrow{color:#79571f;font-size:14px;font-weight:600}
#wordDialog .close{width:40px;height:40px;border-radius:50%;background:#ede2c7;color:#253c2e;font-size:26px;line-height:1;float:right}
#wordDialog .actions{gap:12px;padding-top:20px;border-top:1px solid #d6c29a}
#wordDialog .secondary{background:#fffdf6;color:#293e30;border-color:#aa946c;min-height:48px}
#wordDialog .primary{color:#3b290c;min-height:48px}

#wordDialog .word-picture{width:100%;aspect-ratio:1;max-width:240px;margin:0 auto 20px;border-radius:16px;background-image:url('vocabulary-atlas.jpg');background-size:300% 200%;background-repeat:no-repeat;box-shadow:inset 0 0 0 1px #d6c29a}
.picture-0{background-position:0% 0%}.picture-1{background-position:50% 0%}.picture-2{background-position:100% 0%}.picture-3{background-position:0% 100%}.picture-4{background-position:50% 100%}.picture-5{background-position:100% 100%}
#wordDialog .word-meaning{font-size:22px;line-height:1.55;font-weight:600;margin:0 0 20px;color:#20392b}
#wordDialog .word-example{background:#eee7d2;border-radius:12px;padding:14px 18px;margin-bottom:20px}
#wordDialog .example-label{font-size:12px;letter-spacing:1.5px;font-weight:700;color:#69512d}
#wordDialog .word-example p{font-size:20px;line-height:1.5;margin:6px 0 0;color:#314536}
@media(max-height:760px){#wordDialog{padding:24px}#wordDialog h2{margin:8px 0 14px}#wordDialog .word-picture{max-width:160px;margin-bottom:14px}#wordDialog .word-meaning{font-size:20px;margin-bottom:14px}}

.word-unit{display:inline-block;white-space:nowrap}.sentence-passage{font-size:22px;line-height:1.8}.sentence-card{padding:16px 12px;border-bottom:1px solid #d6c39c;border-radius:10px;scroll-margin-top:20px}.sentence-card.is-speaking{background:#f8df95;box-shadow:inset 4px 0 #ad8138}.sentence-text{margin:0 0 8px}.sentence-tools{display:flex;gap:10px;flex-wrap:wrap}.sentence-tools button{font:14px/1.4 system-ui;padding:7px 12px;border:1px solid #c7b18a;border-radius:8px;background:#fff9e9;color:#37553e}.sentence-tools .sentence-play{background:#2e5843;color:#fff6df;border-color:#2e5843}.sentence-translation{font:18px/1.7 system-ui;color:#5d513b;background:#ece2c9;border-radius:8px;margin:12px 0 0;padding:12px}.sentence-feedback{font:16px/1.6 system-ui}.sentence-feedback:empty{display:none}.reading-feedback{margin-top:12px;padding:14px;background:#e6eadb;border-radius:10px}.heard-text{font-size:15px;color:#4f604e}.edition-tabs{display:flex;gap:8px;margin-top:14px}.edition-tabs button{background:#fff8e6;border:1px solid #b9a177;border-radius:8px;padding:8px 14px;color:#41523c}.edition-tabs .active{background:#e2c67f;color:#332b16}.sentence-feedback ul{padding-left:22px}.sentence-feedback .audio{max-width:100%}

/* A continuous story by default; learning aids are opt-in. */
.reading-tools-toggle{border:1px solid #c8b790;border-radius:99px;background:transparent;color:#696049;padding:7px 14px;font:14px/1.5 system-ui;white-space:nowrap}
.reading-tools-toggle[aria-expanded="true"]{background:#e9dfc4;color:#314d3b}
.reading-support[hidden]{display:none}
.quiet-reading .sentence-tools,.quiet-reading .sentence-translation,.quiet-reading .sentence-feedback{display:none!important}
.quiet-reading .sentence-card{display:inline;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.quiet-reading .sentence-text{display:inline;margin:0}
.quiet-reading .story-paragraph{margin:0 0 .85em}
.quiet-reading .sentence-passage{font-size:23px;line-height:1.95}
.quiet-reading .token.key{border-bottom:0}
.quiet-reading .token{padding:0}
.tools-open .story-paragraph{margin:0}
@media(max-width:800px){.quiet-reading .sentence-passage{font-size:21px}}

.mission-stage .mission{width:min(570px,100%)}.mission-stage h1{font-size:32px}.mission-seal{font-size:40px;color:#a77930;margin:14px auto}.mission-stage .scene{font-size:19px;line-height:1.9}.mission-question{background:#ede1bf;border:1px solid #c5aa70;border-radius:15px;padding:24px;margin:26px 0}.mission-question h2{font-size:25px;margin:12px 0}.mission-question p{font-size:15px;color:#716146}.task-reminder{margin-bottom:20px}.task-reminder summary,.evidence-picker summary{cursor:pointer;font-weight:600}.task-reminder[open] summary{margin-bottom:18px}.reflection-page{max-width:850px;padding:32px}.reflection-page textarea{margin:10px 0 22px}.evidence-picker{padding:18px;border:1px solid #c8b58e;border-radius:12px;margin-bottom:20px}.evidence-line{display:flex;gap:12px;align-items:baseline;padding:12px 4px;border-bottom:1px solid #daceb5;font-family:Georgia,serif;font-size:19px}.evidence-line input{flex-shrink:0;width:18px;height:18px;accent-color:#305d44}.reflection-page #reflection-message{color:#315c3f}.reflection-page .actions{margin-top:24px}

/* Keep mission questions on one line when there is room. */
@media(min-width:801px){.mission-stage .mission{width:min(680px,100%)}.mission-question h2{font-size:23px}.mission-stage .mission-question{padding:22px 18px}}
.mission-question h2{text-wrap:balance}
@media(max-width:480px){.mission-question h2{font-size:21px}.mission-question{padding:20px 14px}}

.discovery-options{border:0;padding:0;margin:24px 0}.discovery-options legend{font-weight:700;color:#42604b;font-size:17px;margin-bottom:10px}.discovery-options .choice{display:flex;gap:14px;align-items:baseline;font-size:18px;line-height:1.65}.choice-letter{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;background:#eee4c8;color:#6a542f;font:600 15px system-ui}.choice.selected .choice-letter{background:#315c44;color:#fff6df}.evidence-choice{font-family:Georgia,serif}.extra-thought{margin:24px 0 12px;color:#6b604b}.extra-thought summary{cursor:pointer;font-size:15px}.extra-thought textarea{margin-top:12px}.reflection-page #reflection-message:empty{display:none}

.level-cards{margin:28px 0}.level-card{background:linear-gradient(150deg,#fff8df,#e3dbaf)}.level-card.locked{background:#e6e0cf;color:#78745e}.level-card h3{margin-top:18px}.stars{color:#a67c27;font-size:28px;letter-spacing:5px}.reward-rules{background:#e9e4cb;border-radius:14px;padding:18px;margin:22px 0}.score-total{font-size:42px;color:#987125;margin:25px 0}.score-total small{font:16px system-ui}.rank-row{display:flex;align-items:center;gap:24px;padding:20px;border-bottom:1px solid #c9b48b}.rank-row span{flex:1}.rank-row small{display:block;color:#6c7056}.rank-list{margin-bottom:25px}.nav{flex-wrap:wrap}.nav button{min-width:120px}

.language-entry{width:100%;margin:8px 0 16px}header>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}header button{margin-left:0}

.chapter-link{display:block;text-decoration:none;color:var(--ink)}.chapter-link:hover{background:#f4e5ba}.chapter-link:focus-visible{outline:3px solid #346b55}

.sentence-text{cursor:pointer}.quiet-reading .sentence-card.is-selected .sentence-text,.quiet-reading .sentence-card.is-speaking .sentence-text{background:#f5dfa1;border-radius:4px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
#sentenceDock{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);width:min(720px,calc(100vw - 28px));max-height:45dvh;overflow:auto;z-index:15;padding:16px 22px;background:#fff8e8;border:2px solid #b79550;border-radius:18px;box-shadow:0 10px 50px #142b2460;color:#243b2f}
.dock-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#77633f}.dock-heading button{padding:4px 12px;font-size:13px}.dock-excerpt{font:19px/1.6 Georgia,serif;margin:8px 0 12px}#sentenceDock .sentence-tools{display:flex}#sentenceDock .sentence-translation[hidden]{display:none}body.has-sentence-dock{padding-bottom:220px}@media(max-width:480px){#sentenceDock{padding:12px 14px;bottom:8px}.dock-excerpt{font-size:17px}}

.question-zh{font:14px/1.7 system-ui;color:#716044;margin:6px 0 18px}.question-zh summary{display:inline-block;cursor:pointer;border:1px solid #c7b58e;border-radius:99px;padding:4px 12px;background:#fff8e6}.question-zh summary:focus-visible{outline:3px solid #64bfc3;outline-offset:3px}.question-zh[open] summary{background:#eee2c2}.question-zh>div{margin-top:8px;border-left:3px solid #c6aa6d;padding:8px 12px;background:#f0e8d4;border-radius:0 8px 8px 0;color:#514831}.discovery-options .choice{margin-bottom:4px}

.current-chapter{border:2px solid #548675}.chapter-link small{display:block;line-height:1.8}.chapter-link p{margin:4px 0}.arcade-mode{color:#5f753a;font-weight:700}

.gamebox{width:min(100%,94dvh);margin-inline:auto}.controls{position:sticky;bottom:10px;z-index:3;background:#f7ebcee8;border:1px solid #c6aa73;border-radius:14px;padding:8px;backdrop-filter:blur(8px)}

.account-page{padding:30px;max-width:980px}.account-form{display:grid;gap:16px;max-width:480px;margin:22px 0}.account-form label{display:grid;gap:6px}.account-form input{width:100%;font:inherit;padding:12px;border:1px solid #b79961;border-radius:10px;background:#fffcf4;color:#233d30}.account-message{color:#854127;min-height:1.5em}.account-password{margin:24px 0}.account-password summary{cursor:pointer}.student-create{max-width:none;grid-template-columns:repeat(3,minmax(150px,1fr));align-items:end}.student-create .primary{grid-column:1/-1;width:auto}.student-list{display:grid;gap:15px}.student-row{display:flex;justify-content:space-between;align-items:center;gap:15px}.my-rank{background:#e4edcf;border-radius:12px}header>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}header .ghost{margin:0}@media(max-width:700px){.student-create{grid-template-columns:1fr}.student-row{display:block}.account-page{padding:20px}}

.account-form select{width:100%;font:inherit;padding:12px;border:1px solid #b79961;border-radius:10px;background:#fffcf4;color:#233d30}.student-create small{font-size:12px}.student-row .subtle{overflow-wrap:anywhere}

.story-studio{max-width:1160px;padding:32px}.story-people{margin:24px 0;padding:18px;border:1px solid #cbb986;border-radius:18px;background:#fff8e8}.story-people summary{cursor:pointer;font-weight:bold}.story-people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-top:18px}.story-person{padding:12px;border-radius:16px;background:#f4edd9}.story-person h3{margin:12px 0 6px}.story-person p{font-size:16px;line-height:1.6}.story-art{display:block;width:100%;height:auto}.story-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}.story-tabs button{width:auto;flex:1;min-width:145px}.story-map{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:26px 0;background:linear-gradient(90deg,transparent calc(50% - 1px),#c29d52 50%,transparent calc(50% + 1px))}.story-map-center{grid-column:1/-1;justify-self:center;background:#214c40;color:#ffedb6;padding:20px 34px;border-radius:50px;text-align:center;font:700 25px Georgia,serif;box-shadow:0 6px 0 #c8aa66}.story-node{position:relative;border:1px solid #d3be8b;border-radius:18px;background:#fff9e9;padding:20px 22px;border-top:5px solid #78947a}.story-node>span{float:right;border-radius:50%;background:#e7d8b3;padding:6px 13px}.story-node h3{margin:0 0 10px}.story-think{background:#e5ecd9;border-radius:20px;padding:22px;margin-bottom:24px}.story-studio textarea{display:block;width:100%;min-height:130px;margin:10px 0 16px}.story-bank{display:flex;flex-wrap:wrap;gap:12px;padding:18px;border-radius:16px;background:#e8e0c9}.story-bank span{padding:6px 16px;border-radius:20px;background:#fff8e6;border:1px solid #cbb584}.story-gaps{display:grid;gap:16px;margin:24px 0}.story-gaps label{display:flex;align-items:center;gap:18px;background:#fff9eb;border:1px solid #d8c79b;padding:20px;border-radius:14px;font:22px/1.8 Georgia,serif}.story-gaps b{color:#977638}.story-gaps select{font:inherit;width:auto;max-width:100%;padding:3px 12px;border-radius:8px;border:1px solid #b38e48;color:#244d40;background:#fffdf5;margin:0 5px}.story-scenes{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:16px;margin:24px 0}.story-scenes figure{margin:0;padding:10px;background:#fff9e9;border:1px solid #d6c396;border-radius:20px;box-shadow:0 5px 0 #d9cba8}.story-scenes figcaption{padding:10px 3px}.story-scenes figcaption>span{display:inline-block;border-radius:50%;background:#244d40;color:#fff0bf;padding:3px 11px;margin-right:10px}.story-scenes p{font-size:16px}.story-checklist{display:grid;gap:12px;border:1px solid #bdc7a8;border-radius:16px;margin:24px 0;padding:20px}.story-checklist input{width:auto}.story-locked{padding:30px;background:#eee6ce;border-radius:22px}.story-studio .feedback:empty{display:none}#storyRecording audio{max-width:100%;display:block;margin:15px 0}.reading-people{max-width:1120px;margin:16px auto;padding:0 20px}@media(max-width:650px){.story-studio{padding:20px}.story-map{grid-template-columns:1fr;background:none}.story-scenes{grid-template-columns:1fr 1fr}.story-tabs button{min-width:120px}.story-gaps label{font-size:18px;padding:14px}.story-person p{font-size:15px}}

.story-stage{flex:1;min-width:150px;padding:16px;border:1px solid #cfbb87;border-radius:14px;text-align:center;background:#f8f0d9;color:#566855}.story-stage.current{background:#ecca77;color:#23483c;font-weight:bold;border:2px solid #b48e43}

.story-scenes{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.story-scene-open{display:block;width:100%;padding:0;border:0;border-radius:14px;overflow:hidden;background:none;cursor:zoom-in;box-shadow:none}.story-frame{width:100%;aspect-ratio:var(--scene-ratio);background-image:url('storyboard.png');background-size:var(--scene-size);background-position:var(--scene-x) var(--scene-y);background-repeat:no-repeat;border-radius:12px}.story-scenes figure{padding:10px 10px 4px;box-shadow:0 7px 22px #46351217}.story-scenes figcaption{padding:15px 8px}.story-scenes figcaption p{font-size:18px;line-height:1.6}.story-scene-dialog{width:min(1050px,94vw);max-width:94vw;max-height:94vh;border:1px solid #d4b270;border-radius:20px;background:#fff5dd;padding:16px;overflow:auto;box-shadow:0 24px 100px #0008}.story-scene-dialog::backdrop{background:#102b22ce;backdrop-filter:blur(5px)}.story-scene-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.story-scene-dialog .story-frame{max-height:78vh;background-color:#263e32}@media(max-width:650px){.story-scenes{grid-template-columns:1fr;gap:18px}.story-scene-dialog{padding:10px}}

.story-scene-dialog .story-frame{max-height:none;width:min(100%,calc(74vh * var(--scene-ratio)));margin:0 auto}

body.reading-focus{background:#091913;background-image:linear-gradient(#071811de,#071811de),url('forest.jpg')}
body.reading-focus header{opacity:.18;transition:opacity .2s}body.reading-focus header:hover,body.reading-focus header:focus-within{opacity:1}
body.reading-focus .reading-layout{display:block;max-width:900px;margin:16px auto 50px}
body.reading-focus .reader{padding:42px 54px;background:#fbf4e4;border:1px solid #c5bda4;box-shadow:0 22px 90px #0007}
body.reading-focus .side,body.reading-focus .reading-people,body.reading-focus .reader-top,body.reading-focus .segments,body.reading-focus .reading-support,body.reading-focus .direct-read-hint{display:none!important}
body.reading-focus .reader>.actions{opacity:.22;margin-top:40px;transition:opacity .2s}body.reading-focus .reader>.actions:hover,body.reading-focus .reader>.actions:focus-within{opacity:1}
body.reading-focus .passage{margin:0;font-size:25px;line-height:2;color:#26372e}
body.reading-focus .token:hover{background:none}body.reading-focus .sentence-text:hover{background:#dfd3ad38;box-decoration-break:clone;-webkit-box-decoration-break:clone}
#focusHelp{position:fixed;z-index:30;display:flex;align-items:center;gap:7px;flex-wrap:wrap;max-width:calc(100vw - 20px);padding:10px 12px;border:1px solid #d2bb84;border-radius:14px;background:#fff9ec;box-shadow:0 8px 28px #0003;color:#435246;font-size:14px}#focusHelp button{background:#f2e5c5;color:#254738;border:1px solid #d7c294;border-radius:9px;padding:6px 10px;font:inherit}#focusHelp>span{font-size:12px}.focus-word-list{display:flex;flex-wrap:wrap;gap:8px}.focus-word-list p{flex-basis:100%;margin:10px 0 0}.focus-word-list button{padding:5px 12px}body.reading-focus.has-sentence-dock{padding-bottom:0}
@media(max-width:650px){body.reading-focus .reader{padding:28px 23px}body.reading-focus .passage{font-size:22px}body.reading-focus header{padding:10px 16px}body.reading-focus .reading-layout{padding:0 10px}#focusHelp{font-size:13px}}

body.question-focus{background:#081b17;background-image:radial-gradient(ellipse at 50% 40%,#20483888,#051610ed),url('forest.jpg');background-attachment:fixed}
body.question-focus header{opacity:.16;transition:opacity .2s}body.question-focus header:hover,body.question-focus header:focus-within{opacity:1}
body.question-focus .reading-people{display:none}body.question-focus .quest-stage{position:relative;max-width:850px;margin:32px auto 70px;padding:44px 48px;background:linear-gradient(100deg,#e9d8ab 0%,#fff7e5 5%,#fbf1d6 96%,#e4c991);border:1px solid #ddc48b;border-radius:8px 26px 26px 8px;box-shadow:-8px 5px 0 #6d5036,-12px 8px 0 #c6ad7b,0 30px 100px #0009;min-height:440px}
body.question-focus .mission-stage{background:none;border:0;box-shadow:none;padding:0;min-height:0}body.question-focus .mission-stage .mission{max-width:none;margin:0;padding:40px;background:linear-gradient(100deg,#ead8ad,#fff6e1 8%,#fbf0d2);border-radius:8px 28px 28px 8px;box-shadow:-9px 6px 0 #896845,0 28px 80px #0007}
.quest-stage h2{font-size:clamp(25px,3vw,34px);line-height:1.35}.quest-stage .choice{border-radius:16px;padding:19px 22px;margin:12px 0;background:#fffaf0;transition:transform .18s,box-shadow .18s,border-color .18s}.quest-stage .choice:hover{transform:translateY(-3px);box-shadow:0 8px 22px #59451e20;border-color:#ae823c}.quest-stage .choice.selected{background:#e4eddb;border-color:#476f58}.quest-stage .discovery-options{padding:0;border:0}.quest-stage .feedback{background:#e4ecd9;border-radius:16px}.quest-stage .question-zh{font-size:14px;margin:6px 0}.quest-stage .actions{margin-top:26px}.quest-stage .quest-change{margin:8px 0 20px}.quest-stage .story-tabs{font-size:12px;opacity:.65}.quest-stage.story-studio>h1,.quest-stage.story-studio>h1+p{display:none}.quest-stage .story-map{display:block}.quest-stage .story-map-center{margin-bottom:24px}.quest-stage .story-node{margin:18px 0;animation:clueReveal .4s ease-out}.quest-stage .story-gaps>label{padding:30px 22px;font-size:25px;line-height:1.8;animation:clueReveal .35s ease-out}.quest-stage [hidden]{display:none!important}
.quest-arrive[data-quest-style="book"]{transform-origin:15% 50%;animation:bookReveal .7s ease-out both}.quest-arrive[data-quest-style="clue"]{animation:clueReveal .5s ease-out both}.quest-arrive[data-quest-style="puzzle"]{animation:puzzleReveal .5s ease-out both}
@keyframes bookReveal{from{opacity:0;transform:perspective(1300px) rotateY(-14deg) translateY(16px)}to{opacity:1;transform:none}}@keyframes clueReveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes puzzleReveal{from{opacity:0;transform:scale(.96) translateY(15px)}to{opacity:1;transform:none}}
@media(max-width:650px){body.question-focus .quest-stage{margin:22px 16px 45px;padding:28px 22px;min-height:0}body.question-focus .mission-stage{padding:0}body.question-focus .mission-stage .mission{padding:28px 22px}.quest-stage .choice{padding:15px}.quest-stage .story-gaps>label{font-size:21px;padding:18px 12px}}
@media(prefers-reduced-motion:reduce){.quest-stage,.quest-stage *{animation:none!important;transition:none!important}}

body.question-focus .mission-stage{display:block;width:calc(100% - 48px)}

body.question-focus .mission-stage .mission{width:100%;box-sizing:border-box}

.question-assist{position:relative;outline:none}.question-assist>.choice{width:100%;text-align:left}.question-assist>.question-zh{position:absolute;z-index:12;right:6px;top:calc(100% - 6px);margin:0;visibility:hidden;opacity:0;transition:opacity .15s;background:#fff9ea;border:1px solid #ceb67c;border-radius:10px;box-shadow:0 6px 20px #0002;max-width:min(360px,85vw);font-size:14px}.question-assist:hover>.question-zh,.question-assist:focus-within>.question-zh,.question-assist.touch-help>.question-zh{visibility:visible;opacity:1}.question-assist>.question-zh summary{padding:6px 12px;cursor:pointer}.question-assist>.question-zh[open]>div{padding:10px 14px;line-height:1.6}.question-sentence{display:inline;animation:sentenceAppear .55s ease both}.option-arrive{animation:sentenceAppear .45s ease both}@keyframes sentenceAppear{from{opacity:0;filter:blur(3px);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}.question-assist:focus-visible{outline:2px solid #ab844a;outline-offset:5px}@media(prefers-reduced-motion:reduce){.question-sentence,.option-arrive{animation:none!important}}

/* Game entrances: a separate, spacious action rather than inline text. */
button[data-view="levels"],button[data-story-finish],.level-card button[data-level]:not(:disabled){position:relative;display:flex;align-items:center;justify-content:center;gap:12px;float:none;clear:both;isolation:isolate;min-height:64px;height:auto;max-width:100%;width:100%;margin:22px 0 26px;padding:16px 24px;border:2px solid #e6bb61;border-radius:19px;background:linear-gradient(145deg,#34755d,#164b3d);color:#fff1c4;font-size:20px;font-weight:800;line-height:1.5;white-space:normal;overflow-wrap:anywhere;text-align:center;text-shadow:0 1px 2px #082e29;box-shadow:inset 0 2px 0 #ffffff30,0 6px 0 #103a30,0 10px 24px #153c3029;transition:transform .18s,box-shadow .18s}
button[data-view="levels"]::before,button[data-story-finish]::before,.level-card button[data-level]:not(:disabled)::before{content:'✦';display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;background:#f8d176;color:#335140;border:1px solid #ffebac;border-radius:50%;font-size:24px;text-shadow:none;box-shadow:0 0 15px #e8c76930}
button[data-view="levels"]::after,button[data-story-finish]::after,.level-card button[data-level]:not(:disabled)::after{content:'→';flex:0 0 auto;color:#fbd77f;font-size:25px}
button[data-view="levels"]:hover,button[data-story-finish]:hover,.level-card button[data-level]:not(:disabled):hover{transform:translateY(-2px);box-shadow:inset 0 2px 0 #ffffff30,0 8px 0 #103a30,0 14px 28px #153c3040}
.feedback>button[data-view="levels"]{margin-top:24px;margin-bottom:28px}.feedback>button[data-view="levels"]+p{clear:both;margin-top:24px;line-height:1.75}.actions>button[data-view="levels"]{flex-basis:100%;margin:12px 0 18px}.nav>button[data-view="levels"]{flex:1 1 150px;min-width:150px;width:auto;min-height:56px;margin:0 6px;padding:10px 14px;font-size:17px;border:1px solid #e6bb61}.nav>button[data-view="levels"]::before{width:26px;height:26px;flex-basis:26px;font-size:20px}.nav>button[data-view="levels"]::after{display:none}.level-card button[data-level]:not(:disabled){font-size:19px;padding:14px 16px;margin:20px 0 12px}.reflection-page>button[data-action="continue-chapter"]{margin-bottom:12px}
@media(max-width:480px){button[data-view="levels"],button[data-story-finish]{font-size:18px;padding:14px 16px;gap:10px}.nav>button[data-view="levels"]{font-size:16px;flex-basis:100%;margin:8px 4px}.level-card button[data-level]:not(:disabled){font-size:18px}}
@media(prefers-reduced-motion:reduce){button[data-view="levels"],button[data-story-finish],.level-card button[data-level]{transition:none!important}}

/* Prioritise checking an answer; defer is a quiet secondary action. */
.quest-stage .actions:has(>button[data-action="language-check"]){display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:center;margin-top:30px}
.quest-stage .actions>button[data-action="language-check"],.quest-stage .actions>button[data-action="check-discovery"],.quest-stage .actions>button[data-beginner-check]{order:-1;display:block;flex:1 0 100%;width:100%;min-height:64px;padding:16px 24px;font-size:21px;font-weight:800;line-height:1.5;border:2px solid #b38135;border-radius:17px;background:linear-gradient(135deg,#ffe8a7,#f5c656 60%,#eeb63f);color:#422e0f;box-shadow:inset 0 2px 0 #fff9,0 5px 0 #916629,0 9px 22px #b38c3020}
.quest-stage .actions:has(>button[data-action="language-check"])>button[data-view="levels"]{order:1;justify-self:center;display:inline-block;flex:none;width:auto;min-width:0;min-height:36px;margin:0;padding:5px 12px;border:0;border-radius:8px;background:transparent;box-shadow:none;color:#746b59;text-shadow:none;font-size:14px;font-weight:400;line-height:1.6;transform:none}
.quest-stage .actions:has(>button[data-action="language-check"])>button[data-view="levels"]::before,.quest-stage .actions:has(>button[data-action="language-check"])>button[data-view="levels"]::after{content:none;display:none}
.quest-stage .actions:has(>button[data-action="language-check"])>button[data-view="levels"]:hover{background:#8f795512;color:#493f30;text-decoration:underline;box-shadow:none;transform:none}
@media(max-width:480px){.quest-stage .actions>button[data-action="language-check"],.quest-stage .actions>button[data-action="check-discovery"],.quest-stage .actions>button[data-beginner-check]{font-size:19px;padding:14px 20px;min-height:60px}}

nav.toy-nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;width:min(940px,92%);padding:18px 24px;margin:18px auto 36px;border-radius:30px;background:linear-gradient(170deg,#795a3be8,#352b22ed);border:2px solid #c69d66;box-shadow:inset 0 3px 0 #d9b27c66,0 9px 0 #241f19,0 20px 38px #0005;overflow:visible}
nav.toy-nav>button.toy-entry{position:relative;display:grid;place-items:center;min-width:0;width:100%;min-height:104px;height:auto;margin:0;padding:5px;border:1px solid #c8aa774a;border-radius:24px;background:radial-gradient(ellipse at 35% 15%,#fbefd033,#332c2510 75%);box-shadow:inset 0 2px 0 #ffffff15,0 5px 0 #211e1766;color:#fff1cb;transform:none;transition:transform .2s,background .2s;overflow:visible}
nav.toy-nav>button.toy-entry::before,nav.toy-nav>button.toy-entry::after{display:none;content:none}.toy-art{display:block;width:min(100%,106px);aspect-ratio:1;pointer-events:none}.toy-art svg{width:100%;height:100%;overflow:visible}.toy-object{filter:drop-shadow(0 4px 1px #26172a38)}nav.toy-nav>button.toy-levels{background:radial-gradient(ellipse at 35% 15%,#749c8366,#294c3944);border-color:#ebc26d;box-shadow:inset 0 2px 0 #fff4,0 5px 0 #182d23,0 0 18px #e7c57626}
.toy-tooltip{position:absolute;z-index:20;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,8px);padding:8px 15px;border-radius:13px;border:1px solid #e0bd77;background:#fff6dc;color:#3c4633;font-size:15px;font-weight:700;line-height:1.4;white-space:nowrap;box-shadow:0 8px 20px #0004;opacity:0;visibility:hidden;pointer-events:none;text-shadow:none;transition:opacity .15s,transform .15s}.toy-tooltip::after{content:'';position:absolute;bottom:-6px;left:calc(50% - 5px);width:10px;height:10px;background:#fff6dc;transform:rotate(45deg);border-bottom:1px solid #e0bd77;border-right:1px solid #e0bd77}nav.toy-nav>button.toy-entry:hover,nav.toy-nav>button.toy-entry:focus-visible{transform:translateY(-6px);background-color:#d7bd7133}nav.toy-nav>button.toy-entry:hover .toy-tooltip,nav.toy-nav>button.toy-entry:focus-visible .toy-tooltip,.toy-touch-ready .toy-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}nav.toy-nav>button.toy-entry:active{transform:translateY(1px)}
@media(max-width:650px){nav.toy-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;width:min(470px,92%)}nav.toy-nav>button.toy-entry{min-height:88px}.toy-art{width:85px}.toy-tooltip{font-size:13px;padding:7px 10px}}
@media(prefers-reduced-motion:reduce){nav.toy-nav>button.toy-entry,.toy-tooltip{transition:none!important}}

header{gap:14px;padding-top:18px;padding-bottom:18px}header>div:last-child{gap:10px}header button.top-toy{position:relative;display:grid;place-items:center;width:49px;height:49px;min-width:49px;margin:0;padding:4px;border:1px solid #dfc18166;border-radius:16px;background:linear-gradient(145deg,#57745bec,#243f34ef);box-shadow:inset 0 2px 1px #ffffff25,0 4px 0 #142c23,0 6px 14px #0002;overflow:visible}.top-toy-art{display:block;font:30px/1.1 'Segoe UI Emoji','Apple Color Emoji',sans-serif;filter:drop-shadow(0 3px 1px #0004);pointer-events:none}header button.top-toy .toy-tooltip{top:calc(100% + 12px);bottom:auto;z-index:40;font-family:system-ui,sans-serif;letter-spacing:0}header button.top-toy .toy-tooltip::after{top:-6px;bottom:auto;transform:rotate(225deg)}header button.top-toy:last-child .toy-tooltip{left:auto;right:0;transform:translate(0,8px)}header button.top-toy:hover .toy-tooltip,header button.top-toy:focus-visible .toy-tooltip,header button.top-toy.toy-touch-ready .toy-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}header button.top-toy:last-child:hover .toy-tooltip,header button.top-toy:last-child:focus-visible .toy-tooltip,header button.top-toy:last-child.toy-touch-ready .toy-tooltip{transform:translate(0,0)}header button.top-toy:last-child .toy-tooltip::after{left:auto;right:18px}header button.top-toy:hover{transform:translateY(-2px)}header button.top-toy.music-off .top-toy-art{opacity:.65}header:has(.top-toy:hover),header:has(.toy-touch-ready){opacity:1!important}
@media(max-width:650px){header{align-items:center;flex-wrap:wrap;padding:16px 18px}header>div:last-child{gap:9px}header button.top-toy{width:43px;height:43px;min-width:43px;border-radius:14px}.top-toy-art{font-size:27px}header .brand small{display:none}}

.home:not(.mission-stage)>.mission>i,.home:not(.mission-stage)>.mission>button[data-view="journal"]{display:none}

.chapter-name{position:relative;display:inline-block;max-width:100%;outline:none}.chapter-name .chapter-translation{position:absolute;z-index:25;top:calc(100% + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:min(300px,80vw);padding:9px 15px;border:1px solid #d4b67c;border-radius:12px;background:#fff8e6;box-shadow:0 6px 20px #0002;color:#48503b;font:16px/1.5 system-ui,sans-serif;opacity:0;visibility:hidden;pointer-events:none;text-align:center}.chapter-name:hover .chapter-translation,.chapter-name:focus .chapter-translation,.chapter-name:focus-within .chapter-translation{opacity:1;visibility:visible}.chapter-name:focus-visible{outline:2px solid #b99654;outline-offset:5px}

.question-assist>.question-direct-translation{display:none;margin:5px 0 14px;padding:9px 13px;border-left:3px solid #c6a569;border-radius:0 9px 9px 0;background:#efe3c366;color:#60563f;font:16px/1.65 system-ui,sans-serif;text-align:left;overflow-wrap:anywhere}.question-assist:hover>.question-direct-translation,.question-assist:focus-visible>.question-direct-translation,.question-assist:has(:focus-visible)>.question-direct-translation,.question-assist.touch-help>.question-direct-translation{display:block}.mission-question .question-direct-translation{text-align:center;border-left:0;border-radius:9px}

.hover-meaning{position:relative;display:inline-block;max-width:100%;outline:none}.hover-meaning>.hover-meaning-zh{display:none;margin-top:6px;color:#72644e;font:14px/1.6 system-ui,sans-serif;letter-spacing:0;text-transform:none;font-weight:400;text-shadow:none}.hover-meaning:hover>.hover-meaning-zh,.hover-meaning:focus>.hover-meaning-zh{display:block}.hover-meaning:focus-visible{outline:2px solid #b99654;outline-offset:4px}.badge .hover-meaning-zh{font-size:12px}

/* Reserve translation space so hover never changes the page layout. */
.question-assist>.question-direct-translation{display:block;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .14s ease}
.question-assist:hover>.question-direct-translation,.question-assist:focus-visible>.question-direct-translation,.question-assist:has(:focus-visible)>.question-direct-translation,.question-assist.touch-help>.question-direct-translation{display:block;visibility:visible;opacity:1}
.hover-meaning>.hover-meaning-zh{display:block;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .14s ease}
.hover-meaning:hover>.hover-meaning-zh,.hover-meaning:focus>.hover-meaning-zh{display:block;visibility:visible;opacity:1}
@media(prefers-reduced-motion:reduce){.question-assist>.question-direct-translation,.hover-meaning>.hover-meaning-zh{transition:none}}


button[data-action="enter-story"]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}button[data-action="enter-story"]>.action-translation{display:block;visibility:hidden;opacity:0;font:14px/1.5 system-ui,sans-serif;font-weight:400;color:#66512e;transition:opacity .14s ease}button[data-action="enter-story"]:hover>.action-translation,button[data-action="enter-story"]:focus-visible>.action-translation{visibility:visible;opacity:1}@media(prefers-reduced-motion:reduce){button[data-action="enter-story"]>.action-translation{transition:none}}

.home:not(.mission-stage) button[data-view="read"]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.start-reading-zh{display:block;visibility:hidden;opacity:0;font:14px/1.5 system-ui,sans-serif;font-weight:400;color:#66512e;transition:opacity .14s ease}button[data-view="read"]:hover>.start-reading-zh,button[data-view="read"]:focus-visible>.start-reading-zh{visibility:visible;opacity:1}@media(prefers-reduced-motion:reduce){.start-reading-zh{transition:none}}

/* Compact, stable translation slots. */
.hover-meaning>.hover-meaning-zh{margin-top:3px;font-size:12px;line-height:1.4;color:#655a47}.badge .hover-meaning-zh{font-size:12px;line-height:1.35;margin-top:2px}
.question-assist>.question-direct-translation{margin:3px 0 7px;padding:3px 8px;font-size:12px;line-height:1.5;color:#655a47}
button[data-action="enter-story"],.home:not(.mission-stage) button[data-view="read"]{gap:2px;padding-top:12px;padding-bottom:10px}
button[data-action="enter-story"]>.action-translation,.start-reading-zh{font-size:12px;line-height:1.4;color:#5c4929}
.chapter-name .chapter-translation{font-size:12px;line-height:1.5;padding:5px 10px;top:calc(100% + 4px)}
.mission-stage .mission h1{margin-top:8px;margin-bottom:12px}.mission-stage .mission-question{padding-top:18px;padding-bottom:18px}


button:has(>.answer-translation){display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px!important;padding-top:12px!important;padding-bottom:10px!important}.answer-translation{display:block;visibility:hidden;opacity:0;pointer-events:none;font:12px/1.4 system-ui,sans-serif;font-weight:400;color:#5c4929;transition:opacity .14s ease}button:hover>.answer-translation,button:focus-visible>.answer-translation{visibility:visible;opacity:1}@media(prefers-reduced-motion:reduce){.answer-translation{transition:none}}


.question-assist.manual-question-help>.question-direct-translation{visibility:hidden!important;opacity:0!important}.question-assist.manual-question-help.translation-open>.question-direct-translation{visibility:visible!important;opacity:1!important}.manual-question-help>h2,.manual-question-help>legend{padding-right:42px}.manual-question-help>.choice{padding-right:54px!important}.question-assist>.question-help-button{position:absolute;right:8px;top:14px;width:28px;height:28px;min-height:28px;margin:0;padding:0;border:1px solid #bda878;border-radius:50%;background:#f6eedb;color:#776446;font:600 16px/26px system-ui,sans-serif;text-align:center;box-shadow:none;z-index:2}.question-assist>.question-help-button:hover{background:#eedfb9}.question-assist>.question-help-button[aria-expanded="true"]{background:#e2d3aa;color:#3f4e36}

/* Reserve a small Chinese gloss beneath the optional thought input. */
.thought-input-translation{display:block;visibility:hidden;opacity:0;margin-top:3px;font:12px/1.4 system-ui,sans-serif;color:#655a47;pointer-events:none}.thought-input:hover>.thought-input-translation,.thought-input:focus-within>.thought-input-translation{visibility:visible;opacity:1}

.student-ui-gloss{display:inline-block;max-width:100%;vertical-align:top}.student-ui-translation{display:block;visibility:hidden;opacity:0;margin-top:3px;font:12px/1.4 system-ui,sans-serif;font-weight:400;letter-spacing:0;text-transform:none;color:inherit;pointer-events:none}.student-ui-gloss:hover>.student-ui-translation,.student-ui-gloss:focus-visible>.student-ui-translation,button:hover>.student-ui-gloss>.student-ui-translation,button:focus-visible>.student-ui-gloss>.student-ui-translation,summary:hover>.student-ui-gloss>.student-ui-translation,summary:focus-visible>.student-ui-gloss>.student-ui-translation{visibility:visible;opacity:.85}

/* Prominent game invitation and toy controller entrances. */
.arcade-invitation{display:flex;align-items:center;gap:20px;padding:14px 24px;margin:12px 0 10px;border:1px solid #d9ad57;border-radius:24px;background:linear-gradient(120deg,#e2f0dc,#fff0b9);box-shadow:inset 0 2px 0 #fff9,0 5px 0 #cfb98433}.arcade-invitation-art{width:94px;flex:0 0 94px;filter:drop-shadow(0 5px 3px #2d4c4530)}.arcade-invitation-art svg{display:block;width:100%}.arcade-invitation h3{margin:0;color:#215643;font-size:clamp(22px,3vw,30px)}.arcade-invitation p{margin:5px 0 0}.arcade-unlock-info{font-size:14px;margin:10px 0 18px}.arcade-unlock-info summary{cursor:pointer}.arcade-page .level-card{display:flex;flex-direction:column}.arcade-page .level-card.locked{color:#536252;background:linear-gradient(150deg,#fff8e9,#e7e6cf)}.arcade-play-area{margin-top:auto;text-align:center;padding-top:16px}.arcade-next-step{font-size:15px;line-height:1.5;min-height:68px;margin:0 0 4px;color:#395844}.arcade-page .level-card button.arcade-play[data-level]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:174px;max-width:100%;min-height:162px;margin:8px auto 16px!important;padding:4px 12px 22px!important;border:2px solid #cfad61;border-radius:29px;background:linear-gradient(145deg,#fff5c8,#e7c56d);box-shadow:inset 0 3px 0 #fff9,0 7px 0 #b38c39,0 12px 18px #59472222;color:#234f49;text-shadow:none;transition:transform .16s,box-shadow .16s}.level-card .arcade-play::before,.level-card .arcade-play::after{display:none!important}.arcade-controller{display:block;position:relative;width:112px;height:112px;filter:drop-shadow(0 5px 2px #325c4c33)}.arcade-controller svg{width:100%;height:100%}.arcade-status{position:absolute;right:-4px;bottom:7px;width:32px;height:32px;display:grid;place-items:center;border:2px solid #fff1b5;border-radius:50%;background:#376c55;color:#fff8d9;font:16px system-ui;box-shadow:0 3px 0 #244839}.arcade-play-label{font:700 17px/1.3 system-ui}.arcade-tooltip{position:absolute;bottom:4px;left:0;right:0;font:12px/1.4 system-ui;visibility:hidden;opacity:0;color:#294b39}.arcade-play:hover .arcade-tooltip,.arcade-play:focus-visible .arcade-tooltip{visibility:visible;opacity:1}.arcade-page .level-card button.arcade-play[data-level].is-ready{background:linear-gradient(145deg,#e6f6bc,#90ce96);border-color:#78a475;box-shadow:inset 0 3px 0 #fff9,0 7px 0 #467e58,0 12px 20px #32634130}.level-card .arcade-play.is-locked{cursor:default}.level-card .arcade-play:hover{transform:translateY(-2px)}.level-card .arcade-play:focus-visible{outline:3px solid #326b69;outline-offset:5px}@media(max-width:540px){.arcade-invitation{gap:12px;padding:12px}.arcade-invitation-art{width:66px;flex-basis:66px}}@media(prefers-reduced-motion:reduce){.arcade-page .level-card button.arcade-play[data-level]{transition:none}}

.arcade-page .level-card h3{margin:10px 0 12px}.arcade-page .level-card>p{margin:10px 0;line-height:1.5}.arcade-page .level-card .arcade-next-step{min-height:0;text-align:center;font-weight:600}.arcade-page .level-card .stars{margin:2px 0}.arcade-unlock-info summary{display:flex;align-items:baseline;gap:8px}.arcade-unlock-info summary::before{content:"▸"}.arcade-unlock-info[open] summary::before{content:"▾"}

.saved-adventure{padding:14px 18px;margin:14px 0;border:1px solid #cfaf65;border-radius:18px;background:#e6eddc}.saved-adventure p{font-size:15px!important;margin:0 0 10px}.saved-adventure small{display:block;margin-top:10px;font-size:12px}.saved-adventure .primary{margin:0}

.character-match-name{text-align:center;font:700 28px Georgia;color:#315e4e;padding:14px;border:2px dashed #bcaa75;border-radius:20px;background:#f3ebd2;margin:12px 0}.character-match-name span{color:#bd8a31;padding:0 20px}.story-evidence-line{border-left:5px solid #c6a45e!important;background:#fff9e9!important}.scene-pool,.scene-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.scene-tile,.scene-slot{min-width:0;padding:10px;border:2px solid #ccb37c;border-radius:17px;background:#fff9e8;color:#315646;box-shadow:0 4px 0 #bdab7933}.scene-tile{cursor:grab}.scene-tile.picked,.word-tile.picked{outline:3px solid #447962;outline-offset:2px}.scene-tile .story-frame,.scene-slot .story-frame{width:100%;min-height:0;pointer-events:none}.scene-slot{border-style:dashed}.scene-slot strong{display:block;margin-bottom:10px}.empty-picture{min-height:110px;display:grid;place-items:center;font-size:40px;color:#a2936c}.word-tile{padding:12px 24px;border:2px solid #c7a35f;border-radius:14px;background:linear-gradient(#fff3c5,#edc66b);box-shadow:0 4px 0 #b58b3e;color:#284f43;font-weight:700;cursor:grab}.word-slot{display:inline-block;min-width:100px;padding:6px 12px;margin:0 6px;border:2px dashed #638775;border-radius:12px;background:#edf2dc;color:#23533e;font:inherit}.story-gap-item>.story-frame{width:min(100%,530px);margin:12px auto 20px}.gap-sentence{font:24px/1.8 Georgia;padding:16px;border-radius:16px;background:#fff8e6}.gap-sentence>b{margin-right:12px;font:14px system-ui;color:#99834c}.interaction-notice{min-height:44px}.story-order-game .primary{width:100%}@media(max-width:600px){.scene-pool,.scene-slots{gap:6px}.scene-tile,.scene-slot{padding:5px}.empty-picture{min-height:70px}.word-tile{padding:10px 16px}.gap-sentence{font-size:20px}}

.home .reading-progress-line,.home .saved-progress-line{text-align:center;line-height:1.45}.home .saved-adventure .saved-progress-line{font-size:14px!important}.home .reading-progress-line>.hover-meaning,.home .saved-progress-line>.hover-meaning{vertical-align:top}

/* Keep disclosure arrows aligned with the English line, not the hidden translation. */
main details:not(.question-zh)>summary{display:flex;align-items:flex-start;gap:8px;list-style:none;line-height:1.5;cursor:pointer}
main details:not(.question-zh)>summary::-webkit-details-marker{display:none}
main details:not(.question-zh)>summary::marker{content:""}
main details:not(.question-zh)>summary::before{content:"▸";display:block;flex:0 0 .65em;line-height:1.5;color:currentColor}
main details[open]:not(.question-zh)>summary::before{content:"▾"}
main details:not(.question-zh)>summary>.hover-meaning,main details:not(.question-zh)>summary>.student-ui-gloss{display:block;min-width:0;line-height:1.5}
main details:not(.question-zh)>summary:hover .hover-meaning-zh,main details:not(.question-zh)>summary:focus-visible .hover-meaning-zh{visibility:visible;opacity:1}

.arcade-page .level-progress-line{font-size:13px;line-height:1.5}.arcade-page .level-progress-line>.hover-meaning{white-space:nowrap;vertical-align:top}.arcade-page .level-progress-line .hover-meaning-zh{white-space:normal}

/* Classic arcade controls */
.classic-goal{display:flex;justify-content:space-between;gap:16px;align-items:start;margin:10px 0 16px;padding:12px 18px;border-radius:16px;background:#e9edd6}
.classic-goal>span:last-child{font-size:13px;color:#64766c}
.classic-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0}
.classic-controls .controls{display:flex;gap:8px;margin:0;flex-wrap:wrap}
.classic-controls [data-key]{min-width:64px;min-height:62px;touch-action:none;user-select:none;box-shadow:0 4px 0 #ae985c}
.classic-controls [data-key] small{display:block;font-size:11px;line-height:1.2}
.classic-arcade canvas{display:block;width:100%;height:auto;touch-action:none;border-radius:16px}
@media(max-width:600px){.classic-goal{flex-direction:column;gap:4px}.classic-controls{justify-content:center}.classic-controls [data-key]{min-width:54px;padding:8px}.classic-arcade{padding:18px}}

.chapter-locked{opacity:.65;background:#e9e3d0;cursor:default}.chapter-locked h3{color:#63736b}

.learning-position{display:flex;justify-content:space-between;align-items:start;gap:14px;border-bottom:1px solid #c9b88e66;padding:0 0 6px;margin:0 0 14px;font-size:12px;color:#62746a;letter-spacing:.2px}
.learning-position strong{font-size:13px;color:#315d50}
.learning-position .hover-meaning-zh{font-size:10px;margin-top:1px;line-height:1.2}
.learning-next-card{margin:14px 0 20px;padding:14px 18px;border:1px solid #c2b77d;border-radius:16px;background:#e9edd9}
.learning-next-card p{margin:0 0 6px;font-size:15px}.learning-next-card .primary{width:auto;min-width:250px;font-size:18px;padding:10px 20px}
@media(max-width:520px){.learning-position{gap:8px;font-size:11px}.learning-next-card .primary{width:100%;min-width:0}}

.next-step-glow{outline:3px solid #e4af42;outline-offset:4px;animation:next-step-glow 1.8s ease-in-out 3} @keyframes next-step-glow{0%,100%{box-shadow:inset 0 2px 1px #fff8,0 5px 0 #896129,0 0 0 0 #f8c85433}50%{box-shadow:inset 0 2px 1px #fff8,0 5px 0 #896129,0 0 22px 6px #f3c24a88}} @media(prefers-reduced-motion:reduce){.next-step-glow{animation:none}}

.whole-reading-bar{display:flex;justify-content:flex-end;margin:0 0 10px}.whole-reading-bar button{font-size:14px;padding:7px 14px;min-width:175px}.whole-reading-bar .answer-translation{font-size:11px}

.whole-reading-bar{gap:8px;flex-wrap:wrap}.whole-reading-bar [data-whole-restart]{min-width:150px}

.reread-entry{position:relative;font-size:28px;line-height:1;min-width:48px;min-height:48px}.reread-entry .toy-tooltip{pointer-events:none}

#sentenceDock .sentence-next{background:#f8d887;border-color:#b78c3e;font-weight:600}#sentenceDock .sentence-next:disabled{background:#eee8d9;opacity:.65}

.m-medal{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0;width:190px;height:190px;border:10px double #b57b20;border-radius:50%;background:radial-gradient(circle at 32% 24%,#fff7c4 0%,#ffe58d 26%,#dea335 65%,#9c6617 100%);box-shadow:inset 0 0 0 4px #fff0a266,inset -8px -10px 18px #8e550b55,0 12px 0 #79511d,0 20px 36px #6f430a55;color:#785012;text-shadow:1px 2px #fff4b3;}
.medal-letter{font:bold italic 104px/.95 Georgia,serif;letter-spacing:-12px;padding-right:12px}.medal-stars{font-size:19px;letter-spacing:6px}.medal-inscription{font:700 8px system-ui;letter-spacing:1.6px;margin-top:12px}
.book-medal-card{display:flex;align-items:center;gap:28px;margin-top:24px;padding:24px;background:#f7edcf;border:1px solid #bc9853;border-radius:20px}.book-medal-card .primary{width:auto;font-size:17px}.book-medal-card.waiting .m-medal{filter:grayscale(.8);opacity:.5}
dialog.medal-celebration{position:fixed;width:min(620px,94vw);max-width:620px;max-height:92dvh;overflow:auto;text-align:center;padding:34px 30px;background:radial-gradient(ellipse at 50% 24%,#fff6c4,#f7e5b7 54%,#dec58e);border:3px solid #d2a345;isolation:isolate;}
.medal-celebration::backdrop{background:#081e20e8}.medal-close{position:absolute;right:12px;top:12px;padding:3px 11px;font-size:24px;z-index:3}.medal-celebration .m-medal{margin:30px auto;animation:medal-rise 1.6s cubic-bezier(.2,.8,.2,1) both}.medal-celebration h1{margin:10px 0;font-size:38px}.medal-celebration h2{margin:4px 0;font-size:25px}.medal-celebration .primary{font-size:18px;padding:12px}.medal-celebration [data-replay-medal]{margin-top:14px;font-size:13px}.medal-message{animation:medal-words .7s 1.4s both}.medal-sparks{position:absolute;top:170px;left:50%;pointer-events:none;z-index:-1}.medal-sparks i{position:absolute;color:#bd8019;font-size:20px;font-style:normal;animation:medal-spark 2.5s var(--delay) both;transform:rotate(var(--angle)) translateY(-140px)}
@keyframes medal-rise{0%{opacity:0;transform:translateY(55px) scale(.3) rotateY(-150deg)}65%{opacity:1;transform:translateY(-8px) scale(1.08) rotateY(12deg)}100%{opacity:1;transform:none}}
@keyframes medal-words{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes medal-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(-230px) scale(.2)}30%{opacity:1}55%{opacity:1;transform:rotate(var(--angle)) translateY(-65px) scale(.6)}100%{opacity:0;transform:rotate(var(--angle)) translateY(-220px) scale(1.2)}}
@media(max-width:540px){.book-medal-card{flex-direction:column;text-align:center}.medal-celebration .m-medal{width:150px;height:150px;margin:20px auto}.medal-celebration .medal-letter{font-size:80px}.medal-celebration{padding:25px 18px}}
@media(prefers-reduced-motion:reduce){.medal-celebration .m-medal,.medal-message,.medal-sparks i{animation:none}.medal-sparks{display:none}}

.chapter-link{position:relative;display:block;padding-bottom:64px!important}.chapter-link>.eyebrow{display:block}.chapter-link>.chapter-name{display:block!important;margin-top:10px}.chapter-passed-stamp{position:absolute;right:16px;bottom:15px;display:inline-block;padding:3px 12px;border:3px double #24745b;border-radius:7px;color:#24745b;font:900 19px/1.2 system-ui;letter-spacing:3px;transform:rotate(-9deg);opacity:.9;background:#e3f0d777;pointer-events:none;animation:passed-stamp .45s ease-out both}
@keyframes passed-stamp{from{opacity:0;transform:scale(1.3) rotate(-15deg)}to{opacity:.9;transform:scale(1) rotate(-9deg)}}
@media(prefers-reduced-motion:reduce){.chapter-passed-stamp{animation:none}}

.medal-music-toggle{display:block;margin:0 auto 12px;font-size:12px;padding:5px 12px}.medal-celebration .medal-arrival{margin-top:8px}

.sentence-text.original-handwriting{display:block!important;margin:18px auto!important;text-align:center}.original-handwriting img{display:inline-block;max-width:100%;height:auto;mix-blend-mode:multiply;vertical-align:middle}

/* Keep chapter titles on their own line on chapter home screens. */
.home .mission > .eyebrow{display:block}
.home .mission > .chapter-name{display:block;margin:12px 0}

a.register-cta{display:block;width:100%;box-sizing:border-box;text-align:center;text-decoration:none;line-height:1.45;white-space:normal}
