.birthday-modal{padding:0!important}body.birthday-scene-open .onboarding-bubble,body.birthday-scene-open .onboarding-highlight-box,body.birthday-scene-open .onboarding-overlay{visibility:hidden}body.birthday-scene-open .modal-backdrop.show{opacity:.9}.birthday-modal .birthday-dialog{max-width:min(1200px,96vw,calc(88vh * 16 / 9));width:100%;margin:4vh auto}.birthday-content{background:#080604;border:1px solid #66552b;box-shadow:0 0 0 1px rgb(0 0 0 / .6),0 30px 90px rgb(0 0 0 / .75),inset 0 0 40px rgb(0 0 0 / .5);border-radius:6px;overflow:hidden;overflow:clip}.birthday-stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;overflow:clip;touch-action:none;user-select:none;-webkit-user-select:none;cursor:default;background:#080604}.birthday-stage[data-phase="blow"]{cursor:crosshair}.birthday-stage.is-blowing{cursor:grabbing}.bd-world{position:absolute;left:0;top:0;transform-origin:0 0;opacity:0;transition:opacity .45s ease}.birthday-stage.is-open .bd-world{opacity:1}.bd-room{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;filter:brightness(.82) saturate(1.05)}.bd-warmth{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 42% 48% at 50% 64%,rgba(255,170,70,var(--warmth,.16)),transparent 70%),linear-gradient(180deg,rgb(8 5 3 / .55) 0%,transparent 26%,transparent 72%,rgb(8 5 3 / .5) 100%);transition:--warmth .6s}.bd-motes{position:absolute;inset:0;pointer-events:none}.bd-motes i{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:rgb(255 214 150 / .55);box-shadow:0 0 6px rgb(255 190 110 / .7);animation:bd-mote var(--d) linear var(--delay) infinite;opacity:0}@keyframes bd-mote{0%{transform:translate(0,0);opacity:0}15%{opacity:.8}85%{opacity:.5}100%{transform:translate(30px,-160px);opacity:0}}.bd-table{position:absolute;pointer-events:none;filter:drop-shadow(0 18px 24px rgb(0 0 0 / .6));transform:translateY(60px);opacity:0;transition:transform .7s cubic-bezier(.2,.8,.2,1) .1s,opacity .5s ease .1s}.birthday-stage.is-open .bd-table{transform:none;opacity:1}.bd-table-clip{position:absolute;left:0;top:0;width:100%;overflow:hidden;overflow:clip;pointer-events:none}.bd-cake{position:absolute;transform:translateY(40px);opacity:0;transition:transform .6s cubic-bezier(.2,.9,.25,1.15) .35s,opacity .45s ease .35s}.birthday-stage.is-open .bd-cake{transform:none;opacity:1}.bd-cake.is-hopping .bd-cake__lift{animation:bd-cake-hop .7s cubic-bezier(.3,.7,.3,1)}.bd-cake.is-leaving{transform:translateY(calc(100% + 200px))!important;transition:transform .5s cubic-bezier(.55,0,.8,.4)}@keyframes bd-cake-hop{0%{transform:none}35%{transform:translateY(-34px) scaleY(1.03)}62%{transform:translateY(0) scaleY(.96) scaleX(1.03)}80%{transform:translateY(-6px)}100%{transform:none}}.bd-cake__lift{position:relative;width:100%;height:100%;--glow:0}.bd-cake__img{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 10px 14px rgb(0 0 0 / .55))}.bd-cake__glow{position:absolute;left:-20%;right:-20%;top:-35%;bottom:10%;background:radial-gradient(ellipse 50% 40% at 50% 38%,rgb(255 190 90 / .34),transparent 72%);opacity:var(--glow);transition:opacity .4s;mix-blend-mode:screen;pointer-events:none}.bd-candle{position:absolute;transform-origin:50% 100%;transform:translateY(-26px) scale(.6);opacity:0;transition:transform .42s cubic-bezier(.2,.9,.3,1.3),opacity .3s}.bd-candle.is-placed{transform:none;opacity:1}.bd-candle__img{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 3px 3px rgb(0 0 0 / .45))}.bd-candle.is-burnt .bd-candle__img{filter:drop-shadow(0 3px 3px rgb(0 0 0 / .45)) brightness(.85)}.bd-flame{position:absolute;left:50%;bottom:calc(100% - 4px);width:var(--flame-w,16px);height:calc(var(--flame-w,16px) * 2.1);margin-left:calc(var(--flame-w,16px) / -2);transform-origin:50% 92%;transform:rotate(calc(var(--bend,0deg) * .6)) skewX(calc(var(--bend,0deg) * -.45)) scaleY(0);transition:transform .12s ease-out;pointer-events:none;--bend:0deg}.bd-candle.is-lit .bd-flame{transform:rotate(calc(var(--bend,0deg) * .6)) skewX(calc(var(--bend,0deg) * -.45)) scaleY(var(--gust,1))}.bd-candle.is-lit.is-relit .bd-flame__body{animation:bd-relight .28s ease-out,bd-flicker var(--flicker-speed,.7s) ease-in-out var(--flicker-delay,0s) infinite}.bd-flame__body{position:absolute;inset:0;transform-origin:50% 92%;animation:bd-flicker var(--flicker-speed,.7s) ease-in-out var(--flicker-delay,0s) infinite}.bd-candle:not(.is-lit) .bd-flame__body{animation:none}.bd-flame__halo{position:absolute;left:50%;top:48%;width:420%;height:220%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgb(255 196 96 / .42) 0%,rgb(255 150 50 / .16) 38%,transparent 70%)}.bd-flame__outer{position:absolute;inset:0;border-radius:50% 50% 46% 46% / 64% 64% 36% 36%;background:radial-gradient(ellipse 60% 70% at 50% 72%,#fff6c8 0%,#ffd45a 34%,#ff9a2a 64%,rgb(230 80 20 / 0) 100%);filter:blur(.4px);box-shadow:0 0 10px 2px rgb(255 160 60 / .55)}.bd-flame__core{position:absolute;left:32%;right:32%;bottom:8%;height:34%;border-radius:50% 50% 45% 45% / 60% 60% 40% 40%;background:radial-gradient(ellipse at 50% 80%,rgb(120 170 255 / .85),rgb(255 255 255 / .7) 45%,transparent 75%)}@keyframes bd-flicker{0%,100%{transform:scaleY(1) skewX(0)}22%{transform:scaleY(.93) skewX(-3deg)}47%{transform:scaleY(1.06) skewX(2deg)}71%{transform:scaleY(.97) skewX(3deg)}}@keyframes bd-relight{0%{transform:scale(1.5);filter:brightness(1.8)}100%{transform:scale(1);filter:none}}.bd-smoke{position:absolute;left:50%;bottom:100%;width:10px;height:10px;margin-left:-5px;pointer-events:none;opacity:0}.bd-smoke::before,.bd-smoke::after{content:"";position:absolute;left:0;bottom:0;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,rgb(210 205 195 / .55),#fff0 70%);filter:blur(2px)}.bd-smoke.is-puffing{animation:bd-smoke-fade 1.3s ease-out forwards}.bd-smoke.is-puffing::before{animation:bd-smoke-rise 1.3s ease-out forwards}.bd-smoke.is-puffing::after{animation:bd-smoke-rise-b 1.3s ease-out .1s forwards}@keyframes bd-smoke-fade{0%{opacity:1}100%{opacity:0}}@keyframes bd-smoke-rise{0%{transform:translate(0,0) scale(.6)}100%{transform:translate(-8px,-46px) scale(2.4)}}@keyframes bd-smoke-rise-b{0%{transform:translate(0,0) scale(.5)}100%{transform:translate(10px,-38px) scale(2)}}.bd-candle__joke{position:absolute;left:50%;bottom:calc(100% + 36px);transform:translateX(-50%);padding:3px 8px;border:1px solid #786226;border-radius:10px;background:rgb(14 10 6 / .92);color:#f4d51f;font-size:14px;font-weight:800;white-space:nowrap;animation:bd-joke 1.6s ease-out forwards;pointer-events:none}@keyframes bd-joke{0%{opacity:0;transform:translate(-50%,8px) scale(.7)}15%{opacity:1;transform:translate(-50%,0) scale(1.05)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-14px)}}.bd-wind{position:absolute;inset:0;pointer-events:none}.bd-wind i{position:absolute;width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);border-radius:50%;background:radial-gradient(circle,rgb(255 250 235 / .5),#fff0 70%);animation:bd-wind .7s ease-out forwards}@keyframes bd-wind{0%{opacity:.9;transform:translate(0,0) scale(.5)}100%{opacity:0;transform:translate(var(--tx),var(--ty)) scale(1.8)}}.bd-gift{position:absolute;transform:translateX(-120vw);opacity:0;cursor:default;pointer-events:none}.bd-gift.is-arriving{animation:bd-gift-in .75s cubic-bezier(.2,.85,.3,1.2) forwards}.bd-gift.is-ready{pointer-events:auto;cursor:pointer}.bd-gift.is-ready .bd-gift__inner{animation:bd-gift-wiggle 2.4s ease-in-out 1s infinite}.bd-gift.is-ready:hover .bd-gift__img.is-shown{filter:drop-shadow(0 10px 14px rgb(0 0 0 / .55)) drop-shadow(0 0 14px rgb(244 213 31 / .45)) brightness(1.08)}@keyframes bd-gift-in{0%{transform:translateX(-900px) rotate(-8deg);opacity:1}70%{transform:translateX(18px) rotate(3deg);opacity:1}85%{transform:translateX(-6px) rotate(-1deg)}100%{transform:none;opacity:1}}@keyframes bd-gift-wiggle{0%,86%,100%{transform:none}89%{transform:rotate(-4deg)}92%{transform:rotate(4deg)}95%{transform:rotate(-2deg)}}.bd-gift__inner{position:relative;width:100%;height:100%;transform-origin:50% 100%;transition:transform .7s cubic-bezier(.2,.85,.3,1)}.birthday-stage[data-phase="summary"][data-layout="landscape"] .bd-gift__inner{transform:translateX(-270px)}.birthday-stage[data-phase="summary"][data-layout="portrait"] .bd-gift__inner{transform:translateY(-300px) scale(.8)}.bd-gift.is-shaking .bd-gift__inner{animation:bd-shake .42s linear}.bd-gift.is-hopping .bd-gift__inner{animation:bd-hop .34s cubic-bezier(.3,.7,.3,1)}@keyframes bd-shake{0%,100%{transform:none}15%{transform:rotate(-5deg) translateX(-4px)}35%{transform:rotate(5deg) translateX(4px)}55%{transform:rotate(-4deg)}75%{transform:rotate(3deg)}}@keyframes bd-hop{0%{transform:none}45%{transform:translateY(-14px) scale(1.03)}100%{transform:none}}.bd-gift__img{position:absolute;left:50%;bottom:0;height:100%;width:auto;max-width:none;transform:translateX(-50%);opacity:0;transition:opacity .16s ease;filter:drop-shadow(0 10px 14px rgb(0 0 0 / .55))}.bd-gift__img.is-shown{opacity:1}.bd-gift__prize{position:absolute;left:50%;top:18%;width:96px;height:96px;object-fit:contain;margin-left:-48px;opacity:0;transform:translate(0,40px) scale(.3);filter:drop-shadow(0 0 16px rgb(255 214 110 / .75)) drop-shadow(0 6px 10px rgb(0 0 0 / .5));animation:bd-prize .9s cubic-bezier(.2,.9,.3,1.25) var(--prize-delay,0s) forwards,bd-prize-float 2.8s ease-in-out calc(var(--prize-delay,0s) + .9s) infinite;pointer-events:none}@keyframes bd-prize{to{opacity:1;transform:translate(var(--fan,0),-150px) rotate(var(--tilt,0)) scale(1)}}@keyframes bd-prize-float{0%,100%{opacity:1;transform:translate(var(--fan,0),-150px) rotate(var(--tilt,0)) scale(1)}50%{opacity:1;transform:translate(var(--fan,0),-162px) rotate(var(--tilt,0)) scale(1.03)}}.bd-gift__rays{position:absolute;left:50%;top:-20%;width:180%;height:150%;transform:translateX(-50%) scale(.3);opacity:0;background:radial-gradient(circle,rgb(255 236 160 / .75) 0%,rgb(244 213 31 / .28) 30%,transparent 62%),repeating-conic-gradient(from 0deg,rgb(255 220 120 / .2) 0deg 8deg,transparent 8deg 24deg);border-radius:50%;-webkit-mask:radial-gradient(circle,#000 30%,transparent 68%);mask:radial-gradient(circle,#000 30%,transparent 68%);pointer-events:none}.bd-gift.is-open .bd-gift__rays{animation:bd-rays-in .7s ease-out forwards,bd-rays-spin 14s linear .7s infinite}@keyframes bd-rays-in{0%{opacity:0;transform:translateX(-50%) scale(.3) rotate(0)}100%{opacity:1;transform:translateX(-50%) scale(1) rotate(20deg)}}@keyframes bd-rays-spin{0%{transform:translateX(-50%) scale(1) rotate(20deg)}100%{transform:translateX(-50%) scale(1) rotate(380deg)}}.bd-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;overflow:clip;z-index:4}.bd-confetti i{position:absolute;left:var(--x);top:-4%;width:9px;height:14px;border-radius:2px;opacity:0;animation:bd-confetti var(--dur) cubic-bezier(.25,.5,.45,1) var(--delay) forwards;box-shadow:inset 0 -3px 0 rgb(0 0 0 / .18)}.bd-confetti i.is-ribbon{width:5px;height:22px;border-radius:3px}@keyframes bd-confetti{0%{opacity:1;transform:translate(0,0) rotate(0) rotateX(0)}100%{opacity:.9;transform:translate(var(--drift),108vh) rotate(var(--spin)) rotateX(720deg)}}.bd-hud{position:absolute;inset:0;pointer-events:none;z-index:5;color:#ded8ca}.bd-head{position:absolute;left:0;right:0;top:0;padding:18px 70px 38px 26px;background:linear-gradient(180deg,rgb(8 5 3 / .88) 0%,rgb(8 5 3 / .55) 60%,transparent 100%);opacity:0;transform:translateY(-10px);transition:opacity .5s ease .5s,transform .5s ease .5s}.birthday-stage.is-open .bd-head{opacity:1;transform:none}.bd-head__label{display:block;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#c0a650}.bd-head__title{margin:2px 0 4px;font-size:1.45rem;font-weight:800;color:#f4d51f;text-shadow:0 2px 10px rgb(0 0 0 / .8),0 0 22px rgb(244 213 31 / .18)}.bd-head__hint{margin:0;max-width:640px;font-size:.84rem;line-height:1.5;color:#eee5d4;text-shadow:0 1px 6px rgb(0 0 0 / .9);min-height:1.5em}.bd-close{position:absolute;right:14px;top:14px;width:40px;height:40px;border:1px solid #66552b;border-radius:50%;background:rgb(14 10 6 / .8);color:#dfc553;font-size:24px;line-height:1;pointer-events:auto;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.bd-close:hover,.bd-close:focus-visible{background:rgb(40 30 12 / .95);border-color:#dfc553;transform:scale(1.05);outline:none}.bd-meter{position:absolute;left:50%;bottom:18px;display:flex;gap:10px;align-items:stretch;transform:translate(-50%,20px);opacity:0;transition:opacity .35s,transform .35s}.birthday-stage[data-phase="blow"] .bd-meter,.birthday-stage[data-phase="lighting"] .bd-meter{opacity:1;transform:translate(-50%,0)}.bd-breath,.bd-counter{padding:8px 14px 9px;border:1px solid #403a2e;border-radius:4px;background:linear-gradient(180deg,rgb(23 23 21 / .92),rgb(14 14 13 / .92));box-shadow:inset 0 0 18px rgb(0 0 0 / .45),0 5px 16px rgb(0 0 0 / .35)}.bd-meter__label{display:block;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#c0a650;margin-bottom:5px}.bd-breath{min-width:170px}.bd-breath__pips{display:flex;gap:6px;margin-bottom:6px}.bd-breath__pips i{width:14px;height:14px;border-radius:50%;border:1px solid #66552b;background:#0a0a09;transition:background .2s,box-shadow .2s}.bd-breath__pips i.is-full{background:radial-gradient(circle at 35% 35%,#fff1a8,#f4d51f 55%,#b08e10);box-shadow:0 0 8px rgb(244 213 31 / .45)}.bd-breath__pips i.is-active{background:radial-gradient(circle at 35% 35%,#fff1a8,#f4d51f 55%,#b08e10);animation:bd-pip .5s ease-in-out infinite alternate}@keyframes bd-pip{from{box-shadow:0 0 4px rgb(244 213 31 / .3)}to{box-shadow:0 0 12px rgb(244 213 31 / .8)}}.bd-breath__bar{height:6px;border-radius:3px;background:#080808;border:1px solid #393327;overflow:hidden}.bd-breath__bar span{display:block;height:100%;background:linear-gradient(90deg,#c0a650,#f9d104);transform-origin:0 50%}.bd-meter.is-refilling .bd-breath__bar span{background:linear-gradient(90deg,#3d6334,#76bd58)}.bd-counter{min-width:92px;text-align:center}.bd-counter__value{font-size:1.2rem;color:#f4d51f;font-variant-numeric:tabular-nums}.bd-panel{position:absolute;left:50%;bottom:18px;width:min(560px,calc(100% - 32px));padding:14px 18px 16px;border:1px solid #786226;border-radius:5px;background:linear-gradient(180deg,rgb(25 23 15 / .95),rgb(14 14 12 / .96));box-shadow:inset 0 0 30px rgb(0 0 0 / .45),0 10px 30px rgb(0 0 0 / .6),0 0 0 1px rgb(0 0 0 / .5);text-align:center;transform:translate(-50%,24px);opacity:0;visibility:hidden;transition:opacity .35s,transform .35s,visibility 0s .35s;pointer-events:auto}.bd-panel.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .35s,transform .45s cubic-bezier(.2,.9,.3,1.2),visibility 0s}.bd-panel:has(>.bd-unwrap:only-child){width:auto;padding:10px}.birthday-stage[data-phase="summary"][data-layout="landscape"] .bd-panel{left:auto;right:4%;bottom:auto;top:54%;width:min(430px,42%);transform:translate(24px,-50%)}.birthday-stage[data-phase="summary"][data-layout="landscape"] .bd-panel.is-visible{transform:translate(0,-50%)}.bd-panel__label{display:block;margin:0 0 8px;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#c0a650}.bd-panel__bonus{display:flex;flex-direction:column;align-items:center;gap:4px;padding-left:18px;border-left:1px solid #312d24}.bd-panel__bonus-label{font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#76bd58}.bd-panel__bonus-cells{display:flex;gap:12px}.bd-panel__rewards{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:12px 18px}.bd-panel__empty,.bd-panel__error{margin:0 0 10px;font-size:.82rem;color:#aaa397}.bd-panel__error{color:#e18d82}.bd-panel__actions{margin-top:14px}.birthday-reward{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:84px;opacity:0;transform:translateY(16px) scale(.6);animation:bd-reward-in .5s cubic-bezier(.2,.9,.3,1.35) calc(var(--reward-index,0) * .16s + .1s) forwards}.birthday-reward .chest-reward-cell{opacity:1}.birthday-reward__name{font-size:.74rem;font-weight:700;color:#eee5d4;max-width:130px;line-height:1.3}@keyframes bd-reward-in{to{opacity:1;transform:none}}.bd-unwrap{animation:bd-cta 1.6s ease-in-out infinite}@keyframes bd-cta{0%,100%{box-shadow:0 0 0 #fff0}50%{box-shadow:0 0 16px rgb(244 213 31 / .45)}}.birthday-stage[data-layout="portrait"] .bd-head{padding:14px 58px 30px 16px}@media (max-width:640px){.birthday-modal .birthday-dialog{max-width:100vw;margin:0 auto;min-height:100%;display:flex;align-items:center}.birthday-content{border-radius:0;border-left:0;border-right:0;width:100%}.birthday-stage{aspect-ratio:800/1060;max-height:100svh}.bd-head__title{font-size:1.12rem}.bd-head__hint{font-size:.78rem}.bd-close{width:44px;height:44px;right:10px;top:10px}.bd-meter{bottom:12px;gap:8px}.bd-breath{min-width:140px;padding:7px 10px}.bd-counter{min-width:80px;padding:7px 10px}.bd-panel{bottom:12px;padding:12px}}.birthday-cake-hint{display:flex;flex-direction:column;gap:2px}.birthday-cake-hint__fresh{color:#76bd58;font-weight:700}.birthday-cake-hint__next{color:#c0a650}.storage-entry-note{align-self:center;font-size:.72rem;color:#8f897e}@media (prefers-reduced-motion:reduce){.bd-motes,.bd-wind,.bd-confetti{display:none}.bd-world,.bd-table,.bd-cake,.bd-candle,.bd-head,.bd-meter,.bd-panel{transition:opacity .2s!important;transform:none!important}.bd-flame__body,.bd-gift.is-ready .bd-gift__inner,.bd-unwrap,.bd-breath__pips i.is-active{animation:none!important}.bd-cake.is-hopping .bd-cake__lift,.bd-gift.is-shaking .bd-gift__inner,.bd-gift.is-hopping .bd-gift__inner{animation:none}.bd-cake.is-leaving{opacity:0!important;transition:opacity .2s!important}.bd-gift.is-arriving{animation:none;transform:none;opacity:1}.birthday-reward{animation:none;opacity:1;transform:none}.bd-gift.is-open .bd-gift__rays{animation:none;opacity:.8;transform:translateX(-50%)}.bd-gift__prize{animation:none;opacity:1;transform:translate(var(--fan,0),-150px)}}