

:root{--night:#142c3b;--deep:#0d2330;--gold:#edd5a0;--ink:#354d50;--paper:#fbf4e3;--ochre:#9d623d;--line:#dfd6bc;--muted:#78807b;--serif:"Songti SC","Noto Serif CJK SC","STSong",serif}*{box-sizing:border-box}body{margin:0;background:var(--night);color:var(--paper);font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-size:15px}button,input,textarea{font:inherit}button,a,label.button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #db9556;outline-offset:4px}button{color:inherit}button,.button{touch-action:manipulation}h1,h2,h3,p{margin:0}button{border:0}button:hover:not(:disabled),a:hover{filter:brightness(1.07)}.grain{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23ffffff' filter='url(%23n)' opacity='.7' d='M0 0H180V180H0z'/%3E%3C/svg%3E")}.topbar{height:90px;max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 48px}.brand{display:flex;align-items:center;gap:15px}.brand-moon{font:48px var(--serif);color:var(--gold);line-height:1}.brand b{font:24px var(--serif);letter-spacing:4px;display:block}.brand small{display:block;font-size:8px;letter-spacing:2.5px;margin-top:6px;color:#abb8b7}.top-actions{display:flex;gap:8px;align-items:center}.round-button{background:#ffffff08;border:1px solid #d7dcb436;border-radius:30px;padding:10px 17px;font-size:18px;color:var(--gold)}.round-button span{font-size:12px;margin-left:7px}.round-button[aria-pressed=true]{background:#d0b67c20}.icon-button{background:none;color:#abb8b7;font-size:19px;width:40px;height:40px}.moonworld{position:relative;max-width:1400px;margin:auto;height:530px;isolation:isolate;overflow:hidden}.moonworld:after{content:"";position:absolute;inset:0;box-shadow:inset 0 -18px 32px #142c3b;pointer-events:none}#scene-art{position:absolute;inset:0;z-index:-1}#scene-art>svg{width:100%;height:100%;object-fit:cover}.scene-heading{position:absolute;top:32px;left:55px;max-width:400px;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:4px;color:var(--ochre);font-weight:600}.scene-heading .eyebrow{color:#cbba92}.scene-heading h1{font:38px/1.5 var(--serif);margin:15px 0 8px;letter-spacing:3px;color:#fff1d3}.scene-heading p{font-size:13px;letter-spacing:1px;color:#c9d0c4}.moon-hotspot{position:absolute;left:41%;top:7%;width:18%;height:45%;background:transparent;border-radius:50%}.scene-caption{position:absolute;bottom:29px;left:48px;display:flex;align-items:center;gap:9px;font-size:11px;color:#e0d6b9;background:#0d23309c;border:1px solid #e8d6a21a;padding:10px 14px;border-radius:30px;max-width:68%}.live-dot{width:5px;height:5px;background:#f4d293;border-radius:50%;flex-shrink:0;box-shadow:0 0 9px #f4d293}.collection{position:absolute;right:48px;bottom:30px;color:#dfd5b5;display:flex;gap:8px;align-items:baseline;font-size:11px}.collection b{font:31px Georgia,serif}.chapter-nav{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #a2b19b40;border-radius:12px 12px 0 0;overflow:hidden;background:#1b3542}.chapter-nav button{position:relative;display:flex;align-items:center;gap:14px;padding:22px 25px;background:transparent;text-align:left;border-right:1px solid #a2b19b24;color:#becbc6;transition:background .2s}.chapter-nav button:last-child{border-right:0}.chapter-nav button>span:nth-child(2){font:19px var(--serif);letter-spacing:1px}.chapter-nav small{font:10px "PingFang SC",sans-serif;display:block;letter-spacing:1px;margin-top:8px;color:#a2b6b2}.chapter-nav b{font:italic 12px Georgia;position:absolute;right:15px;top:13px;opacity:.5}.chapter-nav .active{background:var(--paper);color:var(--ink)}.chapter-nav .active small{color:#8a8775}.nav-icon{font:34px var(--serif);color:#beac79}.chapter-nav .active .nav-icon{color:var(--ochre)}.activity{max-width:1240px;margin:0 auto;background:var(--paper);color:var(--ink);border-radius:0 0 12px 12px;min-height:365px;padding:32px 36px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.section-top h2{font:27px var(--serif);margin-top:7px;letter-spacing:2px}.section-top p{font-size:12px;color:#7c806f;line-height:1.8}.step-count{font:italic 24px Georgia;color:#a78253;white-space:nowrap}.step-count small{font-size:13px;color:#a7a695}.workbench{display:grid;grid-template-columns:240px 1fr;gap:38px}.cake-stage{background:#efe5ce;border:1px solid #dcccaa;border-radius:50%;width:230px;height:230px;display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 9px #f7eedb,inset 0 0 0 11px #e0cfaa}.cake-stage svg{width:82%;height:82%;filter:drop-shadow(0 14px 8px #9d623d28);transition:transform .25s}.cake-stage.kneading svg{transform:scale(1.08,.87)}.cake-stage .stage-label{position:absolute;bottom:22px;font-size:11px;color:#9f795a}.work-content h3{font:23px var(--serif);letter-spacing:1px;margin-bottom:9px}.intro{font-size:13px;color:#81826f;line-height:1.8;max-width:620px}.choices{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.choice{min-width:112px;padding:13px 17px;border-radius:8px;border:1px solid #dbd2b8;background:#fffaf0;color:var(--ink);display:flex;gap:10px;align-items:center;text-align:left;transition:.2s}.choice[aria-pressed=true]{border-color:#ad7048;background:#f3e6cc;box-shadow:inset 0 0 0 1px #ad7048}.choice small{display:block;color:#98917c;font-size:10px;margin-top:4px}.fill-dot{width:29px;height:29px;border-radius:50%;background:#bc8a5d;box-shadow:inset 0 0 0 3px #ffffff24}.fill-dot.bean{background:#995656}.fill-dot.sesame{background:#66675b}.fill-dot.taro{background:#a89db3}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background:#345a55;color:#fff5dc;padding:13px 25px;border-radius:7px;min-height:46px;font-size:13px;letter-spacing:1px}.button.secondary{color:#765539;background:transparent;border-color:#d4b791}.text-button{background:none;color:#916b41;text-decoration:underline;text-underline-offset:4px;font-size:12px;padding:12px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.steps{display:flex;gap:0;margin-top:27px;padding-top:18px;border-top:1px solid #ded6c1;color:#9a9c89;list-style:none;font-size:11px}.steps li{flex:1;display:flex;align-items:center;gap:8px}.steps i{width:20px;height:20px;border:1px solid #d2cfba;border-radius:50%;display:grid;place-items:center;font:10px Georgia;font-style:normal}.steps .done{color:#637d62}.steps .current{color:#a36a3e}.steps .current i{background:#a36a3e;color:#fff;border-color:#a36a3e}.progress-track{height:12px;max-width:400px;margin:22px 0;border-radius:12px;background:#e1d7ba;overflow:hidden}.progress-track span{display:block;width:0;height:100%;border-radius:12px;background:#86a282;transition:width .2s}.bake-meter{height:26px;max-width:440px;position:relative;margin:22px 0 10px;background:linear-gradient(90deg,#e3d6b7 0 55%,#8ea57f 55% 85%,#b68661 85%);border-radius:20px;border:3px solid #fff8e9}.bake-needle{position:absolute;top:-7px;height:34px;width:3px;background:#765239;left:0;transition:left .08s linear}.bake-legend{display:flex;justify-content:space-between;max-width:440px;font-size:10px;color:#99927c;margin-bottom:19px}.success{color:#537956}.empty-note{background:#efe7d2;border-left:3px solid #c7ac73;padding:14px 18px;font-size:13px;line-height:1.9;margin-bottom:20px}.ritual-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px}.altar{min-height:230px;display:flex;align-items:center;justify-content:center;position:relative;background:radial-gradient(ellipse at center,#e8e1c9,#f6eedb);border-radius:10px;overflow:hidden}.altar:after{content:"";position:absolute;left:7%;right:7%;height:48px;bottom:25px;background:#a86845;border-top:7px solid #bd8c61;border-radius:6px;box-shadow:0 9px 0 #704b37}.offering-items{display:flex;gap:3px;position:relative;z-index:1;align-items:flex-end;margin-top:25px;width:90%;justify-content:center}.offering-items svg{width:22%;max-width:95px;height:100px;filter:drop-shadow(0 8px 2px #59493022)}.altar-placeholder{position:absolute;top:35px;font:18px var(--serif);letter-spacing:3px;color:#9d967c}.ritual-copy h3{font:23px var(--serif);margin-bottom:10px}.ritual-copy p{font-size:13px;line-height:1.9;color:#777f6e}.ritual-copy .choices{margin:15px 0}.ritual-copy .choice{min-width:90px;font-size:12px}.note{color:#99917b;font-size:11px;line-height:1.8;margin-top:16px}.family-layout{display:grid;grid-template-columns:1fr 1fr;gap:35px}.family-table{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}.family-member{background:none;display:flex;flex-direction:column;align-items:center;gap:9px;color:#586f65;padding:0 0 10px;border-radius:12px;border:1px solid transparent}.family-member:hover{background:#eee5ce}.family-member.served{border-color:#93aa84;background:#e6ead6}.family-member svg{width:100%;height:120px}.family-member span{font-size:12px}.family-member small{font-size:10px;color:#aa9672}.wish-input{display:block;width:100%;padding:13px 15px;border:1px solid #d5c9ae;background:#fffaf0;border-radius:7px;color:#456258;margin:14px 0;resize:vertical;min-height:74px}.saved-wish{font:17px/1.8 var(--serif);color:#a27042;margin-top:14px;overflow-wrap:anywhere}.poetry-layout{display:grid;grid-template-columns:270px 1fr;gap:35px}.poem-list{display:flex;flex-direction:column;gap:9px}.poem-select{display:flex;justify-content:space-between;align-items:center;background:#f3ecd9;border:1px solid #e0d5bd;border-radius:7px;text-align:left;padding:16px;color:#7c846f}.poem-select.active{background:#354f4f;color:#f3e7c9;border-color:#354f4f}.poem-select b{font:16px var(--serif)}.poem-select small{font-size:10px;opacity:.75}.poem-paper{position:relative;text-align:center;padding:9px 20px 20px;background:repeating-linear-gradient(transparent 0 37px,#af9a6b15 37px 38px);border-left:1px solid #dac9a7;border-right:1px solid #dac9a7}.poem-paper h3{font:26px var(--serif);letter-spacing:4px}.poem-author{font-size:11px;color:#a39378;margin:12px 0 18px}.poem-lines{font:22px/1.9 var(--serif);letter-spacing:3px;color:#586550;min-height:158px}.poem-lines p{border-radius:4px;transition:color .3s,background .3s}.poem-lines .reading{color:#a4693f;background:#e8d5ad45}.poem-explain{font-size:12px;line-height:1.8;color:#98917b;margin:14px auto;max-width:490px}.poem-paper .actions{justify-content:center;margin-top:14px}.stamp{position:absolute;right:17px;top:15px;writing-mode:vertical-rl;border:1px solid #b27354;color:#b27354;padding:6px 4px;font:13px var(--serif);letter-spacing:3px;transform:rotate(6deg)}.read-status{font-size:11px;min-height:20px;margin:9px 0;color:#8a9b7c}.save-status{max-width:1240px;margin:12px auto 0;text-align:right;font-size:10px;color:#8ba29e;min-height:16px}footer{max-width:1240px;margin:30px auto 0;padding:0 0 35px;display:flex;justify-content:space-between;gap:18px;color:#93aaa8;font-size:10px;letter-spacing:.5px}footer div{display:flex;gap:20px;align-items:center}footer button{background:none;padding:0;font-size:10px;color:inherit}#toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%,20px);background:#324d48;color:#fff0d0;border:1px solid #dfc49a66;padding:13px 25px;border-radius:30px;box-shadow:0 6px 30px #0003;z-index:50;opacity:0;transition:.25s;pointer-events:none;max-width:90%;width:max-content;font-size:13px;line-height:1.7}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{background:var(--paper);color:var(--ink);border:1px solid #e6d7b5;border-radius:15px;padding:40px;width:min(480px,calc(100% - 36px));box-shadow:0 30px 100px #0008;max-height:85vh}dialog::backdrop{background:#061b24b5;backdrop-filter:blur(6px)}dialog h2{font:28px var(--serif);margin:15px 0}dialog p{font-size:13px;line-height:1.9;color:#7f846f;margin:12px 0}.dialog-close{position:absolute;right:12px;top:8px;font-size:28px;color:#9c8b68;background:none;width:40px;height:40px}.volume-label{display:block;font-size:12px;margin-top:22px}#volume{width:100%;accent-color:#58765e;margin:12px 0 20px}.audio-import{border:1px solid #ddd1b6;padding:20px;border-radius:8px}.audio-import b{font:18px var(--serif)}.audio-import p{font-size:12px}.muted{font-size:11px!important}.source-links{display:flex;gap:20px;font-size:11px!important}.floating-petal{position:absolute;z-index:2;bottom:0;animation:petal 4s ease-out forwards;pointer-events:none;font:22px var(--serif);color:var(--gold)}@keyframes petal{0%{transform:translateY(0) rotate(0);opacity:0}20%{opacity:.9}100%{transform:translateY(-280px) rotate(35deg);opacity:0}}.twinkle{animation:twinkle 4s ease-in-out infinite alternate}.twinkle:nth-child(3n){animation-delay:1.5s}@keyframes twinkle{to{opacity:.3}}.moon-disc{filter:drop-shadow(0 0 22px #f5e4b653)}
@media(min-width:1500px){.moonworld{height:575px}}@media(max-width:1300px){.chapter-nav,.activity,.save-status,footer{margin-left:30px;margin-right:30px}.scene-heading{left:42px}.scene-heading h1{font-size:33px}.moonworld{height:480px}}@media(max-width:900px){.topbar{padding:0 27px;height:80px}.moonworld{height:400px}.scene-heading{top:10px;left:30px}.scene-heading h1{font-size:25px;letter-spacing:1px}.scene-heading p{font-size:11px}.scene-heading .eyebrow{font-size:9px}.chapter-nav button{padding:18px 13px;gap:8px}.chapter-nav button>span:nth-child(2){font-size:16px}.nav-icon{font-size:26px}.chapter-nav small{font-size:9px;letter-spacing:0}.chapter-nav b{display:none}.activity{padding:28px 25px}.workbench{grid-template-columns:200px 1fr;gap:24px}.cake-stage{width:195px;height:195px}.choice{min-width:99px;padding:10px 12px}.family-layout,.ritual-layout{gap:24px}.poetry-layout{grid-template-columns:215px 1fr;gap:24px}footer{flex-direction:column;align-items:center;text-align:center}.poem-lines{font-size:19px;letter-spacing:1px}.poem-paper{padding-left:10px;padding-right:10px}}
@media(max-width:600px){.topbar{height:76px;padding:0 20px}.brand{gap:9px}.brand b{font-size:21px;letter-spacing:3px}.brand small{font-size:6px;letter-spacing:1.6px}.brand-moon{font-size:39px}.round-button{padding:8px 11px}.round-button span{display:none}.icon-button{width:29px}.top-actions{gap:3px}.moonworld{height:390px}.moonworld #scene-art{left:-47%;right:-47%;top:38px}.scene-heading{top:4px;left:0;width:100%;max-width:none;text-align:center}.scene-heading .eyebrow{font-size:8px;letter-spacing:3px}.scene-heading h1{font-size:25px;line-height:1.35;margin:10px 0 6px;letter-spacing:2px}.scene-heading p{font-size:11px;letter-spacing:1px}.scene-caption{left:18px;bottom:19px;max-width:65%;padding:8px 10px;font-size:9px;gap:6px}.collection{right:18px;bottom:25px;gap:5px;font-size:9px}.collection b{font-size:23px}.collection>span:first-child{display:none}.moon-hotspot{left:32%;top:29%;width:36%;height:44%}.chapter-nav,.activity,.save-status,footer{margin-left:14px;margin-right:14px}.chapter-nav{grid-template-columns:repeat(4,1fr);border-radius:10px 10px 0 0}.chapter-nav button{padding:13px 3px;display:flex;gap:6px;flex-direction:column;text-align:center}.chapter-nav button>span:nth-child(2){font-size:12px;letter-spacing:0}.nav-icon{font-size:25px;height:26px}.chapter-nav small{display:none}.activity{padding:24px 19px;min-height:390px}.section-top{margin-bottom:22px;gap:7px;align-items:flex-start}.section-top h2{font-size:23px;letter-spacing:1px}.section-top p{font-size:11px;max-width:120px}.step-count{font-size:21px}.eyebrow{font-size:8px;letter-spacing:3px}.workbench{grid-template-columns:1fr;gap:18px}.cake-stage{width:168px;height:168px;margin:auto}.cake-stage .stage-label{bottom:14px;font-size:9px}.work-content h3{font-size:21px}.intro{font-size:12px}.choices{gap:8px;margin:16px 0}.choice{flex:1;min-width:42%;padding:12px 9px;font-size:13px}.choice small{font-size:9px}.fill-dot{width:25px;height:25px;flex-shrink:0}.button{padding:12px 18px;font-size:12px}.actions{gap:8px}.steps{margin-top:22px;padding-top:16px;font-size:9px}.steps li{gap:4px}.steps i{width:16px;height:16px;font-size:8px}.ritual-layout,.family-layout{grid-template-columns:1fr;gap:23px}.altar{min-height:210px}.ritual-copy h3{font-size:21px}.ritual-copy .choice{min-width:28%;font-size:12px;justify-content:center}.family-table{gap:5px}.family-member svg{height:98px}.family-member span{font-size:11px}.family-member small{font-size:9px}.poetry-layout{grid-template-columns:1fr;gap:24px}.poem-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.poem-select{padding:12px 9px;gap:4px}.poem-select b{font-size:13px}.poem-select small{font-size:9px}.poem-paper{padding:10px 8px 5px}.poem-paper h3{font-size:24px}.poem-lines{font-size:21px;line-height:1.9;letter-spacing:1px}.stamp{font-size:10px;right:6px;padding:5px 3px}.poem-explain{font-size:11px}.save-status{font-size:9px;padding-right:5px}.note{font-size:10px}footer{font-size:9px;margin-top:24px;line-height:1.8;padding-bottom:22px;gap:12px}footer div{gap:17px}footer button{font-size:9px}dialog{padding:32px 25px}dialog h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.poem-filters{display:flex;gap:5px}.poem-filters button{flex:1;background:#ece3ce;color:#7d836d;padding:9px 3px;border-radius:5px;font-size:11px}.poem-filters button[aria-pressed=true]{background:#b48352;color:#fff8e5}.poem-library-note{font-size:10px;color:#99937e;margin:13px 0}.poem-list{max-height:420px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c4b99b transparent;padding-right:3px}.poem-paper h3{line-height:1.5;padding:0 24px}.poem-lines{overflow-wrap:anywhere}.poem-lines .poem-preface{font-size:12px;line-height:1.9;letter-spacing:1px;color:#99917b;margin-bottom:16px}.poem-select{flex-shrink:0}@media(max-width:600px){.poem-list{max-height:236px}.poem-select{min-height:62px}.poem-paper h3{font-size:21px}.poem-lines{font-size:20px;letter-spacing:0}}
#scene-art{mask-image:linear-gradient(to bottom,transparent,black 9%,black 90%,transparent)}@media(max-width:600px){.moonworld #scene-art{left:-28%;right:-28%;top:82px}.section-top h2{font-size:21px}.section-top:has(p){flex-direction:column;gap:10px}.section-top p{max-width:none}.section-top p br{display:none}.poem-select{flex-direction:column;align-items:flex-start;gap:8px}.moon-hotspot{top:32%;height:44%}}
.sr-label{display:block;font-size:11px;color:#85917a;margin-top:16px}

.poetry-layout>*{min-width:0}.poem-player{margin:0 auto 23px;padding:17px;background:#efe6d0;border:1px solid #d9c8a4;border-radius:12px;max-width:540px;text-align:left}.player-heading,.player-options{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.player-heading{font-size:13px;color:#486256;margin-bottom:13px}.player-heading span:last-child{font-size:10px;color:#8b7b60}.player-buttons{display:flex;gap:8px}.player-buttons .button{flex:1;padding:12px 10px;letter-spacing:.5px}.poem-player audio{display:block;width:100%;min-width:0;height:42px;margin:13px 0}.player-options{font-size:11px;color:#756c52}.player-options label{display:flex;align-items:center;gap:7px}.player-options select{font:inherit;color:#485d51;background:#fbf4e3;border:1px solid #cbb992;border-radius:5px;min-height:35px;padding:5px}.audio-direct{text-decoration:underline;text-underline-offset:4px;padding:10px 0}.poem-player .read-status{font-size:12px;line-height:1.7;min-height:22px;margin:12px 0 0;color:#617757}.poem-player[data-state=error]{border-color:#b77950}.poem-player[data-state=error] .read-status{color:#8a4f30}.poem-player[data-state=playing] .player-heading{color:#315b46}.poem-player [hidden]{display:none!important}@media(max-width:600px){.poem-player{padding:12px;margin-left:-3px;margin-right:-3px}.player-buttons .button{font-size:12px}.player-options{gap:4px}.poem-paper{min-width:0}}

.default-track{border:1px solid #d9c8a4;background:#efe6d0;border-radius:9px;padding:15px;min-width:0}.default-track b{font-size:14px;line-height:1.7;display:block}.default-track audio{display:block;width:100%;min-width:0;margin:13px 0;height:42px}.default-track #music-status{font-size:12px;line-height:1.7;margin:8px 0}.music-source{display:block;font-size:10px;line-height:1.7;text-decoration:underline;text-underline-offset:3px;color:#82765a}.audio-import summary{cursor:pointer;font-size:13px;color:#6e775f}.audio-import{margin-top:19px}.audio-import .text-button{display:block;padding-left:0}#music-toggle[aria-busy=true]{opacity:.75}@media(max-width:600px){.default-track{padding:11px}.default-track b{font-size:13px}#settings-dialog{padding-left:20px;padding-right:20px}#settings-dialog h2{font-size:23px}}
