:root{--wine:#3a0d12;--wine2:#21080b;--gold:#c8a462;--cream:#f5eee4;--paper:#fbf8f3;--ink:#30231f;--line:#e8dccb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.7 "DM Sans",sans-serif}body.locked{overflow:hidden}img{width:100%;display:block}button,input,select,textarea{font:inherit}.wrap{width:min(1080px,calc(100% - 36px));margin:auto}.narrow{width:min(700px,calc(100% - 40px));margin:auto}.center{text-align:center}.section{padding:88px 0}.screen{min-height:100svh}.screen-small{min-height:72svh}.dark{background:linear-gradient(145deg,var(--wine),var(--wine2));color:#fff}.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:600;color:var(--gold)}.light{color:#f7dfb5}.title{font:500 clamp(2.4rem,7vw,4.6rem)/.95 "Cormorant Garamond",serif;margin:.15em 0 .5em}.title.light{color:#fff}.btn{display:inline-flex;justify-content:center;align-items:center;padding:11px 20px;border-radius:999px;border:1px solid var(--gold);background:transparent;color:var(--wine);text-decoration:none;cursor:pointer;font-weight:600}.btn.gold{background:var(--gold);color:#2c1511}.btn.outline{background:#fff}.btn.small{padding:8px 15px;font-size:.85rem}.loader{position:fixed;inset:0;z-index:9999;background:var(--wine2);color:#fff;display:grid;place-content:center;text-align:center;transition:.45s}.loader.hide{opacity:0;visibility:hidden}.ring{width:46px;height:46px;border:2px solid #ffffff22;border-top-color:var(--gold);border-radius:50%;margin:auto;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cover{position:fixed;inset:0;z-index:500;display:grid;place-items:center;color:#fff;text-align:center;overflow:hidden;transition:.9s cubic-bezier(.7,0,.2,1)}.cover.open{transform:translateY(-100%);opacity:.15;pointer-events:none}.cover-bg,.hero-bg,.quote-bg,.video-bg,.closing-bg{position:absolute;inset:0;background-position:center;background-size:cover}.cover-bg{background-image:url('img/cover.jpg');animation:zoom 14s ease-in-out infinite alternate}.hero-bg{background-image:url('img/hero.jpg')}.quote-bg{background-image:url('img/couple3.jpg')}.video-bg{background-image:url('img/couple4.jpg')}.closing-bg{background-image:url('img/cover.jpg')}@keyframes zoom{to{transform:scale(1.08)}}.shade{position:absolute;inset:0;background:linear-gradient(#20070b33,#20070bcc)}.cover-content{position:relative;z-index:2;padding:24px;width:min(92%,520px)}.script-sm{font:400 2rem "Great Vibes",cursive;margin:6px 0}.cover h1{font:500 clamp(3.7rem,14vw,6.5rem)/.8 "Cormorant Garamond",serif;margin:18px 0}.cover h1 span,.closing h2 span,.hero h2 span{font-family:"Great Vibes",cursive;color:var(--gold);font-weight:400}.monogram{width:82px;height:82px;border:1px solid #ffffff66;border-radius:50%;display:grid;place-items:center;margin:18px auto;font-family:"Cormorant Garamond",serif}.guest-label{font-size:.76rem;margin:14px 0 0}.guest{font-weight:600;margin:0 0 16px}.hero{position:relative;display:grid;place-items:end center;color:#fff;overflow:hidden}.hero-copy{position:relative;z-index:2;text-align:center;padding:70px 20px 52px}.hero h2{font:500 clamp(3.2rem,11vw,6.8rem)/.9 "Cormorant Garamond",serif;margin:5px 0}.hero a{color:#fff;text-decoration:none;font-size:.8rem}.count{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:680px;margin:32px auto 0}.count div{padding:20px 8px;border:1px solid #ffffff22;border-radius:18px;background:#ffffff0a}.count b{display:block;font:500 2.7rem/1 "Cormorant Garamond",serif;color:var(--gold)}.count small{opacity:.8}.intro{background:radial-gradient(circle at top,#fff,var(--cream))}.arabic{font-size:1.4rem}.person{display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center;margin-bottom:78px}.person.reverse{grid-template-columns:.92fr 1.08fr}.person.reverse .portrait{order:2}.portrait{aspect-ratio:4/5;overflow:hidden;border-radius:230px 230px 24px 24px;box-shadow:0 20px 60px #2d130d22}.portrait img{height:100%;object-fit:cover}.person h3{font:400 clamp(3.3rem,8vw,5.3rem)/1 "Great Vibes",cursive;color:var(--wine);margin:.15em 0}.amp{text-align:center;font:400 5rem "Great Vibes",cursive;color:var(--gold);margin:-44px 0 28px}.quote,.video,.closing{position:relative;display:grid;place-items:center;color:#fff;text-align:center;overflow:hidden}.quote .narrow,.video .center,.closing .narrow{position:relative;z-index:2}.quote p{font:400 clamp(3.2rem,10vw,7rem)/1 "Great Vibes",cursive}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:44px}.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:26px;padding:32px;box-shadow:0 18px 50px #2f130d16}.card>span{position:absolute;top:4px;right:18px;font:500 5rem/1 "Cormorant Garamond",serif;color:#f0e7dc}.card h3{font:500 2.6rem/1 "Cormorant Garamond",serif;color:var(--wine);margin:0 0 12px}.note{color:#77665c}.timeline{margin-top:46px}.story{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;margin-bottom:66px}.story.reverse img{order:2}.story img{aspect-ratio:4/5;object-fit:cover;border-radius:24px}.story small{color:var(--gold);letter-spacing:.1em}.story h3{font:500 2.7rem "Cormorant Garamond",serif;margin:.1em 0}.story p{color:#eadcd5}.gallery{columns:3;column-gap:14px;margin-top:36px}.gallery button{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:none;border-radius:18px;overflow:hidden;cursor:zoom-in}.gallery img{transition:.4s}.gallery button:hover img{transform:scale(1.04)}.play{width:78px;height:78px;border-radius:50%;border:1px solid var(--gold);background:#ffffff12;color:#fff;font-size:1.5rem;backdrop-filter:blur(8px)}.micro{font-size:.75rem;opacity:.7}.form{display:grid;gap:14px;margin-top:34px}.form label{display:grid;gap:6px;font-size:.82rem;font-weight:600}.form input,.form select,.form textarea{border:1px solid #dccfbe;background:#fff;border-radius:14px;padding:13px 14px}.wish-list{display:grid;gap:10px;margin-top:24px}.wish{border:1px solid var(--line);background:#fff;border-radius:16px;padding:15px}.wish small{display:block;color:var(--gold)}.muted{max-width:680px;margin:0 auto;color:#e7d8d1}.darkcard{background:#ffffff0b;border-color:#ffffff22;color:#fff}.darkcard h3{color:var(--gold)}.copy{border:1px solid var(--gold);background:transparent;color:#fff;border-radius:999px;padding:8px 14px}.closing{place-items:end center}.closing .narrow{padding:70px 0 42px}.closing h2{font:400 clamp(4rem,11vw,7rem)/1 "Great Vibes",cursive;color:#f5deb1}.music{position:fixed;right:18px;bottom:18px;z-index:120;width:46px;height:46px;border-radius:50%;border:1px solid #ffffff88;background:var(--wine);color:#fff}.music.playing{animation:spin 5s linear infinite}.lightbox{position:fixed;inset:0;z-index:800;background:#000e;display:grid;place-items:center;opacity:0;visibility:hidden;transition:.25s}.lightbox.show{opacity:1;visibility:visible}.lightbox img{max-width:92vw;max-height:88vh;width:auto}.lightbox button{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:3rem}.reveal{opacity:0;transform:translateY(26px);transition:.85s}.reveal.show{opacity:1;transform:none}@media(max-width:760px){.section{padding:70px 0}.person,.person.reverse,.story,.story.reverse{grid-template-columns:1fr}.person.reverse .portrait,.story.reverse img{order:0}.person>div:last-child{text-align:center}.cards{grid-template-columns:1fr}.gallery{columns:2}.count{gap:6px}.count div{padding:15px 4px}.count b{font-size:2rem}}@media(max-width:420px){.wrap{width:calc(100% - 26px)}.count small{font-size:.65rem}}
