nav a[aria-current=page]{color:var(--wine);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}nav .nav-rsvp[aria-current=page]{text-decoration:none;background:#faf7f6}.inner-page{min-height:65vh}.inner-page h1{font:400 clamp(44px,4.6vw,68px)/1.08 var(--serif);letter-spacing:-.025em;margin:16px 0 26px}.inner-page h1 em{font-weight:400}.inner-page>.section:first-child{border-top:0;padding-top:70px}.inner-page>.rsvp{border-top:0;padding-top:70px;padding-bottom:80px}.inner-page .story{min-height:650px}.inner-page .moments{padding-bottom:65px}.home-links{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding-top:38px;padding-bottom:65px}.home-links>a{border-top:1px solid var(--line);padding:26px 0;display:block}.home-links h2{font-size:36px;margin:12px 0 16px}.home-links>a>span:last-child{font-size:17px;color:var(--wine)}.home-links>a:hover h2{color:var(--wine)}.registry-page{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.registry-photo img{width:100%;height:570px;object-fit:cover}.registry-page p{font-size:18px;line-height:1.85;color:var(--muted)}.registry-page .eyebrow{font-size:13px;color:var(--gold)}.registry-button{display:inline-block;margin-top:20px;text-align:center}.registry-signature{font:32px 'Pinyon Script',cursive!important;color:var(--wine)!important;margin-top:30px}.inner-page .rsvp .address-intro h1{font-size:clamp(44px,4.6vw,64px)}
@media(max-width:1000px){header nav{gap:13px;font-size:11px}.registry-page{gap:36px}.registry-photo img{height:480px}}
@media(max-width:700px){header nav{font-size:14px;gap:20px}.inner-page>.section:first-child{padding-top:40px}.inner-page>.rsvp{padding-top:40px;padding-bottom:50px}.inner-page h1,.inner-page .rsvp .address-intro h1{font-size:46px}.home-links{grid-template-columns:1fr;gap:0;padding-top:20px;padding-bottom:35px}.home-links>a{padding:23px 0}.home-links h2{font-size:33px;margin:8px 0 12px}.registry-page{display:flex;flex-direction:column-reverse;gap:30px}.registry-photo{width:100%}.registry-photo img{height:390px}.registry-button{width:100%}.inner-page .story{min-height:0}}

.registry-photo img{height:auto;max-height:620px;object-fit:contain}@media(max-width:700px){.registry-photo img{height:auto;max-height:520px}}

#household-matches{display:grid;gap:16px;margin:24px 0}.household-option{display:grid;gap:10px;width:100%;padding:24px;text-align:left;border:1px solid #d9d3cb;background:white;color:#373530;font:inherit;cursor:pointer}.household-option:hover,.household-option:focus-visible{border-color:#795560;background:#faf7f5}.household-option strong{font-size:1.25rem}.household-option span{line-height:1.6}.household-select{color:#795560;font-weight:600}.household-option:disabled{opacity:.6;cursor:wait}

.plus-one-option{margin:16px 0 22px}.plus-one-option .guest-choice{font-size:18px}.plus-one-details{padding:12px 0 0 28px}.plus-one-details[hidden]{display:none}

.rsvp-form .plus-one-option>.guest-choice{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:12px;width:auto;text-align:left;font-size:18px;line-height:1.5;cursor:pointer;margin:0;padding:0}.rsvp-form .plus-one-option>.guest-choice>input[type=checkbox]{appearance:auto;display:block;width:18px;min-width:18px;max-width:18px;height:18px;flex:0 0 18px;margin:0;padding:0;cursor:pointer}.rsvp-form .plus-one-option{margin:16px 0 20px}.rsvp-form .plus-one-details{padding:16px 0 0}.rsvp-form .plus-one-details>label{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:8px;margin:0 0 16px}.rsvp-form .plus-one-details input{width:100%;box-sizing:border-box}

.saved-rsvp{font-size:18px;line-height:1.6;color:var(--wine);padding:10px 0}.invited-person .saved-rsvp+.form-help{font-size:15px}

/* Comfortable touch controls across phones and tablets. */
@media(pointer:coarse),(max-width:1024px){
 .menu-toggle{min-width:48px;min-height:44px}
 .rsvp-form .guest-choice,.rsvp-form .plus-one-option>.guest-choice{min-height:44px;cursor:pointer}
 .rsvp-form .guest-choice{margin-bottom:4px}
 .rsvp-form .plus-one-option>.guest-choice{margin-bottom:0}
 .rsvp-form input:not([type=radio]):not([type=checkbox]),.rsvp-form select{min-height:44px;font-size:16px}
 #close-photo{min-width:72px;min-height:44px;top:4px;right:12px}
 .album-controls button{min-width:72px;min-height:44px}
 .chapter-tabs button{min-height:44px}
}
@media(max-width:600px){
 .rsvp-actions{flex-direction:column;align-items:stretch;gap:12px}
 .rsvp-actions>button{width:100%;min-height:48px;white-space:normal;line-height:1.5}
 .rsvp-deadline{font-size:18px!important;color:var(--wine)!important}
 header nav a{min-height:44px;display:flex;align-items:center}
}
.rsvp-deadline{font-weight:500;color:var(--wine)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Display the supplied monogram without its surrounding screenshot margins. */
.logo-frame{display:block;position:relative;width:74px;height:74px;overflow:hidden;flex-shrink:0;background:#fff;border-radius:50%}.logo-frame img{position:absolute;width:197.4%;max-width:none;height:auto;left:-47.4%;top:-16%;margin:0}.monogram{display:block;letter-spacing:normal}.footer-monogram.logo-frame{width:124px;height:124px;margin:18px auto 16px}header{min-height:96px}@media(max-width:700px){header{min-height:82px}.logo-frame{width:62px;height:62px}.footer-monogram.logo-frame{width:110px;height:110px}}

header{background:#46453d;color:#fff;border-bottom:0;height:76px;min-height:76px}header .monogram{font:12px var(--sans);letter-spacing:.24em;text-transform:uppercase;white-space:nowrap}header nav a{color:#fff}header .nav-rsvp{background:#383027;border:0;border-radius:30px;padding:10px 24px}header .menu-toggle{color:#fff}.hero{margin:0;width:100%}.welcome-monogram.logo-frame{width:136px;height:136px;margin:0 auto 34px}.invitation{padding-top:66px}@media(max-width:700px){header{height:70px;min-height:70px}.welcome-monogram.logo-frame{width:116px;height:116px;margin-bottom:28px}.invitation{padding-top:46px}header nav{background:#46453d}header nav a{color:#fff}}

.invitation .intro{margin-bottom:0;line-height:1.95}.invitation .signature{margin-top:42px;margin-bottom:0}.invitation-grid{margin-top:58px;padding:40px 0;column-gap:64px;align-items:center}.calendar-date span{display:block;font-size:17px;letter-spacing:.16em;line-height:1.8}.calendar-date strong{font-size:104px;line-height:1.2;margin:12px 0;display:block}.invitation-grid h3{font-size:44px;line-height:1.25;margin:18px 0 24px}.invitation-grid .venue-address{font-size:21px;line-height:1.9;margin:0 0 24px}.invitation-grid .text-link{display:inline-block;margin-top:22px}.invitation-divider{height:220px}.invitation .quiet{margin-top:28px}.footer-names{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.03em}.footer-ampersand{font-family:Georgia,'Times New Roman',serif;font-style:normal;font-size:.82em;margin:0 .14em}header nav a[aria-current=page]{color:#e0ca9a}header nav .nav-rsvp[aria-current=page]{color:#383027}@media(max-width:700px){.invitation .signature{margin-top:34px}.invitation-grid{margin-top:40px;padding:28px 0;row-gap:38px}.calendar-date strong{font-size:92px}.calendar-date span{font-size:16px}.invitation-grid h3{font-size:36px;margin:18px 0}.invitation-grid .venue-address{font-size:19px;line-height:1.85;margin-bottom:18px}.invitation-grid .text-link{margin-top:18px}.invitation-divider{height:1px;width:64px}.footer-names{font-size:42px}}

header nav a,header nav a[aria-current=page]{color:#fffdf7}header nav a:hover,header nav a:focus-visible{color:#f0dfb9}header nav a[aria-current=page]{text-decoration-color:#e0ca9a;text-underline-offset:8px}header nav .nav-rsvp,header nav .nav-rsvp[aria-current=page]{background:#e0ca9a;color:#302c25;border:1px solid #e0ca9a}header nav .nav-rsvp:hover{background:#f0dfb9;color:#302c25}header{gap:32px}header nav{flex-shrink:0;gap:24px}header .monogram{flex-shrink:0}@media(max-width:1100px){header{height:72px;min-height:72px;padding:0 6%;gap:20px}header .menu-toggle{display:block;background:none;border:1px solid #d7c59f;border-radius:4px;padding:8px 16px;letter-spacing:.08em;font-size:14px;color:#fffdf7}header nav{display:none;position:absolute;top:100%;left:0;right:0;width:100%;padding:24px 6%;background:#46453d;border-bottom:1px solid #8c8776;flex-direction:column;align-items:stretch;gap:0;font-size:14px}header nav.open{display:flex}header nav a{display:block;padding:12px 0;line-height:1.5}header nav .nav-rsvp{margin-top:12px;padding:12px 24px;text-align:center;align-self:flex-start;min-width:120px}header nav a[aria-current=page]{text-decoration:underline;text-decoration-color:#e0ca9a}}@media(max-width:400px){header .monogram{font-size:11px;letter-spacing:.18em}header .menu-toggle{padding:7px 12px}}

@media(max-width:700px){
 header{height:68px;min-height:68px;padding:0 24px}header .monogram{font-size:11px;letter-spacing:.2em}header .menu-toggle{font-size:13px;padding:7px 12px}
 .hero{height:70svh;min-height:500px;max-height:640px}.hero-title{padding:0 22px}.hero h1{font-size:clamp(58px,16vw,82px);line-height:1.07}.hero h1 em{font-size:38px;margin:14px 0}.hero-subtitle{font-size:10px;letter-spacing:.13em;line-height:2.2;max-width:260px;margin:26px auto 0}.hero-invite{font-size:10px;bottom:22px}
 .section{padding:52px 24px}.welcome-monogram.logo-frame{width:100px;height:100px;margin-bottom:32px}.invitation h2{font-size:36px;line-height:1.18;margin:18px auto 28px}.invitation .eyebrow{font-size:10px;letter-spacing:.16em}.invitation .intro{font-size:17px;line-height:1.9;max-width:32ch}.invitation .signature{font-size:36px;margin-top:36px}.invitation-grid{display:grid;grid-template-columns:minmax(0,1fr);margin-top:48px;padding:0;row-gap:42px}.calendar-date strong{font-size:82px;margin:10px 0}.calendar-date span{font-size:14px;letter-spacing:.12em}.invitation-divider{width:54px;height:1px}.invitation-grid h3{font-size:32px;line-height:1.3;margin:16px 0 20px}.invitation-grid .venue-address{font-size:18px;line-height:1.9}.invitation-grid .text-link{font-size:16px;margin-top:18px}.invitation .quiet{margin-top:40px;font-size:16px}.invitation{padding-bottom:44px}
 .countdown{width:auto;margin:0 24px;padding:34px 0 46px}.countdown h2{font-size:31px;line-height:1.25;margin:0 0 28px}.countdown-clock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%;max-width:360px;margin:auto}.countdown-colon{display:none}.countdown-value{font-size:clamp(32px,9vw,42px);line-height:1.2}.countdown-label{display:block;font-size:10px;letter-spacing:.08em;margin-top:10px}
 .home-links{padding-top:0;padding-bottom:38px;gap:0}.home-links>a{padding:28px 0}.home-links h2{font-size:31px}.home-links p{font-size:16px}.home-links .eyebrow{font-size:10px}
 footer{padding:38px 24px 30px}.footer-monogram.logo-frame{width:94px;height:94px;margin:24px auto}.footer-names{font-size:36px;line-height:1.3}footer p{font-size:13px}
 .inner-page h1,.inner-page .rsvp .address-intro h1{font-size:38px;line-height:1.15}.inner-page>.section:first-child{padding-top:44px}.rsvp-form{padding:24px 18px;margin-top:30px}.rsvp-form input,.rsvp-form textarea{font-size:16px;max-width:100%}.rsvp-form legend{font-size:25px}.rsvp-actions{display:flex;flex-direction:column;gap:14px}.rsvp-actions button{width:100%;margin:0}.rsvp .address-intro p:not(.eyebrow){font-size:17px;line-height:1.8}.schedule-list li{grid-template-columns:90px minmax(0,1fr);gap:16px;padding:24px 0}.schedule-time{font-size:13px}.schedule-list h3{font-size:25px}.details summary{font-size:25px}.chapter-tabs{display:flex;flex-wrap:wrap;gap:12px}.registry-page{gap:36px}
}

header .menu-toggle{border:0!important;background:transparent!important;padding:10px!important;width:44px;height:44px;position:relative;flex-shrink:0}header .menu-toggle span{display:block;width:24px;height:2px;margin:5px 0;background:#fffdf7;transition:transform .2s,opacity .2s}header .menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}header .menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}header .menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(min-width:961px){header .menu-toggle{display:none!important}header{height:76px;min-height:76px;gap:28px;padding:0 5%}header nav,header nav.open{display:flex!important;position:static;flex-direction:row;align-items:center;width:auto;padding:0;background:transparent;border:0;gap:20px;font-size:11px}header nav a{padding:0;white-space:nowrap}header nav .nav-rsvp{margin:0;padding:10px 22px;min-width:0;align-self:auto}}@media(max-width:960px){header .menu-toggle{display:block}}

footer .footer-names{font:400 16px/1.6 var(--sans);letter-spacing:.24em;text-transform:uppercase;margin:26px 0 22px}footer .footer-ampersand{font:inherit;letter-spacing:inherit;margin:0}@media(max-width:700px){footer .footer-names{font-size:14px;letter-spacing:.2em}}

@media(max-width:960px){header nav,header nav.open{display:flex;max-height:calc(100svh - 68px);overflow-y:auto;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);clip-path:inset(0 0 100% 0);transition:opacity .26s ease,transform .36s cubic-bezier(.22,1,.36,1),clip-path .36s cubic-bezier(.22,1,.36,1),visibility 0s linear .36s}header nav.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);clip-path:inset(0 0 0 0);transition-delay:0s;box-shadow:0 18px 30px #00000018}header nav a{opacity:0;transform:translateY(-7px);transition:opacity .2s ease,transform .28s ease}header nav.open a{opacity:1;transform:translateY(0);transition-delay:.08s}header nav.open a:nth-child(2){transition-delay:.11s}header nav.open a:nth-child(3){transition-delay:.14s}header nav.open a:nth-child(4){transition-delay:.17s}header nav.open a:nth-child(5){transition-delay:.2s}header nav.open a:nth-child(6){transition-delay:.23s}header .menu-toggle span{transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .2s ease}}
@media(prefers-reduced-motion:reduce){header nav,header nav a,header .menu-toggle span{transition:none!important}}

.hero h1>span{color:#fffdf8;text-shadow:none}

/* Warm ivory, espresso, and champagne navigation. */
header{width:100%;max-width:none;margin:0;background:#faf8f3;color:#3e352e;border-bottom:1px solid #e8e0d2}header .monogram{color:#3e352e}header nav a,header nav a[aria-current=page]{color:#3e352e}header nav a:hover,header nav a:focus-visible{color:#806737}header nav a[aria-current=page]{text-decoration-color:#a68a52}header nav .nav-rsvp,header nav .nav-rsvp[aria-current=page]{background:#f1e8d5;color:#3e352e;border:1px solid #c7b17e;border-radius:3px}header nav .nav-rsvp:hover{background:#e8dabd;color:#332a23}header .menu-toggle span{background:#3e352e}header .menu-toggle:focus-visible{outline-color:#9f8249}header .menu-toggle{color:#3e352e}
@media(max-width:960px){header nav,header nav.open{background:#faf8f3;border-bottom:1px solid #d9ceb9}header nav.open{box-shadow:0 16px 32px #3c302014}}

/* A quiet, one-time editorial reveal. */
.hero h1>span{display:block;animation:name-reveal 1.5s cubic-bezier(.22,1,.36,1) both}.hero h1>span:first-child{animation-delay:.15s}.hero h1>span:last-child{animation-delay:.45s}.hero h1>em{animation:name-reveal 1.3s cubic-bezier(.22,1,.36,1) .3s both}
@keyframes name-reveal{from{opacity:0;transform:translateY(14px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(prefers-reduced-motion:reduce){.hero h1>span,.hero h1>em{animation:none;opacity:1;transform:none;filter:none}}

.invitation-grid .venue-address{font-size:18px;line-height:1.8;color:var(--muted);margin-bottom:0}.venue-actions{display:flex;justify-content:center;align-items:center;gap:30px;margin:28px auto 0;flex-wrap:wrap}.venue-actions a{font-size:15px;line-height:1.6;padding:8px 0;color:#5e4d35;border-bottom:1px solid #c9b98e;white-space:nowrap}.venue-actions a span{margin-left:6px}.countdown{background:#faf8f3;max-width:920px;width:calc(100% - 96px);margin:36px auto 52px;padding:48px 32px 52px}.countdown h2{font-size:34px;margin:0 0 30px}.countdown-value{color:#5e5548}.countdown-clock{max-width:520px}.invitation{padding-bottom:20px}
@media(max-width:700px){.invitation-grid h3{font-size:30px;margin:16px 0 22px;line-height:1.35}.invitation-grid .venue-address{font-size:16px;line-height:1.85}.venue-actions{gap:26px;margin-top:26px}.venue-actions a{font-size:14px;padding:9px 0}.invitation{padding-bottom:12px}.countdown{width:calc(100% - 48px);margin:38px 24px 46px;padding:34px 18px 36px}.countdown h2{font-size:27px;line-height:1.3;margin-bottom:26px}.countdown-clock{gap:8px}.countdown-value{font-size:clamp(29px,8.4vw,36px)}.countdown-label{font-size:9px;letter-spacing:.07em;margin-top:9px}}

.invitation-grid{padding-bottom:40px}.venue-actions{margin-bottom:0}@media(max-width:700px){.invitation-grid{padding-bottom:36px;border-bottom:1px solid #e8e4de}.invitation-divider{display:block;width:100%;max-width:none;height:1px;background:#e8e4de;margin:0;border:0}.invitation-grid .text-link{padding-bottom:8px}.venue-actions a{padding-bottom:10px}.countdown{margin-top:40px}}

.welcome-monogram.logo-frame::after,.footer-monogram.logo-frame::after{content:"";position:absolute;inset:-20%;pointer-events:none;background:linear-gradient(110deg,transparent 38%,#ffffff00 43%,#ffffffb8 50%,#ffffff00 57%,transparent 62%);transform:translateX(-140%);animation:monogram-shimmer 10s ease-in-out infinite}.footer-monogram.logo-frame::after{animation-delay:1s}
@keyframes monogram-shimmer{0%,65%{transform:translateX(-140%)}88%,100%{transform:translateX(140%)}}
@media(prefers-reduced-motion:reduce){.welcome-monogram.logo-frame::after,.footer-monogram.logo-frame::after{display:none;animation:none}}

.countdown-schedule{margin:30px 0 0}.countdown-schedule a{display:inline-block;font-size:15px;line-height:1.6;padding:8px 0;color:#5e4d35;border-bottom:1px solid #c9b98e}.countdown-schedule a span{margin-left:6px}@media(max-width:700px){.countdown-schedule{margin-top:28px}.countdown-schedule a{font-size:14px;padding:9px 0}}

header{background:#fff;color:#35332f;border-bottom:1px solid #e9e7e2}header .monogram,header nav a,header nav a[aria-current=page]{color:#35332f}header nav a:hover,header nav a:focus-visible{color:#35332f;text-decoration:underline;text-underline-offset:8px}header nav .nav-rsvp,header nav .nav-rsvp[aria-current=page]{background:transparent;color:#35332f;border:1px solid #77746d;border-radius:0}header nav .nav-rsvp:hover,header nav .nav-rsvp:focus-visible{background:#35332f;color:white;text-decoration:none}header .menu-toggle span{background:#35332f}@media(max-width:960px){header nav,header nav.open{background:#fff;border-bottom:1px solid #e9e7e2}}

/* One palette throughout: ink, limestone, and antique gold. */
:root{--ink:#30312e;--muted:#62635d;--line:#e2e1db;--wine:#30312e;--gold:#75633e;--paper:#fff;--stone:#f3f2ee;--accent-line:#ad9969}
body{color:var(--ink)}.signature,.registry-signature,.home-links>a>span:last-child,.schedule-time,.saved-rsvp,.household-select{color:var(--ink)}.intro,.venue-address,.story-copy>p,.chapter-panel p,.details-intro p,.details details p,.registry-page p{color:var(--muted)}
.countdown{background:var(--stone)}.countdown h2,.countdown-value,.countdown-schedule a,.venue-actions a{color:var(--ink)}.countdown-label{color:var(--muted)}.venue-actions a,.countdown-schedule a,.text-link{border-bottom-color:var(--accent-line)}
.eyebrow,.invitation-grid .eyebrow,.registry-page .eyebrow,.registry .eyebrow{color:var(--gold)}.hero,.hero h1,.hero h1 em,.hero h1>span,.hero-invite{color:#fffdf8}header .monogram,header nav a,header nav a[aria-current=page]{color:var(--ink)}header nav a[aria-current=page]{text-decoration-color:var(--accent-line)}
.household-option{border-color:var(--line);color:var(--ink)}.household-option:hover,.household-option:focus-visible{border-color:var(--gold);background:var(--stone)}.household-select{color:var(--ink)}.rsvp-form{background:#fcfcfa;border-color:var(--line)}.rsvp-primary{background:var(--ink);border-color:var(--ink);color:white}.rsvp-primary:hover{background:#454640}.rsvp-secondary{color:var(--ink);border-color:#a5a59c;background:white}.rsvp-secondary:hover{background:var(--stone)}.album-invitation .rsvp-primary{color:var(--ink);background:white;border-color:var(--ink)}.guest-choice input,.attendance-choices input{accent-color:var(--ink)}#reply-error,.rsvp #rsvp-error{color:#5c3a30}.chapter-tabs button[aria-selected=true]{color:var(--ink);border-color:var(--accent-line)}a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:var(--gold)}footer p{color:var(--muted)}footer .footer-names{color:var(--ink)}

.wedding-date-inline{white-space:nowrap}

#photo-caption:empty{display:none}.album-controls{justify-content:space-between}

.countdown{position:relative;isolation:isolate;overflow:hidden;background:#242522;padding-top:58px;padding-bottom:58px}.countdown::before{content:"";position:absolute;inset:0;z-index:-2;background:url('/assets/couple-1.jpg') center 47%/cover no-repeat}.countdown::after{content:"";position:absolute;inset:0;z-index:-1;background:#171916a6}.countdown h2,.countdown-value,.countdown-label,.countdown-schedule a,.countdown-colon{color:#fffdf8}.countdown-schedule a{border-color:#dbcca7}.countdown-clock{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:start;max-width:580px}.countdown-colon{display:block;font:400 34px/1.9 var(--serif);opacity:.75}.countdown-value{text-shadow:0 1px 10px #0003}.countdown-label{opacity:.9}.countdown-schedule{margin-top:32px}@media(max-width:700px){.countdown{padding:42px 16px 40px;min-height:310px}.countdown::before{background-position:52% 45%}.countdown-clock{gap:5px}.countdown-colon{display:block;font-size:22px;line-height:1.65}.countdown-value{font-size:clamp(29px,8.2vw,36px)}.countdown h2{font-size:27px}.countdown-label{font-size:8px;letter-spacing:.06em}.countdown-schedule{margin-top:28px}}

header nav .nav-rsvp,header nav .nav-rsvp[aria-current=page]{background:linear-gradient(to right,var(--ink) 50%,transparent 50%) right center/210% 100% no-repeat;color:var(--ink);border-color:#77746d;transition:background-position .8s cubic-bezier(.22,1,.36,1),color .65s ease,border-color .65s ease}header nav .nav-rsvp:hover,header nav .nav-rsvp:focus-visible{background:linear-gradient(to right,var(--ink) 50%,transparent 50%) left center/210% 100% no-repeat;color:#fffdf8;border-color:var(--ink);text-decoration:none;transition:background-position .8s cubic-bezier(.22,1,.36,1),color .65s ease,border-color .65s ease}@media(prefers-reduced-motion:reduce){header nav .nav-rsvp{transition:none!important}}

#photo-dialog .album-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:16px;width:100%;margin:18px auto 0;padding:12px 0 0;border-top:1px solid var(--line)}#photo-dialog .album-controls button{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;margin:0;padding:10px 18px;border:1px solid var(--line);background:white;color:var(--ink);font:15px/1.4 var(--sans);white-space:nowrap;transition:background-color .3s,border-color .3s}#photo-dialog .album-controls button:hover{background:var(--stone);border-color:#aaa99f}#photo-caption{display:none}@media(max-width:700px){#photo-dialog .album-controls{gap:12px;margin-top:16px}#photo-dialog .album-controls button{font-size:14px;padding:10px 12px}}

.album-invitation .album-end{margin-top:40px}@media(max-width:700px){.album-invitation .album-end{margin-top:34px}}

/* Editorial engagement gallery: consistent portraits, generous white space. */
.moments .section-heading{display:block;text-align:center;max-width:720px;margin:0 auto 48px}.moments .section-heading>p{max-width:none;margin:22px auto 0;font-size:17px;line-height:1.8}.engagement-album{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:28px}.engagement-album .album-photo{order:initial!important;aspect-ratio:2/3;margin:0;padding:0;overflow:hidden;background:transparent;border:0}.engagement-album .album-photo[hidden]{display:none}.engagement-album .album-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}.engagement-album .album-photo:hover img{transform:scale(1.025)}.album-invitation{margin-top:42px;text-align:center}.album-invitation .rsvp-primary{display:inline-block;width:auto;min-width:190px;padding:13px 38px;font-size:15px;background:white;border:1px solid #aaa99f}.album-invitation .album-end{margin-top:38px;font-size:26px}.gallery-swipe-hint{display:none}
#photo-dialog{width:fit-content;max-width:calc(100vw - 32px);padding:20px;max-height:calc(100dvh - 24px);overflow:auto}#photo-dialog>img{max-width:min(80vw,760px);max-height:calc(100dvh - 175px);width:auto;height:auto;object-fit:contain}#photo-dialog .album-controls{min-width:min(440px,80vw);max-width:760px}#photo-dialog #close-photo{margin:0 0 16px auto;font-size:14px}
@media(max-width:700px){.moments .section-heading{margin-bottom:32px}.moments .section-heading h1{font-size:40px;line-height:1.16}.moments .section-heading>p{font-size:16px;margin-top:22px}.engagement-album{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:90%;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 0 8px;scroll-padding-left:0}.engagement-album::-webkit-scrollbar{display:none}.engagement-album .album-photo,.engagement-album .album-photo[style="order:1"]{grid-column:auto!important;order:initial!important;aspect-ratio:2/3;scroll-snap-align:start}.engagement-album .album-photo img,.engagement-album .album-photo[style="order:1"] img{object-fit:cover;background:transparent}.gallery-swipe-hint{display:block;text-align:center;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:18px 0 0}.album-invitation{margin-top:30px}.album-invitation .rsvp-primary{width:auto;min-width:180px;padding:13px 32px}.album-invitation .album-end{font-size:24px;margin-top:34px}#photo-dialog{padding:16px;max-width:calc(100vw - 20px)}#photo-dialog>img{max-width:calc(100vw - 52px);max-height:calc(100dvh - 165px)}#photo-dialog .album-controls{min-width:0;width:100%}}
@media(prefers-reduced-motion:reduce){.engagement-album .album-photo img{transition:none}}

.welcome-monogram.logo-frame::after,.footer-monogram.logo-frame::after{animation-duration:7s;animation-delay:.4s;animation-timing-function:cubic-bezier(.4,0,.2,1)}.footer-monogram.logo-frame::after{animation-delay:.7s}@keyframes monogram-shimmer{0%,12%{transform:translateX(-140%)}70%,100%{transform:translateX(140%)}}

.hero .hero-title{position:absolute;inset:0;width:100%;height:100%;padding:0;pointer-events:none}.hero h1{position:relative;width:100%;height:100%;font-size:clamp(72px,8vw,120px)}.hero h1>span{position:absolute;left:5%;width:90%;line-height:1;white-space:nowrap}.hero h1>span:first-child{top:7%}.hero h1>span:last-child{bottom:13%}.hero h1>em{position:absolute;top:44%;left:0;width:100%;margin:0;font-size:54px;line-height:1}@media(max-width:700px){.hero h1{font-size:clamp(48px,13vw,72px)}.hero h1>span:first-child{top:8%}.hero h1>span:last-child{bottom:16%}.hero h1>em{top:44%;font-size:40px}}

:root{--royal-maroon:#510519;--royal-maroon-deep:#340510}.swatch-golden-olive{background:#8b911b}.swatch-oxblood{background:var(--royal-maroon)}header nav .nav-rsvp,header nav .nav-rsvp[aria-current=page]{background:linear-gradient(to right,var(--royal-maroon-deep) 50%,var(--royal-maroon) 50%) right center/210% 100% no-repeat;color:#fffdf8;border-color:var(--royal-maroon)}header nav .nav-rsvp:hover,header nav .nav-rsvp:focus-visible{background:linear-gradient(to right,var(--royal-maroon-deep) 50%,var(--royal-maroon) 50%) left center/210% 100% no-repeat;color:#fffdf8;border-color:var(--royal-maroon-deep)}.rsvp .rsvp-primary{background:var(--royal-maroon);border-color:var(--royal-maroon);color:#fffdf8;transition:background-color .65s ease,border-color .65s ease}.rsvp .rsvp-primary:hover{background:var(--royal-maroon-deep);border-color:var(--royal-maroon-deep)}.color-swatches{flex-wrap:wrap;row-gap:24px}

.engagement-album{position:relative;display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 56px)/3);gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding-bottom:8px}.engagement-album::-webkit-scrollbar{display:none}.engagement-album .album-photo{scroll-snap-align:start;min-width:0}.gallery-controls{display:flex;justify-content:center;align-items:center;gap:28px;margin:26px auto 0}.gallery-controls button{border:0;background:transparent;color:var(--ink);min-width:44px;min-height:44px;font:14px var(--sans);padding:10px;cursor:pointer}.gallery-controls button:first-child,.gallery-controls button:last-child{font-size:24px}.gallery-controls button:hover{color:var(--gold)}#gallery-pause{font-size:12px;letter-spacing:.06em}.album-invitation{margin-top:24px}@media(max-width:700px){.engagement-album{grid-auto-columns:90%;gap:18px}.gallery-controls{gap:20px;margin-top:18px}.gallery-swipe-hint{margin-top:4px}.album-invitation{margin-top:26px}}

.hero h1>span:first-child{top:20%}.hero h1>span:last-child{bottom:28%}@media(max-width:700px){.hero h1>span:first-child{top:25%}.hero h1>span:last-child{bottom:31%}}

header nav .nav-rsvp,header nav .nav-rsvp[aria-current=page]{background:linear-gradient(to right,var(--royal-maroon) 50%,transparent 50%) right center/210% 100% no-repeat;color:var(--royal-maroon);border:1px solid var(--royal-maroon)}header nav .nav-rsvp:hover,header nav .nav-rsvp:focus-visible{background:linear-gradient(to right,var(--royal-maroon) 50%,transparent 50%) left center/210% 100% no-repeat;color:#fffdf8;border-color:var(--royal-maroon)}

@media(max-width:700px){.schedule-list li{grid-template-columns:1fr;gap:8px;padding:24px 0}.schedule-time{font-size:14px;white-space:normal}.schedule-list h3{font-size:26px;line-height:1.3}}

.gallery-controls{display:grid;grid-template-columns:44px auto 44px;justify-content:center;align-items:center;gap:28px}.gallery-controls .gallery-swipe-hint{display:block;margin:0;font-size:11px;letter-spacing:.12em;line-height:1.5;text-align:center;text-transform:uppercase;color:var(--muted)}.album-invitation .album-end{margin-top:28px}@media(max-width:700px){.gallery-controls{gap:20px}.gallery-controls .gallery-swipe-hint{font-size:10px;letter-spacing:.1em}.album-invitation{margin-top:24px}.album-invitation .album-end{margin-top:0}}

.registry-page{max-width:1160px;gap:72px;padding-top:72px;padding-bottom:80px}.registry-page>div:last-child{max-width:470px}.registry-page h1{font-size:clamp(48px,4.8vw,68px);line-height:1.12;margin:22px 0 32px}.registry-page p:not(.eyebrow){font-size:18px;line-height:1.9}.registry-photo{overflow:hidden}.registry-photo img{width:100%;max-height:680px;object-fit:contain}.registry-page .registry-button{display:inline-block;width:auto;margin-top:30px;padding:14px 28px;font:15px/1.6 var(--sans);border:1px solid var(--royal-maroon);color:var(--royal-maroon);background:linear-gradient(to right,var(--royal-maroon) 50%,transparent 50%) right center/210% 100% no-repeat;transition:background-position .8s cubic-bezier(.22,1,.36,1),color .65s ease}.registry-page .registry-button:hover,.registry-page .registry-button:focus-visible{background-position:left center;color:#fffdf8;text-decoration:none}.registry-page .eyebrow{font-size:11px;letter-spacing:.18em}@media(max-width:700px){.registry-page{padding-top:52px!important;padding-bottom:56px;gap:48px;text-align:center}.registry-page>div:last-child{max-width:440px;margin:auto}.registry-page h1{font-size:42px;line-height:1.18;margin:22px 0 30px}.registry-page p:not(.eyebrow){font-size:17px;line-height:1.9}.registry-page .registry-button{width:auto;max-width:100%;margin-top:26px;padding:14px 20px;font-size:14px}.registry-photo{max-width:420px;margin:auto}.registry-photo img{max-height:560px}}@media(prefers-reduced-motion:reduce){.registry-page .registry-button{transition:none}}

.color-swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 16px;list-style:none;padding:0;margin:24px 0 30px;width:100%;max-width:540px}.color-swatches li{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;min-width:0;text-align:center}.color-swatches .color-circle{width:46px;height:46px;flex:0 0 46px;margin:0}.color-swatches li>span:last-child{font-size:14px;line-height:1.4;min-height:2.8em;display:flex;align-items:flex-start;justify-content:center;width:100%;overflow-wrap:normal}.attire-label{margin-bottom:0}.attire-note{margin-top:12px}@media(max-width:380px){.color-swatches{gap:24px 10px}.color-swatches li>span:last-child{font-size:12px}.color-swatches .color-circle{width:40px;height:40px;flex-basis:40px}}

.inner-page .story{max-width:1160px;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding-top:72px;padding-bottom:80px}.story-copy{max-width:490px}.story-copy>.eyebrow{font-size:11px;letter-spacing:.2em}.inner-page .story h1{font-size:clamp(48px,4.8vw,66px);line-height:1.15;margin:24px 0 32px}.story-copy>p:not(.eyebrow){font-size:17px;line-height:1.9;max-width:440px}.story-photo img{width:100%;height:auto;max-height:700px;object-fit:contain}.story-photo>span{display:none}.chapter-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:38px;border-bottom:1px solid var(--line)}.chapter-tabs button{display:flex;align-items:center;justify-content:center;min-width:0;padding:16px 8px;margin:0;border:0;border-bottom:1px solid transparent;font:14px/1.5 var(--sans);color:var(--muted);white-space:nowrap}.chapter-tabs button[aria-selected=true]{border-bottom-color:var(--gold);color:var(--ink)}.chapter-panel{min-height:240px;padding-top:28px}.chapter-panel h3{font:400 32px/1.25 var(--serif);margin:0 0 22px}.chapter-panel p{font-size:17px;line-height:1.9;margin:0;color:var(--muted)}
@media(max-width:700px){.inner-page .story{display:flex;flex-direction:column-reverse;gap:44px;padding:52px 24px 56px}.story-copy{width:100%;max-width:440px;text-align:center}.story-copy>.eyebrow{font-size:10px;letter-spacing:.18em}.inner-page .story h1{font-size:42px;line-height:1.18;margin:22px 0 28px}.story-copy>p:not(.eyebrow){font-size:17px;line-height:1.9;margin:0 auto;max-width:32ch}.chapter-tabs{margin-top:34px}.chapter-tabs button{font-size:13px;padding:15px 4px;white-space:nowrap}.chapter-panel{min-height:0;padding:28px 0 0}.chapter-panel h3{font-size:29px;line-height:1.3;max-width:300px;margin:0 auto 24px}.chapter-panel p{font-size:17px;line-height:1.9;max-width:32ch;margin:auto}.story-photo{width:100%;max-width:420px;margin:auto}.story-photo img{height:auto;max-height:none;object-fit:contain}}

@view-transition{navigation:auto}
/* Keep the outgoing page solid while the next page gently resolves over it. */
::view-transition-group(root){animation-duration:.24s}
::view-transition-old(root){animation:none;mix-blend-mode:normal}
::view-transition-new(root){animation:page-resolve .24s ease-out both;mix-blend-mode:normal}
@keyframes page-resolve{from{opacity:0}to{opacity:1}}
header{view-transition-name:site-header}
::view-transition-group(site-header){animation:none}
::view-transition-old(site-header){animation:none}
::view-transition-new(site-header){animation:page-resolve .16s ease-out both}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}


footer .footer-date{font-size:12px;letter-spacing:.12em;margin:0 0 20px;color:var(--muted)}footer .footer-monogram.logo-frame{margin-top:4px}

.details details{interpolate-size:allow-keywords}.details details::details-content{height:0;overflow:clip;opacity:0;transition:height .48s cubic-bezier(.22,1,.36,1),opacity .3s ease,content-visibility .48s allow-discrete}.details details[open]::details-content{height:auto;opacity:1}.details summary{transition:color .3s ease}.details details[open] summary{color:var(--ink)}@media(prefers-reduced-motion:reduce){.details details::details-content,.details summary{transition:none!important}}

section.details{border-top:0}

/* Quiet chapter transitions with a continuous selection rule. */
.chapter-tabs{position:relative}.chapter-tabs::after{content:"";position:absolute;bottom:-1px;left:0;width:33.333333%;height:1px;background:var(--gold);transform:translateX(calc(var(--chapter-index,0)*100%));transition:transform .55s cubic-bezier(.22,.68,.2,1);pointer-events:none}.chapter-tabs button[aria-selected=true]{border-bottom-color:transparent}.chapter-tabs button{transition:color .35s ease}.chapter-panel[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.chapter-tabs::after,.chapter-tabs button{transition:none}}

/* Even FAQ row spacing; the footer supplies the final section divider. */
.details details{padding:26px 0}.details details:last-child{border-bottom:0;padding-bottom:0}.details summary{align-items:center}

.chapter-heading-line{white-space:nowrap}

/* Names are present immediately, including return visits to the home page. */
.hero h1>span,.hero h1>em{animation:none!important;opacity:1;filter:none}

/* Shared, stable stages allow true overlapping dissolves without layout jumps. */
.chapter-stage{display:grid;align-items:start}.chapter-stage .chapter-panel,.chapter-stage .chapter-panel[hidden]{display:block;grid-area:1/1;min-width:0;opacity:1;visibility:visible;transition:opacity .55s ease,visibility 0s;transform:none}.chapter-stage .chapter-panel[hidden]{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility 0s .55s}.story-photo{position:relative;aspect-ratio:2/3;align-self:center;width:100%;overflow:hidden}.story-photo .chapter-photo{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;opacity:0;transition:opacity .7s ease}.story-photo .chapter-photo.is-active{opacity:1}
@media(prefers-reduced-motion:reduce){.chapter-stage .chapter-panel,.chapter-stage .chapter-panel[hidden],.story-photo .chapter-photo{transition:none}}

/* Names stay readable from the first frame, with a restrained light effect. */
.hero h1>span{animation:name-poise 1s ease-out both,name-light 7s ease-in-out 1s infinite!important;animation-delay:0s,1s!important}.hero h1>em{animation:name-poise 1s ease-out both!important;animation-delay:0s!important}
@keyframes name-poise{from{opacity:.82;filter:none;transform:translateY(3px)}to{opacity:1;filter:none;transform:translateY(0)}}
@keyframes name-light{0%,100%{text-shadow:0 1px 8px #00000018}50%{text-shadow:0 0 14px #fffdf72b,0 1px 8px #00000018}}
.countdown-clock[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.hero h1>span,.hero h1>em{animation:none!important;opacity:1;transform:none}}

/* Reveal the ready destination beneath the outgoing page, never through white. */
::view-transition-old(root){z-index:2;animation:page-depart .18s ease-out both;mix-blend-mode:normal}
::view-transition-new(root){z-index:1;animation:none;opacity:1;mix-blend-mode:normal}
::view-transition-old(site-header){animation:none;opacity:0}
::view-transition-new(site-header){animation:none;opacity:1}
@keyframes page-depart{from{opacity:1}to{opacity:0}}
/* Crisp lettering from frame one; motion comes from spacing rather than fading. */
.hero h1>span{animation:name-compose .95s cubic-bezier(.22,1,.36,1) both!important;opacity:1!important;filter:none!important;transform:none!important;text-shadow:0 1px 8px #00000018}.hero h1>em{animation:none!important;opacity:1!important;filter:none!important;transform:none!important}
@keyframes name-compose{from{letter-spacing:.055em}to{letter-spacing:.015em}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),.hero h1>span{animation:none!important}}

.registry-page .registry-button{display:table}.registry-page .registry-button+.registry-button{margin-top:16px}@media(max-width:700px){.registry-page .registry-button{margin-left:auto;margin-right:auto}}

.registry-photo img{animation:registry-portrait 1.2s cubic-bezier(.22,1,.36,1) both;transform-origin:center;transition:transform 1.4s ease}.registry-photo:hover img{transform:scale(1.018)}
@keyframes registry-portrait{from{clip-path:inset(0 0 2% 0);transform:scale(1.018)}to{clip-path:inset(0);transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.registry-photo img{animation:none;transition:none}}

/* Final editorial rhythm: restrained motion, aligned actions and comfortable reading. */
:root{--refined-ease:cubic-bezier(.22,.68,.2,1)}
.inner-page h1,.inner-page h2,.chapter-panel h3{text-wrap:balance}
.inner-page p{overflow-wrap:break-word}.inner-page .section{min-width:0}
.registry-page .registry-button{width:280px;max-width:100%;min-height:50px;text-align:center;line-height:1.5;padding:14px 18px;display:block}
.rsvp-actions button,.rsvp-secondary{min-height:48px}.rsvp-form input,.rsvp-form textarea{border-radius:0}
.registry-photo{aspect-ratio:2/3}.registry-photo img{width:100%;height:100%;max-height:none;object-fit:cover;animation:none;transition:transform .8s var(--refined-ease)}
.registry-photo:hover img{transform:scale(1.015)}
.chapter-stage .chapter-panel,.chapter-stage .chapter-panel[hidden],.story-photo .chapter-photo{transition-duration:.55s;transition-timing-function:var(--refined-ease)}
footer{padding-top:64px;padding-bottom:48px}
@media(max-width:700px){.inner-page>.section:first-child{padding-top:52px}.registry-page,.inner-page .story{padding-left:24px;padding-right:24px;padding-bottom:64px}.registry-page{gap:48px}.moments .section-heading{margin-bottom:36px}.album-invitation .album-end{margin-top:48px;margin-bottom:0}.gallery-controls{margin-top:28px}.details summary{gap:20px;line-height:1.35}.details summary::after{flex:0 0 16px;text-align:center}.details details{padding:26px 0}.details details p{line-height:1.85}.rsvp{padding-left:24px;padding-right:24px}.rsvp-form{padding:24px 18px}.rsvp-fields input,.rsvp-fields textarea{min-width:0}.registry-photo{max-height:none}.registry-page .registry-button{margin-left:auto;margin-right:auto}footer{padding:48px 24px 36px}.chapter-heading-line{white-space:nowrap}.gallery-swipe-hint{font-size:10px;letter-spacing:.12em}}
@media(max-width:360px){.inner-page h1{font-size:36px}.chapter-panel h3{font-size:26px}.chapter-tabs button{font-size:12px}.countdown{padding-left:12px;padding-right:12px}.countdown-label{font-size:8px;letter-spacing:.02em}.registry-page .registry-button{font-size:13px}.rsvp-form{padding:22px 14px}}
@media(prefers-reduced-motion:reduce){.chapter-stage .chapter-panel,.chapter-stage .chapter-panel[hidden],.story-photo .chapter-photo,.registry-photo img{transition:none!important}}

/* Breathing room around the welcome inscription. */
.invitation .welcome-monogram.logo-frame{margin-bottom:46px}.invitation>.eyebrow{margin:0 auto 32px}.invitation>.eyebrow+h2{margin-top:0}@media(max-width:700px){.invitation .welcome-monogram.logo-frame{margin-bottom:38px}.invitation>.eyebrow{margin-bottom:28px}.invitation>.eyebrow+h2{margin-top:0}}
