:root{--ivory:#f2eee7;--paper:#f8f5ef;--ink:#20201e;--red:#7f1017;--muted:#777269;--line:rgba(32,32,30,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:'DM Sans',sans-serif;font-weight:300;overflow-x:hidden}.paper{background:var(--paper)}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}.loader{position:fixed;inset:0;z-index:100;background:var(--paper);display:grid;place-content:center;text-align:center;transition:opacity .7s,visibility .7s}.loader.hidden{opacity:0;visibility:hidden}.loader-mark{font:3rem Italiana,serif;letter-spacing:.12em}.loader-mark i{color:var(--red);font:3.4rem 'Mrs Saint Delafield',cursive}.loader-line{width:160px;height:1px;background:#ddd;margin-top:24px;overflow:hidden}.loader-line span{display:block;height:100%;background:var(--red);animation:load 1.5s ease forwards}@keyframes load{from{width:0}to{width:100%}}.nav{height:76px;padding:0 5vw;position:absolute;z-index:20;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;color:#fff;border-bottom:1px solid rgba(255,255,255,.25)}.monogram{font:1.4rem Italiana,serif;letter-spacing:.12em}.monogram span{font-family:'Mrs Saint Delafield';color:#e8b9b5;font-size:1.7em;margin:0 .05em}.nav nav{display:flex;gap:30px;align-items:center;font-size:.71rem;text-transform:uppercase;letter-spacing:.17em}.nav-rsvp{border:1px solid rgba(255,255,255,.6);padding:11px 17px}.menu-button{display:none;background:none;border:0}.hero{height:100svh;min-height:650px;position:relative;color:white}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,.08) 45%,rgba(0,0,0,.45))}.hero-copy{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-47%);width:90%;text-align:center}.eyebrow,.section-no{text-transform:uppercase;letter-spacing:.27em;font-size:.67rem;font-weight:500}.hero h1{margin:12px auto 7px;display:flex;align-items:center;justify-content:center;gap:2vw;font:clamp(4.8rem,13vw,10.5rem)/.78 Italiana,serif;letter-spacing:-.06em}.hero h1 em{font:clamp(4rem,9vw,8rem) 'Mrs Saint Delafield',cursive;color:#e2b3ae}.invite{font-family:Italiana,serif;font-size:clamp(1rem,2vw,1.35rem);letter-spacing:.05em}.scroll-cue{display:inline-flex;flex-direction:column;align-items:center;gap:12px;margin-top:50px;text-transform:uppercase;font-size:.6rem;letter-spacing:.25em}.scroll-cue i{height:55px;width:1px;background:#fff;animation:pulse 1.8s ease infinite}@keyframes pulse{50%{transform:scaleY(.5);opacity:.4}}.hero-date{position:absolute;right:5vw;bottom:28px;letter-spacing:.25em;font-size:.7rem}.intro{padding:120px 8vw 140px}.section-no{color:var(--red)}.intro-grid{display:grid;grid-template-columns:1.2fr .7fr;gap:10vw;align-items:start;margin:70px 0 100px}.intro h2,.details h2,.gallery h2,.rsvp h2,.red-copy h2{font:clamp(3.2rem,7vw,7rem)/.95 Italiana,serif;letter-spacing:-.04em;margin:0}.intro h2 i,.details h2 i,.gallery h2 i,.rsvp h2 i,.red-copy h2 i{font-family:'Mrs Saint Delafield',cursive;color:var(--red);font-weight:400}.intro-text{font-size:1rem;line-height:1.9;max-width:430px}.signature{display:block;margin-top:35px;font:2.7rem 'Mrs Saint Delafield',cursive;color:var(--red)}.portrait-card{margin:0 auto;width:min(78%,950px);height:min(75vw,800px);position:relative}.portrait-card figcaption{position:absolute;right:-34px;bottom:25px;writing-mode:vertical-rl;font:italic 1rem Italiana,serif;letter-spacing:.12em}.red-chapter{background:var(--red);color:white;padding:9vw;display:grid;grid-template-columns:1.05fr .8fr;gap:9vw;align-items:center}.red-image{height:760px}.red-copy .section-no{color:#deb2a7}.red-copy h2{font-size:clamp(3.8rem,7vw,7rem)}.red-copy h2 i{color:#e5b8ae}.red-copy>p:last-child{line-height:1.8;max-width:360px;margin-top:35px}.details{text-align:center;padding:130px 8vw}.details h2{margin:35px 0 65px}.date-lockup{display:flex;justify-content:center;align-items:center;gap:30px;margin-bottom:80px}.date-lockup strong{font:8rem/.8 Italiana,serif;color:var(--red)}.date-lockup span{text-transform:uppercase;font-size:.68rem;letter-spacing:.28em;width:90px}.detail-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}.detail-row article{padding:50px 25px}.detail-row article+article{border-left:1px solid var(--line)}.detail-row span{font-size:.65rem;color:var(--red)}.detail-row h3{font:2rem Italiana,serif;margin:13px}.detail-row p,.note{color:var(--muted);font-size:.82rem}.note{margin-top:35px}.quote-panel{height:92svh;position:relative;color:#fff}.quote-panel:after{content:'';position:absolute;inset:0;background:rgba(10,16,8,.35)}.quote-panel blockquote{position:absolute;z-index:1;inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;width:min(780px,84%);text-align:center;font:clamp(2.7rem,5.5vw,5.8rem)/1.1 Italiana,serif}.quote-panel cite{display:block;font:400 .65rem 'DM Sans';text-transform:uppercase;letter-spacing:.2em;margin-top:30px}.gallery{padding:120px 6vw}.gallery h2{text-align:center;margin:35px 0 80px}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.gallery-item{padding:0;border:0;background:none;cursor:zoom-in;height:52vw;max-height:730px;overflow:hidden}.gallery-item:nth-child(2),.gallery-item:nth-child(3){height:39vw;max-height:570px}.gallery-item img{transition:transform 1.2s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item.wide{grid-column:1/-1;height:55vw;max-height:800px}.rsvp{background:#dedbd4;padding:130px 8vw;display:grid;grid-template-columns:.85fr 1fr;gap:10vw}.rsvp-heading h2{margin:40px 0 25px}.rsvp-heading>p:last-child{color:var(--muted)}form{display:grid;gap:34px}form>label>span,legend{display:block;text-transform:uppercase;font-size:.63rem;letter-spacing:.19em;margin-bottom:12px}input,textarea,select{width:100%;border:0;border-bottom:1px solid #99958d;background:transparent;border-radius:0;padding:13px 0;font:300 1rem 'DM Sans';outline:none}input:focus,textarea:focus,select:focus{border-color:var(--red)}fieldset{border:0;padding:0;margin:0}.choice{display:inline-flex;align-items:center;margin:6px 25px 0 0;cursor:pointer}.choice input{width:auto;margin-right:9px;accent-color:var(--red)}.choice span{font-size:.85rem}form>button{border:0;background:var(--red);color:#fff;padding:18px 25px;text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;display:flex;justify-content:space-between;cursor:pointer}.form-note{font-size:.68rem;color:var(--muted);margin:0}.success{display:none;align-self:center}.success.visible{display:block}.success span{font:3.5rem 'Mrs Saint Delafield';color:var(--red)}.success h3{font:2.5rem Italiana;margin:10px 0}.success button{background:none;border:0;border-bottom:1px solid;padding:0 0 4px;cursor:pointer}footer{background:#171816;color:#eee;padding:90px 8vw 35px;text-align:center}.footer-script{font:clamp(4rem,10vw,8rem) 'Mrs Saint Delafield';color:#dfb5ae}footer p,footer a{font-size:.62rem;letter-spacing:.25em;text-transform:uppercase}footer a{display:block;margin-top:50px;color:#aaa}dialog{padding:0;border:0;background:#111;max-width:min(90vw,900px);max-height:90vh}dialog::backdrop{background:rgba(0,0,0,.88)}dialog img{max-height:88vh;object-fit:contain}dialog button{position:absolute;z-index:1;right:10px;top:7px;color:#fff;background:rgba(0,0,0,.3);border:0;font-size:2rem;cursor:pointer}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:760px){.nav{height:66px;padding:0 22px}.menu-button{display:grid;gap:6px;padding:10px}.menu-button span{display:block;background:#fff;width:24px;height:1px}.nav nav{display:none;position:absolute;top:66px;left:0;right:0;background:var(--paper);color:var(--ink);padding:35px;flex-direction:column}.nav nav.open{display:flex}.hero h1{flex-direction:column;gap:0;font-size:21vw}.hero h1 em{line-height:.35}.hero-copy{top:48%}.hero-date{right:auto;left:22px}.intro,.details,.gallery,.rsvp{padding:90px 22px}.intro-grid,.rsvp{grid-template-columns:1fr}.intro-grid{gap:45px;margin:55px 0 75px}.portrait-card{width:91%;height:125vw}.red-chapter{grid-template-columns:1fr;padding:70px 22px;gap:55px}.red-image{height:125vw}.red-copy{padding:0 10px}.date-lockup{gap:10px}.date-lockup strong{font-size:6.5rem}.detail-row{grid-template-columns:1fr}.detail-row article+article{border-left:0;border-top:1px solid var(--line)}.quote-panel{height:80svh}.gallery-grid{gap:8px}.gallery-item,.gallery-item:nth-child(2),.gallery-item:nth-child(3){height:68vw}.gallery-item.wide{height:90vw}.rsvp{display:grid;gap:70px}.rsvp-heading h2{font-size:4rem}.choice{display:flex;margin:13px 0}footer{padding-top:70px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.loader-line span,.scroll-cue i{animation:none}}
.hero-copy.reveal,.hero-copy.reveal.visible{transform:translate(-50%,-47%)}
.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{transform:translate(-50%,-50%)}
.couple-profile{padding:40px 8vw 150px;display:grid;gap:90px;background-image:radial-gradient(rgba(65,50,37,.07) .7px,transparent .7px);background-size:5px 5px}.profile{display:grid;grid-template-columns:minmax(280px,520px) minmax(220px,420px);align-items:center;gap:6vw}.profile-photo{height:690px;box-shadow:0 20px 60px rgba(45,35,25,.1)}.profile-copy{position:relative}.profile-script{display:block;font:clamp(5rem,10vw,9rem)/.7 'Mrs Saint Delafield',cursive;color:var(--red);white-space:nowrap;margin-left:-80px}.profile-copy i{display:block;width:1px;height:52px;background:var(--ink);margin:30px 0}.profile-copy p{font-size:.62rem;letter-spacing:.25em;margin:0 0 10px}.profile-copy h3{font:clamp(2rem,4vw,3.6rem) Italiana,serif;margin:0}.profile-bride{grid-template-columns:minmax(220px,420px) minmax(280px,520px);justify-content:end}.profile-bride .profile-photo{grid-column:2}.profile-bride .profile-copy{grid-column:1;grid-row:1;text-align:right}.profile-bride .profile-script{margin-left:0;margin-right:-75px;position:relative;z-index:1}.profile-bride .profile-copy i{margin-left:auto}.slideshow{width:min(100%,1080px);margin:auto}.slides{position:relative;height:min(72vw,780px);overflow:hidden;background:#e4dfd7}.slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transform:scale(1.025);transition:opacity .9s ease,transform 1.2s ease,visibility .9s}.slide.active{opacity:1;visibility:visible;transform:scale(1)}.slide img{object-position:center}.slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:65px 35px 28px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.5));font:1.1rem Italiana,serif;letter-spacing:.04em}.slide figcaption span{font:500 .6rem 'DM Sans';letter-spacing:.2em;margin-right:18px}.slide-controls{display:grid;grid-template-columns:45px 1fr auto 45px;align-items:center;gap:18px;padding-top:23px}.slide-controls button{width:45px;height:45px;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer;font-size:1rem;transition:.25s}.slide-controls button:hover{background:var(--red);color:#fff;border-color:var(--red)}.slide-controls p{margin:0;font-size:.67rem;letter-spacing:.15em}.slide-progress{height:1px;background:var(--line);overflow:hidden}.slide-progress span{display:block;width:100%;height:100%;background:var(--red);transform-origin:left}@keyframes slideProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:760px){.couple-profile{padding:20px 22px 95px;gap:65px}.profile,.profile-bride{grid-template-columns:1fr 1fr;gap:16px}.profile-photo{height:96vw}.profile-copy{align-self:center}.profile-script{font-size:4rem;margin-left:-55px}.profile-bride .profile-script{margin-right:-45px}.profile-copy i{height:35px;margin-top:22px;margin-bottom:22px}.profile-copy h3{font-size:1.8rem}.slides{height:112vw}.slide figcaption{padding:55px 18px 18px}.slide-controls{grid-template-columns:42px 1fr auto 42px;gap:10px}.slide-controls button{width:42px;height:42px}}
:root{--brown-black:#4d1a00}.loader-mark i,.hero h1 em,.section-no,.intro h2 i,.details h2 i,.gallery h2 i,.rsvp h2 i,.intro-text .signature,.date-lockup strong,.detail-row article>span,.profile-script,.success>span{color:var(--brown-black)}.venue-address{margin:34px auto 13px;color:var(--ink);font:1rem Italiana,serif;letter-spacing:.04em}.map-link{display:inline-block;color:var(--brown-black);border-bottom:1px solid currentColor;padding-bottom:4px;text-transform:uppercase;font-size:.62rem;letter-spacing:.18em}
.hero h1{font-size:clamp(4.5rem,11vw,9rem)}.hero h1 em{font-size:clamp(3.8rem,8vw,6.8rem)}.hero-date{left:50%;right:auto;transform:translateX(-50%);white-space:nowrap}
@media(max-width:760px){.hero h1{font-size:18vw}.hero h1 em{font-size:16vw}.hero-date{left:50%;right:auto}}
.hero h1.hero-names-bottom{position:absolute;z-index:2;left:50%;bottom:55px;transform:translateX(-50%);margin:0;display:flex;flex-direction:row;gap:.3em;white-space:nowrap;font-size:clamp(2.7rem,5vw,4.5rem);letter-spacing:-.04em}.hero h1.hero-names-bottom em{color:#fff;font-size:1.05em;line-height:.65}.hero-names-bottom+.hero-date{bottom:25px}
@media(max-width:760px){.hero h1.hero-names-bottom{bottom:58px;flex-direction:row;font-size:11vw;gap:.25em}.hero h1.hero-names-bottom em{font-size:1.05em}.hero-names-bottom+.hero-date{bottom:27px}}
.profile-script{color:#4d1a00;font-size:clamp(5rem,8vw,8rem);margin-left:0;position:relative;z-index:2;text-shadow:none}.profile-bride .profile-script{margin-left:0;margin-right:0}
@media(max-width:760px){.profile-script{font-size:3.6rem;margin-left:0}.profile-bride .profile-script{margin-left:0;margin-right:0}}
.portrait-card{width:min(90%,1100px);height:min(56vw,680px)}
@media(max-width:760px){.portrait-card{width:100%;height:62vw}.portrait-card figcaption{right:-16px}}
.portrait-card figcaption{left:24px;right:auto;top:22px;bottom:auto;writing-mode:horizontal-tb;color:#4d1a00;text-shadow:none;letter-spacing:.08em}
@media(max-width:760px){.portrait-card figcaption{left:14px;right:auto;top:12px;bottom:auto;font-size:.78rem}}
#rsvpForm>button{background:#4d1a00}
.quote-panel:after{background:rgba(8,18,10,.12)}.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{left:auto;right:7vw;top:48%;width:auto;max-width:52%;transform:translateY(-50%);text-align:right;font-size:clamp(3.5rem,6vw,6.5rem);white-space:nowrap}.quote-panel blockquote i{font-family:'Mrs Saint Delafield',cursive;font-weight:400}
@media(max-width:760px){.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{left:50%;right:auto;top:28%;max-width:92%;transform:translateX(-50%);font-size:13vw;text-align:center}}
.quote-panel{height:auto;aspect-ratio:16/9;min-height:0}.quote-panel img{position:absolute;inset:0}
@media(max-width:760px){.quote-panel{height:auto;aspect-ratio:4/3;min-height:0}}
.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{left:52%;right:auto;top:34%;max-width:46%;transform:translateY(-50%);text-align:left}
@media(max-width:760px){.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{left:50%;right:auto;top:25%;max-width:92%;transform:translateX(-50%);text-align:center}}
.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{left:auto;right:7vw;top:12%;max-width:55%;transform:none;text-align:right}
@media(max-width:760px){.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{left:auto;right:5vw;top:10%;max-width:90%;transform:none;text-align:right;font-size:11vw}}
.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{font-size:clamp(2.4rem,4vw,4.4rem);max-width:46%}
@media(max-width:760px){.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{font-size:8vw;max-width:70%}}
.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{right:8vw;top:26%}
@media(max-width:760px){.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{right:5vw;top:20%}}
.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{top:31%}
@media(max-width:760px){.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{top:25%}}
.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{font-size:clamp(2.1rem,3.3vw,3.7rem)}
@media(max-width:760px){.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{font-size:7vw}}
.quote-panel blockquote,.quote-panel blockquote.reveal,.quote-panel blockquote.reveal.visible{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:400;letter-spacing:.01em}
.calendar-card{position:relative;width:min(680px,100%);margin:0 auto 85px;overflow:hidden;border:1px solid rgba(77,26,0,.14);min-height:720px;display:grid;place-items:center}.calendar-bg{position:absolute;inset:0;background:url('assets/4P3A0831.jpg') center/cover no-repeat;opacity:.1}.calendar-content{position:relative;z-index:1;width:82%;padding:60px 0 45px}.calendar-heading{display:flex;align-items:center;justify-content:center;gap:28px;margin-bottom:55px}.calendar-heading span{width:100px;font-size:.62rem;letter-spacing:.26em}.calendar-heading strong{font:6.8rem/.8 Italiana,serif;color:#4d1a00}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);align-items:center}.calendar-weekdays{margin-bottom:22px;border-bottom:1px solid rgba(77,26,0,.16);padding-bottom:18px}.calendar-weekdays span{font-size:.55rem;letter-spacing:.16em}.calendar-days{row-gap:14px}.calendar-days span{display:grid;place-items:center;width:42px;height:42px;justify-self:center;font:1rem Italiana,serif}.calendar-days .wedding-day{border-radius:50%;background:#4d1a00;color:#fff;box-shadow:0 5px 18px rgba(77,26,0,.22)}.calendar-caption{margin:35px 0 0;font-size:.58rem;letter-spacing:.25em;color:#4d1a00}
@media(max-width:760px){.calendar-card{min-height:570px;margin-bottom:65px}.calendar-content{width:92%;padding:40px 0 30px}.calendar-heading{gap:12px;margin-bottom:40px}.calendar-heading strong{font-size:5.5rem}.calendar-heading span{width:80px;font-size:.52rem}.calendar-days{row-gap:9px}.calendar-days span{width:34px;height:34px;font-size:.85rem}.calendar-weekdays span{font-size:.46rem;letter-spacing:.08em}}
.calendar-card{border:0}.calendar-bg{opacity:.25;background-position:center 24%}
.calendar-bg{background-position:center 10%;-webkit-mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);mask-composite:intersect}
.portrait-card{background:var(--paper)}.portrait-card img{mix-blend-mode:multiply}
.portrait-card img{-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent);mask-composite:intersect}
.profile-groom .profile-photo{overflow:hidden}.profile-groom .profile-photo img{transform:scale(1.24);transform-origin:42% bottom;object-position:42% bottom}
.red-image img{-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent);mask-composite:intersect}
.red-chapter{position:relative;overflow:hidden}.double-happiness{position:absolute;right:3vw;top:auto;bottom:2vw;font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-size:clamp(8rem,18vw,18rem);line-height:1;color:#f0d7b0;opacity:.13;pointer-events:none}.red-image,.red-copy{position:relative;z-index:1}
@media(max-width:760px){.double-happiness{right:-2vw;top:auto;bottom:3vw;font-size:10rem;opacity:.11}}
.red-visual{position:relative;z-index:1}.red-visual .double-happiness{position:static;display:block;margin:25px auto -35px;text-align:center;font-family:'STKaiti','KaiTi','Kaiti SC','Songti SC',serif;font-size:clamp(6rem,10vw,10rem);font-weight:400;line-height:.8;color:#f3d59c;opacity:1;pointer-events:none}.red-visual .red-image{position:relative}
@media(max-width:760px){.red-visual .double-happiness{position:static;margin:22px auto 0;font-size:7rem;opacity:1}}
.red-visual .double-happiness{position:absolute;z-index:5;right:18px;top:18px;bottom:auto;width:88px;height:88px;margin:0;display:grid;place-items:center;border:2px solid rgba(226,195,141,.78);outline:1px solid rgba(226,195,141,.62);outline-offset:4px;border-radius:4px;font-family:'STKaiti','KaiTi','Kaiti SC',serif;font-size:4.3rem;line-height:1;color:#e2c38d;opacity:.74;text-shadow:none}
@media(max-width:760px){.red-visual .double-happiness{position:absolute;z-index:5;right:14px;top:14px;bottom:auto;width:64px;height:64px;margin:0;font-size:3.1rem;opacity:.74}}
.red-copy .section-no,.red-copy h2,.red-copy h2 i{color:#e2c38d}
.intro-grid{margin-bottom:-24px}
@media(max-width:760px){.intro-grid{margin-bottom:-16px}}
.intro-grid{column-gap:4vw}
@media(max-width:760px){.intro-grid{gap:20px}}
.footer-script{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:400;letter-spacing:.02em}
.quote-panel{background:var(--paper)}.quote-panel>img,.quote-panel:after{-webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 6%,#000 94%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 6%,#000 94%,transparent);mask-composite:intersect}
.rsvp{background:#ffeee5}
.hero>img{object-position:center 20%}
.detail-row article:last-child p{font-weight:500}
.detail-row .venue-name{display:inline-block;margin:0;padding:12px 16px;background:rgba(77,26,0,.065);color:#4d1a00;font-size:.95rem;line-height:1.55;letter-spacing:.045em;font-weight:500;border-bottom:2px solid rgba(77,26,0,.28)}
.detail-row .venue-logo{display:block;width:min(250px,100%);height:78px;object-fit:contain;margin:0 auto}
.detail-row .venue-location{margin:2px 0 0;color:var(--ink);font-size:.78rem;font-weight:500;letter-spacing:.16em}
.detail-row .venue-logo{clip-path:inset(0 0 24% 0);transform:translateY(8px) scale(1.06);transform-origin:center}
.venue-address{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:1.2rem;letter-spacing:.025em}
.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{inset:auto auto 145px 50%;transform:translateX(-50%)}
@media(max-width:760px){.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{bottom:125px;transform:translateX(-50%)}}
.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{bottom:175px}.hero-copy .eyebrow{font-size:.8rem}.hero-copy .invite{font-size:clamp(1.2rem,2.2vw,1.65rem)}
@media(max-width:760px){.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{bottom:150px}.hero-copy .eyebrow{font-size:.7rem}.hero-copy .invite{font-size:1.08rem}}
.hero-top-line{position:absolute;z-index:2;top:118px;left:50%;transform:translateX(-50%);margin:0;color:#fff;font-size:clamp(.9rem,1.5vw,1.2rem);white-space:nowrap}.hero-copy .invite{margin:0}
@media(max-width:760px){.hero-top-line{top:92px;font-size:.82rem}}
.hero-top-line{top:105px;font-family:'Mrs Saint Delafield',cursive;font-size:clamp(3rem,5vw,5rem);font-weight:400;text-transform:none;letter-spacing:.025em;line-height:1}
@media(max-width:760px){.hero-top-line{top:86px;font-size:3.1rem}}
.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{bottom:110px}.hero h1.hero-stacked-names{position:static;margin:0 0 24px;display:flex;flex-direction:column;align-items:center;gap:0;font-size:clamp(4rem,8vw,7rem);line-height:.68;letter-spacing:-.055em}.hero h1.hero-stacked-names em{font-size:.78em;line-height:.45;color:#c89a92;margin:.08em 0}.hero-stacked-names+.invite{margin-top:0}
@media(max-width:760px){.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{bottom:100px}.hero h1.hero-stacked-names{font-size:17vw;margin-bottom:22px}.hero h1.hero-stacked-names em{font-size:.76em}}
.hero h1.hero-stacked-names{font-size:clamp(3.3rem,6.5vw,5.8rem)}.hero-copy .invite{font-size:clamp(1.35rem,2.5vw,1.9rem)}.hero-date{font-size:.9rem;font-weight:400}
@media(max-width:760px){.hero h1.hero-stacked-names{font-size:14vw}.hero-copy .invite{font-size:1.2rem}.hero-date{font-size:.78rem}}
.hero-copy .invite{font-size:clamp(1.7rem,3vw,2.3rem)}.hero-date{font-size:1.15rem}
@media(max-width:760px){.hero-copy .invite{font-size:1.4rem}.hero-date{font-size:1rem}}
.hero h1.hero-stacked-names{transform:translateY(-18px)}
@media(max-width:760px){.hero h1.hero-stacked-names{transform:translateY(-12px)}}
.hero-top-line,.hero-copy .invite,.hero h1.hero-stacked-names,.hero-date{color:#f3ebdd}.hero h1.hero-stacked-names em{color:#d5be96}.nav{color:#f3ebdd}.monogram span{color:#d5be96}
.day-invitation{max-width:720px;margin:28px auto 0;font:italic 1.3rem/1.7 'Cormorant Garamond',Georgia,serif;color:var(--ink);letter-spacing:.015em}
.red-copy .chinese-blessing{margin:34px 0 0;font:400 1rem/1.8 'Songti SC','STSong','SimSun',serif;letter-spacing:.14em;color:#e2c38d}
@media(max-width:760px){.red-copy .chinese-blessing{font-size:.88rem;letter-spacing:.1em}}
.chinese-blessing .stanza-break{display:block;height:1.15em}
.red-chapter{padding-bottom:4vw}
@media(max-width:760px){.red-chapter{padding-bottom:38px}}
.red-copy h2{font-size:clamp(3rem,5.5vw,5.5rem)}
@media(max-width:760px){.red-copy h2{font-size:3.4rem}}
.slides{background:#eee9e1}.slide img{object-fit:contain;object-position:center}
.slides{height:min(82vw,920px)}
@media(max-width:760px){.slides{height:140vw;max-height:none}}
.gallery{padding-left:0;padding-right:0}.gallery>.section-no{margin-left:6vw}.gallery .slideshow{width:100%;max-width:none}.gallery .slide-controls{margin-left:6vw;margin-right:6vw}
@media(max-width:760px){.gallery{padding-left:0;padding-right:0}.gallery>.section-no{margin-left:22px}.gallery .slide-controls{margin-left:22px;margin-right:22px}}
.dietary-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.dietary-options .choice{margin-right:0}
.attendance legend{font:1.65rem Italiana,serif;text-transform:none;letter-spacing:.01em;margin-bottom:18px}.attendance-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.attendance-options label{position:relative;cursor:pointer}.attendance-options input{position:absolute;opacity:0;pointer-events:none}.attendance-options span{min-height:58px;border:1px solid rgba(77,26,0,.24);display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 16px;text-align:center;font:400 .9rem 'DM Sans',sans-serif;letter-spacing:.02em;color:#4d1a00;transition:background .25s,color .25s,border-color .25s,transform .25s}.attendance-options i{width:21px;height:21px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font:normal .78rem 'DM Sans',sans-serif}.attendance-options label:hover span{border-color:#4d1a00;transform:translateY(-2px)}.attendance-options input:focus-visible+span{outline:2px solid #4d1a00;outline-offset:3px}.attendance-options input:checked+span{background:#4d1a00;border-color:#4d1a00;color:#fff}
@media(max-width:760px){.dietary-options{grid-template-columns:1fr;gap:3px}}
@media(max-width:520px){.attendance-options{grid-template-columns:1fr}.attendance-options span{min-height:54px}}
.attendance legend{font:500 1rem 'DM Sans',sans-serif;text-transform:none;letter-spacing:.02em}
form>label>span,form legend{font:600 .63rem 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.19em;margin-bottom:12px}
form .attendance legend{font:600 .63rem 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.19em;margin-bottom:12px}
@media(max-width:760px){.hero-top-line{top:78px;font-size:1.85rem;line-height:1;max-width:88%;text-align:center}.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{bottom:70px}.hero h1.hero-stacked-names{transform:none;margin-bottom:16px}}
@media(max-width:760px){.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{bottom:45px}.hero h1.hero-stacked-names{font-size:12.6vw}.hero-date{bottom:12px}}
@media(max-width:760px){.hero .hero-copy,.hero .hero-copy.reveal,.hero .hero-copy.reveal.visible{bottom:54px}.hero-date{bottom:8px}}
@media(max-width:760px){.hero-top-line{left:22px;transform:none;text-align:left;max-width:calc(100% - 44px)}}
@media(max-width:760px){.red-chapter{gap:24px}.red-copy .chinese-blessing{margin-top:16px}}
@media(max-width:760px){.red-copy .chinese-blessing{margin-top:6px}}
@media(max-width:760px){.red-visual .double-happiness{width:56px;height:56px;font-size:2.7rem}}
@media(max-width:760px){.red-copy h2{font-size:3rem}}
.rsvp-deadline{display:block;margin-top:18px;text-align:left;font-weight:600;color:#4d1a00}
.rsvp-heading>p:last-child{color:#4d1a00}
.calendar-heading{justify-content:space-between;width:min(340px,100%);margin-left:auto;margin-right:auto}
@media(max-width:760px){.calendar-heading{width:min(270px,90%)}}
.calendar-heading{transform:translateY(-7px)}
@media(max-width:760px){.calendar-heading{transform:translateY(-3px)}}
.calendar-heading{display:grid;grid-template-columns:repeat(7,1fr);width:100%;gap:0}.calendar-heading span{width:auto;text-align:center}.calendar-heading span:first-child{grid-column:1}.calendar-heading span:last-child{grid-column:7}
@media(max-width:760px){.calendar-heading{width:100%}}
.profile-copy .chinese-name{margin:12px 0 0;font:400 1.05rem 'Songti SC','STSong','SimSun',serif;letter-spacing:.18em;color:#4d1a00}
.countdown{width:min(680px,100%);margin:-35px auto 80px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(77,26,0,.2);border-bottom:1px solid rgba(77,26,0,.2);color:#4d1a00}.countdown>div{padding:25px 10px;display:grid;gap:8px;place-items:center}.countdown>div+div{border-left:1px solid rgba(77,26,0,.16)}.countdown strong{font:2.4rem/1 Italiana,serif;font-variant-numeric:tabular-nums}.countdown span{text-transform:uppercase;font:500 .55rem 'DM Sans',sans-serif;letter-spacing:.2em}.countdown.complete{grid-template-columns:1fr}.countdown.complete>div{grid-column:1/-1;border:0}.countdown.complete strong{font-size:1.5rem}
.countdown-title{margin:-38px auto 54px;text-align:center;text-transform:uppercase;font:600 .68rem 'DM Sans',sans-serif;letter-spacing:.28em;color:#4d1a00}
@media(max-width:760px){.countdown{margin:-28px auto 60px}.countdown>div{padding:20px 5px}.countdown strong{font-size:1.8rem}.countdown span{font-size:.48rem;letter-spacing:.12em}}
@media(max-width:760px){.countdown-title{margin:-30px auto 45px}}
.countdown-title{font-size:.95rem}.countdown strong{font-size:3rem}.countdown span{font-size:.66rem}
@media(max-width:760px){.countdown-title{font-size:.82rem}.countdown strong{font-size:2.25rem}.countdown span{font-size:.56rem}}
.countdown{border:0}.countdown>div+div{border-left:0}.countdown-title{font-size:1.15rem}.countdown strong{font-size:3.6rem}.countdown span{font-size:.76rem}
@media(max-width:760px){.countdown-title{font-size:1rem}.countdown strong{font-size:2.75rem}.countdown span{font-size:.65rem}}
.countdown-title{font:400 1.75rem Italiana,serif;letter-spacing:.12em;text-transform:none}
@media(max-width:760px){.countdown-title{font-size:1.45rem}}
.countdown-title{font:400 3.4rem/1 'Mrs Saint Delafield',cursive;letter-spacing:.02em}
@media(max-width:760px){.countdown-title{font-size:3rem}}
.countdown-title{font-family:Allura,cursive;font-size:3.1rem;line-height:1.1}
@media(max-width:760px){.countdown-title{font-size:2.7rem}}
