:root{--wine:#522d35;--rose:#af7778;--cream:#f7f2ea;--sage:#78806a;--ink:#342c29;--line:#d9cfc4;--serif:Georgia,"Times New Roman",serif;--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;width:100%}button,input,select,textarea{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:99;top:.5rem;left:.5rem;background:var(--wine);color:white;padding:.7rem 1rem;transform:translateY(-150%)}.skip-link:focus{transform:none}.header{position:fixed;z-index:20;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:1.2rem clamp(1.25rem,5vw,5rem);color:white;transition:.3s}.header.scrolled{background:rgba(247,242,234,.94);color:var(--wine);box-shadow:0 1px 0 var(--line);backdrop-filter:blur(10px)}.monogram{font:1.6rem var(--serif);letter-spacing:-.1em}.monogram span{font-style:italic;color:#d4ad9c}.header nav{display:flex;gap:2rem;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem}.header nav a:hover,.header nav a:focus-visible{color:#d4ad9c}.menu-button{display:none;background:none;border:0;color:inherit;padding:.6rem}.menu-button i{display:block;width:24px;height:1px;background:currentColor;margin:6px;transition:.2s}.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;color:white;text-align:center;background:linear-gradient(rgba(57,30,34,.44),rgba(57,30,34,.62)),url("assets/hero.svg") center/cover}.hero-content{position:relative;z-index:2}.kicker,.section-title>p{margin:0;text-transform:uppercase;letter-spacing:.26em;font-size:.69rem;font-weight:700}.hero h1{margin:2rem 0;font:400 clamp(4.5rem,12vw,10rem)/.72 var(--serif);letter-spacing:-.06em}.hero h1 span{display:block}.hero h1 i{display:block;color:#e0b7a6;font-size:.45em;line-height:1;font-weight:400}.date{letter-spacing:.25em;text-transform:uppercase;font-size:.75rem}.date b{margin:0 1.3rem}.round-link{display:flex;align-items:center;justify-content:center;gap:1rem;width:7.5rem;height:7.5rem;border:1px solid rgba(255,255,255,.55);border-radius:50%;margin:3rem auto 0;font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;transition:.25s}.round-link:hover{background:white;color:var(--wine)}.botanical{position:absolute;z-index:1;width:29vw;height:50vw;max-height:650px;background:url("assets/leaves.svg") center/contain no-repeat;opacity:.65}.botanical-left{left:-8vw;bottom:-7vw}.botanical-right{right:-8vw;top:-6vw;transform:rotate(180deg)}.section{padding:clamp(5rem,10vw,9rem) clamp(1.25rem,8vw,9rem)}.couple{text-align:center}.ornament{font:2rem var(--serif);color:var(--rose)}.intro{font:clamp(1.3rem,2.4vw,2rem)/1.5 var(--serif);max-width:730px;margin:2rem auto 5rem}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:5vw;align-items:center;max-width:1050px;margin:auto}.person .photo{overflow:hidden;aspect-ratio:4/5;background:#d8cec1}.person .photo img{height:100%;object-fit:cover;transition:transform .7s}.person:hover img{transform:scale(1.02)}.person>p{margin:1.8rem 0 .5rem;text-transform:uppercase;letter-spacing:.2em;font-size:.65rem;color:var(--rose)}.person h3{margin:0;font:2.3rem/1.1 var(--serif);color:var(--wine)}.person>span{display:block;margin-top:1rem;color:#776c66;font-size:.8rem}.ampersand{font:italic 4rem var(--serif);color:var(--rose)}.story{background:var(--wine);color:var(--cream)}.section-title h2,.rsvp h2,.location h2{margin:1rem 0;font:400 clamp(2.8rem,5.5vw,5.5rem)/1 var(--serif);letter-spacing:-.04em}.section-title>p{color:#ce9995}.story-line{display:grid;grid-template-columns:repeat(3,1fr);margin-top:6rem;border-top:1px solid #76545a}.story-line article{position:relative;padding:2.5rem 3rem 0 0}.story-line article:before{content:"";position:absolute;width:.55rem;height:.55rem;border-radius:50%;background:#d3a09d;top:-.3rem}.story-line time{font:italic 1.6rem var(--serif);color:#d3a09d}.story-line h3{font:1.5rem var(--serif)}.story-line p{color:#d1c1bd;max-width:310px}.centered{text-align:center}.section-title>span{display:block;color:#786d66;max-width:560px;margin:1rem auto}.event{background:#eee4d8}.event-cards{display:grid;grid-template-columns:1fr 1fr;max-width:950px;margin:4rem auto 2rem;border:1px solid var(--line)}.event-cards article{padding:3.5rem;text-align:center}.event-cards article+article{border-left:1px solid var(--line)}.event-cards article>span{font-size:.7rem;color:var(--rose);letter-spacing:.2em}.event-cards h3{font:2.3rem var(--serif);color:var(--wine);margin:1rem}.event-cards time{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.event-cards p{color:#756a63}.dress-code{display:flex;align-items:center;justify-content:center;gap:1rem;text-transform:uppercase;letter-spacing:.14em;font-size:.65rem}.dress-code i{width:3rem;height:1px;background:var(--line)}.dress-code p{letter-spacing:.05em;text-transform:none}.dress-code div{display:flex}.dress-code b{width:1.1rem;height:1.1rem;border-radius:50%;margin-left:-.15rem;border:2px solid #eee4d8}.dress-code b:nth-child(1){background:#8b725c}.dress-code b:nth-child(2){background:#9b9a79}.dress-code b:nth-child(3){background:#c1a899}.dress-code b:nth-child(4){background:#5f493e}.gallery .section-title{margin-bottom:4rem}.gallery-grid{display:grid;grid-template-columns:1.3fr .85fr;gap:1.5rem}.gallery-grid figure{margin:0;overflow:hidden;background:#d8cec1}.gallery-grid .wide{grid-row:span 2}.gallery-grid img{height:100%;object-fit:cover;transition:transform .7s}.gallery-grid figure:hover img{transform:scale(1.025)}.countdown{text-align:center;background:#a96f70;color:white}.countdown h2{font:400 clamp(2.5rem,5vw,5rem)/1.05 var(--serif);max-width:800px;margin:1.5rem auto 4rem}.timer{display:flex;justify-content:center;align-items:flex-start;gap:clamp(.6rem,3vw,2.5rem)}.timer div{min-width:clamp(3.7rem,10vw,8rem)}.timer strong{display:block;font:clamp(2.5rem,7vw,6rem)/1 var(--serif);font-weight:400}.timer span{font-size:.64rem;text-transform:uppercase;letter-spacing:.2em}.timer i{font:2rem var(--serif);opacity:.5}.expired{font:1.5rem var(--serif)}.rsvp{display:grid;grid-template-columns:.85fr 1.15fr;gap:10vw}.rsvp-copy>p:last-child{color:#786d66;max-width:420px}.rsvp-form{display:grid;gap:1.5rem}.rsvp-form>label{display:grid;gap:.4rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.rsvp-form input[type=text],.rsvp-form select,.rsvp-form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);padding:.75rem 0;color:var(--ink);outline:none;border-radius:0}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--wine)}fieldset{border:0;padding:0;margin:0;display:grid;gap:.5rem}legend{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.5rem}.rsvp-form fieldset label{text-transform:none}.rsvp-form button,.outline-button{border:1px solid var(--wine);background:var(--wine);color:white;padding:1rem 1.3rem;cursor:pointer;display:flex;justify-content:space-between}.rsvp-form button:hover{background:#6c4149}.form-note{min-height:1rem;margin:0;font-size:.78rem}.location{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:center;background:#e9dfd2}.map-art{border:1px solid #c8b9aa}.location-copy p{color:#776c66}.outline-button{display:inline-flex;margin-top:1.5rem;background:transparent;color:var(--wine);gap:2rem}.outline-button:hover{background:var(--wine);color:white}.gift{text-align:center}.gift .text-button{display:inline-flex;gap:5rem;border-bottom:1px solid;margin-top:2rem;padding:.8rem 0;font-weight:600}.footer{padding:7rem 1.25rem;text-align:center;background:#44252c;color:var(--cream)}.footer>p{text-transform:uppercase;letter-spacing:.25em;font-size:.65rem}.footer h2{font:4rem var(--serif);margin:1.5rem}.footer h2 i{color:#d19a97}.footer>span{letter-spacing:.2em;font-size:.75rem}.footer small{display:block;margin-top:6rem;opacity:.55}.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}
@media(max-width:760px){.header{padding:1rem 1.25rem}.menu-button{display:block;position:relative;z-index:2}.menu-button[aria-expanded=true] i:first-of-type{transform:translateY(3.5px) rotate(45deg)}.menu-button[aria-expanded=true] i:last-of-type{transform:translateY(-3.5px) rotate(-45deg)}.header nav{position:fixed;inset:0;flex-direction:column;align-items:center;justify-content:center;background:var(--cream);color:var(--wine);font:1.8rem var(--serif);opacity:0;visibility:hidden;transition:.25s}.header nav.open{opacity:1;visibility:visible}.hero h1{font-size:clamp(4rem,24vw,7rem)}.botanical{width:52vw;height:90vw}.couple-grid{grid-template-columns:1fr;gap:2rem}.ampersand{margin:-1rem}.story-line{grid-template-columns:1fr;border-top:0;margin-top:3rem}.story-line article{padding:2rem 0;border-top:1px solid #76545a}.event-cards{grid-template-columns:1fr}.event-cards article{padding:2.5rem 1rem}.event-cards article+article{border-left:0;border-top:1px solid var(--line)}.dress-code{flex-wrap:wrap}.gallery-grid{grid-template-columns:1fr}.gallery-grid .wide{grid-row:auto}.gallery-grid figure{aspect-ratio:4/5}.timer{gap:.2rem}.timer i{font-size:1.2rem}.rsvp,.location{grid-template-columns:1fr}.map-art{order:2}.footer h2{font-size:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
