@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--pink:#ff729f;--gold:#f7d78c;--cream:#fff6f9;--muted:#c9b9c4;--dark:#07050a}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#07050a;color:var(--cream);font-family:'Cormorant Garamond',serif}body{overflow-x:hidden}.page{position:relative;min-height:100vh;display:none;align-items:center;justify-content:center;padding:60px 20px;overflow:hidden}.page.active{display:flex;animation:pageIn .9s ease both}@keyframes pageIn{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:none}}
#bgMedia{position:fixed;inset:0;z-index:-5;background:#07050a;overflow:hidden}#bgVideo{width:100%;height:100%;object-fit:cover;filter:blur(.4px) saturate(.85) brightness(.5);transform:scale(1.04)}.bgShade{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(18,5,15,.18),rgba(4,2,7,.88) 80%)}.bgGlow{position:absolute;inset:-20%;background:radial-gradient(circle at 20% 20%,rgba(255,114,159,.16),transparent 28%),radial-gradient(circle at 80% 80%,rgba(197,140,255,.13),transparent 30%);animation:glow 8s ease-in-out infinite alternate}@keyframes glow{to{transform:scale(1.08) rotate(2deg);opacity:.72}}
#imageLoop{position:fixed;inset:0;z-index:-3;pointer-events:none;overflow:hidden;opacity:.15}#imageLoop img{position:absolute;width:38vw;height:48vh;object-fit:cover;border-radius:30px;filter:blur(1px);animation:photoFloat 7s ease-in-out infinite alternate}.imageLoop img:nth-child(1){left:5%;top:9%}.imageLoop img:nth-child(2){right:4%;top:18%;animation-delay:-2s}.imageLoop img:nth-child(3){left:30%;bottom:0;animation-delay:-4s}@keyframes photoFloat{from{transform:translateY(15px) rotate(-3deg) scale(1)}to{transform:translateY(-15px) rotate(3deg) scale(1.04)}}
#particles,.heart{pointer-events:none}.heart{position:fixed;bottom:-30px;color:var(--pink);opacity:.7;animation:rise linear forwards;z-index:20;text-shadow:0 0 15px rgba(255,114,159,.5)}@keyframes rise{to{transform:translate(var(--x),-110vh) rotate(220deg);opacity:0}}#confetti{position:fixed;inset:0;pointer-events:none;z-index:50}
.intro,.reveal,.letter,.wish-box,.final{max-width:900px;text-align:center;position:relative;z-index:3}.small{font-size:15px;letter-spacing:4px;text-transform:uppercase;color:#dfcbd5}.monogram{font-family:'Playfair Display';font-size:120px;line-height:1;margin:22px 0;color:var(--gold);text-shadow:0 0 45px rgba(247,215,140,.22)}.typing{font-size:25px;min-height:34px}.btn{border:1px solid rgba(255,255,255,.25);background:linear-gradient(135deg,rgba(255,114,159,.95),rgba(191,107,255,.9));color:white;border-radius:999px;padding:13px 25px;font-family:inherit;font-size:18px;cursor:pointer;box-shadow:0 15px 40px rgba(255,75,145,.18);transition:.25s}.btn:hover{transform:translateY(-3px) scale(1.02)}.ghost{background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}.textbtn{background:none;border:0;color:#d9c8d1;font-family:inherit;font-size:17px;cursor:pointer}.reveal h1,.letter h2,.wish-box h2,.final h1{font-family:'Playfair Display';font-weight:500;font-size:clamp(42px,6vw,78px);line-height:1.08}.line{width:90px;height:1px;background:var(--gold);margin:25px auto}.soft{font-size:26px;color:#dbcbd2}
.photo-hero{display:grid;grid-template-columns:minmax(280px,520px) minmax(280px,500px);gap:65px;align-items:center;max-width:1150px}.photo-frame{padding:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:30px;box-shadow:0 30px 100px rgba(0,0,0,.5)}.photo-frame img{display:block;width:100%;height:620px;object-fit:cover;border-radius:22px}.float-photo{animation:floatCard 5s ease-in-out infinite alternate}@keyframes floatCard{to{transform:translateY(-14px) rotate(1deg)}}.photo-copy h2{font-family:'Playfair Display';font-size:clamp(42px,5vw,72px);line-height:1.03}.photo-copy p,.letter p{font-size:22px;line-height:1.55;color:#e3d5dc}.letter{max-width:780px;background:rgba(10,6,13,.58);border:1px solid rgba(255,255,255,.14);border-radius:28px;padding:48px;backdrop-filter:blur(18px);box-shadow:0 30px 90px rgba(0,0,0,.35)}.letter .pink{color:#ffc2d7}.signature{font-size:21px;color:#e4cbd5;margin:30px 0}
.cinema-wrap{text-align:center;width:min(1000px,94vw);position:relative;z-index:3}.cinema-wrap h2{font-family:'Playfair Display';font-size:clamp(45px,6vw,78px);line-height:1;margin:12px}.cinema-wrap h2 span,.wish-box h2 span,.final h1 span{color:var(--pink)}.cinema-sub{font-size:21px;color:#d8c9d1}.video-card{width:min(360px,76vw);margin:22px auto 16px;padding:8px;border-radius:28px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);box-shadow:0 25px 80px rgba(0,0,0,.45)}.video-card video{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:20px;background:#020204}.video-title{font-size:21px;padding:9px;color:#ffe0ea}.video-strip{display:flex;gap:9px;width:100%;overflow-x:auto;padding:8px 4px 15px;scrollbar-width:thin}.video-thumb{position:relative;flex:0 0 74px;padding:4px;border-radius:12px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);cursor:pointer}.video-thumb video{width:100%;height:105px;object-fit:cover;border-radius:8px;display:block}.video-thumb span{position:absolute;right:6px;bottom:5px;background:rgba(0,0,0,.65);border-radius:10px;padding:1px 5px;font-size:12px}.video-thumb.active{border-color:var(--pink);box-shadow:0 0 0 2px rgba(255,114,159,.25)}
.gallery-page{flex-direction:column}.gallery-title{text-align:center;z-index:3}.gallery-title h2{font-family:'Playfair Display';font-size:clamp(44px,6vw,70px);margin:10px}.gallery-title span{color:var(--gold)}.gallery-title p{font-size:21px}.gallery{width:min(1100px,94vw);display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:25px 0}.pic{aspect-ratio:3/4;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:#111;cursor:pointer;animation:cardIn .7s both}.pic:nth-child(3n){transform:rotate(1.5deg)}.pic:nth-child(4n){transform:rotate(-1.2deg)}.pic img{width:100%;height:100%;object-fit:cover;transition:.5s}.pic:hover img{transform:scale(1.08)}@keyframes cardIn{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1}}
.wish-box{padding:45px 25px}.cake-wrap{width:300px;height:270px;margin:18px auto;position:relative}.cake-glow{position:absolute;inset:20px;background:radial-gradient(circle,rgba(255,114,159,.25),transparent 65%);animation:pulse 1.8s infinite alternate}@keyframes pulse{to{transform:scale(1.15);opacity:.5}}.cake{position:absolute;left:50%;top:55px;transform:translateX(-50%);width:210px;height:155px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.5));transition:1s}.cake .top{position:absolute;left:0;top:35px;width:210px;height:65px;border-radius:50%;background:linear-gradient(#ffe5ee,#f69ab6);border:3px solid #fff0f5}.cake .body{position:absolute;left:12px;top:65px;width:186px;height:75px;border-radius:0 0 22px 22px;background:linear-gradient(90deg,#d95c8a,#ffb5cc,#d95c8a);text-align:center;padding-top:18px;font-weight:700;color:white;line-height:1.05}.cake .plate{position:absolute;left:-15px;bottom:0;width:240px;height:20px;border-radius:50%;background:#f8dce7}.candle{position:absolute;z-index:3;left:96px;top:0;width:18px;height:50px;border-radius:7px;background:repeating-linear-gradient(45deg,#fff 0 8px,#ff729f 8px 16px)}.flame{position:absolute;z-index:4;left:96px;top:-35px;color:var(--gold);font-size:30px;animation:flicker .5s infinite alternate}@keyframes flicker{to{transform:scale(1.2) rotate(4deg);filter:drop-shadow(0 0 12px #ffd76b)}}.cake.cut{transform:translateX(-50%) rotate(-3deg) scale(1.04)}.cake.cut .flame{opacity:0}.done{opacity:0;font-size:25px;color:#ffd6e5;transition:.5s}.done.show{opacity:1;animation:pop .7s both}@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.final{text-shadow:0 10px 50px rgba(0,0,0,.5)}.crown{font-size:90px;color:var(--gold);animation:floatCard 3s ease-in-out infinite alternate}.final h1{font-size:clamp(48px,8vw,92px)}.bigmsg{font-size:27px;line-height:1.4}.divider{font-size:30px;color:var(--pink);margin:20px}.last{font-size:21px;color:#ddcbd4}.date{margin:30px;font-size:17px;letter-spacing:5px;color:var(--gold)}.queen{font-size:26px;color:#ffd0df}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;z-index:100;padding:30px}.lightbox.show{display:flex}.lightbox img{max-width:85vw;max-height:85vh;object-fit:contain;border-radius:15px}.lightbox button{position:absolute;background:none;border:0;color:white;font-size:55px;cursor:pointer}.lightbox #close{right:25px;top:10px}.lightbox #prev{left:20px}.lightbox #next{right:20px}.sound-btn{position:fixed;right:18px;top:18px;z-index:80;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.4);backdrop-filter:blur(12px);color:white;border-radius:50%;width:44px;height:44px;cursor:pointer}
@media(max-width:800px){.photo-hero{grid-template-columns:1fr;gap:25px;max-width:520px}.photo-frame img{height:480px}.letter{padding:28px 22px}.letter p{font-size:19px}.gallery{grid-template-columns:repeat(2,1fr);gap:9px}.gallery-title h2{font-size:45px}.page{padding:50px 15px}.cinema-wrap h2{font-size:48px}.video-card{width:min(310px,78vw)}}
