.party-invite{display:flex;align-items:center;gap:15px;text-align:left;margin:25px auto 12px;padding:12px 17px 12px 12px;max-width:400px;background:#fbefdf;color:#554257;border:1px solid #f4dfcc;border-radius:18px;box-shadow:0 15px 40px #040d2426;transition:transform .2s}.party-invite:hover{transform:translateY(-3px) rotate(-1deg)}.party-invite img{border-radius:12px;flex-shrink:0}.party-invite>span{display:grid;gap:5px}.party-invite small{font-size:8px;letter-spacing:1.8px;color:#80566a}.party-invite strong{font-family:Georgia,serif;font-size:18px;font-weight:400}.party-invite span span{font-size:10px}.party-invite>b{color:#a879b1;font-size:23px}.party-footer{margin-left:12px;color:#f3c4dc}.party-open{overflow:hidden}
#birthday-party{box-sizing:border-box;width:min(850px,calc(100% - 24px));max-width:850px;max-height:calc(100dvh - 28px);padding:32px 48px 24px;border:1px solid #e8d3dc;border-radius:28px;background:radial-gradient(ellipse at 0 20%,#e6d8ed88,transparent 50%),radial-gradient(ellipse at 100% 50%,#f9dfc5aa,transparent 50%),#fff8ee;color:#533e54;overflow:auto;box-shadow:0 25px 110px #080f32aa;text-align:center;scrollbar-width:thin;scrollbar-color:#c9b1cf #fff8ee}#birthday-party::backdrop{background:#0b1424ba;backdrop-filter:blur(9px)}#birthday-party button{font-family:'DM Sans',Arial,sans-serif}#birthday-party button:focus-visible{outline:3px solid #7b568d;outline-offset:4px}.party-close{position:absolute;right:15px;top:12px;width:36px;height:36px;border:1px solid #d9c5d5;border-radius:50%;background:#fff8ee;color:#644a6a;font-size:25px;z-index:2}.party-topline{display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;padding-right:20px;color:#876c83;border-bottom:1px solid #d4bdcf80;padding-bottom:16px}.party-topline span{color:#a87a38}.party-heading{padding-top:24px}.party-kicker{font-size:8px;letter-spacing:2px;color:#946a81}.party-heading h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(44px,7vw,66px);line-height:1.02;font-weight:400;letter-spacing:-2px;margin:12px 0 16px}.party-heading h2 em{color:#a66d88;font-weight:400}.party-heading>p:last-child{font-size:12px;line-height:1.8;color:#806e7e}.party-scene{display:flex;justify-content:center;align-items:flex-end;gap:20px;margin:30px auto 18px}.party-postcard{position:relative;flex-shrink:0;background:#fffdf8;padding:10px 10px 15px;margin:0;transform:rotate(-4deg);box-shadow:0 10px 24px #7c526f24;border:1px solid #e9d9d7}.party-postcard img{display:block;border-radius:3px;width:180px;height:180px}.party-postcard figcaption{font-family:Georgia,serif;font-style:italic;font-size:10px;padding-top:10px;color:#826477}.party-tape{position:absolute;width:70px;height:22px;top:-10px;left:65px;transform:rotate(3deg);background:#dcc6e2bb;z-index:1}.party-friend{width:145px;max-width:24%;color:#886e83}.party-friend svg{display:block;width:100%;overflow:visible}.party-friend>span{display:block;font-size:7px;letter-spacing:1.3px;line-height:1.7;margin-top:9px}.party-cat-eyes{transform-origin:90px 88px;animation:party-blink 5s infinite}.party-tail{transform-origin:132px 134px;animation:party-tail 3s ease-in-out infinite}.party-speech{max-width:460px;background:#f2e8f3;border:1px solid #e3d3e6;border-radius:18px;padding:16px 20px;margin:25px auto 20px;min-height:99px;position:relative}.party-speech:before{content:'';position:absolute;top:-7px;right:55px;width:13px;height:13px;background:#f2e8f3;border-left:1px solid #e3d3e6;border-top:1px solid #e3d3e6;transform:rotate(45deg)}.party-speech>span{font-size:8px;letter-spacing:1.5px;color:#8b708b}.party-speech p{font-family:Georgia,serif;font-size:17px;line-height:1.5;margin:8px 0 0}.party-cake{position:relative;width:130px;margin:28px auto 10px;padding-top:32px}.party-candles{position:absolute;top:5px;left:37px;display:flex;gap:17px}.party-candles i{width:7px;height:27px;background:repeating-linear-gradient(45deg,#a487bf 0 4px,#ead8f3 4px 8px);border-radius:2px;position:relative}.party-candles i:before{content:'';position:absolute;width:8px;height:13px;left:0;top:-15px;border-radius:80% 20% 60% 40%;background:#edb350;box-shadow:0 0 12px #f8cc7a;animation:party-flame 1s ease-in-out infinite alternate}.party-icing{height:17px;border-radius:9px 9px 4px 4px;background:#d893ac;position:relative;z-index:1}.party-cake-base{height:57px;background:repeating-linear-gradient(0deg,#f1d3a8 0 18px,#fff0d8 18px 23px);border-radius:0 0 8px 8px;font-family:Georgia,serif;font-size:31px;padding-top:5px;color:#926882}.party-cake-base span{font-size:20px}.party-plate{height:7px;background:#cebadb;border-radius:50%;margin:0 -12px}.party-wish{font-size:12px;line-height:1.7;max-width:390px;min-height:40px;margin:12px auto}.party-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.party-actions button{border:1px solid #d8c3dd;background:#fffaf6;color:#725478;border-radius:50px;padding:13px 18px;font-size:11px}.party-actions button:first-child{background:#765882;border-color:#765882;color:#fff6ee;width:100%;max-width:340px;margin:0 calc((100% - 340px)/2)}.party-actions button:hover{filter:brightness(.96)}.party-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #d4bdcf80;margin-top:25px;padding-top:18px;gap:16px;font-size:9px;color:#907b8b}.party-return{border:0;background:none;color:#74557e;font-size:10px;padding:7px 0}.has-wished .party-candles i:before{opacity:0;animation:none}.is-dancing .party-cat-body{transform-origin:90px 162px;animation:party-dance .65s ease-in-out infinite alternate}.is-dancing .party-friend-right .party-cat-body{animation-delay:-.35s}.is-dancing .party-paw{transform-origin:55px 131px;animation:party-paw .4s ease-in-out infinite alternate}.is-dancing .party-postcard{animation:party-card .7s ease-in-out infinite alternate}.party-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:28px}.party-confetti i{position:absolute;left:var(--x);top:-15px;width:7px;height:12px;animation:party-confetti 2.7s var(--delay) ease-in forwards}
@keyframes party-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.05)}}@keyframes party-tail{50%{transform:rotate(12deg)}}@keyframes party-dance{from{transform:translateY(0) rotate(-7deg)}to{transform:translateY(-13px) rotate(7deg)}}@keyframes party-paw{to{transform:rotate(28deg)}}@keyframes party-card{to{transform:rotate(4deg) translateY(-6px)}}@keyframes party-flame{to{transform:scale(.85) rotate(12deg)}}@keyframes party-confetti{to{transform:translateY(900px) rotate(var(--spin));opacity:0}}
@media(max-width:600px){#birthday-party{padding:27px 18px 22px;border-radius:22px}.party-topline{font-size:7px;letter-spacing:1px;padding-right:30px}.party-topline span{display:none}.party-scene{gap:4px;margin-top:25px}.party-postcard{padding:7px 7px 11px}.party-postcard img{width:136px;height:136px}.party-postcard figcaption{font-size:8px;max-width:136px}.party-tape{left:45px;width:55px}.party-friend{width:90px;max-width:25%}.party-friend>span{font-size:6px;letter-spacing:.5px}.party-heading>p:last-child{font-size:11px}.party-speech{padding:13px}.party-speech p{font-size:16px}.party-actions button:first-child{margin:0;width:100%}.party-bottom{flex-direction:column;gap:5px}.party-invite{gap:10px;padding-right:12px}.party-invite strong{font-size:16px}.party-invite>b{display:none}.party-footer{display:block;margin:10px auto}}
@media(prefers-reduced-motion:reduce){#birthday-party *,#birthday-party *:before{animation:none!important;transition:none!important}.party-invite:hover{transform:none}}
.party-postcard img{width:230px;height:auto}.party-postcard .party-tape{left:calc(50% - 35px)}.party-invite img{width:76px;height:auto}
@media(max-width:600px){.party-postcard img{width:min(154px,43vw);height:auto}.party-friend{flex:1;min-width:0;max-width:23%}.party-postcard figcaption{max-width:154px}.party-invite img{width:64px;height:auto}}
