:root{color-scheme:light;--paper:#f5e6e8;--ink:#244638;--muted:#526d5b;--rose:#b46e83;--sage:#92a48d;--ivory:#fffaf5;--card:#f9edf0;--line:rgba(82,109,91,.28);--ink-soft:rgba(36,70,56,.8);--ink-faint:rgba(36,70,56,.45);--ink-rgb:36,70,56;--display:"parfumerie-script",cursive;--body:"mrs-eaves",Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.55 var(--body);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-blend-mode:overlay;background-size:200px}
body.intro-active{overflow:hidden}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:700}img,video{display:block;max-width:100%}button,input,textarea{font:inherit;color:inherit}button,a,input{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:5px}[hidden]{display:none!important}main{overflow:hidden}button{border:0}.cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.skip-link{position:fixed;top:12px;left:12px;z-index:100;transform:translateY(-180%);padding:10px 18px;background:var(--paper)}.skip-link:focus{transform:none}
.opening{position:fixed;inset:0;z-index:50;background:var(--paper);transition:opacity 1.2s ease;isolation:isolate}.opening.fading{opacity:0;pointer-events:none}.opening video{opacity:0;transition:opacity .7s}.opening.playing video{opacity:1}.open-invitation{position:absolute;inset:0;z-index:3;width:100%;height:100%;background:transparent}.open-hint{position:absolute;bottom:22px;width:100%;text-align:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 7px #fff}.opening.playing .open-hint{display:none}.skip-intro{position:absolute;bottom:24px;right:24px;z-index:5;background:rgba(245,230,232,.94);border-radius:30px;padding:7px 20px;font:14px Georgia,serif;backdrop-filter:blur(8px)}
.hero{position:relative;min-height:100vh;min-height:100svh;background:var(--paper)}.hero-copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:230px 24px 0;pointer-events:none;opacity:0;transition:opacity 2.6s ease-out}.hero-copy.visible{opacity:1}.hero-copy h1,.opening-names{font:700 60px/1.05 var(--display);filter:drop-shadow(0 1px 4px #ffffff8c)}.hero-copy h1 span,.opening-names span{display:block}.hero-meta{margin-top:52px}.hero-meta p{font-size:12px;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 3px #ffffff8c}.hero-meta p:first-child{margin-top:24px}.hero-meta p+p{margin-top:8px}.opening-copy{z-index:2}
.countdown{position:relative;z-index:3;margin-top:-56px;padding:80px 24px;background:var(--paper)}.countdown:before{content:"";position:absolute;inset:-1% 0;background:var(--paper);z-index:-1}.column{position:absolute;top:-1%;height:100%;width:auto;max-width:none;opacity:.9;pointer-events:none}.column-left{left:-14%}.column-right{right:-14%;transform:scaleX(-1)}.countdown-content{position:relative;max-width:576px;margin:auto;text-align:center}.countdown h2{font-size:36px;line-height:1.1;margin-bottom:16px}.families{font-size:16px;font-style:italic;margin-bottom:48px;line-height:1.65}.timer{display:flex;justify-content:center}.timer>div{position:relative;padding:0 12px;display:flex;align-items:center;flex-direction:column}.timer>div+div:before{content:"";position:absolute;left:0;top:12px;width:1px;height:32px;background:var(--line)}.timer span{font:700 36px/1 var(--display)}.timer small{margin-top:12px;font-size:12px;letter-spacing:.25em;text-transform:uppercase}
.linen-section{padding:40px 0}.linen-panel{position:relative;width:100%;container-type:inline-size}.linen-panel>img{width:100%;height:auto;user-select:none}.details-copy{position:absolute;left:0;right:0;top:25%;bottom:20%;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.details-copy h2{font-size:7cqw;line-height:1}.details-copy #detail-events{display:contents}.detail-event h3{font-size:6.2cqw;line-height:1;margin-bottom:2cqw}.detail-event p{font-size:2.6cqw;line-height:1.5;letter-spacing:.06em;text-transform:uppercase}.detail-spacer{min-height:2cqw}.dress-copy{position:absolute;left:0;right:0;top:59%;text-align:center}.dress-copy h2{font-size:7cqw;line-height:1}.dress-copy #dress-name{font:700 5.2cqw/1 var(--display);margin-top:1.2cqw}.dress-copy #dress-notes{font-size:2.1cqw;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;margin-top:1.6cqw}
.divider{width:40px;height:1px;margin:auto;background:var(--line)}.section{padding:80px 24px}.narrow{max-width:672px;margin:0 auto}.section-title{font-size:48px;line-height:1; text-align:center}#celebrations-title{margin-bottom:40px}.event+.event{margin-top:48px}.venue-illustration{position:relative;z-index:2;width:288px;margin:0 auto -32px;filter:drop-shadow(0 1px 2px #0001);animation:venue-sway 6s ease-in-out infinite}.card{position:relative;text-align:center;background:var(--card);border:1px solid rgba(var(--ink-rgb),.12);border-radius:16px;padding:40px 24px}.tassel{position:absolute;bottom:-24px;right:-16px;width:112px;z-index:3;filter:drop-shadow(0 1px 2px #0001)}.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:14px}.event .eyebrow{color:var(--muted);margin-bottom:12px}.event h3{font-size:48px;line-height:1.25;margin-bottom:12px}.event-description{font-size:16px;color:var(--ink-soft)}.small-rule{height:1px;width:40px;background:var(--line);margin:20px auto}.event-date{font-size:16px;font-style:italic;letter-spacing:.025em}.event-date+p{margin-top:8px}.text-link{display:inline-block;background:none;border:0;border-bottom:1px solid var(--rose);padding:0 0 4px;text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-size:14px;transition:border-color .2s}.text-link:hover{border-color:var(--ink)}.map-link{margin-top:20px}.card-dress{border-top:1px solid var(--line);padding-top:24px;margin-top:32px}.card-dress small{font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.6}.card-dress h4{font:700 30px/1.25 var(--display);margin:8px 0 0}.card-dress p{font-size:14px;font-style:italic;opacity:.7;margin-top:8px}
.stay-heading{text-align:center;margin-bottom:80px}.bedside{width:160px;height:auto;margin:0 auto 24px}.stay-heading .section-title{margin-bottom:8px}.stay-heading .eyebrow{margin-top:0;opacity:.8}.stay-note{max-width:448px;margin:24px auto 0;font-size:16px;line-height:1.6;font-style:italic;white-space:pre-line}.stay-note a{text-decoration:none}.hotel{text-align:center}.hotel+.hotel{margin-top:96px}.hotel>img{width:256px;margin:0 auto 16px}.hotel h3{font-size:36px;line-height:1.25;margin-bottom:16px}
.gift-wrap{position:relative}.gift-floral{position:absolute;width:144px;z-index:2;pointer-events:none}.floral-left{top:-32px;left:-48px;animation:floral-sway 10s ease-in-out infinite}.floral-right{bottom:-32px;right:-48px;transform:rotate(180deg)}.gift-card h2{margin-bottom:32px}.gift-card>p:first-of-type{font-style:italic;font-size:18px;line-height:1.6;opacity:.7;margin-bottom:16px}.gift-card>p+p{font-size:16px;opacity:.5}.gift-card .text-link{margin:16px 12px 0}
.rsvp-lemon{width:192px;height:192px;object-fit:contain;margin:0 auto 40px}form>*,#attending-fields>*,#attendance-extras>*{margin:0 0 32px}fieldset{padding:0;border:0;min-width:0}legend{padding:0;margin-bottom:12px;font-size:16px;letter-spacing:.025em}label{font-size:16px}.choice{display:flex;align-items:flex-start;gap:10px;cursor:pointer;line-height:1.3;margin-top:12px}.choice input{flex:none;width:16px;height:16px;margin:2px 0 0;accent-color:var(--ink)}.stepper{display:flex;gap:8px;align-items:center}.stepper button{width:40px;height:40px;background:none;border:1px solid var(--line);border-radius:6px;font-size:18px}.stepper output{width:40px;text-align:center;font-size:18px}.guest-block{padding-bottom:24px;border-bottom:1px solid rgba(var(--ink-rgb),.12);margin-bottom:24px}.guest-block:last-child{border:0;padding-bottom:0}.field-label{display:block;font-size:14px;letter-spacing:.025em;margin-bottom:12px}input:not([type=radio]):not([type=checkbox]),textarea{display:block;background:transparent;border:1px solid var(--line);border-radius:6px;min-height:40px;width:100%;padding:8px 12px;font-size:16px;outline-offset:2px}.guest-block input+input{margin-top:12px}input::placeholder,textarea::placeholder{color:var(--ink-faint);opacity:1}textarea{resize:vertical;margin-top:8px;min-height:100px}#children-fields{margin-top:20px}#children-count{max-width:100px;margin-bottom:20px}.child-block{margin-top:20px}.child-block input+input{margin-top:12px}.preview-note{font-size:13px;line-height:1.5;color:var(--muted)}.form-error{color:#8a304e}.submit-wrap{position:relative;margin-bottom:0}.submit-button{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:8px;min-height:48px;width:100%;border-radius:8px;background:var(--ink);color:var(--paper);font-size:14px;letter-spacing:.15em;text-transform:uppercase;padding:13px 20px}.submit-button:hover{background:#365f4a}.vase{position:absolute;bottom:-160px;width:144px;pointer-events:none;z-index:3}.vase-left{left:-80px}.vase-right{right:-80px}.confirmation{text-align:center;outline:none;min-height:360px;scroll-margin-top:30px}.confirmation>p{margin:24px auto;max-width:450px}.confirmation .text-link{margin:10px 12px}.footer{padding:80px 24px;text-align:center}.footer-names{font:700 48px/1.2 var(--display);margin-bottom:16px}.footer-names span{font-size:30px;opacity:.5;font-style:italic}#footer-date{font-size:16px;letter-spacing:.025em;opacity:.5}.site-credit{font-size:14px;color:var(--ink-faint);margin-top:64px}.site-credit a{text-underline-offset:4px}.music-toggle{position:fixed;bottom:24px;right:24px;z-index:40;width:48px;height:48px;border-radius:50%;border:1px solid rgba(var(--ink-rgb),.12);background:rgba(245,230,232,.94);backdrop-filter:blur(8px);box-shadow:0 8px 20px #0001;display:grid;place-items:center}.music-toggle svg{width:22px;height:22px}.noscript{text-align:center;padding:30px;position:relative;z-index:55;background:var(--paper)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.in-view{opacity:1;transform:none}@keyframes venue-sway{0%,50%,100%{transform:translate(0,0)}25%{transform:translate(3px,-4px)}75%{transform:translate(-3px,-4px)}}@keyframes floral-sway{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-3px) rotate(1.5deg)}75%{transform:translateY(2px) rotate(-1deg)}}
@media(min-width:768px){body{font-size:19px}.hero-copy{padding-top:304px}.hero-copy h1{font-size:96px}.hero-meta{margin-top:68px}.hero-meta p{font-size:14px}.countdown{padding:112px 24px}.countdown h2{font-size:60px}.families{font-size:18px}.timer span{font-size:60px}.timer>div{padding:0 20px}.linen-section{padding:64px 0}.section{padding:112px 24px}.section-title{font-size:72px}.venue-illustration{width:416px}.card{padding:56px 40px}.event h3{font-size:60px}.tassel{width:160px;right:-32px;bottom:-32px}.card-dress h4{font-size:36px}.bedside{width:208px}.stay-heading{margin-bottom:112px}.hotel>img{width:320px}.hotel h3{font-size:48px}.hotel+.hotel{margin-top:128px}.gift-floral{width:176px}.floral-left{left:-64px}.floral-right{right:-64px}.gift-card>p:first-of-type{font-size:20px}.rsvp-lemon{width:256px;height:256px}.vase{width:192px}.vase-left{left:-128px}.vase-right{right:-128px}.footer-names{font-size:60px}.footer-names span{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(min-width:768px){.opening-names{font-size:96px}}
@media(min-width:768px){.hero-copy{padding-top:clamp(105px,calc(50svh - 210px),344px)}}

/* Pink linen and sage: keep the original embroidered composition. */
::selection{background:#d7b1bd;color:var(--ink)}
input:not([type=radio]):not([type=checkbox]),textarea{background:rgba(255,250,245,.32)}
input:focus-visible,textarea:focus-visible{border-color:var(--muted)}
.text-link:hover{color:var(--ink);border-color:var(--ink)}
.submit-button{color:var(--ivory)}
.site-credit{color:var(--muted)}

.vase-right{transform:scaleX(-1)}

/* Client wording and family contacts. */
.invitation-copy{max-width:510px;margin:0 auto 48px;font-size:20px;line-height:1.7;text-wrap:pretty}
.countdown .column{width:clamp(150px,28vw,280px);height:100%;object-fit:contain;opacity:.55}
.linen-panel{max-width:900px;margin-inline:auto}
.detail-event{max-width:64%;margin-inline:auto}
.dress-copy{left:9%;right:9%}
.dress-copy #dress-name{font-size:clamp(20px,5cqw,45px);line-height:1.25;margin-top:1.5cqw}
.dress-copy #dress-notes{font-size:clamp(12px,2.2cqw,20px);text-transform:none;letter-spacing:.025em}
.detail-event p{font-size:clamp(10px,2.6cqw,24px)}
.event h3{font-size:clamp(40px,7vw,60px);overflow-wrap:normal}
.event-description{max-width:500px;margin:12px auto 0;line-height:1.65}
.event-timezone{font-size:13px;letter-spacing:.06em;color:var(--muted);margin-top:8px}
.calendar-link{margin-top:20px;margin-left:20px}
.contact-section .section-title{margin-bottom:40px}
.contact-grid{display:grid;gap:24px}
.contact-card{text-align:center;padding:32px 24px;background:var(--card);border:1px solid var(--line);border-radius:16px}
.contact-relation{font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);margin-bottom:12px}
.contact-card h3{font-size:38px;line-height:1.2;margin-bottom:16px}
.contact-phone{font-size:19px;letter-spacing:.04em}
.contact-actions{display:flex;justify-content:center;gap:28px;margin-top:24px}
.contact-actions .text-link{min-height:36px;display:inline-flex;align-items:center}
.closing-section{text-align:center;padding:0 32px 24px}
#closing-message{max-width:540px;margin:auto;font-size:22px;font-style:italic;line-height:1.6;text-wrap:pretty}
@media(min-width:768px){.invitation-copy{font-size:24px;line-height:1.75}.contact-grid{grid-template-columns:1fr 1fr}.contact-card{padding:40px 20px}.contact-card h3{font-size:42px}.closing-section{padding-bottom:32px}#closing-message{font-size:26px}}
@media(max-width:360px){.hero-copy{padding-top:clamp(170px,34svh,240px)}.hero-meta{margin-top:42px}.hero-meta p{font-size:10px;letter-spacing:.12em}.invitation-copy{font-size:19px}.calendar-link{margin-left:0;display:block;width:max-content;margin-inline:auto}}

/* Restored Bellagio sections: one purpose for each illustration. */
#invitation-text { max-width: 540px; font-size: 18px; line-height: 1.6; }
.invitation-line { display: block; }
.invitation-part-intro { font-style: italic; margin-bottom: 18px; }
.invitation-part-hosts { font-size: 21px; line-height: 1.45; margin: 0 auto 18px; max-width: 28ch; white-space: pre-line; }
.invitation-part-copy { max-width: 400px; margin: 12px auto; font-size: 17px; line-height: 1.6; white-space: pre-line; }
.invitation-part-name { font: 700 clamp(37px, 5vw, 56px)/1.2 var(--display); margin: 12px auto; }
.announcement-copy { top: 25%; bottom: 30%; justify-content: center; gap: 6cqw; }
.announcement-copy h2 { font-size: clamp(56px, 14cqw, 126px); line-height: 1; }
#details-date { font-size: clamp(12px, 3.4cqw, 28px); line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.venue-section .stay-heading { margin-bottom: 40px; }
.venue-section .bedside { width: 160px; margin-bottom: 8px; }
.venue-content { max-width: 560px; margin-inline: auto; }
.hotel > .venue-building { width: 100%; max-width: 520px; margin: 0 auto 24px; }
.venue-caption { position: relative; padding: 0 32px 28px; }
.venue-caption h3 { max-width: 17ch; margin: 0 auto 16px; font-size: clamp(38px, 6.5vw, 56px); line-height: 1.2; }
.venue-caption .eyebrow { font-size: 13px; letter-spacing: .14em; }
.venue-caption .stay-note { max-width: 350px; margin-top: 24px; font-size: 18px; }
.venue-caption .tassel { width: 92px; bottom: -28px; right: -12px; pointer-events: none; }
.programme-copy { position: absolute; top: 25%; bottom: 22%; left: 12%; right: 12%; display: flex; flex-direction: column; justify-content: flex-start; gap: 4cqw; text-align: center; }
.programme-copy h2 { font-size: clamp(28px, 8cqw, 72px); line-height: 1; }
#programme-events { display: grid; gap: 4cqw; list-style: none; padding: 0; margin: 0; }
#programme-events h3 { font-size: clamp(24px, 5.5cqw, 50px); line-height: 1.1; margin-bottom: 1cqw; }
#programme-events p { max-width: 36ch; margin-inline: auto; font-size: clamp(13px, 2.8cqw, 25px); line-height: 1.5; }
.programme-calendar { text-align: center; padding: 8px 24px 24px; }
.programme-calendar .calendar-link { margin: 20px auto 0; }
.closing-card { min-height: 200px; display: grid; place-items: center; }
.closing-card #closing-message { max-width: 440px; margin: 0; font-size: 24px; line-height: 1.65; opacity: 1; color: var(--ink); }
.contact-section { padding-bottom: 0; }
.contact-seal { position: relative; width: 200px; margin: 0 auto 40px; }
.contact-seal img { width: 100%; height: auto; }
.contact-seal h2 { position: absolute; top: 64%; left: 23%; right: 18%; transform: translateY(-50%); font: 700 36px/1.1 var(--display); text-align: center; margin: 0; }
.contact-vases { height: 240px; max-width: 540px; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin: 32px auto 0; pointer-events: none; }
.contact-vases img { width: clamp(104px, 30vw, 160px); max-height: 260px; object-fit: contain; }
.contact-vases img:last-child { transform: scaleX(-1); }
.contact-section + .footer { padding-top: 48px; }
@media (min-width: 768px) {
  .invitation-part-intro { font-size: 21px; }
  .invitation-part-hosts { font-size: 25px; }
  .invitation-part-copy { font-size: 21px; }
  .venue-section .bedside { width: 208px; }
  .venue-section .stay-heading { margin-bottom: 56px; }
  .venue-caption .stay-note { font-size: 20px; }
  .closing-card { min-height: 240px; }
  .closing-card #closing-message { font-size: 28px; }
  .contact-seal { width: 240px; margin-bottom: 56px; }
  .contact-seal h2 { font-size: 42px; }
  .contact-vases { height: 300px; margin-top: 40px; }
}

/* Legible date/location directly over the scenic embroidery. */
.hero-meta {
  width: max-content;
  max-width: calc(100% - 16px);
  padding: 12px 20px;
  background: none;
  border: 0;
  box-shadow: none;
}
.hero-meta p {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
  color: #15382a;
  text-shadow: 0 1px 3px rgba(255, 250, 245, .95), 0 0 8px rgba(255, 250, 245, .65);
}
.hero-meta p:first-child { margin-top: 0; }
.hero-meta p + p { margin-top: 5px; }
.contact-seal h2 {
  top: 56.5%; left: 20%; right: 24%;
  font-size: 34px; line-height: 1;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .hero-meta p { font-size: 18px; }
  .contact-seal h2 { font-size: 40px; }
}
@media (max-width: 360px) {
  .hero-meta { padding: 10px 16px; }
  .hero-meta p { font-size: 14px; letter-spacing: .06em; }
}
#details-time { font-size: clamp(14px, 3.2cqw, 26px); line-height: 1.5; letter-spacing: .08em; }



/* Remove the digital noise; retain the pink background. */
body {
  background-image: none;
  background-blend-mode: normal;
}

/* Keep intro and hero identically full-screen. */
html {
  scrollbar-gutter: stable;
}

.opening,
.hero {
  height: 100vh;
  height: 100dvh;
  min-height: 0;
}

.opening {
  transition: none;
}

.opening .cover,
.hero > .cover {
  object-fit: cover;
  object-position: center;
}

/* Prevent the next section from covering the hero. */
.countdown {
  margin-top: 0;
}

.countdown::before {
  inset: 0;
}

.countdown .column {
  top: 0;
}

/* Lock intro and hero to the viewport height captured on page load. */
.opening,
.hero {
  height: var(--initial-viewport-height, 100vh);
  min-height: 0;
}

.opening {
  top: 0;
  bottom: auto;
}

.opening .cover,
.hero > .cover {
  object-fit: cover;
  object-position: center;
}

.countdown {
  overflow: hidden;
}

.countdown .column {
  top: 0;
  bottom: 0;
  height: auto;
  background-image: url("assets/column-pink-green.webp");
  background-repeat: repeat-y;
  background-size: 100% auto;
  background-position: left top;
}

@media (max-width: 767px) {
  .countdown .column-left {
    left: 0;
  }

  .countdown .column-right {
    right: 0;
  }
}

.countdown .column {
  background-image: url("assets/column-pink-green-long.png");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.music-toggle {
  -webkit-appearance: none;
  appearance: none;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.music-toggle svg {
  display: block;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  margin: 0;
}



/* Location */
.hero-meta p:last-child {
  display: none;
}