@font-face{font-family:Book;src:url('assets/xiaowei.ttf');unicode-range:U+0000-56DD,U+56DF-10FFFF}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{color:#33483e;background:#f5f2e9;font-family:Book,'Songti SC',serif}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid #835797;outline-offset:5px}button:disabled{opacity:.32;cursor:default}header{position:fixed;top:0;left:0;width:100%;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:27px 4.7%;font:14px system-ui,sans-serif;gap:20px}header nav{display:flex;gap:25px}header nav button{padding:9px 0}.brand{text-decoration:none;color:#5c705e;font-size:22px;white-space:nowrap}.brand span{font-size:13px;letter-spacing:2px;margin-left:8px}#world{position:fixed;inset:0}.scene{position:absolute;inset:0;overflow:hidden;visibility:hidden;opacity:0;isolation:isolate}.scene.active,.scene.entering,.scene.leaving{visibility:visible}.scene.active{opacity:1}.scene.entering{animation:arrive 1100ms cubic-bezier(.23,.74,.21,1) forwards}.scene.leaving{animation:depart 1100ms cubic-bezier(.23,.74,.21,1) forwards;pointer-events:none}.scene.leaving .copy{opacity:0}.art{position:absolute;inset:0;touch-action:none;user-select:none;cursor:grab;overflow:hidden}.art:active{cursor:grabbing}.wash{position:absolute;width:90vw;height:100vh;right:-15%;top:6%;background:radial-gradient(ellipse at 56% 58%,#c7d8b66b,transparent 64%);pointer-events:none}.sky-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 82% 22%,#9cbfce70,transparent 60%)}.scene[data-id=sky] .sky-wash{background:radial-gradient(ellipse at 78% 12%,#b4b7dcb0,transparent 65%)}.scene[data-id=mother] .sky-wash{background:radial-gradient(ellipse at 78% 28%,#ead49a85,transparent 70%)}.layer{position:absolute;pointer-events:none;transform:translate(var(--dx,0px),var(--dy,0px));will-change:transform}.mountains{width:68%;right:-3%;bottom:18%;opacity:.34}.bamboo{height:92%;right:-10%;bottom:-13%;opacity:.55}.flowers{width:70%;right:-2%;bottom:1%;}.school-art{width:64%;right:0;bottom:7%;mix-blend-mode:multiply}.scene[data-id=dance] .flowers{bottom:5%;width:75%;right:-5%}.scene[data-id=sky] .flowers{width:65%;bottom:-10%;right:-1%}.scene[data-id=mother] .flowers{width:77%;bottom:-7%;right:-7%}.scene[data-id=school] .bamboo{opacity:.19}.stars{position:absolute;top:14%;right:5%;width:44%;height:38%;opacity:0;transition:opacity 1.2s}.stars i{position:absolute;font-style:normal;color:#fef9db;font-size:23px}.scene[data-id=sky] .stars,.scene[data-id=mother] .stars{opacity:1}.rain{position:absolute;inset:13% 0 12% 46%;pointer-events:none;opacity:.3}.rain i{position:absolute;width:1px;height:20px;background:#779eab;transform:rotate(15deg)}.scene[data-id=school] .rain,.scene[data-id=sky] .rain,.scene[data-id=mother] .rain{display:none}.copy{position:absolute;z-index:5;top:19%;left:7.5%;width:33%;max-width:510px;max-height:67%;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;transition:opacity .22s}.eyebrow{font:11px system-ui;letter-spacing:2px;color:#727b6f;margin:0 0 20px}.copy h1{font-size:clamp(42px,5vw,76px);line-height:1.15;letter-spacing:5px;font-weight:400;margin:0 0 18px}.author{font-size:15px;margin:0 0 36px;color:#7c806c}.preview-label{font:11px system-ui;color:#7c7169;line-height:1.8;margin-bottom:22px}.location{font:12px system-ui;color:#68776b;line-height:1.8;margin:0 0 18px}.passage{font-size:clamp(25px,2.8vw,40px);line-height:1.65;white-space:pre-line;margin:0 0 20px;letter-spacing:2px}.guide{font-size:clamp(18px,1.55vw,23px);line-height:1.95;white-space:pre-line;margin:8px 0 24px}.small-label{font:10px system-ui;color:#777e72;letter-spacing:1px}.explore{font-size:14px;border-bottom:1px solid #889977;padding:8px 0;margin:8px 0 12px}.evidence{font-size:14px;line-height:1.8;color:#5c6d60;margin:10px 0}.evidence summary{cursor:pointer}.evidence p{margin:10px 0}.mode{position:absolute;bottom:16%;right:6%;font:11px system-ui;color:#647568;letter-spacing:1px;pointer-events:none}.scene[data-id=rain] .mode{bottom:18%}footer{position:fixed;bottom:0;left:0;width:100%;display:flex;align-items:center;gap:25px;padding:25px 4.7%;z-index:20;font:12px system-ui;background:linear-gradient(transparent,#f5f2e9 85%)}#position{min-width:145px}#dots{display:flex;gap:12px}#dots button{width:10px;height:10px;border:1px solid #83957d;border-radius:50%;padding:0}#dots button[aria-current=true]{background:#6a815c;box-shadow:0 0 0 4px #81936c1a}.gesture{margin-left:auto;color:#68776b;font-size:11px}.arrows{display:flex;gap:8px}.arrows button{padding:5px 10px;font-size:17px}.art.hidden-art{opacity:0}.art.replay .flowers{animation:rush 1400ms cubic-bezier(.2,.6,.3,1) both}.art.wind .bamboo{animation:wind 2200ms ease-in-out both}.art.look-up .stars{opacity:1}.art.look-up .flowers{translate:0 22px}.art.peek .school-art{translate:0 -28px;transition:translate 1s}.art.peek .bamboo{opacity:.1}.audio-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font:12px system-ui;color:#717567;margin:8px 0 18px}.audio-row button{border-bottom:1px solid;padding:7px 0}.audio-row p{margin:0;line-height:1.7}.reading{color:#7c4897}dialog{width:min(920px,94vw);max-height:88dvh;border:0;background:#f8f6ef;color:#33483e;padding:45px 7%;box-shadow:0 20px 120px #253b3a33;overscroll-behavior:contain}dialog::backdrop{background:#34443d66;backdrop-filter:blur(6px)}#close{position:sticky;top:0;float:right;background:#f8f6ef;font:28px system-ui;width:36px;height:36px;z-index:2}dialog h2{font-weight:400;font-size:34px;margin:8px 0 16px}dialog h3{font-weight:400;font-size:25px}dialog p{line-height:1.95}dialog .intro{font-size:14px;color:#687567;max-width:600px}.tabs{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.tabs button{padding:10px 15px;border:1px solid #bdc6b5;border-radius:30px;font-size:15px}.tabs button[aria-pressed=true]{background:#526b50;color:#fff;border-color:#526b50}.word ruby{font-size:48px;letter-spacing:6px}.word rt{font:15px system-ui;letter-spacing:1px}.word p{font-size:18px}.word-note{border-left:2px solid #bcaa73;padding-left:18px;margin:20px 0}.learning-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:25px 0}.learning-cards button{text-align:left;border-top:1px solid #bac3ac;padding:20px 5px}.learning-cards b{display:block;font-weight:400;font-size:21px;line-height:1.6}.learning-cards span{display:block;font-size:13px;margin-top:7px;color:#647360}.dossier-icon{font-size:34px!important;color:#8a936d!important}.back{border-bottom:1px solid;padding:6px 0}.levels details{border-bottom:1px solid #d8ddcf;padding:18px 0}.levels summary{cursor:pointer;font-size:20px}.levels p{font-size:19px}.source{font:12px system-ui;margin:25px 0}.source a{color:#65744f}.diagram{width:100%;height:155px;margin:20px 0;color:#647658}.diagram svg{height:100%;width:100%}.diagram text{font:15px system-ui;fill:#425746}.prompt{font-size:23px;line-height:1.8}.task-hint{font-size:16px;color:#6e6752;line-height:1.8}.task-actions{display:flex;gap:12px;margin:18px 0;flex-wrap:wrap}.task-actions button,.advance{border:1px solid #9ea991;padding:10px 17px;border-radius:30px}.task-actions button.active{background:#e1e8d8}.advance{background:#526b50;color:#fff;margin:20px 0}textarea{width:100%;min-height:100px;padding:16px;font:17px Book,serif;color:#33483e;background:#ffffff66;border:1px solid #c6cebc;line-height:1.8;resize:vertical}.self-record{font:13px system-ui;line-height:1.8}.record{font-size:14px;background:#e9edde;padding:12px 16px}.character{padding:15px 0;border-bottom:1px solid #d4dacb}.character strong{font-size:38px;font-weight:400}.character span{margin-left:18px}#notice{position:fixed;bottom:86px;left:50%;translate:-50% 0;background:#405344;color:#fff;padding:12px 22px;border-radius:20px;font:13px system-ui;z-index:40;max-width:85vw;opacity:0;pointer-events:none;transition:opacity .2s}#notice.show{opacity:1}@keyframes arrive{from{opacity:0;transform:translateY(calc(var(--dir,1)*65px))}to{opacity:1;transform:none}}@keyframes depart{to{opacity:0;transform:translateY(calc(var(--dir,1)*-55px))}}@keyframes rush{from{opacity:0;translate:-45px 20px}to{opacity:1;translate:0 0}}@keyframes wind{0%,100%{rotate:0deg}45%{rotate:-2deg}75%{rotate:1deg}}
.art{background:#f5f2e9}.scene[data-id=school] .mountains,.scene[data-id=school] .bamboo{display:none}
@media(max-width:760px){header{padding:16px 6%;gap:10px}.brand span{font-size:10px;letter-spacing:0}.brand{font-size:20px}header nav{gap:15px}header nav button{font-size:12px}.copy{left:8%;top:13%;width:84%;max-width:none;max-height:42%}.copy h1{font-size:43px;margin-bottom:8px}.eyebrow{font-size:10px;margin-bottom:12px}.author{margin-bottom:14px;font-size:12px}.preview-label{font-size:10px;margin-bottom:10px}.location{font-size:10px;margin-bottom:10px}.passage{font-size:27px;margin:0 0 9px;letter-spacing:1px}.guide{font-size:18px;line-height:1.65;margin:7px 0 8px}.small-label{font-size:9px}.explore{font-size:12px;margin:3px 0 5px}.evidence{font-size:12px;margin:5px 0}.audio-row{font-size:10px;margin:5px 0}.mountains{width:120%;right:-19%;bottom:18%;opacity:.27}.bamboo{height:52%;right:-19%;bottom:3%;opacity:.43}.flowers,.scene[data-id=dance] .flowers{width:115%;right:-8%;bottom:9%}.school-art{width:102%;right:-1%;bottom:12%}.scene[data-id=sky] .flowers,.scene[data-id=mother] .flowers{width:117%;right:-8%;bottom:7%}.stars{top:51%;height:20%;width:85%;right:4%}.rain{inset:49% 0 15% 8%}.mode,.scene[data-id=rain] .mode{bottom:10%;right:7%;font-size:9px}.wash{top:32%;height:70vh;right:-18%;width:120vw}.sky-wash{background:radial-gradient(ellipse at 70% 75%,#a7c7d568,transparent 65%)}footer{padding:18px 6%;gap:14px;flex-wrap:wrap}.gesture{display:none}#position{min-width:110px;font-size:10px}#dots{gap:12px}#dots button{width:8px;height:8px}.arrows{margin-left:auto;gap:0}.arrows button{font-size:14px;padding:5px 7px}dialog{padding:25px 7%;max-height:90dvh}dialog h2{font-size:29px}.learning-cards{grid-template-columns:1fr}.learning-cards button{padding:12px 4px}.learning-cards .dossier-icon{float:left;margin-right:16px}.tabs{gap:8px}.tabs button{padding:8px 12px;font-size:13px}.levels p{font-size:17px}.prompt{font-size:20px}}
@media(max-height:620px) and (min-width:761px){.copy{top:15%;max-height:68%}.copy h1{font-size:43px}.author{margin-bottom:15px}.guide{font-size:17px}.passage{font-size:29px}.preview-label{margin-bottom:10px}header{padding-top:14px}footer{padding-bottom:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.layer{transform:none!important}.scene.entering{opacity:1}.scene.leaving{opacity:0}}

/* Keep original line breaks and layout while highlighting the spoken phrase. */
.passage .narration-speaking{background:#e6c98838;box-decoration-break:clone;-webkit-box-decoration-break:clone;border-radius:3px}.passage.reading{background:#e6c98818}

.scene[data-kind=reading] .audio-row:not([hidden]){display:flex;align-items:center;gap:18px;flex-wrap:wrap}.scene[data-kind=reading] .audio-row button{padding:8px 0}

.garden-return{color:inherit;text-decoration:none;font:inherit;align-self:center;white-space:nowrap}.garden-return:hover{text-decoration:underline}@media(max-width:600px){header nav{gap:12px;font-size:12px}.brand span{display:none}}
