@charset "UTF-8";
:root{--paper:#f5f1e8;--cream:#eae3d6;--ink:#283c48;--muted:#656d75;--gold:#806b49;--line:#c9c1b3;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}body:after{content:'';position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.6' filter='url(%23n)'/%3E%3C/svg%3E")}a{color:inherit}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button,a,input,summary,video{outline-offset:6px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold)}button{color:inherit}img{display:block;width:100%;height:auto}figure{margin:0}em{font-weight:400}h1,h2,h3,p{margin-top:0}h2{font:400 clamp(42px,6.4vw,96px)/1.04 var(--serif);letter-spacing:-.045em}h3{font-weight:400}p{margin-bottom:1.2em}figcaption{margin-top:14px;font-size:10px;letter-spacing:.1em}.eyebrow,.section-label,.nav-link,.text-button,.text-link,.fine-print,.entrance-date,.hero-bottom,.index-bottom,.site-footer{font-size:10px;letter-spacing:.16em}.eyebrow{text-transform:uppercase;letter-spacing:.22em}.fine-print{letter-spacing:.025em;font-size:12px;color:var(--muted);line-height:1.7}.section-label{display:flex;justify-content:space-between;text-transform:uppercase;padding-bottom:18px;border-bottom:1px solid var(--line);gap:20px}.chapter{padding:75px clamp(24px,7vw,110px) 110px;position:relative}.text-button,.text-link{display:inline-flex;align-items:center;gap:28px;text-transform:uppercase;text-decoration:none;background:none;border:0;border-bottom:1px solid currentColor;padding:15px 0;letter-spacing:.15em}.text-button span{font-size:24px;line-height:1}.quiet-link{font-size:10px;letter-spacing:.08em;color:var(--muted)}.small-star{display:block;width:30px;height:30px;margin-inline:auto;color:var(--gold)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:20px;z-index:200;background:var(--paper);padding:14px}.skip-link:focus{top:12px}[hidden]{display:none!important}
.site-nav{position:fixed;z-index:50;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:8px clamp(20px,4vw,64px);background:rgba(245,241,232,.94);border-bottom:1px solid rgba(201,193,179,.5);backdrop-filter:blur(12px)}.brand{display:grid;place-items:center;flex:none;width:44px;height:44px}.brand img{width:40px;height:40px;object-fit:contain;filter:brightness(0) saturate(100%) invert(19%) sepia(15%) saturate(966%) hue-rotate(159deg)}.nav-actions{display:flex;align-items:center;gap:clamp(22px,3vw,40px)}.nav-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;white-space:nowrap;text-transform:uppercase;background:transparent;border:0;text-decoration:none;padding:8px 0}.nav-link span{margin-left:0}.chapter-progress{position:fixed;z-index:45;left:24px;bottom:35px;display:flex;align-items:center;gap:10px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.12em;mix-blend-mode:multiply;color:var(--ink)}.progress-line{height:60px;width:1px;background:#a89e8d}.progress-line i{display:block;width:100%;height:0;background:var(--ink)}
dialog{color:var(--ink);border:0}dialog::backdrop{background:rgba(40,60,72,.4);backdrop-filter:blur(5px)}.entrance{width:100%;height:100dvh;max-width:none;max-height:none;inset:0;margin:0;padding:20px;background:var(--paper);overflow:auto}.invitation-paper{min-height:calc(100dvh - 40px);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:55px 24px;position:relative}.invitation-paper:before,.invitation-paper:after{content:'';position:absolute;width:18%;height:45%;border:1px solid var(--line);border-radius:50% 50% 0 0;opacity:.35;pointer-events:none}.invitation-paper:before{left:5%;top:27%;rotate:-17deg}.invitation-paper:after{right:5%;top:27%;rotate:17deg}.entrance-mark{width:100px;height:100px;object-fit:contain;filter:brightness(0) saturate(100%) invert(26%) sepia(9%) saturate(766%) hue-rotate(157deg);margin:14px 0 24px}.entrance h1{font:400 clamp(45px,5.6vw,78px)/1.06 var(--serif);letter-spacing:-.035em;margin:0 0 22px;max-width:800px;overflow-wrap:anywhere}.welcome-seats{color:var(--muted);font:18px/1.5 var(--serif)}.entrance-date{text-transform:uppercase;margin:40px 0 16px}.entrance.closing{animation:invitationOut .7s ease both}@keyframes invitationOut{to{opacity:0;transform:translateY(-24px)}}
.index-dialog{width:100%;height:100dvh;max-width:none;max-height:none;margin:0;inset:0;background:var(--ink);color:var(--paper);padding:35px clamp(24px,8vw,140px);overflow:auto}.index-top,.index-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.index-top .eyebrow{margin:0}.index-links{padding:35px 0;max-width:1000px;margin:auto}.index-links a{display:grid;grid-template-columns:60px 1fr auto;align-items:baseline;text-decoration:none;border-bottom:1px solid #ffffff30;padding:7px 0;font:400 clamp(30px,5vw,68px)/1.3 var(--serif);letter-spacing:-.03em;transition:color .2s}.index-links a:hover{color:#d1bea0}.index-links a span{font:10px var(--sans);letter-spacing:.15em}.index-links a em{font:italic 14px var(--serif);color:#c1c9cb;letter-spacing:0}.index-bottom{color:#c1c9cb;letter-spacing:.08em;padding-top:20px}.index-bottom a{text-decoration:none}
.hero:focus{outline:none}.hero{height:100svh;min-height:650px;position:relative;color:white;overflow:hidden;background:#78828a}.hero>picture,.ending>picture{position:absolute;inset:0}.hero picture img,.ending picture img{height:100%;width:100%;object-fit:cover}.hero picture img{object-position:center 48%;animation:heroSettle 2s ease both}@keyframes heroSettle{from{transform:scale(1.035)}to{transform:scale(1)}}.hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(25,35,40,.52),rgba(25,35,40,.03) 60%,rgba(25,35,40,.15))}.hero-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:90px 20px 100px;text-shadow:0 2px 30px #19232830}.hero-copy h2{font-size:clamp(68px,8.7vw,134px);margin:13px 0 24px}.hero-date{font:italic 18px var(--serif);letter-spacing:.06em}.hero-bottom{position:absolute;inset:auto 5% 38px;display:flex;justify-content:space-between;align-items:center;gap:20px;text-transform:uppercase;font-size:9px}.hero-bottom a{text-decoration:none}.hero-bottom a span{margin-left:18px;font-size:18px}
.story-prologue{text-align:center;padding:110px 0 120px}.story-prologue .eyebrow{margin-bottom:36px;color:var(--gold)}.story-prologue h2{font-size:clamp(50px,7.2vw,110px);margin-bottom:40px}.milestone{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;margin:0 0 130px}.milestone-copy{position:relative;padding:12px 0 0 5%}.year{display:block;font:400 clamp(95px,13vw,190px)/1 var(--serif);letter-spacing:-.07em;color:#8f7d66;margin-bottom:24px}.milestone h3{font:400 clamp(36px,4.8vw,67px)/1.02 var(--serif);letter-spacing:-.04em;margin:0 0 25px}.milestone-date{font-size:11px;letter-spacing:.2em}.milestone-copy>p:last-child{font:16px/1.8 var(--serif);color:var(--muted)}.milestone figure img{aspect-ratio:4/5;object-fit:cover}.milestone-one figure{margin-top:90px}.milestone-two{align-items:center}.milestone-two figure{width:90%}.milestone-two figure img{aspect-ratio:3/4}.milestone-three{margin-bottom:80px}.milestone-three figure img{aspect-ratio:4/5}.story-epilogue{text-align:center;font:400 clamp(36px,5vw,72px)/1.15 var(--serif);letter-spacing:-.04em;padding:50px 0 0;margin:0}
.day{background:#eae6dc}.day-date{text-align:center;padding:85px 0 60px}.day-date .eyebrow{letter-spacing:.36em}.day-date h2{font-size:clamp(58px,8vw,116px);margin-bottom:28px}.day-date h2 span{display:block;font:400 clamp(98px,17vw,240px)/.95 var(--serif);letter-spacing:-.07em;color:#8f7d66;margin:8px 0}.day-date>p:last-child{font:italic 17px var(--serif)}.venue-journey{position:relative;padding-top:60px}.venue{position:relative;display:grid;grid-template-columns:1.25fr 1fr;gap:6vw;align-items:center;min-height:440px}.venue-copy{padding:20px 0}.venue-copy h3{font:400 clamp(39px,4.7vw,67px)/1.05 var(--serif);letter-spacing:-.035em;margin-bottom:24px}.venue-copy p{margin-bottom:12px}.venue-time{font-size:12px;letter-spacing:.09em;margin-top:22px}.venue .text-link{margin-top:18px}.line-art{width:100%;height:auto;fill:none;stroke:#737966;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.line-art path{stroke-dasharray:var(--stroke-length,2600);stroke-dashoffset:0}.js-motion .line-art path{stroke-dashoffset:var(--stroke-length,2600);transition:stroke-dashoffset 1.2s ease}.js-motion .venue.visible .line-art path{stroke-dashoffset:0}.venue-art>img{width:100%;max-height:430px;object-fit:contain;mix-blend-mode:multiply}.venue-reception{grid-template-columns:1fr 1.25fr;padding-bottom:45px}
.dress{background:#f3eee4}.dress-heading{text-align:center;padding:95px 0 65px}.dress-heading .eyebrow{color:var(--gold)}.fashion-spread{display:grid;grid-template-columns:1fr 1fr;gap:4vw;max-width:1050px;margin:auto}.fashion{position:relative;min-height:660px;padding:35px 25px 40px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center}.fabric{position:absolute;inset:0;z-index:0}.fabric-champagne{background:linear-gradient(116deg,#c5b39a,#eddfc5 15%,#a99476 28%,#e1cfb1 45%,#eedfc8 58%,#b5a080 73%,#dfcaae 88%,#c1a98b)}.fabric-taupe{background:linear-gradient(112deg,#ab9c89,#d7cdbc 13%,#978570 28%,#cbbdaa 44%,#e3dacb 59%,#a69882 75%,#cbbfac 90%,#b3a68f)}.fabric:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(85deg,transparent 0 3px,#ffffff13 4px 5px);opacity:.5}.fashion-art{position:relative;z-index:1;width:68%;height:450px;display:flex;align-items:center;justify-content:center}.fashion-line{width:100%;height:100%;fill:#f5f1e850;stroke:#675c4e;stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}.fashion-art img{height:100%;width:100%;object-fit:contain}.fashion-caption{position:relative;z-index:1}.fashion-caption .eyebrow{display:block}.fashion-caption h3{font:400 clamp(30px,3.5vw,48px) var(--serif);margin:7px 0 12px;color:#3d362e}.fashion-caption p{font-size:11px;letter-spacing:.045em;color:#494035}.dress-note{text-align:center;font:24px/1.6 var(--serif);padding:70px 0 0;margin:0;color:#70695d}
.notes{background:var(--ink);color:var(--paper);padding-bottom:130px}.notes .section-label{border-color:#ffffff30}.notes header{display:flex;align-items:end;justify-content:space-between;gap:35px;padding:85px 0 60px}.notes header h2{margin:0}.notes header p{font:italic 18px var(--serif);color:#bbc4c7}.note-list article{display:grid;grid-template-columns:40px 1fr 1fr;gap:30px;padding:40px 0;border-top:1px solid #ffffff30;align-items:baseline}.note-list article>span{font-size:10px;letter-spacing:.12em;color:#c1b194}.note-list h3{text-transform:uppercase;font:400 clamp(25px,3vw,45px) var(--serif);letter-spacing:-.02em;margin:0}.note-list h4{font:italic 18px var(--serif);margin:0 0 14px;color:#e1d6c3}.note-list p{font-size:13px;color:#bdc6c9;line-height:1.85;max-width:360px;margin:0}
.memories{padding-bottom:100px}.memory-intro{text-align:center;padding:100px 0 80px}.memory-intro .eyebrow{color:var(--gold)}.memory-title h3{font:400 clamp(34px,4.8vw,67px)/1.05 var(--serif);letter-spacing:-.035em;margin:12px 0 40px}.memory-title .eyebrow{color:var(--gold)}.memory-sea{position:relative;padding-bottom:160px}.sea-wide{width:86%;margin-left:auto}.sea-wide img{aspect-ratio:1.65;object-fit:cover}.memory-sea .memory-title{position:relative;z-index:1;margin-bottom:35px}.memory-aside{font:italic 20px/1.5 var(--serif);width:40%;padding:30px 0;margin:-20px 0 0}.memory-skies{padding-bottom:150px}.memory-skies .memory-title{text-align:center}.skies-spread{display:grid;grid-template-columns:1.45fr 1fr;align-items:center;gap:6vw}.skies-spread figure:first-child img{aspect-ratio:1.35;object-fit:cover}.skies-spread figure:last-child{margin-top:130px}.skies-spread figure:last-child img{aspect-ratio:3/4;object-fit:cover}.memory-home .memory-title{text-align:center}.home-spread{display:grid;grid-template-columns:.7fr 1.3fr .7fr;align-items:center;gap:28px}.home-spread img{aspect-ratio:3/4;object-fit:cover}.home-spread figure:nth-child(2){margin-top:140px}.home-spread figure:nth-child(2) img{aspect-ratio:1.3}.home-spread figcaption{text-align:center;line-height:1.6}.film-section{text-align:center;padding-top:130px}.film-section h3{font:400 clamp(36px,4.5vw,66px)/1.1 var(--serif);letter-spacing:-.03em;margin-bottom:50px}.film-frame{position:relative;background:var(--ink);aspect-ratio:16/9;overflow:hidden;color:white;max-width:1150px;margin:auto}.film-frame>img,.film-frame video{width:100%;height:100%;object-fit:cover}.film-frame video{object-fit:contain}.film-frame>img{filter:brightness(.63)}.film-play{position:absolute;inset:0;width:100%;border:0;background:none;color:white;display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center;font-size:10px;letter-spacing:.2em;text-transform:uppercase}.film-play span{border:1px solid #ffffff80;border-radius:50%;width:80px;height:80px;display:grid;place-items:center;font-size:32px;letter-spacing:0}.film-soon{position:absolute;top:50%;left:20px;right:20px;transform:translateY(-50%);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.film-soon em{display:block;font:italic 18px var(--serif);text-transform:none;letter-spacing:0;margin-top:16px}.film-controls{position:absolute;bottom:0;inset-inline:0;display:flex;align-items:center;gap:18px;background:linear-gradient(transparent,#16232ae0);padding:40px 20px 17px}.film-controls button{border:0;background:none;color:white;font-size:11px;white-space:nowrap}.film-controls input{flex:1;min-width:40px;accent-color:#d4c7ad}.film-controls span{font-size:11px}
.rsvp{background:#e8e3d8;padding-bottom:120px}.rsvp-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;padding-top:95px}.rsvp-copy h2{font-size:clamp(46px,5.8vw,80px);margin:24px 0 35px}.rsvp-copy .eyebrow{color:#806d4e}#seatLine{font:23px var(--serif);max-width:360px}.rsvp-question{font-size:13px;margin-top:30px}.rsvp-copy .fine-print{margin-top:48px}.rsvp-response{padding-top:45px}.rsvp-choice,.named-guests{margin:0;padding:0;border:0}.rsvp-choice label{display:flex;gap:14px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);cursor:pointer}.rsvp-choice label:first-child{border-top:1px solid var(--line)}.rsvp-choice input{width:18px;height:18px;accent-color:var(--ink);flex-shrink:0}.rsvp-choice span{font:20px var(--serif)}.rsvp-choice em{color:var(--gold);margin-left:7px}.named-guests{padding-top:32px}.named-guests legend{float:left;width:100%;font-size:10px;text-transform:uppercase;letter-spacing:.16em;margin-bottom:16px}.guest-row{display:flex;align-items:center;gap:13px;padding:9px 0;cursor:pointer;font:17px var(--serif)}.guest-row input{width:18px;height:18px;accent-color:var(--ink)}.named-guests .fine-print{margin:18px 0 22px}.solid-button{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:18px 24px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;transition:background .2s}.solid-button:hover{background:#435766}.rsvp-response .solid-button{width:100%;margin-top:25px}#rsvpMessage{font-size:13px;line-height:1.7;margin-top:18px}#rsvpMessage.error{color:#954636}.confirmation-heart{font:72px var(--serif);color:#a18863}.rsvp-response h3{font:35px/1.2 var(--serif);letter-spacing:-.025em}.rsvp-response #confirmationDetails{font:17px/1.7 var(--serif)}.gifts{text-align:center;padding:100px 24px 110px;background:var(--paper)}.gifts h2{font-size:clamp(36px,4.5vw,62px);margin:25px 0 40px}.gifts details{max-width:700px;margin:auto}.gifts summary{cursor:pointer;display:inline-flex;gap:30px;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.14em;border-bottom:1px solid var(--line);padding:12px 0;list-style:none}.gifts summary::-webkit-details-marker{display:none}.gifts summary span{font-size:20px;transition:transform .2s}.gifts details[open] summary span{transform:rotate(45deg)}.gift-content{padding-top:35px}.gift-content>p{font:17px/1.8 var(--serif);max-width:550px;margin-inline:auto}.gift-content .fine-print{font:12px var(--sans)}.gift-qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:40px 0}.gift-qr-grid figure{padding:20px;background:white}.gift-qr-grid img{width:100%;aspect-ratio:1;object-fit:contain;max-width:340px;margin:auto}.gift-qr-grid figcaption{font-size:13px;margin-bottom:16px}.gift-qr-grid a{font-size:11px;letter-spacing:.05em}
.ending{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;color:white;text-align:center;padding:80px 24px;background:#7a7a70}.ending picture img{object-position:center}.ending-shade{position:absolute;inset:0;background:#23313a50}.ending-copy{position:relative;z-index:1}.ending h2{font-size:clamp(45px,6vw,88px);margin:35px 0 45px}.ending-names{font-size:13px;letter-spacing:.27em;text-transform:uppercase;margin-bottom:10px}.ending-date{font-size:11px;letter-spacing:.25em}.ending-copy>img{width:90px;height:90px;object-fit:contain;margin:30px auto 0;filter:brightness(0) invert(1)}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px clamp(24px,5vw,80px);font-size:9px;letter-spacing:.06em}.site-footer a{text-decoration:none}.site-footer span:nth-child(2){font:italic 14px var(--serif);letter-spacing:0}.noscript-note{padding:24px;text-align:center}.js-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s ease}.js-motion .reveal.visible{opacity:1;transform:none}
@media(min-width:1600px){.chapter{padding-inline:max(110px,calc((100vw - 1350px)/2))}}
@media(max-width:1000px){.chapter-progress{display:none}.chapter{padding-inline:40px}.milestone{gap:6vw}.year{font-size:130px}.fashion{min-height:580px}.fashion-art{height:380px}.home-spread{gap:15px}.notes header{align-items:start}.rsvp-layout{gap:5vw}}
@media(max-width:700px){html{scroll-padding-top:75px}.site-nav{padding:8px 18px}.brand img{width:36px;height:36px}.nav-link{font-size:9px}.chapter{padding:45px 23px 75px}.section-label{font-size:8px;letter-spacing:.1em;align-items:center}.hero{min-height:640px}.hero picture img{object-position:center}.hero-copy{padding-bottom:65px}.hero-copy h2{font-size:clamp(64px,16vw,92px)}.hero-copy .eyebrow{font-size:9px}.hero-date{font-size:15px}.hero-bottom{inset:auto 24px 28px;font-size:8px}.hero-bottom>span:last-child{display:none}.hero-bottom a span{margin-left:8px}.entrance{padding:12px}.invitation-paper{min-height:calc(100dvh - 24px);padding:48px 20px}.invitation-paper>.eyebrow{font-size:8px}.invitation-paper:before,.invitation-paper:after{display:none}.entrance h1{font-size:48px}.entrance-mark{width:80px;height:80px}.welcome-seats{font-size:16px}.entrance-date{font-size:9px;margin-top:30px}.index-dialog{padding:27px 24px}.index-top .eyebrow{font-size:8px}.index-links{padding:40px 0}.index-links a{grid-template-columns:38px 1fr;font-size:42px;padding:13px 0}.index-links a em{display:none}.index-bottom{align-items:start;flex-direction:column;font-size:9px;gap:12px}.story-prologue{padding:75px 0 85px}.story-prologue h2{font-size:clamp(42px,11vw,65px)}.story-prologue .eyebrow{font-size:9px;margin-bottom:28px}.milestone{grid-template-columns:1fr;gap:25px;margin-bottom:80px}.milestone-copy{padding:0 5px}.year{font-size:110px;margin-bottom:15px}.milestone h3{font-size:45px}.milestone-copy>p:last-child{font-size:15px}.milestone-one figure{margin-top:0}.milestone figure{width:100%}.milestone figure img{aspect-ratio:4/5}.milestone-two .milestone-copy{order:-1}.milestone-two figure{width:85%;margin-left:auto}.milestone-three{margin-bottom:20px}.milestone-three figure img{aspect-ratio:4/5}.story-epilogue{font-size:37px;padding:40px 0 0}.day-date{padding:65px 0 25px}.day-date h2{font-size:48px}.day-date h2 span{font-size:130px;margin-top:15px}.day-date>p:last-child{font-size:15px}.venue-journey{padding-top:35px}.venue,.venue-reception{grid-template-columns:1fr;gap:20px;text-align:center}.venue-art{width:100%;max-width:470px;margin:auto}.venue-copy{padding:0}.venue-copy h3{font-size:45px}.venue-copy .eyebrow{font-size:9px}.venue-time{font-size:12px}.venue-reception .venue-art{order:-1}.dress-heading{padding:70px 0 40px}.dress-heading h2{font-size:42px}.dress-heading .eyebrow{font-size:9px}.fashion-spread{grid-template-columns:1fr;gap:24px}.fashion{min-height:560px}.fashion-art{height:380px;width:62%}.fashion-caption h3{font-size:38px}.dress-note{font-size:21px;padding-top:45px}.notes header{display:block;padding:65px 0 35px}.notes header h2{font-size:47px;margin-bottom:25px}.notes header p{font-size:16px}.note-list article{grid-template-columns:24px 1fr;gap:12px;padding:30px 0}.note-list article>div{grid-column:2}.note-list h3{font-size:32px;margin-bottom:10px}.note-list h4{font-size:17px;margin-bottom:12px}.note-list p{font-size:13px}.memory-intro{padding:70px 0 45px}.memory-intro h2{font-size:43px}.memory-intro .eyebrow{font-size:9px}.memory-title h3{font-size:38px}.memory-title .eyebrow{font-size:9px}.memory-sea{padding-bottom:65px}.sea-wide{width:100%}.sea-wide img{aspect-ratio:4/5}.memory-aside{width:100%;font-size:18px;margin:0;padding-top:25px}.memory-skies{padding-bottom:75px}.skies-spread{grid-template-columns:1fr;gap:30px}.skies-spread figure:first-child img{aspect-ratio:1.25}.skies-spread figure:last-child{width:72%;margin:0 0 0 auto}.skies-spread figure:last-child img{aspect-ratio:3/4}.home-spread{grid-template-columns:1fr 1fr;gap:12px}.home-spread figure:nth-child(2){grid-column:1/-1;grid-row:2;margin:12px 0 0}.home-spread figure:nth-child(3){grid-column:2;grid-row:1;margin-top:35px}.home-spread img{aspect-ratio:3/4}.home-spread figure:nth-child(2) img{aspect-ratio:1.2}.home-spread figcaption{font-size:9px}.film-section{padding-top:80px}.film-section h3{font-size:40px;margin-bottom:30px}.film-frame{aspect-ratio:4/3}.film-play span{width:62px;height:62px}.film-soon{font-size:9px;letter-spacing:.1em}.film-soon em{font-size:16px;line-height:1.5}.film-controls{gap:8px;padding:35px 9px 12px}.film-controls button{font-size:10px}.rsvp-layout{grid-template-columns:1fr;gap:10px;padding-top:60px}.rsvp-copy h2{font-size:48px}.rsvp-copy .fine-print{margin-top:30px}.rsvp-response{padding-top:20px}.rsvp-choice span{font-size:20px}.rsvp-choice label:last-child span{font-size:18px}.rsvp .section-label span:last-child{max-width:145px;text-align:right}.gifts{padding:75px 23px}.gifts h2{font-size:35px}.gift-qr-grid{grid-template-columns:1fr;gap:24px;max-width:350px;margin-inline:auto}.gift-content>p{font-size:16px}.ending{min-height:760px}.ending h2{font-size:44px}.ending .eyebrow{font-size:9px}.site-footer{flex-direction:column;gap:15px;padding:30px 24px}.site-footer span:nth-child(2){order:3}.text-button,.text-link{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}.line-art path{stroke-dashoffset:0}.hero picture img{transform:none}}

.icon-link{display:inline-flex;align-items:center;gap:8px}
.icon-link .link-arrow,.text-link .link-arrow,.nav-link .link-arrow,.solid-button .link-arrow,.text-button .link-arrow{display:block;width:18px;height:18px;flex:0 0 18px}

/* The visual guide: a sequence of quiet editorial panels. */
:root{--paper:#f3eee5;--cream:#e9e2d7;--ink:#443c32;--muted:#81776a;--gold:#8c785b;--line:#d8cdbb}
.site-nav{background:#f3eee5e8}.brand img{filter:brightness(0) sepia(1) opacity(.75)}
.hero{min-height:100svh}.hero-monogram{position:absolute;top:115px;left:50%;transform:translateX(-50%);width:130px;height:130px;object-fit:contain;filter:brightness(0) invert(1);z-index:2}.hero-copy{padding-top:48vh}.hero-copy h2{font-size:clamp(58px,7vw,100px);line-height:1.03}.hero-shade{background:linear-gradient(180deg,#1c211b20,#1c211b10 35%,#161b1680)}
.chapter{padding:0}.chapter>.section-label{padding:30px clamp(24px,7vw,100px);border:0;background:var(--paper)}
.us{display:grid;grid-template-columns:1fr 1fr}.us>.section-label{grid-column:1/-1}.story-prologue,.milestone,.story-official{min-height:800px;margin:0;padding:80px clamp(30px,5vw,80px);position:relative;overflow:hidden;background:var(--paper);border-bottom:1px solid var(--line)}
.story-prologue{display:flex;flex-direction:column;justify-content:center;text-align:left;padding-bottom:280px}.story-prologue h2{font-size:clamp(46px,4.5vw,70px);line-height:1.07;letter-spacing:-.04em;margin:35px 0}.story-prologue .small-star{margin:0}.intro-skyline{position:absolute;bottom:0;left:6%;width:88%;height:240px}.skyline-art{width:100%;height:100%;color:var(--gold);opacity:.65}.skyline-art path{fill:none;stroke:currentColor;stroke-width:1}
.milestone-one{display:flex;flex-direction:column}.milestone-one .milestone-copy{display:contents}.milestone-one .year{order:0;font-size:130px;line-height:1;color:#b5ab98;margin:0}.milestone-one figure{order:1;margin:15px 0 30px;transform:rotate(-3deg);width:100%;padding:8px;background:#fffaf2;box-shadow:0 3px 16px #493b2a12}.milestone-one figure img{aspect-ratio:1.4;object-fit:cover}.milestone-one figcaption{display:none}.milestone-one h3{order:2;font-size:44px;margin:0 0 15px}.milestone-one .milestone-date{order:3}.milestone-one .milestone-copy>p:last-child{order:4;font:18px/1.7 var(--serif);max-width:360px}.story-official{display:flex;flex-direction:column;justify-content:center;gap:35px}.story-official h3{font:44px/1.1 var(--serif);letter-spacing:-.035em}.story-official p:not(.eyebrow){font:19px/1.6 var(--serif)}.story-official figure{width:90%;margin:auto;transform:rotate(3deg);border:9px solid #fffbf4}.story-official img{aspect-ratio:1.1;object-fit:cover}
.milestone-two{display:block;min-height:800px;color:#fffaf1}.milestone-two figure{position:absolute;inset:0;width:100%;margin:0}.milestone-two figure img{width:100%;height:100%;object-fit:cover}.milestone-two figure:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#17251e20,#14221dcc)}.milestone-two figcaption{display:none}.milestone-two .milestone-copy{position:absolute;z-index:1;bottom:65px;left:40px;right:40px;padding:0}.milestone-two .year{font-size:70px;color:#f6edda;opacity:.65}.milestone-two h3{font-size:60px}.milestone-two .milestone-copy>p:last-child{font:19px/1.6 var(--serif)}
.milestone-three{grid-column:1/-1;display:flex;justify-content:center;text-align:center;min-height:820px;padding-bottom:250px}.milestone-three .milestone-copy{padding:0;position:relative;z-index:1}.milestone-three .year,.milestone-three figure{display:none}.milestone-three h3{font:italic 33px/1.2 var(--serif);margin:30px 0 14px}.milestone-three h3 br{display:none}.milestone-three .milestone-date{display:none}.milestone-three .milestone-copy>p:last-child{font:18px/1.5 var(--serif)}.stacked-date{display:flex;flex-direction:column;font:100px/.86 var(--serif);letter-spacing:-.065em;color:#9f927e;margin:40px 0}.date-skyline{position:absolute;bottom:0;width:min(700px,95%);height:235px}.story-epilogue{display:none}
.day-date{padding:85px 24px 70px;text-align:center}.day-date h2{font-size:clamp(55px,7vw,85px)}.day-date h2 span{font-size:100px;display:block;margin:16px 0}.venue-journey{padding:0;display:flex;flex-direction:column;position:relative}.venue{display:flex;flex-direction:column;text-align:center;padding:80px 24px 45px;gap:0;margin:0;min-height:720px;background:#eee7db}.venue-copy{order:0;padding:0}.venue-copy h3{font-size:clamp(48px,5vw,70px);margin:25px 0}.venue-art,.venue-reception .venue-art{order:1;width:min(750px,100%);height:350px;margin:20px auto 0}.venue-art svg{width:100%;height:100%}.venue-art path{stroke:#8b775a;stroke-width:1.2}.venue .text-link{border:1px solid var(--line);padding:13px 20px;gap:18px}.venue-time{font:22px var(--serif)}
.dress{padding:55px clamp(24px,7vw,100px) 65px}.dress>.section-label{padding-inline:0}.dress-heading{padding:50px 0 35px}.dress-heading h2{font-size:clamp(44px,5vw,66px)}.fashion-spread{grid-template-columns:1fr 1fr;gap:35px;max-width:900px;margin:auto}.fashion{min-height:490px;background:none}.fabric{display:none}.fashion-art{width:80%;height:330px;margin:auto}.fashion-line{height:100%;width:100%;stroke:#8c7a60;fill:#cec0a6;stroke-width:1}.gentlemen .fashion-line{fill:#e7ddc9}.fashion-caption{position:static;margin:22px 0 0;text-align:center}.fashion-caption h3{font-size:32px;margin:15px 0}.attire-swatches{display:flex;justify-content:center;gap:12px;font-size:8px;letter-spacing:.05em;text-transform:uppercase}.attire-swatches span{max-width:75px}.attire-swatches span:before{content:'';display:block;width:25px;height:25px;background:var(--swatch);border-radius:50%;margin:0 auto 10px}.dress-note{font:18px/1.5 var(--serif);padding-top:30px}
.notes{padding:65px clamp(24px,7vw,100px);background:#ede6da}.notes>.section-label{padding-inline:0;background:none}.notes header{display:block;text-align:center;max-width:700px;margin:auto;padding:40px 0}.notes header h2{font-size:55px}.notes header p{font:18px var(--serif)}.note-list{max-width:750px;margin:auto}.note-list article{grid-template-columns:40px 180px 1fr;gap:24px;padding:28px 0}.note-list h3{font:13px var(--sans);text-transform:uppercase;letter-spacing:.08em}.note-list h4{font:20px var(--serif)}.note-list p{font:15px/1.6 var(--serif)}
.memories>.section-label{display:none}.memory-intro{position:relative;min-height:850px;padding:100px 40px 70px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;overflow:hidden;color:white;text-align:center}.memory-intro>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6)}.memory-intro>*:not(img){position:relative}.memory-intro h2{font-size:clamp(45px,6vw,80px);max-width:850px}.memory-sea,.memory-skies,.memory-home{padding:75px clamp(24px,7vw,100px);max-width:1250px;margin:auto;text-align:center}.memory-title h3{font:italic 24px/1.4 var(--serif);margin:15px 0 35px}.photo-chapter-name{font:32px/1.2 var(--serif);text-transform:uppercase;letter-spacing:.015em;margin:18px 0}.sea-wide{width:100%;max-width:900px;margin:auto}.sea-wide img{aspect-ratio:1.3;object-fit:cover}.sea-wide figcaption{display:none}.memory-aside{width:100%;margin:22px 0 0;font:italic 21px var(--serif)}.skies-spread{grid-template-columns:1fr;gap:24px;max-width:900px;margin:auto}.skies-spread figure:last-child{display:none}.skies-spread figure:first-child img{aspect-ratio:1.3;object-fit:cover}.home-spread{display:grid;grid-template-columns:1fr 1fr;max-width:900px;margin:auto;gap:20px}.home-spread figure:nth-child(2){grid-column:1/-1;grid-row:1;margin:0}.home-spread figure:nth-child(2) img{aspect-ratio:1.8;object-fit:cover}.home-spread figure:nth-child(1),.home-spread figure:nth-child(3){margin:0;grid-row:2}.home-spread figure:nth-child(3){grid-column:2}.home-spread img{aspect-ratio:1.2;object-fit:cover}.home-spread figcaption{font:italic 18px var(--serif)}.film-section{padding:75px 24px;background:#3a382e;color:var(--paper);text-align:center}.film-section h3{font:46px/1.1 var(--serif);margin:20px 0 30px}.film-frame{max-width:1000px;margin:auto;aspect-ratio:1.6}
.rsvp{padding:60px clamp(24px,7vw,100px) 80px}.rsvp>.section-label{padding-inline:0}.rsvp-layout{grid-template-columns:1fr 1fr;gap:60px;max-width:1050px;margin:auto;padding-top:50px}.rsvp-copy h2{font-size:clamp(48px,5vw,68px)}.rsvp-response{border-left:1px solid var(--line);padding:25px 0 25px 40px}.solid-button{background:#766150}.confirmation-actions{display:flex;flex-wrap:wrap;gap:12px;margin:25px 0}.outline-button{display:inline-flex;justify-content:center;align-items:center;min-height:43px;padding:12px 20px;border:1px solid var(--line);font:9px var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;background:transparent;color:var(--ink)}
.planning{padding:75px 24px;background:#ede6db;text-align:center}.planning h2{font-size:55px}.planning-list{max-width:650px;margin:45px auto 0;text-align:left}.planning-list>a,.planning-calendar{display:grid;grid-template-columns:45px 1fr;gap:25px;padding:30px 0;border-bottom:1px solid var(--line);text-decoration:none}.planning-list svg{width:35px;height:35px;fill:none;stroke:var(--gold);stroke-width:1}.planning-list h3{font:27px var(--serif);margin:10px 0}.planning-list p{font:16px/1.6 var(--serif)}.planning-action{font:10px var(--sans);text-decoration:underline;text-underline-offset:5px}.gifts{padding:85px 24px;text-align:center}.gifts h2{font-size:clamp(40px,4.5vw,64px)}.ending{min-height:850px}.ending h2{font-size:clamp(36px,4.5vw,60px)}.ending-shade{background:linear-gradient(180deg,#f2e7cf10,#55473175)}
@media(max-width:700px){.hero-monogram{top:100px;width:110px;height:110px}.hero-copy{padding:45vh 24px 85px}.hero-copy h2{font-size:55px}.hero-date{font-size:12px}.hero-bottom{font-size:8px}.us{display:block}.story-prologue,.milestone,.story-official{min-height:740px;padding:70px 28px}.story-prologue{padding-bottom:240px}.story-prologue h2{font-size:44px}.intro-skyline{height:220px}.milestone-one .year{font-size:115px}.milestone-one h3{font-size:36px}.milestone-one .milestone-copy>p:last-child{font-size:17px}.story-official h3{font-size:39px}.milestone-two{min-height:800px}.milestone-two .milestone-copy{left:28px;right:28px;bottom:50px}.milestone-two h3{font-size:49px}.milestone-three{padding-bottom:240px;min-height:820px}.stacked-date{font-size:110px}.milestone-three h3{font-size:28px}.day-date{padding:75px 20px 55px}.day-date h2{font-size:45px}.day-date h2 span{font-size:80px}.venue{min-height:740px;padding:60px 20px 30px}.venue-copy h3{font-size:47px}.venue-art,.venue-reception .venue-art{height:280px}.dress{padding:40px 18px 55px}.dress-heading h2{font-size:42px}.fashion-spread{grid-template-columns:1fr 1fr;gap:12px}.fashion{min-height:400px}.fashion-art{height:260px;width:100%}.fashion-caption h3{font-size:23px}.fashion-caption .eyebrow{font-size:8px}.attire-swatches{gap:6px;font-size:7px}.attire-swatches span:before{width:19px;height:19px}.dress-note{font-size:15px}.notes{padding:45px 25px}.notes header h2{font-size:41px}.note-list article{grid-template-columns:25px 1fr;gap:12px}.note-list h3{font-size:12px}.note-list article>div{grid-column:2}.memory-intro{min-height:740px;padding:70px 24px}.memory-intro h2{font-size:46px}.memory-sea,.memory-skies,.memory-home{padding:60px 22px}.photo-chapter-name{font-size:27px}.memory-title h3{font-size:19px}.sea-wide img,.skies-spread figure:first-child img{aspect-ratio:.75}.home-spread{gap:12px}.home-spread figure:nth-child(2) img{aspect-ratio:1.5}.film-section{padding:60px 20px}.film-section h3{font-size:40px}.film-frame{aspect-ratio:.8}.rsvp{padding:45px 24px 65px}.rsvp-layout{grid-template-columns:1fr;gap:25px}.rsvp-copy{min-height:470px;display:flex;flex-direction:column;justify-content:center;text-align:center}.rsvp-copy h2{font-size:46px}.rsvp-response{border:0;border-top:1px solid var(--line);padding:40px 0}.planning{padding:60px 25px}.planning h2{font-size:44px}.planning-list h3{font-size:25px}.planning-list>a,.planning-calendar{gap:18px}.gifts h2{font-size:39px}.ending{min-height:800px}.ending h2{font-size:39px}.skyline-art{max-width:none}}

.gown-options{height:100%;display:flex;align-items:center;gap:5px}.gown-options svg{width:33.333%;height:100%;overflow:visible}.gown-options .gown-champagne{--fabric-color:#c7b99d}.gown-options .gown-taupe{--fabric-color:#a99b87}.gown-options .gown-cocoa{--fabric-color:#705642}.gown-options path{fill:var(--fabric-color);stroke:#7c6a55;stroke-width:1}
.hero-monogram{top:90px;width:100px;height:100px}.hero-copy{padding-top:46vh}.hero picture img{object-position:50% 40%}
@media(max-width:700px){.ladies .fashion-art{height:250px}.gown-options{gap:2px}.hero-monogram{top:90px;width:100px;height:100px}.hero-copy{padding-top:45vh}}

.js-motion .skyline-art path{stroke-dashoffset:0}

.chapter>.section-label{display:none}.note-icon{width:27px;height:27px;fill:none;stroke:var(--gold);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.gown-options svg{align-self:stretch}.ladies .fashion-art{height:330px}
@media(max-width:700px){.ladies .fashion-art{height:260px}.fashion{min-height:365px}.dress-heading{padding-top:30px}.rsvp-layout{padding-top:15px}}

@media(max-width:700px){.ladies .fashion-art{height:220px}}

/* Readable type and contrast across the visual-guide panels. */
:root{--muted:#665c50;--gold:#746044}
.notes{color:var(--ink)}
.notes header p,.note-list p{color:var(--muted)}
.note-list h4{color:var(--ink)}
.note-list article{border-color:var(--line)}
.milestone-two .milestone-copy>p:last-child,.milestone-two .year{color:#fffaf1;opacity:1}
.memory-intro .eyebrow{color:#fffaf1}
.milestone-one .year,.stacked-date{color:#877862}
.hero-shade{background:linear-gradient(180deg,#1c211b45,#1c211b10 30%,#161b16b3)}
.ending-shade{background:linear-gradient(180deg,#27251e75,#27251e99)}
.hero-copy,.hero-bottom,.memory-intro,.milestone-two .milestone-copy,.ending-copy{text-shadow:0 1px 8px #0006}
.eyebrow,.section-label,.nav-link,.text-button,.text-link,.entrance-date,.hero-bottom,.index-bottom,.site-footer,.quiet-link,.milestone-date,.fashion-caption .eyebrow,.home-spread figcaption,.named-guests legend,.solid-button,.outline-button,.gifts summary,.planning-action,.film-soon,.film-play{font-size:12px;letter-spacing:.1em}
.fine-print,.gift-content .fine-print{font-size:14px;line-height:1.7}
.fashion-caption p{font-size:13px;line-height:1.6}
.attire-swatches{font-size:11px;line-height:1.5;letter-spacing:.025em;gap:8px}
.attire-swatches span{flex:1;max-width:95px;overflow-wrap:normal}
.hero-date{font-size:15px}
.note-list h3{font-size:13px;line-height:1.5}
.note-list p{font-size:16px;line-height:1.7}
.js-motion .reveal{opacity:1;transition:transform .6s ease}
@media(max-width:700px){
  .hero-bottom{align-items:flex-start;gap:16px;font-size:11px}
  .hero-bottom>span{max-width:115px}
  .hero-bottom a{max-width:135px;text-align:right}
  .fashion-caption .eyebrow{font-size:12px}
  .attire-swatches{font-size:11px;gap:5px}
  .fashion-caption p{font-size:13px}
  .dress-note{font-size:18px;line-height:1.6}
  .site-footer{font-size:11px;flex-wrap:wrap}
}
.chapter .eyebrow,.hero-copy .eyebrow,.ending .eyebrow,.invitation-paper>.eyebrow,.index-top .eyebrow,.index-links a span,.memory-aside figcaption,.film-controls button{font-size:12px}

/* October 2026 copy and mobile polish */
.story-closing{font-style:italic;margin-top:1.2em}.arrival-info{margin:15px auto;max-width:290px;text-align:left}.arrival-info summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px}.arrival-info p{font:15px/1.7 var(--serif)}.attire-swatches{font-size:14px;gap:10px}.attire-swatches span{max-width:120px}.fashion-caption .eyebrow{font-size:14px}.rsvp-field{display:block;margin:18px 0;font-size:13px;line-height:1.5}.rsvp-field input,.rsvp-field textarea{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);background:#fbf8f0;color:var(--ink);font:16px/1.5 var(--sans);border-radius:0}.rsvp-field textarea{resize:vertical}.planning-travel{max-width:650px;margin:30px auto 0;text-align:left;border-top:1px solid var(--line);padding-top:24px}.planning-travel h3{font:25px var(--serif);margin:26px 0 10px}.planning-travel p,.planning-travel li{font:16px/1.7 var(--serif)}.planning-travel li{margin:8px 0}.planning-travel a{text-underline-offset:3px}.film-section h3{display:none}
@media(max-width:700px){.attire-swatches{font-size:13px;gap:5px}.attire-swatches span{max-width:none}.fashion-caption .eyebrow{font-size:14px}.planning-travel{padding-inline:2px}.arrival-info summary{font-size:14px}.rsvp-field input,.rsvp-field textarea{font-size:16px}}

.ending-copy #endTitle,.confirmation-details{white-space:pre-line}.arrival-info p{margin:6px 0 12px}

.stacked-date{display:block;font-size:clamp(40px,6vw,70px);letter-spacing:.08em;margin:45px 0}.hero-copy h2{font-size:clamp(64px,8vw,110px)}
@media(max-width:700px){.stacked-date{font-size:clamp(37px,10vw,52px);white-space:nowrap}.hero-copy h2{font-size:55px}}

@media(max-width:700px){.nav-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.site-nav{padding-inline:18px}}

/* Attire illustration refinements */
.gown-options .fashion-line{fill:none;stroke:#746651;stroke-width:1.15;stroke-linejoin:round;stroke-linecap:round}
.gown-options .gown-shape{fill:var(--gown-fill);fill-opacity:.82;stroke:#746651;stroke-width:1.2}
.gown-options .gown-detail{fill:none;stroke:#746651;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.gown-options .gown-sage{--gown-fill:#87947c}
.gown-options .gown-taupe{--gown-fill:#c7b99d}
.gown-options .gown-cocoa{--gown-fill:#705642}
.gown-options .gown-bead{stroke:#f5eee0;stroke-width:1}
.barong-line{fill:none;stroke:#80745f;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}
.barong-line .barong-shape{fill:#f4eedf;fill-opacity:.95;stroke:#80745f;stroke-width:1.25}
.barong-line .barong-detail{fill:none;stroke:#a99978;stroke-width:1.15}
.barong-line .barong-embroidery{fill:none;stroke:#bcaa84;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:700px){.gown-options{gap:7px}.gown-options svg{width:calc(33.333% - 5px)}.fashion-art{overflow:visible}.barong-line{max-width:220px}}

/* Keep reminder icons, labels, and copy aligned to the same row start. */
.note-list article{grid-template-columns:32px 180px minmax(0,1fr);align-items:start;gap:24px}
.note-list .note-icon{display:block;width:24px;height:24px;margin:2px auto 0}
.note-list article>div{min-width:0}
@media(max-width:700px){
  .note-list article{grid-template-columns:25px minmax(0,1fr);align-items:start;column-gap:12px}
  .note-list .note-icon{width:22px;height:22px;margin:1px 0 0}
  .note-list article>div{grid-column:2;min-width:0}
}
/* Align reminder icon artwork with the first text line, accounting for SVG viewBox whitespace. */
.note-list .note-icon{margin-top:9px}
@media(max-width:700px){.note-list .note-icon{margin-top:8px}}
/* Vertically center each reminder's icon and label beside its text. */
.note-list article{align-items:center}
.note-list .note-icon{margin:0 auto}
@media(max-width:700px){
  .note-list article{align-items:center}
  .note-list .note-icon{margin:0}
}

.film-frame>iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Keep each reminder icon and label together and centered on mobile. */
.note-list .note-lead{grid-column:1 / 3;display:flex;align-items:center;gap:16px;min-height:32px}
.note-list .note-lead h3{margin:0}
.note-list .note-lead .note-icon{flex:none;width:24px;height:24px;margin:0}
@media(max-width:700px){
  .note-list article{grid-template-columns:minmax(0,1fr);justify-items:center;row-gap:14px;text-align:center}
  .note-list .note-lead{grid-column:1;justify-content:center;gap:12px}
  .note-list article>div{grid-column:1;width:100%;text-align:center}
  .note-list p{margin-inline:auto}
  .note-list .note-lead .note-icon{width:24px;height:24px}
}

/* Premiere announcement over the existing film poster. */
.film-soon{margin:0;text-transform:none;letter-spacing:0;line-height:1.5;text-shadow:0 2px 18px #0008}
.film-soon .film-names{display:block;font:11px/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase}
.film-soon .film-title{display:block;margin:12px 0 18px;font:400 clamp(32px,5vw,56px)/1.1 var(--serif);letter-spacing:-.02em}
.film-soon .film-premiere{display:block;font:400 clamp(16px,2.2vw,24px)/1.5 var(--serif)}
@media(max-width:700px){.film-soon .film-names{font-size:9px}.film-soon .film-title{margin:8px 0 12px}}

/* Keep the native film controls compact and let them fade while the film plays. */
.film-controls{opacity:1;visibility:visible;transition:opacity .25s ease,visibility .25s ease}
.film-controls.is-idle{opacity:0;visibility:hidden;pointer-events:none}
.film-controls button{min-width:44px;min-height:44px;padding:8px}
@media(max-width:700px){.film-controls{gap:4px;padding:24px 8px 8px}.film-controls button{font-size:11px}.film-controls span{font-size:10px}.film-controls input{min-width:28px}}
@media(prefers-reduced-motion:reduce){.film-controls{transition:none}}

/* Connection recovery appears only when playback needs attention. */
.film-feedback{max-width:1000px;margin:20px auto 0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 24px;font-size:12px;line-height:1.6}
.film-feedback button{font:inherit;color:inherit;border:1px solid #f5f1e870;background:#3a382e;min-height:44px;padding:9px 12px;border-radius:0}
.film-feedback button:focus-visible{outline:2px solid var(--paper);outline-offset:4px}
#filmStatus{flex-basis:100%;margin:0;color:#e3dccd;font:13px/1.7 var(--sans);letter-spacing:0}
.film-frame.is-buffering:after{content:'';position:absolute;top:20px;right:20px;width:20px;height:20px;border:2px solid #ffffff50;border-top-color:white;border-radius:50%;animation:filmBuffer 1s linear infinite;pointer-events:none}
@keyframes filmBuffer{to{transform:rotate(360deg)}}
@media(max-width:700px){.film-frame{aspect-ratio:16/9}#filmStatus{font-size:12px}}
@media(prefers-reduced-motion:reduce){.film-frame.is-buffering:after{animation:none}}

/* A personal reply, with the same quiet paper-and-ink language as the invitation. */
.rsvp{padding:65px clamp(24px,6vw,90px) 90px;background:#eae4d9}
.rsvp>.section-label{background:transparent}
.rsvp-layout{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;gap:clamp(30px,5vw,75px);max-width:1120px;padding-top:48px}
.rsvp-copy{min-height:0;display:block;text-align:left;padding-top:22px}
.rsvp-copy h2{font-size:clamp(44px,4.8vw,68px);margin:24px 0;line-height:1.06}
.rsvp-copy #seatLine{font:22px/1.45 var(--serif);max-width:370px;margin:0 0 24px}
.rsvp-question{font:15px/1.8 var(--sans);color:#696054;margin:0}
.rsvp-deadline{border-top:1px solid #cfc3b1;margin-top:38px;padding-top:24px;max-width:360px}
.rsvp-deadline>p{font:29px/1.2 var(--serif);margin:12px 0}
.rsvp-deadline .fine-print{display:block;margin:0;font-size:12px;line-height:1.8}
.rsvp-response{min-width:0;border:1px solid #d6c9b5;background:#f8f4ec;padding:30px clamp(22px,3vw,40px);box-shadow:0 12px 32px #59462b06}
.rsvp-card-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-bottom:23px;margin-bottom:28px;border-bottom:1px solid var(--line)}
.rsvp-card-top .eyebrow{font-size:9px;letter-spacing:.12em}
.rsvp-state{font:10px/1.5 var(--sans);color:#756651;background:#eee8dd;padding:5px 9px}
.rsvp-response h3{font:clamp(29px,3vw,40px)/1.13 var(--serif);margin:0 0 22px}
.rsvp-card-intro{font:14px/1.8 var(--sans);color:#696054;margin-bottom:24px}
.rsvp-response .rsvp-field{font-size:12px;margin:22px 0 12px}
.rsvp-field input,.rsvp-field textarea{border-color:#d3c6b3;background:#fffcf7;padding:13px}
.rsvp-field input:focus,.rsvp-field textarea:focus{outline:2px solid #806b50;outline-offset:2px}
.rsvp-response .solid-button{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:22px;min-height:50px;font-size:11px;background:#655440;border-color:#655440}
.rsvp-response .solid-button:hover{background:#4c4032}
.rsvp-response .solid-button:disabled{opacity:.65;cursor:wait}
#rsvpCodeHelp{font-size:12px;line-height:1.75}
#rsvpCodeMessage,#rsvpMessage{font:13px/1.65 var(--sans);margin:14px 0 0}
#rsvpCodeMessage:empty,#rsvpMessage:empty{display:none}
#rsvpCodeMessage.error{color:#934536}
.rsvp-preview-tour,.rsvp-extras{margin-top:26px;border-top:1px solid var(--line)}
.rsvp-preview-tour summary,.rsvp-extras summary{min-height:50px;display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;font:13px/1.5 var(--sans)}
.rsvp-preview-tour summary::-webkit-details-marker,.rsvp-extras summary::-webkit-details-marker{display:none}
.rsvp-preview-tour summary>span:last-child,.rsvp-extras summary>span:last-child{margin-left:auto;font-size:20px;transition:transform .2s}
.rsvp-preview-tour[open] summary>span:last-child,.rsvp-extras[open] summary>span:last-child{transform:rotate(45deg)}
.rsvp-preview-tour ol{margin:0;padding:0 0 0 18px}
.rsvp-preview-tour li{padding:10px 0 10px 5px;font:13px/1.6 var(--sans);color:#786950}
.rsvp-preview-tour strong{display:block;color:var(--ink);font-weight:500}
.rsvp-preview-tour li span{font-size:12px;color:#696054}
.rsvp-choice{display:grid;gap:12px}
.rsvp-choice label,.rsvp-choice label:first-child{padding:16px 14px;border:1px solid #d5c9b7;gap:12px;background:transparent;min-height:77px}
.rsvp-choice label:has(input:checked){border-color:#806b50;background:#ece5d8;box-shadow:inset 3px 0 #806b50}
.rsvp-choice span,.rsvp-choice label:last-child span{font:19px/1.25 var(--serif)}
.rsvp-choice small{display:block;font:11px/1.6 var(--sans);color:#696054;margin-top:6px}
.rsvp-choice label>em{margin-left:auto;font:24px var(--serif);color:var(--gold)}
.named-guests{margin-top:26px;padding-top:0}
.named-guests legend{float:none;width:100%;padding:0;font-size:10px;letter-spacing:.12em}
#guestList{display:grid;width:100%;clear:both}
.guest-row{min-height:46px;font-size:18px;border-bottom:1px solid #e5dccd}
.named-guests .fine-print{font:12px/1.7 var(--sans);margin:12px 0 0}
#guestSelectionCount{color:#796448}
.rsvp-extras .fine-print{font-size:10px;color:#81715c;margin-left:auto}
.rsvp-extras summary>span:last-child{margin-left:0}
.rsvp-save-note{text-align:center;font-size:10px;line-height:1.6;margin:12px 0 0}
#confirmationDetails{white-space:pre-line}
.rsvp-response .confirmation-heart{display:block;font-size:55px;margin:5px 0 18px}
.arrival-info{width:min(480px,100%);max-width:none;margin:18px auto 22px;border:0;background:transparent;text-align:left;color:#706657}
.arrival-info summary{display:flex;align-items:center;gap:16px;min-height:44px;padding:8px 0;border-bottom:1px solid var(--line);list-style:none;font:10px/1.5 var(--sans);letter-spacing:.07em;text-transform:uppercase}
.arrival-info summary::-webkit-details-marker{display:none}
.arrival-info summary>span{margin-left:auto;font-size:15px;line-height:1;transition:transform .2s}
.arrival-info[open] summary>span{transform:rotate(45deg)}
.arrival-grid{display:grid;grid-template-columns:1fr 1fr;padding:12px 0 0;gap:24px}
.arrival-grid>div{border:0;padding:0}
.arrival-label{display:block;font:11px/1.6 var(--sans);color:inherit}
.arrival-grid p{font:12px/1.7 var(--sans);margin:4px 0 0}
.arrival-grid p.arrival-value{font:17px/1.5 var(--serif);margin:4px 0}
.arrival-value small{font:12px var(--sans)}
.gifts .gift-content{padding:28px 20px 0}
.gifts #giftDetails{max-width:660px}
@media(max-width:850px){.rsvp-layout{grid-template-columns:1fr;gap:34px;max-width:560px;padding-top:22px}.rsvp-copy{padding-top:0}.rsvp-copy h2{font-size:50px}.rsvp-copy #seatLine{max-width:none;font-size:21px}.rsvp-deadline{max-width:none;margin-top:25px}.rsvp-deadline>p{font-size:26px}.rsvp-response{padding:28px}.rsvp-response h3{font-size:35px}.rsvp{padding-bottom:60px}}
@media(max-width:420px){.rsvp-copy h2{font-size:43px}.rsvp-response{padding:24px 20px}.rsvp-card-top{gap:9px}.rsvp-card-top .eyebrow{font-size:8px}.rsvp-state{font-size:9px}.rsvp-response h3{font-size:31px}.rsvp-choice span,.rsvp-choice label:last-child span{font-size:18px}.rsvp-choice label{padding:14px 11px}.arrival-grid{gap:18px;padding:12px 0 0}.arrival-info summary{padding:8px 0;font-size:10px}.arrival-grid p.arrival-value{font-size:17px}.arrival-label{font-size:11px}}

/* One full-width RSVP form beneath its heading on the main invitation page. */
.rsvp-inline .rsvp-copy h2{font:clamp(44px,4.8vw,68px)/1.06 var(--serif);letter-spacing:-.04em;margin:24px 0}
.rsvp-preview-notice{padding:14px 16px;border:1px solid #d6c8b1;background:#eee6d8;font:12px/1.7 var(--sans);margin:0 0 25px;color:#65543e}
.rsvp-inline .rsvp-layout{grid-template-columns:minmax(0,1fr);max-width:920px;gap:36px;padding-top:20px}
.rsvp-inline .rsvp-copy{width:100%;padding-top:0;text-align:center}
.rsvp-inline .rsvp-copy h2 br{display:none}
.rsvp-inline .rsvp-copy h2 em{display:inline-block;margin-left:.15em}
.rsvp-inline .rsvp-copy #seatLine{max-width:none;margin:0 auto 18px}
.rsvp-inline .rsvp-deadline{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:10px 16px;max-width:none;margin-top:22px;padding-top:20px}
.rsvp-inline .rsvp-deadline>p{font-size:26px;margin:0}
.rsvp-inline .rsvp-deadline .fine-print{flex-basis:100%}
.rsvp-inline .rsvp-response{width:100%;padding:clamp(24px,4vw,46px)}
.rsvp-inline .section-label{padding-top:5px}
.rsvp-inline #rsvpLoading{font:14px/1.7 var(--sans)}
@media(max-width:850px){.rsvp-inline .rsvp-copy h2{font-size:50px}}
@media(max-width:420px){.rsvp-inline .rsvp-copy h2{font-size:43px}.rsvp-inline{padding-top:35px}}

/* The INDEX settles in like a new page, followed by its chapter links. */
.index-dialog[open]{animation:indexPanelIn 320ms cubic-bezier(.22,1,.36,1) both}
.index-dialog[open] .index-top{animation:indexItemIn 400ms cubic-bezier(.22,1,.36,1) 50ms both}
.index-dialog[open] .index-links a{animation:indexItemIn 460ms cubic-bezier(.22,1,.36,1) both;animation-delay:calc(80ms + var(--index-order,0)*35ms)}
.index-links a:nth-child(2){--index-order:1}
.index-links a:nth-child(3){--index-order:2}
.index-links a:nth-child(4){--index-order:3}
.index-links a:nth-child(5){--index-order:4}
.index-links a:nth-child(6){--index-order:5}
.index-links a:nth-child(7){--index-order:6}
.index-links a:nth-child(8){--index-order:7}
.index-dialog[open] .index-bottom{animation:indexItemIn 460ms cubic-bezier(.22,1,.36,1) 250ms both}
.index-dialog[open]::backdrop{background:#25211980;animation:indexBackdropIn 320ms ease-out both}
@keyframes indexPanelIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes indexItemIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes indexBackdropIn{from{opacity:0}to{opacity:1}}

/* Preserve the actual church's tall domed tower and the facade's two column orders. */
.venue-church .venue-art{width:min(850px,100%);height:clamp(340px,47vw,500px)}
.venue-church .venue-art .san-agustin-art path{stroke:inherit;stroke-width:inherit}

/* One illustrated guest group, with the dress-code details kept in readable text. */
.dress .dress-heading{padding:35px 0 22px}
.attire-group{width:100%;max-width:820px;margin:0 auto 30px}
.attire-group img{display:block;width:100%;height:auto;object-fit:contain}
.dress:not(.has-custom-attire) .fashion-art{display:none}
.dress .fashion-spread{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;max-width:850px;padding-top:26px;border-top:1px solid var(--line)}
.dress .fashion{min-height:0;padding:0 10px 18px;display:block;overflow:visible}
.dress .fashion-caption{margin:0}
.dress .fashion-caption .eyebrow{font-size:11px;letter-spacing:.15em}
.dress .fashion-caption h3{font-size:28px;margin:10px 0 20px}
.dress .attire-swatches{gap:18px;font-size:11px;line-height:1.6;letter-spacing:.04em}
.dress .attire-swatches span{max-width:100px}
.dress .attire-swatches span:before{width:22px;height:22px;margin-bottom:8px}
.dress.has-custom-attire .fashion-art{height:330px;width:100%;margin-bottom:24px}
@media(max-width:600px){.attire-group{margin-bottom:24px}.dress .fashion-spread{grid-template-columns:1fr;gap:26px;padding-top:24px}.dress .fashion-caption h3{font-size:26px;margin-bottom:16px}.dress .attire-swatches{gap:22px}.dress .attire-swatches span{max-width:90px}.dress .fashion{padding-bottom:0}.dress.has-custom-attire .fashion-art{height:300px}.dress .dress-heading{padding-top:30px}}

/* Replay both venue illustrations whenever they return to the viewing area. */
.js-motion .venue .venue-art>.line-art{opacity:0;transform:translateY(24px) scale(.98);transform-origin:50% 100%;transition:none}
.js-motion .venue .venue-art.art-in-view>.line-art{opacity:1;transform:none;transition:opacity .8s ease,transform 1.2s cubic-bezier(.22,1,.36,1)}
.js-motion .venue .venue-art .line-art path{stroke-dashoffset:var(--stroke-length,2600);transition:none}
.js-motion .venue .venue-art.art-in-view .line-art path{stroke-dashoffset:0;transition:stroke-dashoffset 1.2s ease-in-out;transition-delay:var(--stroke-delay,0ms)}
.js-motion .venue .venue-art>img{opacity:0;transform:translateY(24px);transition:none}
.js-motion .venue .venue-art.art-in-view>img{opacity:1;transform:none;transition:opacity .8s ease,transform 1.2s cubic-bezier(.22,1,.36,1)}





.arrival-info{width:min(440px,100%);margin:8px auto 18px}
.arrival-info summary{width:max-content;max-width:100%;padding:4px 0;border:0;font:12px/1.5 var(--serif);letter-spacing:.01em;text-transform:none;color:#706657}
.arrival-info summary>span{font-size:12px;margin-left:6px}
.arrival-info summary:hover{color:var(--ink)}


/* The couple's supplied photographs retain their full composition. */
.milestone-one figure img,.story-official figure img{aspect-ratio:auto;max-height:620px;object-fit:contain}
.milestone-one figure{width:min(350px,100%);margin-inline:auto;transform:none}
.story-official{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px}
.story-official figure{width:min(350px,100%);transform:none}
.milestone-two.proposal-story{grid-column:1/-1;min-height:0;color:var(--ink);text-align:center}
.proposal-story .milestone-copy{position:static;padding:0;margin:0 auto 35px;max-width:650px;text-shadow:none}
.proposal-story .milestone-copy>p:last-child{color:var(--muted)}
.proposal-story h3{font-size:clamp(42px,5vw,65px);margin:20px 0}
.proposal-spread{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1050px;margin:auto}
.proposal-story .proposal-spread figure{position:relative;inset:auto;width:100%;margin:0}
.proposal-story .proposal-spread figure:after{display:none}
/* The supplied screenshots contain a centered 920 × 614 photo strip. */
.proposal-story .proposal-spread img{width:100%;height:auto;aspect-ratio:92/61;object-fit:cover;object-position:center}
.venue .venue-art.supplied-venue-art{width:min(900px,100%);height:auto;aspect-ratio:4/3}
.venue .supplied-venue-art>img{width:100%;height:100%;max-height:none;object-fit:contain;mix-blend-mode:multiply}
.js-motion .venue .supplied-venue-art>img{clip-path:inset(0 0 100% 0)}
.js-motion .venue .supplied-venue-art.art-in-view>img{clip-path:inset(0);transition:opacity .8s ease,transform 1.2s cubic-bezier(.22,1,.36,1),clip-path 1.8s ease-in-out}
.memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start;max-width:1000px;margin:32px auto 0}
.memory-grid:not(.memory-grid-home)>figure:first-child{grid-column:1/-1}
.memory-grid img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.memory-intro>img{object-position:50% 25%}
.memory-grid-home{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
.memory-home-column{display:flex;flex-direction:column;gap:28px;min-width:0}
.memory-home-column>figure{flex:none;margin:0}
.attire-group img{mix-blend-mode:normal}
.supplied-skyline-art{object-fit:contain;mix-blend-mode:multiply}
.sponsor-attire{max-width:850px;margin:40px auto 0;padding-top:30px;border-top:1px solid var(--line);text-align:center}
.sponsor-attire>div{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.sponsor-attire>div p{font:22px/1.5 var(--serif);margin:0}
.sponsor-attire-details .eyebrow{display:block;font:italic 15px/1.7 var(--serif);color:var(--muted)}
.entourage{max-width:1000px;margin:65px auto 0;border-top:1px solid var(--line);text-align:center}
.entourage>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;padding:28px 0;cursor:pointer}
.entourage>summary::-webkit-details-marker{display:none}
.entourage>summary h3{font:42px/1.1 var(--serif);letter-spacing:-.035em;margin:0}
.entourage>summary>span{font-size:22px;transition:transform .2s}
.entourage[open]>summary>span{transform:rotate(45deg)}
.entourage-priest{padding:24px 0 35px}
.entourage-priest>p:last-child{font:22px/1.5 var(--serif);margin:0}
.entourage h4{font:12px/1.6 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:0 0 18px}
.entourage ul{list-style:none;padding:0;margin:0;font:18px/1.8 var(--serif)}
.principal-sponsors{padding:30px 0;border-block:1px solid var(--line)}
.principal-sponsors>div,.entourage-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.entourage-grid{padding-top:38px;gap:36px 30px}
.entourage-group{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.story-official{display:flex;gap:30px}.proposal-spread{grid-template-columns:1fr;max-width:340px;gap:24px}.proposal-story .milestone-copy{left:auto;right:auto}.memory-grid{grid-template-columns:1fr;gap:22px}.memory-grid-home{grid-template-columns:1fr}.memory-home-column{gap:22px}.sponsor-attire>div{grid-template-columns:1fr;gap:20px}.principal-sponsors>div,.entourage-grid{grid-template-columns:1fr;gap:26px}.entourage{margin-top:45px}.entourage>summary h3{font-size:36px}.entourage ul{font-size:17px}}
@media(max-width:700px){.ending{display:block;min-height:0;padding:0;background:var(--paper);color:var(--ink)}.ending>picture{position:relative;inset:auto;display:block}.ending picture img{height:auto;aspect-ratio:3/2;object-fit:contain}.ending-shade{display:none}.ending-copy{padding:45px 24px;text-shadow:none}.ending-copy>img{filter:brightness(.3)}}

.reference-line-art{color:var(--gold)}
/* Normalized strokes inside the cached SVG references inherit these values through <use>. */
.js-motion .scroll-art .reference-line-art{--art-offset:1;--art-duration:0s;opacity:0;transform:translateY(18px) scale(.98);transform-origin:50% 100%;transition:none}
.js-motion .scroll-art.art-in-view .reference-line-art{--art-offset:0;--art-duration:1.2s;opacity:1;transform:none;transition:opacity .4s ease,transform .6s cubic-bezier(.22,1,.36,1)}

/* Keep both faces inside the invitation's portrait crop, including narrow/tall phones. */
@media(max-width:700px) and (orientation:portrait){
  .hero{height:min(100svh,210vw);min-height:0}
  .hero picture img{object-position:35% 40%;animation:none}
  .hero-copy{padding-top:min(45svh,94.5vw)}
}

/* Revised story: actual memories, readable screenshots, and explicit missing-asset markers. */
.us{display:block}
.hero-copy h2{font-size:clamp(48px,7.5vw,104px);line-height:1.06}
.hero-date{font:italic 21px/1.5 var(--serif)}
.us .story-prologue{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;min-height:0;padding:90px clamp(28px,7vw,100px);text-align:left}
.story-prologue h2{font-size:clamp(46px,5.6vw,78px);margin:25px 0}
.story-intro{font:italic 20px/1.6 var(--serif);color:var(--muted);max-width:340px}
.pending-asset{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;min-width:0;min-height:310px;padding:36px 24px;border:1px dashed #b7a88d;background:linear-gradient(145deg,#e9e1d2aa,#f5f0e680);color:var(--muted)}
.pending-label,.pending-filename{font:11px/1.6 var(--sans);letter-spacing:.1em}
.pending-label{text-transform:uppercase;color:var(--gold)}
.pending-asset h3,.pending-asset h4{font:italic 32px/1.2 var(--serif);margin:0;color:var(--ink)}
.pending-asset p,.pending-asset figcaption{font:14px/1.7 var(--sans);margin:0;letter-spacing:0}
.story-oldest{width:100%;margin:0}
.story-oldest img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.story-oldest figcaption{font:italic 15px/1.7 var(--serif);letter-spacing:0;color:var(--muted);margin-top:14px}
.us .milestone-one,.us .story-official{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;padding:85px clamp(28px,7vw,100px);min-height:0;margin:0}
.us .milestone-one .milestone-copy{display:block;padding:0}
.us .milestone-one h3,.story-official h3{font:400 clamp(38px,4.6vw,60px)/1.08 var(--serif);letter-spacing:-.035em;margin:22px 0 28px}
.us .milestone-one .milestone-copy>p:not(.eyebrow),.story-official>div>p:not(.eyebrow),.proposal-story .milestone-copy>p:not(.eyebrow){font:17px/1.8 var(--sans);max-width:600px}
.us .milestone-one .story-closing,.story-official .story-closing,.proposal-story .story-closing{font:italic 23px/1.5 var(--serif)!important;color:var(--gold)}
.us .story-screenshot{width:100%;max-width:460px;margin:0 auto;transform:none}
.memory-enlarge{position:relative;display:block;width:100%;border:0;padding:0;background:transparent;text-align:left;cursor:zoom-in;color:var(--ink)}
.us .story-screenshot img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.story-official .story-screenshot{max-width:350px}
.memory-enlarge>.memory-enlarge-arrow{position:absolute;right:12px;bottom:12px;width:32px;height:32px;padding:6px;background:var(--paper);border:1px solid var(--line);pointer-events:none}
.story-screenshot figcaption{font:italic 13px/1.7 var(--serif);letter-spacing:0;color:var(--muted)}
.proposal-story .milestone-copy{max-width:650px;margin-bottom:50px}
.proposal-story .proposal-main{font:italic 30px/1.5 var(--serif)!important;margin:24px 0}
.proposal-story .proposal-location{font:12px/1.6 var(--sans)!important;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.proposal-spread{grid-template-columns:1fr 1.55fr 1fr;gap:24px;align-items:center;max-width:1150px}
.proposal-placeholder{aspect-ratio:4/5;min-height:0;padding:24px 16px}
.proposal-feature .proposal-placeholder{aspect-ratio:4/5;background:#e7dfd1b0;border-color:var(--gold)}
.proposal-spread figcaption{font:italic 15px/1.7 var(--serif);letter-spacing:0;color:var(--muted)}
.us .milestone-three{display:flex;align-items:center;justify-content:center;min-height:0;padding:95px 24px;margin:0}
.us .milestone-three .milestone-copy{padding:0}
.us .milestone-three h3 br{display:block}
.memory-dialog{width:min(1100px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:22px;background:var(--paper)}
.memory-dialog-top{display:flex;align-items:center;gap:24px;margin-bottom:18px}
.memory-dialog-top p{flex:1;font:italic 18px/1.4 var(--serif);margin:0}
.memory-dialog-top .nav-link{font-size:11px;flex:none}
.memory-dialog-image{max-height:calc(100dvh - 180px);overflow:auto;overscroll-behavior:contain}
.memory-dialog-image img{width:100%;height:auto;max-width:900px;margin:auto}
.memory-dialog.is-zoomed .memory-dialog-image img{width:1206px;max-width:none}
.memory-dialog>.fine-print{margin:15px 0 0}
@media(max-width:700px){
 .hero-copy h2{font-size:clamp(38px,10.5vw,55px)}
 .hero-date{font-size:18px}
 .us .story-prologue,.us .milestone-one,.us .story-official{display:grid;grid-template-columns:1fr;gap:35px;padding:65px 28px;min-height:0}
 .story-prologue h2{font-size:clamp(43px,11vw,62px)}
 .us .milestone-one h3,.story-official h3{font-size:42px}
 .us .story-screenshot{max-width:460px}
 .proposal-story{padding:65px 28px}
 .proposal-spread{grid-template-columns:1fr;gap:36px;max-width:460px}
 .proposal-spread>figure{width:100%}
 .proposal-spread>figure:not(.proposal-feature){width:88%;margin-inline:auto}
 .proposal-placeholder{aspect-ratio:4/3}
 .proposal-feature .proposal-placeholder{aspect-ratio:4/5}
 .us .milestone-three{padding:75px 24px}
 .memory-dialog{padding:16px}
 .memory-dialog-top{gap:12px;flex-wrap:wrap}
 .memory-dialog-top p{flex-basis:100%;font-size:17px}
 .memory-dialog-top .nav-link:last-child{margin-left:auto}
 .memory-dialog-image{max-height:calc(100dvh - 210px)}
}



/* Guest and principal-sponsor attire, using the supplied invitation figures. */
.attire-audience{font:400 clamp(25px,3vw,36px)/1.2 var(--serif);letter-spacing:-.02em;text-align:center;margin:28px 0}
.sponsor-attire-art{display:flex;align-items:flex-end;justify-content:center;gap:clamp(50px,12vw,140px);max-width:600px;margin:0 auto 30px;mix-blend-mode:normal}
.sponsor-attire-art img{width:auto;height:280px;max-width:40%;object-fit:contain}
.children-attire-art{display:block;max-width:540px}
.children-attire-art img{display:block;width:100%;height:auto;max-width:100%}
.children-attire .sponsor-attire-details{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.children-attire .fashion-caption{display:grid;grid-template-rows:auto 1fr auto;align-self:stretch;min-width:0}
@media(max-width:700px){
 .children-attire .sponsor-attire-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .children-attire .fashion-caption h4{font-size:clamp(20px,4.7vw,26px)}
}
/* Let the attire settle into view, replaying when guests return to this section. */
@media(prefers-reduced-motion:no-preference){
 .js-motion .attire-group.reveal{transform:none}
 .js-motion .attire-group.scroll-art img,.js-motion .sponsor-attire-art.scroll-art img{opacity:0;transform:translateY(26px) scale(.96);transform-origin:50% 100%;transition:none}
 .js-motion .attire-group.art-in-view img,.js-motion .sponsor-attire-art.art-in-view img{opacity:1;transform:none;transition:opacity .75s ease,transform 1.15s cubic-bezier(.22,1,.36,1)}
 .js-motion .sponsor-attire-art.art-in-view img:nth-child(2){transition-delay:.16s}
}
.site-footer .footer-credit{display:flex;flex-direction:column;gap:5px;font:italic 14px/1.6 var(--serif);letter-spacing:0}
.site-footer .footer-credit small{font:11px/1.6 var(--sans);letter-spacing:0;color:var(--muted)}
@media(max-width:700px){.sponsor-attire-art img{height:230px}.site-footer .footer-credit{text-align:center;align-items:center}.site-footer .footer-credit small{max-width:280px}}

.rsvp-opening-soon{padding:clamp(20px,4vw,42px) 0;text-align:center}
.rsvp-response .rsvp-opening-soon h3{font:400 clamp(30px,4vw,48px)/1.15 var(--serif);margin:0 0 20px}
.rsvp-opening-soon p{max-width:440px;margin:0 auto;font:14px/1.8 var(--sans);color:var(--muted)}

/* Keep the announcement low on the full photograph, clear of both faces. */
.hero{display:block;height:100svh;min-height:650px;padding:0;background:#78828a;color:white}
.hero>picture{position:absolute;inset:0;display:block;min-height:0}
.hero picture img{object-position:50% 40%;animation:none}
.hero-shade{background:linear-gradient(180deg,transparent 35%,#181b1610 50%,#181b168c 100%)}
.hero .hero-copy{position:absolute;inset:auto 0 0;min-width:0;padding:24px 24px 35px;text-shadow:0 1px 12px #0005}
.hero .hero-monogram{position:static;transform:none;flex:none;width:60px;height:60px;margin:0 0 18px;filter:brightness(0) invert(1)}
.hero-copy h2{font-size:clamp(48px,5.5vw,76px);margin:12px 0 20px}
.hero-copy .eyebrow{color:inherit;margin-bottom:0}
.hero-date{margin:0;color:inherit}
.story-reflection{font:italic clamp(34px,4.8vw,64px)/1.2 var(--serif);letter-spacing:-.035em;max-width:650px;margin:0 auto 38px;color:var(--gold)}
.milestone-one .story-screenshot figcaption{display:block}
.milestone-one .story-screenshot img{aspect-ratio:1206/1128}
.story-official .story-screenshot img{aspect-ratio:1032/2000}
.chapter[tabindex="-1"]:focus,.planning[tabindex="-1"]:focus,.entourage[tabindex="-1"]:focus{outline:none}
.dress .fashion-caption .eyebrow,.sponsor-attire-details .eyebrow{font:400 11px/1.6 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--ink)}
.sponsor-attire-details .eyebrow{margin-bottom:10px}
.sponsor-attire>.attire-audience{padding-bottom:28px;border-bottom:1px solid var(--line)}
.dress .attire-swatches span:before{border:1px solid #806b4933}
.entourage>summary{position:relative;justify-content:center;padding:42px 32px}
.entourage>summary h3{font:400 clamp(44px,5vw,66px)/1.04 var(--serif);letter-spacing:-.045em;text-align:center}
.entourage>summary>span{position:absolute;right:0;top:50%;margin-top:-18px}
@media(max-width:700px){
 .hero{height:100svh;min-height:650px}
 .hero picture img{object-position:35% 40%}
 .hero .hero-copy{padding:20px 24px 30px}
 .hero .hero-monogram{width:45px;height:45px;margin-bottom:14px}
 .hero-copy h2{font-size:clamp(40px,10.5vw,55px);margin:10px 0 18px}
 .hero-copy .eyebrow{margin-bottom:0}
 .entourage>summary h3{font-size:42px}
}

/* A quiet editorial opening, followed by two memories from becoming official. */
.us .story-prologue{display:flex;justify-content:center;align-items:center;min-height:480px;padding:130px 28px;text-align:center}
.story-prologue h2{font-size:clamp(64px,8vw,110px);line-height:1.03;margin:28px 0 0}
.us .story-official{grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:clamp(32px,5vw,70px)}
.official-memories{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);align-items:center;gap:clamp(20px,3vw,36px);min-width:0}
.official-memories img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.official-memories figcaption{font:italic 13px/1.7 var(--serif);letter-spacing:0;color:var(--muted);margin-top:14px}
.sponsor-attire-details h4{font:400 28px/1.2 var(--serif);letter-spacing:-.02em;margin:10px 0 20px}
.attire-group,.attire-group img,.sponsor-attire-art,.sponsor-attire-art img{background:transparent}
@media(max-width:1000px){
 .us .story-official{grid-template-columns:minmax(0,1fr);gap:40px}
 .official-memories{width:100%;max-width:760px;margin:0 auto}
}
@media(max-width:700px){
 .us .story-prologue{min-height:400px;padding:100px 28px}
 .story-prologue h2{font-size:clamp(58px,13vw,82px)}
 .us .story-official{gap:38px}
}
@media(max-width:600px){
 .official-memories{grid-template-columns:minmax(0,1fr);gap:38px;max-width:460px}
 .us .story-official .official-memories>.story-screenshot{max-width:280px;margin-inline:auto}
 .sponsor-attire-details h4{font-size:26px}
}

/* Both venue cards share the same labels, typography and vertical rhythm. */
.planning-venue-copy{display:grid;gap:16px;align-content:start;justify-items:start;min-width:0}
.planning-list .planning-venue-copy h3,.planning-list .planning-venue-copy p{margin:0}
.planning-venue-copy .planning-parking{display:grid;gap:4px}
.planning-venue-copy .planning-time strong,.planning-venue-copy .planning-parking>strong{font:700 16px/1.6 var(--serif)}
.planning-venue-copy>.planning-action{margin-top:4px}

/* Attire title and its formality requirement. */
.dress-heading h2{margin:0 0 16px}
.dress-heading .dress-formality{font:500 12px/1.6 var(--sans);letter-spacing:.18em;margin:0 0 24px}

/* The first messages and first photographs belong to the same paper archive. */
.us .archival-memory{padding:12px 12px 0;border:1px solid #e5dccd;background:#fffcf5;box-shadow:0 5px 20px #493b2a12;width:100%;margin:0 auto;transform:none}
.us .archival-memory img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.us .archival-memory figcaption{display:block;margin:0;padding:16px 4px 22px;font:italic 13px/1.65 var(--serif);letter-spacing:0;color:#756956;text-align:left}
.archival-memory .memory-enlarge-arrow{right:10px;bottom:10px;width:30px;height:30px;background:#fffcf5ed}
.us .story-official{display:block;padding:72px clamp(24px,6vw,85px) 80px;overflow:visible}
.story-official .official-copy{max-width:650px;margin:0 auto 40px;text-align:center}
.story-official .official-copy p{margin-inline:auto}
.official-memories{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:center;gap:32px;width:100%;max-width:960px;margin:auto;padding:36px;background:#e9e1d4;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.us .story-official .official-memories>.archival-memory{max-width:none;margin:0;padding:12px 12px 0;border:1px solid #e5dccd;transform:rotate(-1.25deg)}
.us .story-official .official-memories>.story-oldest{transform:rotate(1.25deg)}
/* Fit the whole original first; Zoom in opens a scrollable, larger view. */
.memory-dialog:not(.is-zoomed) .memory-dialog-image img{width:auto;max-width:100%;max-height:calc(100dvh - 180px);object-fit:contain}
/* A borderless proposal sequence, with the question taking the full stage. */
.us .proposal-story{display:block;padding:72px clamp(24px,6vw,85px) 80px;background:var(--paper);color:var(--ink);border:0;text-align:center}
.proposal-story .milestone-copy{margin:0 auto 36px;max-width:650px}
.proposal-story .eyebrow,.proposal-story .milestone-copy .story-closing{color:var(--gold)!important}
.proposal-story .milestone-copy>p:last-child{color:var(--gold)}
.proposal-story .proposal-spread{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:28px;max-width:1000px;margin:auto}
.proposal-story .proposal-spread>figure{position:static;inset:auto;width:100%;max-width:none;margin:0;padding:0;border:0;background:none;box-shadow:none;transform:none}
.proposal-story .proposal-spread>.proposal-feature{grid-column:1/-1}
.proposal-story .proposal-spread img{display:block;width:100%;height:auto;aspect-ratio:920/614;object-fit:cover;object-position:center}
.proposal-story .proposal-spread figcaption{display:block;margin:12px 0 0;font:italic 14px/1.6 var(--serif);letter-spacing:0;color:var(--muted);text-align:left}
/* A distinct date reveal, followed immediately by the ceremony on lighter paper. */
.day{background:#e5dccd}
.day>.section-label{background:#e5dccd;padding-block:24px}
.day-date{background:#e5dccd;padding:48px 24px 52px}
.day-date .eyebrow{margin:0 0 24px;letter-spacing:.2em}
.day-date h2{margin:0;font-size:clamp(48px,6vw,76px)}
.day-date h2 span{font-size:clamp(80px,9vw,108px);margin:12px 0 0}
.venue-journey{border-top:1px solid #d0c2ac}
.venue-compact{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);align-items:center;gap:36px;min-height:0;padding:44px clamp(24px,6vw,85px) 36px;background:#faf7ef}
.venue-compact .venue-copy{grid-column:2;grid-row:1;order:0;text-align:left}
.venue-compact .venue-copy>.eyebrow{margin:0 0 16px;font:11px/1.6 var(--sans);letter-spacing:.18em;color:var(--gold)}
.venue-compact .venue-copy h3{margin:0 0 18px;font-size:clamp(44px,5vw,66px)}
.venue-compact .venue-time{font-size:20px;margin-top:18px}
.venue-compact .venue-art.supplied-venue-art{grid-column:1;grid-row:1;order:0;width:100%;max-width:680px;margin:0}



@media(max-width:700px){
 .us .archival-memory{padding:10px 10px 0}
 .us .archival-memory figcaption{padding:14px 3px 18px}
 .us .story-official{padding:56px 24px 60px}
 .story-official .official-copy{margin-bottom:30px}
 .official-memories{grid-template-columns:minmax(0,1fr);gap:32px;padding:24px 16px;max-width:460px}
 .us .story-official .official-memories>.archival-memory{padding:10px 10px 0;max-width:100%;margin-inline:auto}
 .us .story-official .official-memories>.story-screenshot{max-width:300px}
 .memory-dialog:not(.is-zoomed) .memory-dialog-image img{max-height:calc(100dvh - 210px)}
 .us .proposal-story{padding:56px 24px 60px}
 .proposal-story .proposal-spread{gap:18px;max-width:100%}
 .proposal-story .proposal-spread figcaption{font-size:12px;margin-top:8px}
 .day-date{padding:36px 24px 40px}
 .day-date .eyebrow{font-size:10px;letter-spacing:.13em}
 .venue-compact{display:flex;flex-direction:column;gap:24px;padding:34px 24px 28px}
 .venue-compact .venue-copy{order:0;text-align:center}
 .venue-compact .venue-art.supplied-venue-art{order:1;margin:0;max-width:520px}
 .venue-compact .venue-copy h3{font-size:46px}
 
 
 
}

/* A warm champagne chapter break marks the move from our story to the wedding. */
.us .milestone-three{background:#e6d7c1;border-top:1px solid #d8c6aa;border-bottom:1px solid #d8c6aa}
.milestone-three .story-reflection{color:var(--ink)}
.venue-reception{border-top:1px solid var(--line)}
/* Give both guest-attire titles equal columns and keep their baselines aligned. */
.dress .fashion-spread{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,3vw,32px);align-items:start}
.dress .fashion{padding-inline:0}
.dress .fashion-caption h3{font-size:clamp(22px,2.6vw,28px);white-space:nowrap}
@media(max-width:600px){
 .dress .fashion-spread{grid-template-columns:minmax(0,1fr);gap:26px}
 .dress .fashion-caption h3{font-size:clamp(20px,6vw,26px)}
}
