.cake-section{position:relative;overflow:hidden}.cake-section .cake{cursor:pointer;transition:filter .3s,transform .3s;outline-offset:15px}.cake-section .cake:hover{filter:drop-shadow(0 0 20px #d79aaf55);transform:scale(.9)}.cake-section .cake:focus-visible{outline:2px solid var(--red)}.candle-smoke{position:absolute;width:12px;height:32px;left:0;top:-32px;background:linear-gradient(transparent,#ad8b9670,transparent);border-radius:50%;filter:blur(4px);opacity:0}.wish-blowing .candle-smoke{animation:wish-smoke 1.4s ease forwards}.wish-blowing .cake{filter:drop-shadow(0 0 35px #d89db66b)}.wish-blowing .flame{animation:wish-flame-out .5s forwards!important}.wish-celebration{position:fixed;inset:0;width:100vw;height:100svh;max-width:none;max-height:none;padding:0;border:0;margin:0;color:var(--ink);background:radial-gradient(ellipse at 50% 25%,#fff4e9ef,#f5dfe3ed 65%,#f0d6dfed);overflow:auto;isolation:isolate}.wish-celebration::backdrop{background:#e6bccb77;backdrop-filter:blur(12px)}.wish-celebration[open]{animation:wish-screen-in .7s ease both}.wish-close{position:fixed;right:25px;top:20px;width:40px;height:40px;border:1px solid #bf8da144;border-radius:50%;background:#fff5f066;color:var(--muted);font-size:25px;z-index:5}.wish-celebration canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.wish-celebration-content{position:relative;z-index:1;min-height:100%;max-width:760px;padding:62px 28px 35px;margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.wish-celebration .eyebrow{margin:0 0 8px;font-size:9px;letter-spacing:2.3px;animation:arrive 1s .3s both}.wish-light{width:105px;height:125px;filter:drop-shadow(0 0 30px #f6cbcc);position:relative;animation:wish-rise 1.8s cubic-bezier(.15,1,.3,1) both,wish-hover 4s 1.8s ease-in-out infinite}.wish-light svg{width:100%;height:100%}.wish-ring{position:absolute;left:50%;top:20%;width:190px;height:190px;border:1px solid #cc9bad44;border-radius:50%;transform:translateX(-50%);animation:wish-ring-expand 2.4s .2s ease-out both;pointer-events:none}.wish-celebration h2{font:400 clamp(39px,6vw,65px)/1.04 'Bodoni Moda',Georgia,serif;letter-spacing:-1.5px;margin:17px 0 22px;animation:arrive 1.3s .55s both}.wish-celebration h2 em{color:var(--red);font-weight:400}.wish-celebration #wish-celebration-message{font-size:12px;line-height:1.9;color:#9c7a85;margin:0 0 22px;animation:arrive 1.1s 1s both}.wish-birthday{font:italic 25px/1.4 'Bodoni Moda',Georgia,serif;color:var(--red);margin:0 0 30px;animation:arrive 1.2s 1.25s both}.wish-birthday span{font-size:1.3em}.wish-celebration .primary{animation:arrive 1s 1.65s both}.wish-last-line{font:italic 17px 'Bodoni Moda',Georgia,serif;color:#a68591;margin:23px 0 0;animation:arrive 1s 1.9s both}.wish-celebration:not([open]){display:none}.wish-complete .cake{filter:drop-shadow(0 0 20px #d4a4b348)}@keyframes wish-flame-out{to{transform:scale(.05) translateY(12px);opacity:0}}@keyframes wish-smoke{20%{opacity:.6}to{opacity:0;transform:translate(-9px,-50px) scale(2.2)}}@keyframes wish-screen-in{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:none}}@keyframes wish-rise{from{opacity:0;transform:translateY(80px) scale(.45)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes wish-hover{50%{transform:translateY(-8px) rotate(3deg)}}@keyframes wish-ring-expand{from{opacity:.8;transform:translateX(-50%) scale(.1)}to{opacity:0;transform:translateX(-50%) scale(3)}}@media(max-width:600px){.wish-celebration-content{padding:62px 22px 35px}.wish-close{top:15px;right:15px;width:34px;height:34px;font-size:22px}.wish-light{width:85px;height:105px}.wish-celebration h2{font-size:43px;letter-spacing:-1px;line-height:1.06}.wish-celebration #wish-celebration-message{font-size:11px;max-width:290px}.wish-birthday{font-size:23px}.wish-celebration .primary{font-size:11px}.wish-last-line{font-size:16px}}@media(max-height:650px){.wish-celebration-content{padding-top:45px}.wish-light{width:70px;height:85px}.wish-celebration h2{font-size:38px;margin:10px 0 16px}.wish-birthday{margin-bottom:20px}.wish-last-line{margin-top:15px}}@media(prefers-reduced-motion:reduce){.wish-celebration *{animation:none!important}.wish-ring{display:none}}
