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)}}.hold-corner{z-index:5;width:90px;height:90px;position:fixed;top:0;left:0}.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}.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}.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}.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}}
