@font-face{font-family:"Baloo 2";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/Baloo2-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:500;font-display:swap;src:url(../fonts/Baloo2-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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:700;font-display:swap;src:url(../fonts/Baloo2-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:700;font-display:swap;src:url(../fonts/Baloo2-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/Nunito-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/Nunito-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/Nunito-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/Nunito-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/Nunito-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/Nunito-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--text-scale: 1;--sky: #8fd3f4;--cream: #fffaf0;--cream-sunk: #f3e8d6;--ink: #2f2a3d;--ink-soft: #6b6480;--line: #e2d5be;--mia: #e86a92;--mia-deep: #c44c73;--leaf: #4fa35c;--leaf-deep: #3a7d45;--sun: #ffd93d;--sky-deep: #2f6f9e;--panel-shadow: 0 18px 40px -12px rgba(47, 42, 61, .45);--radius: 22px;color-scheme:light}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:#1b2233;font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink)}#game-root{position:fixed;inset:0}#game-root canvas{display:block}#ui-root{position:fixed;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));z-index:10}.scrim{position:absolute;inset:0;background:#1b22338c;backdrop-filter:blur(2px)}.panel{position:relative;pointer-events:auto;background:var(--cream);border-radius:var(--radius);box-shadow:var(--panel-shadow);padding:26px 30px 24px;width:min(680px,100%);max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:rise .22s ease-out}.panel--narrow{width:min(480px,100%)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.panel{animation:none}*{transition:none!important}}.panel h2{font-family:"Baloo 2",Nunito,system-ui,sans-serif;font-size:calc(1.6rem * var(--text-scale));line-height:1.2;margin:0 0 6px;color:var(--ink);text-transform:none}.panel p{margin:0 0 14px;font-size:calc(1.05rem * var(--text-scale));line-height:1.6}.speaker{display:flex;gap:14px;align-items:flex-start}.speaker__face{width:62px;height:62px;border-radius:50%;flex-shrink:0;background:var(--sun);border:3px solid #fff;box-shadow:0 4px 10px #2f2a3d33}.speaker__face[data-who=luna]{background:#9b8cff}.speaker__face[data-who=mia]{background:var(--mia)}.speaker__text{flex:1;min-width:0;font-size:calc(1.12rem * var(--text-scale));line-height:1.55;padding-top:4px}.story__title{font-family:"Baloo 2",Nunito,sans-serif;font-size:calc(1.45rem * var(--text-scale));margin:0 0 12px}.story__body{max-width:42ch;font-size:calc(1.24rem * var(--text-scale));line-height:1.85;letter-spacing:.01em;hyphens:none;-webkit-hyphens:none;overflow-wrap:break-word}.story__body p{font-size:inherit;transition:background-color .3s;border-radius:8px;padding:2px 6px;margin:0 0 1.1em -6px}.story__body p.is-highlighted{background:#fff3bf;box-shadow:0 0 0 2px #ffe066}.story__hint{display:flex;gap:10px;align-items:flex-start;background:#eef7ff;border:2px solid #cfe6fb;border-radius:14px;padding:12px 16px;margin:0 0 16px;font-size:calc(1rem * var(--text-scale));line-height:1.5}.story__hint b{color:var(--sky-deep)}.question__prompt{font-family:"Baloo 2",Nunito,sans-serif;font-size:calc(1.32rem * var(--text-scale));line-height:1.4;margin:0 0 16px}.choices{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.choice{font:inherit;font-size:calc(1.15rem * var(--text-scale));font-weight:600;text-align:start;padding:16px 20px;min-height:62px;border-radius:16px;border:3px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:transform .12s,border-color .15s,background .15s}.choice:hover:not(:disabled){border-color:var(--mia)}.choice:active:not(:disabled){transform:scale(.98)}.choice:focus-visible{outline:4px solid var(--sky-deep);outline-offset:3px}.choice.is-correct{background:#e7f8ec;border-color:var(--leaf)}.choice.is-wrong{background:#ffeef2;border-color:var(--mia-deep)}.choice:disabled{cursor:default}.feedback{font-size:calc(1.1rem * var(--text-scale));font-weight:700;margin:0 0 14px;min-height:1.6em}.feedback[data-tone=good]{color:var(--leaf-deep)}.feedback[data-tone=retry]{color:var(--sky-deep)}.btn-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.btn{font:inherit;font-family:"Baloo 2",Nunito,sans-serif;font-size:calc(1.15rem * var(--text-scale));font-weight:700;min-height:58px;padding:14px 30px;border:none;border-radius:16px;background:var(--mia);color:#fff;cursor:pointer;box-shadow:0 5px 0 var(--mia-deep);transition:transform .1s,box-shadow .1s}.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--mia-deep)}.btn:focus-visible{outline:4px solid var(--sky-deep);outline-offset:3px}.btn--ghost{background:transparent;color:var(--ink-soft);box-shadow:none;border:3px solid var(--line)}.btn--ghost:active{transform:none;box-shadow:none}.btn--leaf{background:var(--leaf);box-shadow:0 5px 0 var(--leaf-deep)}.btn--leaf:active{box-shadow:0 1px 0 var(--leaf-deep)}.btn[disabled]{opacity:.45;cursor:default;box-shadow:none}.reward{text-align:center}.reward__badge{width:108px;height:108px;margin:6px auto 14px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff3bf,var(--sun));display:grid;place-items:center;font-size:52px;box-shadow:0 8px 24px -6px #e0ac00b3}.reward__kind{color:var(--ink-soft);font-size:calc(.95rem * var(--text-scale));margin:0 0 2px}.reward__name{font-family:"Baloo 2",Nunito,sans-serif;font-size:calc(1.5rem * var(--text-scale));margin:0 0 18px}.field{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:2px solid var(--cream-sunk);font-size:calc(1.05rem * var(--text-scale));font-weight:600}.seg{display:flex;gap:6px;background:var(--cream-sunk);padding:5px;border-radius:13px}.seg button{font:inherit;font-weight:700;font-size:calc(.95rem * var(--text-scale));min-height:44px;padding:8px 16px;border:none;border-radius:9px;background:transparent;color:var(--ink-soft);cursor:pointer}.seg button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 2px 5px #2f2a3d29}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:4px 0 18px}.metric{background:var(--cream-sunk);border-radius:14px;padding:14px 16px}.metric dt{font-size:calc(.85rem * var(--text-scale));color:var(--ink-soft);font-weight:700;margin-bottom:3px}.metric dd{margin:0;font-family:"Baloo 2",Nunito,sans-serif;font-size:calc(1.5rem * var(--text-scale));font-variant-numeric:tabular-nums}.note{font-size:calc(.9rem * var(--text-scale));color:var(--ink-soft);line-height:1.5}.pin-input{font:inherit;font-size:calc(1.6rem * var(--text-scale));font-family:"Baloo 2",Nunito,sans-serif;letter-spacing:.5em;text-align:center;width:100%;padding:14px;border-radius:14px;border:3px solid var(--line);background:#fff;-webkit-user-select:text;user-select:text}.touch{position:fixed;inset:auto 0 0;display:none;justify-content:space-between;align-items:flex-end;padding:0 max(20px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-right));pointer-events:none;z-index:5}body[data-touch="1"] .touch{display:flex}.touch__pads{display:flex;gap:14px;pointer-events:auto}.touch__btn{width:84px;height:84px;border-radius:50%;border:3px solid rgba(255,255,255,.85);background:#2f2a3d52;color:#fff;font-size:34px;display:grid;place-items:center;touch-action:none;cursor:pointer}.touch__btn--jump{width:104px;height:104px;background:#e86a92b8;pointer-events:auto;font-size:40px}.touch__btn:active{background:#2f2a3d8c}.touch__btn--jump:active{background:#c44c73e6}.boot-error{pointer-events:auto;background:#fff;border-radius:16px;padding:24px 28px;max-width:640px;max-height:80vh;overflow:auto;font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:1.6;-webkit-user-select:text;user-select:text}.boot-error h2{font-family:Nunito,sans-serif;margin:0 0 10px;color:#b3261e}.boot-error li{margin-bottom:4px}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums;font-size:calc(.82rem * var(--text-scale));line-height:1.7;word-break:break-word}.vocab{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;text-decoration:underline dotted var(--sky-deep);text-decoration-thickness:2px;text-underline-offset:4px}.vocab:hover,.vocab:focus-visible{background:#eef7ff;border-radius:5px}.scrim--stack{background:#1b223359}.panel--stack{z-index:1}.picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0 20px}.pick{font:inherit;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;min-height:130px;border:3px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;text-align:center}.pick[aria-pressed=true]{border-color:var(--leaf);background:#e7f8ec}.pick[data-locked="1"]{opacity:.55;cursor:default}.pick--badge{cursor:default}.pick__swatch{width:46px;height:46px;border-radius:50%;border:3px solid #fff;box-shadow:0 3px 8px #2f2a3d38}.pick__swatch--rose{background:#e86a92}.pick__swatch--leaf{background:#6bcb77}.pick__swatch--sky{background:#4d9de0}.pick__book{font-size:34px;line-height:1}.pick__name{font-weight:700;font-size:calc(1rem * var(--text-scale));line-height:1.25}.pick__meta{font-size:calc(.85rem * var(--text-scale));color:var(--ink-soft);font-weight:600}.pick:focus-visible{outline:4px solid var(--sky-deep);outline-offset:3px}
