html[data-zone=child]{--sky-top:#1d4a9c;--sky-mid:#0d2a63;--sky-bottom:var(--midnight);--glow-a:#9b7bff59;--glow-b:#5cd6e047;--glow-c:#ff8fab38;background:radial-gradient(60% 40% at 15% 10%, var(--glow-a) 0%, transparent 70%), radial-gradient(55% 45% at 85% 20%, var(--glow-b) 0%, transparent 70%), radial-gradient(50% 40% at 50% 100%, var(--glow-c) 0%, transparent 70%), linear-gradient(180deg, var(--sky-top) 0%, var(--sky-mid) 45%, var(--sky-bottom) 100%);min-height:100%;color:var(--text-on-dark);font-family:var(--font-display)}html[data-zone=child][data-theme-book=sea]{--sky-top:#177499;--sky-mid:#10527f;--sky-bottom:#0b3866;--glow-a:#5cd6e073;--glow-b:#6bcb7747;--glow-c:#9b7bff40}html[data-zone=child][data-theme-book=safari]{--sky-top:#c4552f;--sky-mid:#7b2f63;--sky-bottom:#2a1a4f;--glow-a:#ffd93d73;--glow-b:#ff8fab59;--glow-c:#9b7bff4d}.child-shell{flex-direction:column;min-height:100dvh;display:flex;position:relative}.child-shell>.starfield{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.child-shell>*{z-index:1;position:relative}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.topbar h1{text-align:center;color:var(--moon-cream);text-shadow:0 3px #071b3d73;text-wrap:balance;letter-spacing:.01em;flex:1;margin:0;font-size:clamp(24px,4vw,36px);font-weight:700}.btn-child{--btn-face:var(--crayon-blue);--btn-deep:#2457a6;min-width:var(--tap);min-height:var(--tap);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--btn-face) 75%, white) 0%, var(--btn-face) 55%);color:#fff;font-family:var(--font-display);text-shadow:0 1px #0000002e;box-shadow:0 6px 0 var(--btn-deep), 0 10px 18px #071b3d4d;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;border:4px solid #ffffffd9;justify-content:center;align-items:center;gap:10px;padding:10px 22px;font-size:24px;font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .12s,opacity .2s;display:inline-flex}.btn-child:active{box-shadow:0 2px 0 var(--btn-deep), 0 4px 10px #071b3d4d;transform:translateY(4px)}.btn-child[disabled],.btn-child[aria-disabled=true]{opacity:.45;cursor:default}.btn-child svg{filter:drop-shadow(0 1px #00000026);flex:none;width:36px;height:36px}.btn-child.icon-only{padding:10px}.btn-giant{min-height:var(--tap-lg);border-radius:var(--radius-lg);border-width:5px;padding:16px 36px;font-size:clamp(26px,4vw,34px)}.btn-giant svg{width:48px;height:48px}.btn-red{--btn-face:var(--crayon-red);--btn-deep:#b8302d}.btn-gold{--btn-face:var(--crayon-yellow);--btn-deep:#d99a2b;color:var(--ink);text-shadow:none}.btn-violet{--btn-face:var(--crayon-violet);--btn-deep:#5a3fb8}.btn-aqua{--btn-face:var(--crayon-aqua);--btn-deep:#2b98a3;color:var(--ink);text-shadow:none}.btn-green{--btn-face:var(--crayon-green);--btn-deep:#3f9a4b;color:var(--ink);text-shadow:none}.btn-cream{--btn-face:var(--moon-cream);--btn-deep:#d9c58f;color:var(--ink);text-shadow:none}.btn-quiet{--btn-face:var(--crayon-violet);--btn-deep:#5a3fb8;box-shadow:none;min-width:52px;min-height:52px;color:var(--moon-cream);text-shadow:none;background:#9b7bff47;border-color:#ffffff8c;font-size:18px;font-weight:700}.sound-toggle .icon-off,html[data-sound=off] .sound-toggle .icon-on{display:none}html[data-sound=off] .sound-toggle .icon-off{display:block}.stage{aspect-ratio:16/10;border:8px solid var(--moon-cream);width:min(100%,1100px);box-shadow:0 0 0 4px #071b3d59, var(--shadow);background:#bfe0f5;border-radius:28px;margin:0 auto;position:relative;overflow:hidden}.stage>svg.scene{width:100%;height:100%;position:absolute;inset:0}.actor{position:absolute}.actor svg{width:100%;height:auto}.portals{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(100%,760px);margin:0 auto;padding:16px;list-style:none;display:grid}@media (width>=900px){.portals{grid-template-columns:repeat(4,1fr);width:min(100%,1100px)}}.portal{--btn-face:var(--crayon-blue);--btn-deep:#2457a6;min-height:150px;font-family:var(--font-display);background:linear-gradient(180deg, color-mix(in srgb, var(--btn-face) 70%, white) 0%, var(--btn-face) 60%);box-shadow:0 8px 0 var(--btn-deep), 0 14px 22px #071b3d4d;color:#fff;text-shadow:0 1px #0000002e;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:5px solid #ffffffe6;border-radius:32px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:clamp(26px,4.5vw,34px);font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex}.portal svg{filter:drop-shadow(0 2px #00000026);width:76px;height:76px}.portal-play{--btn-face:var(--crayon-red);--btn-deep:#b8302d}.portal-read{--btn-face:var(--crayon-blue);--btn-deep:#2457a6}.portal-sing{--btn-face:var(--crayon-violet);--btn-deep:#5a3fb8}.portal-make{--btn-face:var(--crayon-green);--btn-deep:#3f9a4b;color:var(--ink);text-shadow:none}.portal:active{box-shadow:0 3px 0 var(--btn-deep), 0 6px 12px #071b3d4d;transform:translateY(5px)}.bubble{background:var(--moon-cream);color:var(--ink);box-shadow:0 0 0 4px #ffffff80, var(--shadow);text-wrap:balance;border-radius:26px;max-width:30ch;padding:14px 22px;font-size:clamp(20px,3vw,28px);font-weight:700;position:relative}.bubble:after{content:"";border:14px solid #0000;border-top-color:var(--moon-cream);border-bottom:0;position:absolute;bottom:-14px;left:34px}.bubble.from-right:after{left:auto;right:34px}.bubble.no-tail:after{display:none}.prompt{text-align:center;color:var(--moon-cream);text-wrap:balance;text-shadow:0 3px #071b3d73;max-width:24ch;min-height:1.4em;margin:10px auto;font-size:clamp(26px,4.4vw,40px);font-weight:700}.hint{text-align:center;color:var(--crayon-yellow);text-wrap:balance;text-shadow:0 2px #071b3d73;max-width:34ch;margin:0 auto;font-size:clamp(18px,2.6vw,24px);font-weight:600}.game{flex-direction:column;flex:1;align-items:center;gap:12px;width:100%;padding:8px 16px 40px;display:flex}.game-art{width:min(100%,900px);margin:0 auto}.actions{flex-wrap:wrap;justify-content:center;gap:16px;padding:8px;display:flex}.choices{flex-wrap:wrap;justify-content:center;gap:clamp(12px,3vw,28px);width:100%;padding:12px;display:flex}.choice{border:5px solid var(--white);min-width:130px;min-height:130px;color:var(--ink);font-family:var(--font-display);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#ffffffeb;border-radius:32px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:14px;font-size:24px;font-weight:700;transition:transform .12s,opacity .25s,border-color .2s;display:flex;box-shadow:0 8px #071b3d59,0 12px 20px #071b3d40}.choices .choice:nth-child(4n+1){background:var(--tint-blue)}.choices .choice:nth-child(4n+2){background:var(--tint-pink)}.choices .choice:nth-child(4n+3){background:var(--tint-yellow)}.choices .choice:nth-child(4n+4){background:var(--tint-green)}.choice:active{transform:translateY(5px);box-shadow:0 3px #071b3d59,0 6px 12px #071b3d40}.choice svg{width:clamp(96px,24vw,170px);height:auto}.choice.is-faded{opacity:.3}.choice.is-correct{border-color:var(--crayon-yellow);background:var(--tint-yellow);animation:.5s pop}.choice.is-hint{border-color:var(--crayon-yellow);animation:1.6s ease-in-out infinite glow}.silhouette{filter:brightness(.12)saturate(0)}.card-child{background:var(--moon-cream);color:var(--ink);border:5px solid var(--white);box-shadow:0 0 0 3px #071b3d33, var(--shadow);width:min(100%,720px);font-size:20px;font-family:var(--font-ui);border-radius:28px;padding:18px 22px}.card-child h2{font-family:var(--font-display);color:var(--orbit);margin:0 0 8px;font-size:26px;font-weight:700}.card-child p{margin:6px 0}.offscreen-card{border-left:12px solid var(--crayon-green);background:linear-gradient(135deg, var(--tint-green) 0%, var(--moon-cream) 60%)}.passport-strip{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0;padding:8px 16px;list-style:none;display:flex}.stamp{opacity:.55;width:58px;height:58px;color:var(--moon-cream);background:#ffffff1f;border:3px dashed #ffffff8c;border-radius:50%;place-items:center;display:grid}.stamp svg{width:40px;height:40px}.stamp.earned{opacity:1;border:3px solid var(--crayon-yellow);background:radial-gradient(circle at 50% 35%, #fff9d6 0%, var(--crayon-yellow) 70%);color:var(--ink);box-shadow:0 0 0 3px #ffd93d59,0 0 18px #ffd93db3}.stamp-lg{border-width:4px;width:120px;height:120px}.stamp-lg svg{width:84px;height:84px}.stamp-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px;width:min(100%,1000px);margin:0;padding:16px;list-style:none;display:grid}.stamp-grid li{text-align:center;background:#ffffff1a;border:3px solid #ffffff40;border-radius:24px;flex-direction:column;align-items:center;gap:8px;padding:14px 10px;font-size:20px;font-weight:700;display:flex}.stamp-grid .how{font-size:16px;font-weight:500;font-family:var(--font-ui);opacity:.9}dialog.child-dialog{border:6px solid var(--crayon-yellow);background:var(--moon-cream);color:var(--ink);text-align:center;width:min(92vw,560px);box-shadow:0 0 0 6px #fff9, var(--shadow);border-radius:36px;padding:28px 28px 24px}dialog.child-dialog::backdrop{background:#071b3db3}dialog.child-dialog h2{font-family:var(--font-display);color:var(--orbit);margin:8px 0;font-size:clamp(28px,5vw,40px);font-weight:700}dialog.child-dialog p{margin:8px 0 16px;font-size:22px;font-weight:600}.starburst{width:150px;height:150px;margin:0 auto}.grownup-gate{z-index:5;position:fixed;bottom:12px;right:12px}@media (width<=700px){.grownup-gate{justify-content:flex-end;width:100%;padding:8px 12px 16px;display:flex;position:static}}.gate-keys{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.gate-note{opacity:.75;font-size:15px!important;font-weight:600!important}.cecil .cecil-head{transform-box:fill-box;transform-origin:50% 85%;transition:transform .35s}.cecil .cecil-tail{transform-box:fill-box;transform-origin:10% 90%}.cecil .cecil-tongue,.cecil .cecil-sleep-eyes,.cecil .cecil-brows{display:none}.cecil.is-tilt .cecil-head{transform:rotate(-16deg)}.cecil.is-happy .cecil-tongue{display:block}.cecil.is-happy .cecil-tail{animation:.45s ease-in-out infinite alternate wag}.cecil.is-sleep .cecil-eyes{display:none}.cecil.is-sleep .cecil-sleep-eyes,.cecil.is-worried .cecil-brows{display:block}.cecil.is-bounce{animation:.6s pop}.rocket .rocket-real,.rocket .rocket-sketch{transition:opacity .9s}.rocket.show-sketch .rocket-real,.rocket.show-real .rocket-sketch{opacity:0}.rocket .rocket-flame{transform-box:fill-box;transform-origin:50% 0;opacity:0;transition:opacity .3s}.rocket.is-flying .rocket-flame{opacity:1;animation:.18s ease-in-out infinite alternate flame}@keyframes flame{0%{transform:scaleY(.8)}to{transform:scaleY(1.25)}}.rocket.is-rising{animation:1.6s ease-in forwards rise}.child-text{text-align:center;text-wrap:balance;text-shadow:0 2px #071b3d59;max-width:34ch;margin:0 auto;font-size:clamp(20px,2.8vw,26px);font-weight:600}.muted{opacity:.8}.pill{background:var(--moon-cream);color:var(--ink);border:3px solid #fffc;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:17px;font-weight:700;display:inline-flex}.pill svg{width:22px;height:22px}.submarine .sub-real,.submarine .sub-sketch{transition:opacity .9s}.submarine.show-sketch .sub-real,.submarine.show-real .sub-sketch{opacity:0}.submarine .sub-bubbles{opacity:0;transition:opacity .3s}.submarine .sub-prop{transform-box:fill-box;transform-origin:50%}.submarine.is-diving .sub-bubbles{opacity:.85;animation:.8s ease-in-out infinite bob}.submarine.is-diving .sub-prop{animation:.5s linear infinite spin}.submarine.is-rising{animation:1.6s ease-in forwards dive}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes dive{0%{transform:translateY(0)scale(1)}to{transform:translateY(140%)scale(.6)}}.book-tabs{flex-wrap:wrap;justify-content:center;gap:12px;margin:0;padding:4px 12px;list-style:none;display:flex}.book-tab{--tab-face:var(--crayon-blue);--tab-deep:#2457a6;min-height:64px;color:var(--moon-cream);font-family:var(--font-display);touch-action:manipulation;background:#ffffff24;border:4px solid #ffffff8c;border-radius:999px;align-items:center;gap:8px;padding:6px 18px 6px 10px;font-size:19px;font-weight:700;transition:transform .12s,background .2s;display:inline-flex}.book-tabs li:nth-child(2) .book-tab{--tab-face:var(--crayon-aqua);--tab-deep:#2b98a3}.book-tabs li:nth-child(3) .book-tab{--tab-face:var(--crayon-orange);--tab-deep:#c96f1a}.book-tabs li:first-child .book-tab{--tab-face:var(--crayon-red);--tab-deep:#b8302d}.book-tab[aria-pressed=true]{background:linear-gradient(180deg, color-mix(in srgb, var(--tab-face) 70%, white) 0%, var(--tab-face) 60%);color:#fff;text-shadow:0 1px #0003;box-shadow:0 5px 0 var(--tab-deep), 0 8px 16px #071b3d4d;border-color:#fff}.book-tab svg{width:44px;height:auto}.jeep .jeep-real,.jeep .jeep-sketch{transition:opacity .9s}.jeep.show-sketch .jeep-real,.jeep.show-real .jeep-sketch{opacity:0}.jeep .jeep-dust{opacity:0;transition:opacity .3s}.jeep .jeep-wheel{transform-box:fill-box;transform-origin:50%}.jeep.is-driving .jeep-dust{opacity:.9;animation:.5s ease-in-out infinite bob}.jeep.is-driving .jeep-wheel{animation:.6s linear infinite spin}.jeep.is-rising{animation:1.6s ease-in forwards drive-off}@keyframes drive-off{0%{transform:translate(0)scale(1)}to{transform:translate(160%)scale(.6)}}.sticker{--sticker-tint:var(--tint-blue);--sticker-edge:var(--crayon-blue);background:var(--sticker-tint);border:5px solid var(--white);color:var(--ink);font-family:var(--font-display);box-shadow:0 0 0 3px var(--sticker-edge), 0 10px 0 #071b3d4d, 0 14px 22px #071b3d40;border-radius:30px;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;font-weight:700;text-decoration:none;display:flex;position:relative}.sticker:nth-child(6n+1),li:nth-child(6n+1)>.sticker{--sticker-tint:var(--tint-blue);--sticker-edge:var(--crayon-blue)}.sticker:nth-child(6n+2),li:nth-child(6n+2)>.sticker{--sticker-tint:var(--tint-pink);--sticker-edge:var(--crayon-pink)}.sticker:nth-child(6n+3),li:nth-child(6n+3)>.sticker{--sticker-tint:var(--tint-yellow);--sticker-edge:var(--crayon-yellow)}.sticker:nth-child(6n+4),li:nth-child(6n+4)>.sticker{--sticker-tint:var(--tint-green);--sticker-edge:var(--crayon-green)}.sticker:nth-child(6n+5),li:nth-child(6n+5)>.sticker{--sticker-tint:var(--tint-violet);--sticker-edge:var(--crayon-violet)}.sticker:nth-child(6n+6),li:nth-child(6n+6)>.sticker{--sticker-tint:var(--tint-orange);--sticker-edge:var(--crayon-orange)}.sticker .stamp{color:var(--ink);opacity:.7;background:#fff9;border-color:#17213a59}.sticker .stamp.earned{opacity:1}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.game>:not(.engine-host),.engine-host>*{animation:.45s backwards rise-in}.game>:nth-child(2),.engine-host>*>:nth-child(2){animation-delay:60ms}.game>:nth-child(3),.engine-host>*>:nth-child(3){animation-delay:.12s}@keyframes idle-wag{0%,88%,to{transform:rotate(0)}90%{transform:rotate(-22deg)}92%{transform:rotate(22deg)}94%{transform:rotate(-22deg)}96%{transform:rotate(22deg)}98%{transform:rotate(-12deg)}}.cecil.cecil-idle:not(.is-happy) .cecil-tail{animation:9s ease-in-out infinite idle-wag}.stamp.earned{position:relative}.stamp.earned:after{content:"";background:radial-gradient(circle, #fff 0%, var(--crayon-yellow) 55%, transparent 72%);border-radius:50%;width:16px;height:16px;animation:2.4s ease-in-out infinite twinkle;position:absolute;top:-5px;right:-5px}dialog.celebration{position:relative;overflow:hidden}.celebration-art{justify-content:center;align-items:flex-end;gap:8px;display:flex}.celebration-art .starburst{width:120px;height:120px;margin:0}dialog.celebration[open] .starburst{animation:.7s pop}.celebration-cecil.cecil .cecil-tail{animation:.45s ease-in-out infinite alternate wag}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti span{--hue:calc(var(--i) * 47);top:-20px;left:calc(6% + var(--i) * 5.6%);background:hsl(var(--hue) 90% 62%);opacity:0;border-radius:3px;width:12px;height:18px;position:absolute}.confetti span:nth-child(3n){border-radius:50%;width:12px;height:12px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:.9;transform:translateY(560px)rotate(720deg)}}dialog.celebration[open] .confetti span{animation:confetti-fall 2.6s cubic-bezier(.25, .8, .5, 1) calc(var(--i) * .11s) 1 both}dialog.celebration[open] .confetti span:nth-child(2n){animation-duration:3.2s}html[data-motion=reduced] .confetti,html[data-motion=reduced] .stamp.earned:after{display:none}html[data-motion=reduced] .cecil.cecil-idle .cecil-tail,html[data-motion=reduced] .game>*,html[data-motion=reduced] .engine-host>*{animation:none!important}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) .confetti,html:not([data-motion=full]) .stamp.earned:after{display:none}}.arcade-stage{aspect-ratio:16/10;width:min(100%,900px);box-shadow:var(--shadow);touch-action:manipulation;user-select:none;border-radius:28px;position:relative;overflow:hidden}.arcade-stage.sea{background:linear-gradient(#2f8fb6 0%,#1c5c8a 45%,#0f3a66 100%)}.arcade-stage.space{background:radial-gradient(at 50% 0,#17397a 0%,#071b3d 65%)}.arcade-actor{will-change:transform;position:absolute;top:0;left:0}.arcade-actor svg{width:100%;height:auto;display:block}.arcade-vehicle{pointer-events:none;width:22%;transition:transform .12s linear}.arcade-vehicle.is-wobble{animation:.4s shake}.arcade-vehicle.is-lane{transition:transform .28s}.arcade-item{aspect-ratio:1;cursor:pointer;background:0 0;border:0;border-radius:50%;width:10%;padding:0;transition:opacity .3s;display:block;position:absolute;top:0;left:0}.arcade-item svg{filter:drop-shadow(0 2px 4px #0000004d);width:100%;height:100%;display:block}.arcade-item.is-collected{pointer-events:none;animation:.5s forwards collected}.arcade-item.is-bounce{pointer-events:none;animation:.9s forwards bounce-off}.arcade-item.is-jelly{cursor:default;width:11%}.arcade-item.is-jelly svg{animation:3s ease-in-out infinite float}@keyframes collected{0%{opacity:1;scale:1}to{opacity:0;scale:1.8}}@keyframes bounce-off{0%{opacity:1;translate:0;rotate:0deg}to{opacity:0;translate:0 -160px;rotate:60deg}}.arcade-lanes{justify-content:space-around;align-items:flex-end;margin:0;padding:0 2% 1%;list-style:none;display:flex;position:absolute;bottom:0;left:0;right:0}.arcade-lane{cursor:pointer;background:0 0;border:0;border-radius:20px;flex:1;justify-content:center;padding:0;display:flex}.arcade-lane svg{width:min(80%,110px);height:auto;transition:transform .2s,filter .3s}.arcade-lane.is-wobble svg{animation:.5s shake}.arcade-lane.is-safe svg{filter:drop-shadow(0 0 14px #f2c65ce6)}.arcade-lane.is-here svg{transform:scale(1.08)}.arcade-count{color:var(--star-gold);text-shadow:0 4px #00000059;letter-spacing:.04em;min-height:1.2em;margin:0;font-size:clamp(32px,7vw,56px);font-weight:900}.arcade-controls{flex-wrap:wrap;justify-content:center;gap:16px;padding:8px;display:flex}.arcade-controls .btn-child{min-width:140px}.arcade-sparkle{pointer-events:none;background:radial-gradient(circle,#fff 0%,#f2c65c 45%,#f2c65c00 70%);border-radius:50%;width:40px;height:40px;margin:-20px 0 0 -20px;animation:.7s ease-out forwards sparkle-pop;position:absolute}.arcade-bubbles{pointer-events:none;position:absolute;inset:0}.arcade-bubbles span{border:2px solid #ffffff8c;border-radius:50%;animation:linear infinite bubble-rise;position:absolute;bottom:-20px}@keyframes bubble-rise{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(-120vh)}}html[data-motion=reduced] .arcade-bubbles span,html[data-motion=reduced] .arcade-item.is-jelly svg{animation:none!important}.arcade-hint-arrow{color:var(--star-gold);pointer-events:none;opacity:0;font-size:64px;transition:opacity .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.arcade-stage.is-hinting .arcade-hint-arrow{opacity:1}.arcade-stage.night{background:linear-gradient(#1a1440 0%,#2a1f5c 45%,#3b2a14 82%,#5a4020 100%)}.arcade-stage.night:after{content:"";pointer-events:none;background:linear-gradient(#5a402000 0%,#4a3418 100%);height:14%;position:absolute;bottom:0;left:0;right:0}.arcade-item.is-obstacle{cursor:default;width:12%}.arcade-item.is-obstacle.is-puddle svg{animation:none}
