:root{--ink:#2b2340;--ink-soft:#b9b0d0;--paper:#fff8ec;--muted:#8a7f99;--yellow:#ffd23f;--blue:#7cc4ff;--pink:#ff6b8b;--green:#5bc97a;--spring:cubic-bezier(.34, 1.56, .64, 1);color:var(--ink);font-family:Rubik,system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;height:100%;margin:0}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{font-weight:800}.app{background:var(--ink);flex-direction:column;max-width:520px;height:100dvh;margin:0 auto;display:flex;overflow:hidden}.center{justify-content:center;align-items:center;padding:16px}.muted{color:var(--muted)}.small{font-size:13px}p.center{text-align:center}.loader{gap:10px;display:flex}.loader span{background:var(--yellow);border-radius:50%;width:16px;height:16px;animation:.9s ease-in-out infinite loader}.loader span:nth-child(2){background:var(--pink);animation-delay:.15s}.loader span:nth-child(3){background:var(--blue);animation-delay:.3s}.hud{color:#fff;padding:10px 14px 12px}.hud-row{align-items:center;gap:8px;display:flex}.name-btn{color:#fff;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.level-badge{background:var(--yellow);width:40px;height:40px;color:var(--ink);border:3px solid #fff;border-radius:14px;flex-shrink:0;place-items:center;font-size:18px;font-weight:800;display:grid;transform:rotate(-6deg)}.name-col{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.name{white-space:nowrap;text-overflow:ellipsis;font-size:20px;font-weight:800;line-height:1;overflow:hidden}.xp{background:#ffffff26;border-radius:99px;max-width:140px;height:7px;display:block;overflow:hidden}.xp-fill{background:var(--yellow);height:100%;transition:width .8s var(--spring);border-radius:99px;display:block}.stage{color:var(--ink-soft);font-size:11px;font-weight:500}.counter{color:#fff;background:#ffffff1a;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px 6px 8px;font-size:16px;font-weight:700;display:flex}.counter.invite{padding:6px 8px;animation:2.4s ease-in-out infinite nudge}.gauges{justify-content:space-around;margin-top:12px;display:flex}.gauge{--c:var(--green);background:conic-gradient(var(--c) calc(var(--p) * 1%), #fff2 0);width:58px;height:58px;transition:transform .2s var(--spring);border:0;border-radius:50%;padding:5px}.gauge:active{transform:scale(.9)}.gauge.mid{--c:#ffc23f}.gauge.low{--c:#ff5a5f;animation:1.1s ease-in-out infinite wobble}.gauge-in{background:#fff;border-radius:50%;place-items:center;width:100%;height:100%;display:grid}.scene{border-radius:22px 22px 0 0;flex:1;min-height:0;position:relative;overflow:hidden;container-type:size}.room{position:absolute;inset:0}.room-in-right{animation:room-in-right .38s var(--spring)}.room-in-left{animation:room-in-left .38s var(--spring)}.wall,.floor{position:absolute;left:0;right:0}.wall{top:0;bottom:26%}.wall:after{content:"";background:radial-gradient(70% 60% at 50% 25%,#ffffff40,#0000 70%),linear-gradient(90deg,#00000014,#0000 18% 82%,#00000014);position:absolute;inset:0}.floor{perspective:180px;perspective-origin:50% 0;border-top:4px solid var(--ink);background:var(--floor-base);height:26%;bottom:0;overflow:hidden}.floor:before{content:"";background:var(--floor-tile);transform-origin:50% 0;height:260%;position:absolute;top:0;left:-100%;right:-100%;transform:rotateX(58deg)}.floor:after{content:"";background:linear-gradient(var(--baseboard) 0 9px, var(--ink) 9px 12px, #0000002e 12px, transparent 40%);position:absolute;inset:0}.wall-kitchen{background:repeating-linear-gradient(90deg,#ffe3b3 0 24px,#ffd99c 24px 48px)}.floor-kitchen{--floor-base:#eadbc6;--floor-tile:repeating-conic-gradient(#f7efe4 0 25%, #e2cfb6 0 50%) 0 0 / 56px 56px;--baseboard:#fff1e0}.wall-bath{background:linear-gradient(transparent 52%, var(--ink) 52% calc(52% + 4px), transparent 0), linear-gradient(#fffa 2px, transparent 2px) 0 0 / 30px 30px, linear-gradient(90deg, #fffa 2px, transparent 2px) 0 0 / 30px 30px, #bfe6ff}.wall-bath:before{content:"";background:#d9f0ff;position:absolute;inset:0 0 48%}.floor-bath{--floor-base:#bfe3f7;--floor-tile:repeating-conic-gradient(#fff 0 25%, #a9dcf7 0 50%) 0 0 / 48px 48px;--baseboard:#e8f6ff}.wall-bedroom{background:radial-gradient(#ffffff2a 2px,#0000 3px) 0 0/30px 30px,#6c6fd8}.floor-bedroom{--floor-base:#a66fcc;--floor-tile:repeating-linear-gradient(90deg, #b57bdb 0 46px, #a96fd0 46px 92px);--baseboard:#8f8ee8}.wall-games{background:repeating-linear-gradient(135deg,#bde7a6 0 22px,#b0df97 22px 44px)}.floor-games{--floor-base:#5fae7a;--floor-tile:repeating-linear-gradient(90deg, #6cc189 0 60px, #61b47d 60px 120px);--baseboard:#e8f8d8}.decor{pointer-events:none;position:absolute;overflow:visible}.rug{aspect-ratio:4;border:4px solid var(--ink);width:70cqw;max-width:68cqh;box-shadow:inset 0 0 0 7px var(--rug-edge), inset 0 -6px 0 9px #00000014;background:var(--rug);border-radius:50%;position:absolute;bottom:2.5%;left:50%;transform:translate(-50%)}.rug-kitchen{--rug:#ff8fa3;--rug-edge:#ffc2cc}.rug-bath{--rug:#7cc4ff;--rug-edge:#c9e7ff}.rug-bedroom{--rug:#ffd23f;--rug-edge:#fff0b0}.rug-games{--rug:#ff8a3d;--rug-edge:#ffc59a}.pet-spot{width:min(74cqw,62cqh,330px);position:absolute;bottom:4%;left:50%;transform:translate(-50%)}.decor .cloud{animation:26s linear infinite cloud}.decor .cloud.slow{animation-duration:40s;animation-delay:-12s}.decor .twinkle{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite twinkle}.decor .curtain-l,.decor .curtain-r{transform-box:fill-box;transform-origin:50% 0;animation:5s ease-in-out infinite sway}.decor .curtain-r{animation-delay:-2.5s}.decor .clock-sec{transform-origin:40px 40px;animation:60s steps(60,end) infinite spin}.decor .steam{animation:2.6s ease-out infinite steam}.decor .drip{transform-box:fill-box;animation:2.8s ease-in infinite drip}.decor .tub-foam circle{transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite breathe}.decor .tub-foam circle:nth-child(2n){animation-delay:-1.5s}.decor .duck{transform-box:fill-box;transform-origin:50% 100%;animation:3.2s ease-in-out infinite bob}.decor .towel{transform-box:fill-box;transform-origin:50% 0;animation:6s ease-in-out infinite sway}.decor .flag{transform-box:fill-box;transform-origin:50% 0;animation:2.8s ease-in-out infinite sway}.decor .tv-hop{transform-box:fill-box;animation:1.2s ease-in-out infinite tv-hop}.decor .tv-scroll{animation:2.4s linear infinite tv-scroll}.decor.ball{transform-origin:50% 100%;animation:7s ease-in-out infinite ball}.decor .lamp-glow{transition:opacity .5s}.decor.lamp-off .lamp-glow{opacity:0}.pet-spot.dim .pet-svg{filter:brightness(.62)saturate(.85)}.pet-svg{cursor:pointer;width:100%;height:auto;transition:filter .7s;display:block;overflow:visible}.tear{transform-box:fill-box;animation:1.6s ease-in infinite tear}.thought{z-index:2;border:3px solid var(--ink);width:62px;height:62px;animation:float 2s ease-in-out infinite, pop-in .4s var(--spring);background:#fff;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:-10%;right:-12%}.thought:after{content:"";border:3px solid var(--ink);background:#fff;border-radius:50%;width:15px;height:15px;position:absolute;bottom:-12px;left:-2px}.thought.mail{animation:float 1.2s ease-in-out infinite, pop-in .4s var(--spring);background:#ffe4ec}.speech{z-index:3;border:3px solid var(--ink);max-width:62%;box-shadow:0 3px 0 var(--ink);pointer-events:none;transform-origin:0 100%;animation:speech 2.6s var(--spring) forwards;background:#fff;border-radius:18px 18px 18px 4px;padding:8px 13px;font-size:15px;font-weight:800;line-height:1.2;position:absolute;top:-2%;left:-4%}.zzz{color:#fff;pointer-events:none;z-index:3;align-items:flex-end;gap:2px;font-weight:800;display:flex;position:absolute;top:10%;right:12%}.zzz span{-webkit-text-stroke:1px var(--ink);animation:2.4s ease-in-out infinite zzz}.zzz span:first-child{font-size:18px}.zzz span:nth-child(2){font-size:24px;animation-delay:.4s}.zzz span:nth-child(3){font-size:32px;animation-delay:.8s}.foam{pointer-events:none;animation:foam-in .3s var(--spring);z-index:2;background:radial-gradient(circle at 35% 35%,#fff 0 35%,#e8f6ff 65%,#cbe9ff);border:2px solid #9bd0f5;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.shower{pointer-events:none;z-index:3;position:absolute;inset:0}.shower i{background:#4da3ff;border-radius:6px;width:6px;height:20px;animation:.55s linear infinite rain;position:absolute;top:-24px}.night{opacity:0;pointer-events:none;background:#0e0a2c9e;transition:opacity .7s;position:absolute;inset:0}.night.on{opacity:1}.banner{z-index:4;border:3px solid var(--ink);white-space:nowrap;animation:banner 3s var(--spring) forwards;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-weight:800;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.tray{background:var(--paper);border-top:4px solid var(--ink);min-height:132px;padding:12px 16px 10px;overflow:hidden}.tray-in{height:100%;animation:tray-in .35s var(--spring);flex-direction:column;justify-content:center;gap:6px;display:flex}.tray-row{justify-content:center;align-items:center;gap:18px;display:flex}.tray-hint{text-align:center;color:var(--muted);margin:0;font-size:13px;font-weight:500}.tray-hint b{color:var(--ink)}.slot{border:3px solid var(--ink);width:88px;height:88px;box-shadow:0 4px 0 var(--ink);touch-action:none;cursor:grab;transition:transform .15s var(--spring);background:#fff;border-radius:26px;place-items:center;display:grid}.slot:active{transform:scale(.92)}.food-slot{animation:pop-in .35s var(--spring)}.round-btn{border:3px solid var(--ink);width:42px;height:42px;box-shadow:0 3px 0 var(--ink);background:#fff;border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:grid}.round-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.big-btn{border:3px solid var(--ink);background:var(--yellow);box-shadow:0 4px 0 var(--ink);border-radius:18px;justify-content:center;align-items:center;gap:8px;padding:13px 22px;font-size:17px;font-weight:800;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.big-btn.blue{background:var(--blue)}.big-btn.dark{color:#fff;background:#4b4580}.big-btn.light{background:#fff}.big-btn.small{padding:9px 16px;font-size:15px}.big-btn.wide{width:100%}.big-btn.ready{animation:1s ease-in-out infinite ready}.big-btn:disabled{opacity:.45;box-shadow:0 1px 0 var(--ink);cursor:default;animation:none;transform:translateY(3px)}.big-btn:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.games-row{gap:8px}.game-btn{border:3px solid var(--ink);min-width:0;box-shadow:0 4px 0 var(--ink);background:#fff;border-radius:20px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px 4px;font-size:12px;font-weight:700;line-height:1.15;display:flex}.game-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.nav{padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:var(--ink);gap:2px;display:flex}.nav button{color:var(--ink-soft);background:0 0;border:0;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-size:11px;font-weight:700;display:flex}.nav button svg{transition:transform .25s var(--spring)}.nav button.active{color:#fff;background:#ffffff1c}.nav button.active svg{transform:translateY(-3px)scale(1.18)}.drag-ghost{z-index:30;pointer-events:none;filter:drop-shadow(0 8px #0000002e);position:fixed;transform:translate(-50%,-60%)scale(1.15)rotate(-6deg)}.particles{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.particle{will-change:transform, opacity;line-height:0;display:block;position:absolute}.sheet-backdrop{z-index:20;background:#140f288c;justify-content:center;align-items:flex-end;animation:.2s ease-out fade;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:520px;max-height:88vh;padding:16px 16px calc(20px + env(safe-area-inset-bottom));border:4px solid var(--ink);background:var(--paper);animation:slide-up .35s var(--spring);border-bottom:0;border-radius:28px 28px 0 0;overflow-y:auto}.sheet-head{align-items:center;gap:10px;margin-bottom:14px;display:flex}.sheet-head h2{flex:1;margin:0;font-size:24px}.chip{border:3px solid var(--ink);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 12px 5px 7px;font-weight:800;display:inline-flex}.tabs{border:3px solid var(--ink);background:#fff;border-radius:16px;gap:6px;margin-bottom:12px;padding:4px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:11px;flex:1;padding:8px;font-weight:800}.tabs button.on{background:var(--yellow);color:var(--ink)}.shop-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.shop-item{border:3px solid var(--ink);animation:pop-in .35s var(--spring) both;background:#fff;border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:8px 6px 10px;font-size:14px;display:flex}.shop-item:nth-child(2){animation-delay:30ms}.shop-item:nth-child(3){animation-delay:60ms}.shop-item:nth-child(4){animation-delay:90ms}.shop-item:nth-child(5){animation-delay:.12s}.shop-item:nth-child(6){animation-delay:.15s}.shop-item:nth-child(n+7){animation-delay:.18s}.shop-item.on{background:#e4f8ec}.shop-item.locked .shop-preview svg{filter:grayscale()opacity(.45)}.shop-preview{width:100%;padding:2px 0 0;position:relative}.lock{border:2px solid var(--ink);background:#fff;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:0;right:0}.small-btn{border:2px solid var(--ink);background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:4px;width:100%;padding:7px 6px;font-size:13px;font-weight:800;display:inline-flex}.small-btn.buy{background:var(--yellow)}.small-btn:disabled{opacity:.45;cursor:default}.block{border:3px solid var(--ink);text-align:left;background:#fff;border-radius:20px;width:100%;margin-bottom:12px;padding:14px;display:block}.block h3{align-items:center;gap:8px;margin:0 0 8px;font-size:17px;display:flex}.members{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.member{align-items:center;gap:8px;font-weight:700;display:inline-flex}.avatar{border:3px solid var(--ink);background:var(--blue);border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.member+.member .avatar{background:var(--pink)}.streak-block{align-items:center;gap:12px;display:flex}.streak-days{font-size:20px;font-weight:800}.note-form textarea,.rename input{border:2px solid var(--ink);width:100%;font:inherit;color:var(--ink);resize:none;-webkit-user-select:text;user-select:text;border-radius:12px;outline:none;padding:9px 12px;font-weight:600}.note-form .small-btn{margin-top:8px}.rename{gap:8px;display:flex}.rename input{flex:1;min-width:0}.rename .small-btn{width:auto;padding:7px 12px}.toggle{align-items:center;gap:10px;font-weight:700;display:flex}.event{border-top:2px dashed #eadfcf;justify-content:space-between;gap:8px;padding:7px 0;font-size:14px;display:flex}.event:first-of-type{border-top:0}.modal-backdrop{z-index:50;background:#140f2899;place-items:center;padding:16px;animation:.2s ease-out fade;display:grid;position:fixed;inset:0}.modal,.panel{border:4px solid var(--ink);background:var(--paper);text-align:center;width:min(88vw,340px);animation:modal-in .45s var(--spring);border-radius:28px;padding:22px 20px}.modal h2,.panel h2{margin:0 0 6px;font-size:24px}.modal p,.panel p{margin:0 0 14px;font-weight:500;line-height:1.4}.gift{cursor:pointer;place-items:center;margin:4px auto 8px;animation:1.6s ease-in-out infinite gift-shake;display:grid}.gift.opened{animation:none}.reward,.panel .result{animation:pop-in .45s var(--spring);justify-content:center;align-items:center;gap:6px;font-size:30px;font-weight:800;display:flex}.level-star{width:120px;animation:star-spin .9s var(--spring);place-items:center;margin:-6px auto 4px;display:grid;position:relative}.level-star span{font-size:30px;font-weight:800;position:absolute;top:46px}.letter{border:3px solid var(--ink);text-align:left;animation:letter-in .6s var(--spring);background:repeating-linear-gradient(#fff 0 26px,#ffe4ec 26px 28px);border-radius:6px 22px;margin:8px 0 16px;padding:18px 16px;transform:rotate(-1.5deg)}.letter-text{white-space:pre-wrap;word-break:break-word;font-size:18px;font-weight:600!important}.letter-from{text-align:right;color:var(--muted);margin:0!important}.onboarding{max-width:520px;height:100dvh;padding:24px 20px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(#ffffff14 2px, transparent 3px) 0 0 / 28px 28px, var(--ink);color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;margin:0 auto;display:flex}.onboarding h1{margin:0;font-size:28px}.onboarding .muted{color:var(--ink-soft);margin:0}.egg{cursor:pointer;transform-origin:50% 90%;margin:18px 0 6px}.egg.idle{animation:2.2s ease-in-out infinite egg-idle}.taps{gap:8px;display:flex}.taps span{width:12px;height:12px;transition:background .2s, transform .3s var(--spring);background:#fff3;border-radius:50%}.taps span.on{background:var(--yellow);transform:scale(1.3)}.hint{max-width:300px;margin-top:18px!important}.onboarding-pet{width:min(60vw,240px);animation:pop-in .6s var(--spring)}.swatches{gap:12px;display:flex}.swatch{width:46px;height:46px;transition:transform .25s var(--spring);border:4px solid #fff;border-radius:50%}.swatch.on{border-color:var(--yellow);transform:scale(1.18)}.name-input{width:100%;max-width:320px;font:inherit;color:var(--ink);text-align:center;-webkit-user-select:text;user-select:text;background:#fff;border:3px solid #fff;border-radius:16px;outline:none;padding:13px 16px;font-size:18px;font-weight:700}.chips{flex-wrap:wrap;justify-content:center;gap:6px;max-width:340px;display:flex}.chip-btn{color:#fff;background:0 0;border:2px solid #fff5;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}.onboarding .big-btn.wide{max-width:320px;margin-top:6px}.game{z-index:40;background:var(--ink);flex-direction:column;animation:.25s ease-out fade;display:flex;position:fixed;inset:0}.game-bar{color:#fff;align-items:center;gap:12px;padding:10px 14px;display:flex}.game-score{flex:1;font-size:28px;font-weight:800}.game-lives{gap:2px;display:flex}.game-lives .lost{opacity:.25;transition:all .3s var(--spring);transform:scale(.8)}.game-time{font-size:18px;font-weight:800}.game-time.hurry{color:#ff6b6b;animation:.5s ease-in-out infinite ready}.game-score{animation:score-bump .25s var(--spring)}.countdown{pointer-events:none;background:#140f2840;place-items:center;display:grid;position:absolute;inset:0}.countdown span{color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);animation:count-pop .6s var(--spring);font-size:96px;font-weight:800}.best{color:var(--muted);justify-content:center;align-items:center;gap:6px;display:flex;font-weight:800!important}.record{border:3px solid var(--ink);background:var(--yellow);animation:record 1s var(--spring) infinite alternate;border-radius:999px;margin-bottom:8px;padding:6px 14px;font-weight:800;display:inline-block}.game canvas{touch-action:none;flex:1;width:100%;min-height:0;display:block}.game-cover{background:#140f288c;place-items:center;padding:16px;animation:.25s ease-out fade;display:grid;position:absolute;inset:0}.panel-row{justify-content:center;gap:10px;display:flex}.memory-wrap{background:repeating-linear-gradient(135deg,#ffe3b3 0 24px,#ffd99c 24px 48px);flex:1;place-items:center;padding:12px;display:grid}.memory{grid-template-columns:repeat(3,1fr);gap:10px;width:min(100%,340px,56vh);display:grid}.card-front svg{width:72%;height:auto}.card{aspect-ratio:3/4;perspective:600px;background:0 0;border:0;padding:0}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s var(--spring);display:block;position:relative}.card.flipped .card-inner{transform:rotateY(180deg)}.card-back,.card-front{border:3px solid var(--ink);backface-visibility:hidden;box-shadow:0 4px 0 var(--ink);border-radius:16px;place-items:center;display:grid;position:absolute;inset:0}.card-back{background:radial-gradient(#fff5 3px, transparent 4px) 0 0 / 18px 18px, var(--pink)}.card-front{background:#fff;transform:rotateY(180deg)}.card{animation:pop-in .4s var(--spring) both}.card.wrong .card-inner{animation:.4s ease-in-out card-wrong}.card.wrong .card-front{background:#ffe1e1}.card.found .card-front{animation:found .5s var(--spring);background:#e4f8ec}.toast{left:50%;bottom:calc(150px + env(safe-area-inset-bottom));z-index:70;background:var(--ink);color:#fff;text-align:center;max-width:calc(100% - 32px);animation:toast .35s var(--spring);border:3px solid #fff;border-radius:16px;padding:10px 18px;font-size:14px;font-weight:700;position:fixed;transform:translate(-50%)}@keyframes loader{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(8deg)}60%{transform:rotate(0)}}@keyframes nudge{0%,80%,to{transform:scale(1)}88%{transform:scale(1.18)rotate(-8deg)}94%{transform:scale(1.1)rotate(6deg)}}@keyframes float{0%,to{translate:0}50%{translate:0 -6px}}@keyframes pop-in{0%{opacity:0;scale:.4}to{opacity:1;scale:1}}@keyframes zzz{0%,to{opacity:.2;transform:translateY(4px)}50%{opacity:1;transform:translateY(-6px)}}@keyframes tear{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(24px)}}@keyframes foam-in{0%{transform:translate(-50%,-50%)scale(0)}to{transform:translate(-50%,-50%)scale(1)}}@keyframes rain{0%{transform:translateY(0)}to{transform:translateY(110vh)}}@keyframes room-in-right{0%{opacity:0;transform:translate(40%)}to{opacity:1;transform:translate(0)}}@keyframes room-in-left{0%{opacity:0;transform:translate(-40%)}to{opacity:1;transform:translate(0)}}@keyframes tray-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes ready{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes banner{0%{transform:translate(-50%,-80px)}12%{transform:translate(-50%)}85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-80px)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:scale(.6)rotate(-4deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes gift-shake{0%,70%,to{transform:rotate(0)scale(1)}75%{transform:rotate(-7deg)scale(1.05)}80%{transform:rotate(6deg)scale(1.05)}85%{transform:rotate(-4deg)}90%{transform:rotate(2deg)}}@keyframes star-spin{0%{transform:scale(0)rotate(-200deg)}to{transform:scale(1)rotate(0)}}@keyframes letter-in{0%{opacity:0;transform:translateY(40px)rotate(6deg)scale(.8)}to{opacity:1;transform:translateY(0)rotate(-1.5deg)scale(1)}}@keyframes egg-idle{0%,60%,to{transform:rotate(0)}70%{transform:rotate(-5deg)}80%{transform:rotate(4deg)}90%{transform:rotate(-2deg)}}@keyframes found{0%{transform:rotateY(180deg)scale(1)}50%{transform:rotateY(180deg)scale(1.12)}to{transform:rotateY(180deg)scale(1)}}@keyframes toast{0%{opacity:0;transform:translate(-50%,20px)scale(.9)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes score-bump{0%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes count-pop{0%{opacity:0;transform:scale(2.2)}to{opacity:1;transform:scale(1)}}@keyframes record{0%{transform:rotate(-4deg)scale(1)}to{transform:rotate(4deg)scale(1.08)}}@keyframes card-wrong{0%,to{transform:rotateY(180deg)translate(0)}25%{transform:rotateY(180deg)translate(-6px)}75%{transform:rotateY(180deg)translate(6px)}}@keyframes speech{0%{opacity:0;transform:scale(.3)rotate(-8deg)}12%{opacity:1;transform:scale(1)rotate(0)}88%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)translateY(-8px)}}@keyframes cloud{0%{transform:translate(-60px)}to{transform:translate(150px)}}@keyframes twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}@keyframes sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes steam{0%{opacity:0;transform:translateY(14px)}30%{opacity:.9}to{opacity:0;transform:translateY(-14px)}}@keyframes drip{0%,55%{opacity:0;transform:translateY(0)scale(.3)}65%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(26px)scale(1)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes bob{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-3px)rotate(4deg)}}@keyframes tv-hop{0%,to{transform:translateY(0)}40%{transform:translateY(-16px)}}@keyframes tv-scroll{0%{transform:translate(0)}to{transform:translate(-80px)}}@keyframes ball{0%,80%,to{transform:translateY(0)scale(1)}84%{transform:translateY(0)scale(1.15,.85)}89%{transform:translateY(-30%)rotate(30deg)}94%{transform:translateY(0)scale(1.1,.9)rotate(30deg)}97%{transform:translateY(-8%)rotate(40deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
