:root{--wine:#5e1825;--cream:#f3ecdf;--olive:#53604a;--sand:#cdbb9e;--ink:#251c1a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}img{display:block;width:100%}.topbar{position:absolute;z-index:20;top:0;left:0;width:100%;padding:28px 4vw;display:flex;justify-content:space-between;align-items:center;color:#fff}.monogram{font-family:"Cormorant Garamond",serif;font-size:2rem}.topbar nav{display:flex;align-items:center;gap:30px;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.rsvp-link{border:1px solid currentColor;padding:11px 18px}.hero{height:100svh;min-height:700px;position:relative;overflow:hidden;color:#fff}.hero>img{height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,19,16,.62),rgba(30,19,16,.05) 70%),linear-gradient(0deg,rgba(30,19,16,.35),transparent 50%)}.hero-copy{position:absolute;left:8vw;top:50%;transform:translateY(-42%)}.hero-copy p,.hero-date,.scroll{text-transform:uppercase;letter-spacing:.2em;font-size:.68rem}.hero-copy h1{font:400 clamp(5.5rem,12vw,11rem)/.68 "Cormorant Garamond",serif;margin:26px 0}.hero-copy em{font-weight:400;font-size:.58em;margin-left:1.2em}.hero-date{position:absolute;right:4vw;top:45%;line-height:2;text-align:right}.scroll{position:absolute;right:4vw;bottom:38px}.scroll span{font-size:1.2rem;margin-left:12px}.story{display:grid;grid-template-columns:1fr .72fr;min-height:100vh;align-items:center;gap:10vw;padding:11vw 9vw}.story-copy{max-width:630px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;margin:0 0 30px}.story h2,.section-heading h2,.place h2,.rsvp h2{font:400 clamp(3.2rem,6vw,6.7rem)/.92 "Cormorant Garamond",serif;margin:0 0 42px}.story-copy>p:not(.eyebrow):not(.signature){font-size:1rem;line-height:1.9;max-width:560px}.signature{font:italic 2.7rem "Cormorant Garamond",serif;color:var(--wine);margin-top:45px}.story figure{margin:0}.story figure img{aspect-ratio:2/3;object-fit:cover}.story figcaption{text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;margin-top:12px}.countdown{padding:45px 6vw;background:var(--wine);color:var(--cream);display:flex;justify-content:center;align-items:center;gap:5vw}.countdown>p{text-transform:uppercase;letter-spacing:.2em;font-size:.67rem}.countdown div{text-align:center}.countdown strong{display:block;font:400 clamp(3rem,6vw,6rem)/.8 "Cormorant Garamond",serif}.countdown span{text-transform:uppercase;letter-spacing:.16em;font-size:.58rem}.countdown i{width:4px;height:4px;border-radius:50%;background:var(--sand)}.day{background:var(--olive);color:var(--cream);padding:10vw 9vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.section-heading{position:sticky;top:100px;align-self:start}.timeline{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.3)}.timeline li{display:grid;grid-template-columns:90px 45px 1fr;gap:20px;padding:35px 0;border-bottom:1px solid rgba(255,255,255,.3)}.timeline time{font:400 1.6rem "Cormorant Garamond",serif}.timeline>li>span{font-size:.58rem;letter-spacing:.15em}.timeline h3{font:400 2.25rem "Cormorant Garamond",serif;margin:-8px 0 6px}.timeline p{font-size:.85rem;line-height:1.6;margin:0;max-width:380px;opacity:.8}.photo-break{height:90vh;min-height:650px;position:relative;color:#fff}.photo-break img{height:100%;object-fit:cover}.photo-break:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(30,18,17,.65),transparent 60%)}blockquote{position:absolute;z-index:1;left:8vw;bottom:7vw;font:italic 400 clamp(3.2rem,7vw,7.5rem)/.9 "Cormorant Garamond",serif;max-width:900px;margin:0}.travel{padding:10vw 8vw}.travel .section-heading{position:static}.travel-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:7vw;border-top:1px solid var(--ink)}.travel-grid article{padding:35px 35px 50px 0;border-right:1px solid rgba(37,28,26,.3)}.travel-grid article+article{padding-left:35px}.travel-grid b{font-size:.65rem;letter-spacing:.16em}.travel-grid h3{font:400 2.5rem "Cormorant Garamond",serif;margin:35px 0 15px}.travel-grid p{font-size:.85rem;line-height:1.7;min-height:75px}.travel-grid a,.travel-grid span{color:var(--wine);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.place{display:grid;grid-template-columns:1fr 1fr;min-height:75vh;background:var(--sand)}.place>div:first-child{padding:9vw}.place p{line-height:1.8}.place a{display:inline-block;margin-top:30px;text-transform:uppercase;letter-spacing:.15em;font-size:.65rem;border-bottom:1px solid;padding-bottom:6px}.sun{position:relative;overflow:hidden;background:var(--wine)}.sun:before{content:"";position:absolute;width:75%;aspect-ratio:1;border-radius:50%;background:#e1c99f;left:12%;top:15%}.sun:after{content:"";position:absolute;width:130%;height:48%;bottom:-4%;left:-15%;background:var(--olive);border-radius:50% 50% 0 0}.sun span{position:absolute;z-index:1;width:1px;height:45%;background:var(--cream);left:50%;bottom:0}.rsvp{text-align:center;padding:11vw max(20px,calc((100% - 700px)/2));background:var(--cream)}.rsvp>p:not(.eyebrow){line-height:1.7}.rsvp form{text-align:left;margin-top:60px}.rsvp label{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:.62rem;margin:28px 0}.rsvp input,.rsvp select,.rsvp textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;padding:14px 0;font:1rem Manrope;color:var(--ink);margin-top:6px}.rsvp textarea{height:90px;resize:vertical}.rsvp button{width:100%;border:0;background:var(--wine);color:#fff;padding:18px;font:600 .7rem Manrope;text-transform:uppercase;letter-spacing:.16em;cursor:pointer}.rsvp small{display:block;margin-top:22px;opacity:.55}footer{background:var(--ink);color:var(--cream);padding:28px 4vw;display:flex;justify-content:space-between;gap:20px;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em}
@media(max-width:760px){.topbar nav a:not(.rsvp-link){display:none}.topbar{padding:20px}.hero{min-height:620px}.hero-copy{left:24px}.hero-copy h1{font-size:20vw}.hero-date{top:auto;right:22px;bottom:90px}.scroll{left:24px;right:auto}.story,.day{grid-template-columns:1fr;padding:100px 24px;gap:60px}.story figure{width:85%;margin-left:auto}.section-heading{position:static}.countdown{gap:5vw;padding:35px 18px}.countdown>p{display:none}.timeline li{grid-template-columns:70px 32px 1fr}.photo-break{height:70vh;min-height:520px}.travel{padding:90px 24px}.travel-grid{grid-template-columns:1fr}.travel-grid article,.travel-grid article+article{padding:30px 0;border-right:0;border-bottom:1px solid rgba(37,28,26,.3)}.travel-grid p{min-height:auto}.place{grid-template-columns:1fr}.place>div:first-child{padding:90px 24px}.sun{min-height:480px}.rsvp{padding:90px 24px}footer{flex-direction:column}}
.food{padding:10vw 8vw;background:var(--wine);color:var(--cream)}.food-intro{max-width:720px}.food h2,.album h2{font:400 clamp(4rem,8vw,8rem)/.85 "Cormorant Garamond",serif;margin:0 0 30px}.food-intro>p:last-child{max-width:540px;line-height:1.8}.menus{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:7vw}.menus article{border-top:1px solid rgba(255,255,255,.4);padding-top:28px}.menu-type{text-transform:uppercase;letter-spacing:.18em;font-size:.62rem}.menus h3{font:400 clamp(2.5rem,4vw,4.5rem) "Cormorant Garamond",serif;margin:25px 0 35px}.menus ul{list-style:none;margin:0;padding:0}.menus li{font:400 1.55rem/1.35 "Cormorant Garamond",serif;padding:20px 0;border-top:1px solid rgba(255,255,255,.18)}.menus li span{display:block;font:600 .58rem Manrope;text-transform:uppercase;letter-spacing:.16em;margin-bottom:7px;color:var(--sand)}.allergy-note{margin:55px 0 0;font-size:.72rem;letter-spacing:.06em;opacity:.8}.map{position:relative;overflow:hidden;min-height:620px;background:#e9ddc7}.map:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 2px 2px,rgba(94,24,37,.13) 1.5px,transparent 1.8px);background-size:30px 30px}.map .river{position:absolute;width:135%;height:110px;left:-15%;top:54%;border-radius:50%;border-top:22px solid #879b91;transform:rotate(-12deg)}.road{position:absolute;display:block;height:8px;background:#fff;border:1px solid rgba(37,28,26,.2);transform-origin:left center}.road-a{width:115%;left:-5%;top:33%;transform:rotate(18deg)}.road-b{width:90%;left:20%;top:75%;transform:rotate(-32deg)}.road-c{width:65%;left:42%;top:10%;transform:rotate(67deg)}.marker{position:absolute;z-index:2;left:55%;top:39%;width:76px;height:76px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;background:var(--wine);color:#fff;font:400 1.25rem "Cormorant Garamond",serif}.marker::first-line{transform:rotate(45deg)}.map-town,.map-place{position:absolute;z-index:2;font:600 .65rem Manrope;text-transform:uppercase;letter-spacing:.12em}.map-town{left:14%;top:26%}.map-place{left:67%;top:53%;color:var(--wine)}.map small{position:absolute;right:25px;bottom:20px;font-size:.55rem;text-transform:uppercase;letter-spacing:.15em}.album{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;padding:10vw 8vw;background:var(--olive);color:var(--cream)}.album-copy>p:not(.eyebrow):not(.privacy-note){line-height:1.8;max-width:520px}.privacy-note{font-size:.68rem;line-height:1.6;margin-top:35px;opacity:.7}.album-panel{min-width:0}.guest-name{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:.62rem}.guest-name input{display:block;width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;padding:14px 0;font:1rem Manrope;margin-top:6px}.upload-actions{display:flex;gap:12px;margin-top:25px}.upload-choice{flex:1;text-align:center;padding:16px;background:var(--cream);color:var(--ink);cursor:pointer;text-transform:uppercase;letter-spacing:.12em;font-size:.64rem}.upload-choice.secondary{background:transparent;color:var(--cream);border:1px solid rgba(255,255,255,.55)}.upload-choice input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.photo-preview,.shared-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.photo-preview img,.shared-gallery img{aspect-ratio:1;object-fit:cover}.album button{width:100%;border:0;background:var(--wine);color:#fff;padding:17px;margin-top:16px;font:600 .66rem Manrope;text-transform:uppercase;letter-spacing:.14em;cursor:pointer}.album button:disabled{opacity:.4;cursor:not-allowed}.upload-status,.empty-gallery{grid-column:1/-1;font-size:.72rem;line-height:1.6;opacity:.75}.shared-gallery{margin-top:45px;padding-top:20px;border-top:1px solid rgba(255,255,255,.25)}.guest-details{display:grid;gap:12px;margin:30px 0}.guest-card{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px;background:#e8ddcc}.guest-card label{margin:0}.guest-card strong{grid-column:1/-1;font:400 1.45rem "Cormorant Garamond",serif}.guest-card input,.guest-card select{margin-top:4px}.is-hidden{display:none!important}
@media(max-width:760px){.food{padding:90px 24px}.menus,.album{grid-template-columns:1fr}.menus{gap:55px}.place .map{min-height:500px}.album{padding:90px 24px}.album-panel{margin-top:20px}.upload-actions{flex-direction:column}.guest-card{grid-template-columns:1fr}.photo-preview,.shared-gallery{grid-template-columns:repeat(2,1fr)}}
.map .marker{transform:none;border-radius:50%;}
.topbar{position:fixed;padding:18px 4vw;background:rgba(25,18,18,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);border-bottom:1px solid rgba(255,255,255,0);transition:background-color .08s linear,backdrop-filter .08s linear,border-color .08s linear}.main-options>span{margin-bottom:16px}.menus .main-options div{display:grid;grid-template-columns:145px 1fr;gap:12px;font:400 1.35rem/1.35 "Cormorant Garamond",serif}.menus .main-options b{font:600 .58rem/1.5 Manrope;text-transform:uppercase;letter-spacing:.14em;color:var(--sand);padding-top:4px}.menus .main-options em{display:block;font:italic 1.25rem "Cormorant Garamond",serif;color:var(--sand);margin:8px 0 8px 145px}
@media(max-width:760px){.topbar{padding:13px 20px}.monogram{font-size:1.7rem}.rsvp-link{padding:9px 13px}.menus .main-options div{grid-template-columns:1fr;gap:4px}.menus .main-options em{margin-left:0}}
.scroll-reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform}.scroll-reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;transition:none}}
