html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}html{touch-action:manipulation;-webkit-text-size-adjust:100%}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#ffd23f;font-family:ui-rounded,Arial Rounded MT Bold,system-ui,sans-serif;position:fixed;inset:0}.rotate-hint{display:none}@media (orientation:portrait){.rotate-hint{z-index:10;background:#ffd23f;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rotate-hint svg{width:60vmin;height:60vmin;animation:2.4s ease-in-out infinite rotate-hint}}@keyframes rotate-hint{0%,25%{transform:rotate(0)}65%,to{transform:rotate(-90deg)}}.home-button{z-index:6;cursor:pointer;background:#ffffffd9;border:none;border-radius:50%;width:76px;height:76px;padding:0;position:fixed;top:14px;left:14px}.home-button svg{width:100%;height:100%;display:block}.home-button__ring-track,.home-button__ring{fill:none;stroke-width:7px}.home-button__ring-track{stroke:#2b2d4226}.home-button__ring{stroke:#ef476f;stroke-linecap:round;stroke-dasharray:277;stroke-dashoffset:277px;transform-origin:50px 50px;transition:stroke-dashoffset .15s ease-out;transform:rotate(-90deg)}.home-button--holding .home-button__ring{stroke-dashoffset:0;transition:stroke-dashoffset 2s linear}.goodbye{background:#cdb4db;flex-direction:column;justify-content:center;align-items:center;gap:4dvh;width:100%;height:100dvh;display:flex}.goodbye__zip{width:34dvh}.goodbye__words{color:#2b2d42;margin:0;font-size:clamp(48px,8vw,96px);font-weight:800}.gate{color:#2b2d42;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:14px;width:100%;height:100dvh;font-family:system-ui,sans-serif;display:flex}.gate h1{margin:0;font-size:26px}.gate p{margin:0;font-size:22px}.gate__typed{letter-spacing:4px;font-size:40px;font-weight:700}.gate__keys{grid-template-columns:repeat(5,72px);gap:10px;display:grid}.gate__keys button{background:#f1f1f1;border:2px solid #2b2d42;border-radius:12px;height:64px;font:600 26px system-ui,sans-serif}.gate__cancel{color:#555;background:0 0;border:none;margin-top:8px;padding:10px 22px;font:16px system-ui,sans-serif;text-decoration:underline}.grown-up{box-sizing:border-box;color:#2b2d42;-webkit-user-select:text;user-select:text;background:#fff;flex-direction:column;width:100%;height:100dvh;padding:24px;font-family:system-ui,sans-serif;display:flex}.grown-up__header{justify-content:space-between;align-items:center;gap:16px;display:flex}.grown-up__header h1{margin:0;font-size:24px}.grown-up__buttons{gap:12px;display:flex}.grown-up__buttons button{font:inherit;background:#f1f1f1;border:2px solid #2b2d42;border-radius:12px;padding:12px 20px;font-size:18px}.grown-up__summary{font-size:18px}.grown-up__table-wrap{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.grown-up table{border-collapse:collapse;width:100%;font-size:15px}.grown-up th,.grown-up td{text-align:left;border-bottom:1px solid #ddd;padding:8px}.grown-up__empty{color:#666}.grown-up__voices{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;font-size:18px;display:flex}.grown-up__voices button{font:inherit;background:#f1f1f1;border:2px solid #2b2d42;border-radius:12px;padding:8px 16px}.grown-up__voices button.is-chosen{color:#fff;background:#2b2d42}.grown-up__hint{color:#666}.hold-corner{z-index:5;width:90px;height:90px;position:fixed;top:0;left:0}.home{background:#ffd23f;justify-content:center;align-items:center;width:100%;height:100dvh;display:flex}.play-button{width:60vw;height:50dvh;min-height:240px;font:inherit;color:#fff;cursor:pointer;background:#ef476f;border:none;border-radius:64px;font-size:clamp(96px,16vw,200px);font-weight:800;transition:transform 80ms ease-out,box-shadow 80ms ease-out;box-shadow:0 20px #b5179e}.play-button:active{transform:translateY(14px)scale(.97);box-shadow:0 6px #b5179e}.home--bedtime{background:#1d2951;flex-direction:column;gap:2dvh}.home--done{background:#cdb4db;flex-direction:column;gap:3dvh}.home__zip{width:34dvh;position:relative}.home__zip--sleep .zip{animation:3.5s ease-in-out infinite breathe}.home__moon{color:#ffe8a3;font-size:18dvh;position:absolute;top:6dvh;right:8vw}.home__words{color:#2b2d42;margin:0;font-size:clamp(48px,8vw,96px);font-weight:800}.zzz{color:#fff;font-size:7dvh;font-weight:800;position:absolute;top:-4dvh;right:-6dvh}.zzz span{opacity:0;animation:3s ease-in-out infinite float-z;display:inline-block}.zzz span:nth-child(2){animation-delay:1s}.zzz span:nth-child(3){animation-delay:2s}@keyframes float-z{0%{opacity:0;transform:translateY(20px)}30%{opacity:1}to{opacity:0;transform:translateY(-50px)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.home--picker{gap:5vw}.episode-button{cursor:pointer;background:#fff;border:8px solid #2b2d42;border-radius:48px;width:36vw;max-width:70dvh;height:36vw;max-height:70dvh;padding:3vw;transition:transform 80ms ease-out,box-shadow 80ms ease-out;position:relative;box-shadow:0 16px #2b2d42}.episode-button:active{transform:translateY(11px);box-shadow:0 5px #2b2d42}.episode-button__play{box-sizing:border-box;color:#fff;background:#ef476f;border:6px solid #2b2d42;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;padding-left:8px;font-size:48px;display:flex;position:absolute;bottom:-18px;right:-18px}.subtitles{justify-content:center;align-items:center;min-height:11dvh;margin:1.5dvh 0 2.5dvh;display:flex}.subtitles__line{color:#2b2d42;background:#fff;border:5px solid #2b2d42;border-radius:28px;flex-wrap:wrap;justify-content:center;gap:.15em .35em;margin:0;padding:.25em .7em;font-size:clamp(30px,5.2dvh,52px);font-weight:800;line-height:1.2;display:flex}.word{border-radius:12px;align-items:center;gap:.15em;padding:0 .12em;transition:background .12s,transform .12s,opacity .12s;display:inline-flex}.word--now{background:#ffd23f;transform:scale(1.12)}.word--next{opacity:.45}.word__icon{width:.85em;height:.85em;display:inline-block}.player{box-sizing:border-box;background:#8ecae6;flex-direction:column;width:100%;height:100dvh;padding:16px 24px 28px;display:flex;position:relative;overflow:hidden}.player__progress{justify-content:center;gap:14px;height:28px;display:flex}.dot{background:#fff;border:4px solid #2b2d42;border-radius:50%;width:24px;height:24px;transition:background .2s}.dot--done{background:#ffd23f}.player__stage{flex:1;justify-content:center;align-items:center;gap:4vw;min-height:0;display:flex}.player__zip{width:22vw;max-width:260px}.player__scene{background:#fff;border:6px solid #2b2d42;border-radius:40px;width:40dvh;height:40dvh;padding:2dvh;transition:transform .25s ease-out,opacity .25s}.player__scene--hidden,.player__choices--hidden{opacity:0;transform:scale(.6)}.picture{width:100%;height:100%;display:block}.player__choices{justify-content:center;gap:4vw;transition:transform .25s ease-out,opacity .25s;display:flex}.choice{cursor:pointer;background:#fff;border:6px solid #2b2d42;border-radius:36px;width:24dvh;min-width:140px;height:24dvh;min-height:140px;padding:2.5dvh;transition:transform 80ms ease-out,box-shadow 80ms ease-out;box-shadow:0 12px #2b2d42}.choice:active{transform:translateY(8px);box-shadow:0 4px #2b2d42}.choice--glow{animation:1s ease-in-out infinite glow}.choice--show{animation:1s ease-in-out infinite glow,1s ease-in-out infinite grow}.choice--right{background:#ffd23f;transform:scale(1.1)}.choice--wiggle{animation:.5s ease-in-out wiggle}@keyframes glow{0%,to{box-shadow:0 12px #2b2d42,0 0 #ffd23fe6}50%{box-shadow:0 12px #2b2d42,0 0 0 22px #ffd23fe6}}@keyframes grow{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.zip{width:100%;display:block;overflow:visible}.zip--talk{animation:.8s ease-in-out infinite bob}.zip--talk .zip__mouth{transform-origin:100px 158px;animation:.25s ease-in-out infinite alternate chatter}.zip--happy{animation:.5s ease-out infinite jump}.zip--wave .zip__arm-left{transform-origin:25px 120px;animation:.4s ease-in-out infinite alternate wave}.zip--point{animation:.8s ease-in-out infinite lean}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes chatter{0%{transform:scaleY(.4)}to{transform:scaleY(1.1)}}@keyframes jump{0%,to{transform:translateY(0)rotate(0)}40%{transform:translateY(-40px)rotate(-6deg)}}@keyframes wave{0%{transform:rotate(-15deg)}to{transform:rotate(20deg)}}@keyframes lean{0%,to{transform:rotate(0)}50%{transform:rotate(8deg)translate(10px)}}.confetti{pointer-events:none;position:absolute;inset:0}.confetti span{border-radius:4px;width:18px;height:28px;animation:1.6s ease-in forwards fall;position:absolute;top:-30px}@keyframes fall{to{transform:translateY(110dvh)rotate(540deg)}}@media (prefers-reduced-motion:reduce){.zip,.zip *,.choice,.confetti span{animation-duration:10ms!important;animation-iteration-count:1!important}}.player__level{gap:2px;margin-left:18px;font-size:26px;line-height:24px;display:inline-flex}.level-star{color:#2b2d4240}.level-star--on{color:#ffbe0b;-webkit-text-stroke:2px #2b2d42}.player__scene--pair{flex-direction:column;justify-content:space-between;align-items:center;width:56dvh;display:flex}.pair__row{width:100%;height:15dvh}.pair__arrow{color:#2b2d42;font-size:4dvh;line-height:1}.level-up{justify-content:center;align-items:center;width:46dvh;height:40dvh;display:flex}.level-up__stars{color:#ffbe0b;-webkit-text-stroke:5px #2b2d42;gap:2vw;font-size:16dvh;animation:.6s ease-out infinite jump;display:flex}.say-marks{z-index:6;gap:10px;display:flex;position:fixed;top:14px;right:14px}.say-mark{color:#2b2d42;background:#ffffffe6;border:2px solid #2b2d42;border-radius:14px;min-height:52px;padding:0 18px;font:600 18px system-ui,sans-serif}.say-mark--yes{color:#fff;background:#2b2d42}.player{transition:background 3s}.player--calm{background:#c8d3f0}.player--calm .zip{animation-duration:1.8s}.player--calm .confetti span{animation-duration:2.6s}.player--wiggle{background:#b9fbc0}.player--wiggle .player__zip{width:30vw;max-width:340px}.player--wiggle .zip{animation:.45s ease-out infinite jump}.wiggle{justify-content:center;align-items:center;width:46dvh;height:40dvh;display:flex}.wiggle__count{color:#ef476f;-webkit-text-stroke:6px #2b2d42;font-size:30dvh;font-weight:800;animation:.35s ease-out pop-in}@keyframes pop-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.pair__row--where{width:17.5dvh;height:17.5dvh}.bloop-shown svg g[transform]{animation:.35s ease-out pop-in}.moment-birdie{z-index:4;width:16vw;animation:3.2s ease-in-out forwards fly-across;position:fixed;top:9dvh;right:-20vw}.birdie{width:100%;display:block}.birdie__wing{transform-origin:60px 40px;animation:.25s ease-in-out infinite alternate flap}@keyframes fly-across{0%{transform:translate(0)}50%{transform:translate(-60vw,6dvh)}to{transform:translate(-125vw,-4dvh)}}@keyframes flap{0%{transform:scaleY(1)}to{transform:scaleY(-.6)}}.moment-traffic{z-index:4;width:7vw;position:fixed;top:8dvh;right:5vw}.traffic-light{width:100%;display:block}.light{opacity:.2}.light--red{animation:.7s forwards light-blink}.light--yellow{animation:.7s .7s forwards light-blink}.light--green{animation:.3s 1.4s forwards light-stay}@keyframes light-blink{0%,90%{opacity:1}to{opacity:.2}}@keyframes light-stay{to{opacity:1}}.zip__tear{animation:1s ease-in infinite tear}.zip__tear--late{animation-delay:.5s}@keyframes tear{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(30px)}}.player__zip--tumble{animation:1.2s ease-in-out tumble}@keyframes tumble{0%{transform:rotate(0)translateY(0)}40%{transform:rotate(-90deg)translateY(20px)}70%{transform:rotate(-90deg)translateY(20px)}to{transform:rotate(0)translateY(0)}}
