.birthday-balloons{position:fixed;inset:0;z-index:1200;overflow:hidden;pointer-events:none}
.birthday-balloon{position:absolute;left:var(--left);bottom:-190px;width:var(--size);padding:0;border:0;background:transparent;opacity:.96;animation:birthday-balloon-rise var(--duration) linear var(--delay) both;will-change:transform;user-select:none;-webkit-user-select:none;pointer-events:auto;cursor:pointer;touch-action:manipulation}
.birthday-balloon svg{display:block;width:100%;height:auto;filter:drop-shadow(0 5px 7px #58404920)}
.birthday-balloon--popping{pointer-events:none}
.birthday-balloon--popping svg{animation:birthday-balloon-pop .26s ease-out forwards}
@keyframes birthday-balloon-pop{0%{transform:scale(1);opacity:1}40%{transform:scale(1.28);opacity:1}100%{transform:scale(.35);opacity:0}}
.birthday-balloon--yellow{z-index:2;pointer-events:auto;cursor:pointer;touch-action:manipulation;opacity:1}
.birthday-balloon--yellow:focus-visible{outline:4px solid #634795;outline-offset:4px;border-radius:50%}
.birthday-balloon--yellow:hover svg{filter:drop-shadow(0 0 14px #f5d74b9c)}
@keyframes birthday-balloon-rise{0%{transform:translate3d(0,0,0) rotate(-7deg)}45%{transform:translate3d(0,calc(-54vh - 120px),0) rotate(5deg)}100%{transform:translate3d(var(--drift),calc(-115vh - 300px),0) rotate(-4deg)}}
.birthday-balloon-hint{position:fixed;left:50%;bottom:20px;z-index:1210;transform:translateX(-50%);padding:9px 17px;border:1px solid #e5bd93;border-radius:999px;background:#fffdf2ed;box-shadow:0 6px 25px #56436a24;color:#755340;font:700 14px/1.5 'M PLUS Rounded 1c',sans-serif;white-space:nowrap;pointer-events:none;animation:birthday-hint-appear .5s 1.5s both,birthday-hint-leave .7s 9s forwards}
@keyframes birthday-hint-appear{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes birthday-hint-leave{to{opacity:0;transform:translate(-50%,8px)}}
.birthday-wish[hidden]{display:none!important}
.birthday-wish{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:18px;background:#2d203955;backdrop-filter:blur(3px)}
.birthday-wish-card{position:relative;width:min(100%,430px);padding:26px 22px 30px;border:2px solid #f7d87d;border-radius:28px;background:linear-gradient(150deg,#fff9ec,#fff5f8 70%,#f3efff);box-shadow:0 18px 55px #39253847;text-align:center;animation:birthday-wish-pop .42s cubic-bezier(.16,1.35,.35,1) both}
@keyframes birthday-wish-pop{0%{opacity:0;transform:scale(.65)}70%{opacity:1;transform:scale(1.07)}100%{transform:scale(1)}}
.birthday-wish-card img{display:block;width:min(58%,195px);height:auto;margin:0 auto 7px;object-fit:contain}
.birthday-wish-card p{margin:0;color:#5c4859;font:800 clamp(18px,4.8vw,25px)/1.7 'M PLUS Rounded 1c',sans-serif}
.birthday-wish-close{margin-top:19px;padding:8px 20px;border:1px solid #dca5a6;border-radius:999px;background:#fff;color:#8e5969;font:700 13px 'M PLUS Rounded 1c',sans-serif;cursor:pointer}
.birthday-wish-close:focus-visible{outline:3px solid #634795;outline-offset:3px}
@media(max-width:600px){.birthday-balloon-hint{bottom:15px;font-size:12px;padding:8px 13px}.birthday-wish-card{padding:22px 18px 25px}}
@media(prefers-reduced-motion:reduce){.birthday-balloon:not(.birthday-balloon--yellow){animation:none;opacity:0}.birthday-balloon--yellow{animation:none;left:calc(50% - 48px);bottom:110px}.birthday-balloon-hint{animation:none}.birthday-wish-card{animation:none}}
