@import "https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,700&family=Pacifico&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Kalam:wght@300;400;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff9fb;--bg2:#fef3f8;--surface:#fff;--surface2:#fdf0f6;--border:#f2d5e8;--border2:#f8e4f0;--pink:#ff85a1;--pink-d:#f4547a;--rose:#ffb3c6;--peach:#ffcba4;--lavender:#c9b8ff;--lav-d:#9d7ef0;--mint:#8eedc7;--mint-d:#2ec4a0;--yellow:#ffd97d;--sky:#a8d8ea;--text:#3d2450;--text2:#5a3a6e;--muted:#9e7db5;--dim:#e8d4f0;--font-display:"Pacifico", cursive;--font-body:"Nunito", sans-serif;--font-hand:"Kalam", cursive;--font-sans:"DM Sans", sans-serif}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);background-image:radial-gradient(at 0 0,#ff85a11f 0%,#0000 50%),radial-gradient(at 100% 0,#c9b8ff26 0%,#0000 50%),radial-gradient(at 50% 100%,#8eedc71a 0%,#0000 50%);overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--pink), var(--lavender));border-radius:3px}@keyframes float-cute{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-18px)rotate(3deg)}}@keyframes float-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes confetti{0%{opacity:1;transform:translateY(-50px)rotate(0)}to{opacity:0;transform:translateY(110vh)rotate(720deg)}}@keyframes morph{0%,to{border-radius:60% 40% 55% 45%/55% 45% 60% 40%}50%{border-radius:40% 60% 45% 55%/45% 55% 40% 60%}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes wiggle{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.25)}75%{transform:scale(1.1)}}@keyframes sparkle-spin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.3)}to{transform:rotate(360deg)scale(1)}}@keyframes shimmer-move{0%{background-position:-200%}to{background-position:200%}}@keyframes bounce-in{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.08)}70%{transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes drift{0%{transform:translate(0)rotate(0)}33%{transform:translate(20px,-15px)rotate(120deg)}66%{transform:translate(-15px,10px)rotate(240deg)}to{transform:translate(0)rotate(360deg)}}@keyframes petal-bloom{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}@keyframes star-spin{0%,to{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.2)}}@keyframes crown-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes music-sway{0%,to{transform:rotate(0)}50%{transform:rotate(10deg)}}@keyframes globe-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gem-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.5)}}@keyframes flame-flick{0%{transform:scaleY(1)scaleX(1)}to{transform:scaleY(1.4)scaleX(.75)}}@keyframes sun-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes sun-pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes rocket-hover{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-6px)rotate(6deg)}}@keyframes infinity-draw{0%,to{stroke-dashoffset:0}50%{stroke-dashoffset:60px}}@keyframes lightning-flash{0%,to{opacity:1}50%{opacity:.5}}@keyframes shield-glow{0%,to{fill-opacity:.2}50%{fill-opacity:.5}}@keyframes music-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}@keyframes arrow-move{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes candle-flicker{0%{transform:scale(1)translateY(0)}to{transform:scale(.8,1.3)translateY(-2px)}}@keyframes cake-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes diamond-spin{0%,to{transform:rotate(0)scale(1)}50%{transform:rotate(18deg)scale(1.1)}}@keyframes flower-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes petal-open{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}#root{min-height:100vh}.splash-overlay{z-index:99999;background:linear-gradient(135deg,#fff0f5 0%,#ffe4e1 35%,#f3efff 70%,#e6fbf4 100%);justify-content:center;align-items:center;transition:opacity .7s,transform .7s;animation:.5s both splash-in;display:flex;position:fixed;inset:0;overflow:hidden}.splash-overlay.splash-out{opacity:0;pointer-events:none;transform:scale(1.06)}.splash-balloon{filter:drop-shadow(0 6px 15px #ff85a14d);animation:linear both balloon-rise;position:absolute;bottom:-80px}@keyframes balloon-rise{0%{opacity:0;bottom:-80px;transform:translate(0)rotate(0)}10%{opacity:1}50%{transform:translate(18px)rotate(6deg)}75%{transform:translate(-12px)rotate(-4deg)}to{opacity:0;bottom:110%;transform:translate(0)rotate(0)}}.splash-burst{animation:1.2s cubic-bezier(.22,.61,.36,1) both burst-up;position:absolute;top:110%}@keyframes burst-up{0%{opacity:0;top:110%;transform:scale(.4)rotate(-20deg)}40%{opacity:1;transform:scale(1.2)rotate(10deg)}80%{opacity:.8}to{opacity:0;top:-10%;transform:scale(.8)rotate(5deg)}}.splash-center{z-index:2;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:4px dashed var(--border);background:#ffffff80;border-radius:40px;flex-direction:column;align-items:center;gap:16px;padding:32px;animation:.8s both jelly-bounce;display:flex;position:relative;box-shadow:0 16px 48px #ff85a11f}@keyframes jelly-bounce{0%{transform:scale(.9)}45%{transform:scale(1.05)}70%{transform:scale(.98)}to{transform:scale(1)}}.splash-icons{gap:16px;margin-bottom:8px;animation:.7s cubic-bezier(.34,1.56,.64,1) .3s both pop-in;display:flex}.splash-icons svg{filter:drop-shadow(0 4px 8px #ff85a14d)}.splash-hb{font-family:var(--font-hand);color:var(--pink-d);letter-spacing:.08em;text-transform:uppercase;font-size:clamp(1.2rem,5vw,1.8rem);font-weight:700;animation:.7s .5s both slide-up}.splash-name{font-family:var(--font-display);background:linear-gradient(135deg,#ff6b9d 0%,#ff9a9e 35%,#a18cd1 70%,#8eedc7 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 6px 12px #ff6b9d4d);-webkit-background-clip:text;background-clip:text;font-size:clamp(4.5rem,18vw,9.5rem);line-height:1;animation:.9s cubic-bezier(.34,1.56,.64,1) .7s both splash-name-in}@keyframes splash-name-in{0%{opacity:0;transform:scale(.4)translateY(40px)}60%{transform:scale(1.06)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.splash-sub{font-family:var(--font-hand);color:var(--text2);letter-spacing:.04em;font-size:clamp(1.2rem,4vw,1.8rem);font-weight:700;animation:.7s 1.1s both slide-up}.splash-date{font-family:var(--font-hand);color:var(--muted);letter-spacing:.14em;font-size:1.15rem;animation:.7s 1.5s both fade-in}.splash-overlay:before{content:"";pointer-events:none;background:radial-gradient(60% 40%,#ff85a126 0%,#0000 70%),radial-gradient(80% 60%,#c9b8ff1f 0%,#0000 80%);animation:3s ease-in-out infinite alternate splash-glow;position:absolute;inset:0}@keyframes splash-glow{0%{opacity:.6;transform:scale(1)}to{opacity:1;transform:scale(1.08)}}@keyframes splash-in{0%{opacity:0}to{opacity:1}}.splash-skip{font-family:var(--font-hand);color:var(--pink-d);letter-spacing:.06em;cursor:pointer;font-size:14px;font-weight:700;transition:color .2s,transform .2s;animation:1s 1.8s both fade-in;position:absolute;bottom:28px;right:28px}.splash-skip:hover{color:var(--pink);transform:scale(1.08)}.svg-star{transform-origin:50%;animation:3s ease-in-out infinite star-spin}.svg-heart{transform-origin:50%;animation:1.4s ease-in-out infinite heartbeat}.svg-sparkle,.svg-sparkle-2{transform-origin:50%;animation:4s linear infinite sparkle-spin}.svg-sparkle-dot{animation:2s ease-in-out infinite blink}.svg-crown{transform-origin:50%;animation:2s ease-in-out infinite crown-bounce}.svg-crown-gem{animation:1.8s ease-in-out infinite gem-twinkle}.svg-rocket-body{transform-origin:50%;animation:2.5s ease-in-out infinite rocket-hover}.svg-rocket-flame{transform-origin:top;animation:.4s ease-in-out infinite alternate flame-flick}.svg-diamond{transform-origin:50%;animation:4s ease-in-out infinite diamond-spin}.svg-cake-base{transform-origin:bottom;animation:2s ease-in-out infinite cake-bounce}.svg-flame-1,.svg-flame-2,.svg-flame-3{transform-origin:bottom;animation:.6s ease-in-out infinite alternate candle-flicker}.svg-flame-2{animation-delay:.2s}.svg-flame-3{animation-delay:.4s}.svg-sun-core{animation:2s ease-in-out infinite sun-pulse}.svg-sun-rays{transform-origin:50%;animation:8s linear infinite sun-spin}.svg-infinity{stroke-dasharray:60;stroke-dashoffset:60px;animation:3s ease-in-out infinite infinity-draw}.svg-lightning{animation:2s ease-in-out infinite lightning-flash}.svg-globe{transform-origin:50%;animation:8s linear infinite globe-spin}.svg-globe-line{animation:3s ease-in-out infinite blink}.svg-music-note{transform-origin:0 100%;animation:1.5s ease-in-out infinite music-sway}.svg-music-dot1,.svg-music-dot2{animation:1.5s ease-in-out infinite music-bounce}.svg-music-dot2{animation-delay:.25s}.svg-shield{animation:2s ease-in-out infinite shield-glow}.svg-flower-center{transform-origin:50%;animation:5s linear infinite flower-spin}.svg-petal-1,.svg-petal-2{transform-origin:50%;animation:2s ease-in-out infinite petal-open}.svg-petal-3,.svg-petal-4{transform-origin:50%;animation:2s ease-in-out .5s infinite petal-open}.svg-arrow{animation:1.2s ease-in-out infinite arrow-move}body:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(2px at 8% 15%,#ff85a180 100%,#0000),radial-gradient(2.5px at 18% 40%,#c9b8ff99 100%,#0000),radial-gradient(2px at 28% 80%,#ffcba480 100%,#0000),radial-gradient(3px at 40% 20%,#ffd97d80 100%,#0000),radial-gradient(2px at 55% 60%,#8eedc780 100%,#0000),radial-gradient(2.5px at 70% 30%,#ff85a166 100%,#0000),radial-gradient(2px at 82% 75%,#c9b8ff80 100%,#0000),radial-gradient(3px at 92% 10%,#ffd97d66 100%,#0000),radial-gradient(2px at 6% 60%,#8eedc766 100%,#0000),radial-gradient(2px at 95%,#ff85a166 100%,#0000);position:fixed;inset:0}.ticker-wrap{background:linear-gradient(90deg, var(--pink), var(--lavender), var(--peach), var(--mint), var(--pink));white-space:nowrap;font-family:var(--font-hand);color:#fff;letter-spacing:.06em;background-size:200% 100%;padding:10px 0;font-size:14px;font-weight:700;animation:4s linear infinite shimmer-move;overflow:hidden;box-shadow:0 2px 20px #ff85a159}.ticker-inner{white-space:nowrap;align-items:center;animation:20s linear infinite ticker;display:inline-flex}.ticker-item{align-items:center;gap:8px;margin-right:40px;display:inline-flex}.navbar{z-index:1000;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:2px solid var(--border);background:#fff9fbd1;justify-content:space-between;align-items:center;padding:14px 36px;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{font-family:var(--font-display);color:var(--pink-d);letter-spacing:.02em;align-items:center;gap:8px;font-size:15px;display:flex}.nav-links{gap:24px;display:flex}.nav-link{font-family:var(--font-body);color:var(--muted);letter-spacing:.03em;font-size:13px;font-weight:700;text-decoration:none;transition:color .2s}.nav-link:hover{color:var(--pink-d)}.nav-end{align-items:center;gap:8px;display:flex}.hero-section{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:120px 24px 80px;display:flex;position:relative;overflow:hidden}.hero-blob{pointer-events:none;filter:blur(8px);border-radius:50%;position:absolute}.blob1{background:radial-gradient(circle,#ffb3c647,#0000 70%);width:560px;height:560px;animation:8s ease-in-out infinite morph;top:50%;left:50%;transform:translate(-50%,-50%)}.blob2{background:radial-gradient(circle,#c9b8ff38,#0000 70%);width:380px;height:380px;animation:7s ease-in-out infinite float-slow;top:20%;left:5%}.blob3{background:radial-gradient(circle,#8eedc72e,#0000 70%);width:280px;height:280px;animation:9s ease-in-out 2s infinite float-slow;bottom:15%;right:5%}.hero-name{font-family:var(--font-display);text-align:center;background:linear-gradient(135deg,#ff6b9d 0%,#c77dff 40%,#ff9f6b 80%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 24px #ff85a159);-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:clamp(3.5rem,12vw,8.5rem);font-weight:400;line-height:1;animation:.8s .2s both slide-up}.hero-sub{font-family:var(--font-hand);color:var(--lav-d);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;gap:10px;margin-bottom:24px;font-size:clamp(1rem,3.5vw,1.8rem);animation:.8s .35s both slide-up;display:flex}.hero-desc{text-align:center;max-width:380px;color:var(--muted);margin-bottom:48px;font-size:1.05rem;font-weight:500;line-height:1.75;animation:.8s .5s both slide-up}.btn-primary{background:linear-gradient(135deg, var(--pink), var(--pink-d));color:#fff;font-family:var(--font-body);letter-spacing:.02em;border-radius:100px;align-items:center;gap:10px;padding:15px 40px;font-size:15px;font-weight:800;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 8px 32px #ff547a59,0 2px 8px #ff547a33}.btn-primary:hover{transform:scale(1.07)translateY(-2px);box-shadow:0 16px 48px #ff547a73,0 4px 16px #ff547a40}.float-badge{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:var(--font-body);background:#ffffffd9;border:2px solid;border-radius:100px;align-items:center;gap:8px;padding:9px 18px;font-size:12px;font-weight:800;animation:4.5s ease-in-out infinite float-cute;display:flex;position:absolute;box-shadow:0 4px 20px #ff85a126}.section-wrap{max-width:1100px;margin:0 auto;padding:80px 24px;position:relative}.section-head{text-align:center;margin-bottom:64px}.section-tag{font-family:var(--font-hand);letter-spacing:.08em;opacity:.85;justify-content:center;align-items:center;gap:6px;margin-bottom:14px;font-size:14px;display:flex}.section-title{font-family:var(--font-display);color:var(--text);font-size:clamp(2rem,5vw,3.2rem);line-height:1.15}.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.card{background:var(--surface);border:2px solid var(--border2);cursor:default;border-radius:24px;padding:32px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;position:relative;overflow:hidden;box-shadow:0 4px 24px #ff85a112,0 1px 4px #0000000a}.card:hover{box-shadow:0 12px 40px #ff85a12e,0 4px 16px #0000000f}.card:before{content:"";background:radial-gradient(circle at top right, var(--card-accent,var(--pink)) 0%, transparent 70%);opacity:.18;pointer-events:none;width:90px;height:90px;position:absolute;top:0;right:0}.card:after{content:"";background:var(--card-accent,var(--lavender));opacity:.07;pointer-events:none;border-radius:50%;width:80px;height:80px;position:absolute;bottom:-20px;left:-20px}.card-icon{margin-bottom:16px}.card-num{font-family:var(--font-display);margin-bottom:8px;font-size:clamp(2.2rem,4vw,3rem);line-height:1}.card-label{color:var(--muted);font-size:14px;font-weight:600;line-height:1.5}.feat-card{padding:28px}.feat-tag{font-family:var(--font-body);color:var(--mint-d);letter-spacing:.05em;background:#2ec4a01a;border:1.5px solid #2ec4a04d;border-radius:100px;align-items:center;gap:5px;padding:3px 10px;font-size:10px;font-weight:800;display:flex;position:absolute;top:16px;right:16px}.feat-dot{background:var(--mint-d);border-radius:50%;width:5px;height:5px;animation:1.2s infinite blink}.feat-title{letter-spacing:.01em;color:var(--text);margin-bottom:10px;font-size:1rem;font-weight:800}.feat-desc{color:var(--muted);font-size:14px;font-weight:500;line-height:1.7}.cute-divider{color:var(--pink);opacity:.5;justify-content:center;align-items:center;gap:12px;padding:20px 0;font-size:20px;display:flex}.timeline{position:relative}.timeline-line{background:linear-gradient(to bottom, var(--pink), var(--lavender), var(--mint));opacity:.45;border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:23px}.timeline-row{gap:32px;margin-bottom:44px;display:flex;position:relative}.timeline-dot{background:var(--surface);z-index:1;border:2.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:relative;box-shadow:0 4px 16px #ff85a126}.timeline-content{padding-top:8px}.timeline-year{font-family:var(--font-hand);color:var(--pink-d);font-size:13px;font-weight:700}.timeline-label{color:var(--text);font-size:15px;font-weight:800}.timeline-desc{color:var(--muted);margin-top:4px;font-size:14px;font-weight:500;line-height:1.65}.wish-card{background:var(--surface);border:2px solid;border-radius:24px;padding:32px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;box-shadow:0 4px 24px #ff85a112}.wish-card:hover{box-shadow:0 12px 40px #ff85a12e}.wish-from{font-family:var(--font-hand);letter-spacing:.04em;align-items:center;gap:10px;margin-bottom:16px;font-size:13px;font-weight:700;display:flex}.wish-msg{font-family:var(--font-body);color:var(--text2);font-size:clamp(1rem,2vw,1.15rem);font-style:italic;font-weight:400;line-height:1.8}.final-card{text-align:center;border:4px dashed var(--pink);background:linear-gradient(135deg,#fff2f6 0%,#f9f4ff 50%,#f2fff9 100%);border-radius:40px;padding:48px 32px;position:relative;overflow:hidden;box-shadow:0 20px 50px #ff85a12e}.final-glow{pointer-events:none;background:radial-gradient(#ff85a11f,#0000 65%);position:absolute;inset:0}.final-card:before{content:"";background:radial-gradient(circle,#c9b8ff40,#0000 70%);border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-40px}.final-card:after{content:"";background:radial-gradient(circle,#8eedc733,#0000 70%);border-radius:50%;width:120px;height:120px;position:absolute;bottom:-30px;left:-30px}.final-title{font-family:var(--font-display);color:var(--text);margin-bottom:16px;font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.2}.final-desc{color:var(--muted);max-width:440px;margin:0 auto 32px;font-size:1.05rem;font-weight:500;line-height:1.8}.final-date{font-family:var(--font-hand);color:var(--lav-d);letter-spacing:.08em;font-size:14px;font-weight:700}.footer{border-top:2px solid var(--border);font-family:var(--font-body);background:#fff9fbcc;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:32px 24px;font-size:13px;font-weight:600;display:flex}.deco-float{pointer-events:none;opacity:.55;animation:12s ease-in-out infinite drift;position:absolute}.section-wave{z-index:1;width:100%;line-height:0;position:relative;overflow:hidden}
