@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{font-family:"DM Sans",sans-serif;color:#f6efe3;background:#18372e;font-synthesis:none;scroll-behavior:smooth;--cream:#f4eddf;--pine:#19372e;--gold:#d3ba91}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.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:-80px;left:1rem;z-index:50;background:white;color:#19372e;padding:.8rem 1.1rem}.skip-link:focus{top:1rem}.story{height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-width:none}.story::-webkit-scrollbar{display:none}.slide{height:100vh;height:100dvh;min-height:360px;scroll-snap-align:start;scroll-snap-stop:always;position:relative;isolation:isolate;display:grid;place-items:center;overflow:hidden;background:#1b342b}.slide__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;transform:scale(1.035);transition:transform 1.8s ease}.slide.is-active .slide__media{transform:scale(1)}.slide--photo .slide__media{object-position:center}.slide__veil{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(19,39,32,.3),rgba(19,39,32,.12) 45%,rgba(19,39,32,.38))}.slide--botanical{color:#243d31;background:#e8e4d6}.slide--botanical .botanical-image{object-fit:cover;object-position:center}.slide--botanical .slide__veil{background:rgba(247,245,231,.48)}.slide--green .slide__veil{background:linear-gradient(140deg,rgba(12,40,30,.76),rgba(16,43,33,.71))}.slide__content{position:relative;z-index:1;text-align:center;width:min(90%,1000px);opacity:.5;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}.slide.is-active .slide__content{opacity:1;transform:translateY(0)}.slide__content--botanical{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,3.5vh,29px);padding-block:55px;text-shadow:0 1px 15px rgba(246,244,224,.55)}.eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:clamp(.64rem,.9vw,.79rem);font-weight:700;line-height:1.8;margin:0}.eyebrow--light{color:#ead5b3}.fine-print{letter-spacing:.19em;text-transform:uppercase;font-size:clamp(.7rem,.95vw,.85rem);margin:0}.fine-print--light{color:#e5d2b3}.ornamental-rule{display:block;background:#967c53;height:1px;width:56px;opacity:.8}.ornamental-rule--light{background:#e4ca9f}.names{font:400 clamp(5.4rem,13vw,12rem)/.82 "Cormorant Garamond",serif;letter-spacing:-.06em;margin:0;display:flex;align-items:center;gap:clamp(.15em,2vw,.4em)}.names__amp{font-size:.48em;font-style:italic;align-self:center;color:#937c5a}.statement{font:500 clamp(5rem,12vw,11rem)/.9 "Cormorant Garamond",serif;letter-spacing:-.055em;margin:0}.statement--save{display:flex;gap:.2em}.statement--date{display:flex;gap:.18em;font-variant-numeric:lining-nums}.statement--venue{display:flex;align-items:center;gap:.15em;font-size:clamp(4.3rem,10vw,10rem)}.statement__divider{font-size:.55em;color:#937c5a}.photo-number{position:absolute;bottom:clamp(24px,5vw,66px);left:clamp(22px,5vw,72px);font-size:.7rem;letter-spacing:.18em;color:white;text-shadow:0 2px 12px #000a;opacity:.85}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;pointer-events:none;display:flex;justify-content:space-between;align-items:center;padding:clamp(16px,3vw,35px) clamp(20px,4.4vw,70px);color:#fbf3e7;mix-blend-mode:difference}.site-header a{pointer-events:auto;text-decoration:none}.monogram{font:500 1.4rem "Cormorant Garamond",serif;letter-spacing:-.06em}.monogram span{font-style:italic;font-size:.85em;padding-inline:.08em}.site-header__date{font-size:.65rem;letter-spacing:.25em;font-weight:600}.story-navigation{position:fixed;right:clamp(9px,2vw,24px);top:50%;transform:translateY(-50%);z-index:20}.story-navigation__dots{display:flex;flex-direction:column;gap:9px}.story-navigation__dots button{padding:6px;border:0;background:none;cursor:pointer;display:grid;place-items:center}.story-navigation__dots button::before{content:"";display:block;width:5px;height:5px;border-radius:50%;background:#fff;opacity:.5;transition:all .25s;box-shadow:0 1px 5px #0008}.story-navigation__dots button[aria-current="step"]::before{height:19px;border-radius:3px;opacity:1;background:#e5d4ac}.story-controls{position:fixed;z-index:20;right:clamp(20px,4.4vw,70px);bottom:clamp(21px,3.5vw,44px);display:flex;align-items:center;gap:11px;color:white;text-shadow:0 1px 8px #0008}.story-controls__button{color:inherit;border:1px solid #fffa;border-radius:50%;background:#19372e55;backdrop-filter:blur(8px);width:39px;height:39px;cursor:pointer;transition:background .2s}.story-controls__button:hover:not(:disabled){background:#19372eaa}.story-controls__button:disabled{opacity:.35;cursor:default}.story-controls__count{display:flex;align-items:center;gap:.5em;font-size:.7rem;letter-spacing:.1em;font-variant-numeric:tabular-nums}.story-controls__separator{opacity:.6}.progress-bar{height:2px;position:fixed;bottom:0;left:0;right:0;z-index:25;background:#fff2}.progress-bar__fill{height:100%;background:#dec6a3;width:7.14%;transition:width .3s ease}.slide--intro{background:radial-gradient(circle at 50% 46%,#45634c 0%,#224337 50%,#112b24 100%);color:#f5ecdf}.intro-orbit{position:absolute;aspect-ratio:1;border:1px solid #d9c9a226;border-radius:50%;width:min(80vw,75vh);pointer-events:none}.intro-orbit--two{width:min(110vw,105vh);border-color:#d9c9a217}.intro-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:30px;gap:clamp(24px,4.2vh,42px)}.eyebrow--intro{color:#e9d7b7;text-align:center}.envelope{position:relative;display:block;width:min(74vw,560px);aspect-ratio:1.55;background:transparent;border:0;padding:0;cursor:pointer;filter:drop-shadow(0 22px 35px #07180f77);transition:transform .5s}.envelope:hover{transform:translateY(-8px)}.envelope__art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2;pointer-events:none}.envelope__seal{position:absolute;width:clamp(60px,19%,116px);height:auto;top:50%;left:50%;transform:translate(-50%,-30%);z-index:4;pointer-events:none;filter:drop-shadow(0 4px 6px #281b1755);transition:opacity .4s,transform .8s}.envelope__letter{position:absolute;top:25%;left:16%;right:16%;height:60%;border-radius:3px;background:#f3e8d4;color:#284138;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4em;box-shadow:0 6px 18px #0002;z-index:1;transition:transform 1.1s cubic-bezier(.2,.8,.2,1);font:500 clamp(1.8rem,4vw,3rem) "Cormorant Garamond",serif}.envelope__letter em{color:#a4885e}.envelope__letter small{font:600 .56rem "DM Sans",sans-serif;letter-spacing:.28em;text-transform:uppercase}.envelope__flap{position:absolute;z-index:3;left:8%;right:8%;top:15%;height:52%;background:linear-gradient(160deg,#e6d8bb,#c9b595);clip-path:polygon(0 0,100% 0,50% 84%);transform-origin:top center;backface-visibility:hidden;transition:transform .85s ease,opacity .85s}.envelope.is-open .envelope__flap{transform:rotateX(165deg);opacity:0}.envelope.is-open .envelope__seal{opacity:0;transform:translate(-50%,-100%) scale(.6)}.envelope.is-open .envelope__letter{transform:translateY(-36%) scale(1.13)}.intro-instruction{margin:0;letter-spacing:.18em;font-size:.72rem;text-transform:uppercase;text-align:center;color:#e3d2b5}.instruction-spark{padding-inline:.75em;font-size:.75em}.intro-bottom{position:absolute;bottom:clamp(25px,4vw,60px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;flex-direction:column;letter-spacing:.2em;text-transform:uppercase;font-size:.6rem;opacity:.65}.intro-bottom__line{height:28px;width:1px;background:currentColor}.slide__content--green{width:min(92%,1050px);padding:40px 0}.section-title{font:500 clamp(3.4rem,7.4vw,7.5rem)/.95 "Cormorant Garamond",serif;margin:clamp(22px,4vh,42px) 0;letter-spacing:-.035em}.section-title em{font-weight:400}.countdown{display:flex;justify-content:center;gap:clamp(10px,4vw,56px);margin:clamp(40px,8vh,90px) auto}.countdown__unit{min-width:clamp(58px,10vw,132px);display:flex;align-items:center;flex-direction:column;gap:13px}.countdown__value{font:400 clamp(2.7rem,7vw,6.8rem)/1 "Cormorant Garamond",serif;font-variant-numeric:tabular-nums}.countdown__label{text-transform:uppercase;font-size:clamp(.53rem,.85vw,.72rem);letter-spacing:.14em;color:#eedcbd}.slide__content--information{max-width:790px;padding:60px 18px}.slide__content--information .section-title{margin:17px 0 26px}.slide__content--information .ornamental-rule{margin:0 auto 32px}.slide__content--information p:not(.eyebrow,.form-note){max-width:680px;margin:0 auto 1.15em;font-size:clamp(.98rem,1.6vw,1.23rem);line-height:1.85;font-weight:400}.form-link{display:inline-flex;align-items:center;justify-content:center;margin-top:20px;border:1px solid #f3e6cb;padding:15px 27px;text-decoration:none;text-transform:uppercase;font-size:.72rem;letter-spacing:.15em;transition:background .2s,color .2s}.form-link:not(.form-link--disabled):hover{background:#f3e6cb;color:#19372e}.form-link--disabled{opacity:.55;cursor:not-allowed}.form-note{font-size:.78rem;color:#eddbbe;margin:12px 0}.slide--final .slide__veil{background:linear-gradient(90deg,rgba(13,31,25,.63),rgba(13,31,25,.42)),linear-gradient(180deg,#0002,#0005)}.slide__content--final{max-width:780px;padding:clamp(24px,5vw,60px);background:rgba(17,40,31,.3);border:1px solid #fff2;backdrop-filter:blur(12px);box-shadow:0 20px 80px #0b251b22}.final-heading{font:500 clamp(2.8rem,6vw,6.5rem)/1 "Cormorant Garamond",serif;letter-spacing:-.03em;margin:28px 0}.slide__content--final>p:not(.eyebrow,.final-signature){font-size:clamp(.9rem,1.4vw,1.1rem);line-height:1.7}.slide__content--final .ornamental-rule{margin:28px auto}.final-signature{font:500 clamp(2.5rem,5vw,4.3rem) "Cormorant Garamond",serif;margin:0}.final-signature em{color:var(--gold)}@media(max-width:700px){.site-header{padding:18px 19px}.site-header__date{font-size:.55rem}.story-navigation{display:none}.story-controls{right:17px;bottom:20px;gap:8px}.story-controls__button{width:35px;height:35px}.slide--botanical .slide__veil{background:rgba(247,245,231,.55)}.names{flex-direction:column;gap:0;font-size:clamp(6.8rem,26vw,11rem)}.names__amp{font-size:.45em;line-height:1.1}.statement--save,.statement--date,.statement--venue{flex-direction:column;gap:0}.statement--save{font-size:clamp(6rem,21vw,10rem)}.statement--date{font-size:clamp(6rem,23vw,10rem)}.statement--venue{font-size:clamp(4.5rem,16vw,7.5rem)}.statement__divider{line-height:.45;margin:.12em 0}.envelope{width:min(91vw,540px)}.intro-content{gap:23px}.intro-bottom{bottom:20px;left:24px;transform:none}.slide__content--information{padding:55px 10px}.slide__content--information p:not(.eyebrow,.form-note){font-size:clamp(.9rem,3.6vw,1.06rem);line-height:1.65}.slide__content--information .section-title{font-size:clamp(3.5rem,12vw,5.6rem)}.slide__content--final{width:90%;padding:28px 20px}.final-heading{font-size:clamp(2.8rem,11vw,4.8rem)}.countdown{gap:9px;margin:35px auto}.countdown__unit{min-width:0;flex:1;gap:8px}.countdown__value{font-size:clamp(2.2rem,10vw,4.5rem)}.countdown__label{font-size:.56rem;letter-spacing:.08em}.section-title{font-size:clamp(3.4rem,12vw,5rem)}.slide--green .slide__veil{background:rgba(12,39,30,.75)}}@media(max-height:640px){.intro-content{gap:12px}.envelope{width:min(56vw,340px)}.intro-bottom{display:none}.slide__content--information{padding:45px 5px}.slide__content--information .section-title{margin:8px 0 15px}.slide__content--information .ornamental-rule{margin-bottom:13px}.slide__content--information p:not(.eyebrow,.form-note){font-size:.85rem;line-height:1.45}.countdown{margin:18px auto}.slide__content--final{padding:16px}.final-heading{margin:12px 0}.slide__content--final .ornamental-rule{margin:12px auto}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.slide__content{opacity:1;transform:none}.slide__media{transform:none}}


/*
 * Couple photos: preserve every pixel of the original photograph, regardless of
 * aspect ratio. Fill otherwise empty screen space with a soft, darkened copy.
 * The blurred image reuses the same URL, so the browser can reuse its cache.
 */
.slide--photo .photo-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: blur(32px) brightness(0.55);
  transform: scale(1.12);
  z-index: -3;
  pointer-events: none;
}

.slide--photo .slide__media,
.slide--photo.is-active .slide__media {
  object-fit: contain;
  object-position: center;
  z-index: -2;
  transform: none;
  transition: none;
}

/* The final note still sits on top of the sharp, fully visible sixth photo. */
.slide--final .slide__veil {
  z-index: -1;
}

/* Stationary presentation: real scroll-snap steps behind a sticky stage. */
.story--stacked { scroll-snap-type: y mandatory; scroll-behavior: smooth; }
.story--stacked .story-stage {
  position: sticky;
  top: 0;
  z-index: 1;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  isolation: isolate;
  scroll-snap-align: start;
}
.story--stacked .story-track { height: auto; pointer-events: none; }
.story--stacked .story-track__step {
  height: 100vh;
  height: 100dvh;
  scroll-snap-align: start;
}
.story--stacked .slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  scroll-snap-align: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform-origin: center center;
  transition: none;
}
.story--stacked .slide.is-rendered { visibility: visible; }
.story--stacked .slide.is-active { pointer-events: auto; }
.story--stacked .slide .slide__media,
.story--stacked .slide .slide__content {
  transform: none;
  transition: none;
}
.story--stacked .slide .slide__content { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .story--stacked { scroll-behavior: auto; }
  .story--stacked .slide { transform: none !important; }
}


/* Envelope: let the supplied artwork be the envelope.
   Synthetic flap and seal previously overlapped it on top of a visible
   letter, causing the broken collage shown on desktop. */
.slide--intro .envelope {
  width: min(85vw, 350px);
  height: min(46dvh, 420px);
  aspect-ratio: auto;
  max-height: none;
  padding: 0;
  background: transparent;
  border: 0;
  perspective: 900px;
  filter: none;
  transition: transform 400ms ease;
}
.slide--intro .envelope:hover { transform: translateY(-4px); }
.slide--intro .envelope__art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  z-index: 2;
  pointer-events: none;
  filter: drop-shadow(0 15px 26px rgba(4, 19, 13, .46));
  transform: none;
  opacity: 1;
  transition: transform 1100ms cubic-bezier(.22,.75,.22,1), opacity 850ms ease;
}
.slide--intro .envelope__letter {
  position: absolute;
  z-index: 3;
  top: 21%;
  left: 11%;
  right: 11%;
  width: auto;
  height: 51%;
  padding: 1rem .6rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .4rem;
  border: 1px solid rgba(132,107,69,.18);
  border-radius: 3px;
  background: #f5ebd9;
  color: #294437;
  box-shadow: 0 15px 30px rgba(7,25,16,.3);
  font: 500 clamp(1.9rem, 3vw, 2.6rem)/1 "Cormorant Garamond",serif;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(22%) scale(.87);
  pointer-events: none;
  transition: opacity 650ms ease 120ms, transform 1000ms cubic-bezier(.2,.8,.2,1);
}
.slide--intro .envelope__letter small {
  font: 600 .55rem/1.4 "DM Sans", sans-serif;
  letter-spacing: .25em;
  text-transform: uppercase;
}
.slide--intro .envelope.is-open .envelope__art {
  opacity: .24;
  transform: translateY(22%) rotateX(-8deg) scale(.89);
}
.slide--intro .envelope.is-open .envelope__letter {
  opacity: 1;
  transform: translateY(-14%) scale(1);
}
@media (prefers-reduced-motion: reduce) {
  .slide--intro .envelope,
  .slide--intro .envelope__art,
  .slide--intro .envelope__letter {
    transition: none;
  }
}


/* Photo-specific composition: never crop fit photos; intentionally cover 2 & 3. */
.slide--photo[data-photo-mode="fill"] .slide__media,
.slide--photo[data-photo-mode="fill"].is-active .slide__media {object-fit:cover;}
.slide--photo[data-photo-mode="fit"] .slide__media,
.slide--photo[data-photo-mode="fit"].is-active .slide__media {object-fit:contain;}

/* A single coherent CSS envelope. Layer order is back, card, pocket, flap, seal. */
.slide--intro .envelope {
 position:relative;width:min(72vw,460px);height:auto;aspect-ratio:1.48;
 perspective:1100px;transform-style:preserve-3d;overflow:visible;
 border:0;padding:0;background:transparent;filter:drop-shadow(0 25px 28px #061d1560);
}
.slide--intro .envelope__back,.slide--intro .envelope__pocket,
.slide--intro .envelope__flap,.slide--intro .envelope__wax,
.slide--intro .envelope__invitation {position:absolute;display:block;}
.slide--intro .envelope__back {
 inset:10% 0 0;background:#b4a789;border-radius:5px;
 box-shadow:inset 0 0 0 1px #fff3;z-index:1;
}
.slide--intro .envelope__invitation {
 left:9%;width:82%;height:77%;bottom:8%;top:auto;right:auto;
 background:#f6eddd url("./assets/kalalily.png") center/cover;
 border:1px solid #bcae92;box-shadow:0 4px 16px #10271c44;
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 gap:.7em;z-index:2;color:#2b4336;opacity:1;
 transform:translateY(0) scale(1);transition:transform 1150ms cubic-bezier(.2,.75,.15,1),opacity 500ms;
}
.slide--intro .envelope__invitation-names{font:500 clamp(2.1rem,5vw,3.2rem) "Cormorant Garamond",serif;white-space:nowrap;}
.slide--intro .envelope__invitation-names em{color:#947b50;}
.slide--intro .envelope__invitation-caption{font:600 .58rem "DM Sans",sans-serif;text-transform:uppercase;letter-spacing:.22em;}
.slide--intro .envelope__pocket {
 inset:10% 0 0;z-index:3;
 background:linear-gradient(152deg,#e4d8bb 0%,#c9b799 90%);
 clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);
 border-radius:4px;
}
.slide--intro .envelope__pocket::after{content:"";position:absolute;inset:0;background:#d6c7aa;clip-path:polygon(0 100%,50% 53%,100% 100%);}
.slide--intro .envelope__flap {
 left:0;right:0;top:10%;height:54%;z-index:5;
 background:linear-gradient(165deg,#eadfc6,#c7b492);
 clip-path:polygon(0 0,100% 0,50% 100%);
 transform-origin:top center;backface-visibility:hidden;
 transition:transform 750ms cubic-bezier(.18,.7,.2,1);
}
.slide--intro .envelope__wax {
 left:50%;top:53%;width:59px;height:59px;border-radius:50%;z-index:6;
 transform:translate(-50%,-50%);display:grid;place-items:center;
 background:radial-gradient(circle at 32% 22%,#b89978,#7c503d 75%);
 color:#ffedd1;border:3px double #d5b9a0;box-shadow:0 3px 8px #2a211a88;
 font:600 1.1rem "Cormorant Garamond",serif;
 transition:opacity 360ms ease,transform 360ms ease;
}
.slide--intro .envelope__wax span{font-size:.7em;margin:0 -7px;}
.slide--intro .envelope.is-open .envelope__wax{opacity:0;transform:translate(-50%,-80%) scale(.55);}
.slide--intro .envelope.is-open .envelope__flap{transform:rotateX(175deg);z-index:1;}
.slide--intro .envelope.is-open .envelope__invitation{transform:translateY(-68%) scale(1.09);}
.slide--intro .envelope.is-revealing .envelope__invitation{opacity:0;}
@media(max-width:700px){.slide--intro .envelope{width:min(86vw,420px);}.slide--intro .envelope__wax{width:48px;height:48px;}}

/* Card growing out of envelope toward the next botanical title slide. */
.invitation-reveal{
 position:fixed;z-index:30;overflow:hidden;isolation:isolate;
 background:#f5eddd;box-shadow:0 18px 60px #0b1e1677;
 border:1px solid #dbceb5;pointer-events:none;
 transition:top 850ms cubic-bezier(.17,.8,.19,1),left 850ms cubic-bezier(.17,.8,.19,1),
 width 850ms cubic-bezier(.17,.8,.19,1),height 850ms cubic-bezier(.17,.8,.19,1),
 opacity 240ms ease;
}
.invitation-reveal[hidden]{display:none;}
.invitation-reveal__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85;}
.invitation-reveal__copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#2b4235;text-align:center;}
.invitation-reveal__eyebrow,.invitation-reveal__date{font:600 clamp(.55rem,1vw,.8rem) "DM Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase;}
.invitation-reveal__names{font:500 clamp(2rem,11vw,11rem)/1 "Cormorant Garamond",serif;white-space:nowrap;}
.invitation-reveal__names em{color:#937c5a;}
.invitation-reveal.is-expanding{top:0!important;left:0!important;width:100vw!important;height:100dvh!important;}

/* Photo 6: the complete photograph is not covered by the closing note. */
.slide--final .final-layout{
 position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
 align-items:center;width:min(94%,1500px);height:min(88dvh,850px);gap:clamp(18px,3vw,56px);
}
.slide--final .final-photo-frame{width:100%;height:100%;min-height:0;display:grid;place-items:center;}
.slide--final .final-photo{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 22px #06150e55);}
.slide--final .final-message{min-width:0;display:grid;place-items:center;}
.slide--final .slide__content--final{width:100%;padding:clamp(20px,3vw,38px);}
.slide--final .final-heading{font-size:clamp(2.4rem,4.1vw,5.2rem);}
@media(max-width:700px){
 .slide--final .final-layout{width:94%;height:92dvh;grid-template-columns:1fr;grid-template-rows:minmax(0,53%) minmax(0,47%);gap:8px;}
 .slide--final .final-photo-frame{height:100%;}
 .slide--final .final-message{align-self:start;}
 .slide--final .slide__content--final{padding:12px 16px;}
 .slide--final .final-heading{font-size:clamp(1.9rem,7vw,3rem);margin:10px 0;}
 .slide--final .slide__content--final .ornamental-rule{margin:8px auto;}
 .slide--final .final-signature{font-size:clamp(1.7rem,7vw,2.5rem);}
 .slide--final .slide__content--final>p:not(.eyebrow,.final-signature){font-size:.83rem;margin:5px;}
}
@media(prefers-reduced-motion:reduce){.slide--intro .envelope__flap,.slide--intro .envelope__wax,.slide--intro .envelope__invitation,.invitation-reveal{transition:none!important;}}


/* One fully settled screen per gesture: eliminate fractional native snap states. */
html,body{overscroll-behavior:none;}
.story.story--discrete{
 overflow:hidden;
 scroll-snap-type:none;
 scroll-behavior:auto;
 touch-action:pan-x pinch-zoom;
}
.story--discrete .story-stage{position:relative;top:auto;}
.story--discrete .slide{touch-action:pan-x pinch-zoom;}
.story--discrete .slide.is-rendered{will-change:opacity,transform;}
.story--discrete .story-track{display:none;}

/* Match the invitation's opening page to the provided green background asset. */
.slide--intro{
 background:#1b3d31 url("./assets/green-background.jpg") center center/cover no-repeat;
}
.slide--intro::before{
 content:"";position:absolute;inset:0;z-index:-1;
 background:rgba(9,36,26,.23);
 pointer-events:none;
}


/* Custom seal from the supplied asset, not a CSS-generated monogram. */
.slide--intro .envelope__wax{
  display:block;object-fit:contain;width:clamp(54px,14%,82px);height:auto;
  aspect-ratio:1;left:50%;top:53%;border:0;border-radius:0;
  background:none;box-shadow:none;filter:drop-shadow(0 4px 5px rgba(35,25,18,.4));
  padding:0;
}

/* The envelope letter and the expanded page use the same floral treatment. */
.slide--intro .envelope__invitation{
  isolation:isolate;
  background:#e8e4d6 url("./assets/kalalily.png") center/cover no-repeat;
  color:#243d31;
  text-shadow:0 1px 10px rgba(246,244,224,.55);
  gap:.35em;
}
.slide--intro .envelope__invitation::before{
  content:"";position:absolute;inset:0;z-index:-1;background:rgba(247,245,231,.48);
}
.envelope__invitation-eyebrow{
  font:700 clamp(.47rem,.65vw,.65rem) "DM Sans",sans-serif;
  letter-spacing:.23em;text-transform:uppercase;
}
.slide--intro .envelope__invitation-caption{
  font-size:clamp(.45rem,.6vw,.6rem);letter-spacing:.14em;
}
.invitation-reveal.slide--botanical{
  display:grid;place-items:center;isolation:isolate;
  background:#e8e4d6;
  border:0;box-shadow:0 16px 50px rgba(12,35,24,.2);
  opacity:1;
}
.invitation-reveal.slide--botanical[hidden]{display:none;}
.invitation-reveal.slide--botanical .slide__media{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:-3;transform:none;transition:none;
}
.invitation-reveal.slide--botanical .slide__veil{
  position:absolute;inset:0;z-index:-2;background:rgba(247,245,231,.48);
}
.invitation-reveal.slide--botanical .slide__content{
  opacity:1;transform:none;transition:none;
  display:flex;flex-direction:column;align-items:center;
}
@media(max-width:700px){
  .invitation-reveal.slide--botanical .slide__veil{background:rgba(247,245,231,.55);}
}


/* Stronger edge definition and dimensional paper folds for the envelope. */
.slide--intro .envelope{filter:drop-shadow(0 15px 12px rgba(0,0,0,.42)) drop-shadow(0 26px 35px rgba(0,0,0,.3));}
.slide--intro .envelope__back{border:2px solid #877859;box-shadow:inset 0 0 0 2px #e9d9b5,0 0 0 1px rgba(19,35,22,.45);}
.slide--intro .envelope__pocket{filter:drop-shadow(0 0 1px #584f3b);background:linear-gradient(150deg,#f3e5c8 0%,#d5c4a1 55%,#ad9d7c 100%);}
.slide--intro .envelope__pocket::after{background:linear-gradient(0deg,#c1ad88,#e3d0aa);}
.slide--intro .envelope__flap{filter:drop-shadow(0 2px 2px #766b51);background:linear-gradient(165deg,#f2e4c5,#c2ab83);}
.slide--intro .envelope:not(.is-open) .envelope__flap{box-shadow:0 4px 12px #0003;}
/* The extraction uses one painted card above the envelope, never passing behind its pocket. */
.invitation-reveal.slide--botanical{z-index:70;visibility:visible;transform:none;transition:top 950ms cubic-bezier(.19,.73,.22,1),left 950ms cubic-bezier(.19,.73,.22,1),width 950ms cubic-bezier(.19,.73,.22,1),height 950ms cubic-bezier(.19,.73,.22,1),opacity 220ms ease;}
.invitation-reveal.slide--botanical.is-expanding{z-index:70;}
.slide--intro .envelope.is-revealing .envelope__invitation{opacity:0;transition:opacity 150ms linear;}
/* Calendar action stays visually secondary to the countdown numbers. */
.calendar-link{display:inline-flex;gap:.75rem;align-items:center;justify-content:center;padding:12px 20px;border:1px solid rgba(246,236,213,.65);border-radius:999px;color:#f6eddb;background:rgba(11,35,26,.24);text-decoration:none;font-size:clamp(.75rem,1.1vw,.9rem);letter-spacing:.08em;transition:background .2s,border-color .2s;}
.calendar-link:hover,.calendar-link:focus-visible{background:rgba(246,236,213,.16);border-color:#f6eddb;}
.calendar-link__icon{flex:none;}
@media(max-height:600px){.slide__content--green .section-title{margin:8px 0;}.slide__content--green .countdown{margin:12px auto;}.calendar-link{padding:8px 14px;}}


/* Citadel Script is selected if licensed and available on the visitor's system.
   Hungarian ő/ű fall back to the existing serif. Self-host only with web rights. */
:root{font-family:"Citadel Script Std","Cormorant Garamond",serif}
body,button,a,.eyebrow,.fine-print,.section-title,.statement,.names,.countdown__value,.countdown__label,.final-heading,.envelope__invitation-names,.envelope__invitation-caption,.envelope__invitation-eyebrow,.site-header,.story-controls{
  font-family:"Citadel Script Std","Cormorant Garamond",serif!important;
}
.eyebrow,.fine-print,.countdown__label,.calendar-link,.intro-instruction{letter-spacing:.04em!important;text-transform:none!important}
.monogram{display:grid;place-items:center;width:68px;height:72px;text-decoration:none}
.monogram img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 7px rgba(0,0,0,.72))}
.slide--botanical~.site-header .monogram img{filter:drop-shadow(0 1px 2px #152b23)}
.pearl-decoration{position:absolute;z-index:-1;pointer-events:none;object-fit:contain;max-width:min(35vw,380px);max-height:35vh;filter:none}
.pearl-decoration--top{left:0;top:0;width:clamp(115px,25vw,370px);height:auto}
.pearl-decoration--bottom{right:0;bottom:0;width:clamp(120px,26vw,380px);height:auto}
.slide--green .slide__veil{z-index:-2}
.slide--green .pearl-decoration{z-index:0;opacity:1}
.slide--green .slide__content{z-index:1}
.countdown-rings{display:block;width:clamp(120px,17vw,220px);height:auto;object-fit:contain;margin:clamp(4px,1.5vh,14px) auto;filter:drop-shadow(0 8px 13px rgba(0,0,0,.27))}
.slide--green .countdown{margin:clamp(8px,2.5vh,25px) auto}
.calendar-link{position:relative;z-index:2}
@media(max-width:700px){
 .monogram{width:53px;height:56px}
 .pearl-decoration--top{width:clamp(95px,31vw,170px)}
 .pearl-decoration--bottom{width:clamp(100px,33vw,180px)}
 .slide--green .countdown{margin:12px auto}
 .countdown-rings{width:clamp(115px,30vw,175px);margin:3px auto}
}
@media(max-height:620px){.pearl-decoration{max-height:23vh}.countdown-rings{width:110px}.slide--green .countdown{margin:6px auto}}


/* Theme polish: original transparent line-work, not the old filled monogram. */
.monogram{width:clamp(48px,5vw,70px);height:auto;min-height:52px}
.monogram img{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(0,0,0,.28))}
@media(max-width:700px){.monogram{width:52px;height:auto}}

/* Preserve the original pearl PNG artwork without recoloring, fading, or
   adding synthetic shadows. The illustrations retain their native detail. */

/* Persistent, conspicuous return-to-start button on every screen. */
.home-button{
 position:fixed;z-index:90;top:clamp(14px,2.5vw,28px);right:clamp(14px,2.5vw,28px);
 display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
 padding:.55rem .9rem;border:1px solid rgba(242,223,185,.76);border-radius:999px;
 background:rgba(19,53,42,.83);color:#fff2d8;box-shadow:0 3px 15px rgba(0,0,0,.24);
 cursor:pointer;font:600 .9rem/1.2 "Cormorant Garamond",serif;
 backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.home-button:hover,.home-button:focus-visible{background:#244f3f;border-color:#fff3dc;}
.home-button svg{flex:none}
@media(max-width:600px){.home-button{padding:.6rem}.home-button span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
/* Shared background pairs (date/location and accommodation/allergies):
   render the incoming copy over the previous stationary background.
   Don't composite the same backdrop twice or flash the blur/veil. */
.story--discrete .slide.is-shared-incoming{background:transparent!important}
.story--discrete .slide.is-shared-incoming>.slide__media,
.story--discrete .slide.is-shared-incoming>.slide__veil{opacity:0!important}


/* Updated invitation appearance */
.site-header{justify-content:flex-end;mix-blend-mode:normal;z-index:85}
.site-header .monogram{display:grid;place-items:center;width:clamp(84px,9vw,125px);height:auto;min-height:74px;padding:8px 12px;border:1px solid #e6d1a9;background:rgba(22,48,36,.88);border-radius:9px;filter:none}
.site-header .monogram img{width:100%;height:auto;filter:none}
.home-button{left:clamp(14px,2.5vw,28px);right:auto;top:clamp(14px,2.5vw,28px);background:rgba(22,48,36,.85);border-radius:50%;width:49px;height:49px;padding:12px;color:#f4e7cb}
.home-button span{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important}
.music-widget{position:fixed;top:clamp(78px,11vw,137px);left:clamp(14px,2.5vw,28px);z-index:92}
.music-toggle{display:grid;place-items:center;width:49px;height:49px;border-radius:50%;border:1px solid #e6d1a9;color:#f4e7cb;background:rgba(22,48,36,.88);cursor:pointer}
.music-widget.is-muted .sound-wave{opacity:.2}
.music-panel{width:min(270px,75vw);margin-top:9px;padding:16px;display:flex;flex-direction:column;gap:10px;border:1px solid #e6d1a9;border-radius:14px;background:#1e3d31;color:#fff0d1;box-shadow:0 12px 30px #0005}
.music-panel[hidden]{display:none}
.music-panel button{border:1px solid #d9c19a;background:#f8e9c9;color:#244436;padding:8px 12px;border-radius:30px;cursor:pointer}
.music-panel input{width:100%;accent-color:#e6d1a9}.music-note{font-size:.78rem;line-height:1.4;margin:0}

.slide--green .slide__content,.slide--rsvp .slide__content{color:#f9e8c8}
.slide--rsvp,.slide--guests{background:#53643c}
.slide--rsvp .slide__veil,.slide--guests .slide__veil{background:rgba(38,61,30,.2)}
.slide__content--response{width:min(92%,860px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(15px,3vh,32px);padding:clamp(65px,9vh,95px) 0 clamp(120px,22vh,210px)}
.slide__content--response .section-title{font-size:clamp(2.7rem,7vw,6.8rem);line-height:1.05;margin:0}
.response-intro{font-size:clamp(1.5rem,3.2vw,2.9rem);line-height:1.25;max-width:800px;margin:0}
.response-choices{display:flex;flex-direction:column;gap:14px;width:min(100%,390px)}
.response-choice,.vintage-button,.stay-options__item{font-family:"Citadel Script Std","Cormorant Garamond",serif!important;font-size:clamp(1.3rem,2.3vw,2.1rem);border:1px solid #ead8b5;border-radius:999px;background:#fae9c8;color:#294332;box-shadow:0 7px 16px #0b1f1226;padding:15px 20px;text-align:center}
.response-choice{cursor:pointer;transition:background .25s,transform .25s,border-color .25s}
.response-choice[aria-pressed="true"]{background:#cdbb93;border-color:#fff5dd;outline:2px solid #fff1d4;outline-offset:3px;transform:scale(1.03)}
.response-status{min-height:1.3em;font-size:1.1rem;margin:0;color:#ffefd3}
.decorative-drawing{position:absolute;z-index:1;pointer-events:none;opacity:.85}
.decorative-drawing--calla{bottom:-15px;left:50%;transform:translateX(-50%);height:min(32vh,260px);width:auto}
.guest-count-form{display:flex;flex-direction:column;align-items:center;gap:16px}
.guest-count-form input{width:190px;padding:13px 24px;text-align:center;background:#fae9c8;color:#244333;border:1px solid #e8d1a7;border-radius:999px;font:2rem "Cormorant Garamond",serif}
.vintage-button{cursor:pointer;padding:10px 28px}
.stay-options{display:flex;flex-direction:column;gap:16px;width:min(92%,400px);margin:0 auto}
.stay-options__item{font-size:clamp(1.3rem,2.2vw,1.8rem);opacity:.8}
.food-activate{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:9px 22px;color:#ffe8be;background:transparent;border:1px solid #e9d8b5;border-radius:20px;cursor:pointer;margin:12px auto}
.food-activate svg{width:70px;height:70px}
.allergy-form{width:min(100%,470px);margin:auto;display:flex;flex-direction:column;align-items:center;gap:10px}
.allergy-form[hidden]{display:none}
.allergy-form textarea{width:100%;font:1rem Georgia,serif;padding:12px;background:#fff4db;color:#223d31;border:1px solid #d5bd8e;border-radius:12px}
.slide--final .slide__content--final{border:1px solid #f7e7ca;outline:1px solid #f7e7ca66;outline-offset:7px;background:rgba(24,47,33,.5);border-radius:3px}
.countdown-rings{filter:drop-shadow(0 3px 6px #1b302633);opacity:.83}
@media(max-width:700px){.site-header .monogram{width:85px;min-height:64px;padding:6px}.music-widget{top:87px}.slide__content--response{padding:92px 0 24vh;gap:18px}.response-intro{font-size:1.5rem}.response-choice{padding:12px 15px}.decorative-drawing--calla{height:26vh}.stay-options{gap:10px}.stay-options__item{padding:8px}}
@media(max-height:580px){.decorative-drawing{opacity:.3}.slide__content--response{padding:65px 0 70px}.response-choice{padding:7px}}


.rsvp-name{display:block;width:min(88%,370px);min-height:48px;margin:0 auto 12px;padding:10px 18px;border:1px solid #ecd6ab;border-radius:999px;background:#fff0d2;color:#22412f;text-align:center;font:1.5rem "Cormorant Garamond",serif}
#guest-count-form .rsvp-name{width:min(80vw,270px)}
#allergy-form .rsvp-name{width:100%}
.story--discrete .slide.is-shared-incoming{background:transparent!important}
.story--discrete .slide.is-shared-incoming>.slide__media,
.story--discrete .slide.is-shared-incoming>.slide__veil{opacity:0!important}


/* Brand refinements – October 2026
   Load the font supplied by the couple through the Go runtime asset route,
   not just from the viewer's installed fonts. Deployment requires
   CitadelScriptStd.otf and appropriate web-embedding rights. */
@font-face{
  font-family:"Citadel Script Std";
  src:local("Citadel Script Std"),
      url("./assets/CitadelScriptStd.otf") format("opentype");
  font-style:normal;
  font-weight:400 900;
  font-display:swap;
}
:root{
  --paper-cream:#faecc9;
  --theme-olive:#526640;
}
body,body button,body input,body select,body textarea,body a,
body .eyebrow,body .fine-print,body .intro-instruction,body .intro-bottom,
body .countdown__label,body .calendar-link,body .statement__divider,
body .response-intro,body .slide__content--information p,
body .response-choice,body .stay-options__item,body .food-activate{
  font-family:"Citadel Script Std","Cormorant Garamond",serif!important;
}
/* Match the opening slide's textured olive background and its gentle tint.
   Previously the later pages used a 70–76% dark green wash. */
.slide--intro,
.slide--green{
  background:#536545 url("./assets/green-background.jpg") center / cover no-repeat;
}
.slide--green > .slide__media{object-fit:cover;object-position:center}
.slide--green > .slide__veil,
.slide--rsvp > .slide__veil,
.slide--guests > .slide__veil{
  background:rgba(9,36,26,.23);
}
/* Decorative captions should be legible on phones, not tiny UI labels. */
.eyebrow,
.slide--botanical .eyebrow,
.slide--green .eyebrow{
  font-size:clamp(1.5rem,2.8vw,2.55rem);
  line-height:1.23;
  letter-spacing:.02em;
  font-weight:400;
  text-transform:none;
}
.fine-print,
.slide--botanical .fine-print{
  font-size:clamp(1.45rem,2.75vw,2.5rem);
  line-height:1.2;
  letter-spacing:.02em;
  font-weight:400;
  text-transform:none;
}
.slide__content--botanical{gap:clamp(10px,2.6vh,23px)}
.statement--venue .statement__divider{color:inherit;opacity:1}
/* Opening page: heading, envelope instruction and scrolling cue. */
.eyebrow--intro{font-size:clamp(1.55rem,3vw,2.65rem)}
.intro-instruction{
  font-size:clamp(1.45rem,2.55vw,2.2rem);
  letter-spacing:.015em;
  line-height:1.15;
  text-transform:none;
}
.intro-bottom{
  font-size:clamp(1.3rem,2.2vw,2.05rem);
  letter-spacing:.02em;
  text-transform:none;
  opacity:.85;
}
.intro-content{gap:clamp(14px,2.9vh,31px)}
/* Countdown units and calendar action are small but intentionally readable. */
.countdown__label{
  font-size:clamp(1.35rem,2.4vw,2.15rem);
  line-height:1.15;
  letter-spacing:.015em;
  text-transform:none;
}
.countdown__unit{gap:6px}
.calendar-link{
  font-size:clamp(1.35rem,2.4vw,2rem);
  letter-spacing:.02em;
  line-height:1.15;
  padding:10px 20px;
}
.calendar-link__icon{width:clamp(21px,2.2vw,29px);height:auto}
/* Subsequent informational pages use the scale of the RSVP introduction. */
.slide__content--information p:not(.eyebrow,.form-note),
.response-intro{
  font-size:clamp(1.5rem,3.2vw,2.9rem);
  line-height:1.3;
  font-weight:400;
}
.slide__content--information .form-note,
.response-status,
.music-note{
  font-size:clamp(1.2rem,2vw,1.65rem);
  line-height:1.25;
}
.slide__content--information .section-title{margin:10px 0 16px}
.slide__content--information .ornamental-rule{margin:0 auto 20px}
.stay-options{gap:clamp(8px,1.8vh,16px)}
.stay-options__item{font-size:clamp(1.45rem,2.5vw,2.35rem)}
/* Keep the original outlined monogram, now larger and without a badge. */
.site-header{
  justify-content:flex-end;
  align-items:flex-start;
  padding:clamp(12px,2vw,23px) clamp(15px,3vw,42px);
  mix-blend-mode:normal;
}
.site-header .monogram{
  width:clamp(118px,12vw,182px);
  height:auto;
  min-height:0;
  border:0;
  border-radius:0;
  background:transparent;
  padding:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  filter:none;
}
.site-header .monogram:hover,
.site-header .monogram:focus-visible{
  background:transparent;
  border:0;
}
.site-header .monogram img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  filter:drop-shadow(0 2px 4px rgba(12,30,18,.35));
}
@media(max-width:700px){
 .site-header .monogram{width:clamp(102px,23vw,142px);min-height:0;padding:0}
 .eyebrow,.slide--botanical .eyebrow,.slide--green .eyebrow{font-size:clamp(1.35rem,5vw,1.8rem)}
 .fine-print,.slide--botanical .fine-print{font-size:clamp(1.35rem,4.7vw,1.85rem)}
 .intro-instruction{font-size:clamp(1.32rem,4.5vw,1.85rem)}
 .intro-bottom{font-size:clamp(1.24rem,4.2vw,1.7rem)}
 .countdown__label{font-size:clamp(1.15rem,4.15vw,1.7rem)}
 .calendar-link{font-size:clamp(1.22rem,4.3vw,1.6rem)}
 .slide__content--information p:not(.eyebrow,.form-note),.response-intro{font-size:clamp(1.45rem,4.6vw,2rem)}
 .slide__content--botanical{gap:clamp(8px,2vh,15px)}
 .slide__content--information{padding:48px 15px}
 .countdown{gap:clamp(4px,1vw,12px)}
 .countdown__unit{min-width:0;flex:1}
}
@media(max-height:760px){
 .slide--green .countdown{margin:10px auto}
 .countdown-rings{width:clamp(96px,12vh,155px);margin:3px auto}
 .slide__content--green .section-title{margin:10px 0}
 .slide__content--information .section-title{margin:8px 0}
 .slide__content--information p:not(.eyebrow,.form-note){line-height:1.15}
 .intro-bottom{bottom:12px}
}

/* One scrollable household RSVP, while the invitation stays slide-based. */
.slide--rsvp-form .slide__content--response{
  width:min(92vw,820px);height:100%;max-height:100%;
  display:block;overflow-y:auto;overscroll-behavior:contain;
  padding:clamp(72px,11vh,105px) 12px 42px;
  scrollbar-width:thin;
}
.slide--rsvp-form .section-title{text-align:center;font-size:clamp(2.5rem,5vw,4.8rem)}
.slide--rsvp-form .response-intro{text-align:center;margin:12px auto 24px;font-size:clamp(1.2rem,2vw,1.8rem)}
.wedding-rsvp-form{display:grid;gap:17px;width:min(100%,640px);margin:0 auto;padding:8px 6px 36px;color:#fff0d4;text-align:left}
.wedding-rsvp-form label{display:grid;gap:6px;font-size:clamp(1.1rem,2vw,1.5rem)}
.wedding-rsvp-form input:not([type=radio]),.wedding-rsvp-form select,.wedding-rsvp-form textarea{
  width:100%;padding:11px 15px;border:1px solid #dbc8a4;border-radius:11px;
  background:#fff1d7;color:#244333;font:1.15rem Georgia,serif;
}
.wedding-rsvp-form textarea{resize:vertical;min-height:58px}
.wedding-rsvp-form fieldset{margin:4px 0;padding:18px;border:1px solid #e8d5b2;border-radius:16px;min-width:0}
.wedding-rsvp-form legend{font-size:clamp(1.2rem,2.2vw,1.7rem);padding:0 8px}
.wedding-rsvp-form .rsvp-radio{display:flex;align-items:center;gap:11px;margin:10px 0;cursor:pointer}
.wedding-rsvp-form input[type=radio]{width:19px;height:19px;flex:none;accent-color:#d9ba85}
.wedding-rsvp-form a{color:#fff1d0;text-decoration:underline;text-underline-offset:4px}
.wedding-rsvp-form .form-description,.slide--guests .form-description{font-size:clamp(1rem,1.6vw,1.3rem);line-height:1.5}
.wedding-rsvp-form .guest-fields,.wedding-rsvp-form .room-fields{display:grid;gap:14px;margin:14px 0}
.wedding-rsvp-form .guest-card,.wedding-rsvp-form .room-card{display:grid;gap:11px;padding:17px;border:1px solid #f4dfb799;border-radius:14px;background:#203c3094}
.wedding-rsvp-form h3{font-size:1.5rem;margin:0}
.wedding-rsvp-form .vintage-button{justify-self:center;padding:12px 30px}
.wedding-rsvp-form [hidden],.slide--rsvp-form [hidden]{display:none!important}
.slide--guests .decorative-drawing--calla{
  position:absolute;z-index:0;bottom:-15px;left:50%;transform:translateX(-50%);
  width:auto;height:min(37vh,330px);object-fit:contain;opacity:.9;
}
.countdown-rings{display:block;width:clamp(130px,20vw,260px);height:auto;object-fit:contain;filter:none;opacity:1}
.slide--guests .slide__content--response{padding-bottom:clamp(130px,31vh,300px)}
@media(max-width:700px){
 .slide--rsvp-form .slide__content--response{padding:90px 5px 38px}
 .wedding-rsvp-form{gap:12px}
 .slide--guests .decorative-drawing--calla{height:min(30vh,250px)}
}

/* Reading typography: keep Citadel Script for ornamental headings, but use
   Cormorant Garamond for descriptive copy and actionable form text.
   Cormorant Garamond is already loaded from Google Fonts in index.html.
   It is the same open-licensed family as the supplied font archive. */
:root{--reading-font:"Cormorant Garamond",Georgia,serif}
body .slide__content--information p:not(.eyebrow),
body .slide__content--final > p:not(.eyebrow):not(.final-signature),
body .slide--guests .form-description,
body .response-intro,
body .response-status,
body .stay-options__item,
body .wedding-rsvp-form,
body .wedding-rsvp-form label,
body .wedding-rsvp-form legend,
body .wedding-rsvp-form p,
body .wedding-rsvp-form a,
body .wedding-rsvp-form button,
body .wedding-rsvp-form input,
body .wedding-rsvp-form select,
body .wedding-rsvp-form textarea,
body .calendar-link,
body .music-panel,
body .music-panel button,
body .music-panel label,
body .intro-instruction,
body .intro-bottom,
body .countdown__label{
  font-family:var(--reading-font)!important;
}
body .slide__content--information p:not(.eyebrow),
body .slide__content--final > p:not(.eyebrow):not(.final-signature),
body .response-intro,
body .wedding-rsvp-form,
body .wedding-rsvp-form label,
body .wedding-rsvp-form legend,
body .wedding-rsvp-form p,
body .stay-options__item{
  line-height:1.45;
  letter-spacing:.005em;
}
body .wedding-rsvp-form input:not([type="radio"]),
body .wedding-rsvp-form textarea,
body .wedding-rsvp-form select{
  font-size:clamp(1.15rem,1.65vw,1.35rem);
  line-height:1.35;
}
body .wedding-rsvp-form .guest-card h3,
body .wedding-rsvp-form .room-card h3{
  font-family:"Citadel Script Std","Cormorant Garamond",serif;
}
body .stay-options__item{
  font-size:clamp(1.3rem,2vw,1.8rem);
  font-weight:500;
  opacity:1;
}
body .wedding-rsvp-form .vintage-button{font-size:clamp(1.4rem,2.2vw,1.8rem)}

/* October 2026: fit information pages in shorter and landscape viewports.
   Content is always accessible: compact typography and spacing first,
   then a contained vertical scrollbar instead of clipping off hotel buttons. */
.story--discrete .slide--information,
.story--discrete .slide--rsvp-form{
  touch-action:pan-y pinch-zoom;
}
.slide--information .slide__content--information{
  box-sizing:border-box;
  width:min(90vw,860px);
  max-width:860px;
  height:100%;
  max-height:100%;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  touch-action:pan-y pinch-zoom;
  scrollbar-width:thin;
  scrollbar-color:rgba(246,228,194,.6) transparent;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:safe center;
  padding:clamp(34px,6.5dvh,82px) clamp(16px,3vw,28px) clamp(28px,5dvh,62px);
}
.slide--information .slide__content--information .section-title{
  flex:none;
  font-size:clamp(2.65rem,5.5vw,5.1rem);
  line-height:1.05;
  margin:0 0 clamp(5px,1.2dvh,12px);
}
.slide--information .slide__content--information .ornamental-rule{
  flex:none;
  margin:0 auto clamp(10px,2dvh,22px);
}
body .slide--information .slide__content--information p:not(.eyebrow){
  flex:none;
  width:min(100%,700px);
  font-size:clamp(1.14rem,1.9vw,1.65rem);
  line-height:1.3;
  margin:0 auto clamp(12px,2.2dvh,23px);
}
.slide--information .slide__content--information .eyebrow{
  flex:none;
  font-size:clamp(1.2rem,2.3vw,1.8rem);
  margin:0 auto 4px;
}
.slide--information .stay-options{
  flex:none;
  display:flex;
  flex-direction:column;
  gap:clamp(7px,1dvh,12px);
  width:min(100%,380px);
  margin:0 auto clamp(10px,2dvh,22px);
}
body .slide--information .stay-options__item{
  display:block;
  width:100%;
  padding:clamp(8px,1.1dvh,12px) 15px;
  border-radius:22px;
  font-size:clamp(1.1rem,1.7vw,1.48rem);
  line-height:1.16;
  font-weight:500;
  overflow-wrap:break-word;
  text-wrap:pretty;
}
.slide--rsvp-form .slide__content--response{
  touch-action:pan-y pinch-zoom;
  overscroll-behavior-y:contain;
}

/* Put the explanatory copy and accommodation choices side by side on
   reasonably wide landscape displays, while retaining a compact stacked
   layout on phones and narrow tablets. */
@media (min-width:1000px) and (max-height:880px){
  #slide-12 .slide__content--information{
    width:min(91vw,1010px);
    max-width:1010px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(245px,.75fr);
    grid-template-rows:auto auto auto auto;
    align-content:safe center;
    align-items:center;
    justify-items:center;
    column-gap:clamp(20px,4vw,54px);
    padding-block:clamp(28px,4.5dvh,57px);
  }
  #slide-12 .section-title,
  #slide-12 .ornamental-rule{grid-column:1/-1}
  #slide-12 .section-title{grid-row:1}
  #slide-12 .ornamental-rule{grid-row:2}
  #slide-12 .slide__content--information>p:first-of-type{
    grid-column:1;grid-row:3;
  }
  #slide-12 .slide__content--information>p:last-of-type{
    grid-column:1;grid-row:4;
  }
  #slide-12 .stay-options{
    grid-column:2;grid-row:3/span 2;
    width:100%;
  }
}
@media(max-height:650px){
  .slide--information .slide__content--information{
    padding-block:clamp(18px,4dvh,33px);
  }
  .slide--information .slide__content--information .section-title{
    font-size:clamp(2.3rem,5vh,3.5rem);
    margin-bottom:4px;
  }
  .slide--information .slide__content--information .ornamental-rule{
    margin-bottom:8px;
  }
  body .slide--information .slide__content--information p:not(.eyebrow){
    font-size:clamp(1.02rem,2.3vh,1.38rem);
    line-height:1.22;
    margin-bottom:9px;
  }
  .slide--information .stay-options{
    gap:5px;margin-bottom:8px;
  }
  body .slide--information .stay-options__item{
    padding:7px 11px;
    font-size:clamp(1.03rem,2.4vh,1.28rem);
  }
  .slide--information .slide__content--information .eyebrow{
    font-size:clamp(1.1rem,2.5vh,1.4rem);
  }
}
@media(max-width:700px){
  .slide--information .slide__content--information{width:94vw;padding-inline:12px}
  .slide--information .slide__content--information .section-title{
    font-size:clamp(2.5rem,9vw,4rem);
  }
  body .slide--information .slide__content--information p:not(.eyebrow){
    font-size:clamp(1.12rem,4.1vw,1.44rem);
    line-height:1.27;
  }
  .slide--information .stay-options{width:min(100%,350px)}
}
