/* 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(3rem, 5.8vw, 6.1rem)/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 .hero-content .mantra {
  color: var(--invite-ink);
  font: 500 20px/1.5 'Noto Serif Devanagari', serif;
  text-transform: none;
  letter-spacing: .025em;
  margin-bottom: 26px;
}
.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: 24px;
  font-weight: 600;
  font-size: 12px;
  text-shadow: 0 1px 5px #17383d;
}
.wedding-invitation .chapter-copy[data-tone='stone']::before {
  background: linear-gradient(0deg, #3b1820a6 0%, #5428308f 24%, #713d4247 48%, transparent 75%);
}
.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.3rem, 4.5vw, 4.6rem);
}
.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.4rem, 4.8vw, 5.1rem);
}
.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-copy[data-tone='arch']::before {
  background: linear-gradient(0deg, #0b2729b3 0%, #0b272980 22%, #0b27294d 44%, #0b27291a 65%, transparent 82%);
}
.wedding-invitation .chapter-copy[data-tone='teal']::before {
  background: linear-gradient(0deg, #0b2729a6 0%, #0b272973 28%, #0b272940 52%, #0b272914 72%, transparent 86%);
}
.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.4rem, 4.8vw, 5.1rem);
}
.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 28%, #713d4247 52%, transparent 85%);
}
.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); }
.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 .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.75rem, 10.8vw, 4rem); }
  .wedding-invitation .chapter-copy[data-tone='stone'] .eyebrow { font-size: 14px; }
  .wedding-invitation .chapter-copy[data-tone='stone'] h2 { font-size: clamp(2.15rem, 8.5vw, 3rem); }
  .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.35rem, 9vw, 3.35rem); }
  .wedding-invitation .chapter-copy[data-tone='window'] h2 { font-size: clamp(2.35rem, 9vw, 3.35rem); }
  .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; }
  .wedding-invitation .hero-content .mantra { font-size: 17px; margin-bottom: 22px; }
  .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.5rem; }
  .wedding-invitation .hero-content .mantra { margin-bottom: 8px; }
  .wedding-invitation .chapter-copy .eyebrow { margin-bottom: 10px; }
  .invitation-rule { margin: 12px auto; }
  .wedding-invitation .hero-scroll { display: none; }
  .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 .invitation-events {
  width: min(960px, 100%);
  gap: clamp(15px, 2.3svh, 24px);
  margin: 0 auto;
}
.wedding-invitation .invitation-schedule {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 0;
}
.wedding-invitation .invitation-event {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 15px 12px 16px;
  text-shadow: 0 1px 8px #071517aa;
}
.wedding-invitation .invitation-event + .invitation-event {
  border-left: 1px solid #fff6e54d;
}
.wedding-invitation .invitation-event-date {
  color: var(--invite-gold);
  font: 700 24px/1.35 var(--sans);
  letter-spacing: .15em;
  text-transform: uppercase;
}
.wedding-invitation .invitation-event h3 {
  color: var(--invite-ivory);
  font: 600 clamp(1.4rem, 2.3vw, 1.9rem)/1.25 var(--serif);
}
.wedding-invitation .invitation-event p {
  color: #fff6e5e6;
  font: 600 clamp(1rem, 1.3vw, 1.15rem)/1.45 var(--sans);
  letter-spacing: .015em;
  white-space: nowrap;
}
.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.5rem; }
  .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: 14px; }
  .wedding-invitation .invitation-schedule { grid-template-columns: 1fr; }
  .wedding-invitation .invitation-event {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "date date" "name time";
    align-items: baseline;
    gap: 3px 12px;
    padding: 9px 3px;
  }
  .wedding-invitation .invitation-event + .invitation-event {
    border-left: 0;
    border-top: 1px solid #fff6e54d;
  }
  .wedding-invitation .invitation-event-date { grid-area: date; font-size: 20px; line-height: 1.35; font-weight: 700; }
  .wedding-invitation .invitation-event h3 { grid-area: name; justify-self: start; font-size: 1.45rem; }
  .wedding-invitation .invitation-event p { grid-area: time; font-size: .98rem; font-weight: 600; }
  .wedding-invitation .film-events .invitation-venue { font-size: .95rem; }
}
.wedding-invitation .film-events p:first-child span {
  font: 500 10px/1.6 var(--sans);
  letter-spacing: .2em;
}
