:root{--ivory:#F6F1E8;--champagne:#D8C5A5;--sage:#A6AF9C;--ink:#343632;--muted:#696C63;--white:#FFFDFC}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font:400 13px/1.8 Manrope,sans-serif}main{overflow:hidden}h1,h2,p{margin:0}h1,h2,.signature{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400}h2{font-size:40px;line-height:1.12;white-space:pre-line}button,input,select{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}section,footer{text-align:center}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:600}.hero{position:relative;min-height:max(860px,100svh);padding:25px 24px 28px;display:flex;flex-direction:column;justify-content:space-between;background:var(--ivory) var(--hero-image) center/cover no-repeat}.hero-top{display:flex;align-items:center;justify-content:space-between;position:relative}.sample{background:#fffdfcbb;padding:4px 8px;border-radius:20px;font-size:7px;letter-spacing:.08em}.monogram{height:46px;width:46px;border:1px solid var(--champagne);border-radius:50%;display:flex;align-items:center;justify-content:center;font:italic 21px 'Cormorant Garamond',Georgia;background:#fffdfc66}.hero-content{position:relative;padding:50px 0 12px}.hero h1{font-size:clamp(66px,20vw,88px);font-style:italic;line-height:.95;letter-spacing:-.04em;margin:27px 0 32px}.hero h1 .person{display:block;overflow-wrap:anywhere}.hero h1 .ampersand{font-size:45px;display:block;color:#8d795c;line-height:1.2;margin:4px 0}.hero-sub{font-size:11px;line-height:1.9}.fine-line{height:1px;width:45px;background:var(--champagne);margin:30px auto}.countdown-title{font-size:8px}.countdown{display:flex;justify-content:center;gap:11px;margin-top:17px}.countdown div{min-width:44px}.countdown b{font:400 36px/1.2 'Cormorant Garamond',Georgia;font-variant-numeric:tabular-nums}.countdown span{display:block;font-size:7px;letter-spacing:.13em;margin-top:7px}.countdown i{font:20px Georgia;color:var(--muted)}.scroll{position:relative;text-decoration:none;letter-spacing:.18em;font-size:8px;margin-top:30px}.scroll span:last-child{display:block;font-size:23px;margin-top:7px}.phrase{padding:78px 28px}.rings svg{height:42px;width:68px;fill:none;stroke:#9b8665;stroke-width:.8}.phrase .eyebrow{margin:25px 0 16px}.phrase h2{margin-bottom:23px}.phrase>p:last-child{max-width:285px;margin:auto;font-size:12px;color:var(--muted)}.date-section{padding:48px 24px 55px;background:var(--ivory);border-top:1px solid #d8c5a566;border-bottom:1px solid #d8c5a566}.date-weekday{font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-top:24px}.date-display{display:flex;align-items:center;justify-content:center;gap:23px;margin:13px 0 10px}.date-display span{text-transform:uppercase;font-size:10px;letter-spacing:.14em;min-width:56px}.date-display strong{font:400 83px/1 'Cormorant Garamond',serif;border-left:1px solid var(--champagne);border-right:1px solid var(--champagne);padding:0 20px}.time{font-size:10px;letter-spacing:.14em}.text-button{border:0;border-bottom:1px solid var(--champagne);background:none;color:var(--ink);min-height:44px;padding:10px 3px;font-size:9px;letter-spacing:.12em;margin-top:17px}.locations-section{padding:75px 24px 50px}.locations-section>h2{margin:18px 0 36px}.locations{max-width:850px;margin:auto;display:grid;gap:22px}.location{position:relative;background:var(--ivory);padding:33px 25px 35px;border:1px solid #d8c5a580}.location-number{position:absolute;left:20px;top:16px;font:italic 20px 'Cormorant Garamond',serif;color:#8c7759}.location svg{height:31px;width:31px;fill:none;stroke:var(--muted);stroke-width:.8;margin-bottom:13px}.location h3{font:italic 36px/1.2 'Cormorant Garamond',Georgia;margin:0 0 13px}.location .location-time{font-size:10px;letter-spacing:.12em;margin:0 0 17px}.location .venue{font:400 24px/1.2 'Cormorant Garamond',Georgia;max-width:290px;margin:0 auto 12px}.location .address{font-size:11px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--white);min-height:48px;border:1px solid var(--ink);padding:14px 26px;text-decoration:none;font-size:9px;letter-spacing:.15em;margin-top:23px;transition:background .2s,transform .2s}.button:hover{background:#51564c;transform:translateY(-2px)}.button:disabled{opacity:.6;cursor:wait}.travel-note{font-size:9px;color:var(--muted);margin-top:20px}.gallery-section{padding:35px 24px 75px}.gallery-section h2{margin:19px 0}.gallery-section>p:not(.eyebrow){font-size:11px;color:var(--muted)}.gallery{max-width:650px;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:32px auto 22px;align-items:start}.gallery button{padding:0;border:0;background:var(--ivory);overflow:hidden}.gallery button:first-child{border-radius:130px 130px 0 0}.gallery button:nth-child(even){margin-top:36px}.gallery img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;filter:saturate(.6);transition:transform .5s}.gallery button:hover img{transform:scale(1.03)}.gallery-hint{font-size:8px!important;letter-spacing:.12em}.rsvp{padding:55px 24px 65px;background:linear-gradient(135deg,var(--ivory),#ece7dc)}.seal{margin:0 auto 26px;background:var(--champagne);width:57px;height:57px;border:3px double #a8906c}.rsvp h2{margin:16px 0}.rsvp>p:not(.eyebrow){font-size:12px}.deadline{margin-top:13px;font-size:10px!important;color:var(--muted)}form{max-width:420px;margin:34px auto 0;text-align:left}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:10px;margin-bottom:18px}input,select{display:block;width:100%;min-width:0;min-height:48px;padding:11px 10px;background:#fffdfc99;color:var(--ink);border:0;border-bottom:1px solid #b6b2a6;border-radius:0;margin-top:8px;font-size:16px}label[for=guests]{margin-bottom:0}select{margin-bottom:22px}form .button{width:100%;margin-top:4px}.form-status{font-size:12px;margin-top:18px;text-align:center}footer{padding:75px 24px 90px}footer h2{margin:23px auto 26px;font-size:34px}.signature{display:block;font-size:45px;font-style:italic;overflow-wrap:anywhere}#contact-status{font-size:11px;margin:13px auto 0;max-width:300px}.credits{font-size:8px;line-height:1.9;color:var(--muted);margin-top:45px}.music{position:fixed;right:16px;bottom:17px;z-index:5;min-height:44px;display:flex;align-items:center;gap:9px;border:1px solid #d8c5a599;border-radius:30px;background:#fffdfcee;color:var(--ink);padding:8px 16px;box-shadow:0 4px 20px #34363215;font-size:10px}.music span:first-child{font-size:21px}.music[aria-pressed=true]{background:var(--ivory)}dialog{border:0;padding:12px;background:var(--white);max-width:92vw;max-height:90svh}dialog::backdrop{background:#282b24dc;backdrop-filter:blur(5px)}dialog img{max-width:85vw;max-height:78svh;display:block;object-fit:contain}dialog button{display:block;margin-left:auto;min-height:44px;min-width:44px;border:0;background:none;color:var(--ink);font-size:30px}:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.motion .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}.motion .reveal.visible{opacity:1;transform:none}@media(min-width:700px){.hero{background-size:auto 100%;min-height:940px}.hero-top{max-width:580px;margin:0 auto;width:100%}.hero h1{font-size:98px}.hero-content{padding-top:30px}.locations{grid-template-columns:1fr 1fr}.phrase h2,.gallery-section h2{font-size:49px}.phrase>p:last-child{max-width:400px}.signature{font-size:60px}.hero-sub{font-size:12px}}@media(max-width:374px){.hero{padding-inline:20px}.hero h1{font-size:73px}.countdown{gap:8px}.date-display{gap:16px}.date-display strong{padding-inline:15px}.phrase h2{font-size:37px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion .reveal{opacity:1;transform:none}}
.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 13%,#f6f1e850 28%,#f6f1e8b8 58%,#f6f1e8a6 78%,transparent 95%);pointer-events:none}.hero-sub{position:relative}.scroll{background:#f6f1e8b3;align-self:center;padding:8px 18px;border-radius:30px}
