@font-face{font-family:Andika;font-style:normal;font-weight:400;font-display:swap;src:url(../media/baea47258169749f-s.2k182ghahu2cb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Andika;font-style:normal;font-weight:400;font-display:swap;src:url(../media/76994e4355b1acdf-s.1n889avqnjhi6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Andika;font-style:normal;font-weight:400;font-display:swap;src:url(../media/859e2a74611c7198-s.2e70s_-ha7dvj.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Andika;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8027f135aa6a789f-s.1uxl6xoda_3z9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f92294a2ee609349-s.p.3_3dd6024sn7h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Andika;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8e0e9f06bed40d7a-s.43vkazbm8z7tq.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Andika;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b277c6ebf77e324a-s.44_a7sgwseblx.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Andika;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d4f1c28b247cb356-s.0vbvnke-9arxb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Andika;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f69986ca60aa03d5-s.1nhgtbj7kgj5y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f43bf62ef4425756-s.p.2ofosk6fdzx09.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Andika Fallback;src:local(Arial);ascent-override:116.34%;descent-override:37.23%;line-gap-override:0.0%;size-adjust:104.93%}.andika_4f9bd6cb-module__w4V1Dq__className{font-family:Andika,Andika Fallback;font-style:normal}.andika_4f9bd6cb-module__w4V1Dq__variable{--font-reading:"Andika", "Andika Fallback"}
@font-face{font-family:"Baloo 2";font-style:normal;font-weight:600;font-display:swap;src:url(../media/3c30d2e0bea83d70-s.3wiqdwqz1gfqe.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:600;font-display:swap;src:url(../media/e045b8a36dafeb96-s.1znw80anc03tc.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:600;font-display:swap;src:url(../media/921864ee6019b767-s.0dpkqgqz79smb.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:600;font-display:swap;src:url(../media/d7d9c82e455b419c-s.p.2zp15__9k16__.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:800;font-display:swap;src:url(../media/3c30d2e0bea83d70-s.3wiqdwqz1gfqe.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:800;font-display:swap;src:url(../media/e045b8a36dafeb96-s.1znw80anc03tc.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:800;font-display:swap;src:url(../media/921864ee6019b767-s.0dpkqgqz79smb.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:800;font-display:swap;src:url(../media/d7d9c82e455b419c-s.p.2zp15__9k16__.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2 Fallback";src:local(Arial);ascent-override:112.55%;descent-override:54.71%;line-gap-override:0.0%;size-adjust:95.78%}.baloo_2_3e982e2c-module___x7dmW__className{font-family:"Baloo 2","Baloo 2 Fallback";font-style:normal}.baloo_2_3e982e2c-module___x7dmW__variable{--font-display:"Baloo 2", "Baloo 2 Fallback"}
:root{--sky:#93d3f6;--sky-light:#d4f0ff;--sunset:#ffc98a;--dusk:#9d73b8;--night:#1a2156;--leaf:#4ea45a;--leaf-light:#7cc56d;--leaf-dark:#2f7a3e;--bark:#7a4b25;--bark-dark:#5a3418;--wood:#d9a066;--wood-dark:#a86a34;--sun:#ffd43b;--ink:#2a2a3a;--ink-soft:#5e5e72;--page:#fffaf0;--go:#ff8a3d;--go-dark:#e0661c;--line:#d9dde6;--reading:var(--font-reading), "Andika", "Avenir Next", system-ui, sans-serif;--display:var(--font-display), "Baloo 2", "Chalkboard SE", "Avenir Next Rounded", system-ui, sans-serif;--utility:system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--sky);color:var(--ink);font-family:var(--reading);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid var(--sun);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.btn{font-family:var(--display);letter-spacing:.3px;background:var(--go);color:#fff;min-height:64px;box-shadow:0 6px 0 var(--go-dark);border:none;border-radius:999px;padding:12px 34px;font-size:26px;font-weight:800;transition:transform 80ms}.btn:active{box-shadow:0 2px 0 var(--go-dark);transform:translateY(4px)}.btn.sky{background:#3a8fd9;box-shadow:0 6px #2468a8}.btn.small{min-height:50px;padding:8px 22px;font-size:20px}.btn.quiet{color:#2468a8;background:#fff;box-shadow:0 6px #b9cfe6}.btn:disabled{opacity:.35}.roundbtn{width:64px;height:64px;color:var(--ink);background:#fff;border:none;border-radius:50%;place-items:center;font-size:30px;font-weight:800;display:grid;box-shadow:0 5px #0000002e}.roundbtn:active{transform:translateY(3px);box-shadow:0 2px #0000002e}.title{font-family:var(--display);font-weight:800}.skyscape{background:linear-gradient(to bottom, var(--sky) 0%, var(--sky-light) 70%, #e9f7d8 100%);min-height:100dvh;position:relative;overflow:hidden}.cloud{opacity:.9;background:#fff;border-radius:40px;width:150px;height:46px;animation:60s linear infinite drift;position:absolute}.cloud:before,.cloud:after{content:"";background:#fff;border-radius:50%;position:absolute}.cloud:before{width:70px;height:70px;top:-34px;left:22px}.cloud:after{width:54px;height:54px;top:-24px;left:72px}@keyframes drift{0%{transform:translate(-20vw)}to{transform:translate(120vw)}}.home{padding:max(24px, env(safe-area-inset-top)) 20px 120px;flex-direction:column;align-items:center;display:flex}.home h1{font-family:var(--display);color:#fff;text-shadow:0 4px #1a3c6e40;z-index:1;margin:10px 0 30px;font-size:52px;font-weight:800;position:relative}.branch{z-index:1;background:linear-gradient(var(--bark), var(--bark-dark));border-radius:17px;width:min(900px,96vw);height:34px;position:relative;box-shadow:0 6px #0000001f}.branch .leafy{background:var(--leaf);width:70px;height:50px;box-shadow:30px 8px 0 var(--leaf-light), -24px 12px 0 var(--leaf-dark);border-radius:50%;position:absolute;top:-26px}.signs{z-index:1;flex-wrap:wrap;justify-content:center;gap:40px;margin-top:-2px;display:flex;position:relative}.kid{background:var(--wood);min-width:220px;box-shadow:inset 0 -8px 0 var(--wood-dark), 0 10px 0 #0000001f;transform-origin:top;border:none;border-radius:22px;margin-top:70px;padding:26px 40px 22px;animation:4s ease-in-out infinite sway;position:relative}.kid:nth-child(2n){animation-delay:-2s}.kid:before,.kid:after{content:"";background:#8a6a45;border-radius:3px;width:6px;height:74px;position:absolute;top:-72px}.kid:before{left:34px}.kid:after{right:34px}.kid .initial{background:var(--go);color:#fff;width:76px;height:76px;font:800 44px var(--display);box-shadow:0 4px 0 var(--go-dark);border-radius:50%;place-items:center;margin:0 auto 10px;display:grid}.kid .name{font:800 34px var(--display);color:#4a2a0e}.kid:active{animation-play-state:paused;transform:scale(.97)}@keyframes sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}.grownups{right:20px;bottom:max(20px, env(safe-area-inset-bottom));z-index:5;font-family:var(--utility);color:var(--ink-soft);background:#fffc;border:1px solid #00000026;border-radius:999px;padding:9px 16px;font-size:15px;position:fixed}.grass{background:var(--leaf);height:90px;box-shadow:0 -12px 0 var(--leaf-light) inset;border-radius:50% 50% 0 0/40px 40px 0 0;position:fixed;bottom:0;left:0;right:0}.climb{background:var(--sky);flex-direction:column;height:100dvh;display:flex;position:relative}.climb-top{z-index:3;padding:max(14px, env(safe-area-inset-top)) 16px 12px;background:#3f97d6;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative;box-shadow:0 4px #143c6e2e}.climb-top .hi{font:800 34px var(--display);color:#fff;text-shadow:0 3px #0a285059;text-align:center;line-height:1.1}.climb-top .hi small{font-size:19px;font-weight:600;display:block}.sky{-webkit-overflow-scrolling:touch;flex-direction:column-reverse;flex:1;display:flex;overflow-y:auto}.tree{background:linear-gradient(#6cbcf0 0%,#93d3f6 45%,#d4f0ff 100%);flex-direction:column;flex:none;min-height:100%;padding:300px 0 150px;display:flex;position:relative}.tree.dusk{background:linear-gradient(#2c2f78 0%,#5a4f9e 12%,#c47fae 35%,#ffb27a 65%,#ffe2a8 100%)}.treetop{width:1px;height:1px;position:absolute;top:0}.tree.dusk:before{content:"";background-image:radial-gradient(2px 2px at 12% 30%,#fff 50%,#0000 51%),radial-gradient(2px 2px at 30% 70%,#fff 50%,#0000 51%),radial-gradient(3px 3px at 52% 20%,#fff8c4 50%,#0000 51%),radial-gradient(2px 2px at 70% 55%,#fff 50%,#0000 51%),radial-gradient(2px 2px at 88% 25%,#fff 50%,#0000 51%),radial-gradient(3px 3px at 80% 80%,#fff8c4 50%,#0000 51%),radial-gradient(2px 2px at 20% 90%,#fff 50%,#0000 51%);height:220px;animation:3s ease-in-out infinite alternate twinkle;position:absolute;inset:0 0 auto}@keyframes twinkle{0%{opacity:.55}to{opacity:1}}.trunk{background:repeating-linear-gradient(90deg, var(--bark) 0 14px, #6c411f 14px 18px, var(--bark) 18px 30px, #86552b 30px 36px);border-radius:40px 40px 0 0;width:120px;position:absolute;top:200px;bottom:60px;left:50%;transform:translate(-50%);box-shadow:inset -14px 0 #0000001f}.crown{width:560px;max-width:110vw;height:240px;position:absolute;top:90px;left:50%;transform:translate(-50%)}.crown span{background:var(--leaf);border-radius:50%;position:absolute}.leafclump{background:var(--leaf);width:110px;height:80px;box-shadow:34px 10px 0 var(--leaf-light), -28px 14px 0 var(--leaf-dark);border-radius:50%;position:absolute}.treehouse{z-index:1;width:260px;position:absolute;top:40px;left:50%;transform:translate(-50%)}.ground{background:var(--leaf);height:140px;box-shadow:inset 0 18px 0 var(--leaf-light);border-radius:50% 50% 0 0/60px 60px 0 0;position:absolute;bottom:0;left:0;right:0}.ladder{z-index:2;background:repeating-linear-gradient(0deg,#c98a4f 0 6px,#0000 6px 56px,#c98a4f 56px 64px) bottom/90px 100% no-repeat;flex-direction:column-reverse;flex:1;width:100%;margin:0 auto;padding:0;list-style:none;display:flex;position:relative}.ladder:before,.ladder:after{content:"";background:var(--wood);width:12px;box-shadow:inset -3px 0 0 var(--wood-dark);border-radius:6px;position:absolute;top:-30px;bottom:-40px}.ladder:before{left:calc(50% - 52px)}.ladder:after{left:calc(50% + 40px)}.step{height:128px;position:relative}.bar{background:var(--wood);width:104px;height:14px;box-shadow:inset 0 -4px 0 var(--wood-dark);border-radius:7px;position:absolute;top:58px;left:calc(50% - 52px)}.step.cleared .bar{background:#8fd18a;box-shadow:inset 0 -4px #4e9c4a}.step.current .bar{background:var(--sun);box-shadow:inset 0 -4px #d9a600,0 0 22px 6px #ffd43bcc}.badge{background:var(--go);color:#fff;width:56px;height:56px;font:800 28px var(--display);z-index:3;border:4px solid #fff;border-radius:50%;place-items:center;animation:1.6s ease-in-out infinite bob;display:grid;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 5px #0003}@keyframes bob{50%{transform:translate(-50%,-6px)}}.sign{text-align:left;border:none;border-left:12px solid var(--book,#3a8fd9);background:#fff;border-radius:18px;width:min(330px,50% - 90px);padding:12px 16px;position:absolute;top:26px;box-shadow:0 6px #00000026}.step.left .sign{right:calc(50% + 78px)}.step.right .sign{left:calc(50% + 78px)}.sign:after{content:"";background:var(--wood-dark);border-radius:4px;width:26px;height:8px;position:absolute;top:34px}.step.left .sign:after{right:-28px}.step.right .sign:after{left:-40px}.sign .bk{font:800 22px/1.1 var(--display);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sign .lv{color:var(--ink-soft);font-size:16px}.sign .tick{float:right;color:#fff;width:30px;height:30px;font:800 18px var(--display);background:#4e9c4a;border-radius:50%;place-items:center;margin-left:8px;display:grid}.step.ahead .sign{color:#4a5a6e;background:#eef3f8;box-shadow:0 4px #00000040}.step.ahead .sign .bk{color:#33425a}.step.current .sign{box-shadow:0 0 0 5px var(--sun), 0 8px 0 #0000002e;padding:16px 18px;top:4px}.step.current .sign .bk{white-space:normal;font-size:26px}.step.current .sign .go{font:800 22px var(--display);color:#fff;background:var(--go);box-shadow:0 4px 0 var(--go-dark);border-radius:999px;margin-top:8px;padding:6px 22px;display:inline-block}.plaque{z-index:3;font:800 28px var(--display);color:#4a2a0e;background:var(--wood);box-shadow:inset 0 -5px 0 var(--wood-dark), 0 4px 0 #00000026;white-space:nowrap;border-radius:10px;padding:4px 22px;position:absolute;top:214px;left:50%;transform:translate(-50%)rotate(-2deg)}.badge.athouse{top:150px}.bedtime-call{left:0;right:0;bottom:max(28px, env(safe-area-inset-bottom));z-index:4;pointer-events:none;justify-content:center;display:flex;position:absolute}.bedtime-call .btn{pointer-events:auto;padding:16px 40px;font-size:30px;animation:.5s cubic-bezier(.2,1.6,.5,1) pop}.climb-empty{text-align:center;max-width:460px;font:700 26px var(--display);color:#fff;text-shadow:0 2px #0003;margin:auto;padding:40px 20px}.reader{background:linear-gradient(var(--sky), var(--sky-light));flex-direction:column;min-height:100dvh;display:flex}.reader .topbar{padding:max(14px, env(safe-area-inset-top)) 18px 10px;justify-content:space-between;align-items:center;gap:12px;display:flex}.reader .booktitle{font:700 20px var(--display);color:#1e4b75;text-align:center;flex:1}.book{background:var(--page);border-radius:26px;flex-direction:column;flex:1;margin:0 16px;display:flex;overflow:hidden;box-shadow:0 8px #1a3c6e26}.page{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:22px;padding:22px 32px;display:flex;overflow-y:auto}.page .plate{object-fit:contain;border-radius:8px;max-width:min(560px,90%);max-height:38dvh;box-shadow:0 3px 12px #00000026}.page h2{font:800 28px var(--display);color:var(--bark);text-align:center;margin:0}.text{max-width:760px;font-size:clamp(28px,4.2vw,40px);line-height:1.55}.text.long{font-size:clamp(22px,2.8vw,28px);line-height:1.6}.text p{margin:0 0 .6em}.glosses{width:100%;max-width:760px;font:20px/1.4 var(--utility);color:var(--ink-soft);border-top:2px dashed #0000001f;margin:0;padding:14px 20px}.glosses div{margin:4px 0}.glosses dt{color:var(--ink);font-weight:700;display:inline}.glosses dt:after{content:": "}.glosses dd{margin:0;display:inline}.w{border-radius:8px;padding:0 .06em;transition:background .15s}.w.said{box-shadow:0 3px 0 var(--sun);background:#ffe9a8}.w.reading{background:#d4ecff}.pagebar{padding:16px 18px max(18px, env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:12px;display:flex}.dots{flex-wrap:wrap;flex:1;justify-content:center;gap:7px;display:flex}.dot{background:#ffffffb3;border-radius:50%;width:12px;height:12px}.dot.on{background:var(--go);transform:scale(1.3)}.pagecount{font:700 20px var(--display);color:#1e4b75}.listen{font:600 15px var(--utility);color:#2c7a3a;display:block}.listen.no-microphone,.listen.no-engine{color:var(--ink-soft)}.w.done{background:#dcf1d6;transition:background .3s}.w.next{box-shadow:0 4px 0 var(--leaf);animation:1.6s ease-in-out infinite waiting}.w.next.stuck{box-shadow:0 4px 0 var(--sun);background:#fff3c4;animation:1s ease-in-out infinite waiting}@keyframes waiting{50%{box-shadow:0 4px #0000}}.hint{font:700 22px var(--display);color:#1e4b75;background:#fff;border-radius:999px;padding:10px 24px;animation:.3s ease-out rise;box-shadow:0 5px #0000001f}@media (prefers-reduced-motion:reduce){.w.next,.w.next.stuck{animation:none}}.w.again{background:#d4ecff;box-shadow:0 3px #3a8fd9}.nudge{font:700 22px var(--display);background:#fff;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 14px 10px 24px;animation:.3s ease-out rise;display:flex;box-shadow:0 5px #0000001f}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.bedtime{background:linear-gradient(#8fd0f7,#ffe7b0);flex-direction:column;justify-content:center;align-items:center;gap:30px;min-height:100dvh;padding:40px 20px;display:flex;position:relative;overflow:hidden}.bedtime .nightlayer{background:linear-gradient(#0f1640,#262c73 60%,#4d4488);transition:opacity 2.6s;position:absolute;inset:0}.bedtime .nightlayer:before{content:"";background-image:radial-gradient(2px 2px at 8% 20%,#fff 50%,#0000 51%),radial-gradient(3px 3px at 22% 60%,#fff8c4 50%,#0000 51%),radial-gradient(2px 2px at 35% 12%,#fff 50%,#0000 51%),radial-gradient(2px 2px at 48% 45%,#fff 50%,#0000 51%),radial-gradient(3px 3px at 62% 18%,#fff8c4 50%,#0000 51%),radial-gradient(2px 2px at 90% 55%,#fff 50%,#0000 51%),radial-gradient(2px 2px at 14% 85%,#fff 50%,#0000 51%),radial-gradient(3px 3px at 56% 80%,#fff 50%,#0000 51%),radial-gradient(2px 2px at 95% 12%,#fff 50%,#0000 51%),radial-gradient(3px 3px at 4% 48%,#fff 50%,#0000 51%),radial-gradient(2px 2px at 28% 36%,#fff 50%,#0000 51%),radial-gradient(3px 3px at 75% 38%,#fff8c4 50%,#0000 51%),radial-gradient(2px 2px at 83% 72%,#fff 50%,#0000 51%),radial-gradient(4px 4px at 40% 28%,#fff 50%,#0000 51%),radial-gradient(2px 2px at 68% 64%,#fff 50%,#0000 51%);animation:2.4s ease-in-out infinite alternate twinkle;position:absolute;inset:0 0 45%}.bedtime.morning .nightlayer{opacity:0}.moon{background:radial-gradient(circle at 35% 35%,#fffbe6,#f3e3a0);border-radius:50%;width:96px;height:96px;position:absolute;top:9%;right:13%;box-shadow:0 0 50px 14px #fff6cf4d}.sun{background:#ffd43b;border-radius:50%;width:150px;height:150px;transition:top 2.8s cubic-bezier(.2,.8,.3,1) .2s;position:absolute;top:110%;left:12%;box-shadow:0 0 70px 24px #ffd43b8c}.bedtime.morning .sun{top:7%}.bedhouse{z-index:1;width:320px;position:relative}.bedhouse .treehouse{width:100%;display:block;position:static;transform:none}.bedhouse:before{content:"";z-index:-1;background:repeating-linear-gradient(90deg,#5e3a1c 0 14px,#4a2c14 14px 18px,#5e3a1c 18px 30px,#6a4222 30px 36px);width:110px;height:100dvh;position:absolute;top:86%;left:50%;transform:translate(-50%)}.bedtime.morning .bedhouse:before{background:repeating-linear-gradient(90deg, var(--bark) 0 14px, #6c411f 14px 18px, var(--bark) 18px 30px, #86552b 30px 36px)}.bedtime.night .bedhouse .treehouse{filter:drop-shadow(0 0 22px #ffd43b73)}.zzz{font:800 34px var(--display);color:#fff;opacity:0;animation:3.6s ease-in infinite zzz;position:absolute;top:34%;left:66%}.zzz:nth-of-type(2){animation-delay:1.2s}.zzz:nth-of-type(3){animation-delay:2.4s}.bedtime.morning .zzz{display:none}@keyframes zzz{0%{opacity:0;transform:translate(0)scale(.6)}20%{opacity:1}to{opacity:0;transform:translate(50px,-110px)scale(1.4)}}.bedcard{z-index:1;text-align:center;background:#fff;border-radius:34px;width:min(600px,100%);padding:34px 44px;position:relative;box-shadow:0 10px #0000002e}.bedcard h1{font:800 52px/1.05 var(--display);color:#1e4b75;margin:0 0 14px}.bedcard p{color:var(--ink-soft);margin:0 0 28px;font-size:26px}.bedcard .btn{margin:0 auto;padding:14px 44px;font-size:30px}.bedtime.night .bedcard .btn{animation:.6s 1.8s both appear}@keyframes appear{0%{opacity:0;transform:translateY(12px)}}.cheer{background:linear-gradient(var(--sky), var(--sky-light));justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex;position:relative;overflow:hidden}.done-card{z-index:2;text-align:center;background:#fff;border-radius:36px;width:min(640px,100%);padding:52px 60px 48px;animation:.5s cubic-bezier(.2,1.6,.5,1) pop;position:relative;box-shadow:0 10px #1a3c6e26}.done-card .big{font:800 60px/1.05 var(--display);color:#1e4b75;margin:10px 0 16px}.done-card p{color:var(--ink-soft);margin:0 0 32px;font-size:26px}.done-card .btn{padding:16px 40px;font-size:26px}.done-card .mini{flex-direction:column-reverse;align-items:center;gap:16px;margin:0 auto 24px;display:flex}.done-card .mini span{background:var(--wood);border-radius:9px;width:180px;height:18px}.done-card .mini span.up{background:var(--sun);animation:1s .3s both climb;box-shadow:0 0 16px 4px #ffd43bcc}@keyframes climb{0%{opacity:0;transform:translateY(24px)}}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.confetti{border-radius:3px;width:14px;height:20px;animation:linear 3 both fall;position:absolute;top:-20px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}.shelfroom{min-height:100dvh;padding:max(14px, env(safe-area-inset-top)) 20px 40px;background:#f3dfbf repeating-linear-gradient(90deg,#7a4b250f 0 2px,#0000 2px 60px)}.shelfroom .topbar{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.shelfroom h1{font:800 40px var(--display);color:var(--bark-dark);margin:0}.shelf{border-bottom:24px solid var(--wood);box-shadow:0 8px 0 var(--wood-dark);flex-wrap:wrap;align-items:flex-end;gap:12px;min-height:280px;margin-bottom:44px;padding:0 20px;display:flex}.spine{color:#fff;border:none;border-radius:8px 8px 4px 4px;flex-direction:column;justify-content:space-between;align-items:center;width:96px;height:250px;padding:12px 8px;display:flex;box-shadow:inset -8px 0 #0000001f,0 4px #0000001a}.spine:nth-child(3n){height:228px}.spine:nth-child(4n){height:264px}.spine .t{writing-mode:vertical-rl;font:800 24px var(--display);max-height:170px;overflow:hidden;transform:rotate(180deg)}.spine .n{font:800 22px var(--display);background:#ffffff40;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.spine:active{transform:translateY(-6px)}.shelf-empty{font:700 24px var(--display);color:var(--bark-dark);text-align:center;max-width:560px;margin:0 auto 28px}.screen{min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.centered{text-align:center;justify-content:center;align-items:center}h1.hello{font:800 48px var(--display);color:#fff;text-shadow:0 3px #1a3c6e40;margin:8px 0 6px}.sub{color:#1e4b75;margin:0 0 24px;font-size:22px}.parent{font-family:var(--utility);color:#222;min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) 24px 40px;-webkit-user-select:text;user-select:text;background:#f6f7f5}.parent h1{margin:0;font-size:26px}.parent h2{margin:28px 0 10px;font-size:19px}.parent h3{margin:18px 0 8px;font-size:16px}.parent p,.parent li,.parent label,.parent td,.parent th{font-size:16px;line-height:1.45}.parent .muted{color:#666}.panel{background:#fff;border:1px solid #ddd;border-radius:12px;margin-bottom:14px;padding:16px 18px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.spread{justify-content:space-between}.pbtn{font-family:var(--utility);background:#fff;border:1px solid #bbb;border-radius:8px;min-height:40px;padding:8px 14px;font-size:15px}.pbtn.primary{color:#fff;background:#2468a8;border-color:#2468a8}.pbtn.danger{color:#a3241b;border-color:#e0b4b0}.parent input[type=text],.parent input[type=number],.parent input[type=password],.parent select{font:16px var(--utility);border:1px solid #bbb;border-radius:8px;min-height:40px;padding:8px 10px}.parent table{border-collapse:collapse;width:100%}.parent th,.parent td{text-align:left;vertical-align:top;border-bottom:1px solid #eee;padding:6px 8px}.toggle{align-items:center;gap:10px;padding:6px 0;display:flex}.toggle input{width:22px;height:22px}.err{color:#a3241b}.ok{color:#2e6b34}.pinpad{grid-template-columns:repeat(3,76px);justify-content:center;gap:12px;margin:18px auto;display:grid}.pinpad button{height:76px;font:600 28px var(--utility);background:#fff;border:1px solid #ccc;border-radius:16px}.pindots{justify-content:center;gap:12px;margin:10px 0;display:flex}.pindots span{border:2px solid #555;border-radius:50%;width:16px;height:16px}.pindots span.on{background:#555}.page.quiz{gap:28px}.page.quiz .question{color:#1e4b75;max-width:760px;font-size:clamp(28px,4vw,38px);line-height:1.3}.choices{flex-direction:column;gap:18px;width:min(620px,100%);display:flex}.btn.choice{width:100%;padding:16px 28px;font-size:clamp(22px,3vw,28px);line-height:1.25}.ring{flex:none;place-items:center;width:60px;height:60px;display:inline-grid;position:relative}.ring svg{position:absolute;inset:0}.ring-bg{fill:#fff;stroke:var(--line);stroke-width:7px}.ring-fill{fill:none;stroke:var(--leaf);stroke-width:7px;stroke-linecap:round;transition:stroke-dashoffset .6s}.ring.done .ring-fill{stroke:var(--sun)}.ring-label{font:800 18px/1 var(--display);color:var(--ink);text-align:center;position:relative}.ring-label small{color:var(--ink-soft);font-size:10px;font-weight:700;display:block}.ring.done .ring-label{color:var(--go-dark);font-size:26px}.goal-cheer{left:50%;top:calc(max(14px, env(safe-area-inset-top)) + 70px);z-index:20;background:var(--sun);color:var(--ink);font:800 20px/1.3 var(--display);text-align:center;border-radius:999px;max-width:calc(100vw - 32px);padding:12px 22px;animation:.4s ease-out cheer-in;position:fixed;transform:translate(-50%);box-shadow:0 5px #00000026}@keyframes cheer-in{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.goal-cheer{animation:none}.ring-fill{transition:none}}.week{align-items:flex-end;gap:10px;margin:6px 0 4px;display:flex}.week-day{text-align:center;flex:1;max-width:64px}.week-bar{background:#f1f3f7;border-radius:6px;align-items:flex-end;height:70px;display:flex;overflow:hidden}.week-bar span{background:var(--sky);border-radius:6px 6px 0 0;width:100%;display:block}.week-bar span.met{background:var(--leaf)}.week-num{margin-top:4px;font-weight:700}.week-name{font-size:13px}.climberspot{z-index:3;pointer-events:none;filter:drop-shadow(0 4px #0000002e);position:absolute;top:-76px;left:50%;transform:translate(-50%)}.climberspot.athouse{top:96px}.climber .limb{transform-box:fill-box}.climber .arm-l,.climber .leg-r{animation:1.2s ease-in-out infinite reach}.climber .arm-r,.climber .leg-l{animation:1.2s ease-in-out -.6s infinite reach}@keyframes reach{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.kid .initial.pic{background:#fff;overflow:hidden}.climber-preview{place-items:center;min-width:72px;display:inline-grid}.climber-preview .climber{width:60px;height:75px}
