@font-face{font-family:Rounded;src:local("Arial Rounded MT Bold")}*{box-sizing:border-box} :root{--ink:#4a4d3c;--sage:#627a53;--cream:#f8f3e7;--line:#e7e1d3;--muted:#94917c}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Arial Rounded MT Bold","PingFang TC","Microsoft JhengHei",sans-serif;-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:4px solid #ce864c;outline-offset:5px}button:disabled{cursor:default}button{border:0} .app-shell{max-width:1320px;margin:auto;padding:0 44px}header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a.brand{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:13px;font-size:22px;font-weight:700;letter-spacing:2px}.brand small{display:block;font-size:11px;letter-spacing:3px;color:var(--muted);margin-top:6px;font-weight:400}.brand-icon{font-size:36px;color:#cf996b}.header-tools{display:flex;gap:18px;align-items:center}.round{border:1px solid #dcd8c8;width:48px;height:48px;border-radius:50%;background:transparent;font-size:25px}.round[aria-pressed=false]{opacity:.45}.parent-button{background:transparent;font-size:14px;min-width:70px;min-height:50px;user-select:none;-webkit-user-select:none;position:relative}.parent-button span{display:block;font-size:9px;color:#96917e;letter-spacing:1px;margin-top:3px}.parent-button.holding{background:#e4e9d8;border-radius:15px}main{min-height:calc(100svh - 174px)}.eyebrow{font-size:11px;letter-spacing:4px;color:#93886f;margin:0 0 16px}.intro{text-align:center;padding:44px 0 24px;position:relative}.intro h1{font-weight:500;font-size:clamp(29px,4vw,46px);letter-spacing:3px;margin:0 0 12px}.intro p:not(.eyebrow){font-size:16px;color:#898674;margin:0;line-height:1.8}.tiny-sun{position:absolute;right:9%;top:47px;color:#cfaa68;font-size:35px;transform:rotate(12deg)}.animal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1040px;margin:10px auto 28px}.animal-card{position:relative;overflow:hidden;border:1px solid #e6dfcf;border-radius:125px 125px 28px 28px;min-height:320px;padding:30px 15px 22px;text-align:center;background:#ecefdf;transition:transform .25s,box-shadow .25s}.animal-card:nth-child(2){background:#efe3ce}.animal-card:nth-child(3){background:#e6eaf0}.animal-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px #655e4110}.animal-card.selected{outline:3px solid #6f855c;outline-offset:5px}.animal-card .art{height:206px;display:block;margin:auto}.animal-card h2{font-size:23px;font-weight:500;letter-spacing:3px;margin:6px 0}.animal-card p{font-size:12px;color:#8b8879;letter-spacing:2px;margin:0}.card-spark{position:absolute;top:36px;left:35px;color:#ffffffaa;font-size:22px}.start-row{text-align:center;margin:28px 0 16px}.primary{border-radius:40px;min-height:64px;padding:15px 46px;background:var(--sage);color:#fffdf5;font-size:20px;letter-spacing:3px;box-shadow:0 5px 0 #4f6545;transition:transform .15s}.primary:active{transform:translateY(3px);box-shadow:0 2px 0 #4f6545}.start-note{font-size:11px;letter-spacing:2px;color:#99927f;margin-top:15px}.intro-leaf{color:#81946d}.session-bar{display:flex;align-items:center;justify-content:space-between;padding:22px 0 8px;max-width:1000px;margin:auto}.back{min-height:48px;background:transparent;font-size:14px;padding:10px 15px;color:#7e806c}.steps{display:flex;gap:8px}.step-dot{width:9px;height:9px;border-radius:50%;background:#dedccc}.step-dot.active{background:#789067}.game-prompt{text-align:center;margin:12px 0 0}.game-prompt h1{font-size:clamp(26px,4vw,38px);font-weight:500;letter-spacing:2px;margin:8px 0 5px}.game-prompt p{color:#8b8878;font-size:14px;min-height:23px;margin:4px 0}.repeat{background:transparent;min-height:44px;min-width:100px;color:var(--sage);font-size:13px}.play-space{position:relative;height:270px;max-width:740px;margin:auto;display:grid;place-items:center;isolation:isolate}.ground{position:absolute;width:360px;height:56px;bottom:13px;background:#dfe6ce;border-radius:50%;z-index:-1}.play-space .art{height:255px;width:255px;transition:transform .4s}.play-space.happy .art{animation:bounce .6s ease 2}.bubble{position:absolute;border:2px solid #fff9;border-radius:50%;width:30px;height:30px;background:#b6e6ed60;animation:float 1.5s ease-in-out infinite;pointer-events:none}.bubble:nth-child(2){left:35%;top:30%;animation-delay:.2s;width:42px;height:42px}.bubble:nth-child(3){right:34%;top:40%;animation-delay:.5s}.bubble:nth-child(4){left:43%;top:12%;width:20px;height:20px}.blanket{position:absolute;background:#aab99b;border-radius:25px 25px 35px 35px;width:180px;height:91px;bottom:18px;box-shadow:inset 0 12px 0 #cbd4bb;z-index:2;animation:appear .5s ease}.blanket:after{content:"✿　✿　✿";display:block;text-align:center;color:#e8ecd9;padding-top:35px}.zzz{position:absolute;left:calc(50% + 75px);top:30px;color:#8f9d7b;letter-spacing:8px;animation:float 2s infinite}.choices{display:flex;justify-content:center;gap:25px;margin:2px auto 12px}.choice{background:#fffdf6;border:1px solid #e5dfcf;border-radius:26px;width:170px;min-height:135px;padding:10px 16px 13px;box-shadow:0 4px 0 #e7e0d1}.choice svg{width:85px;height:78px;display:block;margin:auto}.choice span{font-size:16px;letter-spacing:2px}.choice.wiggle{animation:wiggle .4s}.choice.chosen{background:#e5edda;border-color:#98ad83}.feedback{height:45px;text-align:center;font-size:17px;color:#6a8055;line-height:1.5}.next-row{text-align:center;min-height:70px}.next-row .primary{min-height:54px;font-size:17px;padding:12px 30px}.finished{text-align:center;padding:45px 0}.finished .art{height:240px}.finished h1{font-size:35px;font-weight:500;letter-spacing:3px}.finished p{line-height:1.9;color:#858473;margin:15px 0 25px}.session-summary{display:flex;justify-content:center;gap:20px;margin:15px 0;color:#7a8c65}footer{height:62px;display:flex;justify-content:center;align-items:center;gap:15px;font-size:11px;letter-spacing:2px;color:#aaa18d}.little-flower{color:#caab81}dialog{border:1px solid #ded7c7;border-radius:25px;padding:30px;max-width:480px;width:calc(100% - 30px);color:var(--ink);background:#fffaf0;box-shadow:0 15px 60px #3333}dialog::backdrop{background:#3336}dialog h2{font-size:23px}dialog p{line-height:1.8;font-size:14px}dialog label{display:block;margin:16px 0}dialog select{max-width:100%;padding:10px}dialog input{width:22px;height:22px;vertical-align:middle;margin-right:10px;accent-color:var(--sage)}.dialog-close{float:right;font-size:28px;background:transparent;min-width:44px;min-height:44px}.small-button{background:#e7ebdc;border-radius:12px;padding:13px 18px;min-height:48px}.settings-note{font-size:12px!important;color:#8c8877;line-height:1.8;margin:18px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.fade-in{animation:appear .35s ease}.sleep-eye{display:none}.sleeping .open-eye{display:none}.sleeping .sleep-eye{display:block}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px) rotate(2deg)}}@keyframes wiggle{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes float{50%{transform:translateY(-10px)}}@media(max-width:850px){.app-shell{padding:0 24px}header{height:90px}.animal-grid{gap:16px}.animal-card{min-height:280px;padding-top:20px}.animal-card .art{height:170px}.intro{padding:32px 0 20px}.tiny-sun{right:2%}.game-prompt h1{font-size:30px}.play-space{height:240px}.play-space .art{height:230px;width:230px}}@media(max-width:540px){.app-shell{padding:0 17px}header{height:80px}.brand{font-size:18px!important;letter-spacing:1px!important}.brand small{font-size:9px;letter-spacing:2px}.header-tools{gap:4px}.round{width:40px;height:40px}.brand-icon{font-size:28px}.animal-grid{gap:9px}.animal-card{border-radius:65px 65px 20px 20px;min-height:207px;padding:20px 3px 16px}.animal-card .art{height:117px;width:100%}.animal-card h2{font-size:18px;letter-spacing:1px}.animal-card p{font-size:9px;letter-spacing:0}.intro h1{font-size:27px;letter-spacing:1px}.intro p:not(.eyebrow){font-size:13px}.tiny-sun{display:none}.eyebrow{font-size:9px}.card-spark{top:20px;left:14px;font-size:15px}.primary{min-height:60px;font-size:18px;padding:14px 33px}.choice{width:140px;min-height:125px}.choices{gap:18px}.game-prompt h1{font-size:25px}.game-prompt p{font-size:12px}.session-bar{padding-top:10px}.play-space{height:220px}.play-space .art{height:210px}.ground{width:280px}.blanket{width:150px;height:78px}.feedback{font-size:15px}.finished h1{font-size:28px}footer{font-size:9px;letter-spacing:1px;gap:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.session-bar .eyebrow{margin:0}
body{padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}:fullscreen{background:var(--cream);overflow:auto}:-webkit-full-screen{background:var(--cream);overflow:auto}.screen-button{font-size:25px}.screen-instructions{font-size:15px;line-height:2;padding-left:24px}.screen-button[aria-pressed=true]{background:#e3ead8;border-color:#a5b693}@media(max-width:540px){.header-tools{gap:3px}.parent-button{min-width:57px}.screen-button{font-size:23px}}

/* Keep the next action in the visible viewport, including iPad standalone/fullscreen. */
body[data-phase="play"] .app-shell{height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));display:grid;grid-template-rows:72px minmax(0,1fr) 28px}
body[data-phase="play"] header{height:auto}
body[data-phase="play"] main{min-height:0}
body[data-phase="play"] main>section{height:100%;display:grid;grid-template-rows:46px 96px minmax(60px,1fr) 116px 34px 68px;min-height:0}
body[data-phase="play"] .session-bar{padding:0;width:100%}
body[data-phase="play"] .game-prompt{margin:0;padding:0;text-align:center}
body[data-phase="play"] .game-prompt h1{font-size:28px;margin:0 0 5px;line-height:1.2}
body[data-phase="play"] .game-prompt p{margin:0 0 3px;line-height:1.4}
body[data-phase="play"] .repeat{min-height:38px;padding:4px 16px}
body[data-phase="play"] .play-space{height:100%;min-height:0;width:100%;overflow:hidden}
body[data-phase="play"] .play-space .art{height:100%;max-height:240px;width:auto;max-width:100%}
body[data-phase="play"] .ground{bottom:5px;height:25px;width:250px}
body[data-phase="play"] .choices{margin:0;gap:22px;align-items:center}
body[data-phase="play"] .choice{min-height:102px;height:102px;width:156px;padding:7px 12px}
body[data-phase="play"] .choice svg{height:62px;width:74px}
body[data-phase="play"] .choice span{font-size:15px}
body[data-phase="play"] .feedback{height:auto;align-self:center;font-size:15px;line-height:1.4}
body[data-phase="play"] .next-row{min-height:0;display:flex;align-items:center;justify-content:center;padding-bottom:7px}
body[data-phase="play"] .next-row .primary{min-height:48px;padding:10px 26px;font-size:17px}
body[data-phase="play"] footer{height:auto;font-size:9px}
body[data-phase="play"] .blanket{height:34%;max-height:90px;bottom:5px;width:150px}
body[data-phase="play"] .blanket:after{padding-top:18px}
body[data-phase="play"] .zzz{top:4%;left:calc(50% + 65px)}
@media(max-height:700px){body[data-phase="play"] .app-shell{grid-template-rows:62px minmax(0,1fr) 20px}body[data-phase="play"] main>section{grid-template-rows:40px 78px minmax(40px,1fr) 98px 29px 60px}body[data-phase="play"] .game-prompt h1{font-size:24px}body[data-phase="play"] .game-prompt p{font-size:12px}body[data-phase="play"] .repeat{min-height:32px;font-size:12px}body[data-phase="play"] .choice{height:88px;min-height:88px}body[data-phase="play"] .choice svg{height:49px}body[data-phase="play"] .feedback{font-size:13px}}
@media(max-height:500px){body[data-phase="play"] .app-shell{grid-template-rows:52px minmax(0,1fr) 0}body[data-phase="play"] footer{display:none}body[data-phase="play"] main>section{grid-template-rows:34px 60px minmax(30px,1fr) 76px 25px 54px}body[data-phase="play"] .game-prompt h1{font-size:19px;margin:0}body[data-phase="play"] .game-prompt p{margin:0;font-size:10px}body[data-phase="play"] .repeat{min-height:24px;padding:0 10px}body[data-phase="play"] .choice{height:70px;min-height:70px;width:125px;padding:3px 8px}body[data-phase="play"] .choice svg{height:39px}body[data-phase="play"] .choice span{font-size:12px}body[data-phase="play"] .brand small{display:none}}

body[data-phase="play"] .play-space{align-items:end}
