@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Italiana&family=Sacramento&display=swap";:root{font-family:DM Sans,sans-serif;color:#fff8f3;background:#16091e;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{min-width:320px;min-height:100vh;overflow-x:hidden}button{font:inherit}.app,.app *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app{position:relative;min-height:100svh;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 120%,rgba(148,63,132,.32),transparent 44%),linear-gradient(145deg,#120719,#24102e 52%,#16091e)}.aurora,.noise,.balloon-field,.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.aurora{z-index:-3;overflow:hidden}.aurora i{position:absolute;display:block;border-radius:50%;filter:blur(100px);opacity:.28;animation:aurora-drift 13s ease-in-out infinite alternate}.aurora-one{width:38vw;height:38vw;top:-18vw;left:-10vw;background:#bd3d87}.aurora-two{width:45vw;height:45vw;right:-20vw;top:15vh;background:#6041b8;animation-delay:-5s!important}.aurora-three{width:34vw;height:34vw;left:28vw;bottom:-23vw;background:#be7b3e;animation-delay:-8s!important}.noise{z-index:-2;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.screen-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;min-height:100svh;display:grid;place-items:center;opacity:0;visibility:hidden;transform:scale(.98);pointer-events:none;transition:opacity .8s ease,transform 1s cubic-bezier(.16,1,.3,1),visibility .8s}.screen-layer.active{opacity:1;visibility:visible;transform:scale(1)}.intro-layer.leave{transform:scale(1.08);opacity:0}.intro-screen,.celebration-screen{position:relative;z-index:4;width:min(100%,1120px);min-height:100svh;padding:48px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.primary-button,.celebrate-button,.cake,.birthday-card{pointer-events:auto}.eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 16px;color:#e5bf86;font-size:.74rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}.intro-screen h1,.top-copy h1{margin:0;font-family:Italiana,serif;font-size:clamp(3rem,7.6vw,6.4rem);font-weight:400;line-height:.98;letter-spacing:-.035em;text-shadow:0 12px 48px rgba(0,0,0,.3)}.intro-screen h1 span,.top-copy h1 span{color:#ffc1d5;font-style:italic;text-shadow:0 0 38px rgba(255,116,161,.3)}.intro-copy{margin:24px 0 0;color:#fff8f3a8;font-size:clamp(.95rem,2vw,1.08rem);line-height:1.75}.gift-orbit{position:relative;width:118px;height:118px;margin-bottom:27px;display:grid;place-items:center}.gift-icon{position:relative;z-index:2;width:70px;height:70px;display:grid;place-items:center;border:1px solid rgba(255,216,167,.45);border-radius:50%;color:#ffd7a2;background:linear-gradient(145deg,#ffe2c529,#ffffff06);box-shadow:inset 0 0 25px #ffdfb712,0 0 34px #d676a526;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:gift-float 3.5s ease-in-out infinite}.gift-icon svg{width:30px;height:30px}.orbit{position:absolute;border:1px solid rgba(255,210,163,.18);border-radius:50%}.orbit-one{top:5px;right:5px;bottom:5px;left:5px;animation:orbit-spin 12s linear infinite}.orbit-two{top:16px;right:-2px;bottom:16px;left:-2px;transform:rotate(55deg);border-color:#e587b533}.orbit-spark{position:absolute;color:#ffca74;font-size:11px;animation:sparkle 1.8s ease-in-out infinite}.spark-one{left:7px;top:20px}.spark-two{right:0;top:50px;animation-delay:-.6s}.spark-three{bottom:0;left:35px;animation-delay:-1.1s}.primary-button,.celebrate-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;color:#27101f;background:linear-gradient(110deg,#ffe1ae,#ff9ebd 58%,#d9b2ff);box-shadow:0 12px 42px #dc5f973d,inset 0 1px #ffffffbf;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}.primary-button{margin-top:32px;min-width:216px;padding:15px 24px;font-weight:600}.primary-button.is-counting{min-width:252px;cursor:wait;filter:saturate(.72);opacity:.84;box-shadow:0 8px 28px #dc5f972b,inset 0 1px #ffffffa6}.primary-button.is-counting:hover,.primary-button.is-counting:active{transform:none}.primary-button.is-ready{animation:ready-pulse 1.7s ease-in-out infinite}.primary-button:before,.button-shimmer{content:"";position:absolute;inset:-20% auto -20% -40%;width:30%;transform:skew(-24deg);background:#ffffff73;filter:blur(3px);animation:button-shine 3s ease-in-out infinite}.primary-button:hover,.celebrate-button:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 18px 54px #dc5f975c,inset 0 1px #fffc}.primary-button:active,.celebrate-button:active{transform:translateY(0) scale(.98)}.primary-button:focus-visible,.celebrate-button:focus-visible,.floating-controls button:focus-visible,.cake:focus-visible{outline:3px solid rgba(255,218,163,.75);outline-offset:4px}.sound-note,.balloon-tip{display:flex;align-items:center;gap:6px;margin:17px 0 0;color:#fff8f35c;font-size:.75rem}.audio-activation-note{max-width:330px;margin:6px 0 0;color:#fff8f37a;font-size:.7rem;line-height:1.4;text-align:center}.floating-controls{position:fixed;z-index:30;top:22px;right:22px;display:flex;gap:8px}.floating-controls button{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.11);border-radius:50%;color:#fff8f3cc;background:#1e0c2785;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;transition:background .25s ease,transform .25s ease}.floating-controls button:hover{background:#ffffff21;transform:rotate(6deg) scale(1.05)}.balloon-field{z-index:2;overflow:hidden;perspective:900px}.is-open .balloon-field{-webkit-mask-image:linear-gradient(90deg,#000 0 22%,transparent 36% 64%,#000 78% 100%);mask-image:linear-gradient(90deg,#000 0 22%,transparent 36% 64%,#000 78% 100%)}.balloon-wrap{position:absolute;z-index:2;left:var(--x);bottom:-210px;width:82px;height:148px;padding:0;border:0;color:inherit;background:none;pointer-events:auto;cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transform-origin:50% 100%;animation:balloon-rise var(--duration) linear var(--delay) 1 both}.balloon-wrap.depth-0{z-index:0;filter:blur(1.4px);opacity:.42}.balloon-wrap.depth-1{opacity:.72}.balloon-wrap.depth-2{z-index:3}.balloon-3d{position:relative;display:block;width:72px;height:91px;border-radius:52% 48% 49% 51%/45% 45% 55% 55%;transform:scale(var(--scale));transform-origin:center bottom;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.82) 0 3%,rgba(255,255,255,.22) 7%,transparent 21%),radial-gradient(circle at 66% 70%,rgba(35,4,31,.34),transparent 50%),linear-gradient(135deg,color-mix(in srgb,var(--balloon-color),white 28%),var(--balloon-color) 45%,color-mix(in srgb,var(--balloon-color),black 32%));box-shadow:inset -12px -14px 20px #24052347,inset 8px 6px 14px #fff3,0 16px 28px #07020c52,0 0 24px color-mix(in srgb,var(--balloon-color),transparent 72%);animation:balloon-sway 3.8s ease-in-out infinite alternate;transition:transform .18s ease,opacity .18s ease}.balloon-wrap:hover .balloon-3d{transform:scale(calc(var(--scale) * 1.08)) rotate(-3deg)}.balloon-glow{position:absolute;top:5px;right:7px;bottom:8px;left:7px;border-radius:inherit;border-left:1px solid rgba(255,255,255,.28);transform:rotate(5deg)}.balloon-shine{position:absolute;width:9px;height:29px;top:13px;left:16px;border-radius:50%;transform:rotate(25deg);background:linear-gradient(to bottom,rgba(255,255,255,.66),transparent);filter:blur(1px)}.balloon-knot{position:absolute;left:29px;bottom:-9px;width:15px;height:13px;background:color-mix(in srgb,var(--balloon-color),black 20%);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 3px 2px rgba(0,0,0,.18))}.balloon-string{position:absolute;top:99px;left:36px;width:1px;height:77px;opacity:.66;background:linear-gradient(to bottom,#ffefe5e6,#ffefe514);transform:rotate(2deg);transform-origin:top}.balloon-string:after{content:"";position:absolute;inset:25px auto auto -3px;width:8px;height:35px;border-left:1px solid rgba(255,239,229,.55);border-radius:50%}.balloon-wrap.is-popped .balloon-3d{animation:balloon-pop .28s ease-out forwards}.balloon-wrap:focus,.balloon-wrap:active{outline:none}.celebration-screen{justify-content:flex-start;padding-top:clamp(40px,7vh,75px);padding-bottom:45px;opacity:0;transform:translateY(22px)}.celebration-layer.active .celebration-screen{animation:screen-reveal .9s .3s cubic-bezier(.16,1,.3,1) forwards}.top-copy{position:relative;z-index:5}.top-copy .eyebrow{justify-content:center;margin-bottom:10px}.top-copy h1{font-size:clamp(3rem,6.2vw,5.4rem)}.card-stage{position:relative;width:min(100%,720px);margin-top:28px;perspective:1300px}.birthday-card{--rotate-x: 0deg;--rotate-y: 0deg;--glow-x: 50%;--glow-y: 20%;position:relative;z-index:3;width:100%;min-height:330px;padding:clamp(34px,6vw,58px) clamp(27px,7vw,68px) 38px;overflow:hidden;border:1px solid rgba(255,225,213,.18);border-radius:30px;background:linear-gradient(135deg,#ffffff1b,#ffffff06),#2a11319e;box-shadow:0 36px 90px #05010a6b,inset 0 1px #ffffff24,inset 0 -40px 80px #39103c2e;-webkit-backdrop-filter:blur(24px) saturate(130%);backdrop-filter:blur(24px) saturate(130%);transform-style:preserve-3d;transform:rotateX(var(--rotate-x)) rotateY(var(--rotate-y));transition:transform .16s ease-out,border-color .3s ease}.birthday-card:hover{border-color:#ffdbc352}.card-glow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background:radial-gradient(circle at var(--glow-x) var(--glow-y),rgba(255,216,192,.19),transparent 36%)}.card-corner{position:absolute;color:#ffd38ca6;font-size:1.1rem}.corner-top{top:19px;right:23px}.corner-bottom{left:23px;bottom:18px;transform:rotate(25deg)}.mini-label{position:relative;display:inline-flex;align-items:center;gap:7px;margin-bottom:20px;color:#f0b8c8;font-size:.7rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;transform:translateZ(28px)}.message{position:relative;margin:0;color:#fff8f3d6;font-family:Italiana,serif;font-size:clamp(1.08rem,2.2vw,1.33rem);line-height:1.7;letter-spacing:.01em;transform:translateZ(35px)}.message:before,.message:after{color:#ffc0d659;font-family:Italiana,serif;font-size:3rem;line-height:0}.message:before{content:"“";margin-right:4px}.message:after{content:"”";margin-left:4px;vertical-align:-.5em}.signature{position:relative;margin-top:25px;display:flex;align-items:center;justify-content:center;gap:10px;transform:translateZ(42px)}.signature:before,.signature:after{content:"";width:34px;height:1px;background:linear-gradient(90deg,transparent,rgba(242,185,142,.5))}.signature:after{transform:rotate(180deg)}.signature span{color:#fff8f375;font-size:.75rem}.signature strong{color:#ffc9dc;font-family:Sacramento,cursive;font-size:2rem;font-weight:400;line-height:1}.cake{position:absolute;z-index:6;right:-74px;bottom:-9px;width:150px;height:160px;padding:0;border:0;background:none;cursor:pointer;filter:drop-shadow(0 24px 20px rgba(0,0,0,.34)) drop-shadow(0 -5px 13px rgba(255,161,70,.12));perspective:580px;transform:rotate(4deg) rotateX(2deg);transform-style:preserve-3d;transition:transform .3s cubic-bezier(.2,1.4,.5,1),filter .65s ease .15s}.cake:hover{transform:rotate(1deg) rotateX(2deg) scale(1.06)}.cake.wish-made{filter:drop-shadow(0 27px 22px rgba(0,0,0,.46)) brightness(.92) saturate(.9)}.cake-wish-aura{position:absolute;left:50%;bottom:18px;width:132px;height:132px;border:1px solid rgba(255,218,160,.75);border-radius:50%;opacity:0;transform:translate(-50%) scale(.45);box-shadow:0 0 24px #ffb8cd6b,inset 0 0 24px #ffd5a033;pointer-events:none}.wish-made .cake-wish-aura{animation:wish-aura 1.9s cubic-bezier(.15,.75,.25,1) both}.cake-firelight{position:absolute;z-index:8;left:22px;bottom:27px;width:110px;height:103px;border-radius:48%;opacity:.82;background:radial-gradient(ellipse at 50% 12%,rgba(255,250,204,.42) 0 9%,rgba(255,188,87,.24) 28%,rgba(255,112,55,.09) 49%,transparent 74%);mix-blend-mode:screen;filter:blur(3px);pointer-events:none;animation:firelight-flicker 1.05s ease-in-out infinite alternate;transition:opacity .65s ease,filter .65s ease}.wish-made .cake-firelight{opacity:0;filter:blur(8px);animation:none}.cake-plate{position:absolute;left:10px;bottom:17px;width:132px;height:21px;border-radius:50%;background:radial-gradient(ellipse at 42% 28%,#fff9f6 0,#fff9f6 15%,#e7c4d1 48%,#9e708d 82%);box-shadow:inset 0 4px 4px #ffffffbf,inset 0 -5px 7px #50224252,0 8px 9px #16051747;transform:translateZ(4px);transition:filter .7s ease .12s,box-shadow .7s ease .12s}.wish-made .cake-plate{filter:brightness(.78) saturate(.76);box-shadow:inset 0 3px 3px #ffffff59,inset 0 -6px 9px #2d13287a,0 10px 12px #0c030d6b}.cake-plate:after{content:"";position:absolute;top:8px;right:8px;bottom:-5px;left:8px;z-index:-1;border-radius:50%;background:linear-gradient(180deg,#ba8ca5,#76506d)}.cake-body{position:absolute;left:24px;bottom:33px;width:104px;height:61px;overflow:visible;border-radius:7px 7px 25px 25px/7px 7px 16px 16px;background:linear-gradient(90deg,rgba(255,255,255,.32),transparent 22%,transparent 68%,rgba(87,28,68,.28)),repeating-linear-gradient(0deg,#df719e 0,#df719e 12px,#f5b6c5 12px,#f5b6c5 18px);box-shadow:inset -13px -7px 18px #55184147,inset 7px 1px 10px #ffffff40,0 10px 13px #2f0c2a4d;filter:brightness(1.07) saturate(1.05) drop-shadow(0 -3px 6px rgba(255,180,89,.16));transform:translateZ(13px);transition:filter .7s ease .12s,box-shadow .7s ease .12s}.cake-body:after{content:"";position:absolute;inset:auto 6px -4px;height:13px;border-radius:50%;background:#6a2c5133;filter:blur(3px)}.cake-icing{position:absolute;z-index:3;left:0;top:-11px;width:104px;height:25px;border-radius:50%;background:radial-gradient(ellipse at 35% 25%,#fffdf3 0,#fffdf3 13%,#fff0df 45%,#e7b8b2 78%);box-shadow:inset -9px -5px 10px #8b4b5b2b,0 5px #ffeedcd1,0 8px 8px #61284a33}.cake-icing:after{content:"";position:absolute;left:14px;top:15px;width:9px;height:14px;border-radius:0 0 8px 8px;background:#ffecda;box-shadow:29px 4px 0 -1px #f8dbc9,62px -1px 0 -2px #edc5bd}.cake-filling{position:absolute;z-index:1;inset:26px 7px auto;height:5px;border-radius:50%;background:linear-gradient(90deg,#9f3e70,#ffcfda 45%,#9f3e70);box-shadow:0 1px 3px #4a173b4d}.cake-sprinkles{position:absolute;z-index:2;left:12px;bottom:8px;color:#743b70;font-size:10px;letter-spacing:3px;text-shadow:0 1px rgba(255,255,255,.35)}.candle{position:absolute;bottom:88px;width:9px;height:33px;border-radius:3px 3px 1px 1px;background:repeating-linear-gradient(135deg,#fff 0,#fff 5px,#da6ca1 5px,#da6ca1 9px);box-shadow:inset -3px 0 3px #5b1f4847,2px 3px 4px #310f283d;transform:translateZ(24px);transition:filter .65s ease .12s,box-shadow .65s ease .12s}.candle:before{content:"";position:absolute;left:50%;top:-14px;width:58px;height:91px;border-radius:50%;opacity:.5;background:radial-gradient(ellipse at 50% 3%,rgba(255,245,184,.58),rgba(255,172,69,.2) 34%,transparent 72%);mix-blend-mode:screen;filter:blur(2.5px);transform:translate(-50%);pointer-events:none;animation:candle-cast-flicker .9s ease-in-out infinite alternate;transition:opacity .6s ease,filter .6s ease}.wish-made .candle{filter:brightness(.7) saturate(.72);box-shadow:inset -4px 0 4px #32132b73,3px 4px 6px #11050f6b}.wish-made .candle:before{opacity:0;filter:blur(8px);animation:none}.candle-one{left:44px;height:27px}.candle-two{left:70px;height:38px}.candle-three{left:96px;height:30px}.candle .flame{position:absolute;left:50%;top:-17px;width:10px;height:17px;border-radius:50% 50% 45% 45%;background:radial-gradient(circle at 50% 70%,#fff8c4 0,#fff8c4 20%,#ffc247 38%,#ff6a4f 78%);box-shadow:0 0 12px #ffac45,0 0 25px #ff7a4b80;transform:translate(-50%);transform-origin:center bottom;animation:flame .75s ease-in-out infinite alternate}.wish-made .candle .flame{animation:flame-out .38s ease-out forwards}.candle-smoke{position:absolute;left:50%;top:-9px;width:1px;height:1px;pointer-events:none}.candle-smoke b{position:absolute;left:-5px;top:-2px;width:10px;height:13px;border-radius:50%;opacity:0;background:radial-gradient(circle at 38% 38%,rgba(255,255,255,.72),rgba(204,189,210,.42) 42%,transparent 72%);filter:blur(1.4px)}.candle-smoke b:nth-child(2){width:13px;height:16px}.candle-smoke b:nth-child(3){width:9px;height:12px}.wish-made .candle-smoke b{animation:candle-smoke 2.45s ease-out both}.wish-made .candle-smoke b:nth-child(2){animation-delay:.28s}.wish-made .candle-smoke b:nth-child(3){animation-delay:.62s}.wish-made .candle-two .candle-smoke b{animation-delay:.12s}.wish-made .candle-two .candle-smoke b:nth-child(2){animation-delay:.4s}.wish-made .candle-two .candle-smoke b:nth-child(3){animation-delay:.74s}.wish-made .candle-three .candle-smoke b{animation-delay:.2s}.wish-made .candle-three .candle-smoke b:nth-child(2){animation-delay:.48s}.wish-made .candle-three .candle-smoke b:nth-child(3){animation-delay:.82s}.wish-made .cake-body{filter:brightness(.76) saturate(.76) drop-shadow(0 7px 8px rgba(25,7,22,.36));box-shadow:inset -16px -8px 20px #38113066,inset 5px 1px 8px #ffffff1f,0 12px 16px #1906176b;animation:cake-wish 1.15s cubic-bezier(.2,.85,.28,1)}.cake-hint{position:absolute;left:50%;bottom:-5px;width:180px;color:#fff8f380;font-size:.66rem;transform:translate(-50%);white-space:nowrap}.celebrate-button{margin-top:30px;padding:13px 22px;font-size:.86rem;font-weight:600}.balloon-tip{margin-top:10px}.burst-counter{position:absolute;left:-100vw}.confetti-layer{z-index:50;overflow:hidden}.confetti-piece{position:absolute;left:0;top:0;width:var(--piece-width);height:calc(var(--piece-width) * 1.8);border-radius:2px;background:var(--piece-color);box-shadow:0 0 5px color-mix(in srgb,var(--piece-color),transparent 40%);animation:confetti-burst 1.8s cubic-bezier(.12,.7,.15,1) var(--delay) both}.confetti-piece.round{height:var(--piece-width);border-radius:50%}.intro-stars:before,.intro-stars:after{content:"✦";position:absolute;color:#ffd8a180;animation:sparkle 2.4s infinite}.intro-stars:before{top:17%;left:15%;font-size:9px}.intro-stars:after{right:18%;bottom:22%;font-size:14px;animation-delay:-1s}@keyframes aurora-drift{to{transform:translate3d(8vw,5vh,0) scale(1.12)}}@keyframes gift-float{50%{transform:translateY(-7px) rotate(3deg)}}@keyframes orbit-spin{to{transform:rotate(360deg)}}@keyframes sparkle{0%,to{opacity:.25;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.25) rotate(45deg)}}@keyframes button-shine{0%,55%{left:-45%}85%,to{left:125%}}@keyframes ready-pulse{0%,to{box-shadow:0 12px 42px #dc5f973d,inset 0 1px #ffffffbf}50%{box-shadow:0 15px 52px #ee70aa75,0 0 0 7px #ffadcd0f,inset 0 1px #fffc}}@keyframes balloon-rise{0%{transform:translateZ(0)}25%{transform:translate3d(24px,-32vh,80px)}50%{transform:translate3d(-11px,-65vh,20px)}75%{transform:translate3d(18px,-98vh,100px)}to{transform:translate3d(-8px,-135vh,0)}}@keyframes balloon-sway{0%{rotate:-4deg}to{rotate:5deg}}@keyframes balloon-pop{55%{transform:scale(calc(var(--scale) * 1.24));opacity:1}to{transform:scale(0);opacity:0}}@keyframes screen-reveal{to{opacity:1;transform:translateY(0)}}@keyframes flame{0%{transform:translate(-50%) rotate(-5deg) scaleY(.92)}to{transform:translate(-50%) rotate(5deg) scaleY(1.08)}}@keyframes flame-out{to{transform:translate(-50%,-7px) scale(0);opacity:0}}@keyframes firelight-flicker{0%{opacity:.68;transform:scale(.97) translateY(1px)}to{opacity:.9;transform:scale(1.035) translateY(-1px)}}@keyframes candle-cast-flicker{0%{opacity:.34;transform:translate(-50%) scaleX(.92)}to{opacity:.56;transform:translate(-50%) scaleX(1.08)}}@keyframes candle-smoke{0%{opacity:0;transform:translateZ(0) scale(.45)}15%{opacity:.72}55%{opacity:.42;transform:translate3d(8px,-30px,0) scale(1.15)}to{opacity:0;transform:translate3d(-7px,-65px,0) scale(1.85)}}@keyframes wish-aura{0%{opacity:0;transform:translate(-50%) scale(.42)}26%{opacity:.9}to{opacity:0;transform:translate(-50%) scale(1.45)}}@keyframes cake-wish{0%,to{transform:translateZ(13px) translateY(0)}35%{transform:translateZ(26px) translateY(-8px) rotate(-1deg)}65%{transform:translateZ(18px) translateY(2px) rotate(1deg)}}@keyframes confetti-burst{0%{opacity:1;transform:translate3d(var(--start-x),var(--start-y),0) rotate(0)}78%{opacity:1}to{opacity:0;transform:translate3d(calc(var(--start-x) + var(--end-x)),calc(var(--start-y) + var(--end-y) + 320px),0) rotate(var(--spin))}}@media(max-width:900px){.cake{right:-28px;bottom:-45px;transform:rotate(4deg) scale(.82)}.cake:hover{transform:rotate(1deg) scale(.87)}.card-stage{width:min(90%,720px)}.balloon-wrap.depth-2{opacity:.82}}@media(max-width:620px){html,body,#root{overflow-x:hidden}.app{height:100dvh;min-height:100svh;overflow:hidden}.noise{display:none}.aurora i{animation:none;filter:blur(68px)}.screen-layer{display:block;height:100dvh;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.screen-layer::-webkit-scrollbar{display:none}.intro-screen,.celebration-screen{width:100%;padding-left:16px;padding-right:16px}.intro-screen{min-height:100dvh;padding-top:max(44px,calc(env(safe-area-inset-top) + 24px));padding-bottom:max(44px,calc(env(safe-area-inset-bottom) + 30px))}.intro-screen h1{font-size:clamp(2.55rem,12.2vw,3.6rem)}.top-copy{width:100%;padding-inline:34px}.top-copy h1{max-width:100%;font-size:clamp(2.15rem,10vw,2.75rem);line-height:1.02;letter-spacing:-.045em}.top-copy .eyebrow{padding-inline:15px;line-height:1.4}.desktop-break{display:none}.gift-orbit{margin-bottom:18px;transform:scale(.9)}.eyebrow{font-size:.63rem;letter-spacing:.16em}.celebration-screen{min-height:max(100dvh,760px);padding-top:max(82px,calc(env(safe-area-inset-top) + 66px));padding-bottom:max(110px,calc(env(safe-area-inset-bottom) + 90px));overflow:visible}.card-stage{width:100%;margin-top:18px;padding-bottom:72px}.birthday-card{min-height:0;padding:32px 20px 34px;border-radius:23px;pointer-events:none;transform:none!important;transition:none;transform-style:flat;-webkit-backdrop-filter:blur(10px) saturate(110%);backdrop-filter:blur(10px) saturate(110%)}.mini-label{margin-bottom:15px}.message{font-size:clamp(.98rem,4.3vw,1.08rem);line-height:1.55}.signature{margin-top:20px}.signature{flex-wrap:wrap;gap:5px 8px}.signature span{width:100%}.cake{right:-12px;bottom:-24px;transform:scale(.62) rotate(4deg)}.cake:hover{transform:scale(.65) rotate(1deg)}.cake-hint{bottom:-1px;font-size:.62rem}.celebrate-button{flex-shrink:0;margin-top:2px;margin-bottom:0}.balloon-tip{display:none}.floating-controls{top:max(12px,calc(env(safe-area-inset-top) + 8px));right:12px}.floating-controls button{width:38px;height:38px}.balloon-wrap{width:65px;will-change:transform}.balloon-wrap.depth-0{display:none}.balloon-3d{box-shadow:inset -9px -11px 16px #24052340,inset 6px 5px 10px #ffffff2e,0 10px 18px #07020c40}.confetti-piece{box-shadow:none;will-change:transform,opacity}}@media(max-width:370px){.top-copy{padding-inline:27px}.top-copy h1{font-size:2.08rem}.top-copy .eyebrow{font-size:.55rem}.birthday-card{padding-inline:17px}.message{font-size:.96rem}}@media(max-height:760px)and (min-width:621px){.celebration-screen{padding-top:27px;padding-bottom:25px}.top-copy h1{font-size:clamp(2.7rem,5.5vw,4.5rem)}.card-stage{margin-top:17px}.birthday-card{min-height:290px;padding-top:34px;padding-bottom:28px}.celebrate-button{margin-top:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.balloon-field{display:none}}
