@font-face{font-family:'Bodoni Moda';font-style:normal;font-display:swap;font-weight:400 900;src:url('/bodoni-normal.woff2') format('woff2')}@font-face{font-family:'Bodoni Moda';font-style:italic;font-display:swap;font-weight:400 900;src:url('/bodoni-italic.woff2') format('woff2')}@font-face{font-family:'Manrope';font-style:normal;font-display:swap;font-weight:200 800;src:url('/manrope.woff2') format('woff2')}
:root{--pearl:#f6f1e8;--oxblood:#491f2b;--brass:#a88a58;--ink:#282321;--rose:#e7d9d3;--muted:#6b615d;--line:#d4c8b6;--serif:'Bodoni Moda',Didot,'Times New Roman',serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--pearl);color:var(--ink);font:14px/1.8 var(--sans);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='3' stitchTiles='stitch' type='fractalNoise'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.65' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}a{color:inherit;text-underline-offset:5px}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button,fieldset{border:0}button{color:inherit}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}img{display:block;max-width:100%;height:auto}figure,p,h1,h2,h3{margin:0}p+p{margin-top:18px}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.045em}h2{font-size:clamp(42px,4.8vw,68px);color:var(--oxblood)}h3{font-size:30px;letter-spacing:-.03em}em{font-weight:400}button:disabled{opacity:.65;cursor:wait}:focus-visible{outline:2px solid var(--brass);outline-offset:6px}input:focus-visible,textarea:focus-visible{outline-offset:2px}::selection{background:var(--oxblood);color:var(--pearl)}[hidden]{display:none!important}.skip-link{position:fixed;left:20px;top:-90px;padding:12px;background:var(--pearl);z-index:100}.skip-link:focus{top:16px}.header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;border-bottom:1px solid var(--line);position:relative;background:var(--pearl);z-index:30}.monogram{font-family:var(--serif);font-size:31px;letter-spacing:-.08em;text-decoration:none;color:var(--oxblood);white-space:nowrap}.monogram span{font-size:24px;margin:0 7px;color:var(--brass)}.header nav{display:flex;gap:35px}.header nav a,.nav-rsvp{font-size:11px;letter-spacing:.03em;text-decoration:none}.header nav a:hover,.header nav a.active{color:var(--oxblood);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:8px}.nav-rsvp{display:flex;gap:24px;align-items:center;line-height:1;padding:14px 0;border-bottom:1px solid var(--brass)}.nav-rsvp svg{width:17px}.menu-toggle{display:none}.eyebrow{font-size:10px;letter-spacing:.2em;text-transform:uppercase;line-height:1.8;font-weight:500}.short-rule{height:1px;width:43px;background:var(--brass)}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:30px;background:var(--oxblood);border:1px solid var(--oxblood);color:var(--pearl);font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:17px 25px;text-decoration:none;transition:background .2s,transform .2s}.button:hover{background:#622d3c;transform:translateY(-2px)}.text-link{font:500 11px/1.7 var(--sans);display:inline-flex;align-items:center;gap:14px;padding:0 0 6px;border:0;border-bottom:1px solid var(--brass);background:transparent;color:inherit;text-decoration:none}.text-link:hover{color:var(--brass)}.hero{display:grid;grid-template-columns:46% 54%;position:relative;isolation:isolate;min-height:710px;padding:0 5.5%}.hero-copy{padding:71px 45px 37px 0;max-width:550px;position:relative}.hero .eyebrow{margin-bottom:23px}.hero h1{font-size:clamp(66px,7.7vw,116px);line-height:.99;color:var(--oxblood);letter-spacing:-.055em}.hero h1 em{font-size:.74em;color:var(--brass)}.hero .intro{max-width:280px;font-size:12px;margin:25px 0 27px;line-height:1.9}.hero .short-rule{margin-bottom:24px}.hero-date{font-family:var(--serif);font-size:21px;line-height:1.3;letter-spacing:-.02em}.hero-time{font-size:11px;margin-top:10px}.hero-time span{margin:0 7px;color:var(--brass)}.hero-venue{font-size:12px;margin-top:17px;line-height:1.8}.hero-venue a{text-decoration:none}.hero-venue span{color:var(--muted);font-size:11px}.hero .button{margin-top:26px}.scroll-cue{display:flex;align-items:center;justify-content:space-between;max-width:165px;font-size:9px;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;margin-top:44px;color:var(--muted)}.scroll-cue span{font-size:20px;color:var(--brass)}.hero-photo{position:relative;min-width:0;overflow:hidden;margin-bottom:34px;min-height:690px;max-height:800px}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% 36%;background:var(--rose)}.hero-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:13px 18px;background:var(--pearl);font-size:9px;letter-spacing:.12em;text-transform:uppercase;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.threads{pointer-events:none;stroke:var(--brass);stroke-width:.8}.hero-threads{position:absolute;width:11%;height:95%;right:0;top:0;opacity:.65;z-index:-1}.countdown-band{background:var(--oxblood);color:var(--pearl);display:flex;justify-content:space-between;align-items:center;padding:39px 5.5%;gap:25px}.countdown-label .eyebrow{color:#d1b991;font-size:9px;margin-bottom:7px}.countdown-label h2{font-size:25px;color:var(--pearl);letter-spacing:-.025em}.countdown{display:flex;gap:0;align-items:center}.countdown>div{text-align:center;min-width:96px;border-left:1px solid #f6f1e826;padding:0 17px}.countdown>div:first-child{border:0}.countdown strong{font:400 43px/1 var(--serif);font-variant-numeric:tabular-nums;display:block;letter-spacing:-.02em}.countdown span{font-size:8px;letter-spacing:.18em;text-transform:uppercase;display:block;margin-top:12px}.countdown .changed{animation:tick .35s ease}.calendar{font-size:10px;white-space:nowrap}.section{padding:110px 8%;scroll-margin-top:30px}.section-title{text-align:center}.section-title .eyebrow{margin-bottom:20px}.section-title>p:last-child{font-size:12px;margin-top:19px;color:var(--muted)}.section-title .serif-sub{font-family:var(--serif);font-size:25px;color:var(--oxblood);margin-top:18px}.detail-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;margin-top:65px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:37px 0}.detail-grid article{padding:0 35px;border-left:1px solid var(--line);position:relative}.detail-grid article:first-child{border:0;padding-left:0}.number{font-family:var(--serif);font-size:32px;color:var(--brass);float:left;margin-right:25px;line-height:1.1}.detail-grid h3{font:500 9px/1.8 var(--sans);text-transform:uppercase;letter-spacing:.18em;margin-bottom:12px}.detail-grid p{font-size:12px;margin-left:57px;line-height:1.9}.detail-grid strong{font-weight:500}.detail-grid a{text-decoration:none}.dress-row{display:flex;align-items:center;justify-content:space-between;margin-top:30px}.dress-row .eyebrow{font-size:9px;margin-bottom:8px}.adults{font-size:11px;letter-spacing:.02em}.story{background:#eee7dc;position:relative;padding-top:100px}.story-pull{text-align:center;font-family:var(--serif);font-size:clamp(23px,2.6vw,36px);line-height:1.45;margin:50px auto 75px;color:var(--muted);letter-spacing:-.025em}.story-layout{display:grid;grid-template-columns:40% 52%;gap:8%;max-width:1100px;margin:auto}.story-aside{position:relative}.story-image{position:sticky;top:50px}.story-image img{width:100%;aspect-ratio:2/3;object-fit:cover;background:var(--rose)}.story-image figcaption{font-size:9px;text-transform:uppercase;letter-spacing:.15em;margin-top:15px}.story-monogram{font-family:var(--serif);font-size:140px;color:#a88a5830;line-height:1;position:absolute;bottom:35px;width:100%;text-align:center;letter-spacing:-.09em}.story-monogram em{font-size:100px}.chapter+.chapter{margin-top:52px;padding-top:40px;border-top:1px solid var(--line)}.chapter-number{display:flex;gap:18px;align-items:center;font:24px/1 var(--serif);color:var(--brass);margin-bottom:18px}.chapter-number span{height:1px;width:40px;background:var(--brass)}.chapter h3{font-size:33px;color:var(--oxblood);margin-bottom:23px}.chapter p{font-size:13px;line-height:1.95}.chapter p+p{margin-top:20px}.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:52px;gap:20px}.gallery-heading .eyebrow{margin-bottom:18px}.gallery-heading>p{font-size:11px;color:var(--muted);padding-bottom:6px}.gallery-grid{display:grid;grid-template-columns:1fr 1.13fr 1fr;gap:24px;align-items:center}.gallery-photo{display:block;background:transparent;padding:0;text-align:left;overflow:hidden;position:relative}.gallery-photo>img{width:100%;aspect-ratio:2/3;object-fit:cover;background:var(--rose);transition:transform .6s cubic-bezier(.2,.6,.3,1)}.gallery-photo:nth-child(2)>img{aspect-ratio:2/3.2}.gallery-photo:hover>img{transform:scale(1.035)}.photo-bottom{position:relative;background:var(--pearl);padding-top:16px;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.04em}.photo-bottom>span:last-child{display:flex;gap:8px;align-items:center}.photo-bottom svg{width:14px;height:14px}.directions{display:grid;grid-template-columns:40% 55%;gap:5%;border-top:1px solid var(--line);padding-top:90px;padding-bottom:90px}.venue-copy .eyebrow{margin-bottom:23px}.venue-copy h2{margin-bottom:35px}.venue-copy h3{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:0;line-height:1.5}.venue-copy>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.9;margin-top:12px}.venue-actions{display:flex;align-items:flex-start;gap:22px;margin-top:26px;flex-direction:column}.venue-actions svg{width:15px}.map-panel{min-width:0}.map-panel iframe{display:block;width:100%;height:350px;border:1px solid var(--line);background:var(--rose)}#route-form{padding-top:21px}#route-form label{font-size:11px;font-weight:500}.route-input{display:flex;margin-top:8px}.route-input input{min-width:0;flex:1;background:transparent;border:1px solid var(--line);border-right:0;border-radius:0;padding:12px 15px;color:var(--ink);font-size:12px}.route-input .button{padding:13px 19px;min-height:48px}.map-note{font-size:10px;color:var(--muted);margin-top:11px}.status{font-size:12px;line-height:1.8}.status:empty{display:none}.questions{display:grid;grid-template-columns:40% 55%;gap:5%;padding-top:40px}.questions-title .eyebrow{margin-bottom:20px}.questions h2{font-size:52px}.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:12px;list-style:none;cursor:pointer}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:23px;font-weight:400;color:var(--brass);line-height:1;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list p{font-size:12px;color:var(--muted);margin-top:15px}.faq-list .text-link{margin-top:15px}.rsvp-section{display:grid;grid-template-columns:42% 49%;gap:9%;padding:95px 8%;background:var(--oxblood);color:var(--pearl);scroll-margin-top:0}.rsvp-copy{max-width:360px}.intertwined{width:95px;height:48px;stroke:var(--brass);stroke-width:1;margin-bottom:26px}.rsvp-copy .eyebrow{color:#d1b991;margin-bottom:20px}.rsvp-copy h2{font-size:clamp(60px,6.2vw,88px);color:var(--pearl);line-height:1.06}.rsvp-copy h2 em{color:#d3ba99}.rsvp-copy>p:not(.eyebrow){font-size:12px;color:#e1d3d5;margin-top:30px;line-height:2}.rsvp-summary{margin-top:43px;display:flex;flex-direction:column;gap:12px;padding-top:24px;border-top:1px solid #f6f1e838;font-size:10px;letter-spacing:.06em}.rsvp-summary a{text-decoration:none}.rsvp-form-wrap{min-width:0;padding-top:15px}fieldset.attendance{margin:0 0 23px;padding:0;display:flex;gap:23px;flex-wrap:wrap}.attendance legend{font-size:11px;margin-bottom:13px}.attendance label{display:flex;gap:9px;align-items:center;font-size:11px;cursor:pointer}.attendance input,.consent input{accent-color:var(--brass);width:17px;height:17px;flex-shrink:0}.rsvp-form-wrap form>label,.form-row label,#song-field>label{display:block;font-size:11px;margin-bottom:8px}.rsvp-form-wrap input:not([type=radio]):not([type=checkbox]),.rsvp-form-wrap textarea{width:100%;display:block;border:1px solid #c5a8ae88;color:var(--pearl);background:transparent;border-radius:0;padding:12px 13px;min-height:45px;margin-bottom:22px;font-size:13px;line-height:1.6;resize:vertical}.rsvp-form-wrap input::placeholder,.rsvp-form-wrap textarea::placeholder{color:#d1b9be;font-size:11px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.rsvp-form-wrap .consent{display:flex;align-items:flex-start;gap:12px;font-size:10px;line-height:1.9;margin-bottom:25px;cursor:pointer}.consent input{margin:2px 0 0}.button-pearl{background:var(--pearl);border-color:var(--pearl);color:var(--oxblood)}.button-pearl:hover{background:#e7d9c7}.rsvp-form-wrap .button{width:100%;justify-content:space-between}.rsvp-form-wrap .status{margin-top:20px}.original-rsvp{font-size:11px;display:inline-block;margin-top:12px}.confirmation-mark{font-family:var(--serif);font-size:50px;color:var(--brass)}.confirmation h3{font-size:55px;margin:15px 0 25px}.confirmation p{font-size:12px;margin-bottom:25px}.confirmation .text-link{display:block;margin:25px 0}.closing{text-align:center;padding:100px 20px 85px}.closing .eyebrow{font-size:9px}.closing-names{font-family:var(--serif);font-size:clamp(42px,6.2vw,85px);color:var(--oxblood);letter-spacing:-.045em;line-height:1.2;margin:25px 0}.closing-names em{color:var(--brass)}.closing .text-link{font-size:10px}footer{display:flex;align-items:center;gap:30px;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--line);margin:0 5.5%;padding:28px 0 32px}footer>p{font-size:10px;color:var(--muted);margin:0!important}footer .text-link{font-size:10px}footer .credit{width:100%;text-align:center;font-size:9px;letter-spacing:.02em}.mobile-bar{display:none}.lightbox{border:0;background:#20191bf5;color:var(--pearl);padding:0;max-width:none;max-height:none;width:100%;height:100dvh;inset:0;overflow:hidden}.lightbox::backdrop{background:#20191b}.lightbox[open]{display:flex;flex-direction:column;align-items:center;justify-content:center}.lightbox-top{position:absolute;left:30px;right:30px;top:20px;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.13em}.icon-button{background:transparent;display:grid;place-items:center;border:1px solid #f6f1e84d;width:44px;height:44px;color:inherit}.icon-button:hover{border-color:var(--brass);color:var(--brass)}#expanded-photo{max-height:78dvh;max-width:calc(100vw - 150px);width:auto;object-fit:contain}.lightbox>.text-link{position:absolute;bottom:25px;font-size:11px}.lightbox .previous,.lightbox .next{position:absolute;top:50%;transform:translateY(-50%)}.previous{left:25px}.next{right:25px}.opening{padding:0;border:0;inset:0;max-width:none;max-height:none;width:100%;height:100dvh;background:var(--pearl);color:var(--oxblood);transition:opacity .7s,transform 1.2s;overflow-y:auto}.opening::backdrop{background:var(--pearl)}.opening[open]{display:grid;place-items:center}.opening-inner{width:min(900px,100%);text-align:center;padding:35px 15px}.opening .eyebrow{font-size:9px}.opening h2{font-size:clamp(36px,5vw,59px);margin-top:12px}.opening h2 em{color:var(--brass)}.opening-date{font-size:11px;letter-spacing:.1em;margin-top:17px}.envelope-scene{position:relative;width:min(660px,95%);margin:8px auto -8px;aspect-ratio:3/2;transition:transform 1.4s ease,opacity 1s}.envelope-scene>img,.envelope-scene>video{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}.envelope-scene>video{position:absolute;inset:0;mix-blend-mode:normal}#open-seal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;color:#d7b8a4;background:radial-gradient(ellipse at 30% 20%,#773c4c,#491f2b 70%);box-shadow:0 3px 5px #25121677,inset 0 0 0 4px #622f3c,inset 0 0 0 6px #3c1723;font-family:var(--serif);font-size:24px;letter-spacing:-.09em;transition:transform .5s,opacity .5s}#open-seal:hover{transform:translate(-50%,-50%) scale(1.07)}#open-seal em{font-size:16px;padding:0 2px}.opening-hint{font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-top:0}.opening #skip-opening{font-size:10px;margin-top:26px}.opening.is-opening #open-seal{transform:translate(-50%,-120%) scale(.7);opacity:0}.opening.is-opening .envelope-scene{transform:scale(1.15);opacity:0}.opening.is-leaving{opacity:0;transform:scale(1.025);pointer-events:none}.no-script{padding:20px;text-align:center;background:var(--rose)}.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.js-motion .reveal.is-visible{opacity:1;transform:none}@keyframes tick{from{transform:translateY(5px);opacity:.4}to{transform:none;opacity:1}}
@media(min-width:1600px){.hero{min-height:830px}.hero-copy{padding-top:100px}.hero-photo{min-height:800px}.header{height:100px}.section{padding-left:max(8%,calc((100% - 1250px)/2));padding-right:max(8%,calc((100% - 1250px)/2))}}
@media(max-width:1100px){.hero{padding:0 5%;grid-template-columns:47% 53%;min-height:640px}.hero-copy{padding:58px 25px 25px 0}.hero h1{font-size:85px}.hero-photo{min-height:660px}.countdown-band{flex-wrap:wrap;padding:30px 5%;gap:22px}.countdown-label{flex:1}.countdown>div{min-width:80px;padding:0 13px}.countdown strong{font-size:37px}.calendar{margin-left:auto}.section{padding:85px 6%}.detail-grid article{padding:0 20px}.number{margin-right:15px}.detail-grid p{margin-left:47px}.header nav{gap:22px}.rsvp-section{padding:80px 6%;grid-template-columns:41% 51%;gap:8%}.story-layout{grid-template-columns:37% 56%;gap:7%}.form-row{grid-template-columns:1fr;gap:0}.gallery-grid{gap:18px}.directions{grid-template-columns:39% 56%}.questions{grid-template-columns:39% 56%}}
@media(max-width:760px){html{scroll-padding-top:75px}.header{height:75px;padding:0 6%;position:relative}.monogram{font-size:28px}.header .nav-rsvp{margin-left:auto;margin-right:25px;font-size:10px;gap:12px}.menu-toggle{display:flex;flex-direction:column;gap:6px;width:36px;height:40px;align-items:center;justify-content:center;background:transparent;order:3;padding:0}.menu-toggle span{height:1px;width:22px;background:var(--oxblood);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.header nav{display:none;position:absolute;left:0;right:0;top:75px;background:var(--pearl);border-bottom:1px solid var(--line);padding:22px 6%;flex-direction:column;gap:5px;box-shadow:0 12px 18px #2823210a}.header nav.open{display:flex}.header nav a{padding:10px 0;font-size:12px}.hero{grid-template-columns:1fr;padding:0;min-height:0}.hero-copy{order:2;padding:40px 7% 38px;max-width:none}.hero h1{font-size:clamp(66px,14vw,100px);line-height:.98}.hero h1 br{display:none}.hero h1 em{font-size:.72em}.hero .eyebrow{font-size:9px;margin-bottom:18px}.hero .intro{max-width:none;font-size:12px;margin-top:20px;margin-bottom:23px}.hero .short-rule{margin-bottom:21px}.hero-date{font-size:22px}.hero-venue{margin-top:14px}.hero .button{margin-top:24px}.hero-photo{min-height:0;height:64dvh;max-height:600px;margin:0;order:1}.hero-photo>img{object-position:50% 35%}.hero-photo figcaption{padding:12px 6%;font-size:8px}.hero-threads{display:none}.scroll-cue{display:none}.countdown-band{padding:31px 7%;display:grid;grid-template-columns:1fr;gap:25px;text-align:center}.countdown-label h2{font-size:25px}.countdown{justify-content:center;gap:0}.countdown>div{width:25%;min-width:0;padding:0 7px}.countdown strong{font-size:40px}.countdown span{font-size:8px;letter-spacing:.15em}.calendar{margin:auto;font-size:10px}.section{padding:72px 7%}h2{font-size:46px}.section-title .eyebrow{font-size:9px;letter-spacing:.16em;max-width:270px;margin-left:auto;margin-right:auto}.detail-grid{grid-template-columns:1fr;margin-top:36px;padding:0}.detail-grid article,.detail-grid article:first-child{padding:24px 0;border-left:0;border-top:1px solid var(--line)}.detail-grid article:first-child{border-top:0}.number{width:35px;font-size:30px;margin-right:20px}.detail-grid h3{font-size:9px;margin-bottom:7px}.detail-grid p{margin-left:55px}.dress-row{align-items:flex-start;flex-direction:column;gap:23px;margin-top:25px}.dress-row p{margin:0}.dress-row .text-link{font-size:10px}.adults{padding-left:55px;font-size:10px}.story-pull{font-size:26px;margin:36px auto 42px;line-height:1.45}.story-pull br{display:none}.story-layout{display:block}.story-image{position:static}.story-image img{aspect-ratio:4/4.5;object-position:50% 36%}.story-image figcaption{font-size:8px}.story-monogram{display:none}.chapters{margin-top:43px}.chapter h3{font-size:32px}.chapter p{font-size:13px;line-height:1.95}.chapter+.chapter{margin-top:35px;padding-top:30px}.gallery-heading{display:block;margin-bottom:32px}.gallery-heading>p{margin-top:18px;font-size:11px}.gallery-grid{grid-template-columns:1fr 1fr;gap:24px 14px;align-items:start}.gallery-photo:nth-child(2){padding-top:38px}.gallery-photo:nth-child(2)>img{aspect-ratio:2/3}.gallery-photo:nth-child(3){grid-column:1/-1;width:75%;margin:0 auto}.gallery-photo:nth-child(3)>img{aspect-ratio:4/5}.photo-bottom>span:last-child{font-size:0;gap:0}.photo-bottom svg{width:16px;height:16px}.directions{display:block}.venue-copy h2{font-size:50px;margin-bottom:25px}.venue-copy h2 br{display:none}.venue-actions{gap:17px;margin-top:23px}.map-panel{margin-top:35px}.map-panel iframe{height:310px}.map-note{font-size:10px}.questions{display:block;padding-top:15px}.questions-title h2{font-size:44px}.faq-list{margin-top:30px}.faq-list summary{font-size:12px}.rsvp-section{display:block;padding:60px 7% 65px}.rsvp-copy{max-width:none}.intertwined{margin-bottom:15px;width:80px}.rsvp-copy h2{font-size:68px}.rsvp-copy h2 br{display:none}.rsvp-copy .eyebrow{margin-bottom:18px}.rsvp-copy>p:not(.eyebrow){max-width:430px;margin-top:25px}.rsvp-summary{margin-top:28px;padding-top:20px;gap:7px}.rsvp-form-wrap{padding-top:40px}.form-row{grid-template-columns:1fr}.rsvp-form-wrap input:not([type=radio]):not([type=checkbox]),.rsvp-form-wrap textarea{font-size:16px}.rsvp-form-wrap .consent{font-size:11px}.attendance{gap:23px!important}.closing{padding:65px 7% 55px}.closing-names{font-size:48px}.closing .eyebrow{font-size:8px}footer{justify-content:center;gap:20px;margin:0 7%;padding-bottom:100px}footer>p{font-size:9px}footer .credit{font-size:8px;line-height:1.8}footer .monogram{width:100%;text-align:center}.mobile-bar{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:38% 62%;background:var(--pearl);border-top:1px solid var(--line);z-index:35;padding-bottom:env(safe-area-inset-bottom)}.mobile-bar a{padding:16px 14px;text-align:center;font-size:10px;letter-spacing:.05em;text-decoration:none;line-height:1.8}.mobile-bar a:last-child{background:var(--oxblood);color:var(--pearl);display:flex;align-items:center;justify-content:space-between;padding:16px 23px}.mobile-bar.form-active{display:none}.lightbox-top{left:18px;right:18px;top:16px}#expanded-photo{max-width:calc(100vw - 30px);max-height:70dvh}.lightbox .previous,.lightbox .next{top:auto;bottom:22px;transform:none}.previous{left:18px}.next{right:18px}.lightbox>.text-link{bottom:30px;font-size:10px}.opening-inner{padding-top:35px;padding-bottom:35px}.opening h2{font-size:41px;line-height:1.2}.opening .eyebrow{font-size:8px}.envelope-scene{width:110%;margin:35px -5% 17px;aspect-ratio:3/2}#open-seal{width:62px;height:62px;font-size:20px}.opening-hint{font-size:9px}.opening #skip-opening{margin-top:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}}
/* The real wax seal in the poster is the button's exact visual target. */
#open-seal{top:59%;width:17%;height:auto;aspect-ratio:1;background:transparent;box-shadow:none;border:0;color:transparent}
#open-seal span{visibility:hidden}
#open-seal:focus-visible{outline:2px solid var(--brass);outline-offset:7px}

.envelope-scene{margin-bottom:20px}.rsvp-copy h2 em{display:inline-block;margin-left:.12em}
h1,h2,h3,.monogram,.countdown strong,.closing-names,.hero-date,.serif-sub{font-optical-sizing:none;font-variation-settings:'opsz' 24}

/* Readability and guest hierarchy — refinement of the approved identity. */
:root{--body-size:15px;--label-size:13px;--section-space:80px}
body{font-size:var(--body-size)}
html{scroll-padding-top:96px}
.header{height:80px;position:sticky;top:0;background:var(--pearl)}
.header nav{gap:28px}
.header nav a,.nav-rsvp{font-size:13px}
.eyebrow{font-size:11px;letter-spacing:.15em}
.button{font-size:12px;letter-spacing:.08em;min-height:54px}
.text-link{font-size:13px;gap:10px;min-height:32px;align-items:center}
.text-link svg{width:17px;height:17px}
h2{font-size:clamp(40px,4.1vw,56px)}
.hero{min-height:0}
.hero-copy{padding:48px 40px 32px 0;max-width:560px}
.hero h1{font-size:clamp(74px,7vw,104px);line-height:1.03}
.hero h1>span{display:block}
.hero .eyebrow{margin-bottom:18px}
.hero .intro{font-size:15px;max-width:340px;line-height:1.8;margin:20px 0}
.hero .short-rule{margin-bottom:20px}
.hero-date{font:600 17px/1.6 var(--sans);letter-spacing:0;font-variation-settings:normal}
.hero-time{font-size:14px;margin-top:6px}
.hero-venue{font-size:15px;line-height:1.7;margin-top:14px}
.hero-venue span{font-size:13px}
.hero .button{margin-top:22px}
.hero-photo{height:clamp(600px,76svh,700px);min-height:0;max-height:none;margin-bottom:24px}
.hero-photo figcaption{font-size:10px;letter-spacing:.08em}
.scroll-cue{font-size:10px;margin-top:27px;max-width:175px}
.scroll-cue svg{width:16px;height:16px;color:var(--brass)}
.countdown-band{padding-top:30px;padding-bottom:30px}
.countdown-label .eyebrow{font-size:10px;letter-spacing:.14em}
.countdown-label h2{font-size:26px}
.countdown strong{font-size:44px}
.countdown span{font-size:11px;letter-spacing:.1em;margin-top:10px}
.calendar{font-size:13px}
.section{padding-top:var(--section-space);padding-bottom:var(--section-space);scroll-margin-top:0}
.section-title .eyebrow{margin-bottom:14px}
.section-title>p:last-child{font-size:15px;margin-top:14px}
.details .section-title{max-width:720px;margin:auto}
.detail-grid{margin-top:38px;padding:28px 0;grid-template-columns:1fr 1.35fr .85fr}
.detail-grid h3{font-size:12px;letter-spacing:.12em;margin-bottom:8px}
.detail-grid p{font-size:15px;line-height:1.8}
.detail-grid strong{font-weight:600}
.number{font-size:30px;line-height:1.2}
.dress-row{margin-top:23px}
.dress-row .eyebrow{font-size:12px;letter-spacing:.08em}
.adults{font-size:14px;font-weight:500}
.story-pull{font-size:clamp(24px,2.4vw,32px);line-height:1.5;margin:27px auto 40px;max-width:780px}
.story-layout{grid-template-columns:36% 57%;gap:7%;max-width:1100px}
.story-image{top:112px}
.story-image figcaption{font-size:11px;letter-spacing:.08em}
.chapter h3{font-size:32px;margin-bottom:18px}
.chapter p{font-size:15px;line-height:1.85}
.chapter p+p{margin-top:18px}
.chapter+.chapter{margin-top:32px;padding-top:28px}
.chapter-number{font-size:23px;margin-bottom:15px}
.gallery-heading{margin-bottom:34px}
.gallery-heading .eyebrow{margin-bottom:14px}
.gallery-heading>p{font-size:14px}
.gallery-grid{max-width:1120px;margin:auto;gap:24px}
.photo-bottom{font-size:12px;letter-spacing:0;padding-top:13px;line-height:1.6}
.photo-bottom svg{width:17px;height:17px}
.directions{padding-top:65px;padding-bottom:65px}
.venue-copy .eyebrow{margin-bottom:16px}
.venue-copy h2{font-size:48px;margin-bottom:25px}
.venue-copy h3{font-size:18px;line-height:1.5;max-width:360px}
.venue-copy>p:not(.eyebrow){font-size:15px;line-height:1.8}
.venue-actions{gap:15px;margin-top:20px}
#route-form label{font-size:14px}
.route-input input{font-size:15px;min-height:50px}
.map-note{font-size:12px;line-height:1.8}
.status{font-size:14px}
.questions{padding-top:20px}
.questions h2{font-size:44px}
.faq-list details{padding:16px 0}
.faq-list summary{font-size:15px;min-height:28px}
.faq-list p{font-size:15px;line-height:1.8}
.rsvp-section{padding-top:65px;padding-bottom:65px;grid-template-columns:40% 52%;gap:8%}
.rsvp-copy h2{font-size:clamp(52px,5vw,72px)}
.rsvp-copy h2 em{margin-left:0}
.rsvp-copy>p:not(.eyebrow){font-size:15px;line-height:1.85;margin-top:24px}
.rsvp-summary{font-size:13px;letter-spacing:.02em;margin-top:28px;padding-top:20px;gap:8px}
.intertwined{margin-bottom:18px;height:40px;width:84px}
fieldset.attendance{gap:12px;margin-bottom:20px}
.attendance legend{font-size:14px;margin-bottom:8px}
.attendance label{font-size:14px;min-height:44px;padding:6px 8px 6px 0;gap:10px}
.attendance input,.consent input{width:20px;height:20px}
.rsvp-form-wrap form>label,.form-row label,#song-field>label{font-size:14px;margin-bottom:8px}
.rsvp-form-wrap input:not([type=radio]):not([type=checkbox]),.rsvp-form-wrap textarea{font-size:16px;min-height:50px;margin-bottom:20px;padding:12px 14px}
.rsvp-form-wrap input::placeholder,.rsvp-form-wrap textarea::placeholder{font-size:14px}
.rsvp-form-wrap .consent{font-size:13px;line-height:1.8;min-height:44px;align-items:flex-start;gap:12px;margin-bottom:20px}
.consent input{margin-top:2px}
.original-rsvp{font-size:13px}
.confirmation p{font-size:15px}
.closing{padding:45px 20px 40px}
.closing .eyebrow{font-size:11px}
.closing-names{font-size:clamp(36px,4vw,52px);margin:14px 0 18px}
.closing .text-link{font-size:12px}
footer{padding-top:24px;padding-bottom:26px}
footer>p,footer .text-link{font-size:12px}
footer .credit{font-size:11px;line-height:1.8}
.opening .eyebrow{font-size:11px}
.opening-date{font-size:14px}
.opening-hint,.opening #skip-opening{font-size:12px}
.envelope-scene>img{mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 95%,transparent);mask-composite:intersect}
.lightbox-top,.lightbox>.text-link{font-size:13px}
@media(max-width:1100px) and (min-width:761px){
 .header nav{gap:20px}
 .hero-copy{padding-top:38px;padding-right:24px}
 .hero h1{font-size:80px}
 .hero .intro{font-size:14px;margin:17px 0}
 .hero-date{font-size:16px}
 .hero-photo{height:660px}
 .detail-grid article{padding-left:20px;padding-right:20px}
 .detail-grid p{margin-left:0;clear:both;padding-top:10px}
 .number{margin-right:15px}
 .detail-grid h3{min-height:32px;display:flex;align-items:center}
 .countdown>div{min-width:83px;padding:0 12px}
 .calendar{margin-left:0}
 .photo-bottom{font-size:11px}
 .photo-bottom>span:last-child{gap:4px}
}
@media(max-width:760px){
 :root{--section-space:52px}
 html{scroll-padding-top:80px}
 .header{height:68px}
 .header .nav-rsvp{font-size:12px;gap:12px;margin-right:20px}
 .header nav{top:68px}
 .header nav a{font-size:15px;padding:11px 0}
 .hero-photo{height:clamp(170px,23svh,220px);min-height:0;max-height:none;margin:0}
 .hero-photo figcaption{display:none}
 .hero-photo>img{object-position:50% 30%}
 .hero-copy{padding:24px 7% 28px;max-width:none}
 .hero h1{font-size:clamp(52px,14.8vw,68px);line-height:1.02}
 .hero h1>span:first-child{display:flex;gap:.16em;align-items:baseline}
 .hero h1 em{font-size:.75em}
 .hero .eyebrow{font-size:10px;letter-spacing:.11em;margin-bottom:12px}
 .hero .intro{font-size:14px;line-height:1.65;margin:14px 0 16px}
 .hero .short-rule{display:none}
 .hero-date{font-size:15px;line-height:1.65}
 .hero-time{font-size:14px;margin-top:4px}
 .hero-venue{font-size:14px;line-height:1.65;margin-top:10px}
 .hero-venue span{font-size:13px}
 .hero .button{margin-top:18px;min-height:50px;font-size:12px;width:100%;justify-content:space-between;padding:14px 20px}
 .countdown-band{padding:25px 7%;gap:20px}
 .countdown-label .eyebrow{font-size:10px}
 .countdown-label h2{font-size:25px}
 .countdown strong{font-size:38px}
 .countdown span{font-size:10px;letter-spacing:.08em;margin-top:8px}
 .calendar{font-size:12px}
 h2{font-size:40px}
 .section-title .eyebrow{font-size:10px;letter-spacing:.12em;max-width:none;margin-bottom:12px}
 .section-title>p:last-child{font-size:14px;line-height:1.8;margin-top:12px}
 .detail-grid{margin-top:26px;padding:0;grid-template-columns:1fr}
 .detail-grid article,.detail-grid article:first-child{padding:18px 0}
 .number{font-size:28px;margin-right:15px;float:left}
 .detail-grid h3{font-size:11px;min-height:0;margin-bottom:5px}
 .detail-grid p{font-size:15px;margin-left:50px;line-height:1.7;padding:0;clear:none}
 .dress-row{margin-top:20px;gap:18px}
 .dress-row .eyebrow{font-size:11px;letter-spacing:.05em}
 .dress-row .text-link{font-size:13px}
 .adults{font-size:14px;padding-left:0}
 .story-pull{font-size:24px;line-height:1.45;margin:22px auto 30px}
 .story-aside{display:none}
 .chapters{margin-top:0}
 .chapter h3{font-size:29px;margin-bottom:17px}
 .chapter p{font-size:15px;line-height:1.85}
 .chapter+.chapter{margin-top:28px;padding-top:25px}
 .chapter-number{font-size:22px;margin-bottom:12px}
 .gallery-heading{margin-bottom:28px}
 .gallery-heading>p{font-size:14px;margin-top:13px}
 .gallery-grid{gap:20px 14px}
 .gallery-photo:nth-child(2){padding-top:28px}
 .photo-bottom{font-size:12px;padding-top:12px}
 .photo-bottom>span:last-child{font-size:0}
 .photo-bottom svg{width:18px;height:18px}
 .directions{padding-top:50px;padding-bottom:50px}
 .venue-copy h2{font-size:40px;margin-bottom:20px}
 .venue-copy .eyebrow{font-size:11px;margin-bottom:12px}
 .venue-copy h3{font-size:19px}
 .venue-copy>p:not(.eyebrow){font-size:15px}
 .venue-actions{gap:13px;margin-top:18px}
 .map-panel{margin-top:25px}
 .map-panel iframe{height:270px}
 .route-input input{font-size:16px}
 .map-note{font-size:12px}
 .questions{padding-top:12px}
 .questions h2{font-size:38px}
 .faq-list{margin-top:24px}
 .faq-list summary,.faq-list p{font-size:15px}
 .rsvp-section{padding:42px 7% 48px}
 .rsvp-copy .intertwined{display:none}
 .rsvp-copy .eyebrow{font-size:11px;margin-bottom:12px}
 .rsvp-copy h2{font-size:52px;line-height:1.08}
 .rsvp-copy h2 em{margin-left:.1em}
 .rsvp-copy>p:not(.eyebrow){font-size:14px;line-height:1.8;margin-top:18px}
 .rsvp-summary{font-size:12px;margin-top:18px;padding-top:16px;gap:5px}
 .rsvp-form-wrap{padding-top:24px}
 fieldset.attendance{gap:7px!important}
 .attendance label{font-size:13px;padding-right:6px}
 .rsvp-form-wrap .consent{font-size:13px}
 .rsvp-form-wrap input::placeholder,.rsvp-form-wrap textarea::placeholder{font-size:14px}
 .closing{padding:34px 7% 30px}
 .closing .eyebrow{font-size:10px;letter-spacing:.1em}
 .closing-names{font-size:36px;line-height:1.3;margin:12px 0}
 footer{padding-bottom:95px;gap:15px}
 footer>p,footer .text-link{font-size:12px}
 footer .credit{font-size:11px;line-height:1.8}
 .mobile-bar{grid-template-columns:36% 64%}
 .mobile-bar a{font-size:12px;min-height:54px;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 12px;letter-spacing:0}
 .mobile-bar a:last-child{padding:14px 18px}
 .mobile-bar svg{width:17px;height:17px}
 .opening-inner{padding-top:28px;padding-bottom:28px}
 .opening .eyebrow{font-size:10px}
 .opening h2{font-size:38px}
 .opening-date{font-size:13px}
 .opening-hint,.opening #skip-opening{font-size:12px}
 .lightbox>.text-link{font-size:12px}
}

.hero h1>span:first-child{display:flex;align-items:baseline;gap:.14em}
.story-pull{letter-spacing:0}
.story-pull>span{display:block}
@media(max-width:760px){.hero h1>span:first-child{gap:.16em}.story-pull>span{display:inline}}

/* Matching poster/video geometry keeps the first tap free of framing jumps. */
.opening.has-media{overflow:hidden}
.opening.has-media .opening-inner{width:min(1080px,100%);padding:26px 24px;position:relative}
.opening.has-media h2{font-size:clamp(36px,4vw,52px)}
.opening.has-media .envelope-scene{width:min(900px,100%,calc((100dvh - 320px) * 16 / 9));aspect-ratio:var(--media-ratio);margin:20px auto 15px;transition:none}
.opening.has-media .envelope-scene>img,
.opening.has-media .envelope-scene>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;mix-blend-mode:normal;mask-image:none}
.opening.has-media .envelope-scene>video{opacity:0}
.opening.has-media.is-playing .envelope-scene>video{opacity:1}
.opening.has-media.is-playing .envelope-scene>img{opacity:0}
.opening.has-media #open-seal{min-width:52px;max-width:none;aspect-ratio:1;height:auto;z-index:3}
.opening.has-media #skip-opening{position:relative;z-index:6;margin-top:18px}
.opening.has-media .opening-inner>.eyebrow,
.opening.has-media .opening-inner>h2,
.opening.has-media .opening-date,
.opening.has-media .opening-hint{transition:opacity .16s}
.opening.has-media.is-starting .opening-inner>.eyebrow,
.opening.has-media.is-starting .opening-inner>h2,
.opening.has-media.is-starting .opening-date,
.opening.has-media.is-starting .opening-hint,
.opening.has-media.is-starting #open-seal{opacity:0;pointer-events:none}
.reveal-wash{position:absolute;inset:0;background:var(--pearl);opacity:0;pointer-events:none;z-index:4;transition:opacity .4s ease}
.opening.has-media.to-pearl .reveal-wash,
.opening.is-completing .reveal-wash{opacity:1}
.opening.has-media.is-leaving{transform:none;transition:opacity .32s ease}
.opening.has-media[data-layout=mobile] .opening-inner{width:100%;height:100dvh;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.opening.has-media[data-layout=mobile] .envelope-scene{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(100vw,var(--media-width));margin:0;z-index:0}
.opening.has-media[data-layout=mobile] .opening-inner>.eyebrow{position:absolute;top:max(25px,6dvh);z-index:2}
.opening.has-media[data-layout=mobile] h2{position:absolute;top:max(52px,10dvh);font-size:clamp(30px,8.8vw,42px);margin:0;z-index:2;white-space:nowrap}
.opening.has-media[data-layout=mobile] .opening-date{position:absolute;top:max(102px,17dvh);margin:0;z-index:2}
.opening.has-media[data-layout=mobile] .opening-hint{position:absolute;top:73%;margin:0;z-index:2;font-size:11px}
.opening.has-media[data-layout=mobile] #skip-opening{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));margin:0;font-size:12px}
.opening.has-media[data-layout=mobile] .reveal-wash{position:fixed}
@media(max-height:700px) and (min-width:761px){
 .opening.has-media .opening-inner{padding:12px 24px}
 .opening.has-media .envelope-scene{width:min(700px,75vw,calc((100dvh - 280px) * 16 / 9));margin:10px auto}
 .opening.has-media h2{font-size:38px}
 .opening.has-media .opening-date{margin-top:8px}
 .opening.has-media #skip-opening{margin-top:8px}
}
@media(prefers-reduced-motion:reduce){.reveal-wash{transition:none}}

.opening.has-media[data-layout=mobile] .envelope-scene>img,
.opening.has-media[data-layout=mobile] .envelope-scene>video{mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent)}

/* The supplied identity; full legal names retain a readable responsive measure. */
.wedding-logo{width:64px;height:64px;object-fit:contain}
.hero h1.full-couple-names{font-size:clamp(30px,3.3vw,48px);line-height:1.18;letter-spacing:-.02em}
.hero h1>span.couple-name{display:block;overflow-wrap:normal}
.hero h1 .names-join{display:block;font-size:.75em;margin:10px 0}
.closing-names.full-couple-names{font-size:clamp(24px,3vw,40px);max-width:900px;margin:16px auto;line-height:1.4}
@media(max-width:760px){footer .wedding-logo{margin-inline:auto}.wedding-logo{width:54px;height:54px}.hero h1.full-couple-names{font-size:clamp(28px,7.5vw,36px)}.hero h1 .names-join{margin:7px 0}}
/* Five supplied portraits, with larger images accessible in the viewer. */
.gallery-grid{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:35px}
.gallery-photo{grid-column:span 2}
.gallery-photo:nth-child(4){grid-column:2 / span 2}
.gallery-photo:nth-child(5){grid-column:4 / span 2}
@media(max-width:760px){
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}
 .gallery-photo,.gallery-photo:nth-child(3),.gallery-photo:nth-child(4){grid-column:auto;width:auto;margin:0}
 .gallery-photo:nth-child(3)>img{aspect-ratio:2/3}
 .gallery-photo:nth-child(5){grid-column:1/-1;width:75%;margin:0 auto}
 .hero-photo>img{object-position:50% 30%}
}

/* Engagement programme and an editorial reading rhythm for the supplied story. */
.hero-reception{font-size:12px;line-height:1.7;color:var(--muted);margin-top:14px;padding-top:12px;border-top:1px solid var(--line);max-width:360px}
.hero-reception>span{font-size:13px;font-weight:600;color:var(--oxblood)}
.hero-copy{padding-top:36px}
.hero .intro{margin-top:17px;margin-bottom:17px}
.hero .scroll-cue{margin-top:18px}
.event-schedule{display:grid;grid-template-columns:1fr 1fr;margin-top:40px;border-block:1px solid var(--line)}
.event-card{padding:34px 8% 36px 0}
.event-card+ .event-card{padding-left:12%;border-left:1px solid var(--line)}
.event-card .eyebrow{color:var(--oxblood);display:flex;align-items:center;gap:18px}
.event-card .eyebrow>span{font:26px/1 var(--serif);color:var(--brass);letter-spacing:0}
.event-time{font:56px/1.1 var(--serif);letter-spacing:-.04em;color:var(--oxblood);margin:24px 0 20px!important}
.event-time span{font:13px/1 var(--sans);letter-spacing:.06em;margin-left:5px}
.event-card h3{font-size:29px;line-height:1.3;letter-spacing:-.025em}
.event-card>p:not(.eyebrow):not(.event-time){font-size:15px;color:var(--muted);margin-top:6px}
.event-card .text-link{margin-top:22px}
.story .story-byline{font-size:11px;letter-spacing:.11em;line-height:1.9;max-width:580px;margin:20px auto 0}
.story-byline>span{color:var(--brass);padding-inline:5px}
.story .story-pull{font-style:italic;color:var(--oxblood);margin:30px auto 48px}
.story .chapter p{max-width:60ch;line-height:1.95}
.story-finale{margin:54px auto 0;padding:30px 16px 0;border-top:1px solid var(--line);max-width:760px;text-align:center;font:clamp(24px,2.5vw,34px)/1.6 var(--serif);letter-spacing:-.025em;color:var(--oxblood)}
.story-finale em{color:#80683f}
.venue-location+ .venue-location{margin-top:28px;padding-top:28px;border-top:1px solid var(--line)}
.venue-location .eyebrow{font-size:11px;margin-bottom:8px}
.venue-location>p:not(.eyebrow){font-size:15px;color:var(--muted);margin-top:4px}
.venue-location .venue-actions{margin-top:13px;gap:8px}
#route-form{padding-top:0;margin-bottom:20px}
#route-form>label{display:block}
#venue-choice{display:block;width:100%;padding:12px;margin:8px 0 20px;border:1px solid var(--line);border-radius:0;background:var(--pearl);color:var(--ink);font:15px/1.5 var(--sans)}
.rsvp-summary>a{padding-top:7px;line-height:1.8}
.rsvp-summary strong{font-weight:500;color:#dfc69e}
@media(min-width:761px){.hero-photo{height:clamp(690px,84svh,790px)}}
@media(max-width:760px){
 .hero-copy{padding-top:24px}.hero-reception{max-width:none;font-size:12px;margin-top:12px;padding-top:10px}
 .event-schedule{grid-template-columns:1fr;margin-top:28px}
 .event-card,.event-card+ .event-card{padding:26px 0;border-left:0}
 .event-card+ .event-card{border-top:1px solid var(--line)}
 .event-card .event-time{font-size:48px;margin:19px 0 15px!important}
 .event-card h3{font-size:28px}
 .event-card .text-link{margin-top:18px}
 .story .story-byline{font-size:10px;max-width:310px}
 .story .story-pull{font-size:23px;margin:25px auto 34px}
 .story-finale{margin-top:34px;padding-top:24px;font-size:24px}
 .story .chapter p{line-height:1.9}
 #venue-choice{font-size:16px}
 .route-input{flex-wrap:wrap;gap:10px}.route-input input{flex-basis:100%;border-right:1px solid var(--line)}.route-input .button{width:100%}
}

/* Blend photographic edge variations into the exact pearl page background. */
.opening.has-media .envelope-scene{background:var(--pearl)}
.opening.has-media .envelope-scene>img,
.opening.has-media .envelope-scene>video,
.opening.has-media[data-layout=mobile] .envelope-scene>img,
.opening.has-media[data-layout=mobile] .envelope-scene>video{
 -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;
}
#open-route{margin-top:14px}
