@font-face{font-family:"Quicksand";src:url("./assets/fonts/Quicksand.ttf") format("truetype");font-style:normal;font-weight:300 700;font-display:swap}
:root{--paper:#faf8f0;--ink:#453f32;--muted:#938a79;--green:#657f50;--green-dark:#4f693d;--line:#e9e5d7;--serif:"STKaiti","KaiTi","Kaiti SC",serif}
.main.book-page{padding-top:20px}.book-page>.topbar,.book-page>.back-link{display:none}.book-page>.page-title{margin-top:0}
.reader-brand{display:flex;align-items:center;justify-content:center;gap:6px;margin:20px auto 0;color:#a2a58b;font-size:10px;line-height:1.6}.reader-brand svg{width:14px;height:14px;flex-shrink:0}
html{-webkit-tap-highlight-color:transparent}
.reader-voice-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.reading-voice-button{display:flex;align-items:center;gap:7px;min-height:40px;padding:7px 13px;background:#e6ebd8;border-radius:12px;color:var(--green-dark);font-size:13px}.reading-voice-button svg{width:17px;height:17px}.reading-voice-notice{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0;padding:12px 16px;background:#f0f2e4;border:1px solid var(--line);border-radius:12px;font-size:12px;color:var(--green-dark)}.reading-voice-notice button{min-height:36px;text-decoration:underline;text-underline-offset:3px}.voice-preview{display:flex;align-items:center;gap:7px;min-height:40px;font-size:13px;color:var(--green-dark)}.voice-preview svg{width:16px;height:16px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}button,a,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:transparent}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #b1c28d;outline-offset:5px}button:not(:disabled),a{transition:background .18s,transform .18s,box-shadow .18s}button:not(:disabled):active{transform:scale(.98)}button svg{pointer-events:none}svg{width:22px;height:22px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:650}h1{font-family:var(--serif);font-size:43px;line-height:1.4;letter-spacing:2px}h2{font-size:25px;letter-spacing:1px}small{font-size:12px;color:var(--muted)}.shell{max-width:1500px;margin:auto;min-height:100vh;display:grid;grid-template-columns:228px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:38px 24px 25px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#f5f4e9}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:700;letter-spacing:3px;color:#52643b}.brand svg{width:34px;height:37px;fill:#91a467;stroke:#758a50;stroke-width:1}.brand small{display:block;font-size:9px;letter-spacing:3px;font-weight:500}.side-label{margin:45px 16px 15px;font-size:10px;letter-spacing:2px;color:#aaa18d}.nav-item{display:flex;align-items:center;gap:13px;min-height:52px;padding:12px 17px;border-radius:14px;margin:6px 0;color:#8a8677;font-size:14px}.nav-item.active{color:#5b7342;background:#e6ebd8;font-weight:650}.nav-item:hover{background:#eaedde}.nav-item svg{width:21px}.sidebar-bottom{margin-top:auto}.side-guide{height:140px;width:140px;margin:0 auto -7px}.side-bubble{text-align:center;font-size:12px;line-height:1.8;color:#99907d;padding:18px 10px 22px;border-bottom:1px solid var(--line)}.parent-link{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:20px;min-height:44px;color:#938a79;font-size:13px}.main{padding:0 46px 36px;min-width:0}.topbar{height:98px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:32px;gap:14px}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:13px;color:#928a7c}.breadcrumb b{font-weight:500;color:#5b624a}.top-actions{display:flex;align-items:center;gap:18px}.quiet-badge{display:flex;align-items:center;gap:7px;font-size:12px;color:#8d906f}.quiet-badge svg{width:16px;height:16px}.avatar{width:39px;height:39px;border:1px solid #e0dfce;border-radius:50%;overflow:hidden;background:#eee8cf}.avatar .character{width:100%;height:100%}.mobile-brand{display:none}.eyebrow{font-size:10px;font-weight:650;letter-spacing:3px;color:#9a9b78}.heading-row{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 22px}.heading-row p{margin-top:7px;color:var(--muted);font-size:13px}.section-link{color:#8c9477;font-size:12px;display:flex;gap:7px;align-items:center}.section-link svg{width:16px;height:16px}.hero{position:relative;min-height:310px;border-radius:22px;overflow:hidden;background:#eeeeda;display:flex;align-items:center;isolation:isolate}.hero-art{position:absolute;inset:0 0 0 35%;width:65%;height:100%;object-fit:cover;z-index:-2}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#eeefdd 0%,#eeefdd 25%,#eeefdded 35%,#eeefdd00 61%)}.hero-copy{padding:36px 34px;width:55%}.hero-copy h1{margin:11px 0 12px;font-size:38px}.hero-copy p{font-size:13px;color:#8a8b70;line-height:1.9}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:30px;background:var(--green);color:#fffdf5;font-size:14px;font-weight:550}.btn:hover{background:var(--green-dark);box-shadow:0 5px 15px #55733b17}.btn svg{width:17px;height:17px}.btn.secondary{background:#eaf0df;color:#647b4d}.btn.outline{background:transparent;color:#6a8054;border:1px solid #ced7bd}.hero .btn{margin-top:24px;font-size:13px}.hero .eyebrow{color:#7e8a60}.hero-label{position:absolute;right:19px;bottom:18px;border:1px solid #ffffff99;border-radius:30px;background:#fffdf3da;padding:5px 13px;font-size:10px;color:#7b785b}.little-note{display:flex;align-items:center;gap:8px;font-size:11px;color:#8d967c}.little-note i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9db47c}.books-section{margin-top:33px}.tabs{display:flex;gap:9px;margin:18px 0 24px}.tab{padding:8px 20px;min-height:42px;border-radius:22px;color:#a0998a;font-size:13px}.tab.active{background:#e7edda;color:#607649;font-weight:550}.bookshelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;padding:0 14px 12px;position:relative}.bookshelf:after{content:"";position:absolute;bottom:0;left:0;right:0;height:11px;background:linear-gradient(#d9c2a0,#c9af8a);border-radius:3px;box-shadow:0 8px 12px #b6a07b1c}.book-item{text-align:left;padding:0 0 10px;min-width:0;display:flex;flex-direction:column}.book-cover{position:relative;overflow:hidden;aspect-ratio:1.03;background:#e8ead9;border-radius:4px 13px 13px 4px;box-shadow:5px 6px 0 #d6d7c1,8px 12px 17px #806f4b12;transition:transform .2s;width:100%;border:1px solid #d5d9c3}.book-item:hover:not(:disabled) .book-cover{transform:translateY(-5px) rotate(-1deg)}.book-cover:before{content:"";position:absolute;z-index:3;left:9px;top:0;bottom:0;width:1px;background:#fff8;box-shadow:2px 0 2px #696b4814}.book-cover .cover-art{position:absolute;width:92%;height:90%;bottom:-13%;left:5%;mix-blend-mode:multiply}.cover-title{position:relative;z-index:2;padding:20px 16px;text-align:center;font-family:var(--serif);font-size:23px;font-weight:bold;color:#57653c;letter-spacing:2px;line-height:1.5}.cover-title small{display:block;margin-top:4px;font-family:sans-serif;font-size:8px;letter-spacing:2px;color:#7e8966}.cover-art .character{width:100%;height:100%}.book-cover.blue{background:#e2eaf0;border-color:#d0dde5;box-shadow:5px 6px 0 #cdd8de,8px 12px 17px #806f4b12}.book-cover.blue .cover-title{color:#668090}.book-cover.peach{background:#f2e4cf;border-color:#e1d0b5;box-shadow:5px 6px 0 #e0cdb2,8px 12px 17px #806f4b12}.book-cover.peach .cover-title{color:#9d8058}.book-meta{display:flex;align-items:center;gap:9px;font-size:12px;padding:17px 0 0}.book-meta .tag{font-size:9px;padding:1px 6px;background:#e9edda;color:#7c8b5d;border-radius:4px}.book-details{color:#a49a89;font-size:10px;margin-top:5px}.coming{position:absolute;right:10px;bottom:9px;font-size:9px;background:#fffaf0c9;padding:2px 8px;border-radius:10px;color:#9b8a72;z-index:4}.shelf-empty{min-height:240px;padding:50px 20px;text-align:center;border:1px dashed #dddcc8;border-radius:18px;color:#8a8b72}.shelf-empty h3{margin-bottom:8px;font-family:var(--serif);font-size:25px}.home-footer{display:flex;align-items:center;gap:20px;margin-top:30px;padding:20px 24px;border:1px solid #e4e6d5;border-radius:16px;background:#f4f5e9}.home-footer .icon-circle{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#e8edd7;color:#8d9a67}.home-footer h3{font-size:13px}.home-footer p{font-size:11px;color:#9b957e;margin-top:3px}.home-footer button{margin-left:auto;color:#7f8b66;font-size:12px;white-space:nowrap}.character{position:relative;overflow:hidden;display:block;width:100%;height:100%}.character img{position:absolute;width:200%;height:200%;max-width:none}.character.cat img{left:0;top:0}.character.dog img{left:-100%;top:0}.character.rabbit img{left:0;top:-100%}.character.guide img{left:-100%;top:-100%}.back-link{padding:0;min-height:44px;display:flex;align-items:center;gap:7px;color:#8e9279;font-size:12px}.back-link svg{width:15px;height:15px}.page-title{margin:13px 0 5px}.page-subtitle{font-size:13px;color:var(--muted);margin-bottom:26px}.book-intro{display:flex;align-items:center;gap:20px;padding:20px 24px;margin-bottom:24px;border-radius:18px;background:#eef0e2}.book-mini{width:85px;height:85px;flex-shrink:0}.book-intro h3{font-size:18px;margin-bottom:4px}.book-intro p{font-size:12px;color:#8d9479}.chapter-path{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;position:relative}.chapter-card{padding:0;text-align:left;background:#fffdf7;border:1px solid #e5e3d2;border-radius:19px;overflow:hidden;position:relative}.chapter-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #8274500d}.chapter-scene{height:205px;position:relative;overflow:hidden}.scene{position:relative;overflow:hidden;width:100%;height:100%;display:block}.scene img{position:absolute;width:200%;height:200%;max-width:none;object-fit:fill}.scene.cat img{top:0;left:0}.scene.dog img{top:0;left:-100%}.scene.rabbit img{top:-100%;left:0}.scene.friends img{top:-100%;left:-100%}.chapter-number{position:absolute;top:12px;left:12px;z-index:1;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fffaf0de;color:#8e9979;font:12px Georgia,serif}.chapter-copy{padding:20px}.chapter-copy h3{font-size:18px;font-family:var(--serif);margin-bottom:8px}.chapter-copy p{font-size:11px;color:#a09884}.chapter-state{display:flex;align-items:center;justify-content:space-between;margin-top:20px;color:#8c9d6c;font-size:11px}.chapter-state svg{width:17px}.chapter-footnote{text-align:center;color:#aaa28d;font-size:12px;margin-top:28px}.reader-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.reader-title h1{font-size:31px}.reader-title p{font-size:12px;color:var(--muted);margin-top:5px}.reader-card{position:relative;padding:28px 32px;background:#fffdf8;border:1px solid #e8e3d3;border-radius:21px;box-shadow:0 8px 22px #8e7e5005}.reader-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.reader-card-head .eyebrow{font-size:9px}.auto-btn{display:flex;align-items:center;gap:7px;min-height:42px;padding:8px 15px;border:1px solid #d7dfc8;border-radius:24px;color:#718657;font-size:12px}.auto-btn svg{width:17px}.auto-btn.playing{background:#eaf0dd}.lesson-layout{position:relative;padding-top:6px;min-height:355px}.lesson-animal{position:absolute;right:0;top:12px;width:44%;height:235px;border-radius:40% 40% 20% 20%;overflow:hidden;background:#faf7ef}.animal-tap{position:absolute;inset:0;border:2px solid transparent;border-radius:inherit}.animal-tap.playing{border-color:#b2c68c;background:#d7e7a412}.tap-bubble{position:absolute;right:12px;bottom:10px;background:#fffdf2e8;display:flex;align-items:center;gap:5px;font-size:10px;color:#7f9366;padding:5px 9px;border-radius:20px;pointer-events:none}.tap-bubble svg{width:13px}.lesson-line{position:relative;display:flex;align-items:center;gap:13px;padding:16px 13px 16px 0;min-height:76px;width:100%;text-align:left;border:1px solid transparent;border-radius:13px}.lesson-line:nth-of-type(-n+2){width:53%}.lesson-line:nth-of-type(3){width:53%;min-height:87px}.lesson-line:nth-of-type(4){margin-top:12px}.lesson-line:before{content:"";position:absolute;width:1px;background:#d7dfc5;top:37px;bottom:-20px;left:12px}.lesson-line:last-child:before{display:none}.line-step{width:25px;height:25px;display:grid;place-items:center;flex-shrink:0;border:1px solid #d9dfcb;border-radius:50%;color:#9cae7f;background:#fffdf8;font-size:10px;z-index:1}.line-copy{display:flex;flex:1;flex-direction:column;gap:5px}.line-en{font:500 22px/1.35 "Quicksand","Trebuchet MS",Arial,sans-serif;letter-spacing:.2px;color:#5e5e4d}.line-en strong{color:#b38864;font-weight:500}.line-zh{color:#a69c88;font-size:11px}.lesson-line.selected{background:#f0f3e7;border-color:#d9e2c7;padding-left:8px}.lesson-line.selected .line-step{background:#8da575;color:white;border-color:#8da575}.line-sound{width:17px;height:17px;color:#8da575;opacity:0}.lesson-line.playing .line-sound{opacity:1}.reader-hint{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;font-size:11px;color:#9ba085}.reader-hint svg{width:14px}.sticker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:35px}.sticker-card{text-align:center;padding:25px 20px;border:1px solid #e5e5d4;border-radius:20px;background:#fffdf6}.sticker-art{width:150px;height:150px;margin:auto auto 20px;border-radius:50%;overflow:hidden;border:1px dashed #c9d4b4}.sticker-art.unearned{opacity:.24;filter:grayscale(1)}.sticker-card h3{font-family:var(--serif);font-size:20px}.sticker-card p{font-size:11px;color:#a49b86;margin:6px 0 15px}.sticker-card .btn{font-size:11px;min-height:38px;padding:8px 14px}.bottom-note{display:flex;justify-content:center;align-items:center;gap:8px;color:#b0a58e;font-size:10px;letter-spacing:1px;margin-top:30px}.bottom-note svg{width:12px}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,12px);padding:12px 22px;background:#536343ed;color:#fffdf1;font-size:13px;border-radius:30px;z-index:100;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;width:max-content}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{max-width:420px;width:calc(100% - 36px);border:1px solid #e7e3d1;border-radius:22px;background:var(--paper);padding:34px;color:var(--ink)}dialog::backdrop{background:#403f3555}dialog h2{font-family:var(--serif);margin:15px 0}dialog p{font-size:13px;line-height:1.9;color:#938873;margin:14px 0}dialog .btn{margin-top:10px;width:100%}.dialog-close{position:absolute;right:12px;top:10px;font-size:27px}.icon-btn{width:44px;height:44px;display:grid;place-items:center}.empty-guide{width:180px;height:180px;margin:0 auto 15px}.mobile-nav{display:none}
@media(min-width:1350px){.main{padding-left:64px;padding-right:64px}.hero{min-height:350px}.hero-copy h1{font-size:43px}.book-cover{aspect-ratio:1.12}.book-cover .cover-art{width:80%;left:10%}.chapter-scene{height:240px}}
@media(max-width:1050px){.shell{grid-template-columns:185px minmax(0,1fr)}.sidebar{padding:30px 17px}.brand{font-size:19px;gap:8px}.main{padding-left:28px;padding-right:28px}.hero-copy{padding:25px;width:60%}.hero-copy h1{font-size:31px}.hero{min-height:285px}.hero-art{left:30%;width:70%}.cover-title{font-size:19px;padding:17px 8px}.bookshelf{gap:18px}.chapter-path{gap:13px}.chapter-scene{height:170px}.chapter-copy{padding:15px}.lesson-animal{height:210px}.line-en{font-size:20px}.reader-card{padding:22px}.sticker-grid{gap:15px}.sticker-art{width:120px;height:120px}}
@media(max-width:760px){.shell{display:block}.sidebar{display:none}.main{padding:0 20px 95px}.topbar{height:76px;margin-bottom:23px}.breadcrumb{display:none}.mobile-brand{display:flex;font-size:20px;letter-spacing:2px;align-items:center;gap:8px;color:#607448;font-weight:700}.mobile-brand svg{width:27px;height:30px;fill:#91a467;stroke:#758a50;stroke-width:1}.top-actions{gap:8px}.quiet-badge{font-size:10px}.avatar{width:34px;height:34px}.heading-row h2{font-size:22px}.heading-row p{font-size:11px}.section-link{font-size:10px}h1{font-size:31px}.hero{min-height:390px;align-items:start;border-radius:19px}.hero-art{inset:auto 0 0;width:100%;height:75%;object-position:center 56%}.hero:after{background:linear-gradient(#eeefdd 0%,#eeefdde8 26%,#eeefdd00 50%)}.hero-copy{padding:25px;width:100%}.hero-copy h1{font-size:30px;margin:5px 0 5px}.hero-copy p{font-size:12px}.hero .btn{margin-top:14px;padding:9px 17px;min-height:40px;font-size:11px}.hero-label{font-size:9px;right:12px;bottom:12px}.hero .eyebrow{font-size:8px}.books-section{margin-top:27px}.tabs{gap:3px;margin:15px 0 20px}.tab{padding:7px 14px;font-size:12px}.bookshelf{gap:14px;padding:0 5px 10px;grid-template-columns:repeat(3,minmax(0,1fr))}.book-cover{aspect-ratio:.7}.cover-title{font-size:15px;padding:15px 10px 0;letter-spacing:1px}.cover-title small{font-size:6px;letter-spacing:1px;margin-top:7px}.book-cover .cover-art{height:70%;width:120%;left:-10%;bottom:-2%}.book-cover:before{left:5px}.book-meta{padding-top:13px;font-size:10px;display:block}.book-meta .tag{display:none}.book-details{font-size:8px;margin-top:3px}.coming{font-size:7px;right:5px;bottom:7px;padding:2px 5px}.home-footer{padding:16px 13px;gap:11px;margin-top:24px}.home-footer h3{font-size:12px}.home-footer p{font-size:10px}.home-footer .icon-circle{width:35px;height:35px;flex-shrink:0}.home-footer button{font-size:10px}.mobile-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:8px 10px max(8px,env(safe-area-inset-bottom));border-top:1px solid #e7e5d5;background:#faf8f0f5;backdrop-filter:blur(12px)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:9px;color:#a5a18c;min-width:65px;min-height:42px}.mobile-nav a.active{color:#667f4c}.mobile-nav svg{width:21px;height:21px}.page-title{font-size:30px}.page-subtitle{font-size:12px}.book-intro{padding:15px;gap:13px}.book-mini{width:65px;height:65px}.book-intro h3{font-size:16px}.book-intro p{font-size:11px}.chapter-path{grid-template-columns:1fr;gap:17px}.chapter-card{display:flex;min-height:150px}.chapter-scene{width:43%;height:155px;flex-shrink:0}.chapter-copy{padding:19px 16px;flex:1}.chapter-copy h3{font-size:19px}.chapter-state{margin-top:22px}.reader-head{align-items:start;gap:12px;margin-top:10px;flex-direction:column}.reader-title h1{font-size:27px}.reader-title p{font-size:11px}.reader-card{padding:17px 14px;border-radius:17px}.reader-card-head .eyebrow{font-size:8px;letter-spacing:1px}.auto-btn{font-size:11px;min-height:40px;padding:8px 12px}.lesson-layout{min-height:320px}.lesson-animal{width:44%;height:195px;top:12px}.lesson-line{gap:7px;padding-right:6px;min-height:74px}.lesson-line:nth-of-type(3){width:100%;margin-top:12px;min-height:74px}.lesson-line:nth-of-type(4){margin-top:0}.lesson-line:nth-of-type(-n+2){width:54%}.line-en{font-size:20px}.lesson-line:nth-of-type(-n+2) .line-en{font-size:21px}.line-zh{font-size:10px}.line-step{width:22px;height:22px;font-size:9px}.lesson-line:before{left:10px}.lesson-line.selected{padding-left:5px}.line-sound{width:14px;height:14px}.tap-bubble{font-size:8px;right:5px;bottom:5px;padding:4px 7px}.tap-bubble svg{width:11px}.reader-hint{font-size:10px}.sticker-grid{grid-template-columns:1fr;gap:16px;margin-top:23px}.sticker-card{display:grid;grid-template-columns:110px 1fr;padding:17px;column-gap:16px;text-align:left;align-items:center}.sticker-art{grid-row:1/5;width:110px;height:110px;margin:0}.sticker-card p{margin:3px 0 10px}.sticker-card .btn{justify-self:start}.bottom-note{font-size:9px;letter-spacing:0}.little-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.cover-title,.chapter-scene,.chapter-copy{display:block}
.lesson-animal{width:min(44%,250px);height:auto;aspect-ratio:1}
.scene img{height:auto;top:50%!important;transform:translateY(-25%)}
.scene.rabbit img,.scene.friends img{transform:translateY(-75%)}
.scene.extra-scene img{width:400%;left:var(--tile-left);transform:translateY(var(--tile-shift))}
.chapter-scroll-tools{display:inline-flex;align-items:center;gap:8px}
.chapter-rail-arrow{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#fffdf2;color:#829569}
.chapter-rail-arrow svg{width:14px;height:14px}
.chapter-thumbnails{overscroll-behavior-x:contain;scroll-padding-inline:8px}
.reader-card,.reader-head{max-width:860px;margin-left:auto;margin-right:auto}
@media(max-width:760px){.lesson-animal{width:44%;height:auto;aspect-ratio:1}.lesson-line:nth-of-type(-n+2){min-height:85px}.hero{min-height:470px}.hero-art{height:65%}.hero:after{background:linear-gradient(#eeefdd 0%,#eeefdd 40%,#eeefddcc 51%,#eeefdd00 69%)}.hero-copy{position:relative;z-index:1}}
.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,44%);column-gap:12px;align-items:stretch}
.lesson-layout>.lesson-animal{position:relative;top:auto;right:auto;grid-column:2;grid-row:1 / span 2;align-self:center;justify-self:end;width:100%;max-width:250px;height:auto;aspect-ratio:1}
.lesson-layout>.lesson-line{grid-column:1 / -1;width:100%;min-width:0;margin:0}
.lesson-layout>.lesson-line:nth-of-type(1){grid-column:1;grid-row:1}
.lesson-layout>.lesson-line:nth-of-type(2){grid-column:1;grid-row:2}
.lesson-layout>.lesson-line:nth-of-type(3){margin-top:12px}
.lesson-layout .line-en{overflow-wrap:anywhere}
.reader-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px}
.reader-title{min-width:0}
.reader-head .reader-voice-tools{grid-column:1/-1;justify-content:flex-end}
.reader-controls{display:flex;align-items:center;gap:12px;margin-left:auto}
@media(max-width:360px){.reader-title h1{font-size:22px;letter-spacing:1px}.reader-head{column-gap:8px}.reader-controls{gap:6px}}
.chinese-toggle{display:inline-flex;align-items:center;gap:6px;min-height:40px;color:#7e8b68;font-size:11px;white-space:nowrap;cursor:pointer}
.auto-btn{position:relative;min-height:30px;height:30px;padding:5px 9px;gap:4px;border:1px solid transparent;border-radius:15px;background:transparent;color:#7e8b68;font-size:11px;line-height:1.6;white-space:nowrap}
.auto-symbol{display:grid;place-items:center;width:14px;height:14px;flex-shrink:0;color:#8da575;pointer-events:none}
.auto-label{pointer-events:none}
.auto-btn svg{width:14px;height:14px;stroke-width:1.7}
.auto-btn:not(.playing) .auto-symbol svg{fill:currentColor}
.auto-btn[aria-pressed="true"]{background:#e7eddb;border-color:#d7dfc8;color:#718657;box-shadow:none}
.chinese-toggle input{appearance:none;position:relative;width:29px;height:17px;margin:0;background:#e3e7d8;border:1px solid #ccd6bc;border-radius:12px;cursor:pointer}
.chinese-toggle input::after{content:"";position:absolute;left:2px;top:2px;width:11px;height:11px;border-radius:50%;background:#fffdf6;box-shadow:0 1px 2px #66774922;transition:transform .15s}
.chinese-toggle input:checked{background:#8da575;border-color:#8da575}
.chinese-toggle input:checked::after{transform:translateX(12px)}
.lesson-layout>.lesson-line{align-items:flex-start;padding:10px 10px 10px 8px;gap:9px}
.lesson-layout>.lesson-line.selected{padding:10px 10px 10px 8px}
.lesson-layout .line-copy{gap:4px}
.lesson-layout>.lesson-line:nth-of-type(3){margin-top:0}
.lesson-layout .line-step{width:24px;height:24px;margin-top:2px;font-size:10px}
.lesson-layout>.lesson-line::before{display:block;left:20px;top:-1px;bottom:-1px}
.lesson-layout>.lesson-line:nth-of-type(1)::before{top:32px}
.lesson-layout>.lesson-line:last-child::before{display:block;bottom:calc(100% - 32px)}
.lesson-layout .line-sound{margin-top:4px;flex-shrink:0}
.line-ipa{font-family:"Segoe UI","Arial",sans-serif;font-size:13px;font-weight:400;line-height:1.5;color:#8a8f7e;letter-spacing:.15px;overflow-wrap:anywhere}
@media(max-width:760px){.line-ipa{font-size:12px}}
.tap-hint-once .lesson-line,.tap-hint-once .animal-tap{animation:tap-invitation 1.1s ease-out 1}
@keyframes tap-invitation{0%,100%{background-color:transparent;box-shadow:none}40%{background-color:#eaf0de80;box-shadow:inset 0 0 0 1px #cad9b4}}
.character.guide{container-type:inline-size}
.hero-name{position:absolute;z-index:0;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%) rotate(-12deg);border:1px solid #b5a77b;border-radius:4px;background:#fff5d9;color:#6f6547;font-family:var(--serif);font-weight:700;line-height:1;letter-spacing:0;white-space:nowrap;box-shadow:0 1px 3px #6a76341a;pointer-events:none}
.hero-name[hidden]{display:none}
.name-settings{z-index:2;min-height:36px;padding:7px 14px;color:#78825f}
.name-settings:hover{background:#fffef5}
.side-guide{position:relative}
.name-pencil{display:grid;place-items:center;width:32px;height:32px;border:1px solid #d9dfc6;border-radius:50%;background:#fffdf0;color:#86976b;box-shadow:0 2px 5px #6a763410}
.name-pencil svg{width:15px;height:15px}
.sidebar .side-guide>.name-pencil{top:auto;bottom:0;right:0}
.side-guide>.name-pencil{position:absolute;right:0;top:14%}
.hero-name-pencil{display:none;position:absolute;right:16px;bottom:16px;z-index:2}
@media(max-width:760px){.hero-name-pencil{display:grid}}
#name-form label{display:block;margin:18px 0 7px;color:#7e775f;font-size:13px}
#child-name{width:100%;min-height:48px;border:1px solid #cdd7bb;border-radius:11px;padding:10px 13px;background:#fffdf5;color:var(--ink);outline-offset:3px}
#name-form #name-help{font-size:11px;margin:8px 0}
#name-form #name-error{min-height:22px;margin:5px 0;color:#ae7559;font-size:12px}
.outfit-fieldset{border:0;margin:24px 0 5px;padding:0;min-width:0}
.outfit-fieldset legend{font-size:13px;color:#7e775f;margin-bottom:12px}
.outfit-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.outfit-option{position:relative!important;display:flex!important;flex-direction:column;align-items:center;margin:0!important;padding:9px 5px;border:1px solid #e3e4d2;border-radius:13px;background:#faf8ed;cursor:pointer;text-align:center}
.outfit-option:has(input:checked){border-color:#91a875;background:#eaf0df;box-shadow:0 0 0 1px #91a875}
.outfit-option input{position:absolute;z-index:2;top:7px;left:7px;accent-color:#829867}
.outfit-portrait{display:block;width:80px;height:auto;aspect-ratio:1;max-width:100%;pointer-events:none}
.outfit-name{font-size:12px;color:#6c7f55;margin:4px 0}
.outfit-option small{font-size:9px;line-height:1.6;color:#a09a82}
#name-dialog{max-height:90dvh;overflow-y:auto}
@media(max-width:760px){#name-dialog{padding:24px}#name-dialog h2{margin:10px 0}#name-form>label{margin-top:12px}#name-dialog .outfit-fieldset{margin-top:18px}#name-dialog .profile-voice-fieldset{margin-top:18px}#name-form #name-error{min-height:10px}}
.profile-voice-fieldset{border:0;margin:24px 0 0;padding:0;min-width:0}.profile-voice-fieldset legend{font-size:13px;color:#7e775f;margin-bottom:12px}.profile-voice-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.profile-voice-card{position:relative;border:1px solid #e3e4d2;border-radius:13px;padding:12px 7px 8px;background:#faf8ed;min-width:0;text-align:center;transition:background .18s,border-color .18s}.profile-voice-card:has(input:checked){border-color:#91a875;background:#eaf0df;box-shadow:0 0 0 1px #91a875}#name-form .profile-voice-card label{margin:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px}.profile-voice-card input{position:absolute;top:9px;left:9px;accent-color:#829867;margin:0}.voice-emblem{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;margin:4px auto 5px;background:#e5ebd9;color:#7c9561}.voice-emblem>svg{width:24px;height:24px;transform:translateY(-3px)}[data-voice="vivian"] .voice-emblem{background:#f1e3d9;color:#af8c77}[data-voice="serena"] .voice-emblem{background:#f0e8cb;color:#aa9864}.voice-wave{position:absolute;bottom:6px;display:flex;align-items:center;gap:2px;height:7px}.voice-wave i{display:block;width:2px;height:3px;background:currentColor;border-radius:2px}.voice-wave i:nth-child(2),.voice-wave i:nth-child(4){height:5px}.voice-wave i:nth-child(3){height:7px}#name-form .voice-card-name{font-size:13px;color:var(--green-dark);font-weight:600}.profile-voice-card small{font-size:9px;line-height:1.6;white-space:nowrap;color:#9a937e}.profile-voice-card .voice-preview{justify-content:center;width:100%;font-size:11px;min-height:32px;padding:4px 0;margin-top:7px;border-radius:16px;background:#efefdf;color:#75865e}.profile-voice-card:has(input:checked) .voice-preview{background:#dde7cd;color:#587343}.profile-voice-card .voice-preview svg{width:12px;height:12px}#name-form .profile-voice-help{font-size:11px;line-height:1.7;margin:10px 0 0}
.chapter-cover-image{width:100%;height:100%;object-fit:cover}
.word-art{display:block;width:100%;height:100%;object-fit:cover}
.template-cover{display:grid;place-items:center;width:100%;height:100%;background:#eef0df;color:#8c9b6c;font-family:var(--serif);font-size:20px}
.cover-art>img{display:block;width:100%;height:100%;object-fit:cover}
.poem-layout{padding:22px 8px;text-align:center}.poem-layout h2{font-family:var(--serif);font-size:29px}.poem-author{margin:7px 0 20px;color:var(--muted);font-size:12px}.poem-line{width:100%;text-align:center;padding:18px;justify-content:center}.poem-line::before,.picture-caption::before{display:none}.poem-text{font-family:var(--serif);font-size:26px;letter-spacing:3px;line-height:1.8}.poem-pinyin{font-size:12px;color:#9a9f86;letter-spacing:1px}.poem-line .line-copy{align-items:center}.picture-art{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:14px}.picture-art>img{width:100%;height:100%;object-fit:cover}.picture-hotspot{position:absolute;display:grid;place-items:center;border:1px dashed #a6ba86;border-radius:20%;background:#f5f8e533;color:#79925a}.picture-hotspot svg{background:#fffdf0d9;border-radius:50%;padding:3px;width:30px;height:30px}.picture-caption{width:100%;padding:17px 12px}.picture-caption .line-copy{min-width:0}.picture-caption .line-en{overflow-wrap:anywhere}
.chapter-strip{max-width:860px;margin:26px auto 0;padding:14px 18px;background:#f0f2e4;border:1px solid #e0e5d1;border-radius:17px}
.chapter-strip-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:11px;font-size:11px;color:#8a9673}
.chapter-thumbnails{display:flex;gap:12px;overflow-x:auto;padding:3px 2px 5px;scrollbar-width:thin;scrollbar-color:#bdcaaa transparent}
.chapter-thumb{position:relative;display:flex;align-items:center;gap:13px;flex:0 0 154px;padding:7px;border:2px solid transparent;border-radius:11px;background:#faf9f0;color:#8b9279}
.chapter-thumb:hover{background:#fffdf6;border-color:#d0dabb}
.chapter-thumb.active{border-color:#8ca573;background:#fffef8;box-shadow:0 3px 8px #6f845b0d;color:#617a49}
.chapter-thumb-art{display:block;width:59px;height:59px;border-radius:7px;overflow:hidden;flex-shrink:0}
.chapter-thumb-title{display:flex;flex-direction:column;gap:1px;font-size:13px;white-space:nowrap}
.chapter-thumb-title small{font-size:9px;letter-spacing:1px;color:#a3ab8d}
.chapter-thumb-earned{position:absolute;top:3px;right:3px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#8fa676;color:white}
.chapter-thumb-earned svg{width:12px;height:12px}
.chapter-path{gap:12px}
.chapter-scene{height:140px}
.chapter-copy{padding:12px 15px}
.chapter-copy h3{margin-bottom:4px}
.chapter-state{margin-top:9px}
.chapter-number{top:8px;left:8px;width:24px;height:24px;font-size:10px}
@media(max-width:760px){.chapter-path{gap:10px}.chapter-card{min-height:100px;border-radius:14px}.chapter-scene{width:104px;height:100px}.chapter-copy{padding:10px 14px;min-width:0;display:flex;flex-direction:column;justify-content:center}.chapter-copy h3{font-size:18px;margin-bottom:3px}.chapter-state{margin-top:8px}.chapter-scene .poem-cover small{display:none}}
.poem-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:7px;background:radial-gradient(ellipse at 20% 85%,#c6dbc5a6,transparent 65%),#edf1e3;color:#7f9471;border-radius:12px;font-family:var(--serif)}
.poem-cover[data-theme="spring"]{background:radial-gradient(ellipse at 80% 15%,#f1d5bc99,transparent 65%),#f2efdf;color:#a28b65}
.poem-cover[data-theme="moon"]{background:radial-gradient(circle at 75% 25%,#fff6d8 0 13%,transparent 14%),linear-gradient(150deg,#dce5e9,#edf0e7);color:#7c9099}
.poem-cover>span{font-size:50px;line-height:1.2;letter-spacing:3px}.poem-cover small{font:10px/1.5 sans-serif;color:inherit}
.chapter-thumb-art .poem-cover{gap:0;border-radius:7px}.chapter-thumb-art .poem-cover>span{font-size:29px}.chapter-thumb-art .poem-cover small{display:none}
.reader-card[data-template="poetry"]{padding-top:14px;padding-bottom:12px}
.poem-layout{margin:0;padding:0;text-align:center;background:none}
.poem-layout h2{line-height:1.3}
.poem-title-row{position:relative;width:100%;margin:0 auto}
.poem-title-main{position:relative;width:max-content;max-width:calc(100% - 116px);margin:0 auto}
.poem-title-row h2{margin:0}
.poem-title-row .poem-heading{padding-inline:0}
.poem-title-main>.auto-btn{position:absolute;left:calc(100% + 2px);top:50%;display:grid;place-items:center;width:28px;height:40px;min-height:40px;padding:0;border-radius:50%}
.poem-title-main>.auto-btn,.poem-title-main>.auto-btn:active,.poem-title-main>.auto-btn[aria-pressed="true"]{transform:translateY(-50%);background:transparent;border-color:transparent;box-shadow:none;color:#7e8b68;transition:none;animation:none}
.poem-title-row .auto-label{display:none}
.poem-title-row>.poem-repeat{position:absolute;right:0;top:50%;display:grid;place-items:center;width:28px;height:40px;padding:0;color:#a7ad98;background:transparent;transform:translateY(-50%);transition:none}
.poem-title-row>.poem-repeat:active{transform:translateY(-50%)}
.poem-title-row>.poem-repeat[aria-pressed="true"]{color:#526d3e}
.poem-repeat svg{width:19px;height:19px}
.poem-title-row .auto-symbol,.poem-title-row .auto-btn svg{width:18px;height:18px}
.poem-title-main>.auto-btn,.poem-title-main>.auto-btn:active,.poem-title-main>.auto-btn[aria-pressed="true"]{color:inherit}
.poem-title-row .auto-symbol{color:inherit}
.poem-title-row .auto-btn .auto-symbol svg{fill:none}
@media(max-width:360px){.poem-title-row h2{font-size:23px}}
.poem-illustrated{position:relative;isolation:isolate;overflow:hidden;border-radius:14px;min-height:500px;padding:36px 15% 36px;background:#f7f1e3}
.poem-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;pointer-events:none}
.poem-illustrated::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,transparent 5%,#faf5e7b8 28%,#faf5e7c9 70%,transparent 96%);pointer-events:none}
.poem-illustrated>.poem-line{border-radius:12px;background:transparent;margin-top:4px}
.poem-illustrated>.poem-line:hover,.poem-illustrated>.poem-line.selected{background:transparent;box-shadow:none}
.poem-illustrated .line-zh{color:#6d6758}
.poem-illustrated .poem-pinyin{color:#6d765b}
.poem-illustrated .poem-author{margin-bottom:14px}
.poem-translation{width:calc(100% - 32px);max-width:520px;margin:18px auto 0;padding:10px 16px;border-radius:10px;background:#fffaf0c9;text-align:left;color:#6d6758;font-size:12px;line-height:1.9;overflow-wrap:anywhere}
.poem-translation strong{font-weight:600}
@media(max-width:760px){.poem-illustrated{min-height:480px;padding:25px 0 32px}.poem-illustrated::after{background:linear-gradient(180deg,#faf5e74d,#faf5e7e8 25%,#faf5e7e8 74%,transparent)}.poem-illustrated .poem-backdrop{object-position:60% center}.poem-illustrated[data-theme="moon"] .poem-backdrop{object-position:75% center}}
.poem-ruby{display:inline-flex;flex-direction:column-reverse;align-items:center;vertical-align:bottom;width:50px;letter-spacing:0;margin:0}
.poem-ruby .poem-character{display:block;line-height:1.4}
.poem-ruby .poem-pinyin{display:block;white-space:nowrap}
.poem-ruby .poem-pinyin{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:400;text-align:center;letter-spacing:0}
.poem-punctuation{letter-spacing:0}
.poem-layout .poem-text{white-space:nowrap}
@media(max-width:760px){.poem-layout[data-verse-length="7"]>.poem-line,.poem-layout[data-verse-length="7"]>.poem-line.selected{padding-left:18px;padding-right:18px}.poem-layout[data-verse-length="7"] .poem-ruby{width:40px}}
@media(max-width:420px){.poem-layout[data-verse-length="7"] .poem-text{font-size:21px}.poem-layout[data-verse-length="7"] .poem-ruby{width:clamp(29px,8.2vw,35px)}.poem-layout[data-verse-length="7"] .poem-ruby .poem-pinyin{font-size:clamp(8px,2.3vw,9.5px)}}
/* Hang the final punctuation so the characters and their pinyin share the title’s center. */
.poem-punctuation:last-child{position:absolute;left:100%;bottom:0}
.poem-heading{padding:3px 9px;border:1px solid transparent;border-radius:9px;font:inherit;color:inherit;line-height:inherit}
.poem-heading.selected{background:transparent;border-color:transparent;color:inherit}
.poem-layout .poem-line.selected{background:transparent;border-color:transparent;box-shadow:none}
.poem-layout>.poem-line:focus{outline:none}
.poem-layout .poem-line.playing .line-sound{opacity:0}
.poem-layout>.poem-line,.poem-layout>.poem-line.selected{width:100%;min-height:64px;margin:0;padding:4px 36px;gap:0;justify-content:center}
.poem-layout .poem-text{position:relative;font-size:27px;letter-spacing:0;line-height:1.4}.poem-layout .line-copy{gap:2px;min-width:0}.poem-layout .line-zh{font-size:11px;line-height:1.5}.poem-layout .poem-pinyin{font-size:12px;letter-spacing:.4px;line-height:1.4}.poem-layout .line-sound{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:14px;height:14px}.poem-layout .poem-author{margin:2px 0 4px;line-height:1.4}
@media(max-width:760px){.poem-layout>.poem-line,.poem-layout>.poem-line.selected{padding:4px 30px}.poem-layout .poem-text{font-size:24px;letter-spacing:0}.poem-layout .poem-ruby{width:clamp(36px,10vw,40px)}.poem-layout .poem-pinyin{font-size:clamp(10.5px,2.85vw,11px);letter-spacing:0}.poem-layout .line-zh{font-size:10px}.poem-layout .line-sound{right:10px;width:12px;height:12px}}
@media(max-width:760px){.with-chapter-nav{padding-top:12px;padding-bottom:calc(154px + env(safe-area-inset-bottom))}.with-chapter-nav .topbar,.with-chapter-nav .reader-voice-tools{display:none}.chapter-strip{position:fixed;z-index:20;bottom:0;left:0;right:0;max-width:none;margin:0;padding:9px 16px max(9px,env(safe-area-inset-bottom));border-radius:0;border:0;border-top:1px solid #dce3cd;background:#f0f2e8f5;backdrop-filter:blur(12px)}.chapter-strip-heading{font-size:10px;margin-bottom:5px}.chapter-thumbnails{gap:10px}.chapter-thumb{flex:0 0 82px;flex-direction:column;gap:4px;padding:5px}.chapter-thumb-art{width:62px;height:55px}.chapter-thumb-title{flex-direction:row;align-items:center;gap:5px;font-size:11px}.chapter-thumb-title small{font-size:8px}}

.with-chapter-nav:has(.poem-layout) .reader-brand{margin-top:12px}
.with-chapter-nav:has(.poem-layout)>.back-link{min-height:36px}
.with-chapter-nav:has(.poem-layout)>.reader-head{display:block;margin-top:0;margin-bottom:12px}
.with-chapter-nav:has(.poem-layout) .reader-title p{margin-top:0}
.with-chapter-nav:has(.poem-layout) .reader-controls:empty{display:none}
@media(max-width:760px){.with-chapter-nav .reader-card{touch-action:pan-y pinch-zoom}}
.with-chapter-nav:has(.poem-layout) .chapter-strip{margin-top:12px}
@media(max-width:760px){.with-chapter-nav:has(.poem-layout){padding-bottom:max(16px,env(safe-area-inset-bottom))}.with-chapter-nav:has(.poem-layout) .chapter-strip{position:relative;bottom:auto;left:auto;right:auto;margin:12px -20px 0}}
.classic-mode-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-12px 0 18px;color:#99907d;font-size:12px}
.home-mode-switch{display:flex;flex-shrink:0;padding:3px;border:1px solid #d9d7bd;border-radius:28px;background:#f5efdf;color:#998365}
.home-mode-switch,.explore-stage,body.exploring dialog{touch-action:manipulation}
.home-mode-switch button{min-height:34px;min-width:56px;padding:4px 12px;border-radius:24px;font-size:13px;font-weight:600;letter-spacing:1px}
.home-mode-switch button[aria-pressed="true"]{background:#839d60;color:#fffdf1;box-shadow:0 2px 5px #4c663223}
.explore-page{position:relative;isolation:isolate;display:flex;justify-content:center;min-height:100svh;overflow:hidden;background:#c7b38a}
.explore-page::before{content:"";position:absolute;inset:-24px;z-index:-1;background:linear-gradient(#614c2a22,#614c2a44),var(--room-image) center/cover;filter:blur(18px)}
.explore-stage{position:relative;isolation:isolate;flex-shrink:0;align-self:center;width:min(100%,max(360px,calc(max(100dvh,700px) * .5)));height:max(100dvh,700px);overflow:hidden;box-shadow:0 0 80px #5f442755;container-type:inline-size}
.room-world{position:absolute;left:50%;top:50%;width:max(100%,calc(max(100dvh,700px) * 836 / 1881));aspect-ratio:836 / 1881;transform:translate(-50%,-50%);isolation:isolate}
.room-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:-1;user-select:none;pointer-events:none}
/* Browser chrome and the software keyboard must not change the room's width. */
@media(max-width:760px){
 .explore-stage{width:100%;height:max(100svh,700px)}
 .room-world{width:max(100%,calc(max(100svh,700px) * 836 / 1881))}
 #child-name{font-size:16px}
}
.room-header{position:absolute;z-index:3;right:4%;top:max(14px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:flex-end}
.room-header .home-mode-switch{padding:1px}
.room-header .home-mode-switch button{min-width:44px;min-height:44px;padding:2px 6px;font-size:11px;letter-spacing:0}
.room-header{gap:8px}
.room-music-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:4px 10px;border:1px solid #b7bc9480;border-radius:18px;background:#fff8e7ad;color:#5d7046;font-size:11px;white-space:nowrap;touch-action:manipulation}
.room-music-toggle[aria-pressed="false"]{color:#847c6a}
.room-music-toggle>span:first-child{font-size:15px;line-height:1}
.room-music-top{width:44px;height:44px;padding:0;gap:0}
.room-music-top>span:first-child{display:grid;place-items:center;width:20px;height:20px;animation:room-music-spin 5s linear infinite;animation-play-state:paused}
.room-music-top.is-playing>span:first-child{animation-play-state:running}
@keyframes room-music-spin{to{transform:rotate(360deg)}}
.room-music-top .room-music-label{display:none}
.room-music-settings{display:none;margin-top:18px;padding:12px;border:1px solid var(--line);border-radius:12px}
#name-dialog[data-panel="voice"] .room-music-settings{display:block}
.room-music-settings-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.material-credits{margin:18px 0;padding-top:12px;border-top:1px solid var(--line);font-size:12px}
.material-credits summary{cursor:pointer;color:var(--green)}
.material-credits p{font-size:11px;overflow-wrap:anywhere}
.material-credits a{text-decoration:underline;text-underline-offset:2px}
:root[data-theme="night"] .room-music-toggle{background:#3c3328b8;border-color:#8a745180;color:#e6d5b7}
.room-object{position:absolute;z-index:1;border:2px solid transparent;border-radius:20%;padding:0;background:transparent;touch-action:manipulation;transition:background .2s,border-color .2s}
.room-object-label{position:absolute;left:var(--label-x);top:var(--label-y);display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:39px;padding:7px 11px;border:1px solid #cca97280;border-radius:10px;background:#fff8e7ad;box-shadow:0 2px 8px #7a53241a;color:#765331;font-family:var(--serif);font-size:clamp(12px,3.5cqw,17px);font-weight:700;letter-spacing:1px;white-space:nowrap;transform:translate(-50%,-50%);opacity:0;transition:opacity .2s,background .2s;pointer-events:none}
.room-object-label svg{width:17px;height:17px;color:#8ba261;flex-shrink:0}
.room-radio .room-object-label{transform:translate(-50%,-50%)}
.room-radio-notes{position:absolute;inset:0;pointer-events:none;color:#000}
.show-hints .room-radio-notes{display:none}
.room-radio-note{position:absolute;right:46%;top:2%;font:600 15px/1 Georgia,serif;opacity:0;animation:room-radio-sound 3s ease-in-out infinite}
.room-radio-note:nth-child(2){right:76%;top:-12%;font-size:20px;animation-delay:.22s}
.room-radio-note:nth-child(3){right:106%;top:-28%;font-size:25px;animation-delay:.44s}
@keyframes room-radio-sound{0%,100%{opacity:0;translate:0 2px}20%,45%{opacity:.9;translate:-3px -3px}70%{opacity:0;translate:-8px -8px}}
.room-reading .room-object-label{font-size:clamp(14px,3.8cqw,18px);min-height:42px}
.show-hints .room-object-label,.room-object:hover .room-object-label,.room-object:focus-visible .room-object-label{opacity:1;pointer-events:auto}
.room-album .room-object-label{left:0;transform:translateY(-50%)}
.room-object:focus-visible{outline:3px solid #fff5c5;outline-offset:3px;background:#fff8cf33;border-color:#8c9c5b}
.room-object:active{background:#fff8cf38}
.room-greeting{position:absolute;z-index:2;left:30%;top:44%;width:39%;height:19%;padding:0;background:transparent;border-radius:40%;text-align:center}
.room-name-tag{position:absolute;left:55.6%;top:20%;display:flex;align-items:center;justify-content:center;width:max-content;min-width:24%;max-width:62%;min-height:8%;padding:2px 6px;border:1px solid #b5a77b;border-radius:3px;background:#fff5d9;color:#6f6547;font-family:var(--serif);font-weight:700;font-size:min(clamp(8px,2.8cqw,14px),calc(16cqw / var(--name-length,2)));line-height:1;white-space:nowrap;transform:translate(-50%,-50%) rotate(-12deg);box-shadow:0 1px 2px #6a76341a}
.room-name-tag svg{width:12px;height:12px}
.room-cat{position:absolute;z-index:2;left:66%;top:54%;width:29%;height:10%;border-radius:45%;background:transparent}
.room-cat:hover,.room-cat:focus-visible{background:transparent}
.room-footer{position:absolute;left:6%;right:6%;bottom:max(18px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:8px}
.room-help{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 22px;border:1px solid #d5bd8d;border-radius:26px;background:#fff8e9ef;box-shadow:0 3px 10px #7a532422;color:#80603e;font-size:14px;font-weight:600}
.room-help>span{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#b29268;color:#fff9e9;font-family:Georgia,serif}
.room-parent{display:flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:4px 12px;border-radius:18px;color:#765c3e;background:#fff9e5c9;font-size:11px}
.room-parent svg{width:13px;height:13px}
.outfit-preview{display:none}
#name-dialog[data-panel="character"] .profile-voice-fieldset{display:none}
#name-dialog[data-panel="outfit"] .profile-name-fields,#name-dialog[data-panel="outfit"] .profile-voice-fieldset,#name-dialog[data-panel="voice"] .profile-name-fields,#name-dialog[data-panel="voice"] .outfit-fieldset{display:none}
#name-dialog[data-panel="outfit"] .outfit-preview{display:block;width:140px;height:140px;margin:0 auto;border-radius:50%;overflow:hidden;background:#eceddb}
#name-dialog[data-panel="voice"]{background:linear-gradient(145deg,#faf6e8,#edf1df);border:3px solid #bac69d;box-shadow:0 16px 60px #394a3422}
#name-dialog[data-panel="voice"] h2::before{content:"♫";margin-right:9px;color:#889f64}
dialog::backdrop{background:#403f3514;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#explore-shelf-dialog{max-width:650px;max-height:88svh;overflow:auto;background:#fff9eb;border:3px solid #c8ac7d;padding:22px 20px}
#explore-shelf-dialog .dialog-scroll>.eyebrow{display:block;margin:0 0 6px}
#explore-shelf-dialog h2{margin:0;font-size:23px;line-height:1.4}
#explore-shelf-dialog .dialog-scroll>p{margin-top:7px;line-height:1.5}
#explore-shelf-dialog .tabs{flex-wrap:wrap;gap:5px;margin:9px 0 14px}
#explore-shelf-dialog .book-cover{aspect-ratio:.72}
#explore-shelf-dialog .bookshelf:after{display:none}
#explore-shelf-dialog .cover-title{font-size:18px;padding:15px 10px}
#explore-shelf-dialog .book-cover .cover-art{width:120%;height:70%;left:-10%;bottom:0}
#explore-shelf-dialog .book-meta{font-size:12px;display:block}
#explore-shelf-dialog .book-meta .tag{display:none}
#explore-shelf-dialog .book-details{font-size:10px}
#explore-shelf-dialog h2{color:#795c39}
#album-dialog{max-width:760px;max-height:88svh;overflow:auto;padding:28px 24px;border:3px solid #bdc69c;background:linear-gradient(100deg,#fffaf0,#f4f3e5);box-shadow:0 16px 60px #394a3433}
#album-dialog h2{color:#687b4d;margin-top:10px}
#album-dialog .page-subtitle{margin-bottom:18px;line-height:1.8}
#album-dialog .sticker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:0}
#album-dialog .sticker-card{padding:16px 12px;background:#fffdf5}
#album-dialog .sticker-art{width:90px;height:90px;margin-bottom:10px}
#album-dialog .sticker-card h3{font-size:17px}
@media(max-width:760px){#album-dialog{padding:24px 16px}#album-dialog .sticker-grid{grid-template-columns:1fr}#album-dialog .sticker-card{grid-template-columns:76px minmax(0,1fr);column-gap:12px;text-align:left}#album-dialog .sticker-art{width:76px;height:76px;margin:0}#album-dialog .sticker-card .btn{white-space:normal;max-width:100%}}
body.exploring dialog:is(#name-dialog,#explore-shelf-dialog,#album-dialog,#parent-dialog){position:fixed;inset:auto;left:var(--room-dialog-x);top:var(--room-dialog-y);transform:translate(-50%,-50%);margin:0;width:calc(var(--room-dialog-width) - 24px);max-width:calc(var(--room-dialog-width) - 24px);max-height:min(calc(var(--room-dialog-height) * .8),calc(var(--room-dialog-height) - 24px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b5bc96 transparent}
body.exploring dialog:is(#name-dialog,#parent-dialog){max-width:min(420px,calc(var(--room-dialog-width) - 24px))}
body.exploring #album-dialog .sticker-grid{grid-template-columns:1fr}
body.exploring #album-dialog .sticker-card{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:12px;text-align:left;align-items:center}
body.exploring #album-dialog .sticker-art{grid-row:1 / 5;width:76px;height:76px;margin:0}
body.exploring #album-dialog .sticker-card .btn{justify-self:start;max-width:100%;white-space:normal}
@media(max-height:650px){.room-footer{flex-direction:row;justify-content:center;gap:8px;bottom:max(14px,env(safe-area-inset-bottom))}.room-parent{min-height:44px}}
@media(max-width:760px){.classic-mode-row{margin:-6px 0 16px;font-size:11px}.home-mode-switch button{min-height:32px;min-width:48px;padding:4px 10px;font-size:12px}#explore-shelf-dialog .cover-title{font-size:15px}#explore-shelf-dialog .tabs .tab{padding:7px 12px}#explore-shelf-dialog .book-meta{font-size:10px}#explore-shelf-dialog .book-details{font-size:9px}}

/* The room and its hotspots share one proportional world; only its quiet edges crop. */
.room-caption{position:absolute;z-index:3;left:5%;top:max(20px,env(safe-area-inset-top));display:flex;flex-direction:column;gap:4px;color:#654c30;text-shadow:0 1px 8px #fff7e8}
.room-caption>span{font:700 clamp(14px,3.8cqw,19px)/1.4 var(--serif);letter-spacing:1px}
.room-caption small{font-size:10px;letter-spacing:2px;opacity:.8}
.room-object-label{width:30px;height:30px;min-height:30px;padding:0;gap:0;border-radius:50%;font-size:clamp(11px,3cqw,15px);letter-spacing:.5px;opacity:1;pointer-events:auto}
.room-object-label>span{display:none}
.show-hints .room-object-label,.room-object:focus-visible .room-object-label{width:auto;height:auto;min-height:30px;padding:5px 9px;gap:5px;border-radius:15px}
.show-hints .room-object-label>span,.room-object:focus-visible .room-object-label>span{display:inline}
@media(hover:hover) and (pointer:fine){
 .room-object:hover .room-object-label{width:auto;height:auto;min-height:30px;padding:5px 9px;gap:5px;border-radius:15px}
 .room-object:hover .room-object-label>span{display:inline}
}
.room-object-label svg{width:15px;height:15px}
.room-reading .room-object-label{min-height:30px;font-size:clamp(12px,3.2cqw,16px)}
.room-wardrobe .room-object-label{left:80%;top:74%}
.room-shelf .room-object-label{color:#536c37}
.room-wardrobe .room-object-label,.room-radio .room-object-label,.room-album .room-object-label{font-weight:500}
.room-album .room-object-label{left:var(--label-x);transform:translate(-50%,-50%)}
.room-wardrobe .room-object-label{transform:translate(-85%,-50%)}
.show-hints .room-object{border-color:#fff4c29c;background:#fff8cf14}
.show-hints .room-object-label{opacity:1;box-shadow:0 2px 8px #7a53241a,0 0 0 3px #fff8dd55}
.room-object:hover .room-object-label,.room-object:focus-visible .room-object-label{background:#fff8e7c7}
.room-footer{z-index:4;left:7%;right:7%;bottom:max(16px,env(safe-area-inset-bottom));gap:12px;flex-direction:column}
.room-read-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:100%;min-height:44px;padding:8px 14px;border:1px solid #f5f6ce;border-radius:24px;background:linear-gradient(135deg,#819c57,#627f43);color:#fffced;box-shadow:0 4px 0 #4b6437,0 8px 24px #4d57353d;touch-action:manipulation}
.room-read-cta>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 clamp(13px,3.5cqw,16px)/1.5 var(--serif);letter-spacing:1px}
.room-read-cta svg{width:18px;height:18px;flex-shrink:0}
.room-read-cta svg:last-child{width:15px;margin-left:0}
.room-read-cta:active{transform:translateY(2px);box-shadow:0 2px 0 #4b6437}
.room-footer-tools{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;max-width:100%;gap:6px}
.room-help,.room-parent,.room-collection{min-height:44px;padding:5px 11px;background:#fff9e9e8;border:1px solid #dbc49c;color:#755d40;box-shadow:0 2px 8px #77533114;font-size:11px;font-weight:500}
.room-collection{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:18px;white-space:nowrap}
.room-collection svg{width:14px;height:14px}
.room-help{gap:5px}
.room-help>span{width:16px;height:16px;font-size:11px}
.room-character{position:absolute;pointer-events:none;transform-origin:50% 95%;filter:drop-shadow(0 3px 2px #77502a18)}
.room-child{left:28%;top:40%;width:43%;aspect-ratio:3 / 4;animation:room-child-breathe 6s ease-in-out infinite}
.room-kitten{left:64%;top:45%;width:34%;aspect-ratio:3 / 4;animation:room-cat-breathe 7s ease-in-out 1s infinite}
.room-sprite{display:block;width:100%;height:100%;background-image:url('./assets/exploration/room-characters-v2.png');background-size:400% 100%;background-repeat:no-repeat}
.room-sprite-forest{background-position:0 0}
.room-sprite-sky{background-position:33.333333% 0}
.room-sprite-sunshine{background-position:66.666667% 0}
.room-sprite-cat{background-position:100% 0}
.room-greeting{left:28%;top:40%;width:43%;height:auto;aspect-ratio:3 / 4}
.room-hello{position:absolute;inset:0;width:100%;height:100%;padding:0;border-radius:40%;background:transparent;touch-action:manipulation}
.room-name-control,.room-name-visual{position:absolute;z-index:1;left:55%;top:34%;display:flex;align-items:center;justify-content:center;width:80%;min-height:44px;padding:0;background:transparent;transform:translate(-50%,-50%);touch-action:manipulation}
.room-name-control:not(:disabled):active{transform:translate(-50%,-50%)}
.room-name-tag{position:static;min-width:28px;max-width:100%;min-height:18px;font-size:min(clamp(8px,2.8cqw,14px),calc(18cqw / var(--name-length,2)));transform:rotate(-9deg)}
.room-greeting[data-outfit="sky"] .room-name-control,.room-child[data-outfit="sky"] .room-name-visual{left:51%}
.room-greeting[data-outfit="sunshine"] .room-name-control,.room-child[data-outfit="sunshine"] .room-name-visual{left:48%}
.room-eyelid{position:absolute;width:6.6%;height:4.6%;border-radius:50%;background:#ffe7c8;border-bottom:1.5px solid #72503c;opacity:0;transform:translate(-50%,-50%) rotate(-10deg);animation:room-blink 7s linear infinite}
.room-eye-left{left:48.5%;top:51.45%}
.room-eye-right{left:69.3%;top:47.5%}
.room-child[data-outfit="sky"] .room-eye-left{left:43.8%}
.room-child[data-outfit="sky"] .room-eye-right{left:64.9%}
.room-child[data-outfit="sunshine"] .room-eye-left{left:39%}
.room-child[data-outfit="sunshine"] .room-eye-right{left:60%}
.room-child{animation:room-child-breathe 6s ease-in-out infinite;transform-origin:50% 95%}
.room-world.child-greeted .room-child{animation:room-child-hello 1s ease-in-out,room-child-breathe 6s ease-in-out 1s infinite}
.room-prop{position:absolute;pointer-events:none;transform-origin:50% 90%;animation:room-prop-rock var(--prop-duration) ease-in-out var(--prop-delay) infinite}
.room-prop-art{display:block;width:100%;height:100%;overflow:hidden;fill:none;stroke:none}
.room-prop-wardrobe{transform-origin:50% 3%;animation-name:room-clothes-sway}
.room-prop-reading{animation-name:room-book-float}
.room-prop-radio{animation-name:room-radio-rock}
.room-prop-album{animation-name:room-prop-rock}
.room-prop[data-object="shelf"]{animation-name:room-shelf-sway}
@keyframes room-shelf-sway{0%,100%{transform:rotate(-.18deg)}50%{transform:rotate(.18deg)}}
@keyframes room-prop-rock{0%,100%{transform:rotate(-.45deg)}50%{transform:rotate(.45deg)}}
@keyframes room-clothes-sway{0%,100%{transform:rotate(-1.1deg)}50%{transform:rotate(1.1deg)}}
@keyframes room-book-float{0%,100%{transform:translateY(0) rotate(-.3deg)}50%{transform:translateY(-.4cqw) rotate(.3deg)}}
@keyframes room-radio-rock{0%,100%{transform:rotate(-.3deg)}50%{transform:rotate(.3deg)}}
.room-child:not([data-pose="sit"]),.room-greeting:not([data-pose="sit"]){top:auto;bottom:34.5%;aspect-ratio:var(--pose-ratio)}
.room-child:not([data-pose="sit"]) .room-sprite{background-image:url('./assets/exploration/room-poses-v3.png');background-size:300% var(--pose-scale-y);background-position:var(--pose-x) var(--pose-y)}
.room-sprite-forest{--pose-x:0%}.room-sprite-sky{--pose-x:50%}.room-sprite-sunshine{--pose-x:100%}
.room-child:not([data-pose="sit"]) .room-eyelid{display:none}
.room-greeting:not([data-pose="sit"]) .room-name-control,.room-child:not([data-pose="sit"]) .room-name-visual{left:var(--pose-hat-x);top:var(--pose-hat-y)}
.room-pet-hearts{position:absolute;left:25%;top:-5%;color:#bd785b;font:700 30px/1 Georgia,serif;opacity:0;pointer-events:none}
.cat-petted .room-pet-hearts{animation:room-cat-heart 1.4s ease-out forwards}
.room-world:has(.cat-petted) .room-kitten{animation:room-cat-nuzzle .6s ease-in-out}
@keyframes room-child-breathe{0%,100%{transform:translateY(0) rotate(-.7deg) scaleY(1)}50%{transform:translateY(-1.2cqw) rotate(.7deg) scaleY(1.015)}}
@keyframes room-cat-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.018)}}
@keyframes room-child-hello{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-1.8cqw) rotate(-3deg)}65%{transform:translateY(-.6cqw) rotate(2deg)}}
@keyframes room-cat-nuzzle{0%,100%{transform:rotate(0)}50%{transform:rotate(-3deg) translateY(-2px)}}
@keyframes room-cat-heart{0%{opacity:0;transform:translateY(4px) scale(.7)}25%{opacity:1}100%{opacity:0;transform:translateY(-24px) scale(1.2)}}
@keyframes room-blink{0%,92%,96%,100%{opacity:0}93%,95%{opacity:1}}

.poem-anthology{padding:30px 24px 36px;background:#faf5e7}
.poem-anthology .poem-backdrop{height:auto;max-height:620px;aspect-ratio:3/2;object-fit:contain;object-position:center top;mask-image:linear-gradient(#000 72%,transparent)}
.poem-anthology .poem-backdrop{-webkit-mask-image:linear-gradient(to bottom,#000 62%,#000c 74%,#0005 90%,transparent 100%);mask-image:linear-gradient(to bottom,#000 62%,#000c 74%,#0005 90%,transparent 100%)}
.poem-anthology h2{overflow-wrap:anywhere;font-size:clamp(22px,3vw,29px)}
.poem-anthology .anthology-lines{max-width:760px;margin:22px auto 0}
.poem-anthology .poem-line{width:100%;min-height:44px;margin:0;padding:6px 28px;background:transparent}
.poem-anthology .poem-text{white-space:normal;overflow-wrap:anywhere;font-size:clamp(19px,2.5vw,25px);line-height:1.9;letter-spacing:2px}
.poem-anthology .poem-text-only{display:flex;justify-content:center}
.poem-anthology .poem-line .line-copy{display:flex;align-items:center}
.poem-anthology .anthology-lines{container-type:inline-size}
.poem-anthology .poem-line:has(.poem-ruby) .poem-text{white-space:nowrap;letter-spacing:0}
.poem-anthology .poem-ruby{width:clamp(23px,10cqw,40px)}
.poem-anthology .poem-ruby .poem-pinyin{font-size:clamp(8px,3cqw,11px)}
.poem-pinyin-toggle{position:relative;min-height:24px;width:40px;margin:0;padding:2px;border:1px solid #cbd2bd;border-radius:14px;background:#e7e8df;color:#6d765b}
.poem-pinyin-toggle>span{display:block;width:18px;height:18px;border-radius:50%;background:#fffdf6;box-shadow:0 1px 3px #4c543522;transition:transform .16s ease}
.poem-pinyin-toggle[aria-checked="true"]{background:#8ea575;border-color:#8ea575}
.poem-pinyin-toggle[aria-checked="true"]>span{transform:translateX(16px)}
.poem-anthology .anthology-lines-paired{display:grid;grid-template-columns:repeat(2,max-content);justify-content:center;column-gap:12px;container-type:inline-size}
.poem-anthology .anthology-lines-paired .poem-line{min-width:0;padding:5px 0}
.poem-anthology .anthology-lines-paired .poem-text{white-space:nowrap;overflow-wrap:normal;font-size:clamp(12px,5.6cqw,25px);letter-spacing:0}
.poem-anthology .anthology-lines-paired .line-sound{display:none}
.poem-anthology .poem-translation{width:100%;max-width:760px;box-sizing:border-box;font-size:14px;line-height:2}
.poem-preface{max-width:760px;margin:20px auto;text-align:left;font-size:14px;line-height:2;overflow-wrap:anywhere}
.poem-preface summary{cursor:pointer;color:#6d765b}
@media(max-width:760px){.poem-anthology{padding:25px 14px 28px}.poem-anthology .poem-line{padding:5px 12px}.poem-anthology .poem-text{letter-spacing:1px}.poem-anthology .poem-translation{padding:12px}.poem-anthology .poem-ruby{width:clamp(26px,7vw,36px)}.poem-anthology .anthology-lines-paired{width:100%;grid-template-columns:repeat(2,max-content);justify-content:center;column-gap:18px}.poem-anthology .anthology-lines-paired .poem-line{padding:5px 0}.poem-anthology .anthology-lines-paired .poem-text{font-size:clamp(12px,4.8cqw,18px)}.poem-anthology .anthology-lines-paired .poem-ruby{width:clamp(15px,5.1cqw,22px)}.poem-anthology .anthology-lines-paired .poem-ruby .poem-pinyin{font-size:clamp(6px,2cqw,8px)}}
.poem-anthology.poem-has-pinyin .poem-ruby{width:clamp(23px,10cqw,40px)}
@media(max-width:760px){.poem-anthology.poem-has-pinyin .anthology-lines-paired .poem-ruby{width:clamp(15px,5.1cqw,22px)}}
@media(max-width:760px){
  .poem-anthology .poem-text,.poem-anthology .anthology-lines-paired .poem-text{font-size:clamp(20px,5.6vw,24px);line-height:1.9;letter-spacing:1px}
  .poem-anthology .anthology-lines-paired{grid-template-columns:minmax(0,1fr);column-gap:0}
  .poem-anthology .anthology-lines-paired .poem-line{padding:5px 0}
  .poem-anthology.poem-has-pinyin .anthology-lines-paired .poem-ruby{width:clamp(24px,9cqw,32px)}
  .poem-anthology .anthology-lines-paired .poem-ruby .poem-pinyin{font-size:clamp(9px,3cqw,11px)}
}
.poem-anthology .poem-title-row>.poem-repeat{display:flex;flex-direction:column;justify-content:center;gap:1px;width:32px;color:#6d765b}

.poem-anthology .poem-repeat span{font-size:9px;line-height:1.2}
.poem-anthology .poem-author-row{display:flex;align-items:center;justify-content:center;gap:9px;margin:3px 0 14px}
.poem-anthology .poem-author-row .poem-author{margin:0}
.poem-author-tools{display:flex;align-items:center;gap:5px}
.poem-author-tools .poem-pinyin-toggle{min-height:24px;width:40px;margin:0;padding:2px}
.poem-author-tools .poem-repeat,.poem-author-tools .poem-repeat:active{position:static;width:auto;height:28px;min-height:28px;padding:2px 6px;display:flex;flex-direction:row;align-items:center;gap:4px;transform:none;color:#6d765b}
.poem-author-tools .poem-repeat[aria-pressed="true"]{color:#526d3e}
.poem-author-tools .poem-repeat svg{width:15px;height:15px}
.poem-author-tools .poem-repeat span{font-size:9px}
.poem-anthology .poem-title-main{display:block;width:fit-content;max-width:calc(100% - 56px)}
.poem-anthology h2{min-width:0;font-size:clamp(22px,2.3vw,28px);font-weight:600;line-height:1.5;letter-spacing:.04em;text-wrap:balance}
.poem-anthology h2 .poem-heading{max-width:100%;text-wrap:balance}
.poem-anthology .poem-title-main>.auto-btn,.poem-anthology .poem-title-main>.auto-btn:active,.poem-anthology .poem-title-main>.auto-btn[aria-pressed="true"]{position:absolute;left:calc(100% + 4px);top:50%;width:24px;min-height:36px;height:36px;transform:translateY(-50%)}
.poem-anthology .poem-author-row{margin:8px 0 0}
.poem-anthology .poem-author{font-size:13px;line-height:1.6;letter-spacing:.05em;color:#88765e}
.poem-anthology .anthology-lines{margin-top:24px}
.poem-anthology .poem-line,.poem-anthology .anthology-lines-paired .poem-line{min-height:44px;padding:4px 0}
.poem-anthology .poem-text,.poem-anthology .anthology-lines-paired .poem-text{font-family:var(--serif);font-size:clamp(22px,2vw,26px);font-weight:400;line-height:1.75;letter-spacing:.03em;color:#453b2e}
.poem-layout .poem-punctuation:last-child{position:relative;left:auto;bottom:auto;display:inline-block;width:0;overflow:visible;white-space:nowrap;vertical-align:baseline}
.poem-anthology .anthology-lines-paired{column-gap:20px;row-gap:2px}
.poem-anthology .poem-translation{max-width:640px;margin-top:28px;padding:16px;border-radius:12px;font-size:14px;line-height:1.85;letter-spacing:.015em;color:#655943;background:#fffaf0df}
.poem-anthology .poem-translation strong{color:#514a39}
@media(max-width:760px){
  .poem-anthology{padding:24px 14px}
  .poem-anthology .poem-text,.poem-anthology .anthology-lines-paired .poem-text{font-size:clamp(20px,5.2vw,24px)}
  .poem-anthology .anthology-lines-paired{column-gap:0}
  .poem-anthology .poem-translation{padding:14px;margin-top:24px}
}

.poem-layout:has(>.poem-translation){display:flex;flex-direction:column}
.poem-layout:has(>.poem-translation)>:not(.poem-backdrop){flex-shrink:0}
.poem-layout>.anthology-lines,.poem-layout>.poem-line:has(+.poem-translation){margin-bottom:27px}
.poem-layout>.poem-translation{margin-top:auto}
.poem-anthology .anthology-lines{display:grid;grid-template-columns:minmax(0,1fr);width:100%;min-width:0;box-sizing:border-box;align-self:stretch;row-gap:2px}
.poem-anthology .anthology-lines-paired{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}
.poem-anthology .anthology-lines .poem-line{min-width:0;width:100%;max-width:100%;margin:0;padding:4px 0}
.poem-anthology .anthology-lines .line-copy{min-width:0;width:100%}
.poem-anthology .anthology-lines .poem-text{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.poem-anthology .anthology-lines-paired .poem-text{font-size:clamp(12px,5.7cqw,24px);letter-spacing:0;white-space:nowrap}
.poem-anthology .anthology-lines-paired.anthology-lines-five .poem-text{font-size:clamp(16px,7.7cqw,24px)}
.poem-anthology .anthology-lines .poem-line-long{grid-column:1/-1}
.poem-anthology .anthology-lines .poem-line-long .poem-text{white-space:normal;overflow-wrap:anywhere;font-size:clamp(20px,5.2vw,24px);letter-spacing:.03em}
.poem-anthology.poem-has-pinyin .anthology-lines .poem-ruby{width:1.05em}
.poem-anthology .anthology-lines-paired .poem-ruby .poem-pinyin{font-size:clamp(7px,2.2cqw,10px)}
.poetry-cover{background:linear-gradient(145deg,#f4f0df,#e5ebdf 65%,#dce6de)!important;border-color:#d3d8c5!important;box-shadow:none}
.poetry-cover:after{content:"";position:absolute;inset:42% 0 0;background:radial-gradient(ellipse at 50% 100%,#9daa7b42,transparent 65%),linear-gradient(165deg,transparent 30%,#fff9 100%);pointer-events:none}
.poetry-cover .cover-art{display:none}
.poetry-cover .cover-title{z-index:2}
.poetry-bookshelf{grid-template-columns:repeat(3,minmax(0,1fr))}
.poetry-category-book .book-cover{aspect-ratio:.78}
.poetry-cover .cover-title{padding-top:20px;font-size:19px;line-height:1.65}
.poetry-cover-1{background:linear-gradient(145deg,#f6eedb,#eadfc8 65%,#dce5d9)!important}
.poetry-cover-2{background:linear-gradient(145deg,#e9f0e4,#d9e7df 65%,#e7ead9)!important}
.poetry-cover-3{background:linear-gradient(145deg,#f1e9d9,#e4e5d7 65%,#dce8e4)!important}
.poetry-cover-4{background:linear-gradient(145deg,#f4eadf,#eadfce 65%,#dce4d7)!important}
.poetry-cover-5{background:linear-gradient(145deg,#e8eee2,#dce7d9 65%,#e8e5d5)!important}
.poetry-cover-6{background:linear-gradient(145deg,#f2e9dc,#e3e6d9 65%,#dce7e1)!important}
.poetry-cover-7{background:linear-gradient(145deg,#ecebdc,#dfe7d8 65%,#e9dfd2)!important}
.poetry-cover-8{background:linear-gradient(145deg,#f1e6d4,#e5e0d2 65%,#dce7df)!important}
.poetry-category-heading{display:flex;align-items:baseline;justify-content:space-between;margin:8px 0 16px;color:#795c39}
.poetry-category-heading h3{font-family:var(--serif);font-size:25px}
.poetry-category-heading span{font-size:11px;color:#9c907a}
.poetry-back{margin:0 0 8px;padding:0}
.poetry-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.poetry-shelf-item{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:10px;background:#fffdf5;border:1px solid #eee7d7}
.poetry-shelf-item strong{font-family:var(--serif);font-size:13px;color:#66543a}
.poetry-shelf-item span{font-size:9px;color:#9c907a}
.poetry-empty{grid-column:1/-1;padding:15px;color:#9c907a;font-size:12px}
@media(max-width:760px){.poetry-list{grid-template-columns:1fr}}
@media(max-width:760px){.poetry-bookshelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-left:5px;padding-right:5px}.poetry-category-book .book-cover{aspect-ratio:.72}.poetry-cover .cover-title{padding:14px 5px 0;font-size:14px}.poetry-cover .cover-title small{font-size:6px;letter-spacing:1px}.poetry-category-heading h3{font-size:21px}}
.book-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.book-tile{position:relative;min-width:0}
.bookshelf .book-tile .book-cover,#explore-shelf-dialog .book-tile .book-cover{display:block;aspect-ratio:3/4;flex:none}
.book-tile .book-cover .cover-title{display:block}
.book-cover>.poetry-cover-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.book-cover:has(>.poetry-cover-art):after{display:none}
.book-tile>.book-item{width:100%}
.book-tile>.favorite-button{position:absolute;z-index:3;top:5px;right:5px;width:36px;min-height:36px;padding:7px;border-radius:50%;box-shadow:0 2px 6px #6d603b16}
.book-tile>.favorite-button svg{width:20px;height:20px}
.book-tile>.favorite-button span{display:none}
.saved-bookshelf{margin-top:28px;grid-template-columns:repeat(3,minmax(0,1fr))}
.book-tile .cover-title{padding-top:40px}
@media(max-width:760px){.book-tile>.favorite-button{top:3px;right:3px;width:34px;min-height:34px;padding:7px}.book-tile .cover-title{padding-top:37px;font-size:13px}.saved-bookshelf{gap:12px}}
.bookshelf:has(>.book-tile){column-gap:24px;row-gap:28px;padding:0 6px 16px}
@media(min-width:1000px){.poetry-bookshelf{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px}}
.bookshelf:after{display:none}
.book-tile>.book-item{padding-bottom:0}
.book-tile .book-cover{border-radius:0;box-shadow:none;transition:none}
.book-tile .book-item:hover .book-cover{transform:none;box-shadow:none}
.book-tile .book-cover .cover-title{position:absolute;top:8px;left:50%;width:max-content;max-width:calc(100% - 12px);height:auto;min-height:0;display:block;transform:translateX(-50%);padding:4px 9px;border-radius:8px;background:#fffdf0e8;box-shadow:0 1px 5px #766c4b12;backdrop-filter:blur(2px);font-size:clamp(12px,1.05vw,15px);line-height:1.35;letter-spacing:.5px;white-space:normal;overflow-wrap:anywhere}
.book-tile .book-cover .cover-title br,.book-tile .book-cover .cover-title small{display:none}
.book-tile .book-cover .cover-art{height:100%;width:100%;left:0;bottom:0}
.book-tile .book-meta{display:block;width:100%;min-height:46px;padding:12px 32px 0 0;font-size:14px;line-height:1.5;color:#4d4a3c;overflow-wrap:anywhere;text-wrap:balance}
.book-tile .book-meta .tag{display:none}
.book-tile .book-details{display:block;width:100%;min-height:20px;margin-top:3px;font-size:11px;line-height:1.6;color:#787460}
.book-tile>.favorite-button{top:auto;right:-4px;bottom:22px;width:36px;min-height:36px;padding:9px;border-color:transparent;background:transparent;box-shadow:none}
.book-tile>.favorite-button svg{width:18px;height:18px}
.book-tile>.favorite-button[aria-pressed="true"]{background:#f5edcf;border-color:transparent}
.book-tile .coming{right:7px;bottom:7px;padding:3px 6px;font-size:10px;line-height:1.4;background:#fffaf0e8;color:#7c715c}
#explore-shelf-dialog .book-tile .cover-title{padding:4px 8px;font-size:14px}
#explore-shelf-dialog .book-tile .cover-art{width:100%;height:100%;left:0;bottom:0}
.book-tile .book-item[data-action="open-book"] .book-details,.book-tile .book-item[data-action="poetry-category"] .book-details{display:none}
.book-tile .book-item[data-id^="bookniu-"] .book-details{display:block}
.storybook-reader--external .storybook-book{min-height:calc(100dvh - 100px);display:flex;flex-direction:column;overflow:hidden}
.external-reader-toolbar{display:flex;align-items:center;gap:12px;flex:0 0 auto;padding:2px 8px 10px}
.external-reader-toolbar strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:14px}
.external-reader-toolbar .storybook-catalog-link{min-height:34px;padding:5px 10px;border-color:#d5d8c5;background:#e9ebdc;color:#536940}
.external-reader-toolbar .storybook-catalog-link svg{width:16px;height:16px}
.external-reader-toolbar .bookniu-auto-btn{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;min-height:34px;padding:5px 10px;font-size:12px;white-space:nowrap}
.external-reader-toolbar .bookniu-auto-btn svg{width:14px;height:14px}
.storybook-reader--external .chapter-thumb-art img{object-fit:cover;object-position:top;background:#fff}
.storybook-reader--external .chapter-thumb-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.external-reader{display:flex;justify-content:center;align-items:flex-start;flex:1;min-height:420px;overflow-y:auto;overscroll-behavior:contain;background:#f4f0e6}
.bookniu-page{position:relative;width:min(100%,700px);background:#fff}
.bookniu-page>img{display:block;width:100%;height:auto}
.bookniu-page>.fruit-card-layout{display:block;width:100%;height:auto;stroke:none}
.external-reader--fruit{background:var(--paper);align-items:center;container-type:size;height:420px;min-height:420px;padding:8px}
.external-reader--fruit .bookniu-page{width:min(100%,620px,calc(404px * var(--fruit-card-ratio)))}
@media(max-width:760px){.external-reader--fruit{height:auto;min-height:0}.external-reader--fruit .bookniu-page{width:min(100%,620px,calc(100cqh * var(--fruit-card-ratio)))}}
.short-sentence-layout{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;stroke:none}
.bookniu-page--landscape{aspect-ratio:var(--page-height)/var(--page-width);overflow:hidden;flex-shrink:0}
.bookniu-page-plane{position:absolute;left:0;top:0;width:calc(100% * var(--page-width) / var(--page-height));height:calc(100% * var(--page-height) / var(--page-width));transform-origin:0 0;transform:rotate(-90deg) translateX(-100%)}
.bookniu-page-plane>img{display:block;width:100%;height:auto}
.bookniu-hotspot{position:absolute;z-index:1;min-width:16px;min-height:16px;padding:0;border:2px solid transparent;border-radius:8px;background:transparent;touch-action:manipulation}
.bookniu-hotspot:hover,.bookniu-hotspot:focus-visible,.bookniu-hotspot.playing{border-color:#7aa858;background:#d9e8bd38;outline:none}
.bookniu-page-mask{position:absolute;z-index:2;display:block;border-radius:3px;background:#fff}
.numbered-chapter-art{position:relative;display:block;width:100%;height:100%;overflow:hidden}
.numbered-chapter-art>img{display:block;width:100%;height:100%;object-fit:cover}
.printed-page-number{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;pointer-events:none;stroke:none}
.bookniu-unavailable{margin:auto;padding:30px;text-align:center;color:#7d755f}
.external-page-list .storybook-entry:disabled{opacity:.55;cursor:default}
@media(max-width:760px){.storybook-reader--external .storybook-book{min-height:0}.external-reader-toolbar{gap:6px;padding:2px 4px 7px}.external-reader-toolbar strong{font-size:11px}.external-reader-toolbar .bookniu-auto-btn{padding:5px 8px;font-size:11px}.external-reader{min-height:0}}
@media(max-width:760px){
  .bookshelf:has(>.book-tile){column-gap:16px;row-gap:24px;padding:0 3px 14px}
  .book-tile .book-cover .cover-title,#explore-shelf-dialog .book-tile .cover-title{font-size:12px;line-height:1.35;letter-spacing:.2px;padding:4px 8px}
  .book-tile .book-cover .cover-title small{display:none}
  .book-tile .book-meta{min-height:46px;padding-top:10px;padding-right:22px;font-size:12px;line-height:1.5}
  .book-tile .book-details{font-size:10px;min-height:30px;line-height:1.5}
  .book-tile>.favorite-button{bottom:30px;right:-5px;width:30px;min-height:32px;padding:7px}
  .book-tile>.favorite-button svg{width:16px;height:16px}
  .book-tile .coming{right:4px;bottom:5px;padding:2px 4px;font-size:8px}
}
.book-tile .book-cover:not(.poetry-cover) .cover-title,#explore-shelf-dialog .book-cover:not(.poetry-cover) .cover-title{top:5px}
.book-tile .book-cover:not(.poetry-cover) .cover-title br{display:none}
.book-tile .book-cover .cover-title,#explore-shelf-dialog .book-tile .book-cover .cover-title{max-width:calc(100% - 8px);padding:3px 4px;font-size:clamp(9px,2.2vw,12px);line-height:1.2;letter-spacing:0}
.book-tile>.favorite-button{top:auto;right:6px;bottom:51px;width:28px;height:28px;min-height:28px;padding:5px;border:1px solid #e8dec3;border-radius:50%;background:#fffdf0e8;color:#8b7d58;box-shadow:none}
.book-tile>.favorite-button svg{width:16px;height:16px}
.saved-library{max-width:1040px;margin:20px auto 0;padding:26px 30px 34px;border:1px solid #e9e3d3;border-radius:24px;background:linear-gradient(155deg,#fffdf6,#f7f3e7);box-shadow:0 14px 34px #6856350a}
.saved-library-heading{padding:0 4px 22px;border-bottom:1px solid #e8e1d1}
.saved-library .eyebrow{font-size:10px;letter-spacing:3px;color:#9a906e}
.saved-library-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:8px}
.saved-library .page-title{margin:0;color:#473b2a;font-size:34px;letter-spacing:2px}
.saved-library .page-subtitle{margin:7px 0 0;color:#8d806b}
.saved-count{display:flex;align-items:baseline;gap:6px;padding:8px 13px;border:1px solid #e5dcc5;border-radius:999px;background:#fffaf0;color:#92805d;font-size:11px;white-space:nowrap}
.saved-library .saved-count{display:none}
.saved-count strong{font-family:var(--serif);font-size:22px;color:#61784d}
.saved-bookshelf{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 22px;margin-top:26px;padding:0 2px 20px}
.saved-bookshelf .book-tile{padding:0 9px 13px;border-radius:13px 13px 3px 3px;background:linear-gradient(90deg,#f0eadb,#fffdf5 12%,#fffdf5 88%,#ece6d7);box-shadow:0 5px 0 #d8c39e,0 8px 13px #6653330d;transition:transform .18s ease,box-shadow .18s ease}
.saved-bookshelf .book-tile:hover{transform:translateY(-4px);box-shadow:0 7px 0 #d8c39e,0 13px 20px #66533316}
.saved-bookshelf .book-item{width:100%;padding:10px 0 0;text-align:left}
.saved-bookshelf .book-cover{aspect-ratio:3/4;overflow:hidden;border:1px solid #e5ddc8;border-radius:0;box-shadow:none}
.saved-bookshelf .book-meta{display:block;margin-top:12px;color:#514532;font-family:var(--serif);font-size:16px;font-weight:700}
.saved-bookshelf .book-details{display:block;margin-top:4px;color:#998b72;font-size:11px}
.saved-bookshelf .book-tile>.favorite-button{top:15px;right:14px;bottom:auto;width:34px;height:34px;min-height:34px;border:1px solid #ead18d;background:#fff5d7;color:#997322}
.saved-empty{display:flex;min-height:270px;flex-direction:column;align-items:center;justify-content:center;margin-top:24px;padding:30px 18px;text-align:center;border:1px dashed #d9cfb8;border-radius:18px;background:#fffaf0}
.saved-empty-mark{display:grid;width:54px;height:54px;place-items:center;border-radius:50%;background:#edf0e2;color:#718556}
.saved-empty-mark svg{width:25px;height:25px}
.saved-empty h2{margin:14px 0 4px;color:#554832;font-family:var(--serif);font-size:22px}
.saved-empty p{margin:0 0 16px;color:#94866f;font-size:13px}
.saved-empty .btn{display:inline-flex;align-items:center;gap:7px}
.saved-empty .btn svg{width:15px;height:15px}
@media(max-width:760px){.saved-library{margin:12px 0 0;padding:20px 18px 25px;border-radius:20px}.saved-library-heading{padding-bottom:18px}.saved-library .page-title{font-size:29px}.saved-count{padding:7px 10px}.saved-bookshelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px;margin-top:20px;padding:0 2px 12px}.saved-bookshelf .book-tile{padding:0 8px 12px}.saved-bookshelf .book-item{padding-top:8px}.saved-bookshelf .book-cover{aspect-ratio:3/4}.saved-bookshelf .book-meta{margin-top:10px;font-size:15px}.saved-bookshelf .book-details{font-size:10px}.saved-bookshelf .book-tile>.favorite-button{top:12px;right:12px;width:32px;height:32px;min-height:32px}.saved-empty{min-height:245px}}
@media(max-width:360px){.saved-library{padding-right:13px;padding-left:13px}.saved-library .page-title{font-size:26px}.saved-count{gap:4px;padding:6px 8px}.saved-bookshelf{gap:20px 10px}}
.favorite-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 12px;border:1px solid #dedcc8;border-radius:22px;background:#fffdf5;color:#817656;white-space:nowrap;font-size:13px;flex-shrink:0}
.favorite-button[aria-pressed="true"]{color:#997322;background:#fff4cf;border-color:#ead18d}
.favorite-button[aria-pressed="true"] svg{fill:#eac15b;stroke:#997322}
.reader-controls>.favorite-button{min-height:30px;height:30px;padding:5px 9px;gap:4px;border:1px solid transparent;border-radius:15px;background:transparent;color:#7e8b68;font-size:11px;line-height:1.6}
.reader-controls>.favorite-button svg{width:14px;height:14px;stroke-width:1.7}
.reader-controls>.favorite-button[aria-pressed="true"]{background:transparent;border-color:transparent;color:#997322}
.with-chapter-nav:has(.poem-layout) .reader-controls{justify-content:flex-end}
.reader-controls{flex-wrap:wrap}
.with-chapter-nav:has(.poem-layout)>.reader-head{display:flex;justify-content:flex-end;min-height:34px;margin:0 auto 10px}
.with-chapter-nav:has(.poem-layout) .reader-controls{gap:8px;flex-wrap:nowrap;color:#6d765b}
.reader-controls .poem-author-tools{gap:8px}
.reader-controls .poem-pinyin-toggle,.reader-controls .poem-repeat,.reader-controls .poem-repeat:active,.with-chapter-nav:has(.poem-layout) .reader-controls>.favorite-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:auto;height:30px;min-height:30px;margin:0;padding:5px 9px;border:1px solid #e3e4d5;border-radius:9px;background:#f7f7ee;color:#778064;font-size:11px;line-height:1.4;box-shadow:none}
.storybook-reader--poetry .reader-controls>.favorite-button{border-radius:9px}
.reader-controls .poem-pinyin-toggle>span,.reader-controls .poem-pinyin-toggle[aria-checked="true"]>span{display:inline;width:auto;height:auto;transform:none;border-radius:0;background:transparent;box-shadow:none;white-space:nowrap}
.reader-controls .poem-pinyin-toggle[aria-checked="true"],.reader-controls .poem-repeat[aria-pressed="true"],.with-chapter-nav:has(.poem-layout) .reader-controls>.favorite-button[aria-pressed="true"]{background:#e9eedf;border-color:#d6dfc6;color:#5f7547}
.with-chapter-nav:has(.poem-layout) .reader-controls>.favorite-button[aria-pressed="true"] svg{fill:#bdcda6;stroke:currentColor}
.reader-controls .poem-repeat span{font-size:11px}
.reader-controls .poem-pinyin-toggle svg,.reader-controls .poem-repeat svg,.reader-controls>.favorite-button svg{width:14px;height:14px}
.collection-page{max-width:1040px;margin:0 auto}
.collection-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.collection-heading .eyebrow{font-size:9px;letter-spacing:2.5px;color:#727d5f}
.collection-heading h1{font-size:36px;letter-spacing:2px;margin-top:5px}
.collection-discover{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#5f734a;min-height:44px}
.collection-discover svg{width:16px;height:16px}
.collection-summary{position:relative;overflow:hidden;isolation:isolate;min-height:208px;padding:28px 32px;border:1px solid #e0e3d0;border-radius:20px;background:#eff1e5}
.collection-summary-copy{position:relative;z-index:1;max-width:70%}
.collection-kicker{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#60704e;letter-spacing:1px}
.collection-kicker svg{width:14px;height:14px;fill:#dbe3bf}
.collection-summary h2{font-family:var(--serif);font-size:28px;font-weight:600;line-height:1.45;letter-spacing:1px;margin:12px 0;color:#425238}
.collection-summary h2 br{display:none}
.collection-summary p{font-size:12px;color:#637052;line-height:1.8}
.collection-summary p b{font-size:15px;font-weight:600;margin:0 3px;color:#425238}
.collection-summary p>span{margin:0 7px;color:#9ba58a}
.collection-summary-art{position:absolute;z-index:-1;right:0;bottom:0;width:45%;height:100%;object-fit:cover;object-position:50% 70%;mask-image:linear-gradient(90deg,transparent,#000 48%);opacity:.82}
.collection-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:32px 0 16px}
.collection-list-heading h2{font-size:17px;font-weight:600;letter-spacing:1px;color:#4e5542}
.collection-list-heading h2 span{display:inline-grid;place-items:center;min-width:24px;min-height:22px;margin-left:7px;padding:0 5px;border-radius:6px;background:#eaedde;color:#677650;font:11px/1.5 sans-serif;letter-spacing:0}
.collection-list-heading>span{font-size:11px;color:#7f806b}
.favorites-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}
.favorite-card{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:start;gap:16px;padding:18px;border:1px solid #e5e3d4;border-radius:16px;background:#fffdf7;min-width:0;box-shadow:0 4px 16px #64593e04}
.favorite-cover{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;border:1px solid #e0dece;border-radius:5px 10px 10px 5px;background:#e8ecdb;box-shadow:3px 3px 0 #d9ddce;transition:box-shadow .18s}
.favorite-cover>img,.favorite-cover>.character{width:100%;height:100%;object-fit:cover}
.favorite-cover>span:not(.character){position:absolute;right:7px;bottom:7px;display:grid;place-items:center;width:24px;height:24px;border:1px solid #ffffffa6;border-radius:50%;background:#fff9ebdf;color:#626e4f;font:14px var(--serif)}
.favorite-cover:hover{box-shadow:3px 3px 0 #c2cdae}
.favorite-card-copy{min-width:0}
.favorite-kind{display:flex;align-items:center;gap:6px;font-size:10px;line-height:1.6;color:#797c62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.favorite-kind i{width:3px;height:3px;border-radius:50%;background:#b3b79c;flex-shrink:0}
.favorite-card h3{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.4;overflow-wrap:anywhere;margin:5px 0;color:#433e30}
.favorite-card .favorite-author{font-size:12px;color:#81715b;line-height:1.7}
.favorite-card .favorite-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:9px;color:#777461;font-family:var(--serif);font-size:14px;line-height:1.75}
.favorite-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.collection-read{display:inline-flex;align-items:center;gap:5px;min-height:44px;color:#5d7347;font-size:12px;font-weight:500}
.collection-read svg{width:15px;height:15px}
.collection-read:hover,.collection-discover:hover{color:#3f582c;text-decoration:underline;text-underline-offset:4px}
.favorite-card .favorite-button{width:40px;min-height:40px;padding:9px;border-radius:50%;border-color:transparent;background:transparent;color:#9b7a34}
.favorite-card .favorite-button svg{width:19px;height:19px}
.favorite-card .favorite-button span{display:none}
.favorite-card .favorite-button:hover{background:#f5efd9}
.favorites-empty{padding:30px 20px;border:1px dashed #d9dcc8;border-radius:20px;margin:24px 0;color:#817656;line-height:1.8}
.favorites-empty .btn{display:table;margin-top:16px}
.collection-empty{text-align:center;margin:0;padding:32px 20px;background:#fffdf54d;border-color:#daddc9}
.collection-empty-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 16px;border-radius:18px;background:#e9eedf;color:#7c9164}
.collection-empty-icon svg{width:26px;height:26px}
.collection-empty h3{font-family:var(--serif);font-size:22px;color:#4b5740}
.collection-empty p{margin-top:10px;font-size:13px;line-height:1.9;color:#797c66}
.collection-empty .btn{display:inline-flex;margin:20px auto 0;font-size:12px;min-height:44px}
.legacy-stickers-title{margin-top:30px;font-size:22px}
#album-dialog .collection-summary{min-height:172px;padding:20px}
#album-dialog .collection-summary h2{font-size:24px}
#album-dialog .collection-summary h2 br{display:block}
#album-dialog .collection-list-heading{margin-top:24px}
#album-dialog .favorites-grid{grid-template-columns:1fr}
@media(max-width:1050px){.favorites-grid{grid-template-columns:1fr}}
@media(max-width:760px){
  .collection-heading{margin-bottom:20px}
  .collection-heading h1{font-size:30px}
  .collection-discover{font-size:11px}
  .collection-summary{min-height:180px;padding:22px}
  .collection-summary-copy{max-width:78%}
  .collection-summary h2{font-size:25px;margin:10px 0}
  .collection-summary h2 br{display:block}
  .collection-summary-art{width:48%}
  .collection-summary p{font-size:11px}
  .collection-summary p>span{margin:0 3px}
  .collection-list-heading{margin:28px 0 14px}
  .collection-list-heading>span{font-size:10px}
  .favorites-grid{grid-template-columns:1fr;gap:12px}
  .favorite-card{grid-template-columns:88px minmax(0,1fr);padding:16px;gap:16px}
  .favorite-card h3{font-size:22px}
  .book-title-row{align-items:flex-start}.book-title-row h1{min-width:0}
}
@media(max-width:360px){.favorite-card{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:14px}.favorite-card h3{font-size:20px}.collection-summary{padding:20px}.collection-summary h2{font-size:23px}.collection-list-heading>span{display:none}}
@media(max-width:760px){.reader-head{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-items:start;gap:6px;margin-top:10px}.reader-title{display:contents}.reader-title h1{grid-column:1;grid-row:1;font-size:29px;line-height:1.3;letter-spacing:1px}.reader-controls{grid-column:1;grid-row:2;justify-content:flex-end;width:100%;margin:0;gap:8px}.reader-controls>.favorite-button,.reader-controls>.auto-btn,.reader-controls>.chinese-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:30px;min-height:30px;margin:0;padding:4px 8px;border:1px solid #e3e4d5;border-radius:9px;background:#f7f7ee;color:#778064;font-size:11px;line-height:1.3;white-space:nowrap}.reader-controls>.favorite-button svg{width:14px;height:14px}.reader-controls>.chinese-toggle input{width:27px;height:16px}.reader-controls>.chinese-toggle input::after{width:10px;height:10px}.reader-controls>.chinese-toggle input:checked::after{transform:translateX(10px)}.reader-controls>.auto-btn[aria-pressed="true"]{background:#e9eedf;border-color:#d6dfc6;color:#5f7547}}

/* Window state drives both room lighting and the reading interface. */
.room-night-art{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none;user-select:none}
.room-art,.room-night-art{transition:opacity .8s ease}
.room-window{border-radius:45% 45% 12% 12%}
.room-window .room-object-label{font-size:clamp(10px,2.7cqw,14px)}
:root[data-theme="night"]{color-scheme:dark;--paper:#191e24;--ink:#e5e0d4;--muted:#aaa99d;--green:#adbf8e;--green-dark:#d1dcaf;--line:#3b444d;--night-surface:#242c34;--night-raised:#2d3842;--night-selected:#374738}
:root[data-theme="night"] body{background:var(--paper);color:var(--ink)}
:root[data-theme="night"] :is(.sidebar,.mobile-nav,.chapter-strip){background:#202831f5;border-color:var(--line)}
:root[data-theme="night"] :is(.reader-card,.chapter-card,.book-intro,.saved-library,.saved-empty,.favorite-card,.collection-summary,.sticker-card,.outfit-option,.profile-voice-card,.favorites-empty){background:var(--night-surface);border-color:var(--line);box-shadow:none}
:root[data-theme="night"] :is(.saved-bookshelf .book-tile,.saved-count,.chapter-thumb,.template-cover,.saved-empty-mark,.icon-circle,.avatar){background:var(--night-raised);border-color:var(--line);box-shadow:none}
:root[data-theme="night"] :is(.nav-item.active,.nav-item:hover,.tab.active,.outfit-option:has(input:checked),.profile-voice-card:has(input:checked),.chapter-thumb.active){background:var(--night-selected);border-color:#839570;color:#d5dfbf}
:root[data-theme="night"] :is(.brand,.mobile-brand,.page-title,.heading-row h2,.book-meta,.book-intro h3,.chapter-copy h3,.saved-empty h2,.saved-library .page-title,.collection-summary h2,.collection-summary p b,.favorite-card h3,.collection-list-heading h2){color:var(--ink)}
:root[data-theme="night"] :is(.page-subtitle,.breadcrumb,.breadcrumb b,.quiet-badge,.nav-item,.parent-link,.side-bubble,.classic-mode-row,.hero-copy p,.book-intro p,.book-details,.chapter-copy p,.chapter-footnote,.saved-library .page-subtitle,.saved-count,.saved-empty p,.collection-summary p,.favorite-kind,.favorite-author,.favorite-excerpt,.outfit-option small,.profile-voice-card small,.reader-brand,.bottom-note){color:var(--muted)}
:root[data-theme="night"] :is(.saved-bookshelf .book-meta,.saved-count strong,.collection-read,.collection-discover,.collection-kicker,.chapter-thumb,.mobile-nav a.active,.voice-preview,.reading-voice-button,.auto-btn){color:var(--green)}
:root[data-theme="night"] :is(.reading-voice-notice,.reading-voice-button,.profile-voice-card .voice-preview,.collection-list-heading h2 span,.profile-voice-card:has(input:checked) .voice-preview){background:var(--night-raised);color:var(--green);border-color:var(--line)}
:root[data-theme="night"] .hero{background:#28332d}
:root[data-theme="night"] .hero:after{background:linear-gradient(90deg,#28332d 0%,#28332d 25%,#28332ded 35%,#28332d00 61%)}
:root[data-theme="night"] .shell :is(.hero-art,.chapter-cover-image,.chapter-thumb-art img,.poetry-cover-art,.favorite-cover img,.collection-summary-art,.scene img,.character img,.word-art){filter:brightness(.8) saturate(.86)}
:root[data-theme="night"] .reader-card .poem-layout{background:#202932}
:root[data-theme="night"] .poem-layout :is(.poem-text,.poem-title-main,.poem-title-main h2,.poem-preface){color:var(--ink)}
:root[data-theme="night"] .poem-layout :is(.poem-author,.poem-ruby rt,.poem-pinyin,.poem-author-tools){color:#b4b59f}
:root[data-theme="night"] .poem-layout .poem-backdrop{filter:brightness(.95) saturate(.9)}
:root[data-theme="night"] .poem-layout .poem-translation{background:#1c252ee8;color:#c5c0b1;border-color:var(--line)}
:root[data-theme="night"] .poem-layout .poem-translation strong{color:#ded3b7}
:root[data-theme="night"] :is(.line-en,.line-en strong){color:#e0ddc8}
:root[data-theme="night"] :is(.line-zh,.line-ipa,.line-phonetic){color:#adb6a6}
:root[data-theme="night"] .lesson-line:before{background:#596652}
:root[data-theme="night"] .lesson-line.selected:not(.poem-line){background:var(--night-selected);border-color:#6e8060}
:root[data-theme="night"] .reader-controls :is(.poem-pinyin-toggle,.poem-repeat,.favorite-button,.auto-btn,.chinese-toggle){background:var(--night-raised);border-color:var(--line);color:#bbcba6}
:root[data-theme="night"] .reader-controls :is(.poem-pinyin-toggle[aria-checked="true"],.poem-repeat[aria-pressed="true"],.favorite-button[aria-pressed="true"],.auto-btn[aria-pressed="true"]){background:var(--night-selected);border-color:#70805d;color:#e1d8ac}
:root[data-theme="night"] .poem-layout .poem-title-main>.auto-btn{background:transparent;color:var(--ink)}
:root[data-theme="night"] .favorite-button{background:var(--night-raised);border-color:var(--line);color:#c1b99c}
:root[data-theme="night"] .favorite-button[aria-pressed="true"]{background:#493e29;border-color:#806a3e;color:#ecd391}
:root[data-theme="night"] :is(.btn,.btn:hover){background:#8fa774;color:#17221b}
:root[data-theme="night"] :is(.btn.secondary,.btn.outline){background:var(--night-raised);color:#c3d1b0;border-color:var(--line)}
:root[data-theme="night"] dialog:is(#name-dialog,#explore-shelf-dialog,#album-dialog,#parent-dialog){background:#252c32;color:var(--ink);border-color:#6e755e;box-shadow:0 18px 60px #0007}
:root[data-theme="night"] dialog::backdrop{background:#080c121f}
:root[data-theme="night"] dialog :is(h2,h3,legend){color:var(--ink)}
:root[data-theme="night"] dialog :is(p,small){color:var(--muted)}
:root[data-theme="night"] dialog .dialog-close{color:var(--ink)}
:root[data-theme="night"] dialog :is(input[type="text"],input[name="nickname"]){background:#19232b;color:var(--ink);border-color:#5b6a70}
:root[data-theme="night"] dialog :is(input[type="radio"],input[type="checkbox"]){accent-color:#aebf8e}
:root[data-theme="night"] #album-dialog .sticker-card{background:var(--night-surface)}
:root[data-theme="night"] #name-dialog .outfit-preview{background:#354036}
:root[data-theme="night"] .home-mode-switch{background:#2c332f;border-color:#7f876a;color:#d1c8ad}
:root[data-theme="night"] .home-mode-switch button[aria-pressed="true"]{background:#75895d;color:#fff7dc}
:root[data-theme="night"] .explore-page{background:#201e1b}
:root[data-theme="night"] .room-art{opacity:0}
:root[data-theme="night"] .room-night-art{opacity:1}
:root[data-theme="night"] .room-prop{filter:brightness(.83) sepia(.13) saturate(.85)}
:root[data-theme="night"] .room-character{filter:brightness(.9) sepia(.17) saturate(.88) drop-shadow(0 3px 3px #29140766)}
:root[data-theme="night"] .room-caption{color:#f1dbaf;text-shadow:0 1px 6px #25180b}
:root[data-theme="night"] .room-caption small{color:#c8b28e}
:root[data-theme="night"] .room-radio-notes{color:#ffe7a8}
:root[data-theme="night"] .room-read-cta{background:linear-gradient(135deg,#71834c,#506337);border-color:#a3a87b;color:#fff2d6;box-shadow:0 4px 0 #344627,0 8px 24px #0004}
:root[data-theme="night"] :is(.room-help,.room-parent,.room-collection){background:#3c3328e8;border-color:#8a7451;color:#e6d5b7}
:root[data-theme="night"] .room-object-label{background:#f0dfbdb8;border-color:#bc986780;color:#60472e}
:root[data-theme="night"] .room-object:hover .room-object-label,:root[data-theme="night"] .room-object:focus-visible .room-object-label{background:#f0dfbdc7}
@media(max-width:760px){:root[data-theme="night"] .hero:after{background:linear-gradient(#28332d 0%,#28332de8 30%,#28332d00 65%)}}

/* A book opened inside the reading room: primary poetry catalog and reader. */
.storybook-room{position:relative;isolation:isolate;min-height:100dvh;padding:18px clamp(8px,3vw,36px) 36px;color:#514833;background:#857251}
.storybook-room::before{content:"";position:fixed;inset:-8px;z-index:-1;background:linear-gradient(#372a2040,#372a2070),var(--reading-room-image) center 64%/cover;filter:blur(3px) saturate(.85)}
.storybook-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1040px;margin:0 auto 14px;color:#fff4d9}
.storybook-home,.storybook-catalog-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:7px 12px;border:1px solid #fff5d540;border-radius:20px;background:#493d2873;backdrop-filter:blur(8px);font-size:12px;touch-action:manipulation}
.storybook-topbar svg{width:17px;height:17px}
.storybook-room-name{display:inline-flex;align-items:center;gap:7px;font-family:var(--serif);font-size:16px;letter-spacing:1px}
.storybook-room-name svg{fill:#c5d0a2;stroke:#d8dfbb;width:23px;height:23px}
.storybook-top-note{font-size:11px;color:#ecdfbf}
.storybook-book{position:relative;max-width:1040px;min-height:650px;margin:0 auto;padding:30px 34px 20px 38px;border:1px solid #d6c6a1;border-left:8px solid #6f8158;border-radius:4px 15px 15px 4px;background-color:#fcf6e6;background-image:linear-gradient(90deg,#b29a6926,transparent 35px),radial-gradient(#8c734f09 .65px,transparent .8px);background-size:auto,7px 7px;box-shadow:-5px 0 0 #4c603e,4px 5px 0 #d9c9a4,6px 9px 0 #f1e8d0,0 20px 55px #24180f55;animation:storybook-open .35s ease-out both}
.storybook-book::before{content:"";position:absolute;left:7px;top:18px;bottom:18px;width:1px;background:#b5a07650;pointer-events:none}
.storybook-heading{position:relative;isolation:isolate;overflow:hidden;padding:4px 2px 24px;border-bottom:1px solid #d8ccb0}
.storybook-heading::after{content:"";position:absolute;z-index:-1;right:-15px;top:-40px;width:250px;height:200px;background:var(--book-vignette) center/cover;mask-image:radial-gradient(ellipse,#000 18%,transparent 72%);opacity:.25;pointer-events:none}
.storybook-kicker{display:flex;justify-content:flex-end;gap:14px;margin-bottom:15px;color:#8b8c67;font-size:10px;letter-spacing:2px}
.storybook-title-row{display:flex;align-items:center;justify-content:space-between;gap:20px}
.storybook-heading h1.page-title{margin:0;color:#4c4934;font-size:36px;line-height:1.45;letter-spacing:3px}
.storybook-title-row p{margin-top:7px;color:#91866b;font-size:12px}
.storybook-resume{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;max-width:260px;padding:10px 15px;border-left:3px solid #718651;border-radius:3px 15px 15px 3px;background:#e4ead3;color:#52683d;font-size:12px;flex-shrink:0;touch-action:manipulation}
.storybook-resume span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.storybook-resume svg{width:17px;height:17px;flex-shrink:0}
.storybook-grade-tabs{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(6,minmax(44px,1fr));gap:5px;overflow-x:auto;margin:0 -4px;padding:12px 4px;background:#faf3e2f5;border-bottom:1px solid #dfd4b9;backdrop-filter:blur(10px);scrollbar-width:thin}
.storybook-grade-tabs button{min-height:44px;padding:6px 5px;border:1px solid #d7ddc2;border-radius:4px 4px 11px 4px;background:#e9eddb;color:#6b7c50;font-size:12px;white-space:nowrap;touch-action:manipulation}
.storybook-grade-tabs button:hover,.storybook-grade-tabs button:focus-visible{background:#dae4c7;color:#465f33}
.storybook-contents{background:linear-gradient(90deg,transparent calc(50% - 1px),#c1ad8030 50%,transparent calc(50% + 1px))}
.storybook-section{padding-top:27px;scroll-margin-top:78px}
.storybook-section-heading{display:flex;align-items:center;gap:11px;margin-bottom:8px}
.storybook-section-mark{display:grid;place-items:center;width:29px;height:29px;border:1px solid #c4ceb0;border-radius:50%;background:#e6ebd4;color:#78845b;font:12px Georgia,serif;flex-shrink:0}
.storybook-section-heading h2{font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:1px}
.storybook-section-heading>span:last-child{margin-left:auto;color:#a0987e;font-size:11px}
.storybook-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px}
.storybook-room .storybook-entry{display:grid;grid-template-columns:20px 52px minmax(0,1fr) 16px;align-items:center;gap:10px;min-width:0;min-height:76px;width:100%;padding:9px 0;border:0;border-bottom:1px dashed #d9cfb7;border-radius:0;background:transparent;color:inherit;box-shadow:none;text-align:left;touch-action:manipulation}
.storybook-room .storybook-entry:hover{background:#e9e9d552;transform:none;box-shadow:none}
.storybook-room .storybook-entry:not(:disabled):active{transform:translateY(1px);background:#e9e9d580}
.storybook-entry-number{font:12px Georgia,serif;font-variant-numeric:tabular-nums;color:#a29576;text-align:center}
.storybook-entry-art{display:block;width:52px;height:46px;overflow:hidden;border-radius:4px 7px 7px 4px;background:#e5e5d1;box-shadow:0 2px 5px #6a5a3220}
.storybook-entry-art .template-cover{font-size:17px}
.storybook-entry-art>img{display:block;width:100%;height:100%;object-fit:cover}
.storybook-entry-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.storybook-entry-copy strong{font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.storybook-entry-copy>span{color:#9a8c71;font-size:10px;line-height:1.4}
.storybook-entry-copy small{width:max-content;max-width:100%;color:#76854e;font-size:10px}
.storybook-entry>svg{width:15px;height:15px;color:#8e9b72}
.storybook-entry[aria-current="true"] .storybook-entry-number{color:#617a44;font-weight:700}
.storybook-colophon{display:flex;align-items:center;justify-content:center;gap:6px;margin:26px 0 2px;color:#a29577;font-size:10px;letter-spacing:1px}
.storybook-colophon svg{width:16px;height:16px;stroke:#89976c}
.storybook-reading-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:1px 4px 12px;border-bottom:1px solid #ddd2b8;color:#93856b;font-size:11px}
.storybook-folio{font:13px Georgia,serif;color:#9e947a;white-space:nowrap}
.storybook-reader .reader-head{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;margin:12px 0 10px;min-height:36px;width:100%}
.storybook-reader .reader-controls{display:flex;flex:1;min-width:0;flex-direction:row;justify-content:flex-end;gap:6px;flex-wrap:nowrap;width:auto}
.storybook-reader .reader-controls .poem-author-tools{gap:5px}
.storybook-reader .reader-head:has(.reader-title){flex-wrap:wrap}
.storybook-reader .reader-head:has(.reader-title) .reader-title{order:2;width:100%}
.storybook-reader .reader-head:has(.reader-title) .reader-controls{order:1}
.storybook-reader--word-ladder .reader-title{display:block;flex:0 0 100%;width:100%;margin:8px 0 4px}
.storybook-reader--word-ladder .reader-title h1{font-size:23px;line-height:1.3}
.storybook-reader .reader-head>.storybook-catalog-link{flex-shrink:0;gap:5px;height:30px;min-height:30px;margin:0;padding:5px 9px;border:1px solid #e3e4d5;border-radius:9px;background:#f7f7ee;color:#778064;font-size:11px;line-height:1.4;box-shadow:none;backdrop-filter:none}
.storybook-reader .reader-head>.storybook-catalog-link svg{width:14px;height:14px}
:root[data-theme="night"] .storybook-reader .reader-head>.storybook-catalog-link{background:var(--night-raised);border-color:var(--line);color:#bbcba6}
.storybook-reader .reader-card{width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:10px;background:transparent;box-shadow:none}
.storybook-reader .chapter-strip{max-width:none;margin:18px 0 0;padding:12px 14px}
:root[data-theme="night"] .storybook-room{color:#e2dbc5;background:#211f1a}
:root[data-theme="night"] .storybook-room::before{background-image:linear-gradient(#17120c55,#17120c88),var(--reading-room-image);filter:blur(3px) saturate(.85)}
:root[data-theme="night"] .storybook-book{background-color:#282f2e;background-image:linear-gradient(90deg,#0003,transparent 35px),radial-gradient(#d3bc830a .65px,transparent .8px);border-color:#5f624b;border-left-color:#596a46;box-shadow:-5px 0 0 #34432d,4px 5px 0 #6b624a,6px 9px 0 #4f5142,0 20px 55px #0008}
:root[data-theme="night"] .storybook-heading,:root[data-theme="night"] .storybook-reading-heading{border-color:#555a47}
:root[data-theme="night"] .storybook-heading h1.page-title{color:#e2dbc5}
:root[data-theme="night"] :is(.storybook-title-row p,.storybook-reading-heading,.storybook-folio,.storybook-entry-number,.storybook-entry-copy>span,.storybook-colophon){color:#aeb19c}
:root[data-theme="night"] .storybook-resume{background:#3d4b37;border-color:#71825c;color:#d8dfbc}
:root[data-theme="night"] .storybook-grade-tabs{background:#29322ff5;border-color:#555a47}
:root[data-theme="night"] .storybook-grade-tabs button,:root[data-theme="night"] .storybook-section-mark{background:#394533;border-color:#5b6e4a;color:#d1dbb8}
:root[data-theme="night"] .storybook-room .storybook-entry{border-color:#505b4c}
:root[data-theme="night"] .storybook-room .storybook-entry:hover,:root[data-theme="night"] .storybook-room .storybook-entry:not(:disabled):active{background:#3c49314d}
:root[data-theme="night"] .storybook-entry-art img{filter:brightness(.82) saturate(.85)}
:root[data-theme="night"] .storybook-entry-copy small{color:#bcc99d}
:root[data-theme="night"] .storybook-reader .reader-card{background:transparent}
:root[data-theme="night"] .storybook-reader .poem-layout{background-color:#282f2e}
:root[data-theme="night"] .storybook-reader--poetry{--night-raised:#3d3a32;--night-selected:#514b39;--line:#565044}
:root[data-theme="night"] .storybook-reader--poetry .storybook-book{background-color:#302e28;background-image:linear-gradient(90deg,#19171126,transparent 28px);border-color:#655d49;border-left-color:#6a7052}
:root[data-theme="night"] .storybook-reader .poem-illustrated{--ink:#302c24;--poem-night-veil:linear-gradient(180deg,#d4c4a647,#c6b79733 55%,#b9ac904d);background-color:#b9ad93}
:root[data-theme="night"] .storybook-reader .poem-illustrated .poem-backdrop{filter:brightness(.68) saturate(.8)}
:root[data-theme="night"] .storybook-reader .poem-anthology .poem-backdrop{height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:center;-webkit-mask-image:none;mask-image:none}
:root[data-theme="night"] .storybook-reader .poem-illustrated::after{background:var(--poem-night-veil)}
:root[data-theme="night"] .storybook-reader .poem-illustrated :is(.poem-title-main,.poem-author,.poem-text,.poem-pinyin,.poem-preface){text-shadow:none}
:root[data-theme="night"] .storybook-reader .poem-illustrated :is(.poem-author,.poem-ruby rt,.poem-pinyin){color:#514939}
:root[data-theme="night"] .storybook-reader .poem-illustrated .poem-translation{background:#c7baa0eb;border:1px solid #74684b40;border-radius:8px;color:#3d3529;backdrop-filter:none;box-shadow:0 2px 8px #3027190a}
:root[data-theme="night"] .storybook-reader .poem-illustrated .poem-translation strong{color:#51452e}
:root[data-theme="night"] .storybook-reader--poetry .chapter-strip{background:#353229;border-color:#575040}
:root[data-theme="night"] .storybook-reader--poetry .chapter-thumb{background:#423e32;border-color:#595241;color:#c6baa0}
:root[data-theme="night"] .storybook-reader--poetry .chapter-thumb.active{background:#54533c;border-color:#9c9e72;color:#eee3bf}
:root[data-theme="night"] .storybook-reader--poetry .chapter-rail-arrow{background:#494435;color:#e4d5af}
:root[data-theme="night"] .storybook-reader--poetry .chapter-strip :is(.chapter-strip-heading,.chapter-position){color:#b8ad93}
@keyframes storybook-open{from{opacity:.5;transform:translateY(10px) rotate(-.2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@media(max-width:760px){
 .storybook-room{padding:10px 8px max(22px,env(safe-area-inset-bottom));padding-top:max(10px,env(safe-area-inset-top))}
 .storybook-reader,.storybook-catalog{height:100dvh;min-height:0;padding:6px 8px max(18px,env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden}
 .storybook-room .storybook-topbar{display:grid;grid-template-columns:1fr auto 1fr;flex:0 0 auto;width:100%;margin:0 auto 6px;gap:6px}
 .storybook-room .storybook-home{justify-self:start}
 .storybook-room .storybook-room-name{grid-column:2;white-space:nowrap}
 .storybook-topbar{gap:8px;margin-bottom:10px}
 .storybook-room-name{font-size:12px;letter-spacing:0}
 .storybook-room-name svg{width:19px;height:19px}
 .storybook-top-note{display:none}
 .storybook-home,.storybook-catalog-link{padding:7px 10px;font-size:11px}
 .storybook-home{min-height:34px;padding:4px 9px}
 .storybook-book{min-height:calc(100dvh - 82px);padding:22px 16px 16px 20px;border-left-width:6px;border-radius:3px 12px 12px 3px;box-shadow:-3px 0 0 #4c603e,2px 4px 0 #d9c9a4,3px 7px 0 #f1e8d0,0 12px 30px #24180f44}
 .storybook-heading{padding-bottom:18px}
 .storybook-heading h1.page-title{font-size:30px;letter-spacing:2px}
 .storybook-title-row{align-items:flex-start;flex-direction:column;gap:14px}
 .storybook-resume{max-width:100%;min-height:44px}
 .storybook-grade-tabs{gap:4px;padding-top:9px;padding-bottom:9px}
 .storybook-grade-tabs button{font-size:11px}
 .storybook-contents{background:none}
 .storybook-entries{grid-template-columns:minmax(0,1fr);gap:0}
 .storybook-section{padding-top:22px}
 .storybook-section-heading h2{font-size:19px}
 .storybook-room .storybook-entry{min-height:64px;grid-template-columns:18px 44px minmax(0,1fr) 14px;gap:8px;padding:8px 0}
 .storybook-entry-art{width:44px;height:40px}
 .storybook-entry-copy strong{font-size:14px}
 .storybook-entry-copy>span{font-size:10px}
 .storybook-reader .storybook-book{display:flex;flex:1;flex-direction:column;width:100%;min-height:0;padding:8px 4px max(6px,env(safe-area-inset-bottom)) 8px;overflow:hidden;animation:none}
 .storybook-catalog .storybook-book{display:flex;flex:1;flex-direction:column;width:100%;min-height:0;overflow:hidden;animation:none}
 .storybook-catalog .storybook-book{padding-top:12px}
 .storybook-catalog .storybook-heading{padding-bottom:10px}
 .storybook-catalog .storybook-kicker{margin-bottom:5px}
 .storybook-catalog .storybook-heading h1.page-title{font-size:27px;line-height:1.3}
 .storybook-catalog .storybook-grade-tabs{padding-top:6px;padding-bottom:6px}
 .storybook-catalog .storybook-heading,.storybook-catalog .storybook-grade-tabs{flex:0 0 auto}
 .storybook-catalog .storybook-contents{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#b9ae8f #fcf6e6}
 .storybook-catalog .storybook-contents::-webkit-scrollbar{width:6px}
 .storybook-catalog .storybook-contents::-webkit-scrollbar-track{background:#fcf6e6}
 .storybook-catalog .storybook-contents::-webkit-scrollbar-thumb{background:#b9ae8f;border-radius:6px}
 :root[data-theme="night"] .storybook-catalog .storybook-contents{scrollbar-color:#697368 #282f2e}
 :root[data-theme="night"] .storybook-catalog .storybook-contents::-webkit-scrollbar-track{background:#282f2e}
 :root[data-theme="night"] .storybook-catalog .storybook-contents::-webkit-scrollbar-thumb{background:#697368}
 .storybook-catalog .storybook-section{scroll-margin-top:0}
 .storybook-catalog .storybook-colophon{display:none}
 .storybook-reading-heading{padding:0 8px 10px}
 .storybook-reader .reader-head{flex:0 0 auto;padding:0 8px;margin:2px 0 4px;min-height:30px}
 .storybook-reader .reader-controls{gap:5px}
 .storybook-reader--word-ladder .reader-head{gap:4px}
 .storybook-reader--word-ladder .reader-title{margin:20px 0 5px}
 .storybook-reader--word-ladder .reader-card{padding-top:10px}
 .storybook-reader .reader-card{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;border-radius:0}
 .storybook-reader .poem-layout{min-height:100%;padding:12px 8px}
 .storybook-reader .poem-illustrated{border-radius:0}
 .storybook-reader .poem-illustrated::after{background:linear-gradient(180deg,#fcf6e6 0%,#faf5e7bd 14%,#faf5e7e8 28%,#faf5e7e8 76%,transparent)}
 :root[data-theme="night"] .storybook-reader .poem-illustrated::after{background:var(--poem-night-veil)}
 .storybook-reader .poem-layout:has(>.poem-translation){min-height:100%}
 .storybook-reader-footer{display:flex;align-items:flex-end;gap:8px;flex:0 0 auto;min-width:0;margin:6px -4px 0}
 .storybook-reader .chapter-strip{position:static;flex:1 1 auto;min-width:0;margin:0;padding:9px 8px 8px;border-radius:10px 10px 0 0}
 .storybook-reader .chapter-strip-heading{font-size:9px;margin-bottom:3px}
 .storybook-reader .chapter-thumbnails{gap:7px;padding:2px}
 .storybook-reader .chapter-thumb{flex:0 0 68px;gap:3px;padding:3px}
 .storybook-reader .chapter-thumb-art{width:48px;height:46px}
 .storybook-reader .chapter-thumb-title{gap:3px;font-size:9px}
 .storybook-reader .chapter-rail-arrow{width:24px;height:24px}
 .storybook-reader .storybook-colophon{display:none}
 .storybook-colophon{margin-top:22px;font-size:9px}
 :root[data-theme="night"] .storybook-book{box-shadow:-3px 0 0 #34432d,2px 4px 0 #6b624a,3px 7px 0 #4f5142,0 12px 30px #0006}
}
@media(max-width:360px){.storybook-room .storybook-entry{grid-template-columns:16px 40px minmax(0,1fr) 14px;gap:6px}.storybook-entry-art{width:40px;height:38px}.storybook-entry-copy strong{font-size:13px}.storybook-room-name{font-size:11px}}
@media(max-width:760px){
 #album-dialog{padding:18px 14px}
 #album-dialog h2{margin-top:3px}
 #album-dialog .collection-summary p{line-height:1.5}
}
#album-dialog .collection-summary{min-height:122px;padding:12px}
#album-dialog .collection-summary h2{font-size:20px;line-height:1.3;margin:4px 0}
#album-dialog .collection-list-heading{margin:10px 0 6px}
#album-dialog .favorites-grid{gap:7px}
#album-dialog .favorite-card{position:relative;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;padding:10px 8px}
#album-dialog .favorite-card-copy{display:flex;flex-direction:column;gap:2px}
#album-dialog .favorite-kind{padding-right:38px;font-size:9px;line-height:1.4}
#album-dialog .favorite-card h3{padding-right:38px;font-size:18px;line-height:1.25;margin:0}
#album-dialog .favorite-card .favorite-author{margin:0;font-size:11px;line-height:1.4}
#album-dialog .favorite-card .favorite-excerpt{margin:0;-webkit-line-clamp:1;font-size:11px;line-height:1.4}
#album-dialog .favorite-card-actions{margin-top:0}
#album-dialog .collection-read{min-height:32px;font-size:11px}
#album-dialog .favorite-card .favorite-button{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;border:0;border-radius:0;background:transparent;color:#928766;box-shadow:none}
#album-dialog .favorite-card .favorite-button::before{content:"";position:absolute;inset:5px;border:1px solid #d9d9c9;border-radius:8px;background:#f6f5e9}
#album-dialog .favorite-card .favorite-button[aria-pressed="true"]::before{border-color:#d6c58e;background:#f7efd8}
#album-dialog .favorite-card .favorite-button svg{position:relative;z-index:1;width:16px;height:16px}
:root[data-theme="night"] #album-dialog .favorite-card .favorite-button{color:#bcb69d}
:root[data-theme="night"] #album-dialog .favorite-card .favorite-button::before{border-color:#59635d;background:#303938}
:root[data-theme="night"] #album-dialog .favorite-card .favorite-button[aria-pressed="true"]::before{border-color:#8c805a;background:#484536}
dialog .dialog-close{display:grid;place-items:center;width:44px;height:44px;min-height:44px;border:0;border-radius:0;background:transparent;color:#596b4a;box-shadow:none;font-size:27px;line-height:1}
dialog .dialog-close:focus{outline:none}
:root.keyboard-navigation dialog .dialog-close:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
body.exploring dialog:is(#name-dialog,#explore-shelf-dialog,#album-dialog,#parent-dialog)[open]{display:flex;flex-direction:column;padding:0;overflow:hidden}
body.exploring dialog:is(#name-dialog,#explore-shelf-dialog,#album-dialog,#parent-dialog)>.dialog-close{position:static;align-self:flex-end;flex:0 0 44px;margin:4px 8px 0 auto;transform:none;z-index:20}
body.exploring dialog#album-dialog>.dialog-close{margin:0 0 0 auto}
body.exploring dialog:is(#name-dialog,#explore-shelf-dialog,#album-dialog,#parent-dialog)>.dialog-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 16px 20px;scrollbar-width:thin;scrollbar-color:#b5bc96 transparent}
body.exploring #explore-shelf-dialog{height:min(calc(var(--room-dialog-height) * .8),calc(var(--room-dialog-height) - 24px))}
body.exploring dialog#explore-shelf-dialog>.dialog-scroll{padding-top:0;scrollbar-gutter:stable}
#explore-shelf-dialog .dialog-scroll>.eyebrow{margin-bottom:3px}
#explore-shelf-dialog .dialog-scroll>p{margin:5px 0 8px}
#explore-shelf-dialog .tabs{margin:6px 0 10px}
#explore-shelf-dialog .bookshelf{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;padding:0 0 8px}
#explore-shelf-dialog .book-tile{container-type:inline-size}
#explore-shelf-dialog .book-meta{min-height:0;padding:6px 0 0;font-size:11px;line-height:1.45}
#explore-shelf-dialog .book-tile>.favorite-button{top:calc(400cqw / 3 - 33px);right:5px;bottom:auto}
body.exploring #album-dialog>.dialog-scroll{padding:6px 14px 14px}
@media(max-width:760px){body.exploring #name-dialog>.dialog-scroll{padding:8px 24px 24px}}
.shelf-search{--search-paper:#f1f2e5;--search-line:#dde3cc;--search-ink:#657b50;--search-muted:#92967e;position:sticky;top:0;z-index:8;margin:12px 0 0;padding:8px 0 20px;background:var(--paper);color:var(--ink)}
.shelf-search label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.shelf-search-field{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:0 3px 0 10px;border:1px solid var(--search-line);border-radius:7px;background:var(--search-paper);transition:border-color .18s,box-shadow .18s}
.shelf-search-field>svg{width:16px;height:16px;flex:none;color:var(--search-ink);stroke-width:1.6}
.shelf-search-field:focus-within{border-color:#9dac83;box-shadow:0 0 0 3px #8caa6817}
.shelf-search input{appearance:none;-webkit-appearance:none;flex:1;min-width:0;width:100%;height:34px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:16px;outline:none;box-shadow:none}
.shelf-search input::placeholder{color:var(--search-muted);font-size:13px;opacity:1}
.shelf-search input::-webkit-search-cancel-button{display:none}
.shelf-search button{display:grid;place-items:center;flex:none;width:28px;min-height:28px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--search-ink);font:inherit;font-size:23px;line-height:1;cursor:pointer}
.shelf-search-field:has(input:placeholder-shown) button{visibility:hidden}
.shelf-search button:hover{background:#dfe7cc}
.shelf-search-status{margin:14px 3px 10px;font-size:11px;line-height:1.6;color:var(--muted)}
.shelf-search-results{margin-bottom:20px}
.shelf-search-result{display:flex;align-items:center;gap:12px;margin:0 0 9px;padding:14px 12px;border:1px solid #e9e5d5;border-radius:14px;background:#fffcf3;color:var(--ink);transition:background .18s,border-color .18s}
.shelf-search-result>span:first-child{display:grid;place-items:center;width:36px;height:40px;flex:none;border-radius:12px;background:#edf0df;color:#7c8c61}
.shelf-search-result>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.shelf-search-result strong,.shelf-search-result small{display:block}
.shelf-search-result strong{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:.5px}
.shelf-search-result small{margin-top:4px;color:var(--muted);font-size:10px}
.shelf-search-result svg{width:18px;height:18px;flex:none}
.shelf-search-result>svg{width:16px;height:16px;color:#96a080}
.shelf-search-result:hover,.shelf-search-result:focus-visible{background:#f3f4e7;border-color:#ced8bb}
:root[data-theme="night"] .shelf-search{--search-paper:#303a34;--search-line:#4b594b;--search-ink:#b8c99f;--search-muted:#a8b09b}
:root[data-theme="night"] .shelf-search-result{background:#2b3430;border-color:var(--line)}
:root[data-theme="night"] .shelf-search-result>span:first-child,:root[data-theme="night"] .shelf-search button:hover{background:#3b4738;color:#b8c99f}
:root[data-theme="night"] .shelf-search-result:hover{background:#344034;border-color:#6c7c59}
@media(max-width:360px){.shelf-search-field{gap:7px;padding-left:12px}.shelf-search input::placeholder{font-size:12px}.shelf-search button{width:28px}}
.encyclopedia-layout{display:grid;gap:18px;max-width:780px;margin:0 auto;padding:18px 10px 28px}
.encyclopedia-art{position:relative;display:grid;place-items:center;min-height:220px;overflow:hidden;border-radius:20px;background:#e7eddb}
.encyclopedia-art img{display:block;width:100%;height:auto;max-height:440px;object-fit:cover}
.encyclopedia-art-pending{display:grid;place-items:center;width:100%;min-height:260px;color:#8da46e;font-size:76px;background:radial-gradient(circle at 50% 45%,#f7f7df,#e4ecd8 65%,#d8e5d4)}
.storybook-reader--encyclopedia .reader-title{display:block;flex:0 0 100%;width:100%;margin-top:8px}
.storybook-reader--encyclopedia .reader-title h1{display:inline;font-size:clamp(23px,3vw,31px);line-height:1.35}
.encyclopedia-top-controls{display:flex;align-items:center;gap:5px}
.encyclopedia-top-controls>button,.encyclopedia-timer-button{height:30px;min-height:30px;padding:5px 10px;border:1px solid #e3e4d5;border-radius:9px;background:#f7f7ee;color:#778064;font-size:11px;white-space:nowrap}
.encyclopedia-top-controls>button[aria-pressed="true"],.encyclopedia-timer-button[aria-expanded="true"]{border-color:#cddbb8;background:#e9eedf;color:#536d3f}
.encyclopedia-timer-button:disabled{opacity:.45;cursor:not-allowed}
.encyclopedia-timer-control{position:relative}
.encyclopedia-timer-menu{position:absolute;top:36px;right:0;z-index:20;width:224px;padding:13px;border:1px solid #dce3ce;border-radius:13px;background:#fffdf3;box-shadow:0 10px 28px #443e2830;color:#5d6e49}
.encyclopedia-timer-menu>span{display:block;margin:2px 0 7px;font-size:11px;font-weight:600}
.encyclopedia-timer-menu>div{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:12px}
.encyclopedia-timer-menu>div>button{min-height:30px;padding:3px;border:1px solid #e0e6d6;border-radius:7px;background:#f5f7ef;color:#667b50;font-size:11px}
.encyclopedia-timer-menu>div>button[aria-pressed="true"]{border-color:#93ad78;background:#e5efd9}
.encyclopedia-timer-menu>.encyclopedia-timer-clear{width:100%;padding:5px;border:0;background:transparent;color:#837b68;font-size:11px}
:root[data-theme="night"] .encyclopedia-top-controls>button,:root[data-theme="night"] .encyclopedia-timer-button,:root[data-theme="night"] .encyclopedia-timer-menu{background:var(--night-raised);border-color:var(--line);color:#bbcba6}
:root[data-theme="night"] .encyclopedia-timer-menu>div>button{background:var(--night-selected);border-color:var(--line);color:#d5dfca}
.encyclopedia-title-tail{white-space:nowrap}
.encyclopedia-title-play{position:relative;top:-5px;display:inline-grid;place-items:center;vertical-align:middle;width:44px;height:44px;margin-left:4px;border-radius:50%;color:#637c4e}
.encyclopedia-title-play svg{width:23px;height:23px}
.encyclopedia-title-play.playing{background:#e7eedb}
.encyclopedia-copy{position:absolute;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;gap:14px;min-width:0;padding:32px 18px 15px;background:linear-gradient(180deg,#10212500,#102125b8)}
.encyclopedia-play{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:#fffdf3;box-shadow:none}
.encyclopedia-play .auto-symbol{width:26px;height:26px;color:inherit}
.encyclopedia-play svg{width:26px;height:26px;fill:currentColor;stroke:currentColor;stroke-width:1;filter:drop-shadow(0 1px 3px #102125aa)}
.encyclopedia-play .auto-label{display:none}
.encyclopedia-play:hover,.encyclopedia-play:focus-visible{background:#ffffff29}
.encyclopedia-play.playing svg{fill:none;stroke-width:2.8}
.encyclopedia-progress-wrap{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.encyclopedia-progress{appearance:none;display:block;flex:1;min-width:0;width:100%;height:24px;margin:0;border:0;background:linear-gradient(90deg,#fffdf3 var(--audio-progress,0%),#ffffff80 var(--audio-progress,0%)) center/100% 4px no-repeat;cursor:pointer}
.encyclopedia-progress::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border:2px solid #fffdf3;border-radius:50%;background:#8da575;box-shadow:0 1px 4px #10212599}
.encyclopedia-progress::-moz-range-thumb{width:10px;height:10px;border:2px solid #fffdf3;border-radius:50%;background:#8da575;box-shadow:0 1px 4px #10212599}
.encyclopedia-progress:focus-visible{outline:2px solid #fffdf3;outline-offset:2px}
.encyclopedia-time{flex:none;color:#fffdf3;font-size:11px;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #102125}
.encyclopedia-narration{margin:0 16px;padding:2px 2px 16px;color:var(--ink)}
.encyclopedia-narration-label{display:block;margin-bottom:11px;color:#82936b;font-size:11px;font-weight:650;letter-spacing:2px}
.encyclopedia-narration p{margin:0 0 9px;font-family:var(--serif);font-size:17px;line-height:1.85;letter-spacing:.4px}
:root[data-theme="night"] .encyclopedia-art{background:#344338}
:root[data-theme="night"] .encyclopedia-art-pending{color:#9eaf84;background:radial-gradient(circle,#475947,#344638)}
:root[data-theme="night"] .encyclopedia-narration-label{color:#b6c99a}
:root[data-theme="night"] .encyclopedia-title-play.playing{background:#435642}
@media(max-width:760px){.encyclopedia-layout{padding:10px 2px 24px;gap:15px}.encyclopedia-art{min-height:180px}.encyclopedia-art-pending{min-height:240px}.encyclopedia-copy{gap:10px;padding:27px 13px 10px}.encyclopedia-play{width:44px;height:44px;min-height:44px}.encyclopedia-progress-wrap{gap:7px}.encyclopedia-time{font-size:10px}.encyclopedia-narration{margin:0 6px}.encyclopedia-narration p{font-size:16px}}
.encyclopedia-thumb-pending{display:grid;place-items:center;width:100%;height:100%;background:#e8efdc;color:#829568;font-family:var(--serif);font-size:25px}
:root[data-theme="night"] .encyclopedia-thumb-pending{background:#3b4a3b;color:#c1cea8}
.shelf-layout{display:grid;grid-template-columns:150px minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:start;gap:18px;height:min(620px,calc(100dvh - 160px));min-height:240px}
.shelf-layout>[data-shelf-results]{min-width:0;min-height:0;height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b5bc96 transparent;scrollbar-gutter:stable;padding-right:4px}
.shelf-layout .book-tile{container-type:inline-size}
.shelf-layout .bookshelf,#explore-shelf-dialog .shelf-layout .bookshelf{display:flex;flex-direction:column;gap:12px;padding:0}
.shelf-layout .book-tile{padding:0;border:0}
.shelf-layout .book-tile:not(:last-child){border-bottom:1px solid #7d89641f}
:root[data-theme="night"] .shelf-layout .book-tile:not(:last-child){border-bottom-color:#d2ddc31a}
.shelf-layout .book-item{display:grid;grid-template-columns:18px 60px minmax(0,1fr);grid-template-rows:1fr 1fr;column-gap:10px;width:100%;min-height:96px;padding:8px 0;text-align:left}
.shelf-layout .book-tile .book-cover,#explore-shelf-dialog .shelf-layout .book-tile .book-cover{grid-column:2;grid-row:1 / 3;width:60px;height:80px;min-height:0;aspect-ratio:3/4}
.shelf-layout .book-tile .cover-title{display:none}
.shelf-layout .book-tile .book-meta,#explore-shelf-dialog .shelf-layout .book-tile .book-meta{grid-column:3;grid-row:1;align-self:end;display:block;min-height:0;margin:0;padding:0 34px 5px 0;font-size:16px;line-height:1.5;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.shelf-layout .book-meta .tag{display:none}
.shelf-layout .book-tile .book-item .book-details,#explore-shelf-dialog .shelf-layout .book-tile .book-details{grid-column:3;grid-row:2;align-self:start;display:block;min-width:0;min-height:0;margin:0;font-size:11px;line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shelf-layout .book-tile>.favorite-button,#explore-shelf-dialog .shelf-layout .book-tile>.favorite-button{top:15px;left:auto;right:0;bottom:auto;width:32px;height:32px;min-height:32px;padding:6px;border:0;border-radius:0;background:transparent;box-shadow:none}
.shelf-layout>.tabs,#explore-shelf-dialog .shelf-layout>.tabs{position:sticky;top:64px;display:flex;flex-direction:column;flex-wrap:nowrap;width:100%;max-width:none;margin:0;padding:6px;gap:3px;border:1px solid #e0e5d5;border-radius:13px;background:#eff1e8}
.shelf-layout>.tabs .tab,#explore-shelf-dialog .shelf-layout>.tabs .tab{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:42px;padding:8px 12px;border:0;border-radius:9px;background:transparent;color:#626f59;font-weight:600;text-align:left;white-space:nowrap;box-shadow:none;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.shelf-layout>.tabs .tab:hover:not(.active),#explore-shelf-dialog .shelf-layout>.tabs .tab:hover:not(.active){background:#e0e7d5;color:#49613e}
.shelf-layout>.tabs .tab.active,#explore-shelf-dialog .shelf-layout>.tabs .tab.active{background:#5d7650;color:#fff;box-shadow:0 2px 7px #3d593329}
.shelf-layout>.tabs .tab:focus-visible,#explore-shelf-dialog .shelf-layout>.tabs .tab:focus-visible{outline:2px solid #4f6a42;outline-offset:2px}
:root[data-theme="night"] .shelf-layout>.tabs,:root[data-theme="night"] #explore-shelf-dialog .shelf-layout>.tabs{background:#2d3831;border-color:#566553}
:root[data-theme="night"] .shelf-layout>.tabs .tab:not(.active),:root[data-theme="night"] #explore-shelf-dialog .shelf-layout>.tabs .tab:not(.active){background:transparent;color:#cad6c2}
:root[data-theme="night"] .shelf-layout>.tabs .tab.active,:root[data-theme="night"] #explore-shelf-dialog .shelf-layout>.tabs .tab.active{background:#718d61;color:#fff}
@media(max-width:760px){.shelf-layout{grid-template-columns:95px minmax(0,1fr);gap:10px}.shelf-layout>.tabs,#explore-shelf-dialog .shelf-layout>.tabs{top:64px;padding:4px;gap:2px}.shelf-layout>.tabs .tab,#explore-shelf-dialog .shelf-layout>.tabs .tab{min-height:40px;padding:7px 6px;font-size:11px}.shelf-layout .bookshelf,#explore-shelf-dialog .shelf-layout .bookshelf{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:9px;row-gap:16px;padding:0 0 10px}}
@media(max-width:360px){.shelf-layout{grid-template-columns:83px minmax(0,1fr);gap:8px}.shelf-layout>.tabs .tab,#explore-shelf-dialog .shelf-layout>.tabs .tab{padding:6px 4px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.shelf-layout>.tabs .tab,#explore-shelf-dialog .shelf-layout>.tabs .tab{transition:none}}
@media(max-width:760px){.shelf-layout .book-item{grid-template-columns:12px 42px minmax(0,1fr);column-gap:7px;min-height:72px;padding:8px 0}.shelf-layout .book-tile .book-cover,#explore-shelf-dialog .shelf-layout .book-tile .book-cover{width:42px;height:56px}.shelf-layout .book-tile .book-meta,#explore-shelf-dialog .shelf-layout .book-tile .book-meta{font-size:13px;padding:0 30px 4px 0}.shelf-layout .book-tile .book-item .book-details,#explore-shelf-dialog .shelf-layout .book-tile .book-details{font-size:10px;padding-right:0}.shelf-layout .book-tile>.favorite-button,#explore-shelf-dialog .shelf-layout .book-tile>.favorite-button{top:8px;left:auto;right:0;bottom:auto;width:28px;height:28px;min-height:28px;padding:5px}.shelf-layout .bookshelf,#explore-shelf-dialog .shelf-layout .bookshelf{gap:8px;padding:0}}

.shelf-layout .book-number{grid-column:1;grid-row:1 / 3;align-self:center;color:#7c896e;font-size:11px;font-variant-numeric:tabular-nums}
.book-cover::before{display:none}
:root[data-theme="night"] .shelf-layout .book-number{color:#b4c3a6}

.shelf-layout .book-tile>.favorite-button[aria-pressed="true"],#explore-shelf-dialog .shelf-layout .book-tile>.favorite-button[aria-pressed="true"],:root[data-theme="night"] .shelf-layout .book-tile>.favorite-button{border:0;border-radius:0;background:transparent;box-shadow:none}
.shelf-layout>.tabs,#explore-shelf-dialog .shelf-layout>.tabs{position:static}
body.exploring dialog#explore-shelf-dialog>.dialog-scroll{display:flex;flex-direction:column;overflow:hidden}
#explore-shelf-dialog .dialog-scroll> :not(#explore-shelf-content){flex-shrink:0}
#explore-shelf-content{display:flex;flex-direction:column;flex:1;min-height:0}
#explore-shelf-content>.shelf-search{position:relative;flex-shrink:0;background:transparent}
#explore-shelf-content>.shelf-layout{flex:1;min-height:0;height:auto}
.english-category-controls{position:sticky;top:0;z-index:2;padding:0 0 8px;background:var(--shelf-surface,var(--paper));container-type:inline-size}
.english-category-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:100%;max-width:300px}
.english-category-switch button{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;white-space:nowrap;min-height:30px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;font-size:11px;color:var(--green-dark);background:transparent;transition:background .18s,border-color .18s,color .18s}
.english-category-switch button[aria-pressed="true"]{background:#5d7650;border-color:#5d7650;color:#fff}
.english-category-switch small{font-size:10px;opacity:.75;font-variant-numeric:tabular-nums}
.book-learning-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.book-learning-tags>span{display:inline-block;padding:1px 7px;border-radius:5px;background:#eaf0e2;color:#5d7650;font-size:10px;line-height:1.7;white-space:nowrap}
.shelf-layout .book-item.has-learning-tags{grid-template-rows:auto;align-items:center;padding:12px 0}
.shelf-layout .has-learning-tags .book-copy,#explore-shelf-dialog .shelf-layout .has-learning-tags .book-copy{grid-column:3;grid-row:1;display:flex;flex-direction:column;gap:5px;min-width:0;align-self:center}
.shelf-layout .has-learning-tags .book-learning-tags{margin:0}
.shelf-layout .book-tile .has-learning-tags .book-cover,#explore-shelf-dialog .shelf-layout .book-tile .has-learning-tags .book-cover,.shelf-layout .has-learning-tags .book-number{grid-row:1}
:root[data-theme="night"] .english-category-controls{background:var(--shelf-surface,var(--paper))}
:root[data-theme="night"] .english-category-switch button{color:var(--ink)}
:root[data-theme="night"] .english-category-switch button[aria-pressed="true"]{background:#718d61;color:#fff}
:root[data-theme="night"] .book-learning-tags>span{background:#354735;color:#d1e0c5}
@media(max-width:760px){.english-category-switch{gap:4px}.english-category-switch button{padding:4px 7px;font-size:10px}.shelf-layout .book-item.has-learning-tags{min-height:90px}.shelf-layout .book-learning-tags>span{font-size:10px;padding:1px 5px}}
#explore-shelf-dialog{--shelf-surface:#fff9eb}
:root[data-theme="night"] #explore-shelf-dialog{--shelf-surface:#252c32}
body.exploring dialog#explore-shelf-dialog>.dialog-close{position:absolute;top:8px;right:10px;margin:0}
body.exploring dialog#explore-shelf-dialog>.dialog-scroll{padding:18px 18px 20px}
#explore-shelf-title{padding-right:44px;line-height:1.5;color:var(--ink)}
:root[data-theme="night"] #explore-shelf-dialog #explore-shelf-title{color:#e5e0d4}
#explore-shelf-content>.shelf-search{margin-top:8px;padding:0 0 16px}
.shelf-layout .book-tile .has-learning-tags .book-meta,#explore-shelf-dialog .shelf-layout .book-tile .has-learning-tags .book-meta{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;text-wrap:pretty;align-self:stretch;padding-bottom:0;line-height:1.5}
.shelf-layout .book-tile .has-learning-tags .book-details,#explore-shelf-dialog .shelf-layout .book-tile .has-learning-tags .book-details{align-self:stretch;line-height:1.6}
.shelf-layout .book-tile:has(.has-learning-tags)>.favorite-button,#explore-shelf-dialog .shelf-layout .book-tile:has(.has-learning-tags)>.favorite-button{top:12px}
.book-copy{min-width:0}
.english-category-switch button:hover:not([aria-pressed="true"]){background:#8094681a;border-color:#879b74}
.english-category-switch button:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}
@container(max-width:280px){.english-category-switch button{padding:4px 2px;gap:2px;font-size:10px;white-space:nowrap}.english-category-switch small{font-size:9px}}
@container(max-width:190px){.english-category-switch button{font-size:9px}.english-category-switch small{display:none}}
@media(prefers-reduced-motion:reduce){.english-category-switch button{transition:none}}
/* Managed content uses the same reading shell as the existing library. */
.managed-notice { padding: 10px 20px; text-align: center; background: #fff3d5; color: #77551d; font-size: 13px; }
.managed-locked { padding: 64px 24px; text-align: center; }
.managed-locked h1 { font-size: 26px; margin-bottom: 16px; }
.managed-locked p { margin-bottom: 28px; }
