body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:radial-gradient(circle at top,#53248f,#290145 55%,#050009);text-align:center;color:#f0e6ff;scroll-behavior:smooth;overflow:hidden;height:100vh;height:100dvh;width:100vw;width:100dvw;position:fixed;animation:fadeIn .8s ease-out forwards;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:pan-y}html{margin:0;padding:0;overflow:hidden;height:100vh;height:100dvh;width:100vw;width:100dvw}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}#root{width:100vw;width:100dvw;height:100vh;height:100dvh;overflow:hidden;margin:0;padding:0}.app{position:fixed;top:0;left:0;width:100vw;width:100dvw;height:100vh;height:100dvh;overflow:hidden;margin:0;padding:0}.animated-bg{position:absolute;inset:-20%;background:radial-gradient(circle at 10% 0%,rgba(255,180,250,.08),transparent 60%),radial-gradient(circle at 90% 0%,rgba(255,150,170,.1),transparent 55%),radial-gradient(circle at 20% 100%,rgba(123,97,255,.07),transparent 55%),radial-gradient(circle at 80% 100%,rgba(255,98,166,.08),transparent 55%),radial-gradient(circle at 50% 50%,rgba(255,107,181,.05),transparent 50%);filter:blur(0);opacity:.95;pointer-events:none;z-index:0;animation:bgPulse 8s ease-in-out infinite}@keyframes bgPulse{0%,to{opacity:.9}50%{opacity:1}}.floating-party-elements{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}.party-element{position:absolute;bottom:-50px;opacity:.4;animation:floatPartyElement linear infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}@keyframes floatPartyElement{0%{bottom:-10%;transform:translate(0) rotate(0) scale(.8);opacity:0}10%{opacity:.5}50%{transform:translate(30px) rotate(180deg) scale(1.1);opacity:.4}90%{opacity:.3}to{bottom:110%;transform:translate(-20px) rotate(360deg) scale(.9);opacity:0}}.global-sparkles{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}.global-sparkle{position:absolute;font-size:.8rem;color:gold;opacity:0;animation:globalTwinkle 4s ease-in-out infinite;text-shadow:0 0 10px #FFD700}@keyframes globalTwinkle{0%,to{opacity:0;transform:scale(.5) rotate(0)}50%{opacity:.7;transform:scale(1.3) rotate(180deg)}}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{width:0;height:0;background:transparent}.page{height:100vh;height:100dvh;width:100vw;width:100dvw;position:absolute;top:0;left:0;opacity:0;visibility:hidden;transform:translate(100%);transition:all .6s cubic-bezier(.22,1,.36,1);padding:env(safe-area-inset-top,20px) env(safe-area-inset-right,20px) env(safe-area-inset-bottom,20px) env(safe-area-inset-left,20px);display:flex;flex-direction:column;justify-content:center;align-items:center;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box}.page.active{opacity:1;visibility:visible;transform:translate(0);position:relative}.page.exit-left{transform:translate(-100%);opacity:0}.test-btn{position:fixed;left:16px;top:16px;z-index:20;background:#4caf50;color:#fff;border:none;padding:10px 14px;border-radius:999px;cursor:pointer;font-size:12px;box-shadow:0 4px 12px #4caf504d;transition:transform .2s}.test-btn:hover{transform:scale(1.05)}.hero{padding:15px 20px;max-width:850px;margin:0 auto;text-align:center;position:relative}.hero-decoration{position:absolute;top:-20px;left:50%;transform:translate(-50%);display:flex;gap:30px}.hero-emoji{font-size:1.8rem;animation:heroEmojiFloat 3s ease-in-out infinite;filter:drop-shadow(0 2px 5px rgba(0,0,0,.2))}.hero-emoji-1{animation-delay:0s}.hero-emoji-2{animation-delay:.5s}.hero-emoji-3{animation-delay:1s}@keyframes heroEmojiFloat{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-10px) rotate(5deg)}}.hero h1{font-size:2.4rem;margin-bottom:12px;font-weight:700;color:#fff5ff;line-height:1.3;text-shadow:0 2px 10px rgba(0,0,0,.3),0 0 30px rgba(255,107,181,.2);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px}.title-emoji-left,.title-emoji-right{animation:titleEmojiBounce 1s ease-in-out infinite}.title-emoji-right{animation-delay:.5s}@keyframes titleEmojiBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.sparkle-emoji{animation:sparkleRotate 3s linear infinite}.cake-emoji{animation:cakeBounce 2s ease-in-out infinite;font-size:1.2em}@keyframes cakeBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.1)}}.hero-subtitle{font-size:1.1rem;color:#d4b5ff;font-style:italic;margin:0;text-shadow:0 1px 4px rgba(0,0,0,.3);display:flex;justify-content:center;align-items:center;gap:8px}.subtitle-heart{animation:heartPulse 1.5s ease-in-out infinite;color:#ff6bb5}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.highlight{background:linear-gradient(45deg,#0ff,#06aac6,#0ff);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800;animation:highlightShimmer 3s ease infinite;filter:drop-shadow(0 0 10px rgba(255,107,181,.4))}@keyframes highlightShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.teaser{padding:12px 20px;max-width:750px;margin:0 auto;text-align:center}#teaserHeading{font-size:1.4rem;background:linear-gradient(45deg,#ff6bb5,#c480ff,#f9d,#ff6bb5);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 4s ease infinite;margin:0 0 10px;line-height:1.4;display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.teaser-emoji{-webkit-text-fill-color:initial;animation:teaserEmojiPulse 2s ease-in-out infinite}@keyframes teaserEmojiPulse{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.2) rotate(10deg)}}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.teaser-hint{font-size:1rem;color:#c8b5e1;font-style:italic;opacity:.95;margin:0;text-shadow:0 1px 3px rgba(0,0,0,.2);display:flex;justify-content:center;align-items:center;gap:8px}.hint-emoji{animation:hintEmojiSpin 3s linear infinite}@keyframes hintEmojiSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#surpriseBtn{background:linear-gradient(135deg,#ff6bb5,#f9d);color:#fff;border:none;padding:12px 30px;font-size:1.1rem;border-radius:30px;cursor:pointer;margin:20px;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s;box-shadow:0 12px 24px #ff6bb559;font-weight:600}#surpriseBtn:focus{outline:2px solid #ffb3d9;outline-offset:2px}#surpriseBtn:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 16px 32px #ff6bb573}#surpriseBtn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(20%)}#surpriseBtn:not(:disabled){animation:pulse 2s ease-in-out infinite}.celebrate-btn{background:linear-gradient(135deg,#ff6bb5,#f9d,#ff6bb5);background-size:200% 200%;color:#fff;border:none;padding:16px 42px;font-size:1.25rem;font-weight:700;border-radius:50px;cursor:pointer;margin:18px auto;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 12px 35px #ff6bb573,0 0 20px #ff6bb533;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px}.btn-emoji-left,.btn-emoji-right{animation:btnEmojiWiggle 1.5s ease-in-out infinite}.btn-emoji-right{animation-delay:.75s}@keyframes btnEmojiWiggle{0%,to{transform:rotate(-10deg) scale(1)}50%{transform:rotate(10deg) scale(1.15)}}.celebrate-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .6s}.celebrate-btn:hover:before{left:100%}.celebrate-btn:hover{transform:translateY(-4px) scale(1.06);box-shadow:0 18px 45px #ff6bb58c,0 0 30px #ff6bb54d;background-position:100% 50%}.celebrate-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(30%);background:linear-gradient(135deg,#5a4a7a,#6a5a8a)}.celebrate-btn:not(:disabled){animation:pulse-celebrate 2s ease-in-out infinite,btnBgShift 3s ease infinite}@keyframes pulse-celebrate{0%,to{box-shadow:0 12px 35px #ff6bb566,0 0 20px #ff6bb533}50%{box-shadow:0 18px 45px #ff6bb58c,0 0 35px #ff6bb559}}@keyframes btnBgShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes pulse{0%,to{box-shadow:0 12px 24px #ff6bb54d}50%{box-shadow:0 16px 32px #ff6bb573}}.back-btn{position:fixed;top:80px;left:20px;background:#ff6bb533;color:#ff6bb5;border:2px solid #ff6bb5;padding:12px 24px;font-size:1rem;border-radius:30px;cursor:pointer;z-index:15;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);-webkit-backdrop-filter:blur(15px) saturate(130%);backdrop-filter:blur(15px) saturate(130%);box-shadow:0 4px 15px #ff6bb533,inset 0 0 20px #ff6bb51a;font-weight:600;display:flex;align-items:center;gap:5px}.back-arrow{transition:transform .3s ease}.back-btn:hover{background:linear-gradient(135deg,#ff6bb5,#f9d);color:#fff;border-color:transparent;transform:translate(-8px) scale(1.05);box-shadow:0 8px 25px #ff6bb573}.back-btn:hover .back-arrow{transform:translate(-3px)}.page-nav-btn{background:linear-gradient(135deg,#ff6bb5,#f9d,#ff6bb5);background-size:200% 200%;color:#fff;border:none;padding:16px 40px;font-size:1.2rem;border-radius:35px;cursor:pointer;margin:50px auto;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 10px 30px #ff6bb566,0 0 15px #ff6bb533;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;animation:navBtnPulse 2s ease-in-out infinite}.nav-emoji{animation:navEmojiPulse 1.5s ease-in-out infinite}@keyframes navEmojiPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes navBtnPulse{0%,to{box-shadow:0 10px 30px #ff6bb566,0 0 15px #ff6bb533}50%{box-shadow:0 15px 40px #ff6bb580,0 0 25px #ff6bb54d}}.page-nav-btn:hover{transform:translateY(-5px) scale(1.06);box-shadow:0 18px 45px #ff6bb58c,0 0 30px #ff6bb559;background-position:100% 50%}.final{text-align:center;padding:45px 25px;max-width:750px;margin:40px auto 20px;position:relative}.final-decorations{display:flex;justify-content:center;gap:20px;margin-bottom:15px}.final-deco{font-size:2rem;animation:finalDecoFloat 3s ease-in-out infinite;filter:drop-shadow(0 2px 5px rgba(0,0,0,.2))}.final-deco:nth-child(1){animation-delay:0s}.final-deco:nth-child(2){animation-delay:.3s}.final-deco:nth-child(3){animation-delay:.6s}@keyframes finalDecoFloat{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-10px) rotate(5deg)}}.final-message{font-size:1.6rem;background:linear-gradient(45deg,#ff6bb5,#f9d,#c480ff,#ff6bb5);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 4s ease infinite;margin-bottom:12px;margin-top:15px;font-weight:700;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.final-heart{-webkit-text-fill-color:initial;animation:finalHeartBeat 1.5s ease-in-out infinite}@keyframes finalHeartBeat{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.final-subtitle{font-size:1rem;color:#d4b5e8;font-style:italic;text-shadow:0 1px 5px rgba(0,0,0,.2);display:flex;justify-content:center;align-items:center;gap:8px}.final-sparkle{animation:finalSparkle 2s ease-in-out infinite}@keyframes finalSparkle{0%,to{transform:scale(1) rotate(0);opacity:.8}50%{transform:scale(1.3) rotate(180deg);opacity:1}}.final-emojis{display:flex;justify-content:center;gap:15px;margin-top:20px;font-size:1.8rem}.final-emojis span{animation:finalEmojiDance 2s ease-in-out infinite;filter:drop-shadow(0 2px 5px rgba(0,0,0,.2))}.final-emojis span:nth-child(1){animation-delay:0s}.final-emojis span:nth-child(2){animation-delay:.2s}.final-emojis span:nth-child(3){animation-delay:.4s}.final-emojis span:nth-child(4){animation-delay:.6s}.final-emojis span:nth-child(5){animation-delay:.8s}@keyframes finalEmojiDance{0%,to{transform:translateY(0) rotate(0) scale(1)}25%{transform:translateY(-8px) rotate(-10deg) scale(1.1)}75%{transform:translateY(-5px) rotate(10deg) scale(1.05)}}@media(max-width:600px){.hero h1{font-size:2.2rem;padding:0 10px}.hero p{font-size:1rem;padding:0 10px}.back-btn{top:70px;left:15px;padding:8px 16px;font-size:.9rem}.page-nav-btn{font-size:1.1rem;padding:12px 30px;margin:30px auto}#teaserHeading{font-size:1.3rem;padding:0 15px}.teaser-hint{padding:0 15px}#surpriseBtn{font-size:1rem;padding:10px 25px}.test-btn{left:10px;top:10px;padding:8px 12px;font-size:11px}.final{padding:30px 15px}.final-message{font-size:1.6rem}.final-subtitle{font-size:1rem}}@media(min-width:601px)and (max-width:1024px){.hero h1{font-size:2.5rem}.page{padding:15px}}@media(min-width:1400px){.hero h1{font-size:3.2rem}.hero p{font-size:1.25rem}}@media(hover:none)and (pointer:coarse){button{min-height:44px;min-width:44px}.back-btn,.page-nav-btn,#surpriseBtn{padding:14px 30px}}@supports (-webkit-touch-callout: none){.app,.page,body{height:-webkit-fill-available}}@media(max-width:932px)and (orientation:landscape){.page{padding:20px 10px 10px;justify-content:flex-start}.hero{padding:10px}.hero h1{font-size:2rem;margin-bottom:10px}.hero p{font-size:1rem}}@media only screen and (max-width:428px){.page{padding:12px;padding-top:max(env(safe-area-inset-top,15px),15px);padding-bottom:max(env(safe-area-inset-bottom,15px),15px)}.hero{padding:8px 15px}.hero h1{font-size:1.8rem;line-height:1.2;margin-bottom:8px}.hero p{font-size:.95rem}.teaser{padding:8px 15px}#teaserHeading{font-size:1.1rem;margin-bottom:6px}.teaser-hint{font-size:.85rem}.celebrate-btn,.page-nav-btn{padding:12px 28px;font-size:1.1rem;margin:12px auto}.back-btn{top:max(env(safe-area-inset-top,12px),70px);left:12px;padding:8px 16px;font-size:.9rem}}@media only screen and (max-width:375px){.page{padding:10px;padding-top:max(env(safe-area-inset-top,12px),12px);padding-bottom:max(env(safe-area-inset-bottom,12px),12px)}.hero{padding:6px 12px}.hero h1{font-size:1.6rem;margin-bottom:6px}.hero p{font-size:.9rem}.teaser{padding:6px 12px}#teaserHeading{font-size:1rem;margin-bottom:5px}.teaser-hint{font-size:.8rem}.celebrate-btn,.page-nav-btn{padding:11px 24px;font-size:1rem;margin:10px auto}}.celebration-page{position:fixed;top:0;left:0;width:100vw;width:100dvw;height:100vh;height:100dvh;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:20px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;margin:0;box-sizing:border-box}.floating-hearts-bg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.heart-float{position:absolute;font-size:1.5rem;opacity:.4;animation:floatHeart linear infinite;filter:drop-shadow(0 0 5px currentColor)}@keyframes floatHeart{0%{bottom:-10%;transform:translate(0) rotate(0) scale(.8);opacity:0}10%{opacity:.5}50%{transform:translate(30px) rotate(180deg) scale(1.1);opacity:.6}to{bottom:110%;transform:translate(-30px) rotate(360deg) scale(.9);opacity:0}}.floating-emojis-bg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.emoji-float{position:absolute;opacity:.3;animation:floatEmoji linear infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}@keyframes floatEmoji{0%{bottom:-15%;transform:translate(0) rotate(0) scale(.5);opacity:0}15%{opacity:.4;transform:translate(20px) rotate(45deg) scale(1)}50%{transform:translate(-30px) rotate(180deg) scale(1.1)}85%{opacity:.3}to{bottom:115%;transform:translate(15px) rotate(360deg) scale(.7);opacity:0}}.sparkle-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.ambient-sparkle{position:absolute;font-size:.8rem;color:gold;opacity:0;animation:ambientTwinkle 3s ease-in-out infinite;text-shadow:0 0 10px #FFD700}@keyframes ambientTwinkle{0%,to{opacity:0;transform:scale(.5) rotate(0)}50%{opacity:.8;transform:scale(1.2) rotate(180deg)}}.light-beam{position:absolute;top:0;width:60px;height:100%;transform-origin:top center;pointer-events:none;z-index:2}.slides-container{position:relative;z-index:10;max-width:600px;width:100%;padding:40px;background:#4b2a7ae6;border-radius:30px;box-shadow:0 20px 60px #00000080,0 0 40px #ff6bb533,inset 0 1px #ffffff1a;-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border:2px solid rgba(255,107,181,.3);margin-top:20px}.slide-content{text-align:center;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.slide-sub-icons{position:absolute;top:0;left:50%;transform:translate(-50%);width:200px;height:100px}.sub-icon{position:absolute;font-size:1.5rem;animation:orbitIcon 4s ease-in-out infinite;opacity:.8}.sub-icon:nth-child(1){left:0;animation-delay:0s}.sub-icon:nth-child(2){left:50%;transform:translate(-50%);animation-delay:.5s}.sub-icon:nth-child(3){right:0;animation-delay:1s}@keyframes orbitIcon{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-15px) scale(1.2)}}.slide-icon{font-size:5rem;margin-bottom:20px;animation:iconBounce 2s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(255,255,255,.5))}@keyframes iconBounce{0%,to{transform:scale(1) rotate(-5deg)}25%{transform:scale(1.1) rotate(5deg)}50%{transform:scale(1.05) rotate(-3deg)}75%{transform:scale(1.15) rotate(3deg)}}.slide-text{font-size:2rem;color:#fff5ff;margin-bottom:30px;line-height:1.4;font-weight:700;text-shadow:0 2px 10px rgba(0,0,0,.3),0 0 30px rgba(255,107,181,.3);background:linear-gradient(135deg,#fff,#ffd9ec);-webkit-background-clip:text;background-clip:text}.question-options{display:flex;gap:20px;margin-top:20px}.option-button{padding:18px 45px;font-size:1.3rem;font-weight:700;border:none;border-radius:50px;cursor:pointer;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 8px 25px #0003;position:relative;overflow:hidden}.option-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.option-button:hover:before{left:100%}.yes-button{background:linear-gradient(135deg,#ff6bb5,#d81b60);color:#fff;animation:pulseYes 2s ease-in-out infinite}@keyframes pulseYes{0%,to{box-shadow:0 8px 25px #ff6bb566}50%{box-shadow:0 8px 40px #ff6bb5b3}}.yes-button:hover{background:linear-gradient(135deg,#ff85c5,#e91e63);transform:translateY(-5px) scale(1.08);box-shadow:0 15px 35px #ff6bb599}.no-button{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.no-button:hover{background:linear-gradient(135deg,#ab47bc,#8e24aa);transform:translateY(-5px) scale(1.08);box-shadow:0 15px 35px #9c27b080}.next-button{padding:18px 55px;font-size:1.4rem;font-weight:700;background:linear-gradient(135deg,#ff6bb5,#f9d);color:#fff;border:none;border-radius:50px;cursor:pointer;box-shadow:0 10px 30px #ff6bb580,0 0 20px #ff6bb54d;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);margin-top:20px;position:relative;overflow:hidden}.next-button:after{content:"✨";position:absolute;right:20px;animation:sparkleRotate 2s linear infinite}@keyframes sparkleRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.next-button:hover{transform:translateY(-5px) scale(1.08);box-shadow:0 15px 40px #ff6bb599,0 0 30px #ff6bb566}.slide-progress{display:flex;justify-content:center;gap:15px;margin-top:30px}.progress-dot{width:30px;height:30px;border-radius:50%;background:#c896dc4d;transition:all .4s cubic-bezier(.68,-.55,.265,1.55);display:flex;align-items:center;justify-content:center;font-size:.8rem;color:#ffffff80}.progress-dot.active{background:linear-gradient(135deg,#ff6bb5,#f9d);transform:scale(1.3);box-shadow:0 0 20px #ff6bb5cc;font-size:1rem}.progress-dot.completed{background:linear-gradient(135deg,#60d399,#4caf50);color:#fff;font-weight:700}.celebration-buttons{position:relative;z-index:10;max-width:800px;width:100%;padding:10px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;margin-bottom:10px}.celebration-title{font-size:2.5rem;margin-bottom:8px;margin-top:10px;background:linear-gradient(135deg,#ff6bb5,#f9d,#ff6bb5);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientTitle 3s ease infinite;text-shadow:none;filter:drop-shadow(0 2px 10px rgba(255,107,181,.5));display:flex;align-items:center;gap:15px}.title-emoji{-webkit-text-fill-color:initial;animation:emojiWiggle 1s ease-in-out infinite}.title-emoji:nth-child(3){animation-delay:.5s}@keyframes emojiWiggle{0%,to{transform:rotate(-10deg) scale(1)}50%{transform:rotate(10deg) scale(1.1)}}@keyframes gradientTitle{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.celebration-subtitle{font-size:1.1rem;color:#d4b5ff;margin-bottom:20px;animation:subtitlePulse 2s ease-in-out infinite}@keyframes subtitlePulse{0%,to{opacity:.8}50%{opacity:1}}.celebration-floating-decors{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.celebration-floating-decor{position:absolute;font-size:2rem;animation:floatDecor 4s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,255,255,.3))}@keyframes floatDecor{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(15deg)}}.buttons-grid{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:15px;width:100%;max-width:420px}.action-button{padding:16px 30px;font-size:1.1rem;font-weight:700;border:none;border-radius:60px;cursor:pointer;transition:all .4s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 10px 30px #0003;color:#fff;position:relative;overflow:hidden;width:100%;min-width:300px;max-width:380px;display:flex;align-items:center;justify-content:center;gap:10px}.btn-emoji{font-size:1.4rem;animation:btnEmojiPulse 1.5s ease-in-out infinite}@keyframes btnEmojiPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.btn-sparkle{font-size:1rem;animation:btnSparkle 2s ease-in-out infinite;opacity:.8}@keyframes btnSparkle{0%,to{opacity:.5;transform:rotate(0) scale(.8)}50%{opacity:1;transform:rotate(180deg) scale(1.2)}}.action-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .6s}.action-button:hover:before{left:100%}.action-button:hover:not(:disabled){transform:translateY(-6px) scale(1.05);box-shadow:0 20px 50px #0000004d}.lights-button{background:linear-gradient(135deg,gold,#ffed4e,#ffc107);color:#333;box-shadow:0 10px 30px #ffd70080,0 0 40px #ffd7004d;animation:lightsGlow 2s ease-in-out infinite}@keyframes lightsGlow{0%,to{box-shadow:0 10px 30px #ffd70080,0 0 40px #ffd7004d}50%{box-shadow:0 10px 40px #ffd700b3,0 0 60px #ffd70080}}.music-button{background:linear-gradient(135deg,#e91e63,#d81b60,#c2185b);animation:musicPulse 1s ease-in-out infinite}@keyframes musicPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.decorate-button{background:linear-gradient(135deg,#ff6b9d,#f06292,#ec407a)}.balloons-button{background:linear-gradient(135deg,#9c27b0,#8e24aa,#7b1fa2)}.message-button{background:linear-gradient(135deg,#ff5722,#ff6f00,#f57c00);font-size:1rem;animation:messageGlow 2s ease-in-out infinite}@keyframes messageGlow{0%,to{box-shadow:0 10px 30px #ff572280,0 0 20px #ff57224d}50%{box-shadow:0 15px 45px #ff5722b3,0 0 40px #ff572280}}.decorations-container{position:relative;width:100%;max-width:1200px;flex:1;display:flex;flex-direction:column;align-items:center;z-index:5;pointer-events:none;padding-bottom:20px}.string-lights{position:absolute;top:0;left:0;width:100%;height:60px;z-index:10}.lights-row-2{position:absolute;top:25px;width:100%}.light{position:absolute;top:10px;width:18px;height:18px;border-radius:50%;animation:twinkle 1.5s ease-in-out infinite;box-shadow:0 0 20px currentColor,0 0 40px currentColor}.light-0{background-color:#ff4757;color:#ff4757}.light-1{background-color:gold;color:gold}.light-2{background-color:#00d2ff;color:#00d2ff}.light-3{background-color:#7bed9f;color:#7bed9f}.light-4{background-color:#ff6b9d;color:#ff6b9d}@keyframes twinkle{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 20px currentColor,0 0 40px currentColor}50%{opacity:.4;transform:scale(.7);box-shadow:0 0 8px currentColor}}.bunting{position:absolute;top:60px;left:0;width:100%;padding:5px 10px;z-index:6;display:flex;flex-direction:column;justify-content:center;align-items:center}.bunting-string{display:flex;justify-content:center;align-items:flex-start;gap:3px;flex-wrap:nowrap}.bunting-flag{width:0;height:0;border-left:18px solid transparent;border-right:18px solid transparent;position:relative;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;padding-top:28px;animation:flagSway 3s ease-in-out infinite;text-shadow:2px 2px 4px rgba(0,0,0,.5);filter:drop-shadow(0 3px 5px rgba(0,0,0,.3))}.bunting-flag.emoji-flag{border:none;font-size:1.5rem;padding-top:0;animation:emojiFlag 2s ease-in-out infinite}@keyframes emojiFlag{0%,to{transform:scale(1) rotate(-5deg)}50%{transform:scale(1.2) rotate(5deg)}}.flag-0{border-top:32px solid #ff6b9d;animation-delay:0s}.flag-1{border-top:32px solid #a78bfa;animation-delay:.1s}.flag-2{border-top:32px solid #60d399;animation-delay:.2s}.flag-3{border-top:32px solid #ffc837;animation-delay:.3s}@keyframes flagSway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.streamers{position:absolute;top:50px;width:100%;height:150px;pointer-events:none}.streamer{position:absolute;width:8px;height:120px;border-radius:4px;opacity:.7;animation:streamerWave 3s ease-in-out infinite;transform-origin:top center}@keyframes streamerWave{0%,to{transform:rotate(-10deg) scaleY(1)}50%{transform:rotate(10deg) scaleY(1.1)}}.cake-container{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:4;opacity:0}.cake{position:relative;display:flex;flex-direction:column;align-items:center}.cake-sparkles{position:absolute;top:-60px;width:200px;height:60px;display:flex;justify-content:space-around}.cake-sparkle{animation:cakeSparkle 1.5s ease-in-out infinite;font-size:1.2rem}@keyframes cakeSparkle{0%,to{opacity:0;transform:translateY(10px) scale(.5)}50%{opacity:1;transform:translateY(-10px) scale(1.2)}}.cake-layer{border-radius:12px;position:relative;box-shadow:0 6px 15px #00000040,inset 0 2px #ffffff4d}.layer-1{width:130px;height:45px;background:linear-gradient(135deg,#ff9a9e,#fecfef);z-index:3}.layer-2{width:155px;height:45px;background:linear-gradient(135deg,#a18cd1,#fbc2eb);z-index:2}.layer-3{width:180px;height:45px;background:linear-gradient(135deg,#ffecd2,#fcb69f);z-index:1}.cake-candles{display:flex;gap:12px;position:absolute;top:-50px;z-index:4}.candle{display:flex;flex-direction:column;align-items:center;animation:candleGlow 2s ease-in-out infinite}@keyframes candleGlow{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}.flame{width:12px;height:18px;background:linear-gradient(to top,#ff6b35,#fa0,#fe0);border-radius:50%/60% 60% 40% 40%;animation:flicker .2s ease-in-out infinite alternate;box-shadow:0 0 15px #ffaa00e6,0 0 30px #fa09,0 -5px 20px #fe06}.flame-glow{position:absolute;top:-5px;width:30px;height:30px;background:radial-gradient(circle,rgba(255,170,0,.4),transparent);border-radius:50%;animation:glowPulse 1s ease-in-out infinite}@keyframes glowPulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.3);opacity:.8}}@keyframes flicker{0%{transform:scaleY(1) scaleX(1) rotate(-2deg)}to{transform:scaleY(1.15) scaleX(.85) rotate(2deg)}}.wick{width:4px;height:22px;background:linear-gradient(to bottom,#5d4e37,#8b7355);margin-top:-3px;border-radius:2px}.cake-decoration{position:absolute;top:-25px;left:50%;transform:translate(-50%)}.cake-emoji{font-size:2.5rem;animation:cakeEmoji 2s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,255,255,.5))}@keyframes cakeEmoji{0%,to{transform:scale(1) rotate(-5deg)}50%{transform:scale(1.1) rotate(5deg)}}.decoration-balloons{position:absolute;bottom:200px;left:0;width:100%;height:250px;z-index:3;display:flex;align-items:flex-end;justify-content:center}.balloon{position:absolute;bottom:0;animation:balloonFloat 4s ease-in-out infinite;transform-origin:center bottom}.balloon-body{width:65px;height:85px;border-radius:50%/60% 60% 40% 40%;position:relative;box-shadow:inset -15px -15px 30px #00000026,0 8px 20px #0000004d;transition:transform .3s ease}.balloon-shine{position:absolute;top:15%;left:20%;width:20px;height:25px;background:#ffffff80;border-radius:50%;filter:blur(3px)}.balloon-emoji{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;opacity:.8}.balloon:hover .balloon-body{transform:scale(1.15)}.balloon-0 .balloon-body{background:linear-gradient(135deg,#ff4081,#f50057)}.balloon-1 .balloon-body{background:linear-gradient(135deg,#00bcd4,#00acc1)}.balloon-2 .balloon-body{background:linear-gradient(135deg,#ffeb3b,#ffc107)}.balloon-3 .balloon-body{background:linear-gradient(135deg,#9c27b0,#7b1fa2)}.balloon-4 .balloon-body{background:linear-gradient(135deg,#4caf50,#43a047)}.balloon-string{width:2px;height:90px;background:linear-gradient(to bottom,#64646480,#64646433);margin:0 auto;position:relative;animation:stringWave 2s ease-in-out infinite}@keyframes stringWave{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes balloonFloat{0%,to{transform:translateY(0) translate(0) rotate(0)}25%{transform:translateY(-40px) translate(20px) rotate(5deg)}50%{transform:translateY(-60px) translate(-15px) rotate(-3deg)}75%{transform:translateY(-35px) translate(15px) rotate(3deg)}}@media(max-width:768px){.celebration-title{font-size:1.8rem;gap:10px}.slide-text{font-size:1.4rem}.slide-icon{font-size:4rem}.action-button{padding:14px 24px;font-size:1rem}.bunting-flag{border-left:14px solid transparent;border-right:14px solid transparent;font-size:.85rem}.flag-0,.flag-1,.flag-2,.flag-3{border-top-width:28px}.balloon-body{width:55px;height:72px}.cake{transform:scale(.85)}}@media(max-width:480px){.celebration-page{padding:15px;padding-top:max(env(safe-area-inset-top),15px)}.slides-container{padding:25px 18px;max-width:100%}.slide-text{font-size:1.2rem;padding:0 10px}.slide-icon{font-size:3.5rem}.option-button{padding:14px 30px;font-size:1rem}.next-button{padding:14px 40px;font-size:1.1rem}.celebration-title{font-size:1.5rem;flex-direction:column;gap:5px}.action-button{padding:14px 22px;font-size:.95rem;min-width:280px}.bunting-flag{border-left:12px solid transparent;border-right:12px solid transparent;font-size:.7rem;padding-top:22px}.flag-0,.flag-1,.flag-2,.flag-3{border-top-width:24px}.bunting-flag.emoji-flag{font-size:1.2rem}.cake{transform:scale(.7)}.decoration-balloons{height:180px}}@media(max-width:375px){.celebration-title{font-size:1.3rem}.slide-text{font-size:1.1rem}.action-button{padding:12px 18px;font-size:.9rem;min-width:260px}.option-button{padding:12px 24px;font-size:.95rem}.cake{transform:scale(.6)}}@supports (-webkit-touch-callout: none){.celebration-page{height:-webkit-fill-available}}@media(prefers-reduced-motion:reduce){.heart-float,.emoji-float,.ambient-sparkle,.slide-icon,.bunting-flag,.balloon,.flame,.light{animation:none}}.confetti-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;background:transparent}.countdown{padding:15px 20px;max-width:650px;margin:0 auto}.flip-timer{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;perspective:1000px}.digit{display:flex;flex-direction:column;align-items:center;gap:8px}.card{width:75px;height:85px;position:relative;transform-style:preserve-3d;perspective:600px}.card .text{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.8rem;font-weight:800;color:#ff6bb5;background:linear-gradient(180deg,#4a2a7a,#3a1a6a,#2a0a5a);border-radius:12px;box-shadow:0 8px 20px #0006,inset 0 2px 4px #ff6bb533,inset 0 -2px 4px #0000004d;position:relative;font-variant-numeric:tabular-nums;border:2px solid rgba(255,107,181,.3)}.card .text:before{content:"";position:absolute;top:50%;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.1) 20%,rgba(0,0,0,.1) 80%,transparent);z-index:1}.card.flip .text{animation:flipCard .6s cubic-bezier(.4,0,.2,1)}@keyframes flipCard{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg);box-shadow:0 4px 10px #0003,inset 0 2px 4px #fff6}to{transform:rotateX(0)}}.label{font-size:.75rem;text-transform:uppercase;color:#c4a5d8;font-weight:700;letter-spacing:1.3px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.birthday-celebration{font-size:2.2rem;font-weight:800;background:linear-gradient(90deg,#ff6bb5,#f9d,#c480ff,#ff6bb5,#f9d);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:rainbowFlow 3s linear infinite,bounce 1s ease-in-out infinite;text-shadow:0 0 30px rgba(255,107,181,.4);display:inline-block;padding:15px;text-align:center;line-height:1.3}@keyframes rainbowFlow{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.test-button{margin-top:30px;padding:15px 35px;font-size:1.1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6bb5,#f9d,#c480ff);border:none;border-radius:50px;cursor:pointer;box-shadow:0 6px 20px #ff6bb566;transition:all .3s ease;text-transform:uppercase;letter-spacing:1px;display:block;margin-left:auto;margin-right:auto}.test-button:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 10px 30px #ff6bb58c;background:linear-gradient(135deg,#c480ff,#f9d,#ff6bb5)}.test-button:active{transform:translateY(-1px) scale(1.02);box-shadow:0 5px 15px #ff6bb573}@media(max-width:600px){.countdown{padding:12px 15px}.flip-timer{gap:15px}.card{width:65px;height:75px}.card .text{font-size:2.3rem;border-radius:10px}.label{font-size:.7rem;letter-spacing:1.1px}.birthday-celebration{font-size:1.8rem;padding:12px}.test-button{padding:12px 28px;font-size:1rem;border-radius:40px}}@media(max-width:375px){.countdown{padding:10px 12px}.card{width:58px;height:68px}.card .text{font-size:2rem}.label{font-size:.65rem;letter-spacing:1px}.birthday-celebration{font-size:1.5rem;padding:10px}.test-button{padding:10px 24px;font-size:.9rem;border-radius:35px}}.balloon{position:fixed;bottom:-150px;font-size:3rem;z-index:999;pointer-events:none;animation:floatUp var(--duration, 8s) ease-out forwards;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}@keyframes floatUp{0%{transform:translateY(0) translate(0) rotate(0) scale(.8);opacity:0}10%{opacity:1;transform:translateY(-10vh) translate(calc(var(--drift) * .1)) rotate(calc(var(--rotate) * .1)) scale(1)}to{transform:translateY(-130vh) translate(var(--drift)) rotate(var(--rotate)) scale(.9);opacity:0}}.balloon:after{content:"";position:absolute;bottom:-25px;left:50%;width:2px;height:40px;background:linear-gradient(to bottom,#888,transparent);transform:translate(-50%)}.sparkle{position:fixed;z-index:1000;pointer-events:none;text-shadow:0 0 10px currentColor,0 0 20px currentColor,0 0 30px currentColor;filter:drop-shadow(0 0 5px rgba(255,255,255,.8))}.firework{position:fixed;width:6px;height:6px;border-radius:50%;z-index:999;pointer-events:none}.firework-glow{position:absolute;width:30px;height:30px;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);filter:blur(10px);opacity:.8;animation:fireworkGlow .5s ease-out forwards}@keyframes fireworkGlow{0%{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(3);opacity:.6}to{transform:translate(-50%,-50%) scale(5);opacity:0}}.firework-particle{position:absolute;width:8px;height:8px;border-radius:50%;animation:explode 1.8s ease-out forwards;box-shadow:0 0 6px currentColor,0 0 12px currentColor}.firework-particle.particle-sparkle{width:4px;height:12px;border-radius:2px}.firework-particle.secondary{width:5px;height:5px;opacity:.7;animation-duration:1.4s}@keyframes explode{0%{transform:translate(0) scale(1);opacity:1}50%{opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}.cracker{position:fixed;font-size:2.5rem;z-index:999;pointer-events:none;animation:popCracker 1.2s ease-out forwards;filter:drop-shadow(0 0 10px rgba(255,255,255,.5))}@keyframes popCracker{0%{transform:scale(0) rotate(0);opacity:0}20%{transform:scale(1.8) rotate(180deg);opacity:1}50%{transform:scale(1.2) rotate(360deg);opacity:1}to{transform:scale(0) rotate(540deg);opacity:0}}.shooting-star{position:fixed;width:4px;height:4px;background:#fff;border-radius:50%;z-index:998;pointer-events:none;box-shadow:0 0 10px #fff,0 0 20px #fff,0 0 40px #ff6b9d}.shooting-star:before{content:"";position:absolute;width:150px;height:2px;background:linear-gradient(to left,rgba(255,255,255,.8),transparent);right:4px;top:50%;transform:translateY(-50%)}.shooting-star:after{content:"⭐";position:absolute;font-size:1.5rem;left:-10px;top:-12px;animation:twinkleStar .3s ease-in-out infinite alternate}@keyframes twinkleStar{0%{transform:scale(.8);opacity:.8}to{transform:scale(1.2);opacity:1}}.glowing-orb{position:fixed;border-radius:50%;z-index:997;pointer-events:none;filter:blur(2px);mix-blend-mode:screen}.floating-gift{position:fixed;bottom:-100px;z-index:998;pointer-events:none;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3));animation:giftWobble 1s ease-in-out infinite alternate}@keyframes giftWobble{0%{transform:rotate(-10deg)}to{transform:rotate(10deg)}}.popper-confetti{position:fixed;width:10px;height:10px;z-index:1000;pointer-events:none;border-radius:2px}.popper-confetti:nth-child(odd){border-radius:50%;width:8px;height:8px}.popper-confetti:nth-child(3n){width:6px;height:14px;border-radius:1px}.music-note{position:fixed;font-size:2rem;z-index:998;pointer-events:none;opacity:.8;animation:floatNote 4s ease-in-out forwards}@keyframes floatNote{0%{transform:translateY(0) rotate(0) scale(1);opacity:0}20%{opacity:.8}to{transform:translateY(-200px) rotate(360deg) scale(.5);opacity:0}}.effect-heart{position:fixed;font-size:2rem;z-index:998;pointer-events:none;animation:heartFloat 6s ease-in-out forwards}@keyframes heartFloat{0%{transform:translateY(0) scale(0) rotate(0);opacity:0}20%{transform:translateY(-20px) scale(1.2) rotate(15deg);opacity:1}80%{opacity:.8}to{transform:translateY(-300px) scale(.5) rotate(-15deg);opacity:0}}.rainbow-particle{position:fixed;width:20px;height:20px;border-radius:50%;z-index:996;pointer-events:none;filter:blur(3px);mix-blend-mode:screen}.energy-ring{position:fixed;border:3px solid;border-radius:50%;z-index:999;pointer-events:none;animation:energyExpand 1s ease-out forwards}@keyframes energyExpand{0%{width:0;height:0;opacity:1}to{width:300px;height:300px;opacity:0;margin-left:-150px;margin-top:-150px}}.star-burst{position:fixed;z-index:1000;pointer-events:none}.star-burst:before,.star-burst:after{content:"✦";position:absolute;font-size:1.5rem;color:gold;text-shadow:0 0 10px #FFD700;animation:starPulse .5s ease-out forwards}@keyframes starPulse{0%{transform:scale(0) rotate(0);opacity:1}50%{transform:scale(2) rotate(180deg);opacity:1}to{transform:scale(0) rotate(360deg);opacity:0}}.confetti-shape{position:fixed;z-index:998;pointer-events:none}.confetti-shape.circle{border-radius:50%}.confetti-shape.square{border-radius:2px}.confetti-shape.ribbon{width:8px!important;height:20px!important;border-radius:4px}@media(max-width:768px){.balloon{font-size:2.5rem}.cracker{font-size:2rem}.shooting-star:before{width:80px}.firework-particle{width:6px;height:6px}}@media(max-width:480px){.balloon{font-size:2rem}.cracker,.floating-gift{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){.balloon,.sparkle,.cracker,.shooting-star,.glowing-orb,.floating-gift,.popper-confetti,.firework-particle{animation:none;transition:none}}.gallery{padding:0;max-width:100%;margin:0;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:transparent;position:relative}.gallery::-webkit-scrollbar{width:6px}.gallery::-webkit-scrollbar-track{background:#0000001a}.gallery::-webkit-scrollbar-thumb{background:#ff6bb566;border-radius:10px}.gallery::-webkit-scrollbar-thumb:hover{background:#ff6bb599}.gallery h2{font-size:1.8rem;margin:0;color:#f9d;font-weight:700;text-align:center;position:sticky;top:0;z-index:100;background:#2b124cf2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);padding:18px 20px;display:flex;align-items:center;justify-content:center;gap:10px;border-bottom:1px solid rgba(255,107,181,.15);text-shadow:0 2px 8px rgba(0,0,0,.3)}.gallery-title-emoji{font-size:1.4rem}.photos{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:800px;width:100%;padding:24px;margin:0 auto;box-sizing:border-box}.photo-wrapper{position:relative;overflow:hidden;border-radius:16px;background:#3c285a66;box-shadow:0 4px 20px #00000026,0 0 0 1px #ff6bb51a;transition:transform .3s ease,box-shadow .3s ease;aspect-ratio:1}.photo-wrapper:hover{transform:translateY(-5px);box-shadow:0 12px 35px #00000040,0 0 0 1px #ff6bb540,0 0 20px #ff6bb51a}.photos img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;transition:opacity .3s ease;border-radius:16px}.photos img:hover{opacity:.9}.lightbox{position:fixed;inset:0;background:#050009fa;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;animation:lightboxFadeIn .2s ease;padding:70px 20px 20px}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}.lightbox img{max-width:90%;max-height:75%;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px #00000080}.lightbox-caption{margin-top:16px;color:#d4b5ff;font-size:.95rem;font-weight:500}.lightbox-close{position:fixed;top:20px;right:20px;background:#ff6bb533;color:#f9d;border:2px solid #ff99dd;font-size:1.6rem;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lightbox-close:hover{background:#ff6bb5;color:#fff;border-color:#ff6bb5}.nav-btn{position:fixed;top:50%;transform:translateY(-50%);background:#ff6bb533;color:#f9d;border:2px solid #ff99dd;font-size:2rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;z-index:10000}.nav-btn:hover{background:#ff6bb5;color:#fff;border-color:#ff6bb5}.nav-prev{left:15px}.nav-next{right:15px}@media(min-width:600px){.gallery h2{font-size:2rem;padding:20px 24px}.photos{grid-template-columns:repeat(3,1fr);gap:20px;padding:30px;max-width:900px}.photo-wrapper,.photos img{border-radius:18px}}@media(min-width:1024px){.gallery h2{font-size:2.2rem;padding:22px 30px;gap:12px}.gallery-title-emoji{font-size:1.6rem}.photos{gap:24px;padding:40px;max-width:1000px}.photo-wrapper,.photos img{border-radius:20px}.nav-btn{width:56px;height:56px;font-size:2.2rem}.nav-prev{left:25px}.nav-next{right:25px}}@media(max-width:480px){.gallery h2{font-size:1.5rem;padding:14px 16px;gap:8px}.gallery-title-emoji{font-size:1.2rem}.photos{grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}.photo-wrapper,.photos img{border-radius:12px}.lightbox{padding:60px 12px 12px}.lightbox-close{width:42px;height:42px;font-size:1.4rem;top:12px;right:12px}.nav-btn{width:42px;height:42px;font-size:1.6rem}.nav-prev{left:8px}.nav-next{right:8px}.lightbox-caption{font-size:.85rem}}@media(max-width:360px){.gallery h2{font-size:1.3rem;padding:12px 14px}.photos{gap:10px;padding:12px}.photo-wrapper,.photos img{border-radius:10px}}@media(max-height:500px)and (orientation:landscape){.gallery h2{font-size:1.4rem;padding:10px 15px}.photos{grid-template-columns:repeat(3,1fr);gap:12px;padding:15px}.lightbox img{max-height:65%}}@media(prefers-reduced-motion:reduce){.photo-wrapper,.photos img,.lightbox,.nav-btn,.lightbox-close{transition:none;animation:none}}.hearts{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}.heart{position:absolute;bottom:100%;color:#ff6bb599;pointer-events:none;will-change:transform,opacity}.message{padding:15px 20px 20px;max-width:700px;width:100%;margin:0 auto;opacity:1;transform:translateY(0);position:relative;display:flex;flex-direction:column;align-items:center;height:100%;max-height:100vh;max-height:100dvh;overflow:hidden;justify-content:center}.message-decorations{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.message-deco{position:absolute;bottom:-20px;opacity:.4;animation:messageDecoFloat linear infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}@keyframes messageDecoFloat{0%{bottom:-10%;transform:translate(0) rotate(0) scale(.8);opacity:0}15%{opacity:.5}50%{transform:translate(20px) rotate(180deg) scale(1);opacity:.4}to{bottom:110%;transform:translate(-15px) rotate(360deg) scale(.9);opacity:0}}.message h2{text-align:center;font-size:1.7rem;margin:10px 0 20px;padding-top:max(env(safe-area-inset-top),10px);background:linear-gradient(135deg,#f9d,#ff6bb5,#f9d);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleShimmer 3s ease infinite;flex-shrink:0;filter:drop-shadow(0 2px 8px rgba(255,107,181,.4));display:flex;align-items:center;justify-content:center;gap:12px}@keyframes titleShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.abc{padding-bottom:2.5rem}.title-icon{-webkit-text-fill-color:initial;animation:titleIconPulse 2s ease-in-out infinite;font-size:1.5rem}.title-icon:last-child{animation-delay:1s}@keyframes titleIconPulse{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.2) rotate(10deg)}}.curtain-container{position:relative;width:100%;max-width:700px;margin:0 auto;height:450px;max-height:55vh;display:flex;justify-content:center;align-items:center;perspective:1000px;flex-shrink:0}.curtain-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;z-index:10;cursor:pointer;transition:opacity .5s ease}.curtain-wrapper.opening{pointer-events:none}.curtain{flex:1;height:100%;position:relative;transition:transform 1.5s cubic-bezier(.68,-.55,.265,1.55);transform-origin:top}.curtain-left{background:linear-gradient(to right,#6a2a4a,#8a3a5a,#aa4a7a);transform-origin:left center;box-shadow:5px 0 20px #0006;border-right:3px solid rgba(255,107,181,.4)}.curtain-right{background:linear-gradient(to left,#6a2a4a,#8a3a5a,#aa4a7a);transform-origin:right center;box-shadow:-5px 0 20px #0006;border-left:3px solid rgba(255,107,181,.4)}.curtain:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(90deg,transparent,transparent 10px,rgba(0,0,0,.1) 10px,rgba(0,0,0,.1) 11px);pointer-events:none}.curtain-rod{position:absolute;top:-20px;left:0;width:100%;height:22px;background:linear-gradient(to bottom,#6a4a7a,#5a3a6a,#4a2a5a);border-radius:12px;box-shadow:0 4px 12px #0006,inset 0 1px #ffffff1a;z-index:11}.curtain-rod:before,.curtain-rod:after{content:"";position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;background:radial-gradient(circle at 35% 35%,#ffe0a0,#ffaa7a,#f84);border-radius:50%;box-shadow:0 3px 8px #0006,inset 0 2px 4px #ffffff4d}.curtain-rod:before{left:-16px}.curtain-rod:after{right:-16px}.rod-decor{position:absolute;top:50%;transform:translateY(-50%);font-size:1.2rem;animation:rodDecorBounce 2s ease-in-out infinite;z-index:12}.rod-decor-left{left:20%;animation-delay:0s}.rod-decor-right{right:20%;animation-delay:1s}@keyframes rodDecorBounce{0%,to{transform:translateY(-50%) rotate(-10deg) scale(1)}50%{transform:translateY(-60%) rotate(10deg) scale(1.1)}}.curtain-wrapper.opened .curtain-left{transform:translate(-100%) rotateY(-15deg)}.curtain-wrapper.opened .curtain-right{transform:translate(100%) rotateY(15deg)}.curtain-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:12;background:linear-gradient(135deg,#fffffffa,#fff0f5f2);color:#e91e63;padding:18px 40px;border-radius:50px;font-size:1.25rem;font-weight:700;box-shadow:0 12px 35px #00000059,0 0 20px #ff6bb54d;pointer-events:none;animation:hintPulse 2s ease-in-out infinite;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:2px solid rgba(255,107,181,.3);display:flex;align-items:center;gap:10px}.hint-sparkle{animation:hintSparkleRotate 3s linear infinite}@keyframes hintSparkleRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hintPulse{0%,to{transform:translate(-50%,-50%) scale(1);box-shadow:0 12px 35px #00000059,0 0 20px #ff6bb54d}50%{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 15px 45px #0006,0 0 35px #ff6bb580}}.curtain-wrapper.opening .curtain-hint,.curtain-wrapper.opened .curtain-hint{opacity:0;transition:opacity .5s ease}.message-content{opacity:0;transform:scale(.9);transition:opacity 1s ease .8s,transform 1s ease .8s;position:relative;z-index:1;width:100%;display:flex;justify-content:center;align-items:center;padding:20px}.message-content.revealed{opacity:1;transform:scale(1)}.message-frame{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.frame-corner{position:absolute;font-size:1.5rem;opacity:.6;animation:frameCornerPulse 3s ease-in-out infinite}.frame-tl{top:5px;left:5px}.frame-tr{top:5px;right:5px;animation-delay:.75s}.frame-bl{bottom:5px;left:5px;animation-delay:1.5s}.frame-br{bottom:5px;right:5px;animation-delay:2.25s}@keyframes frameCornerPulse{0%,to{transform:scale(1) rotate(0);opacity:.5}50%{transform:scale(1.2) rotate(15deg);opacity:.8}}.message-content .typed-text{background:#4b2a7ae6;padding:30px 35px;border-radius:22px;box-shadow:0 18px 50px #0006,0 0 20px #ff6bb526,inset 0 1px #ffffff1a;font-size:1.05rem;line-height:1.7;color:#f5eaff;text-align:left;border:2px solid rgba(255,107,181,.25);-webkit-backdrop-filter:blur(20px) saturate(130%);backdrop-filter:blur(20px) saturate(130%);white-space:pre-line;max-height:50vh;overflow-y:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:650px;scrollbar-width:thin;scrollbar-color:rgba(255,107,181,.5) rgba(0,0,0,.2);position:relative}.sparkle-overlay-message{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:50}.message-ambient-sparkle{position:absolute;font-size:.9rem;color:gold;opacity:0;animation:messageAmbientTwinkle 4s ease-in-out infinite;text-shadow:0 0 10px #FFD700}@keyframes messageAmbientTwinkle{0%,to{opacity:0;transform:scale(.5) rotate(0)}50%{opacity:.8;transform:scale(1.2) rotate(180deg)}}.message-sparkle{text-shadow:0 0 10px currentColor}.message-content .typed-text::-webkit-scrollbar{width:6px}.message-content .typed-text::-webkit-scrollbar-track{background:#0000001a;border-radius:10px}.message-content .typed-text::-webkit-scrollbar-thumb{background:#ff6bb580;border-radius:10px}.message-content .typed-text::-webkit-scrollbar-thumb:hover{background:#ff6bb5b3}@media(max-width:1024px){.message{padding:15px 15px 20px;max-width:650px}.curtain-container{max-width:650px;height:400px;max-height:50vh}.message h2{font-size:1.5rem;margin:0 0 12px}.message-content .typed-text{padding:22px 28px;font-size:.98rem;line-height:1.6;max-height:42vh}.curtain-hint{font-size:1.15rem;padding:14px 30px}}@media(max-width:768px){.message{padding:10px 15px 15px;max-width:100%}.curtain-container{height:350px;max-height:45vh}.message h2{font-size:1.4rem;margin:0 0 10px}.message-content .typed-text{padding:20px 25px;font-size:.95rem;line-height:1.55;max-height:40vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.curtain-hint{font-size:1.1rem;padding:12px 28px}}@media(max-width:600px){.message{padding:15px 10px;max-width:100%;margin:0 auto;overflow:hidden;justify-content:center}.curtain-container{max-width:100%;height:320px;max-height:45vh;margin:0 auto}.message h2{font-size:1.3rem;margin:5px 0 15px;padding:0 10px}.message-content{padding:12px}.message-content .typed-text{padding:18px 20px;font-size:.9rem;line-height:1.5;max-height:38vh;border-radius:15px;overflow-y:auto;-webkit-overflow-scrolling:touch}.curtain-hint{font-size:1rem;padding:12px 25px;border-radius:40px}.curtain-rod{height:16px;top:-16px;border-radius:8px}.curtain-rod:before,.curtain-rod:after{width:22px;height:22px}.curtain-rod:before{left:-12px}.curtain-rod:after{right:-12px}.curtain{transition:transform 1.2s cubic-bezier(.68,-.55,.265,1.55)}.curtain-container{perspective:800px}}@media(max-width:480px){.message{padding:12px 8px;overflow:hidden}.curtain-container{min-height:280px;margin:10px auto}.message h2{font-size:1.25rem;margin-bottom:10px}.message-content .typed-text{padding:18px 16px;font-size:.9rem;line-height:1.5;max-height:42vh;border-radius:12px;overflow-y:auto;-webkit-overflow-scrolling:touch}.curtain-hint{font-size:1rem;padding:12px 24px;border-radius:35px}.curtain-rod{height:14px;top:-14px}.curtain-rod:before,.curtain-rod:after{width:20px;height:20px}.curtain-wrapper.opened .curtain-left{transform:translate(-100%) rotateY(-10deg)}.curtain-wrapper.opened .curtain-right{transform:translate(100%) rotateY(10deg)}}@media(max-width:360px){.message{padding:10px 5px}.curtain-container{min-height:250px}.message h2{font-size:1.2rem}.message-content .typed-text{padding:18px 15px;font-size:.9rem;line-height:1.45}.curtain-hint{font-size:.95rem;padding:10px 20px}}@media(max-height:500px)and (orientation:landscape){.curtain-container{min-height:220px}.message-content .typed-text{max-height:60vh;padding:18px 25px;font-size:.9rem}.message h2{font-size:1.3rem;margin-bottom:8px}.curtain-hint{font-size:.95rem;padding:10px 22px}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.curtain:before{background:repeating-linear-gradient(90deg,transparent,transparent 8px,rgba(0,0,0,.08) 8px,rgba(0,0,0,.08) 9px)}}@media(hover:none)and (pointer:coarse){.curtain-wrapper{cursor:default}.curtain-hint{animation:hintPulseMobile 2.5s ease-in-out infinite}@keyframes hintPulseMobile{0%,to{transform:translate(-50%,-50%) scale(1);box-shadow:0 10px 30px #0000004d}50%{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 15px 40px #0006}}.curtain-wrapper:active .curtain-hint{transform:translate(-50%,-50%) scale(.95)}}.music-toggle{position:fixed;right:25px;top:25px;top:max(env(safe-area-inset-top,25px),25px);z-index:100;background:#fffffffa;color:#e91e63;border:2px solid #e91e63;padding:12px 20px;border-radius:30px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px #00000026;pointer-events:all}.music-toggle:hover{background:#e91e63;color:#fff;transform:scale(1.05);box-shadow:0 6px 16px #e91e6366}.music-toggle:active{transform:scale(.98)}@media(max-width:600px){.music-toggle{right:15px;top:15px;top:max(env(safe-area-inset-top,15px),15px);padding:10px 16px;font-size:.9rem}}@media(max-width:375px){.music-toggle{right:12px;top:12px;top:max(env(safe-area-inset-top,12px),12px);padding:8px 14px;font-size:.85rem}}
