*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}:root{--primary-pink: #ff6b6b;--primary-cyan: #4ecdc4;--primary-blue: #45b7d1;--primary-yellow: #f7b731;--primary-purple: #5f27cd;--primary-gold: #ffd93d;--gradient-1: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-2: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);--shadow-soft: 0 10px 40px rgba(0, 0, 0, .1);--shadow-medium: 0 15px 50px rgba(0, 0, 0, .2);--shadow-strong: 0 20px 60px rgba(0, 0, 0, .3)}body{font-family:Poppins,sans-serif;background:var(--gradient-2);background-size:400% 400%;-webkit-animation:gradientShift 15s ease infinite;animation:gradientShift 15s ease infinite;min-height:100vh;overflow-x:hidden;position:relative}@-webkit-keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.gift-box-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;opacity:1;-webkit-transition:opacity .5s ease;transition:opacity .5s ease}.gift-box-overlay.fade-out{opacity:0;pointer-events:none}.gift-box{position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:320px;height:320px;z-index:10000;cursor:pointer;-webkit-transition:-webkit-transform .3s ease;transition:transform .3s ease;-webkit-perspective:1000px;perspective:1000px}.gift-box:hover{-webkit-transform:translate(-50%,-50%) scale(1.05) rotateY(5deg);transform:translate(-50%,-50%) scale(1.05) rotateY(5deg)}.gift-sparkles{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;z-index:10}.sparkle{position:absolute;font-size:1.5em;opacity:.8;-webkit-animation:sparkleFloat 3s ease-in-out infinite;animation:sparkleFloat 3s ease-in-out infinite}.sparkle-1{top:10%;left:15%;animation-delay:0s}.sparkle-2{top:20%;right:20%;animation-delay:.5s}.sparkle-3{bottom:25%;left:10%;animation-delay:1s}.sparkle-4{bottom:15%;right:15%;animation-delay:1.5s}@-webkit-keyframes sparkleFloat{0%,to{-webkit-transform:translateY(0) scale(1) rotate(0deg);transform:translateY(0) scale(1) rotate(0);opacity:.6}50%{-webkit-transform:translateY(-20px) scale(1.2) rotate(180deg);transform:translateY(-20px) scale(1.2) rotate(180deg);opacity:1}}@keyframes sparkleFloat{0%,to{-webkit-transform:translateY(0) scale(1) rotate(0deg);transform:translateY(0) scale(1) rotate(0);opacity:.6}50%{-webkit-transform:translateY(-20px) scale(1.2) rotate(180deg);transform:translateY(-20px) scale(1.2) rotate(180deg);opacity:1}}.gift-box-body{width:100%;height:70%;background:linear-gradient(135deg,#ff6b9d,#c44569,#8b3a5c);border-radius:12px;position:relative;box-shadow:0 20px 60px #0006,0 0 0 3px #ffffff1a,inset 0 2px 10px #fff3;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden}.gift-pattern{position:absolute;width:100%;height:100%;background-image:repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(255,255,255,.05) 20px,rgba(255,255,255,.05) 40px),repeating-linear-gradient(-45deg,transparent,transparent 20px,rgba(255,255,255,.05) 20px,rgba(255,255,255,.05) 40px);opacity:.3}.gift-ribbon-vertical{position:absolute;left:50%;top:0;-webkit-transform:translateX(-50%);transform:translate(-50%);width:30px;height:100%;background:-webkit-linear-gradient(180deg,#ffd700 0%,#ffed4e 50%,#ffd700 100%);background:linear-gradient(180deg,gold,#ffed4e,gold);box-shadow:0 0 10px #ffd70080,inset 0 0 10px #ffffff4d;z-index:2}.gift-ribbon-horizontal{position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:100%;height:30px;background:-webkit-linear-gradient(90deg,#ffd700 0%,#ffed4e 50%,#ffd700 100%);background:linear-gradient(90deg,gold,#ffed4e,gold);box-shadow:0 0 10px #ffd70080,inset 0 0 10px #ffffff4d;z-index:2}.gift-bow{font-size:5em;z-index:3;position:relative;-webkit-filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));-webkit-animation:bowWiggle 2s ease-in-out infinite;animation:bowWiggle 2s ease-in-out infinite}@-webkit-keyframes bowWiggle{0%,to{-webkit-transform:rotate(-8deg) scale(1);transform:rotate(-8deg) scale(1)}50%{-webkit-transform:rotate(8deg) scale(1.1);transform:rotate(8deg) scale(1.1)}}@keyframes bowWiggle{0%,to{-webkit-transform:rotate(-8deg) scale(1);transform:rotate(-8deg) scale(1)}50%{-webkit-transform:rotate(8deg) scale(1.1);transform:rotate(8deg) scale(1.1)}}.gift-lid{width:100%;height:30%;background:-webkit-linear-gradient(135deg,#4ecdc4 0%,#44a08d 50%,#2e7d6f 100%);background:linear-gradient(135deg,#4ecdc4,#44a08d,#2e7d6f);border-radius:12px 12px 0 0;position:absolute;top:0;left:0;-webkit-transform-origin:top center;transform-origin:top center;-webkit-transition:-webkit-transform .6s cubic-bezier(.68,-.55,.265,1.55);transition:transform .6s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 -8px 30px #0000004d,0 0 0 3px #ffffff1a,inset 0 -2px 10px #0003;overflow:hidden}.lid-highlight{position:absolute;top:0;left:0;width:100%;height:50%;background:linear-gradient(180deg,rgba(255,255,255,.3) 0%,transparent 100%);border-radius:12px 12px 0 0}.gift-lid.lid-pop{-webkit-transform:rotateX(-90deg) translateY(-50px) rotateZ(-5deg);transform:rotateX(-90deg) translateY(-50px) rotate(-5deg)}.gift-tap-hint{position:absolute;bottom:-80px;left:50%;-webkit-transform:translateX(-50%);transform:translate(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px;-webkit-animation:hintPulse 2s ease-in-out infinite;animation:hintPulse 2s ease-in-out infinite}.hint-icon{font-size:2.5em;-webkit-filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));-webkit-animation:iconBounce 1.5s ease-in-out infinite;animation:iconBounce 1.5s ease-in-out infinite}@-webkit-keyframes iconBounce{0%,to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}50%{-webkit-transform:translateY(-10px) scale(1.1);transform:translateY(-10px) scale(1.1)}}@keyframes iconBounce{0%,to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}50%{-webkit-transform:translateY(-10px) scale(1.1);transform:translateY(-10px) scale(1.1)}}.hint-text{color:#fff;font-size:1.4em;font-weight:700;text-shadow:0 2px 10px rgba(0,0,0,.5),0 0 20px rgba(255,255,255,.3);letter-spacing:2px;text-transform:uppercase;font-family:Poppins,sans-serif;background:linear-gradient(45deg,#fff,gold,#fff);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:textShimmer 3s ease-in-out infinite}@-webkit-keyframes textShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes textShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@-webkit-keyframes hintPulse{0%,to{opacity:.9;-webkit-transform:translateX(-50%) scale(1);transform:translate(-50%) scale(1)}50%{opacity:1;-webkit-transform:translateX(-50%) scale(1.05);transform:translate(-50%) scale(1.05)}}@keyframes hintPulse{0%,to{opacity:.9;-webkit-transform:translateX(-50%) scale(1);transform:translate(-50%) scale(1)}50%{opacity:1;-webkit-transform:translateX(-50%) scale(1.05);transform:translate(-50%) scale(1.05)}}.gift-box.box-shrink{animation:boxShrink .8s ease-in forwards}@-webkit-keyframes boxShrink{to{width:60px;height:60px;top:20px;left:20px;-webkit-transform:translate(0,0);transform:translate(0)}}@keyframes boxShrink{to{width:60px;height:60px;top:20px;left:20px;-webkit-transform:translate(0,0);transform:translate(0)}}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999}.confetti-particle{position:absolute;width:10px;height:10px;border-radius:50%;-webkit-animation:confettiBurst 2s ease-out forwards;animation:confettiBurst 2s ease-out forwards}@-webkit-keyframes confettiBurst{0%{-webkit-transform:translate(0,0) rotate(0deg);transform:translate(0) rotate(0);opacity:1}to{-webkit-transform:translate(var(--random-x),var(--random-y)) rotate(var(--random-rotate));transform:translate(var(--random-x),var(--random-y)) rotate(var(--random-rotate));opacity:0}}@keyframes confettiBurst{0%{-webkit-transform:translate(0,0) rotate(0deg);transform:translate(0) rotate(0);opacity:1}to{-webkit-transform:translate(var(--random-x),var(--random-y)) rotate(var(--random-rotate));transform:translate(var(--random-x),var(--random-y)) rotate(var(--random-rotate));opacity:0}}.main-content{opacity:0;-webkit-transition:opacity 1s ease-in;transition:opacity 1s ease-in}.main-content.content-reveal{opacity:1}.audio-toggle{position:fixed;top:20px;right:20px;width:50px;height:50px;border-radius:50%;background:#ffffffe6;border:none;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:1.5em;box-shadow:var(--shadow-soft);z-index:1000;-webkit-transition:all .3s ease;transition:all .3s ease}.audio-toggle:hover{-webkit-transform:scale(1.1);transform:scale(1.1);box-shadow:var(--shadow-medium)}.audio-toggle.playing{-webkit-animation:audioPulse 2s ease-in-out infinite;animation:audioPulse 2s ease-in-out infinite}@-webkit-keyframes audioPulse{0%,to{box-shadow:0 0 #ff6b6bb3}50%{box-shadow:0 0 0 10px #ff6b6b00}}@keyframes audioPulse{0%,to{box-shadow:0 0 #ff6b6bb3}50%{box-shadow:0 0 0 10px #ff6b6b00}}.scroll-to-next{position:absolute;bottom:30px;left:50%;-webkit-transform:translateX(-50%) translateY(20px);transform:translate(-50%) translateY(20px);background:-webkit-linear-gradient(135deg,rgba(255,255,255,.25),rgba(255,255,255,.15));background:linear-gradient(135deg,#ffffff40,#ffffff26);border:2px solid rgba(255,255,255,.6);border-radius:50px;padding:14px 28px;color:#fff;font-family:Poppins,sans-serif;font-size:.9em;font-weight:600;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;-webkit-transition:all .4s cubic-bezier(.4,0,.2,1);transition:all .4s cubic-bezier(.4,0,.2,1);opacity:0;pointer-events:none;z-index:100;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);-webkit-box-shadow:0 8px 32px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.1) inset;box-shadow:0 8px 32px #00000026,0 0 0 1px #ffffff1a inset;overflow:hidden}.scroll-to-next:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:-webkit-linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);-webkit-transition:left .6s ease;transition:left .6s ease}.scroll-to-next:hover:before{left:100%}.scroll-to-next.visible{opacity:1;pointer-events:all;-webkit-transform:translateX(-50%) translateY(0);transform:translate(-50%) translateY(0);-webkit-animation:scrollButtonEntrance .6s ease-out,scrollPulse 3s ease-in-out .6s infinite;animation:scrollButtonEntrance .6s ease-out,scrollPulse 3s ease-in-out .6s infinite}.scroll-to-next.hover-active{background:-webkit-linear-gradient(135deg,rgba(255,255,255,.35),rgba(255,255,255,.25));background:linear-gradient(135deg,#ffffff59,#ffffff40);border-color:#ffffffe6;-webkit-transform:translateX(-50%) translateY(-8px) scale(1.05);transform:translate(-50%) translateY(-8px) scale(1.05);-webkit-box-shadow:0 12px 40px rgba(0,0,0,.25),0 0 0 1px rgba(255,255,255,.2) inset,0 0 30px rgba(255,107,107,.3);box-shadow:0 12px 40px #00000040,0 0 0 1px #fff3 inset,0 0 30px #ff6b6b4d}.scroll-to-next.scroll-clicked{-webkit-transform:translateX(-50%) scale(.92);transform:translate(-50%) scale(.92);background:-webkit-linear-gradient(135deg,rgba(255,255,255,.4),rgba(255,255,255,.3));background:linear-gradient(135deg,#fff6,#ffffff4d)}.scroll-arrow{font-size:1.8em;-webkit-animation:arrowBounce 2s ease-in-out infinite;animation:arrowBounce 2s ease-in-out infinite;display:block;-webkit-filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));-webkit-transition:-webkit-transform .3s ease;transition:transform .3s ease}.scroll-to-next.hover-active .scroll-arrow{-webkit-transform:translateY(3px);transform:translateY(3px)}.scroll-text{font-size:.85em;letter-spacing:2px;text-transform:uppercase;text-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-transition:letter-spacing .3s ease;transition:letter-spacing .3s ease}.scroll-to-next.hover-active .scroll-text{letter-spacing:3px}@-webkit-keyframes scrollButtonEntrance{0%{opacity:0;-webkit-transform:translateX(-50%) translateY(20px) scale(.8);transform:translate(-50%) translateY(20px) scale(.8)}to{opacity:1;-webkit-transform:translateX(-50%) translateY(0) scale(1);transform:translate(-50%) translateY(0) scale(1)}}@keyframes scrollButtonEntrance{0%{opacity:0;-webkit-transform:translateX(-50%) translateY(20px) scale(.8);transform:translate(-50%) translateY(20px) scale(.8)}to{opacity:1;-webkit-transform:translateX(-50%) translateY(0) scale(1);transform:translate(-50%) translateY(0) scale(1)}}@-webkit-keyframes scrollPulse{0%,to{-webkit-box-shadow:0 8px 32px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.1) inset;box-shadow:0 8px 32px #00000026,0 0 0 1px #ffffff1a inset}50%{-webkit-box-shadow:0 8px 40px rgba(255,107,107,.4),0 0 0 1px rgba(255,255,255,.2) inset,0 0 40px rgba(255,107,107,.2);box-shadow:0 8px 40px #ff6b6b66,0 0 0 1px #fff3 inset,0 0 40px #ff6b6b33}}@keyframes scrollPulse{0%,to{-webkit-box-shadow:0 8px 32px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.1) inset;box-shadow:0 8px 32px #00000026,0 0 0 1px #ffffff1a inset}50%{-webkit-box-shadow:0 8px 40px rgba(255,107,107,.4),0 0 0 1px rgba(255,255,255,.2) inset,0 0 40px rgba(255,107,107,.2);box-shadow:0 8px 40px #ff6b6b66,0 0 0 1px #fff3 inset,0 0 40px #ff6b6b33}}@-webkit-keyframes arrowBounce{0%,to{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(8px);transform:translateY(8px)}}@keyframes arrowBounce{0%,to{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(8px);transform:translateY(8px)}}.message-section .scroll-to-next{display:none}.hero-section{min-height:100vh;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;padding:80px 20px}.hero-section .scroll-to-next{opacity:1;pointer-events:all;-webkit-animation:scrollPulse 2s ease-in-out infinite;animation:scrollPulse 2s ease-in-out infinite}.floating-elements-container{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;overflow:hidden}.floating-element{position:absolute;font-size:2em;-webkit-animation:floatAround 4s ease-in-out infinite;animation:floatAround 4s ease-in-out infinite;opacity:.6}@-webkit-keyframes floatAround{0%,to{-webkit-transform:translate(0,0) rotate(0deg);transform:translate(0) rotate(0)}25%{-webkit-transform:translate(20px,-30px) rotate(90deg);transform:translate(20px,-30px) rotate(90deg)}50%{-webkit-transform:translate(-15px,-50px) rotate(180deg);transform:translate(-15px,-50px) rotate(180deg)}75%{-webkit-transform:translate(25px,-20px) rotate(270deg);transform:translate(25px,-20px) rotate(270deg)}}@keyframes floatAround{0%,to{-webkit-transform:translate(0,0) rotate(0deg);transform:translate(0) rotate(0)}25%{-webkit-transform:translate(20px,-30px) rotate(90deg);transform:translate(20px,-30px) rotate(90deg)}50%{-webkit-transform:translate(-15px,-50px) rotate(180deg);transform:translate(-15px,-50px) rotate(180deg)}75%{-webkit-transform:translate(25px,-20px) rotate(270deg);transform:translate(25px,-20px) rotate(270deg)}}.hero-content{text-align:center;z-index:10;max-width:800px}.hero-photo-container{margin:0 auto 40px;width:250px;height:250px;border-radius:50%;overflow:hidden;border:5px solid white;box-shadow:var(--shadow-strong);position:relative}.hero-photo-container:before{content:"";position:absolute;top:-5px;left:-5px;right:-5px;bottom:-5px;background:-webkit-linear-gradient(45deg,var(--primary-pink),var(--primary-cyan),var(--primary-blue),var(--primary-yellow));background:linear-gradient(45deg,var(--primary-pink),var(--primary-cyan),var(--primary-blue),var(--primary-yellow));background-size:300%;border-radius:50%;z-index:-1;-webkit-animation:photoGlow 3s linear infinite;animation:photoGlow 3s linear infinite}@-webkit-keyframes photoGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes photoGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.hero-photo{width:100%;height:100%;object-fit:cover;-webkit-filter:blur(10px);filter:blur(10px);-webkit-transform:scale(.9);transform:scale(.9);-webkit-transition:all 1s ease-out;transition:all 1s ease-out}.hero-photo.photo-reveal{-webkit-filter:blur(0);filter:blur(0);-webkit-transform:scale(1);transform:scale(1)}.hero-title{font-family:Pacifico,cursive;font-size:4em;background:-webkit-linear-gradient(45deg,var(--primary-pink),var(--primary-purple),var(--primary-cyan));background:linear-gradient(45deg,var(--primary-pink),var(--primary-purple),var(--primary-cyan));background-size:300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;-webkit-animation:titleGradient 3s ease infinite;animation:titleGradient 3s ease infinite;margin-bottom:20px}@-webkit-keyframes titleGradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes titleGradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.hero-name-container{position:relative;display:inline-block}.hero-name{font-family:Poppins,sans-serif;font-size:2.5em;font-weight:700;color:#2c3e50;margin-bottom:10px}.name-underline{height:4px;width:0;background:-webkit-linear-gradient(90deg,var(--primary-pink),var(--primary-cyan));background:linear-gradient(90deg,var(--primary-pink),var(--primary-cyan));margin:0 auto;border-radius:2px;-webkit-transition:width 1.5s ease-out;transition:width 1.5s ease-out;box-shadow:0 0 10px #ff6b6b80}.name-underline.underline-draw{width:100%}section{padding:80px 20px;max-width:1200px;margin:0 auto;position:relative}.section-title{font-family:Pacifico,cursive;font-size:3em;text-align:center;margin-bottom:60px;background:linear-gradient(45deg,var(--primary-pink),var(--primary-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.scroll-animate{opacity:0;-webkit-transform:translateY(30px);transform:translateY(30px);-webkit-transition:all .8s ease-out;transition:all .8s ease-out}.scroll-animate.animate-in{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.timeline-section{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:30px;padding:60px 40px;margin:40px 20px}.timeline-container{position:relative;max-width:800px;margin:0 auto}.timeline-line{position:absolute;left:30px;top:0;width:4px;height:0;background:-webkit-linear-gradient(180deg,var(--primary-pink),var(--primary-cyan));background:linear-gradient(180deg,var(--primary-pink),var(--primary-cyan));border-radius:2px;-webkit-transition:height 1s ease-out;transition:height 1s ease-out;box-shadow:0 0 10px #ff6b6b80}.timeline-item{position:relative;padding-left:80px;margin-bottom:60px;opacity:0;-webkit-transform:translateX(-30px);transform:translate(-30px);-webkit-transition:all .6s ease-out;transition:all .6s ease-out}.timeline-item.animate-in{opacity:1;-webkit-transform:translateX(0);transform:translate(0)}.timeline-icon{position:absolute;left:0;top:0;width:60px;height:60px;background:#fff;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:2em;box-shadow:var(--shadow-medium);-webkit-transition:all .3s ease;transition:all .3s ease}.timeline-item.animate-in .timeline-icon{animation:iconPop .6s ease-out}@-webkit-keyframes iconPop{0%{-webkit-transform:scale(0) rotate(-180deg);transform:scale(0) rotate(-180deg)}50%{-webkit-transform:scale(1.2) rotate(10deg);transform:scale(1.2) rotate(10deg)}to{-webkit-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0)}}@keyframes iconPop{0%{-webkit-transform:scale(0) rotate(-180deg);transform:scale(0) rotate(-180deg)}50%{-webkit-transform:scale(1.2) rotate(10deg);transform:scale(1.2) rotate(10deg)}to{-webkit-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0)}}.timeline-content{background:#fff;padding:25px;border-radius:15px;box-shadow:var(--shadow-soft);transition:all .3s ease}.timeline-content:hover{-webkit-transform:translateX(10px);transform:translate(10px);box-shadow:var(--shadow-medium)}.timeline-content h3{font-size:1.5em;color:var(--primary-pink);margin-bottom:10px}.timeline-content p{color:#666;font-size:1.1em}.messages-section{background:#fffffff2;border-radius:30px;padding:60px 40px;margin:40px 20px}.messages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px;max-width:1000px;margin:0 auto}.message-card{height:300px;-webkit-perspective:1000px;perspective:1000px;cursor:pointer;opacity:0;-webkit-transform:translateY(30px);transform:translateY(30px)}.message-card.card-entrance{-webkit-animation:cardSlideUp .6s ease-out forwards;animation:cardSlideUp .6s ease-out forwards}@-webkit-keyframes cardSlideUp{to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes cardSlideUp{to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.message-card-inner{position:relative;width:100%;height:100%;-webkit-transition:-webkit-transform .6s;transition:transform .6s;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.message-card.flipped .message-card-inner{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.card-front,.card-back{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:30px;box-shadow:var(--shadow-medium);-webkit-transition:all .3s ease;transition:all .3s ease}.card-front{background:linear-gradient(135deg,var(--primary-pink),var(--primary-purple));color:#fff}.card-back{background:#fff;color:#333;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);border:3px solid var(--primary-pink)}.message-card:hover .card-front{-webkit-transform:scale(1.05);transform:scale(1.05)}.message-card.special-message .card-front{background:-webkit-linear-gradient(135deg,var(--primary-gold),var(--primary-yellow));background:linear-gradient(135deg,var(--primary-gold),var(--primary-yellow));-webkit-animation:specialShimmer 3s ease-in-out infinite;animation:specialShimmer 3s ease-in-out infinite}@-webkit-keyframes specialShimmer{0%,to{box-shadow:0 0 20px #ffd93d80}50%{box-shadow:0 0 40px #ffd93dcc}}@keyframes specialShimmer{0%,to{box-shadow:0 0 20px #ffd93d80}50%{box-shadow:0 0 40px #ffd93dcc}}.card-photo{font-size:4em;margin-bottom:15px}.card-name{font-size:1.3em;font-weight:600}.card-back p{font-size:1.1em;line-height:1.6;text-align:center}.gallery-section{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:30px;padding:60px 40px;margin:40px 20px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;max-width:1200px;margin:0 auto}.gallery-item{position:relative;overflow:hidden;border-radius:15px;cursor:pointer;aspect-ratio:1;box-shadow:var(--shadow-soft);-webkit-transition:all .3s ease;transition:all .3s ease}.gallery-item:before{content:"";display:block;padding-top:100%}.gallery-item:hover{-webkit-transform:scale(1.05);transform:scale(1.05);box-shadow:var(--shadow-strong)}.gallery-item img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;-webkit-transition:-webkit-transform .3s ease;transition:transform .3s ease}.gallery-item .video-thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.gallery-item:hover img{-webkit-transform:scale(1.1);transform:scale(1.1)}.gallery-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-caption{color:#fff;font-size:1.3em;font-weight:600;text-shadow:0 2px 10px rgba(0,0,0,.5);margin-bottom:10px}.gallery-item-video .gallery-overlay{opacity:.7}.gallery-item-video:hover .gallery-overlay{opacity:1}.video-play-button{width:80px;height:80px;border-radius:50%;background:#ffffffe6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:2.5em;color:var(--primary-pink);-webkit-box-shadow:0 4px 20px rgba(0,0,0,.3);box-shadow:0 4px 20px #0000004d;-webkit-transition:all .3s ease;transition:all .3s ease;margin-top:15px;-webkit-animation:playPulse 2s ease-in-out infinite;animation:playPulse 2s ease-in-out infinite}.gallery-item-video:hover .video-play-button{-webkit-transform:scale(1.1);transform:scale(1.1);background:#fff}@-webkit-keyframes playPulse{0%,to{-webkit-box-shadow:0 4px 20px rgba(0,0,0,.3);box-shadow:0 4px 20px #0000004d}50%{-webkit-box-shadow:0 4px 30px rgba(255,107,107,.6);box-shadow:0 4px 30px #ff6b6b99}}@keyframes playPulse{0%,to{-webkit-box-shadow:0 4px 20px rgba(0,0,0,.3);box-shadow:0 4px 20px #0000004d}50%{-webkit-box-shadow:0 4px 30px rgba(255,107,107,.6);box-shadow:0 4px 30px #ff6b6b99}}.lightbox{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000f2;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:10000;opacity:0;pointer-events:none;-webkit-transition:opacity .3s ease;transition:opacity .3s ease}.lightbox.active{opacity:1;pointer-events:all}.lightbox-content{position:relative;max-width:90%;max-height:90%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.lightbox img,.lightbox video{max-width:100%;max-height:90vh;border-radius:10px;box-shadow:0 0 50px #ffffff4d}.lightbox video{width:auto;height:auto;max-width:100%;max-height:90vh;background:#000;-webkit-playsinline:true;playsinline:true}@supports (-webkit-appearance: none){.lightbox video{-webkit-playsinline:true;object-fit:contain}}.lightbox-close{position:absolute;top:30px;right:30px;background:#fff3;border:none;color:#fff;font-size:3em;width:60px;height:60px;border-radius:50%;cursor:pointer;transition:all .3s ease}.lightbox-close:hover{background:#ffffff4d;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.lightbox-nav{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:#fff3;border:none;color:#fff;font-size:4em;width:80px;height:80px;border-radius:50%;cursor:pointer;-webkit-transition:all .3s ease;transition:all .3s ease}.lightbox-prev{left:30px}.lightbox-next{right:30px}.lightbox-nav:hover{background:#ffffff4d;-webkit-transform:translateY(-50%) scale(1.1);transform:translateY(-50%) scale(1.1)}.things-love-section{background:#fffffff2;border-radius:30px;padding:60px 40px;margin:40px 20px}@supports not (backdrop-filter: blur(10px)){.timeline-section,.gallery-section,.wish-section{background:#ffffff4d}.gift-box-overlay{background:#000000d9}}.accordion{max-width:800px;margin:0 auto}.accordion-item{background:#fff;border-radius:15px;margin-bottom:20px;box-shadow:var(--shadow-soft);overflow:hidden;transition:all .3s ease}.accordion-item:hover{box-shadow:var(--shadow-medium)}.accordion-header{padding:25px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:15px;background:-webkit-linear-gradient(135deg,var(--primary-pink),var(--primary-purple));background:linear-gradient(135deg,var(--primary-pink),var(--primary-purple));color:#fff;-webkit-transition:all .3s ease;transition:all .3s ease}.accordion-item.active .accordion-header{background:-webkit-linear-gradient(135deg,var(--primary-cyan),var(--primary-blue));background:linear-gradient(135deg,var(--primary-cyan),var(--primary-blue))}.accordion-number{font-size:1.5em;font-weight:700;width:40px;height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background:#fff3;border-radius:50%;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:all .5s cubic-bezier(.68,-.55,.265,1.55);transition:all .5s cubic-bezier(.68,-.55,.265,1.55)}.accordion-number.number-reveal{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.accordion-emoji{font-size:2em;opacity:0;-webkit-transform:scale(0) rotate(-180deg);transform:scale(0) rotate(-180deg);-webkit-transition:all .5s cubic-bezier(.68,-.55,.265,1.55);transition:all .5s cubic-bezier(.68,-.55,.265,1.55)}.accordion-emoji.emoji-pop{opacity:1;-webkit-transform:scale(1) rotate(0deg);transform:scale(1) rotate(0)}.accordion-title{font-size:1.3em;font-weight:600;flex:1}.accordion-content{max-height:0;overflow:hidden;-webkit-transition:max-height .4s ease-out;transition:max-height .4s ease-out;padding:0 25px}.accordion-item.active .accordion-content{max-height:500px;padding:25px}.accordion-content p{color:#666;font-size:1.1em;line-height:1.6}.wish-section{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:30px;padding:60px 40px 120px;margin:40px 20px;text-align:center;position:relative;min-height:500px}.wish-section .scroll-to-next{bottom:40px;z-index:10}.cake-container{position:relative;display:inline-block;margin:40px 0}.cake{font-size:6em;display:block;-webkit-animation:cakeFloat 3s ease-in-out infinite;animation:cakeFloat 3s ease-in-out infinite}@-webkit-keyframes cakeFloat{0%,to{-webkit-transform:translateY(0) rotate(-2deg);transform:translateY(0) rotate(-2deg)}50%{-webkit-transform:translateY(-10px) rotate(2deg);transform:translateY(-10px) rotate(2deg)}}@keyframes cakeFloat{0%,to{-webkit-transform:translateY(0) rotate(-2deg);transform:translateY(0) rotate(-2deg)}50%{-webkit-transform:translateY(-10px) rotate(2deg);transform:translateY(-10px) rotate(2deg)}}.candle{position:absolute;top:-20px;left:50%;-webkit-transform:translateX(-50%);transform:translate(-50%);width:8px;height:40px;background:-webkit-linear-gradient(180deg,#fff 0%,#f0f0f0 100%);background:linear-gradient(180deg,#fff,#f0f0f0);border-radius:4px;-webkit-transition:all .3s ease;transition:all .3s ease}.flame{position:absolute;top:-15px;left:50%;-webkit-transform:translateX(-50%);transform:translate(-50%);width:12px;height:20px;background:-webkit-linear-gradient(180deg,#ffd700 0%,#ff6b6b 100%);background:linear-gradient(180deg,gold,#ff6b6b);border-radius:50%/60% 60% 40% 40%;-webkit-animation:flameFlicker .3s ease-in-out infinite alternate;animation:flameFlicker .3s ease-in-out infinite alternate;box-shadow:0 0 10px #ff6b6b80}@-webkit-keyframes flameFlicker{0%{-webkit-transform:translateX(-50%) scale(1) rotate(-2deg);transform:translate(-50%) scale(1) rotate(-2deg)}to{-webkit-transform:translateX(-50%) scale(1.1) rotate(2deg);transform:translate(-50%) scale(1.1) rotate(2deg)}}@keyframes flameFlicker{0%{-webkit-transform:translateX(-50%) scale(1) rotate(-2deg);transform:translate(-50%) scale(1) rotate(-2deg)}to{-webkit-transform:translateX(-50%) scale(1.1) rotate(2deg);transform:translate(-50%) scale(1.1) rotate(2deg)}}.candle.candle-flicker .flame{-webkit-animation:flameFlicker .1s ease-in-out infinite alternate;animation:flameFlicker .1s ease-in-out infinite alternate}.candle.candle-out .flame{opacity:0;-webkit-transform:translateX(-50%) scale(0);transform:translate(-50%) scale(0);-webkit-transition:all .5s ease-out;transition:all .5s ease-out}.wish-button{background:var(--gradient-1);color:#fff;border:none;padding:18px 40px;font-size:1.2em;font-family:Poppins,sans-serif;font-weight:600;cursor:pointer;border-radius:50px;box-shadow:var(--shadow-medium);transition:all .3s ease;margin:20px 0}.wish-button:hover{-webkit-transform:translateY(-3px) scale(1.05);transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-strong)}.wish-button:active{-webkit-transform:translateY(-1px) scale(1.02);transform:translateY(-1px) scale(1.02)}.wish-message{margin-top:30px;margin-bottom:100px;opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px);-webkit-transition:all .8s ease-out;transition:all .8s ease-out;padding-bottom:20px}.wish-message.message-reveal{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.wish-message p{font-size:1.5em;color:#fff;font-weight:600;text-shadow:0 2px 10px rgba(0,0,0,.3);line-height:1.6}.sparkles-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.wish-sparkle{position:absolute;width:8px;height:8px;background:var(--primary-gold);border-radius:50%;box-shadow:0 0 10px var(--primary-gold);-webkit-animation:sparkleRise 2s ease-out forwards;animation:sparkleRise 2s ease-out forwards}@-webkit-keyframes sparkleRise{0%{opacity:1;-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}to{opacity:0;-webkit-transform:translateY(-200px) scale(0);transform:translateY(-200px) scale(0)}}@keyframes sparkleRise{0%{opacity:1;-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}to{opacity:0;-webkit-transform:translateY(-200px) scale(0);transform:translateY(-200px) scale(0)}}.message-section{padding:60px 20px}.message-card-simple{background:#fff;padding:50px;border-radius:25px;box-shadow:var(--shadow-medium);max-width:800px;margin:0 auto;line-height:2;font-size:1.2em;color:#333}.message-card-simple p{margin-bottom:25px}.signature{font-style:italic;color:#2c3e50;margin-top:35px;text-align:right;font-weight:600;font-size:1.2em}button{position:relative;overflow:hidden}button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transition:width .6s,height .6s;transition:width .6s,height .6s}button:hover:before{width:300px;height:300px}a{position:relative;text-decoration:none;color:var(--primary-pink);transition:color .3s ease}a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--primary-pink);-webkit-transition:width .3s ease;transition:width .3s ease}a:hover:after{width:100%}@media(max-width:768px){.hero-title{font-size:2.5em}.hero-name{font-size:1.8em}.section-title{font-size:2em}.gift-box{width:280px;height:280px}.gift-bow{font-size:4em}.hint-text{font-size:1.2em}.hint-icon{font-size:2em}.messages-grid,.gallery-grid{grid-template-columns:1fr}.timeline-item{padding-left:70px}.timeline-icon{width:50px;height:50px;font-size:1.5em}section{padding:40px 15px}.message-card-simple{padding:30px 20px;font-size:1em}}@supports (-webkit-appearance: none){.gallery-item video,.lightbox video{-webkit-playsinline:true;playsinline:true}}@media(hover:none)and (pointer:coarse){.scroll-to-next{padding:16px 32px;font-size:1em}.gallery-item{-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}button{-webkit-tap-highlight-color:rgba(255,255,255,.3);tap-highlight-color:rgba(255,255,255,.3)}}@media(max-width:480px){.hero-photo-container{width:200px;height:200px}.gift-box{width:240px;height:240px}.gift-bow{font-size:3.5em}.hint-text{font-size:1em;letter-spacing:1px}.hint-icon{font-size:1.8em}.gift-tap-hint{bottom:-70px}.cake{font-size:4em}.scroll-to-next{bottom:20px;padding:10px 20px;font-size:.8em}.wish-section{padding:40px 20px 100px}.wish-message{margin-bottom:80px}.wish-section .scroll-to-next{bottom:30px}.scroll-arrow{font-size:1.3em}.scroll-text{font-size:.75em}}
