:root{--color-canvas:#f7f3e8;--color-canvas-soft:#e8f5ed;--color-surface:#fff;--color-surface-glass:#ffffff6b;--color-surface-help:#fff7cf;--color-surface-caregiver:#eef1ed;--color-ink:#253446;--color-ink-muted:#526373;--color-ink-soft:#65766e;--color-primary:#3f9274;--color-primary-strong:#28644f;--color-primary-bright:#50a684;--color-accent:#ef8354;--color-accent-strong:#d65f3a;--color-water:#a8dadc;--color-water-strong:#4a9db2;--color-progress-rest:#dce5df;--color-guide:#ffd166;--color-focus:#146c94;--color-wall:#d8f0ec;--color-floor:#f2d7b1;--color-line:color-mix(in srgb, var(--color-ink) 16%, transparent);--font-family-rounded:"Hiragino Maru Gothic ProN", "Yu Gothic", system-ui, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:clamp(1.8rem, 7vw, 3.2rem);--font-weight-medium:700;--font-weight-bold:800;--font-weight-heavy:900;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:12px;--radius-md:24px;--radius-lg:42px;--radius-pill:999px;--border-control:4px solid var(--color-surface);--shadow-control:0 5px 0 #2534462e;--shadow-panel:0 10px 0 #c9d8d3;--shadow-soft:0 10px 24px #2534461f;--tap-target-min:48px;--control-child-min:68px;--control-caregiver-min:48px;--focus-ring:5px solid var(--color-focus);--duration-fast:.18s;--duration-normal:.32s;--duration-guide:.9s;--ease-friendly:cubic-bezier(.2, .9, .25, 1.12);--layout-app-max:860px;--layout-scene-max:1080px;--layout-copy-max:430px;color:var(--color-ink);background:var(--color-canvas);font-family:var(--font-family-rounded);font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{background:linear-gradient(#fffcf04d,#e8f5ed57),url(/assets/backgrounds/app-exploration-map-v1.webp) 50%/cover fixed;min-width:320px;min-height:100dvh;margin:0}button{color:inherit;font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:var(--focus-ring);outline-offset:4px}.app-shell{width:min(100%, var(--layout-app-max));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffff47;min-height:100dvh;margin:0 auto;overflow:hidden}.topbar{padding:max(14px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 8px max(18px, env(safe-area-inset-left));background:linear-gradient(#ffffffa8,#ffffff2e);grid-template-columns:54px 1fr 54px 54px;align-items:center;display:grid}.brand{letter-spacing:.08em;grid-column:2;justify-content:center;align-items:center;gap:8px;font-size:.9rem;font-weight:800;display:flex}.brand-mark{width:30px;height:30px;color:var(--color-surface);background:var(--color-accent);border-radius:50%;place-items:center;display:grid;transform:rotate(-8deg)}.icon-button{width:var(--tap-target-min);height:var(--tap-target-min);background:var(--color-surface);cursor:pointer;border:0;border-radius:50%;font-size:1.5rem;box-shadow:0 4px #d9e3de}#home-button{grid-area:1/1}#sound-button{grid-area:1/4}#help-button{color:#516272;grid-area:1/3;font-size:1.1rem;font-weight:900}.progress-region{padding:8px 22px 4px}.progress-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.progress-dots{grid-template-columns:repeat(var(--step-count,6), 1fr);gap:6px;max-width:420px;margin:0 auto;padding:0;list-style:none;display:grid}.progress-dots li{background:var(--color-progress-rest);border-radius:8px;height:8px}.progress-dots .is-complete{background:var(--color-primary-bright)}.scene{min-height:0}.welcome{min-height:calc(100vh - 70px);padding:34px max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));background:linear-gradient(#fffdf461,#fff8e03d),url(/assets/backgrounds/welcome-clubhouse-v1.webp) 50%/cover;position:relative}.sun{display:none}.welcome-copy{text-align:center;text-shadow:0 2px #ffffffe6;max-width:560px;margin:0 auto 28px;position:relative}.eyebrow{color:#d65f3a;letter-spacing:.14em;margin:0 0 8px;font-size:.8rem;font-weight:900}h1{letter-spacing:.04em;margin:0;font-size:clamp(2rem,8vw,4rem);line-height:1.15}.supporting-copy,.step-copy>p:last-child{color:#526373;margin:14px 0 0;font-weight:700;line-height:1.8}.animal-grid{grid-template-columns:repeat(3,1fr);gap:14px;max-width:700px;margin:0 auto;display:grid;position:relative}.animal-card{background:linear-gradient(#ffffff12, color-mix(in srgb, var(--animal-color), transparent 82%)), var(--animal-card-background) center / cover;min-height:230px;box-shadow:0 8px 0 color-mix(in srgb, var(--animal-color), #8b765a 20%);cursor:pointer;border:0;border-radius:32px;flex-direction:column;align-items:center;padding:20px 10px 16px;transition:transform .15s,box-shadow .15s;display:flex}.animal-card:hover{box-shadow:0 12px 0 color-mix(in srgb, var(--animal-color), #8b765a 20%);transform:translateY(-4px)}.animal-card:active{box-shadow:0 3px 0 color-mix(in srgb, var(--animal-color), #8b765a 20%);transform:translateY(5px)}.animal-portrait-frame{border:5px solid #fff;border-radius:50%;width:112px;height:112px;margin-bottom:8px;display:block;overflow:hidden;box-shadow:0 3px #2534461f}.animal-portrait{object-fit:cover;width:100%;height:100%;transform:scale(1.22)}.animal-name{text-shadow:0 2px #ffffffeb;font-size:1.35rem;font-weight:900}.animal-message{color:#56616b;text-shadow:0 2px #ffffffeb;margin-top:6px;font-size:.72rem;font-weight:700;line-height:1.45}.grownup-note{color:#667a76;text-align:center;margin:28px 0 0;font-size:.75rem;font-weight:700}.grownup-info{color:#516761;background:#ffffffb8;border:2px solid #d4e2dc;border-radius:18px;max-width:700px;margin:14px auto 0;font-size:.78rem}.grownup-info summary{cursor:pointer;text-align:center;min-height:48px;padding:14px 18px;font-weight:900}.grownup-info-body{padding:0 18px 16px;line-height:1.7}.grownup-info-body p{margin:10px 0 0}.play-scene{min-height:calc(100vh - 130px);padding:18px max(22px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));flex-direction:column;align-items:center;display:flex}.grownup-help{z-index:30;top:max(78px, calc(env(safe-area-inset-top) + 66px));right:max(16px, env(safe-area-inset-right));background:#f7f3e8f7;border:4px solid #fff;border-radius:26px;width:min(360px,100vw - 32px);padding:20px;position:fixed;box-shadow:0 10px #25344626}.help-label{color:#65766e;letter-spacing:.1em;margin:0 0 8px;font-size:.72rem;font-weight:900}.grownup-help .step-copy h1{font-size:1.45rem}.grownup-help .step-copy>p:last-child{margin-top:8px;font-size:.9rem;line-height:1.5}.grownup-help .primary-action{min-height:54px;margin-top:16px;font-size:1rem}.step-copy{text-align:center}.step-copy h1{font-size:var(--font-size-xl);word-break:keep-all}.bathroom{border:8px solid var(--color-surface);border-radius:var(--radius-lg);width:min(100%,590px);height:clamp(290px,46vh,410px);box-shadow:var(--shadow-panel);background:url(/assets/backgrounds/bathroom-room-v1.webp) 50%/cover;margin:18px 0;position:relative;overflow:hidden}.bathroom:after,.wall-decoration{display:none}.step-celebrate .bathroom{background-image:url(/assets/backgrounds/celebration-clubhouse-v1.webp)}.character-speech{z-index:18;max-width:min(48%,260px);color:var(--color-ink);letter-spacing:.04em;text-align:center;pointer-events:none;background:#fffdf2f0;border:3px solid #fffffff0;border-radius:24px 24px 24px 9px;margin:0;padding:10px 18px;font-size:clamp(1rem,3.2vw,1.35rem);font-weight:900;line-height:1.25;animation:.56s cubic-bezier(.2,.85,.3,1.2) both character-speech-arrive;position:absolute;top:7%;left:29%;box-shadow:0 5px #2534461c,0 10px 24px #2534461a}.character-speech:after{bottom:-10px;left:var(--speech-tail-left,18px);content:"";background:#fffdf2f0;border-bottom:3px solid #fffffff0;border-right:3px solid #fffffff0;width:20px;height:20px;position:absolute;transform:rotate(45deg)}.step-seated .character-speech,.step-strain .character-speech,.step-breathe .character-speech,.step-finish .character-speech,.step-flush .character-speech{top:6%;left:6%}.character{z-index:3;width:240px;height:330px;transition:all .45s;position:absolute;bottom:2%;left:4%}.is-draggable,.is-holdable,.is-scrubbable{cursor:grab;touch-action:none}.is-draggable{translate:var(--drag-x,0) var(--drag-y,0);rotate:var(--drag-tilt,0deg)}.is-dragging{z-index:12;filter:drop-shadow(0 18px 11px #2534463d);cursor:grabbing;transition:none;scale:1.04}.is-returning{transition:translate .34s cubic-bezier(.2,.9,.25,1.18),rotate .34s,scale .18s,filter .18s}.is-drop-target{transition:filter .22s,scale .22s}.is-drop-target.is-awaiting-drop{filter:drop-shadow(0 0 22px #ffd166e6);animation:.78s ease-in-out infinite alternate drop-target-pulse}.is-drop-target.is-drag-over{filter:drop-shadow(0 0 34px #3f9274f2)}.step-sit .character>.action-cue-drag-right{bottom:30%;right:0}.character-art,.character-action-art{object-fit:contain;object-position:bottom center;filter:drop-shadow(0 5px #2534461a);pointer-events:none;transform-origin:bottom;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.32)}.character-art{z-index:2}.character-action-art{z-index:5;opacity:0;transition:opacity .14s}.character.is-undressing .character-art{opacity:0}.character.is-undressing .character-action-art{opacity:1}.character.is-undressing .character-art,.character.is-undressing .character-action-art{transition:none}.character[data-character-state=seated],.character[data-character-state=strain],.character[data-character-state=push],.character[data-character-state=relief]{z-index:4;width:400px;height:350px;bottom:0;left:19%}.character[data-character-state=seated] .character-art,.character[data-character-state=strain] .character-art,.character[data-character-state=push] .character-art,.character[data-character-state=relief] .character-art{transform:scale(1.6)}.character[data-animal=bunny][data-character-state=seated] .character-art,.character[data-animal=bunny][data-character-state=strain] .character-art,.character[data-animal=bunny][data-character-state=push] .character-art,.character[data-animal=bunny][data-character-state=relief] .character-art{transform:scale(1.5)}.character[data-animal=bunny][data-character-state=wash] .character-art{transform:scale(1.2)}.garment{z-index:4;cursor:grab;touch-action:none;width:144px;height:128px;translate:0 var(--swipe-y,0);opacity:var(--swipe-opacity,1);background:#ffffff03;border:3px solid #0000;border-radius:28px;place-items:end center;padding:0;transition:translate .32s cubic-bezier(.2,.9,.25,1.15),opacity .22s;display:grid;position:absolute;bottom:5px;left:48px}.garment.is-swiping{cursor:grabbing;filter:drop-shadow(0 10px 6px #25344633);transition:none}.garment:focus-visible{border-color:var(--color-focus);outline:4px solid #146c9447}.garment>.action-cue-swipe-down{opacity:calc(1 - var(--swipe-progress,0));top:45%;left:50%;transform:translate(-50%,-50%)}.underwear{bottom:3px}.garment.is-lowered{opacity:0;pointer-events:none;transform:translateY(110px)}.toilet{z-index:2;cursor:pointer;background:0 0;border:0;width:315px;height:300px;padding:0;position:absolute;bottom:0;right:0}.toilet-art{object-fit:contain;pointer-events:none;width:100%;height:100%;transition:opacity .38s .72s}.flush-clean-art{object-fit:contain;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .38s .72s;position:absolute;inset:0}.flush-frame{object-fit:contain;opacity:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.toilet:disabled{cursor:default}.flush-lever{z-index:14;cursor:grab;touch-action:none;background:0 0;border:0;width:92px;height:142px;padding:0;position:absolute;top:12%;right:7%}.flush-lever:before{content:"";background:linear-gradient(145deg,#fffdf4,#eadfcf);border:4px solid #ffffffeb;border-radius:24px;width:62px;height:104px;position:absolute;top:0;right:0;box-shadow:inset 0 -5px 8px #9c7e5d1f,0 7px 18px #2534462e}.flush-lever-handle{z-index:2;width:28px;height:58px;translate:0 min(var(--swipe-y,0px), 48px);background:linear-gradient(90deg,#9da9ab,#e9eeee 48%,#aeb8ba);border:4px solid #fff;border-radius:999px;transition:translate .18s ease-out;position:absolute;top:20px;right:17px;box-shadow:0 4px 8px #25344633}.flush-lever-handle:after{content:"";background:radial-gradient(circle at 35% 30%,#f7fafa,#aab5b7 72%);border:4px solid #fff;border-radius:50%;width:38px;height:38px;position:absolute;bottom:-12px;right:50%;transform:translate(50%);box-shadow:0 3px 6px #2534462e}.flush-lever>.action-cue-swipe-down{top:8px;left:-36px;scale:.82}.flush-lever.is-swiping{cursor:grabbing}.flush-lever:focus-visible{outline:6px solid var(--color-focus);outline-offset:5px;border-radius:28px}.completion-badge{z-index:6;object-fit:contain;filter:drop-shadow(0 4px #2534461f);width:118px;height:82px;display:none;position:absolute;top:6%;right:5%}.sink{z-index:5;background:0 0;border:0;width:260px;height:235px;padding:0;display:none;position:absolute;bottom:4%;right:10%;overflow:hidden}.sink-art,.sink-running-art{object-fit:contain;pointer-events:none;width:100%;height:100%;transition:opacity .22s}.faucet-handle{z-index:10;cursor:pointer;background:0 0;border:0;border-radius:50%;width:104px;height:104px;padding:0;position:absolute;top:23%;left:68%;transform:translate(-50%,-50%)}.faucet-knob{background:radial-gradient(circle at 34% 28%,#f4ffff,#8ed4df 58%,#4a9db2);border:5px solid #fff;border-radius:50%;transition:transform .26s;position:absolute;inset:15px;box-shadow:inset 0 -7px 8px #2534461f,0 8px #36758738,0 12px 24px #25344629}.faucet-knob:before,.faucet-knob:after{content:"";background:#ffffffd1;border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px #36758729}.faucet-knob:before{width:44px;height:13px}.faucet-knob:after{width:13px;height:44px}.faucet-knob i{border:4px solid #7ecfda4d;border-radius:50%;animation:1.1s ease-out infinite faucet-knob-pulse;position:absolute;inset:-10px}.faucet-handle:focus-visible{outline:6px solid var(--color-focus);outline-offset:2px}.floor-clothes{z-index:7;cursor:grab;touch-action:none;width:150px;height:150px;translate:var(--dress-x,0) var(--dress-y,0);rotate:var(--dress-tilt,0deg);background:0 0;border:0;border-radius:36px;place-items:center;padding:8px;transition:translate .36s cubic-bezier(.2,.9,.25,1.18),rotate .36s,scale .18s,filter .18s,opacity .18s;display:grid;position:absolute;bottom:5%;right:32%}.floor-clothes img{object-fit:contain;filter:drop-shadow(0 7px 4px #2534462e);pointer-events:none;width:132px;height:132px}.floor-clothes>.action-cue-drag-left{top:22px;left:-86px}.floor-clothes.is-dressing{z-index:16;filter:drop-shadow(0 18px 12px #25344642);cursor:grabbing;transition:none;scale:1.08}.floor-clothes.is-dressing>.action-cue{opacity:0}.floor-clothes.is-dress-returning{transition:translate .36s cubic-bezier(.2,.9,.25,1.18),rotate .36s,scale .18s,filter .18s}.floor-clothes.guidance-target.is-guided{outline:0;animation:.9s ease-in-out infinite alternate clothes-gentle-guide}.floor-clothes:focus-visible{filter:drop-shadow(0 0 10px var(--color-focus));outline:0;scale:1.04}.character.is-dress-target{transition:filter .22s,scale .22s}.character.is-dress-target.is-awaiting-clothes{filter:drop-shadow(0 0 18px #ffd166ad)}.character.is-dress-target.is-clothes-over{filter:drop-shadow(0 0 30px #3f9274e0);scale:1.035}.sink-running-art{opacity:0;position:absolute;inset:0}.celebration{color:#ef8354;text-align:center;font-size:clamp(2.5rem,10vw,5rem);font-weight:900;animation:.8s ease-in-out infinite alternate pop;display:none;position:absolute;top:15%;left:5%;right:5%}.step-wash .character{width:350px;height:340px;bottom:0;left:auto;right:0;transform:none}.step-flush .character{display:none}.step-flush .toilet{z-index:4;border-radius:34px;width:100%;height:100%;inset:0;overflow:hidden;transform:none}.step-flush .toilet:not(:disabled){cursor:pointer}.step-flush .toilet:not(:disabled):focus-visible{outline-offset:-15px;outline:7px solid #ffd166}.step-flush .toilet-art,.step-flush .flush-clean-art,.step-flush .flush-frame{object-fit:cover;transition-duration:.18s;transition-delay:0s}.step-flush.is-flushing .toilet-art{opacity:0}.step-flush.is-flushing .flush-clean-art{animation:2.2s linear both flush-clean-frame}.step-flush.is-flushing .flush-inflow-art{animation:2.2s linear both flush-inflow-frame}.step-flush.is-flushing .flush-swirl-art{animation:2.2s linear both flush-swirl-frame}.step-flush.is-flushing .flush-drain-art{animation:2.2s linear both flush-drain-frame}.step-flush.is-flushing .flush-lever{opacity:0;transition:opacity .22s,transform .22s;transform:translateY(12px)}.step-water .character,.step-water .toilet{display:none}.step-water .sink{cursor:default;border-radius:34px;width:100%;height:100%;display:block;inset:0}.step-water .sink-art,.step-water .sink-running-art{object-fit:cover}.step-water.is-water-running .sink-art{opacity:0}.step-water.is-water-running .sink-running-art{opacity:1}.step-water.is-water-running .faucet-knob{transform:rotate(32deg)translateY(4px)}.step-water.is-water-running .faucet-handle>.action-cue{opacity:0}.step-wash .toilet{width:235px;height:220px;bottom:4%;left:2%;right:auto;transform:none}.step-wash .sink{display:none}.step-celebrate .celebration{display:block}.step-celebrate .character{bottom:8%;left:calc(50% - 120px);transform:scale(1.08)}.step-seated .toilet,.step-breathe .toilet,.step-strain .toilet,.step-finish .toilet{display:none}.step-sit .toilet:not(:disabled){filter:drop-shadow(0 0 18px #ffd166c7);animation:1.2s ease-in-out infinite alternate sit-target}.step-sit.is-sitting .character{animation:.9s ease-in-out both sit-character}.step-sit.is-sitting .toilet{animation:.9s ease-in-out both sit-toilet}.step-breathe.is-breathing .character-art{animation:1.4s ease-in-out infinite breathe-character}.step-seated .character,.step-breathe .character,.step-finish .character,.step-celebrate .character{cursor:pointer}.action-cue{z-index:12;width:var(--control-child-min);height:var(--control-child-min);pointer-events:none;background:#3f9274b8;border:3px solid #ffffffe6;border-radius:50%;place-items:center;display:grid;position:absolute;box-shadow:0 6px 18px #2534462e}.character>.action-cue{bottom:16%;right:3%}.step-strain .character>.action-cue-hold{inset:36% auto auto 50%;transform:translate(-50%,-50%)}.action-cue-hold{--hold-turn:0deg;background:#ffffffad;border-color:#ef8354b8}.action-cue-hold:before{z-index:3;background:conic-gradient(var(--color-accent) var(--hold-turn), #ffffff7a 0);content:"";filter:drop-shadow(0 3px 4px #25344629);pointer-events:none;border-radius:50%;position:absolute;inset:-5px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 7px),#000 0);mask:radial-gradient(farthest-side,#0000 calc(100% - 7px),#000 0)}.action-cue-tap{box-shadow:none;background:0 0;border:0}.action-cue-path,.action-cue-bubbles{display:none}.action-cue-gesture{flex:0 0 40px;width:40px;height:40px;display:block;position:relative}.action-cue-ring{border:3px solid #ffffffc7;border-radius:50%;position:absolute;inset:0}.action-cue-hand{z-index:2;fill:#fff;filter:drop-shadow(0 2px #25344624);width:36px;height:36px;position:absolute;top:2px;left:2px;overflow:visible}.action-cue-hand-line{fill:none;stroke:#3f9274b8;stroke-linecap:round;stroke-width:2.5px}.action-cue-swipe-down,.action-cue-swipe-up,.action-cue-drag-right,.action-cue-drag-left,.action-cue-circle{width:88px;height:112px;box-shadow:none;background:0 0;border:0;border-radius:0}.action-cue-drag-right,.action-cue-drag-left,.action-cue-circle{width:120px;height:120px}.action-cue-swipe-down .action-cue-path,.action-cue-swipe-up .action-cue-path,.action-cue-drag-right .action-cue-path,.action-cue-drag-left .action-cue-path,.action-cue-circle .action-cue-path{fill:none;stroke:#ef8354c2;stroke-dasharray:7 8;stroke-linecap:round;stroke-linejoin:round;stroke-width:6px;width:100%;height:100%;display:block;position:absolute;inset:0}.action-cue-path path{display:none}.action-cue-swipe-down .action-cue-line-down,.action-cue-swipe-up .action-cue-line-up,.action-cue-drag-right .action-cue-line-right,.action-cue-drag-left .action-cue-line-left,.action-cue-circle .action-cue-line-circle{display:block}.action-cue-swipe-down .action-cue-gesture,.action-cue-swipe-up .action-cue-gesture,.action-cue-drag-right .action-cue-gesture,.action-cue-drag-left .action-cue-gesture,.action-cue-circle .action-cue-gesture{width:46px;height:46px;box-shadow:none;background:0 0;border:0;padding:3px;position:absolute}.action-cue-tap .action-cue-hand,.action-cue-swipe-down .action-cue-hand,.action-cue-swipe-up .action-cue-hand,.action-cue-drag-right .action-cue-hand,.action-cue-drag-left .action-cue-hand,.action-cue-circle .action-cue-hand{fill:var(--color-accent);stroke:#fff;stroke-linejoin:round;stroke-width:2.5px;paint-order:stroke fill}.action-cue-swipe-down .action-cue-gesture{animation:1.2s ease-in-out infinite cue-swipe-down;top:10px;left:21px}.action-cue-swipe-up .action-cue-gesture{animation:1.2s ease-in-out infinite cue-swipe-up;bottom:8px;left:21px}.action-cue-drag-right .action-cue-gesture{animation:1.3s ease-in-out infinite cue-drag-right;left:8px}.action-cue-drag-left .action-cue-gesture{animation:1.3s ease-in-out infinite cue-drag-left;right:8px}.action-cue-circle .action-cue-gesture{animation:1.6s linear infinite cue-circle;top:37px;left:37px}.action-cue-swipe-down .action-cue-ring,.action-cue-swipe-up .action-cue-ring,.action-cue-drag-right .action-cue-ring,.action-cue-drag-left .action-cue-ring,.action-cue-circle .action-cue-ring{display:none}.action-cue-circle .action-cue-bubbles{color:#fff;text-shadow:0 2px #7dc9d2;font-size:1.3rem;display:block;position:absolute;top:-6px}.is-dragging>.action-cue,.is-swiping>.action-cue,.is-scrubbing>.action-cue{opacity:0}.action-cue-hold .action-cue-hand-line{stroke:#d35b34b8}.action-cue-tap .action-cue-ring{animation:1.1s ease-out infinite touch-ring}.action-cue-tap .action-cue-hand{animation:1.1s ease-in-out infinite touch-finger}.action-cue-hold .action-cue-ring{border-color:#ef83546b;animation:1.2s ease-in-out infinite alternate hold-idle}.is-holding .action-cue-hold:before{animation:1.2s linear both hold-ring-progress}.is-holding .action-cue-hold .action-cue-ring{border-color:var(--color-accent);background:#ef83541f;animation:none}.is-holding .action-cue-hold .action-cue-hand{animation:1.2s ease-in-out both hold-finger}.step-flush .toilet>.action-cue{top:52%;left:50%;transform:translate(-50%,-50%)}.faucet-handle>.action-cue{top:50%;left:50%;transform:translate(-50%,-50%)}.is-dressing-clothes .floor-clothes{animation:.52s cubic-bezier(.2,.85,.3,1) both dress-clothes-settle}.is-dressing-clothes .character-art{animation:.52s ease-out both dress-character-receive}.step-strain.is-straining .character-art{animation:.55s ease-in-out 2 both strain-emphasis}.step-strain .character.is-holding .character-art{animation:.55s ease-in-out infinite alternate strain-hold-glow}.step-wash.is-washing .character-art{animation:.3s ease-in-out 4 alternate wash-character}.step-wash.is-washing .bathroom:before{z-index:8;color:#fff;content:"○  ◌  ○";text-shadow:0 2px #7dc9d2;font-size:2rem;font-weight:900;animation:1.2s ease-out both wash-bubbles;position:absolute;bottom:26%;right:19%}.step-wash .character>.action-cue-circle{bottom:10%;right:1%}.step-wash .character.is-scrubbing .character-art{animation:.22s ease-in-out infinite alternate wash-character}.step-wash .character.is-scrubbing:before{z-index:8;color:#fff;content:"○  ◌  ○  ◌";opacity:var(--scrub-progress,0);text-shadow:0 2px #7dc9d2;pointer-events:none;font-size:2.1rem;transition:all .1s linear;position:absolute;bottom:18%;right:0;transform:translateY(-24px)}.step-celebrate .toilet{opacity:.18}.primary-action{width:min(100%, var(--layout-copy-max));min-height:max(72px, var(--control-child-min));border-radius:var(--radius-md);color:var(--color-surface);background:var(--color-primary);box-shadow:0 8px 0 var(--color-primary-strong);cursor:pointer;letter-spacing:.06em;border:0;padding:14px 24px;font-size:1.25rem;font-weight:900}.primary-action:active{box-shadow:0 3px 0 var(--color-primary-strong);transform:translateY(5px)}.is-input-locked .primary-action{opacity:.78;box-shadow:0 5px 0 var(--color-primary-strong);transform:translateY(3px)}.is-input-locked .bathroom{pointer-events:none}.guidance-target.is-guided{outline-offset:6px;outline:6px solid #ffd166cc;animation:1.2s ease-in-out infinite alternate gentle-guide}.action-cue.guidance-target.is-guided{outline:0;animation:.9s ease-in-out infinite alternate action-cue-guide}.action-cue-swipe-down.guidance-target.is-guided,.action-cue-swipe-up.guidance-target.is-guided,.action-cue-drag-right.guidance-target.is-guided,.action-cue-drag-left.guidance-target.is-guided,.action-cue-circle.guidance-target.is-guided{box-shadow:none;animation:.9s ease-in-out infinite alternate path-cue-guide}.garment.guidance-target.is-guided{outline:0;animation:none}.garment.guidance-target.is-guided>span{animation:.9s ease-in-out infinite alternate garment-guide;box-shadow:0 3px #25344624,0 0 0 7px #ffd166cc}.guidance-bubble{border:var(--border-control);border-radius:var(--radius-pill);min-height:48px;color:var(--color-ink);background:var(--color-surface-help);margin:-2px 0 0;padding:10px 20px;font-size:1rem;font-weight:900;position:relative;box-shadow:0 5px #e8cf75}.guidance-bubble:before{color:#ef8354;content:"↓";font-size:1.7rem;position:absolute;top:-28px;left:calc(50% - 13px)}.reassurance{color:#65766e;margin:16px 0 0;font-size:.76rem;font-weight:700}@keyframes pop{to{transform:scale(1.08)rotate(2deg)}}@keyframes gentle-guide{to{outline-offset:11px;outline-color:#ef8354}}@keyframes garment-guide{to{box-shadow:0 3px #25344624,0 0 0 11px #ef8354bf}}@property --hold-turn{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes touch-ring{0%{opacity:.95;transform:scale(.68)}75%,to{opacity:0;transform:scale(1.2)}}@keyframes character-speech-arrive{0%{opacity:0;transform:translateY(8px)scale(.88)}68%{opacity:1;transform:translateY(-2px)scale(1.03)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes strain-hold-glow{0%{filter:drop-shadow(0 5px #2534461a)}to{filter:drop-shadow(0 5px #2534461a)drop-shadow(0 0 14px #ef835494)}}@keyframes touch-finger{0%,to{transform:translateY(3px)}45%{transform:translateY(-2px)}}@keyframes hold-idle{to{transform:scale(1.08);box-shadow:0 0 0 5px #ffd1663d}}@keyframes hold-ring-progress{0%{--hold-turn:0deg}to{--hold-turn:360deg}}@keyframes hold-finger{0%{transform:translateY(-2px)}18%,to{transform:translateY(3px)}}@keyframes action-cue-guide{to{box-shadow:0 5px #2534462e,0 0 0 9px #ffd166b8,0 12px 26px #25344624}}@keyframes path-cue-guide{to{filter:drop-shadow(0 0 7px #ffd166eb)}}@keyframes faucet-knob-pulse{0%{opacity:.75;transform:scale(.82)}to{opacity:0;transform:scale(1.18)}}@keyframes cue-swipe-down{0%,18%{opacity:0;transform:translateY(0)scale(.92)}30%{opacity:1}78%{opacity:1;transform:translateY(48px)scale(1)}to{opacity:0;transform:translateY(58px)scale(.96)}}@keyframes cue-swipe-up{0%,18%{opacity:0;transform:translateY(0)scale(.92)}30%{opacity:1}78%{opacity:1;transform:translateY(-48px)scale(1)}to{opacity:0;transform:translateY(-58px)scale(.96)}}@keyframes cue-drag-right{0%,18%{opacity:0;transform:translate(0)scale(.92)}30%{opacity:1}78%{opacity:1;transform:translate(58px)scale(1)}to{opacity:0;transform:translate(68px)scale(.96)}}@keyframes cue-drag-left{0%,18%{opacity:0;transform:translate(0)scale(.92)}30%{opacity:1}78%{opacity:1;transform:translate(-58px)scale(1)}to{opacity:0;transform:translate(-68px)scale(.96)}}@keyframes cue-circle{0%{transform:rotate(0)translate(38px)rotate(0)}to{transform:rotate(360deg)translate(38px)rotate(-360deg)}}@keyframes dress-clothes-settle{0%{opacity:1;scale:1.08}62%{opacity:.9;scale:.72}to{opacity:0;scale:.48}}@keyframes dress-character-receive{0%,to{transform:scale(1.32)}55%{transform:scale(1.36)translateY(-4px)}}@keyframes clothes-gentle-guide{to{filter:drop-shadow(0 0 16px #ffd166e0);scale:1.06}}@keyframes drop-target-pulse{to{filter:drop-shadow(0 0 32px #ef8354f2)}}@keyframes sit-target{to{filter:drop-shadow(0 0 28px #ef8354e6);transform:scale(1.035)}}@keyframes sit-character{0%{opacity:1;transform:translate(0)}55%{opacity:1;transform:translate(44%,-9%)scale(.92)}to{opacity:0;transform:translate(63%,3%)scale(.84)}}@keyframes sit-toilet{0%,to{filter:drop-shadow(0 0 18px #ffd166c7)}55%{filter:drop-shadow(0 0 34px #ef8354f2);transform:scale(1.055)}}@keyframes breathe-character{0%,to{transform:translateY(0)scale(1.6)}45%{transform:translateY(-5px)scale(1.62,1.58)}}@keyframes strain-emphasis{0%,to{filter:drop-shadow(0 5px #2534461a)brightness()}50%{filter:drop-shadow(0 7px 8px #ef835442)brightness(.97)}}@keyframes strain-marks{0%{opacity:.55;translate:0 3px}to{opacity:1;translate:0 -3px}}@keyframes wash-character{0%{transform:translate(-3px)rotate(-.6deg)}to{transform:translate(3px)rotate(.6deg)}}@keyframes wash-bubbles{0%{opacity:0;transform:translateY(12px)scale(.8)}25%,75%{opacity:1}to{opacity:0;transform:translateY(-42px)scale(1.15)}}@keyframes flush-inflow-frame{0%,38%,to{opacity:0}5%,31%{opacity:1}}@keyframes flush-swirl-frame{0%,30%,72%,to{opacity:0}38%,65%{opacity:1}}@keyframes flush-drain-frame{0%,64%,94%,to{opacity:0}72%,88%{opacity:1}}@keyframes flush-clean-frame{0%,86%{opacity:0}95%,to{opacity:1}}@media (width<=620px){.welcome{padding-top:22px}.animal-grid{grid-template-columns:1fr}.animal-card{text-align:left;grid-template-rows:1fr 1fr;grid-template-columns:100px 1fr;min-height:126px;padding:12px 18px;display:grid}.animal-portrait-frame{grid-row:1/3;width:88px;height:88px;margin:0}.animal-name{align-self:end}.animal-message{align-self:start}.bathroom{height:320px;margin:12px 0}.play-scene{padding:10px max(14px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left))}.step-copy h1{font-size:clamp(1.65rem,8vw,2.35rem)}.step-copy>p:last-child{margin-top:10px;line-height:1.55}.primary-action{min-height:68px}.guidance-bubble{width:100%}.character-speech{max-width:54%;padding:8px 14px;top:6%;left:26%}.step-seated .character-speech,.step-strain .character-speech,.step-breathe .character-speech,.step-finish .character-speech,.step-flush .character-speech{top:5%;left:5%}.character{transform-origin:0 100%;left:5%;transform:scale(.8)}.toilet{transform-origin:100% 100%;right:0;transform:scale(.78)}.character[data-character-state=seated],.character[data-character-state=strain],.character[data-character-state=push],.character[data-character-state=relief]{transform-origin:0 100%;width:360px;bottom:0;left:4%;transform:scale(.82)}.step-wash .character{width:245px;height:285px;bottom:0;left:auto;right:0;transform:none}.step-celebrate .character{transform-origin:bottom;width:240px;bottom:5%;left:50%;right:auto;transform:translate(-50%)scale(.88)}.step-flush .toilet{transform-origin:bottom;width:100%;height:100%;inset:0;transform:none}.step-wash .toilet{width:180px;height:185px;left:0}.step-wash .sink{display:none}}@media (prefers-reduced-motion:reduce){.step-sit .toilet:not(:disabled),.step-sit.is-sitting .character,.step-sit.is-sitting .toilet,.step-breathe.is-breathing .character-art,.step-strain.is-straining .character-art,.step-strain .character.is-holding .character-art,.action-cue,.action-cue-ring,.action-cue-hand,.is-dressing-clothes .floor-clothes,.is-dressing-clothes .character-art,.step-wash.is-washing .character-art,.step-wash.is-washing .bathroom:before{animation-duration:1ms;animation-iteration-count:1}.garment:after,.is-drop-target.is-awaiting-drop{animation:none}}@media (width<=620px) and (height<=700px){.welcome{padding-top:8px}.welcome-copy{margin-bottom:10px}.eyebrow{margin-bottom:2px}.welcome-copy h1{font-size:1.8rem;line-height:1.08}.supporting-copy{margin-top:6px;line-height:1.4}.animal-grid{gap:8px}.animal-card{grid-template-columns:76px 1fr;min-height:88px;padding:7px 14px}.animal-portrait-frame{border-width:4px;width:68px;height:68px}.animal-name{font-size:1.2rem}.animal-message{margin-top:2px;line-height:1.3}.grownup-note{margin-top:18px}}@media (width<=360px){.character-speech{max-width:42%;padding:6px 10px;font-size:.95rem}.character[data-character-state=seated],.character[data-character-state=strain],.character[data-character-state=push],.character[data-character-state=relief]{width:340px;left:2%;transform:scale(.78)}}@media (width>=768px) and (orientation:landscape){.app-shell{width:min(100%,1240px)}.animal-grid{max-width:900px}.play-scene{min-height:auto;padding:18px 28px max(28px, env(safe-area-inset-bottom));align-items:center;display:flex}.bathroom{width:min(100%,1080px);height:clamp(300px,100dvh - 160px,560px);margin:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.guidance-target.is-guided{animation:none!important}}
