/* Wedding typography. Scene positions stay independent of the frame player. */
.wedding-invitation {
  --invite-ivory: #fff6e5;
  --invite-gold: #e5c99a;
  --invite-ink: #17383d;
}
.wedding-invitation .film-region::after { background: none; }
.wedding-invitation .chapter-copy[data-start] {
  --copy-color: var(--invite-ivory);
  --accent-color: var(--invite-gold);
  color: var(--copy-color);
  padding: 9svh clamp(28px, 6vw, 96px) 10svh;
  justify-content: flex-end;
  gap: 0;
}
.wedding-invitation .chapter-copy::before {
  background: linear-gradient(0deg, #111b1c26 0%, #111b1c1a 24%, #111b1c0a 48%, transparent 75%);
}
.wedding-invitation .chapter-copy h2 {
  max-width: 15em;
  color: var(--copy-color);
  font: 500 clamp(2.7rem, 5.2vw, 5.5rem)/1.04 var(--serif);
  letter-spacing: -.025em;
  text-wrap: balance;
  text-shadow: 0 2px 18px #07151755;
}
.wedding-invitation .chapter-copy h2 em {
  color: var(--accent-color);
  font-weight: 400;
}
.wedding-invitation .chapter-copy .eyebrow,
.wedding-invitation .invitation-kicker {
  color: var(--accent-color);
  font: 600 13px/1.6 var(--sans);
  letter-spacing: .24em;
  text-transform: uppercase;
  margin: 0 0 22px;
  text-shadow: none;
}
.wedding-invitation .chapter-copy .copy-note {
  max-width: 31em;
  color: var(--copy-color);
  font: 400 clamp(1.2rem, 1.85vw, 1.55rem)/1.5 var(--serif);
  margin: 0;
  text-wrap: balance;
  text-shadow: 0 1px 8px #07151766;
}
.invitation-rule {
  flex: 0 0 auto;
  width: 72px;
  height: 1px;
  margin: 23px auto;
  background: linear-gradient(90deg, transparent, var(--accent-color), transparent);
}
.wedding-invitation .chapter-copy[data-tone='sky'] {
  --copy-color: var(--invite-ink);
  --accent-color: #354e50;
  justify-content: flex-start;
  padding-top: clamp(100px, 18svh, 210px);
}
.wedding-invitation .chapter-copy[data-tone='sky']::before {
  background: none;
}
.wedding-invitation .hero-depth { position: absolute; inset: 0; padding: inherit; width: auto; }
.wedding-invitation .hero-content { max-width: 860px; }
.wedding-invitation .chapter-copy[data-tone='sky'] .hero-content {
  text-shadow: 0 2px 10px #102d351f;
}
.wedding-invitation .chapter-copy[data-tone='sky'] .invitation-kicker,
.wedding-invitation .chapter-copy[data-tone='sky'] .invitation-subtitle,
.wedding-invitation .chapter-copy[data-tone='sky'] .invitation-meta {
  text-shadow: 0 1px 7px #102d351f;
}
.wedding-invitation .invitation-kicker { color: var(--invite-ink); font-weight: 600; font-size: 14px; margin-bottom: 12px; }
.wedding-invitation .chapter-copy h1.hero-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 0;
  color: var(--invite-ink);
  font: 500 clamp(3rem, 6.8vw, 6.8rem)/1.05 var(--serif);
  letter-spacing: -.04em;
  text-shadow: none;
}
.wedding-invitation h1.hero-heading .partner-name {
  display: block;
  flex-basis: 100%;
}
.wedding-invitation h1.hero-heading .wedding-amp {
  display: block;
  flex-basis: 100%;
  color: #496062;
  font-size: .62em;
  font-weight: 400;
  margin: 0;
}
.wedding-invitation .invitation-subtitle {
  color: var(--invite-ink);
  font: italic 500 clamp(1.4rem, 2.4vw, 2rem)/1.5 var(--serif);
}
.wedding-invitation .invitation-meta {
  margin-top: 22px;
  color: var(--invite-ink);
  font: 700 16px/1.6 var(--sans);
  letter-spacing: .18em;
  text-transform: uppercase;
}
.wedding-invitation .hero-scroll {
  color: var(--invite-ivory);
  bottom: max(200px, calc(env(safe-area-inset-bottom) + 188px));
  font-weight: 600;
  font-size: 12px;
  text-shadow: 0 1px 5px #17383d;
}
.wedding-invitation .start-invitation {
  pointer-events: auto;
  bottom: max(200px, calc(env(safe-area-inset-bottom) + 188px));
  left: 50%;
  right: auto;
  width: max-content;
  min-width: 156px;
  max-width: calc(100% - 32px);
  height: 36px;
  min-height: 36px;
  padding: 4px 18px;
  display: grid;
  place-items: center;
  border: 1px solid #17383d70;
  border-radius: 999px;
  background: #fff6e547;
  color: var(--invite-ink);
  text-shadow: none;
  font: 600 12px/1 var(--sans);
  text-align: center;
  letter-spacing: .13em;
  box-shadow: 0 4px 14px #17383d18;
  animation: invitation-start-pulse 2.6s ease-in-out infinite;
}
.wedding-invitation .start-invitation:disabled { opacity: .55; cursor: wait; }
.wedding-invitation .start-invitation .hero-scroll-arrow::before {
  border-color: var(--invite-ink);
}
.wedding-invitation .unfold-cue {
  position: absolute;
  z-index: 5;
  left: 50%;
  right: auto;
  bottom: max(12px, env(safe-area-inset-bottom));
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 6px 10px;
  border: 0;
  background: transparent;
  color: var(--invite-ivory);
  font: 500 10px/1 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  text-shadow: 0 1px 5px #17383d;
  transform: translateX(-50%);
}
.wedding-invitation .unfold-arrow {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid #e5c99a88;
  border-radius: 50%;
  background: #17383d35;
  color: var(--invite-gold);
  font: 400 19px/1 var(--sans);
  text-shadow: none;
}
@keyframes invitation-start-pulse {
  0%, 100% { transform: translateX(-50%) scale(1); box-shadow: 0 4px 14px #17383d18; }
  50% { transform: translateX(-50%) scale(1.015); box-shadow: 0 6px 18px #b98b4e30; }
}
.wedding-invitation .chapter-copy[data-tone='stone']::before {
  background: linear-gradient(0deg, #3b18208c 0%, #54283073 22%, #713d423d 42%, #713d4214 56%, transparent 68%);
}
.wedding-invitation .chapter-copy[data-tone='stone'] .eyebrow {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .2em;
}
.wedding-invitation .chapter-copy[data-tone='stone'] h2 {
  font-size: clamp(2.05rem, 4vw, 4.15rem);
}
.wedding-invitation .chapter-copy[data-tone='stone'] .invitation-rule {
  background: linear-gradient(90deg, transparent, #ead2ad, transparent);
}
.wedding-invitation .chapter-copy[data-tone='arch'] {
  justify-content: flex-end;
  padding-bottom: 10svh;
}
.wedding-invitation .chapter-copy[data-tone='arch'] h2,
.wedding-invitation .chapter-copy[data-tone='teal'] h2,
.wedding-invitation .chapter-copy[data-tone='closing'] h2 {
  color: var(--accent-color);
  font-size: clamp(2.15rem, 4.3vw, 4.6rem);
}
.wedding-invitation .chapter-copy[data-tone='arch'] h2 em { color: var(--copy-color); }
.wedding-invitation .chapter-copy[data-tone='arch'] .event-heading {
  margin: 0;
  color: var(--invite-gold);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .16em;
}
.wedding-invitation .chapter-copy[data-tone='teal'] .event-heading {
  margin: 0;
  color: var(--invite-gold);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .16em;
}
.wedding-invitation .chapter-event-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: min(920px, 100%);
  margin-top: 4px;
}
.wedding-invitation .chapter-event {
  min-width: 0;
  padding: 5px 14px 0;
  text-shadow: 0 1px 8px #071517aa;
}
.wedding-invitation .event-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 auto 11px;
  color: var(--invite-gold);
  font: 400 17px/1 var(--serif);
}
.wedding-invitation .event-divider::before,
.wedding-invitation .event-divider::after {
  content: "";
  width: 42px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #e5c99ac7);
}
.wedding-invitation .event-divider::after { transform: scaleX(-1); }
.wedding-invitation .event-divider span {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  margin: 0;
  border: 1px solid #e5c99a99;
  border-radius: 50%;
  background: #17383d80;
  color: var(--invite-gold);
  font: 400 13px/1 var(--serif);
}
.wedding-invitation .chapter-event .event-heading { margin-bottom: 8px; }
.wedding-invitation .chapter-event-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}
.wedding-invitation .chapter-event-list { display: grid; gap: 2px; }
.wedding-invitation .event-time-separator {
  justify-self: center;
  color: var(--invite-gold);
  font: 400 10px/1 var(--serif);
  text-shadow: 0 0 9px #e5c99a80;
}
.wedding-invitation .chapter-event .event-heading,
.wedding-invitation .chapter-event-venue { text-align: center; }
.wedding-invitation .chapter-event h3 {
  min-width: 0;
  margin: 0;
  color: var(--invite-ivory);
  font: 600 clamp(1.35rem, 2.35vw, 1.9rem)/1.12 var(--serif);
  text-align: right;
}
.wedding-invitation .chapter-event .chapter-event-time {
  margin: 0;
  color: var(--invite-gold);
  font: 600 clamp(.95rem, 1.25vw, 1.08rem)/1.3 var(--sans);
  text-align: left;
}
.wedding-invitation .chapter-event .chapter-event-venue {
  margin: 5px 0 0;
  color: #fff6e5e6;
  font: 400 clamp(.85rem, 1.1vw, .98rem)/1.35 var(--sans);
}
.wedding-invitation .chapter-copy[data-tone='arch']::before {
  background: linear-gradient(0deg, #0b2729c2 0%, #0b272999 22%, #0b27295c 44%, #0b272920 65%, transparent 92%);
}
.wedding-invitation .chapter-copy[data-tone='teal']::before {
  background: linear-gradient(0deg, #0b2729b5 0%, #0b272982 28%, #0b27294d 52%, #0b27291f 72%, transparent 94%);
}
.wedding-invitation .chapter-copy[data-tone='teal'] h2 { color: var(--accent-color); }
.wedding-invitation .chapter-copy[data-tone='teal'] h2 em { color: var(--copy-color); }
.wedding-invitation .chapter-copy[data-tone='window']::before {
  background: linear-gradient(0deg, #3b1820a6 0%, #5428308f 24%, #713d4247 48%, transparent 75%);
}
.wedding-invitation .chapter-copy[data-tone='window'] h2 {
  color: var(--accent-color);
  font-size: clamp(2.15rem, 4.3vw, 4.6rem);
}
.wedding-invitation .chapter-copy[data-tone='window'] h2 em { color: var(--copy-color); }
.wedding-invitation .chapter-copy[data-tone='window'] > .eyebrow {
  font-size: 15px;
  font-weight: 700;
}
.wedding-invitation .chapter-copy[data-tone='closing']::before {
  background: linear-gradient(0deg, #3b1820a6 0%, #5428308f 24%, #713d4247 48%, transparent 75%);
}
.wedding-invitation .chapter-copy[data-tone='closing'] h2 { line-height: 1; }
.wedding-invitation .chapter-copy[data-tone='closing'] .invitation-rule { margin-block: 14px; }
.wedding-invitation .chapter-copy[data-tone='closing'] .copy-note { line-height: 1.35; }
.wedding-details-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 46px;
  margin-top: 13px;
  padding: 0 23px;
  border: 1px solid #f1d38f;
  border-radius: 999px;
  background: linear-gradient(135deg, #f3d99c, #d3a84e);
  color: #17383d;
  font: 600 11px/1 var(--sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 180ms ease, transform 180ms ease;
}
.wedding-details-cta:hover { background: linear-gradient(135deg, #ffedbd, #e0b85c); transform: translateY(-2px); }
.wedding-details-cta:focus-visible { outline: 2px solid #f3d99c; outline-offset: 4px; }
.wedding-details-cta span { color: #17383d; font-size: 16px; }
.wedding-invitation .chapter-copy[data-tone='closing'] .invitation-signature { margin-top: 16px; line-height: 1.2; }
.wedding-details-page {
  position: fixed;
  z-index: 60;
  inset: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: max(20px, env(safe-area-inset-top)) clamp(20px, 6vw, 88px) max(28px, env(safe-area-inset-bottom));
  background: radial-gradient(ellipse at 50% 0%, #fff9ec 0%, #f4eddf 50%, #e9dfcd 100%);
  color: #17383d;
}
.details-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: min(1100px, 100%);
  margin: 0 auto;
  min-height: 48px;
}
.details-page-mark { font: italic 500 1rem/1 var(--serif); letter-spacing: .02em; }
.details-page-mark span { color: #b4853e; }
.details-page-close {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  border: 0;
  padding: 0 2px;
  background: transparent;
  color: #315254;
  font: 600 10px/1 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.details-page-close span { color: #b4853e; font-size: 20px; }
.details-page-content { width: min(1000px, 100%); margin: clamp(30px, 6vh, 66px) auto 0; text-align: center; }
.details-page-kicker { color: #9a7137; font: 600 10px/1.5 var(--sans); letter-spacing: .22em; text-transform: uppercase; }
.details-page-content > h1 { margin-top: 10px; color: #17383d; font: 500 clamp(3rem, 7vw, 5.6rem)/.98 var(--serif); letter-spacing: -.035em; }
.details-page-content > h1 em { color: #ad7b32; font-weight: 400; }
.details-page-intro { margin: 13px auto 0; color: #526768; font: italic 400 clamp(1.1rem, 2vw, 1.35rem)/1.5 var(--serif); }
.details-page-events { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: clamp(26px, 4.5vh, 46px); text-align: left; }
.details-page-event {
  display: grid;
  grid-template-columns: minmax(108px, .38fr) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  min-height: 128px;
  padding: 19px 20px;
  border: 1px solid #c9b894;
  background: #fffaf0b8;
  box-shadow: 0 8px 24px #4a37200a;
}
.details-page-date { color: #9a7137; font: 600 11px/1.45 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.details-page-date span { display: block; margin-top: 5px; color: #6c7a76; font-size: 9px; letter-spacing: .12em; }
.details-page-event-content { min-width: 0; }
.details-page-event-line { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding-bottom: 5px; }
.details-page-event-line + .details-page-event-line { padding-top: 4px; }
.details-page-event-line h2 { color: #17383d; font: 600 clamp(1.1rem, 2vw, 1.45rem)/1.15 var(--serif); }
.details-page-event-line p { flex: 0 0 auto; color: #8f682f; font: 600 10px/1.3 var(--sans); }
.details-page-venue { margin-top: 4px; color: #64716c; font: 400 10px/1.5 var(--sans); }
.details-page-closing { margin-top: 25px; color: #526768; font: italic 400 1.2rem/1.3 var(--serif); }
.wedding-invitation .film-events { gap: 18px; margin: 0; }
.wedding-invitation .film-events p {
  color: var(--invite-ivory);
  font: 500 clamp(1.45rem, 2.5vw, 1.95rem)/1.4 var(--serif);
  text-shadow: none;
}
.wedding-invitation .film-events span {
  color: var(--invite-gold);
  font: 500 10px/1.6 var(--sans);
  letter-spacing: .2em;
  margin-bottom: 5px;
}
.wedding-invitation .film-events .venue-city { margin: 6px 0 0; }
.invitation-signature { margin-top: 22px; font: italic 400 1.75rem/1.3 var(--serif); }
.invitation-signature span { color: var(--invite-gold); }
.invitation-brand {
  position: absolute;
  right: max(24px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
  width: clamp(64px, 6vw, 80px);
  aspect-ratio: 1017 / 684;
  overflow: hidden;
}
/* Frame the artwork inside the supplied logo's transparent square canvas. */
.invitation-brand-logo {
  position: absolute;
  width: 148.68%;
  aspect-ratio: 1;
  left: -23.8%;
  top: -51.32%;
  background: var(--invite-gold);
  -webkit-mask: url('public/assets/riwaaz-logo.png') center / contain no-repeat;
  mask: url('public/assets/riwaaz-logo.png') center / contain no-repeat;
}
.wedding-invitation .chapter-caption,
.wedding-invitation .scroll-cue,
.wedding-invitation .chapter-nav span { display: none; }
.wedding-invitation .chapter-nav { right: 12px; }
.wedding-invitation .chapter-nav button { min-height: 32px; min-width: 24px; }
.wedding-invitation .chapter-nav i { background: #fff6e580; box-shadow: 0 0 3px #17383d; }
.wedding-invitation .media-status:empty { display: none; }
.wedding-invitation .progress { opacity: .65; }
@media (max-width: 699px) {
  .wedding-invitation .chapter-copy[data-start] { padding: 80px 30px 9svh; }
  .wedding-invitation .chapter-copy[data-tone='sky'] { padding-top: 16svh; }
  .wedding-invitation .start-invitation { bottom: max(150px, calc(env(safe-area-inset-bottom) + 138px)); }
  .wedding-invitation .chapter-copy h1.hero-heading { flex-direction: column; align-items: center; font-size: clamp(2.1rem, 10.2vw, 4.2rem); gap: 0; }
  .wedding-invitation h1.hero-heading .wedding-amp { line-height: .9; font-size: .52em; margin: 5px 0; }
  .wedding-invitation .chapter-copy h2 { font-size: clamp(2.45rem, 9.6vw, 3.6rem); }
  .wedding-invitation .chapter-copy[data-tone='stone'] .eyebrow { font-size: 14px; }
  .wedding-invitation .chapter-copy[data-tone='stone'] h2 { font-size: clamp(1.9rem, 7.6vw, 2.7rem); }
  .wedding-invitation .chapter-copy[data-tone='arch'] .event-heading { font-size: 14px; }
  .wedding-invitation .chapter-copy[data-tone='teal'] .event-heading { font-size: 14px; }
  .wedding-invitation .chapter-copy[data-tone='arch'] h2,
  .wedding-invitation .chapter-copy[data-tone='teal'] h2,
  .wedding-invitation .chapter-copy[data-tone='closing'] h2 { font-size: clamp(2.1rem, 8.1vw, 3rem); }
  .wedding-invitation .chapter-copy[data-tone='window'] h2 { font-size: clamp(2.1rem, 8.1vw, 3rem); }
  .wedding-invitation .chapter-copy[data-tone='window'] > .eyebrow { font-size: 13px; }
  .wedding-invitation .chapter-copy .eyebrow,
  .wedding-invitation .invitation-kicker { font-size: 11px; font-weight: 600; letter-spacing: .18em; margin-bottom: 18px; }
  .wedding-invitation .chapter-copy .copy-note { font-size: 1.25rem; }
  .invitation-rule { margin: 18px auto; width: 56px; }
  .wedding-invitation .invitation-meta { font-size: 14px; }
  .wedding-invitation .invitation-kicker { font-size: 12px; }
}
@media (max-height: 600px) and (orientation: landscape) {
  .wedding-invitation .chapter-copy[data-start] { justify-content: center; padding: 48px 64px 24px; }
  .wedding-invitation .chapter-copy h1.hero-heading { flex-direction: column; font-size: clamp(1.8rem, 5vw, 3.5rem); }
  .wedding-invitation .chapter-copy h2 { font-size: 2.25rem; }
  .wedding-invitation .chapter-copy .eyebrow { margin-bottom: 10px; }
  .invitation-rule { margin: 12px auto; }
  .wedding-invitation .hero-scroll { bottom: 8px; }
  .invitation-brand { width: 56px; }
  .wedding-invitation .film-events { gap: 8px; }
}
.wedding-invitation .event-time {
  display: inline-block;
  margin-top: 18px;
  color: var(--invite-gold);
  font: 700 13px/1.6 var(--sans);
  letter-spacing: .15em;
  text-transform: uppercase;
}
.wedding-invitation .film-events .invitation-venue {
  font: italic 400 1.1rem/1.4 var(--serif);
  margin-top: 3px;
}
.wedding-invitation .chapter-copy[data-tone='window'] { padding-bottom: 9svh; }
.wedding-invitation .chapter-copy[data-tone='window'] .invitation-rule { margin-block: 12px; }
.wedding-invitation .invitation-events {
  width: min(960px, 100%);
  gap: 8px;
  margin: 0 auto;
}
.wedding-invitation .invitation-schedule {
  display: grid;
  grid-template-columns: 1fr;
}
.wedding-invitation .invitation-event {
  display: grid;
  grid-template-columns: minmax(132px, .55fr) minmax(0, 1fr);
  grid-template-areas: "date content";
  align-items: center;
  gap: 2px 18px;
  padding: 9px 12px;
  border-top: 1px solid #fff6e550;
  text-shadow: 0 1px 8px #071517aa;
}
.wedding-invitation .invitation-event-date {
  grid-area: date;
  align-self: stretch;
  display: grid;
  place-content: center start;
  padding-right: 12px;
  padding-left: 8px;
  border-right: 1px solid #e5c99a66;
  text-align: left;
}
.wedding-invitation .invitation-event-content {
  grid-area: content;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 3px;
  min-width: 0;
}
.wedding-invitation .invitation-event-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(100px, .55fr);
  align-items: baseline;
  gap: 8px;
}
.wedding-invitation .invitation-event .event-venue { white-space: normal; font-size: .92rem; text-align: left; }
.wedding-invitation .film-events .invitation-event-date {
  color: var(--invite-gold);
  font: 600 clamp(11px, 1.1vw, 14px)/1.35 var(--sans);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.wedding-invitation .invitation-event-detail h3 {
  color: var(--invite-ivory);
  font: 600 clamp(1.17rem, 1.9vw, 1.58rem)/1.2 var(--serif);
  text-align: left;
}
.wedding-invitation .invitation-event-detail p {
  color: #fff6e5e6;
  font: 500 clamp(.9rem, 1.15vw, 1.02rem)/1.35 var(--sans);
  letter-spacing: .015em;
  white-space: normal;
  text-align: left;
}
.wedding-invitation .film-events .invitation-venue {
  color: var(--invite-ivory);
  font: italic 400 1rem/1.4 var(--serif);
  letter-spacing: .025em;
}
.wedding-invitation .invitation-venue span { display: inline; color: var(--invite-gold); margin-inline: .25em; }
@media (max-height: 600px) and (orientation: landscape) {
  .wedding-invitation .chapter-copy[data-tone='window'] h2 { font-size: 2.25rem; }
  .wedding-invitation .chapter-copy[data-tone='window'] { padding: 37px 50px 13px; }
  .wedding-invitation .chapter-copy[data-tone='window'] .film-events { gap: 10px; }
  .wedding-invitation .invitation-event { padding-block: 8px; }
  .wedding-invitation .film-events .invitation-venue { grid-column: 1 / -1; }
}
@media (max-width: 699px) {
  .wedding-invitation .chapter-copy[data-tone='window'] { padding-bottom: 5svh; }
  .wedding-invitation .invitation-events { gap: 8px; }
  .wedding-invitation .invitation-schedule { grid-template-columns: 1fr; }
  .wedding-invitation .invitation-event {
    grid-template-columns: minmax(82px, .34fr) minmax(0, 1fr);
    gap: 1px 10px;
    padding: 6px 2px;
  }
  .wedding-invitation .invitation-event-date { padding-right: 8px; }
  .wedding-invitation .film-events .invitation-event-date { font-size: 10px; letter-spacing: .06em; }
  .wedding-invitation .invitation-event-detail { grid-template-columns: minmax(0, 1fr) minmax(78px, .55fr); gap: 6px; }
  .wedding-invitation .invitation-event-detail h3 { font-size: clamp(.86rem, 3.6vw, 1.08rem); line-height: 1.12; }
  .wedding-invitation .invitation-event-detail p { font-size: clamp(.72rem, 2.8vw, .84rem); line-height: 1.25; font-weight: 500; }
  .wedding-invitation .invitation-event .event-venue { font-size: clamp(.7rem, 2.7vw, .8rem); }
  .wedding-invitation .chapter-event-pair { grid-template-columns: 1fr; gap: 10px; }
  .wedding-invitation .chapter-event { padding: 6px 3px 0; }
  .wedding-invitation .event-divider { gap: 7px; margin-bottom: 6px; }
  .wedding-invitation .event-divider::before,
  .wedding-invitation .event-divider::after { width: 26px; }
  .wedding-invitation .chapter-event .event-heading { font-size: 10px; margin-bottom: 4px; }
  .wedding-invitation .chapter-event-main { grid-template-columns: minmax(0, 1fr) 13px minmax(0, 1fr); gap: 5px; }
  .wedding-invitation .chapter-event h3 { font-size: clamp(1.1rem, 4.2vw, 1.35rem); }
  .wedding-invitation .chapter-event .chapter-event-time { font-size: .82rem; }
  .wedding-invitation .chapter-event .chapter-event-venue { font-size: .82rem; margin-top: 3px; }
}
.wedding-invitation .film-events p:first-child span {
  font: 500 10px/1.6 var(--sans);
  letter-spacing: .2em;
}
@media (orientation: portrait), (min-height: 601px) {
  .wedding-invitation .chapter-copy[data-tone='closing'] {
    padding-bottom: max(74px, calc(11svh - 16px));
  }
}
@media (max-width: 699px) {
  .wedding-details-page { padding-inline: 18px; }
  .details-page-content { margin-top: 25px; }
  .details-page-intro { max-width: 28em; }
  .details-page-events { grid-template-columns: 1fr; gap: 9px; margin-top: 24px; }
  .details-page-event { grid-template-columns: minmax(92px, .33fr) minmax(0, 1fr); gap: 10px; min-height: 0; padding: 14px 13px; }
  .details-page-date { font-size: 10px; }
  .details-page-event-line h2 { font-size: clamp(1.05rem, 4.6vw, 1.25rem); }
  .details-page-event-line p { font-size: 9px; }
  .details-page-venue { font-size: 9px; }
}
@media (max-height: 540px) and (orientation: landscape) {
  .details-page-content { margin-top: 14px; }
  .details-page-events { gap: 8px; margin-top: 18px; }
  .details-page-event { min-height: 0; padding: 12px 14px; }
  .details-page-closing { margin-top: 14px; }
}
