:root{--rock: #a48d78;--sandstone: #cbb9a4;--oat: #e6dac8;--mist: #f4f1ea;--white: #faf9f6;--ink: #242320;--muted: #6f6b64;--serif: "Italiana", "Bodoni 72", "Bodoni MT", Didot, serif;--sans: "DM Sans", Arial, sans-serif;--page: min(1180px, calc(100vw - 48px) )}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased}body.menu-open,body.dialog-open,body.is-loading{overflow:hidden}img{display:block;width:100%}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.page-loader{position:fixed;z-index:10000;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--mist);color:var(--ink);opacity:1;visibility:visible;transition:opacity .65s cubic-bezier(.22,.61,.36,1),visibility .65s}.page-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-logo{display:flex;align-items:baseline;font-family:var(--serif);font-size:clamp(54px,7vw,82px);letter-spacing:.025em;line-height:1;animation:loader-breathe 1.8s ease-in-out infinite}.loader-logo em{margin:0 .08em;color:var(--rock);font-size:.58em;font-weight:400}.loader-rule{width:150px;height:1px;margin:30px 0 17px;overflow:hidden;background:var(--oat)}.loader-rule span{display:block;width:55%;height:100%;background:var(--rock);animation:loader-line 1.25s ease-in-out infinite}.page-loader p{margin:0;color:var(--rock);font-size:9px;font-weight:600;letter-spacing:.22em;text-transform:uppercase}@keyframes loader-breathe{0%,to{opacity:.58;transform:scale(.985)}50%{opacity:1;transform:scale(1)}}@keyframes loader-line{0%{transform:translate(-110%)}to{transform:translate(290%)}}.skip-link{position:fixed;z-index:1000;top:8px;left:8px;padding:10px 16px;background:var(--ink);color:var(--white);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{position:absolute;z-index:20;top:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;min-height:86px;padding:0 max(32px,calc((100vw - 1360px)/2));color:var(--ink)}.monogram{width:max-content;font-family:var(--serif);font-size:24px;letter-spacing:.08em;text-decoration:none}.monogram span{color:var(--rock);font-size:.72em}.site-header nav{display:flex;gap:clamp(22px,3vw,46px)}.site-header nav a{position:relative;font-size:12px;font-weight:500;letter-spacing:.12em;text-decoration:none;text-transform:uppercase}.site-header nav a:after{position:absolute;right:0;bottom:-5px;left:0;height:1px;background:currentColor;content:"";transform:scaleX(0);transition:transform .3s ease}.site-header nav a:hover:after{transform:scaleX(1)}.header-rsvp{justify-self:end;border:0;border-bottom:1px solid currentColor;padding:4px 0;background:none;cursor:pointer;font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.menu-toggle,.mobile-rsvp-bar{display:none}.hero{display:grid;grid-template-columns:minmax(420px,.88fr) minmax(520px,1.12fr) 68px;min-height:100svh;padding:86px 0 0 max(32px,calc((100vw - 1360px)/2));overflow:hidden;background:var(--mist)}.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:70px clamp(35px,5vw,90px) 70px 0}.eyebrow{margin:0 0 24px;color:var(--rock);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h1{margin-bottom:30px;font-family:var(--serif);font-size:clamp(68px,7.6vw,124px);letter-spacing:-.04em;line-height:.82}h1 em{color:var(--rock);font-size:.58em;font-style:italic}.hero-lead{max-width:460px;margin-bottom:34px;color:#4e4b46;font-size:17px}.hero-actions{display:flex;align-items:center;gap:28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;border:1px solid transparent;border-radius:0;padding:0 26px;cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;transition:background .25s ease,color .25s ease,transform .25s ease}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:var(--white)}.button-dark:hover{background:var(--rock)}.button-light{background:var(--white);color:var(--ink)}.button-light:hover{background:var(--oat)}.text-link{display:inline-flex;align-items:center;gap:9px;width:max-content;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:12px;font-weight:500;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.text-link span{transition:transform .2s ease}.text-link:hover span{transform:translate(3px,-2px)}.hero-signature{position:absolute;right:6%;bottom:7%;margin:0;color:var(--rock);font-family:Snell Roundhand,cursive;font-size:28px;transform:rotate(-7deg)}.hero-photo{position:relative;min-height:calc(100svh - 86px);overflow:hidden}.hero-photo:after{position:absolute;inset:0;background:linear-gradient(90deg,rgba(36,35,32,.04),transparent 30%);content:""}.hero-photo picture,.day-card>picture,.quote-break>picture,.gallery-item picture,.rsvp-banner>picture{display:block;width:100%;height:100%}.hero-photo img{height:100%;object-fit:cover;object-position:50% 52%}.photo-note{position:absolute;z-index:2;right:26px;bottom:26px;padding:10px 15px;background:#faf9f6db;font-size:10px;font-weight:500;letter-spacing:.15em;text-transform:uppercase}.hero-side{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:var(--oat);color:var(--muted);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;writing-mode:vertical-rl}.hero-side .line{width:1px;height:64px;background:var(--rock)}.section{width:var(--page);margin-inline:auto;padding-block:clamp(100px,11vw,170px)}.intro{display:grid;grid-template-columns:70px minmax(300px,1.1fr) minmax(280px,.7fr);align-items:center;gap:clamp(35px,7vw,110px)}.section-number{align-self:start;color:var(--sandstone);font-family:var(--serif);font-size:15px}.intro-content h2,.section-heading h2,.rsvp-banner h2{font-family:var(--serif);font-size:clamp(42px,5vw,74px);letter-spacing:-.025em;line-height:1.07}.intro-content h2{max-width:720px;margin-bottom:32px}.intro-content>p:last-child{max-width:570px;color:var(--muted)}.intro-photo{margin:0}.intro-photo picture{display:block;width:100%;aspect-ratio:4/5;overflow:hidden}.intro-photo img{height:100%;object-fit:cover;object-position:50% 68%}.intro-photo figcaption{margin-top:12px;color:var(--rock);font-size:10px;font-weight:500;letter-spacing:.17em;text-transform:uppercase}.dates{display:flex;align-items:center;justify-content:center;gap:clamp(40px,8vw,120px);padding:62px 24px;background:var(--oat)}.dates .eyebrow{margin:0;color:var(--ink)}.countdown{display:flex;align-items:center;gap:clamp(24px,5vw,76px)}.countdown div{position:relative;min-width:68px;text-align:center}.countdown div:not(:last-child):after{position:absolute;top:13px;right:clamp(-40px,-2.7vw,-18px);color:var(--rock);content:":";font-family:var(--serif);font-size:30px}.countdown strong{display:block;font-family:var(--serif);font-size:clamp(38px,4vw,62px);font-weight:400;line-height:1}.countdown span{color:var(--muted);font-size:9px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.section-heading{display:grid;grid-template-columns:1.5fr 1fr;align-items:end;gap:60px;margin-bottom:64px}.section-heading h2{margin:0}.section-heading>p{max-width:390px;margin-bottom:8px;color:var(--muted)}.schedule{padding-bottom:100px}.day-card{display:grid;grid-template-columns:145px minmax(280px,.85fr) 1.15fr;min-height:390px;border-top:1px solid var(--sandstone)}.day-card:last-child{border-bottom:1px solid var(--sandstone)}.day-card-featured{background:var(--mist)}.day-date{padding:36px 24px}.day-date span,.day-date small{display:block;font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}.day-date strong{display:block;margin:16px 0 8px;font-family:var(--serif);font-size:78px;font-weight:400;line-height:.9}.day-date small{color:var(--rock)}.day-details{align-self:center;padding:44px}.day-details .time{margin-bottom:15px;color:var(--rock);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.day-details h3{margin-bottom:18px;font-family:var(--serif);font-size:38px;line-height:1.1}.day-details>p:not(.time){margin-bottom:26px;color:var(--muted)}.day-card>picture img{height:100%;min-height:390px;object-fit:cover;object-position:50% 35%}.mini-plan{align-self:center;margin:0;padding:35px clamp(24px,5vw,70px);list-style:none}.mini-plan li{display:grid;grid-template-columns:62px 1fr;gap:20px;padding:19px 0;border-bottom:1px solid var(--oat)}.mini-plan li:last-child{border:0}.mini-plan time{color:var(--rock);font-size:12px;font-weight:600}.mini-plan span{color:var(--muted)}.quote-break{position:relative;height:min(78vw,820px);min-height:550px;overflow:hidden}.quote-break:after{position:absolute;inset:0;background:#201d1a57;content:""}.quote-break img{height:100%;object-fit:cover;object-position:50% 52%}.quote-break blockquote{position:absolute;z-index:2;top:50%;left:50%;width:100%;margin:0;color:var(--white);font-family:var(--serif);font-size:clamp(52px,8vw,118px);text-align:center;transform:translate(-50%,-50%)}.details{padding-bottom:110px}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--sandstone);border-left:1px solid var(--sandstone)}.detail-card{position:relative;min-height:350px;border-right:1px solid var(--sandstone);border-bottom:1px solid var(--sandstone);padding:clamp(32px,5vw,68px)}.detail-card-wide{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.4fr;gap:70px;min-height:auto}.detail-icon{display:block;margin-bottom:72px;color:var(--rock);font-family:var(--serif);font-size:14px}.detail-card h3{margin-bottom:20px;font-family:var(--serif);font-size:34px}.detail-card p{max-width:540px;color:var(--muted)}.detail-card-wide .detail-icon{position:absolute;top:38px;right:42px;margin:0}.detail-card-wide h3{align-self:center;margin:0}.detail-card-wide p{margin:0}.swatches{display:flex;width:min(100%,320px);height:28px;margin-top:30px;border:1px solid var(--oat)}.swatches span{flex:1;background:var(--swatch)}.gallery{padding-top:40px}.gallery-grid{display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:repeat(2,min(35vw,480px));gap:18px}.gallery-item{position:relative;overflow:hidden;border:0;padding:0;background:var(--mist);cursor:zoom-in}.gallery-item.tall{grid-row:1/3}.gallery-item:after{position:absolute;right:16px;bottom:16px;display:grid;width:42px;height:42px;place-items:center;background:#faf9f6e0;color:var(--ink);content:"+";font-size:22px;font-weight:300;opacity:0;transition:opacity .25s ease}.gallery-item:hover:after{opacity:1}.gallery-item img{height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.75,.25,1)}.gallery-item:hover img{transform:scale(1.025)}.gallery-item:nth-child(2) img{object-position:50% 45%}.rsvp-banner{display:grid;grid-template-columns:1fr 1fr;min-height:730px;margin-top:60px;background:var(--rock);color:var(--white)}.rsvp-banner>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(40px,8vw,130px)}.rsvp-banner .eyebrow{color:var(--oat)}.rsvp-banner h2{margin-bottom:45px;font-size:clamp(54px,6.4vw,96px)}.rsvp-banner>picture{max-height:830px}.rsvp-banner img{height:100%;max-height:830px;object-fit:cover;object-position:50% 50%;filter:sepia(.08)}footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:110px;padding-inline:max(24px,calc((100vw - 1360px)/2));background:var(--ink);color:var(--white)}footer p{margin:0;font-size:10px;letter-spacing:.14em;text-transform:uppercase}footer p:last-child{justify-self:end}dialog{padding:0}dialog::backdrop{background:#1c1b19b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.rsvp-dialog{width:min(600px,calc(100vw - 32px));max-height:calc(100svh - 32px);border:0;padding:clamp(32px,6vw,64px);background:var(--mist);color:var(--ink)}.dialog-close{position:absolute;z-index:3;top:16px;right:18px;width:42px;height:42px;border:0;background:transparent;cursor:pointer;color:inherit;font-size:30px;font-weight:300}.rsvp-dialog h2{margin-bottom:15px;font-family:var(--serif);font-size:clamp(40px,5vw,58px);line-height:1.05}.dialog-intro{margin-bottom:28px;color:var(--muted)}#rsvp-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}#rsvp-form label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}#rsvp-form label:first-child,#rsvp-form label:nth-child(2),#rsvp-form label:nth-child(5),#rsvp-form button,.rsvp-status{grid-column:1/-1}#rsvp-form label span{color:var(--muted);font-weight:300}input,select,textarea{width:100%;margin-top:7px;border:1px solid var(--sandstone);border-radius:0;padding:13px 14px;outline:0;background:var(--white);color:var(--ink);font-size:15px;text-transform:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--rock);box-shadow:0 0 0 2px #a48d7824}.rsvp-status{display:none;margin:0;padding:13px 15px;font-size:14px}.rsvp-status.is-visible{display:block}.rsvp-status.is-success{background:#e4eadf;color:#35452e}.rsvp-status.is-error{background:#eee0da;color:#6d3529}#rsvp-form button:disabled{cursor:wait;opacity:.7;transform:none}.lightbox{width:min(820px,calc(100vw - 36px));max-height:calc(100svh - 36px);border:0;background:transparent;color:var(--white);overflow:visible}.lightbox img{max-height:calc(100svh - 36px);object-fit:contain}.lightbox-close{position:fixed;top:18px;right:24px;color:var(--white)}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.reveal.in-view{opacity:1;transform:translateY(0)}.quote-break blockquote.reveal{transform:translate(-50%,calc(-50% + 20px))}.quote-break blockquote.reveal.in-view{transform:translate(-50%,-50%)}@media(max-width:980px){:root{--page: min(100% - 36px, 760px)}.site-header{grid-template-columns:1fr auto;min-height:74px;padding-inline:22px}.site-header nav{position:fixed;z-index:30;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:var(--mist);opacity:0;pointer-events:none;transition:opacity .25s ease}.site-header nav a{font-family:var(--serif);font-size:38px;font-weight:400;letter-spacing:0;text-transform:none}.menu-open .site-header nav{opacity:1;pointer-events:auto}.header-rsvp{display:none}.menu-toggle{position:relative;z-index:40;display:block;width:42px;height:42px;border:0;padding:0;background:none}.menu-toggle span{position:absolute;right:5px;width:25px;height:1px;background:var(--ink);transition:transform .25s ease,top .25s ease}.menu-toggle span:first-child{top:16px}.menu-toggle span:last-child{top:24px}.menu-open .menu-toggle span:first-child{top:20px;transform:rotate(45deg)}.menu-open .menu-toggle span:last-child{top:20px;transform:rotate(-45deg)}.hero{grid-template-columns:1fr 1fr;min-height:auto;padding:74px 0 0 24px}.hero-copy{min-height:650px;padding-right:28px}.hero-photo{min-height:650px}.hero-side,.hero-signature{display:none}.intro{grid-template-columns:40px 1.2fr .8fr;gap:32px}.day-card{grid-template-columns:120px 1fr 1fr}.day-details{padding:34px 24px}.details-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){:root{--page: calc(100% - 32px) }.mobile-rsvp-bar{position:fixed;z-index:45;top:max(8px,env(safe-area-inset-top));left:12px;display:flex;align-items:center;justify-content:space-between;width:calc(100% - 24px);min-height:62px;border:1px solid rgba(203,185,164,.68);padding:7px 7px 7px 17px;background:#f4f1eaf0;box-shadow:0 12px 30px #2423201f;opacity:0;pointer-events:none;transform:translateY(calc(-100% - 24px));transition:opacity .32s ease,transform .46s cubic-bezier(.22,.75,.24,1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mobile-rsvp-bar.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.menu-open .mobile-rsvp-bar,.dialog-open .mobile-rsvp-bar{opacity:0;pointer-events:none;transform:translateY(calc(-100% - 24px))}.mobile-rsvp-logo{font-family:var(--serif);font-size:20px;letter-spacing:.06em;line-height:1;text-decoration:none}.mobile-rsvp-logo span{color:var(--rock);font-size:.7em}.mobile-rsvp-bar .button{min-height:46px;padding-inline:18px;font-size:9px;letter-spacing:.12em}.hero{display:flex;flex-direction:column;min-height:100svh;padding:74px 0 0}.hero-copy{min-height:auto;padding:70px 24px 58px}h1{font-size:clamp(66px,22vw,98px)}.hero-lead{font-size:15px}.hero-actions{align-items:flex-start;flex-direction:column;gap:23px}.hero-photo{min-height:74svh}.photo-note{right:14px;bottom:14px}.section{padding-block:90px}.intro{display:block}.section-number{margin-bottom:60px}.intro-content{margin-bottom:50px}.intro-photo{width:78%;margin-left:auto}.dates{flex-direction:column;gap:25px;padding-block:44px}.countdown{width:100%;justify-content:center;gap:18px}.countdown div{min-width:54px}.countdown div:not(:last-child):after{top:8px;right:-13px;font-size:24px}.countdown strong{font-size:36px}.section-heading{display:block;margin-bottom:45px}.section-heading>p{margin-top:24px}.day-card{display:grid;grid-template-columns:90px 1fr;min-height:auto}.day-date{padding:28px 10px}.day-date strong{font-size:58px}.day-details{padding:30px 20px}.day-details h3{font-size:31px}.day-card>picture,.mini-plan{grid-column:1/-1}.day-card>picture{min-height:440px;height:65svh}.mini-plan{padding:25px 20px 35px}.quote-break{height:72svh;min-height:500px}.quote-break img{object-position:59% center}.quote-break blockquote{width:max-content;max-width:calc(100% - 24px);font-size:clamp(34px,10.8vw,48px);white-space:nowrap}.details-grid{display:block;border-left:1px solid var(--sandstone)}.detail-card{min-height:auto}.detail-card-wide{display:block}.detail-card-wide h3{margin-bottom:20px}.detail-icon{margin-bottom:48px}.gallery{padding-top:20px}.gallery-grid{display:flex;flex-direction:column}.gallery-item{height:65svh;min-height:440px}.gallery-item:nth-child(2),.gallery-item:nth-child(3){height:52svh}.rsvp-banner{display:flex;flex-direction:column;min-height:auto;margin-top:20px}.rsvp-banner>div{min-height:530px;padding:70px 24px}.rsvp-banner>picture,.rsvp-banner img{height:72svh;max-height:720px}footer{display:flex;flex-direction:column;justify-content:center;gap:12px;min-height:180px;text-align:center}footer p:last-child{justify-self:auto}#rsvp-form{display:block}#rsvp-form label{display:block;margin-bottom:15px}#rsvp-form button{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}.loader-logo,.loader-rule span{animation:none}}
