:root{--wine:#681535;--wine2:#8f2850;--pink:#e75686;--pink2:#f7a8bd;--cream:#fff9f6;--gold:#c99b53;--ink:#3f1730;--shadow:0 14px 40px rgba(87,22,50,.16)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:#f5eee9}body{margin:0;font-family:Montserrat,Arial,sans-serif;color:var(--ink);background:var(--cream);overflow-x:hidden;padding-bottom:96px}button,a{font:inherit}.section{position:relative;padding:72px 18px}.section-inner{max-width:520px;margin:auto;text-align:center}.intro{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 50% 35%,#a53b66 0,#5b1638 48%,#260b20 100%);color:white;transition:opacity .8s ease,visibility .8s ease}.intro.hide{opacity:0;visibility:hidden}.intro-glow{position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(255,196,211,.16);filter:blur(35px);animation:pulse 2s infinite}.intro-ring{width:220px;height:220px;border:2px solid #d9b574;border-radius:50%;display:grid;place-items:center;position:relative;animation:ringIn 1.5s cubic-bezier(.2,.8,.2,1)}.intro-monogram,.monogram{font-family:"Cormorant Garamond",serif;font-size:74px;color:#f5d597;text-shadow:0 0 18px rgba(255,223,164,.42)}.intro-monogram span,.monogram span{font-size:.55em;margin:0 2px}.intro-flower{position:absolute;color:#ffc4d4;font-size:36px;filter:drop-shadow(0 5px 9px rgba(0,0,0,.25))}.intro-flower.f1{top:-16px;left:34px}.intro-flower.f2{right:-10px;bottom:38px}.intro-flower.f3{left:-12px;bottom:42px}.intro-kicker{letter-spacing:3px;margin:30px 0 8px;animation:fadeUp 1s 1s both}.intro-title{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:27px;line-height:1.25;margin:0;animation:fadeUp 1s 1.4s both}.intro-title em{font-family:"Great Vibes",cursive;color:#ffc0d1;font-size:44px;font-weight:400}.hero{min-height:92vh;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(226,106,146,.45),transparent 34%),linear-gradient(180deg,#4c1234 0%,#81234c 55%,#a3486b 100%)}.hero:before,.hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;filter:blur(50px);background:rgba(255,172,201,.18)}.hero:before{top:-60px;left:-80px}.hero:after{bottom:30px;right:-90px}.hero-stars{position:absolute;inset:0;background-image:radial-gradient(circle,#ffd8b1 0 1px,transparent 2px);background-size:45px 45px;opacity:.45;animation:drift 14s linear infinite}.corner-flower{position:absolute;font-size:110px;color:#f7a8bd;opacity:.55;filter:drop-shadow(0 8px 8px rgba(0,0,0,.18))}.top-left{top:-30px;left:-30px;transform:rotate(-20deg)}.top-right{right:-35px;bottom:70px;transform:rotate(25deg)}.menu-btn{position:absolute;top:22px;right:18px;width:58px;height:58px;border:0;border-radius:50%;background:rgba(197,53,103,.93);box-shadow:0 8px 20px rgba(0,0,0,.22);z-index:5}.menu-btn span{display:block;width:25px;height:2px;background:#fff;margin:5px auto}.hero-content{position:relative;z-index:2;padding:30px 20px 90px}.monogram-ring{width:225px;height:225px;border:2px solid #d7b469;border-radius:50%;display:grid;place-items:center;margin:0 auto 34px;position:relative}.monogram-ring:before,.monogram-ring:after{content:"✿";position:absolute;color:#ffc0d2;font-size:45px}.monogram-ring:before{left:-16px;top:32px}.monogram-ring:after{right:-14px;bottom:28px}.hero-small{font-family:"Cormorant Garamond",serif;font-size:24px;margin:0 0 6px}.hero h2{font-family:"Cormorant Garamond",serif;font-size:28px;font-weight:500;margin:0}.script-title{font-family:"Great Vibes",cursive;font-size:50px;color:#ffbdd0;margin-top:8px}.ornament{display:flex;align-items:center;justify-content:center;gap:10px;color:#ffd4df}.ornament span{width:80px;height:1px;background:#ffd4df}.scroll-down{border:0;background:none;color:#fff;font-size:54px;line-height:.5;margin-top:20px;animation:bounce 1.7s infinite}.hero-curve{position:absolute;left:-10%;right:-10%;bottom:-75px;height:150px;border-radius:50% 50% 0 0;background:var(--cream);border-top:3px solid var(--gold)}.invite{padding-top:52px;background:radial-gradient(circle at 20% 20%,#fff 0,#fff8f5 62%,#faeee9 100%)}.couple-name{font-family:"Great Vibes",cursive;font-size:47px;font-weight:400;margin:0 0 22px}.couple-name span{color:var(--pink);font-family:serif;font-size:.7em}.gold-divider{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--gold);margin:10px 0 25px}.gold-divider i{width:110px;height:1px;background:var(--gold)}.date-row{display:flex;align-items:center;justify-content:center;gap:14px;font-family:"Cormorant Garamond",serif;font-size:23px;letter-spacing:3px}.icon{color:var(--pink);font-size:28px}.countdown-label{max-width:390px;margin:26px auto 14px;padding:9px;border-radius:999px;background:linear-gradient(90deg,#ed739b,#d73d73);color:#fff;font-family:"Cormorant Garamond",serif;font-size:19px;letter-spacing:1px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.countdown div{background:#fff;border-radius:18px;padding:14px 5px;box-shadow:0 10px 24px rgba(106,34,61,.12)}.countdown strong{display:block;font-family:"Cormorant Garamond",serif;color:var(--pink);font-size:43px;line-height:1}.countdown span{font-family:"Cormorant Garamond",serif;font-weight:700;font-size:15px}.primary-btn{border:2px solid #d5a75b;background:linear-gradient(135deg,#ed6e9b,#c82766);color:white;padding:15px 24px;border-radius:999px;box-shadow:0 10px 25px rgba(185,34,92,.3);font-family:"Cormorant Garamond",serif;font-size:22px;cursor:pointer}.invite .primary-btn{margin-top:28px;min-width:300px}.card{max-width:540px;margin:auto;background:rgba(255,255,255,.72);border:1px solid rgba(230,171,190,.45);box-shadow:var(--shadow);border-radius:28px}.day{background:linear-gradient(#fff8f6,#fdebea)}.day-card{padding:24px;display:grid;grid-template-columns:1fr;gap:25px}.couple-portrait{height:340px;border-radius:50% 50% 45% 45%;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 35%,#fff 0,#f8d9dc 55%,#e9b3bd 100%);border:3px solid #d5ad68}.portrait-halo{position:absolute;inset:20px;border-radius:50%;border:1px solid rgba(255,255,255,.75)}.groom,.bride{position:absolute;bottom:32px;width:46%;height:72%}.groom{left:12%}.bride{right:8%}.head{position:absolute;width:66px;height:78px;border-radius:46% 46% 50% 50%;background:#d7a486;top:10px;left:50%;transform:translateX(-50%)}.groom .head:before{content:"";position:absolute;width:70px;height:32px;background:#171417;border-radius:60% 60% 18% 18%;top:-5px;left:-2px}.body{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:130px;height:175px;border-radius:45px 45px 12px 12px}.groom .body{background:linear-gradient(90deg,#17171b,#3d3c42);clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}.groom .body:before{content:"";position:absolute;left:50%;transform:translateX(-50%);width:38px;height:78px;background:#f8f8f4;clip-path:polygon(0 0,100% 0,73% 100%,27% 100%)}.bride .body{background:linear-gradient(90deg,#fff,#f1e2db);clip-path:polygon(32% 0,68% 0,100% 100%,0 100%)}.veil{position:absolute;top:0;left:13px;width:120px;height:190px;border-radius:55% 55% 20% 20%;background:rgba(255,255,255,.58);transform:rotate(-6deg)}.bride .head:before{content:"";position:absolute;inset:-6px -8px auto;height:35px;background:#252026;border-radius:50% 50% 35% 35%}.portrait-flowers{position:absolute;bottom:10px;left:15px;font-size:46px;color:#e9789e;transform:rotate(-12deg)}.day-info{text-align:left;padding:5px 10px 12px}.day-info h2,.section-title h2{font-family:"Cormorant Garamond",serif;font-size:38px;margin:0}.mini-divider{width:130px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);margin:10px 0 20px}.day-info p{display:flex;gap:14px;align-items:flex-start;font-family:"Cormorant Garamond",serif;font-size:22px}.day-info p span{color:var(--pink);font-size:29px}.outline-btn{display:inline-flex;gap:10px;text-decoration:none;color:#c43c6d;border:1px solid #efb2c4;border-radius:999px;padding:12px 20px;background:#fff5f6;box-shadow:0 8px 20px rgba(100,25,50,.1)}.program{background:#fff}.section-title{text-align:center;margin-bottom:35px}.section-title small{font-family:"Great Vibes",cursive;color:var(--pink);font-size:32px}.timeline{max-width:520px;margin:auto;position:relative}.timeline:before{content:"";position:absolute;left:93px;top:15px;bottom:15px;width:2px;background:#efbfd0}.timeline-item{display:grid;grid-template-columns:70px 18px 1fr;gap:14px;margin:0 0 24px;align-items:start}.time{font-weight:700;color:var(--wine2);padding-top:4px}.dot{width:16px;height:16px;border-radius:50%;background:var(--pink);border:4px solid #ffe4ec;box-shadow:0 0 0 2px var(--pink)}.event{background:#fff8f8;border:1px solid #f2d2dc;border-radius:18px;padding:15px;box-shadow:0 8px 18px rgba(85,25,47,.07)}.event h3{font-family:"Cormorant Garamond",serif;font-size:23px;margin:0 0 5px}.event p{font-size:13px;line-height:1.5;margin:0;color:#7b5a68}.gallery{background:linear-gradient(180deg,#fff7f5,#fcebec)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:520px;margin:auto}.gallery-card{height:210px;border-radius:23px;position:relative;overflow:hidden;box-shadow:var(--shadow);background-size:cover;background-position:center}.gallery-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(63,17,42,.72))}.gallery-card span{position:absolute;bottom:15px;left:14px;right:14px;color:#fff;font-family:"Cormorant Garamond",serif;font-size:20px;z-index:1}.g1{background:radial-gradient(circle at 65% 25%,#ffe7ed 0 13%,transparent 14%),linear-gradient(145deg,#91405e,#f0adbc)}.g2{background:radial-gradient(circle at 30% 35%,#ffe5ee 0 14%,transparent 15%),linear-gradient(145deg,#6a203f,#d66f93)}.g3{background:radial-gradient(circle at 55% 25%,#fff1e8 0 13%,transparent 14%),linear-gradient(145deg,#b96080,#f0c7cf)}.g4{background:radial-gradient(circle at 35% 30%,#ffe7ef 0 13%,transparent 14%),linear-gradient(145deg,#722544,#cf7997)}.gift{background:radial-gradient(circle at top,#fff 0,#fcecee 70%)}.gift-note{max-width:520px;margin:0 auto 24px;text-align:center;line-height:1.7;color:#6d4b5b}.bank-card{max-width:520px;height:230px;margin:18px auto;border-radius:26px;padding:22px;color:white;position:relative;overflow:hidden;box-shadow:0 18px 35px rgba(79,18,45,.25)}.bank-card:before,.bank-card:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}.bank-card:before{width:220px;height:220px;right:-70px;top:-90px}.bank-card:after{width:140px;height:140px;left:-55px;bottom:-70px}.bride-card{background:linear-gradient(135deg,#b93268,#6b173b)}.groom-card{background:linear-gradient(135deg,#7f294d,#321127)}.bank-top,.bank-bottom{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}.bank-top span{font-weight:800;letter-spacing:1px}.bank-top b{font-size:11px;letter-spacing:2px}.chip{width:48px;height:36px;border-radius:8px;background:linear-gradient(135deg,#f8d78d,#b98a35);margin:28px 0 20px;position:relative;z-index:2}.chip:before,.chip:after{content:"";position:absolute;background:rgba(95,62,13,.35)}.chip:before{width:100%;height:1px;top:50%}.chip:after{height:100%;width:1px;left:50%}.card-number{font-family:"Cormorant Garamond",serif;font-size:28px;letter-spacing:2px;position:relative;z-index:2;margin-bottom:22px}.bank-bottom span{font-size:12px;letter-spacing:1.5px}.copy-btn{border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.12);color:white;border-radius:999px;padding:8px 13px}.security-note{text-align:center;font-size:12px;color:#927381}.rsvp{background:linear-gradient(180deg,#fcecef,#fff9f6)}.rsvp-card{max-width:520px;margin:auto;background:#fff;border:1px solid #f0cad6;border-radius:28px;padding:28px 22px;box-shadow:var(--shadow)}form{display:grid;gap:16px}label{display:grid;gap:8px;font-size:13px;font-weight:600}input,select{width:100%;padding:14px;border-radius:14px;border:1px solid #e8c3cf;background:#fffafa;font:inherit;color:var(--ink)}.checkbox{display:flex;grid-template-columns:auto 1fr;align-items:center}.checkbox input{width:18px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:84px;padding:8px 7px max(8px,env(safe-area-inset-bottom));background:rgba(255,250,248,.94);backdrop-filter:blur(14px);display:grid;grid-template-columns:repeat(5,1fr);z-index:90;border-top:1px solid #efccd7;box-shadow:0 -8px 24px rgba(80,20,45,.1)}.bottom-nav button{border:0;background:none;color:#553040;display:flex;flex-direction:column;align-items:center;gap:3px}.bottom-nav span{font-size:25px}.bottom-nav small{font-size:9px}.music-btn{position:fixed;right:14px;bottom:92px;width:78px;height:78px;border-radius:50%;border:3px solid #efcf76;background:linear-gradient(145deg,#d92f70,#921847);color:white;z-index:100;box-shadow:0 0 0 7px rgba(239,80,137,.2),0 10px 26px rgba(103,16,55,.34);display:grid;place-items:center}.music-btn .note{font-size:28px;position:absolute;top:12px}.music-btn .play{font-size:20px;position:absolute;bottom:12px}.music-btn.playing{animation:spinSlow 7s linear infinite}.side-menu{position:fixed;top:0;right:0;bottom:0;width:min(82vw,330px);background:linear-gradient(180deg,#71183d,#3b1029);z-index:200;color:white;padding:70px 25px 25px;transform:translateX(105%);transition:.4s ease;box-shadow:-18px 0 45px rgba(0,0,0,.28)}.side-menu.open{transform:translateX(0)}.side-menu h3{font-family:"Great Vibes",cursive;font-size:42px;margin:0 0 25px}.side-menu button:not(.close-menu){display:block;width:100%;padding:14px 0;border:0;border-bottom:1px solid rgba(255,255,255,.18);background:none;color:white;text-align:left}.close-menu{position:absolute;right:18px;top:18px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:none;color:white;font-size:28px}.toast{position:fixed;left:50%;bottom:190px;transform:translate(-50%,20px);background:#351125;color:#fff;padding:12px 18px;border-radius:999px;z-index:300;opacity:0;pointer-events:none;transition:.3s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}.petals{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}.petal{position:absolute;top:-30px;width:16px;height:11px;border-radius:70% 30% 70% 30%;background:linear-gradient(135deg,#ffd6e1,#ec7ca2);opacity:.72;animation:fall linear forwards}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@keyframes pulse{50%{transform:scale(1.15);opacity:.55}}@keyframes ringIn{from{opacity:0;transform:scale(.55) rotate(-25deg)}to{opacity:1;transform:none}}@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes bounce{50%{transform:translateY(9px)}}@keyframes drift{to{background-position:45px 45px}}@keyframes fall{to{transform:translate(var(--x),110vh) rotate(720deg);opacity:.1}}@keyframes spinSlow{to{transform:rotate(360deg)}}
@media(min-width:600px){body{max-width:600px;margin:auto;box-shadow:0 0 60px rgba(58,16,36,.2)}.bottom-nav{left:50%;right:auto;width:600px;transform:translateX(-50%)}.music-btn{right:calc((100vw - 600px)/2 + 14px)}.side-menu{right:calc((100vw - 600px)/2)}.day-card{grid-template-columns:1fr 1fr;align-items:center}.couple-portrait{height:360px}.gallery-card{height:250px}}
