/* Client edition, 9 November 2026. Previous animation and form logic is retained. */
@font-face{font-family:'Cormorant';font-style:italic;font-weight:300 700;font-display:swap;src:url('assets/cormorant-italic.ttf') format('truetype')}
.site-header{justify-content:flex-end}
.header-actions{margin-left:auto}
.invitation.invitation-poster{padding:0;min-height:0;background:#090403;overflow:hidden}
.invitation.invitation-poster::before,.invitation.invitation-poster::after{display:none}
.save-the-date{display:block;width:100%;max-width:720px;height:auto;margin:0 auto;position:relative;z-index:1}
.main-day-section{background:radial-gradient(ellipse at 90% 0%,#4c15142b,transparent 70%),#0b0706;position:relative}
.main-day-section .program-sheet,.program .program-sheet{max-width:700px}
.main-day-section .event-day{max-width:700px!important;margin:0 auto;text-align:left}
.event-day .section-heading .eyebrow,.program .section-heading .eyebrow{font-size:14px;letter-spacing:.1em;line-height:1.6}
.event-day .section-heading .display,.program .section-heading .display{font-size:clamp(43px,11.6vw,66px);line-height:1.05;letter-spacing:-.015em}
.event-day .timeline li,.program .timeline li{grid-template-columns:38% 1fr;gap:14px;padding:28px 0;min-height:112px}
.event-day .time,.program .time{font-size:clamp(40px,10.4vw,58px);white-space:nowrap}
.event-day .time-description h3,.program .time-description h3{font-size:clamp(25px,6.7vw,34px);line-height:1.13;text-wrap:balance}
.event-location{margin:32px 0 26px}
.location-city{font:400 16px/1.5 Manrope,Arial,sans-serif;letter-spacing:.08em;color:#b99b72;margin-bottom:10px}
.location-name{font:500 clamp(27px,7.2vw,36px)/1.14 var(--event-serif);color:#ead1a1;text-wrap:balance}
.location-address{font:400 14px/1.5 Manrope,Arial,sans-serif;color:#baa990;margin-top:12px}
.event-actions{display:grid;gap:12px}
.event-actions .event-button{width:100%;margin:0}
.event-actions .event-button-secondary{background:transparent;color:#e7cd9d;border:1px solid #b998626b;box-shadow:none}
.event-actions .event-button-secondary:hover{background:#be975519}
.program .day-two-note{font-size:22px;margin:26px 0 20px}
.dress-content .eyebrow{font-size:14px;letter-spacing:.15em}
.dress-content .display{font-size:clamp(50px,13vw,76px);line-height:1.01}
.dress-content .body-copy{margin-top:24px}
.hotels #hotels-title{font-size:clamp(36px,9vw,60px);line-height:1.09;max-width:760px;text-wrap:balance}
.hotels .hotel-heading{display:block}
.hotels .hotel-intro{margin-top:22px;font-size:22px}
.hotels .hotel-card:first-child h3{font-size:clamp(28px,7vw,38px);line-height:1.15}
.creative-number.creative-editorial{display:grid;position:relative;isolation:isolate;padding:0;background:radial-gradient(ellipse at 80% 25%,#45090955,transparent 70%),#090605;overflow:hidden}
.creative-visual{position:relative;min-width:0;max-width:620px;width:100%;margin:auto}
.creative-visual img{display:block;width:100%;height:auto;mix-blend-mode:lighten}
.creative-visual::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 65%,#090605 100%)}
.microphone-light{position:absolute;inset:8% 18% 32% 5%;background:radial-gradient(ellipse,#edb65424,transparent 62%);mix-blend-mode:screen;pointer-events:none;animation:microphone-glow 6s ease-in-out infinite alternate}
.creative-copy{position:relative;z-index:2;max-width:640px;margin:-82px auto 0;padding:0 var(--page) 90px;text-align:left}
.creative-number .display{font-family:var(--event-serif);font-size:clamp(42px,11.8vw,66px);line-height:1.04;font-weight:500;letter-spacing:-.015em}
.creative-lead{font:400 clamp(26px,7vw,33px)/1.2 var(--event-serif);color:#eedbb8;margin:25px 0 20px;text-wrap:balance}
.creative-number .body-copy{font:400 17px/1.65 Manrope,Arial,sans-serif;color:#c5b59b;margin:0 0 28px;max-width:470px}
.creative-number .event-button{width:100%;margin:0;max-width:410px}
.creative-atmosphere{inset:auto 0 0;height:35%;z-index:1;opacity:.24;pointer-events:none}
.creative-editorial:not(.motion-active) .microphone-light,body.page-is-hidden .microphone-light{animation-play-state:paused}
@keyframes microphone-glow{from{opacity:.3;transform:translate3d(-5%,0,0)}to{opacity:1;transform:translate3d(9%,3%,0)}}
.farewell h2{font-family:'Cormorant',Georgia,serif;font-style:italic;font-weight:400;font-synthesis:none;font-size:clamp(46px,12.3vw,76px);line-height:1.05;padding:.15em .09em .25em;overflow:visible}
.looks-dialog{max-width:850px;height:auto;max-height:calc(100dvh - 16px)}
.looks-dialog[open]{grid-template-rows:auto auto auto auto}
.looks-media-slot{height:min(calc(100dvh - 240px),calc((100vw - 48px) * 1286 / 1223),640px)}
.looks-panel{grid-template-rows:minmax(0,1fr) auto;gap:12px}
.looks-frame.looks-board{display:block;width:min(100%,calc(100cqh * 1223 / 1286));height:auto;aspect-ratio:1223/1286;background:#090605;border:0}
.looks-frame.looks-board img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.looks-zoom-link{display:block;text-align:center;justify-self:center;min-height:40px;padding:9px 12px;font:400 14px/1.5 Manrope,Arial,sans-serif;color:#e4c38b;text-decoration:underline;text-underline-offset:5px}
.looks-footnote{font-size:13px}
.rsvp-status{font-size:15px;line-height:1.55;margin-top:16px;color:#e7cf9e}
@media(min-width:700px){
 .event-actions{grid-template-columns:1fr 1fr}
 .creative-number.creative-editorial{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;padding:70px max(var(--page),calc((100vw - 1200px)/2))}
 .creative-visual{grid-column:1;margin:0;align-self:stretch;display:flex;align-items:center}
 .creative-visual img{width:100%;max-height:800px;object-fit:contain}
 .creative-copy{grid-column:2;margin:0;padding:32px 0 32px 24px}
 .creative-number .display{font-size:clamp(43px,4.8vw,70px)}
 .creative-lead{font-size:30px}
 .main-day-section,.program{padding-top:100px;padding-bottom:100px}
}
@media(max-width:359px){
 .hotels #hotels-title{font-size:32px}
 .event-day .section-heading .eyebrow,.program .section-heading .eyebrow{font-size:12px}
 .event-day .time-description h3,.program .time-description h3{font-size:23px}
 .event-day .time,.program .time{font-size:37px}
 .creative-copy{margin-top:-62px}
 .creative-number .display{font-size:39px}
 .looks-dialog[open]{gap:9px}
}
@media(prefers-reduced-motion:reduce){.microphone-light{animation:none;opacity:.5}}

/* V32: generated lettering used as a luminance mask, without a visible image background. */
.farewell h2.farewell-lettering{width:min(100%,560px);max-width:none;margin:0 auto;padding:0;font-size:inherit;line-height:0;font-style:normal;letter-spacing:0;background:none;overflow:visible}
.farewell-lettering svg{display:block;width:100%;height:auto;overflow:visible}
.signature-sheen{animation:signatureGoldSweep 9s ease-in-out infinite}
@keyframes signatureGoldSweep{0%,15%{transform:translateX(-110%)}65%,100%{transform:translateX(110%)}}
@media(prefers-reduced-motion:reduce){.signature-sheen{animation:none;opacity:0}}

/* V33: direct hotel locations, verified against official hotel websites. */
.hotel-actions{display:flex;flex-direction:column;gap:12px;margin-top:auto;padding-top:20px}
.noir-edition .hotel-actions .event-button{margin-top:0;width:100%;min-height:50px}
.noir-edition .hotel-actions .hotel-map-link{background:#21170f;color:#f0d8a8;border:1px solid #cead77;font-size:14px;font-weight:500;box-shadow:inset 0 1px #fff0ce10}
.noir-edition .hotel-actions .hotel-map-link:hover,.noir-edition .hotel-actions .hotel-map-link:focus-visible{background:#352517;color:#fff0cc;border-color:#f0d6a6}

/* V35: deeper red / antique gold, matching the opening stage. */
.invitation.invitation-poster{position:relative;isolation:isolate}
.save-the-date{filter:saturate(.84) contrast(1.06) brightness(.94)}
.invitation.invitation-poster::after{display:block;content:'';position:absolute;inset:0;z-index:2;max-width:720px;margin:auto;pointer-events:none;background:linear-gradient(180deg,transparent 25%,#32000924 48%,#16030938 100%);mix-blend-mode:multiply}
.event-day .section-heading .eyebrow,.program .section-heading .eyebrow{font-size:18px;line-height:1.55;letter-spacing:.065em;color:#e2c596}
.event-day .section-heading .display,.program .section-heading .display{font-size:clamp(43px,11.6vw,66px);line-height:1.08}
.event-day .timeline li,.program .timeline li{grid-template-columns:1fr;gap:14px;padding:30px 0;align-items:start}
.event-day .time,.program .time{font-size:clamp(44px,11vw,58px);line-height:1.05}
.event-day .time-description h3,.program .time-description h3{font:500 clamp(22px,5.7vw,29px)/1.3 Manrope,Arial,sans-serif;letter-spacing:.015em;text-wrap:balance;color:#ecd7af}
.program-starts{font-size:.76em;font-weight:400;letter-spacing:0}
.event-day .program-description,.program .program-description{font:400 18px/1.65 Manrope,Arial,sans-serif;letter-spacing:0;color:#d1c2ab;margin:14px 0 0;max-width:510px}
.time-inline{white-space:nowrap;color:#f0d5a2;font-weight:600}
.location-venue{font:500 clamp(29px,7.7vw,40px)/1.15 var(--event-serif);color:#ecd2a1;margin-bottom:14px}
.location-name{font-size:clamp(26px,6.8vw,34px)}
.location-address{font-size:16px}
.rsvp .body-copy{font-size:20px;line-height:1.55}
.rsvp-form .form-field>label,.rsvp-form fieldset legend{font-size:18px;line-height:1.55;margin-bottom:14px}
.rsvp-day-label{font-size:17px;line-height:1.55;letter-spacing:.015em;color:#efd2a1;margin-bottom:10px}
.rsvp-form .optional{display:block;font-size:16px;line-height:1.5;margin:4px 0 0}
.rsvp-form input:not([type=radio]),.rsvp-form textarea{font-size:18px;line-height:1.5}
.rsvp-form .form-field input,.rsvp-form .form-field textarea{display:block;width:100%;min-height:58px;border:1px solid #b18a515f;border-radius:0;background:#1a0b08b3;padding:15px 14px;color:#f5e4c9;box-shadow:none;appearance:none}
.rsvp-form .form-field input:focus,.rsvp-form .form-field textarea:focus{border-color:#ddb56e}
.rsvp-form input::placeholder,.rsvp-form textarea::placeholder{font-size:16px;color:#bda78d}
.rsvp-form .attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rsvp-form .attendance-options label:last-child{grid-column:1/-1}
.rsvp-form .attendance-options span{min-height:54px;font-size:17px;padding:12px 14px}
.rsvp-status{font-size:17px}
.creative-number .body-copy{font-size:18px;line-height:1.65}
.hotels .hotel-card:nth-child(3) .hotel-image-link>img{object-position:50% 45%}
@media(min-width:700px){
 .event-day .timeline li,.program .timeline li{grid-template-columns:145px minmax(0,1fr);gap:28px}
 .event-day .section-heading .eyebrow,.program .section-heading .eyebrow{font-size:20px}
}
@media(max-width:359px){
 .event-day .section-heading .eyebrow,.program .section-heading .eyebrow{font-size:17px;letter-spacing:.035em}
 .event-day .program-description,.program .program-description{font-size:17px}
 .rsvp-form .attendance-options span{font-size:16px}
}
