:root{--paper:#fcfbf8;--ink:#3a3835;--gold:#b39a73;--line:#dcd9d2;--serif:'Cormorant Garamond',Georgia,serif;--sans:Manrope,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.65}.notice{height:35px;background:#3a3835;color:#fff;letter-spacing:1.6px;font-size:9px;text-align:center;padding:10px;position:relative}.notice span{color:var(--gold);padding:0 12px}.notice button{position:absolute;right:20px;top:3px;background:none;border:0;color:white;font-size:20px;font-weight:200;cursor:pointer}.site-header{height:85px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;position:absolute;z-index:3;top:35px;left:0;right:0;color:white;border-bottom:1px solid #ffffff40}.wordmark{font-family:var(--serif);font-size:27px;letter-spacing:6px;text-decoration:none;color:inherit;font-weight:500}.site-header nav{display:flex;align-items:center;gap:28px}.site-header nav a{color:inherit;text-decoration:none;text-transform:uppercase;font-size:9px;letter-spacing:1.4px}.nav-rsvp{border:1px solid #ffffff99;padding:9px 15px}.menu-toggle{display:none}.hero{height:min(810px,calc(100vh - 35px));min-height:650px;position:relative;color:#fff;overflow:hidden}.hero:after{content:"";inset:0;position:absolute;background:linear-gradient(90deg,#17161385 0%,#17161320 58%,#1716132b);z-index:1}.hero-image{position:absolute;inset:0;background:url('assets/villa-hero.png') center/cover no-repeat;transform:scale(1.015)}.hero-copy{z-index:2;position:absolute;left:10vw;top:50%;transform:translateY(-43%)}.eyebrow{font-size:9px;letter-spacing:2px;margin:0 0 22px;text-transform:uppercase;color:var(--gold);font-weight:600}.hero .eyebrow{color:#fff}.hero h1,h2{font-family:var(--serif);font-weight:400;line-height:.86;letter-spacing:-2.5px;margin:0}.hero h1{font-size:clamp(80px,10vw,154px)}em{font-weight:400}.hero-date{margin-top:34px;font-size:10px;letter-spacing:2px}.scroll-cue{z-index:2;position:absolute;bottom:35px;right:5vw;color:#fff;text-decoration:none;font-size:9px;letter-spacing:1.8px}.scroll-cue span{font-size:17px;margin-left:12px}.section{padding:140px 10vw}.intro{padding-top:150px}.intro-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:9vw;align-items:start}.intro h2,.section h2,.location h2,.dress h2,.rsvp h2{font-size:clamp(54px,7vw,105px)}.intro p:not(.lead){max-width:440px;color:#77736d;font-size:13px}.intro .lead{font-family:var(--serif);font-size:28px;line-height:1.2;margin-top:0}.signature{font-family:var(--serif)!important;font-size:25px!important;color:var(--ink)!important;font-style:italic;margin-top:30px}.countdown{background:#eeebe4;padding:78px 10vw}.numbers{display:flex;align-items:center;gap:20px}.numbers span{display:flex;flex-direction:column}.numbers b{font-family:var(--serif);font-size:clamp(45px,7vw,88px);font-weight:400;line-height:1}.numbers i{font-family:var(--serif);font-size:35px;font-style:normal;color:var(--gold)}.numbers small{font-size:8px;letter-spacing:1.6px;margin-top:13px}.section-top{display:grid;grid-template-columns:1fr 1fr;margin-bottom:80px}.schedule{border-top:1px solid var(--line)}.schedule article{display:grid;grid-template-columns:20% 34% 1fr;gap:25px;border-bottom:1px solid var(--line);padding:30px 0;align-items:center}.schedule-date,.time,.place{font-size:9px;letter-spacing:1.5px;margin:0}.schedule-date span{font-family:var(--serif);font-size:35px;display:block;letter-spacing:0;line-height:1.1}.time{color:var(--gold)}.schedule h3,.info-grid h3,.hotel-list h3{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.1;margin:5px 0}.schedule article div p:last-child,.detail{font-size:12px;margin:5px 0;color:#76716b}.location{display:grid;grid-template-columns:1.1fr .9fr;background:#e9e4da;min-height:650px}.location-image{background:url('assets/villa-hero.png') 75% center/cover}.location-copy{padding:13vw 10vw 9vw 7vw}.location-copy p:not(.eyebrow){font-size:13px;max-width:360px;margin:32px 0;color:#625e59}.text-link{display:inline-block;text-decoration:none;font-size:9px;letter-spacing:1.5px;color:var(--ink);font-weight:600;margin-top:14px}.text-link span{font-size:16px;margin-left:6px;color:var(--gold)}.logistics{background:#fff}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5vw;margin-top:70px}.number{font-family:var(--serif);font-size:28px;color:var(--gold)}.info-grid p{font-size:12px;color:#706b65;max-width:280px}.accommodation-head{display:grid;grid-template-columns:1.2fr .8fr;align-items:end;margin:20px 0 70px}.accommodation-head>p{font-size:13px;max-width:340px;color:#6f6b65}.hotel-list{border-top:1px solid var(--line)}.hotel-list article{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:26px 0}.circle-link{border:1px solid var(--ink);border-radius:50%;width:42px;height:42px;text-align:center;padding-top:8px;text-decoration:none;color:var(--ink);font-size:18px}.dress{background:var(--ink);color:#f8f7f4;display:grid;grid-template-columns:1fr 1fr;padding:150px 10vw;gap:9vw}.dress>div>p:not(.eyebrow){max-width:390px;color:#cfcbc4;font-size:13px;margin-top:30px}.swatches{align-self:end}.swatches span{width:25%;height:100px;display:inline-block;margin-right:-4px}.swatches span:nth-child(1){background:#242322}.swatches span:nth-child(2){background:#e8e2d8}.swatches span:nth-child(3){background:#846544}.swatches span:nth-child(4){background:#d0b589}.swatches p{font-size:8px;letter-spacing:1.2px;color:#d9d5cd;margin-top:14px}.gifts-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:center}.gifts-inner p{font-size:13px;color:#6f6b65}.button{display:inline-block;background:var(--gold);border:1px solid var(--gold);color:#fff;font:600 9px var(--sans);letter-spacing:1.5px;padding:16px 21px;text-decoration:none;cursor:pointer;margin-top:17px}.button span{font-size:15px;margin-left:14px}.button-dark{background:var(--ink);border-color:var(--ink)}.gallery{padding:130px 4vw;background:#fff}.gallery-top{padding:0 6vw 65px}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;grid-template-rows:310px 260px;gap:18px}.gallery-grid img{height:100%;width:100%;object-fit:cover;filter:saturate(.65) contrast(.94)}.g-1{grid-row:span 2}.g-2{grid-column:span 2}.g-3{grid-column:span 2}.gallery blockquote{font-family:var(--serif);font-size:28px;line-height:1.1;margin:0;padding:45px;background:#eeebe4;display:flex;flex-direction:column;justify-content:center}.gallery cite{font:9px var(--sans);letter-spacing:1px;font-style:normal;margin-top:20px}.faq{display:grid;grid-template-columns:1fr 1.2fr;gap:9vw}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:19px 0}summary{list-style:none;cursor:pointer;font:23px var(--serif);display:flex;justify-content:space-between}summary::-webkit-details-marker{display:none}summary span{color:var(--gold);font-family:var(--sans);font-size:18px;font-weight:400}details[open] summary span{transform:rotate(45deg)}details p{font-size:12px;color:#716d67;max-width:480px;margin:15px 0 5px}.rsvp{padding:140px 10vw;background:#e9e4da;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.rsvp-copy>p:not(.eyebrow){font-size:13px}.rsvp form{display:flex;flex-direction:column;gap:18px}form label,fieldset,legend{font-size:9px;letter-spacing:1.4px;font-weight:600}input,textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #a9a39b;padding:11px 0 8px;margin-top:4px;font:13px var(--sans);color:var(--ink);outline:0}textarea{height:58px;resize:vertical}fieldset{padding:0 0 13px;border:0;border-bottom:1px solid #a9a39b}.choices{display:flex;gap:18px;margin-top:10px}.choices label{font:12px var(--sans);letter-spacing:0;font-weight:400}.choices input{display:inline;width:auto;margin-right:7px;accent-color:var(--ink)}.form-message{font-size:12px;margin:0;color:#635e57}footer{background:var(--ink);color:#f7f5f0;padding:55px 4.5vw;display:flex;justify-content:space-between;align-items:end}footer p,footer>a:not(.wordmark){font-size:8px;letter-spacing:1.4px;line-height:2;color:#e6e1d9;text-decoration:none;text-align:center}.site-header.scrolled{position:fixed;top:0;background:#3a3835;height:70px;transition:.3s}
@media(max-width:760px){.notice{font-size:7px}.site-header{height:70px;padding:0 6vw}.site-header nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--ink);padding:24px 6vw;flex-direction:column;align-items:flex-start}.site-header nav.open{display:flex}.menu-toggle{display:flex;gap:5px;border:0;background:none;padding:8px;flex-direction:column}.menu-toggle i{display:block;width:22px;height:1px;background:white}.section,.dress,.rsvp{padding:90px 7vw}.intro-grid,.section-top,.accommodation-head,.gifts-inner,.faq,.rsvp,.dress{grid-template-columns:1fr;gap:35px}.intro h2,.section h2,.location h2,.dress h2,.rsvp h2{font-size:64px}.numbers{gap:9px}.numbers i{font-size:22px}.numbers b{font-size:40px}.numbers small{font-size:6px;letter-spacing:.9px}.schedule article{grid-template-columns:73px 1fr;padding:25px 0}.schedule .detail{display:none}.location{grid-template-columns:1fr}.location-image{height:420px}.location-copy{padding:80px 8vw}.info-grid{grid-template-columns:1fr;gap:35px;margin-top:45px}.gallery{padding:80px 7vw}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:250px 200px 200px}.g-1{grid-row:span 1;grid-column:span 2}.g-2,.g-3{grid-column:span 1}.gallery blockquote{font-size:21px;padding:25px}.faq-list{margin-top:15px}.rsvp{gap:55px}footer{flex-direction:column;align-items:center;gap:24px;padding:50px 7vw}.wordmark{font-size:23px}.accommodation-head{margin-bottom:40px}}

/* Hero — magazine-cover composition */
.hero{height:calc(100vh - 35px);min-height:720px;max-height:980px;background:#282722;isolation:isolate}.hero:after{display:none}.hero-image{background-position:68% center;transform:scale(1.07);filter:saturate(.58) contrast(1.04) brightness(.78);animation:heroImage 14s cubic-bezier(.2,.55,.15,1) both}.hero-wash{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(16,16,14,.68) 0%,rgba(16,16,14,.32) 43%,rgba(16,16,14,.06) 70%),linear-gradient(0deg,rgba(10,10,9,.42) 0%,transparent 38%)}.hero-copy{left:8.2vw;top:51%;transform:translateY(-48%);z-index:2;width:min(780px,65vw)}.hero .eyebrow{color:#e6ddd0;margin-bottom:26px}.hero h1{font-size:clamp(105px,13.6vw,210px);line-height:.67;letter-spacing:-6px;display:flex;flex-direction:column}.hero h1 .line{display:block}.hero h1 .line-two{margin-left:20.5vw}.hero h1 .ampersand{font-size:.34em;line-height:.8;font-style:italic;letter-spacing:-2px;margin:8px 0 0 15.2vw;color:#d5b886}.hero-date{border-top:1px solid rgba(255,255,255,.44);padding-top:16px;margin:40px 0 0 2px;font-size:9px;letter-spacing:2.1px;width:318px}.hero-edition{position:absolute;right:4.6vw;top:145px;z-index:2;color:#fff;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg);margin:0}.hero-edition span{color:#d5b886;padding:0 8px}.hero-cta{display:inline-flex;align-items:center;gap:28px;color:#fff;text-decoration:none;font-size:9px;font-weight:600;letter-spacing:1.65px;border-bottom:1px solid rgba(255,255,255,.65);padding:0 0 12px;margin:31px 0 0 2px;transition:color .35s,border .35s,gap .35s}.hero-cta b{font:20px var(--serif);font-weight:400;line-height:.5}.hero-cta:hover{color:#ddc293;border-color:#ddc293;gap:40px}.hero-caption{position:absolute;z-index:2;bottom:34px;left:4.7vw;right:4.7vw;display:flex;justify-content:space-between;color:#fff;font-size:8px;letter-spacing:1.6px}.scroll-cue{bottom:28px;right:50%;transform:translateX(50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:7px;letter-spacing:1.4px}.scroll-cue i{display:block;width:1px;height:44px;background:#fff;animation:scrollLine 1.8s ease-in-out infinite}.scroll-cue span{font-size:inherit;margin:0}.hero-reveal{opacity:0;animation:heroReveal .9s cubic-bezier(.2,.7,.2,1) forwards}.hero-copy .eyebrow{animation-delay:.35s}.hero h1{animation-delay:.5s}.hero-date{animation-delay:.78s}.hero-cta{animation-delay:.92s}.hero-edition{animation-delay:.5s}.hero-caption{animation-delay:1.05s}@keyframes heroImage{from{transform:scale(1.16);filter:saturate(.38) contrast(1.02) brightness(.62)}to{transform:scale(1.07);filter:saturate(.58) contrast(1.04) brightness(.78)}}@keyframes heroReveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scrollLine{0%,100%{transform:scaleY(.38);transform-origin:top;opacity:.4}50%{transform:scaleY(1);transform-origin:top;opacity:1}}@media(max-width:760px){.hero{height:calc(100vh - 35px);min-height:660px;max-height:none}.hero-image{background-position:64% center}.hero-copy{left:7vw;top:50%;width:86vw}.hero h1{font-size:clamp(86px,25vw,130px);letter-spacing:-4px}.hero h1 .line-two{margin-left:20vw}.hero h1 .ampersand{margin-left:14vw}.hero-date{width:auto;margin-top:33px;font-size:8px;letter-spacing:1.4px}.hero-edition{display:none}.hero-caption{left:7vw;right:7vw;bottom:23px;font-size:6.5px;letter-spacing:1.1px}.scroll-cue{display:none}.hero-cta{margin-top:27px}.hero-wash{background:linear-gradient(90deg,rgba(16,16,14,.66),rgba(16,16,14,.11)),linear-gradient(0deg,rgba(10,10,9,.5),transparent 43%)}}
