:root{--wine:#5a1729;--wine2:#3b0d1c;--gold:#b57a2a;--gold2:#e7c979;--cream:#fffaf0;--paper:#f7eedf;--ink:#321822;--muted:#806d70;--shadow:0 24px 80px rgba(48,18,28,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#24131a;color:var(--ink);font-family:'DM Sans',sans-serif}button,a{font:inherit}.site{overflow:hidden;background:var(--cream)}.locked{height:100vh;overflow:hidden}
.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#8c344d 0,#5a1729 42%,#2d0c17 100%);color:#fff;transition:opacity 1s,visibility 1s}.intro.hide{opacity:0;visibility:hidden;pointer-events:none}.intro-inner{text-align:center;position:relative;z-index:2;padding:30px}.monogram{font-family:'Great Vibes',cursive;font-size:76px;line-height:1;color:var(--gold2);text-shadow:0 4px 20px #0005}.monogram span{font-family:'Cormorant Garamond';font-size:.45em;color:#fff}.eyebrow{letter-spacing:.25em;text-transform:uppercase;font-size:11px;color:var(--gold);font-weight:600}.intro h1{font:400 clamp(48px,10vw,92px)/.9 'Great Vibes',cursive;margin:24px 0 16px}.intro h1 span{font-family:'Cormorant Garamond';font-size:.5em}.intro-date{letter-spacing:.35em;font-size:13px}.open-btn,.btn{display:inline-flex;align-items:center;gap:14px;padding:15px 24px;border:1px solid var(--gold);border-radius:999px;background:transparent;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:11px;cursor:pointer;transition:.3s}.open-btn:hover,.btn:hover{background:var(--gold);color:#fff;transform:translateY(-2px)}.tap{font-size:10px;opacity:.55;letter-spacing:.2em;margin-top:18px}.intro-flower{position:absolute;width:420px;height:420px;border:1px solid #e7c97955;border-radius:50%;filter:blur(.1px)}.flower-a{top:-220px;left:-180px}.flower-b{bottom:-230px;right:-180px}
.music{position:fixed;z-index:90;right:18px;top:18px;border:1px solid #fff6;background:#5a1729dd;color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer}.music-note{position:fixed;z-index:89;right:28px;top:62px;color:var(--gold2);font-size:12px;opacity:0;transition:.4s}.music-note.show{opacity:1;transform:translateY(-8px)}
.section{position:relative;min-height:100svh;display:grid;place-items:center;padding:80px 22px;overflow:hidden}.content{width:min(1120px,100%);margin:auto}.narrow{width:min(720px,100%);text-align:center}.hero{background:radial-gradient(circle at 50% 35%,#fff 0,#f9eedf 50%,#eedbc6 100%);grid-template-columns:1.05fr .95fr;gap:20px;padding:70px 7vw}.hero:before,.story:before,.people:before,.rsvp:before{content:'';position:absolute;inset:24px;border:1px solid #b57a2a55;pointer-events:none}.hero-copy{position:relative;z-index:2}.hero h2{font:500 clamp(60px,9vw,108px)/.82 'Great Vibes',cursive;color:var(--wine);margin:24px 0 10px}.hero h2 i{font:normal .5em 'Cormorant Garamond';color:var(--gold)}.script{font:400 30px 'Great Vibes',cursive;color:var(--gold)}.date{font-size:14px;letter-spacing:.12em}.venue{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:30px}.hero .btn,.rsvp .btn{color:var(--wine)}.hero .btn:hover,.rsvp .btn:hover{color:#fff}.hero-art{display:grid;place-items:center}.couple-svg{width:min(100%,520px);filter:drop-shadow(0 18px 30px #5a172922);animation:float 5s ease-in-out infinite}@keyframes float{50%{transform:translateY(-10px)}}
.story{background:var(--cream)}.story:after,.people:after,.rsvp:after{content:'✽';position:absolute;font-size:280px;color:#b57a2a09;z-index:0}.story .content,.people .content,.rsvp .content{position:relative;z-index:2}.story h2,.people h2,.rsvp h2,.section-heading h2{font:500 clamp(46px,7vw,78px)/.9 'Cormorant Garamond',serif;color:var(--wine);margin:20px 0}.story h2 em,.rsvp h2 em{font-family:'Great Vibes';font-style:normal;color:var(--gold)}.ornament{font-size:28px;color:var(--gold);margin:20px}.body{font:400 18px/1.8 'Cormorant Garamond',serif;color:#5b474c}.names{display:flex;justify-content:center;align-items:center;gap:20px;margin:25px 0;color:var(--wine)}.names strong{font:400 44px 'Great Vibes'}.names span{font-family:'Cormorant Garamond';font-size:20px;color:var(--gold)}
.countdown-section{background:var(--wine);color:#fff;min-height:65svh;text-align:center}.countdown-section .eyebrow{color:var(--gold2)}.countdown{display:flex;justify-content:center;gap:clamp(12px,4vw,50px);margin:30px 0}.countdown div{min-width:70px}.countdown strong{display:block;font:500 clamp(42px,7vw,78px) 'Cormorant Garamond';color:var(--gold2)}.countdown span{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:9px;opacity:.7}.small{font-size:11px;letter-spacing:.12em;opacity:.75}
.events{background:linear-gradient(#fffaf0,#f4e5cf)}.section-heading{text-align:center;margin-bottom:40px}.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.event{background:#fffaf4;border:1px solid #b57a2a44;padding:34px 24px;text-align:center;box-shadow:var(--shadow);position:relative}.event.featured{background:var(--wine);color:#fff}.event-icon{width:54px;height:54px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;color:var(--gold);font-size:23px}.event-date{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold)}.event h3{font:600 31px/1.05 'Cormorant Garamond';margin:13px 0}.event p{font-size:13px}.event span{font-size:10px;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;color:#816c70}.featured span{color:#ead9c0}.event small{display:block;margin-top:16px;font:italic 15px 'Cormorant Garamond';color:#8c6c58}.featured small{color:#e9d7bb}
.people{background:#f5e9d7;text-align:center}.blessings{font-family:'Cormorant Garamond';font-size:22px;line-height:1.25}.blessings h3{font:500 39px 'Great Vibes';color:var(--wine);margin:22px 0 3px}.blessings span{font-size:15px;color:#816c70}.location{background:#2f101a;color:#fff}.location-box{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;background:#3c1420;padding:50px;border:1px solid #c99d4e66;box-shadow:var(--shadow)}.location h2{font:600 44px 'Cormorant Garamond';color:var(--gold2);margin:15px 0}.map-art{height:330px;background:radial-gradient(circle at 50% 45%,#9d6b46 0 3%,transparent 4%),linear-gradient(135deg,#254b42,#5e725f 45%,#c6a26b);position:relative;overflow:hidden}.map-art:before{content:'';position:absolute;inset:-20%;background:repeating-linear-gradient(35deg,transparent 0 28px,#ffffff22 29px 31px)}.pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-55%);font-size:70px;color:#fff;text-shadow:0 4px 12px #0008}.dark{color:#fff}
.rsvp{background:var(--cream);text-align:center}.footer{padding:70px 20px;text-align:center;background:#240b14;color:#fff}.small-mono{font-size:55px}.footer p{opacity:.7}.footer .script{opacity:1;color:var(--gold2)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}.leaf-corner{position:absolute;width:220px;height:220px;border:1px solid #b57a2a22;border-radius:50%}.leaf-corner.left{left:-160px;top:-100px}.leaf-corner.right{right:-160px;bottom:-100px}
@media(max-width:800px){.hero{grid-template-columns:1fr;text-align:center;padding-top:100px}.hero-art{order:-1}.couple-svg{width:270px}.hero h2{font-size:72px}.event-grid{grid-template-columns:1fr}.location-box{grid-template-columns:1fr;padding:28px}.map-art{height:230px}.section{padding:70px 18px}.hero:before,.story:before,.people:before,.rsvp:before{inset:14px}.names{gap:12px}.names strong{font-size:38px}.countdown{gap:8px}.countdown div{min-width:64px}}
