/* Midnight Jharokha Folio — production presentation layer. */

html.professional-theme {
  --pro-night: #071329;
  --pro-lapis: #123869;
  --pro-gold: #c9a35d;
  --pro-gold-pale: #efd59c;
  --pro-ivory: #fff8ea;
  --pro-paper: #ebd8cc;
  --pro-rose: #8b3045;
  --pro-emerald: #185c4b;
  --pro-ink: #281b1a;
  --pro-muted: #735f59;
  --pro-line: rgba(139, 48, 69, .2);
  --pro-shadow: 0 24px 70px rgba(17, 9, 18, .22);
  --pro-reveal-duration: 820ms;
  --pro-reveal-stagger: 70ms;
  color-scheme: light;
  background: #030917;
}

html.professional-theme body {
  min-width: 0;
  overflow-x: clip;
  background:
    radial-gradient(circle at 50% -15%, rgba(36, 77, 130, .68), rgba(7, 19, 41, 0) 42rem),
    linear-gradient(90deg, #020613, #0a1730 50%, #020613);
  color: var(--pro-ink);
  font-family: Manrope, "Noto Serif Gujarati", sans-serif;
}

html.professional-theme body::before,
html.professional-theme body::after {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: -1;
  width: max(0px, calc((100vw - 760px) / 2));
  content: "";
  background:
    linear-gradient(90deg, rgba(0, 0, 0, .72), transparent),
    repeating-linear-gradient(90deg, rgba(201, 163, 93, .08) 0 1px, transparent 1px 42px);
  pointer-events: none;
}

html.professional-theme body::after {
  right: 0;
  left: auto;
  transform: scaleX(-1);
}

html.professional-theme main,
html.professional-theme #main-content {
  position: relative;
  z-index: 1;
  width: min(100%, 760px);
  margin-inline: auto;
  overflow: clip;
  background: var(--pro-ivory);
  box-shadow: 0 0 90px rgba(0, 0, 0, .48);
}

html.professional-theme .section,
html.professional-theme .engagement-welcome {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: 0;
  padding: clamp(5rem, 12vw, 7.5rem) clamp(1.5rem, 7vw, 4.5rem);
  box-sizing: border-box;
}

html.professional-theme .section::before,
html.professional-theme .engagement-welcome::before {
  position: absolute;
  inset: 18px;
  z-index: -1;
  border: 1px solid rgba(201, 163, 93, .38);
  content: "";
  pointer-events: none;
}

html.professional-theme .chapter-number { display: none !important; }

html.professional-theme .section-kicker,
html.professional-theme .engagement-welcome__kicker {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  margin: 0 0 1rem;
  color: var(--pro-rose);
  font: 700 clamp(.66rem, 2.6vw, .78rem)/1.3 Manrope, sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
}

html.professional-theme .section-kicker::before,
html.professional-theme .engagement-welcome__kicker::before {
  width: 2.25rem;
  height: 1px;
  content: "";
  background: var(--pro-gold);
}

html.professional-theme h1,
html.professional-theme h2,
html.professional-theme h3 {
  color: inherit;
  font-family: Newsreader, "Noto Serif Gujarati", serif;
  text-wrap: balance;
}

html.professional-theme h2 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(2.45rem, 10vw, 5rem);
  font-weight: 430;
  line-height: .98;
  letter-spacing: -.045em;
}

html.professional-theme p,
html.professional-theme address {
  max-width: 62ch;
  font-size: clamp(1rem, 3.6vw, 1.1rem);
  line-height: 1.72;
}

html.professional-theme a,
html.professional-theme button { touch-action: manipulation; }

html.professional-theme :where(a, button, input, textarea, select):focus-visible {
  outline: 3px solid var(--pro-gold-pale);
  outline-offset: 4px;
}

/* Opening film — one cinematic portrait, not a floating theatre card. */
html.professional-theme .opening-film {
  padding: 0;
  background:
    radial-gradient(circle at 50% 18%, rgba(33, 75, 132, .5), transparent 42%),
    #030918;
}

html.professional-theme .opening-film__ambient {
  opacity: .5;
  background:
    radial-gradient(circle at 50% 15%, rgba(218, 174, 94, .22), transparent 27%),
    linear-gradient(90deg, rgba(0, 0, 0, .75), transparent 28% 72%, rgba(0, 0, 0, .75));
}

html.professional-theme .opening-film__theatre {
  width: min(100%, 600px);
  height: 100dvh;
  min-height: 100dvh;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-inline: 1px solid rgba(201, 163, 93, .44);
  border-radius: 0;
  background: var(--pro-night);
  box-shadow: 0 0 80px rgba(0, 0, 0, .58);
}

html.professional-theme .opening-film__screen {
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  isolation: isolate;
  background: #020611;
}

html.professional-theme .opening-film__screen::before {
  z-index: 0;
  background:
    linear-gradient(180deg, rgba(2, 6, 17, .28), rgba(2, 6, 17, .5)),
    url("../assets/images/newvid-poster.webp") center / cover no-repeat;
  box-shadow: inset 0 0 4rem rgba(0, 0, 0, .62);
  filter: blur(16px) saturate(.82);
  transform: scale(1.09);
}

html.professional-theme .opening-film__screen video {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: transparent;
  transition: filter .8s ease, transform 1s ease;
}

html.professional-theme .opening-film:not(.is-playing) .opening-film__screen video {
  filter: blur(5px) brightness(.52) saturate(.78);
}

html.professional-theme .opening-film__portrait {
  position: absolute;
  right: 50%;
  bottom: -5%;
  z-index: 2;
  width: min(94%, 500px);
  height: 83%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 1.5rem 1.8rem rgba(0, 0, 0, .62));
  transform: translateX(50%) scale(.98);
  transition: opacity .75s ease, transform 1.2s cubic-bezier(.2, .72, .2, 1);
}

html.professional-theme .opening-film.is-playing .opening-film__portrait {
  opacity: 0;
  transform: translateX(50%) translateY(3%) scale(1.035);
}

html.professional-theme .opening-film__final-card {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 4;
  display: grid;
  width: min(76%, 360px);
  min-height: 310px;
  padding: 3.75rem 1.5rem 2.25rem;
  place-content: center;
  border: 1px solid rgba(201, 163, 93, .92);
  border-radius: 48% 48% 1rem 1rem / 5rem 5rem 1rem 1rem;
  opacity: 0;
  color: var(--pro-ink);
  text-align: center;
  background:
    radial-gradient(circle at 50% 3%, rgba(201, 163, 93, .19), transparent 28%),
    var(--pro-ivory);
  box-shadow: 0 1.7rem 4rem rgba(0, 0, 0, .52), inset 0 0 0 .55rem rgba(201, 163, 93, .08);
  transform: translate(-50%, -44%) scale(.92);
  transition: opacity .7s ease, transform 1.05s cubic-bezier(.2, .78, .2, 1);
}

html.professional-theme .opening-film.is-finale .opening-film__final-card {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

html.professional-theme .opening-film__final-card > span,
html.professional-theme .opening-film__final-card > small,
html.professional-theme .opening-film__final-card > time {
  font: 700 .61rem/1.45 Manrope, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}

html.professional-theme .opening-film__final-card > span { color: var(--pro-rose); }
html.professional-theme .opening-film__final-card > small { margin-top: .8rem; color: var(--pro-emerald); }
html.professional-theme .opening-film__final-card > time { margin-top: .25rem; color: var(--pro-muted); }

html.professional-theme .opening-film__final-card > strong {
  display: grid;
  margin: .9rem 0 .25rem;
  color: var(--pro-rose);
  font: 700 clamp(3.2rem, 14vw, 4.7rem)/.58 Corinthia, cursive;
}

html.professional-theme .opening-film__final-card > strong b,
html.professional-theme .opening-film__final-card > strong i { font: inherit; }
html.professional-theme .opening-film__final-card > strong i { color: var(--pro-gold); font-size: .58em; }

html.professional-theme .opening-film__screen::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, rgba(2, 6, 17, .7), transparent 24% 65%, rgba(2, 6, 17, .88));
  pointer-events: none;
}

html.professional-theme .opening-film__header,
html.professional-theme .opening-film__caption,
html.professional-theme .opening-film__skip,
html.professional-theme .opening-film__sound,
html.professional-theme .opening-film__progress { z-index: 5; }

html.professional-theme .opening-film__header {
  position: absolute;
  inset: max(1.2rem, env(safe-area-inset-top)) 1.25rem auto;
  grid-template-columns: 1fr auto 1fr;
  padding: 0;
  border: 0;
  color: #fff1d0;
  background: transparent;
  transition: opacity .45s ease;
}

html.professional-theme .opening-film:not(.is-playing) .opening-film__header { opacity: 0; }

html.professional-theme .opening-film__header p {
  font-size: .62rem;
  letter-spacing: .16em;
}

html.professional-theme .opening-film__monogram {
  display: grid;
  min-width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid rgba(239, 213, 156, .7);
  border-radius: 50%;
  font: 700 1rem/1 Newsreader, serif;
  letter-spacing: .06em;
}

html.professional-theme .opening-film__caption {
  position: absolute;
  inset: auto 1.25rem max(3.25rem, calc(env(safe-area-inset-bottom) + 2.25rem));
  padding: 0;
  color: #fff7e6;
  text-align: center;
  transition: opacity .45s ease, transform .55s ease;
}

html.professional-theme .opening-film.is-finale .opening-film__caption {
  opacity: 0;
  transform: translateY(12px);
}

html.professional-theme .opening-film__caption h1 {
  margin: .25rem auto;
  color: inherit;
  font-family: Corinthia, cursive;
  font-size: clamp(3rem, 12.5vw, 5.6rem);
  font-weight: 700;
  line-height: .72;
  text-shadow: 0 .35rem 1.25rem rgba(0, 0, 0, .75);
}

html.professional-theme .opening-film__caption h1 b { color: var(--pro-gold-pale); font-size: .58em; }

html.professional-theme .opening-film__caption p,
html.professional-theme .opening-film__caption time {
  font: 700 .7rem/1.4 Manrope, sans-serif;
  letter-spacing: .15em;
  text-transform: uppercase;
}

html.professional-theme .opening-film__progress {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  pointer-events: none;
}

html.professional-theme .opening-film__start {
  z-index: 7;
  inset: 0;
  width: auto;
  min-height: 0;
  padding: max(1.1rem, env(safe-area-inset-top)) 1rem 0;
  place-content: start center;
  gap: .42rem;
  border: 0;
  border-radius: 0;
  background: linear-gradient(180deg, rgba(2, 6, 17, .34), rgba(2, 6, 17, .08) 45%, rgba(2, 6, 17, .72));
  color: #fff5dc;
  box-shadow: none;
  backdrop-filter: none;
}

html.professional-theme .opening-film__start strong,
html.professional-theme .opening-film__start small {
  padding: .2rem .85rem;
  border-radius: 999px;
  background: rgba(3, 9, 24, .74);
  box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .26);
  backdrop-filter: blur(8px);
}

html.professional-theme .opening-film__start strong {
  font-size: clamp(1.05rem, 4.7vw, 1.45rem);
}

html.professional-theme .opening-film__start small {
  font-size: .56rem;
}

html.professional-theme .opening-film__start:hover .opening-film__seal { transform: translateY(-3px) scale(1.03); }
html.professional-theme .opening-film__start:active .opening-film__seal { transform: scale(.985); }

html.professional-theme .opening-film__seal {
  width: clamp(3.7rem, 16vw, 4.8rem);
  color: var(--pro-gold-pale);
  font-family: Newsreader, serif;
}

html.professional-theme .opening-film__skip,
html.professional-theme .opening-film__sound {
  min-height: 44px;
  border: 1px solid rgba(239, 213, 156, .45);
  background: rgba(4, 12, 29, .7);
  color: #fff4da;
  backdrop-filter: blur(8px);
}

/* Personal welcome. */
html.professional-theme .engagement-welcome {
  display: flex;
  min-height: 82dvh;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 14%, rgba(201, 163, 93, .2), transparent 18rem),
    repeating-radial-gradient(circle at 100% 0, rgba(139, 48, 69, .035) 0 1px, transparent 1px 14px),
    var(--pro-ivory);
}

html.professional-theme .engagement-welcome::after {
  position: absolute;
  right: -5.5rem;
  bottom: -4rem;
  width: 18rem;
  aspect-ratio: 1;
  border: 1px solid rgba(201, 163, 93, .38);
  border-radius: 50%;
  content: "H & N";
  display: grid;
  place-items: center;
  color: rgba(139, 48, 69, .08);
  font: 700 4.2rem/1 Newsreader, serif;
  transform: rotate(-12deg);
}

html.professional-theme .engagement-welcome h1 {
  width: min(100%, 11ch);
  margin: 0;
  color: var(--pro-ink);
  font: 430 clamp(3rem, 13vw, 6.2rem)/.94 Newsreader, serif;
  letter-spacing: -.055em;
}

html.professional-theme .engagement-welcome__names {
  max-width: 34ch;
  margin: 1.5rem 0 2rem;
  color: var(--pro-muted);
}

html.professional-theme .engagement-welcome__names span {
  color: var(--pro-rose);
  font-family: Newsreader, serif;
  font-weight: 650;
}

html.professional-theme .engagement-welcome__continue {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  gap: .8rem;
  color: var(--pro-ink);
  font: 700 .72rem/1 Manrope, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
}

html.professional-theme .engagement-welcome__continue span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--pro-gold);
  border-radius: 50%;
  color: var(--pro-rose);
}

/* Cinematic thesis hero. */
html.professional-theme .hero-section {
  min-height: 100dvh;
  padding: 0;
  background: var(--pro-night);
}

html.professional-theme .hero-section::before { inset: 14px; z-index: 8; border-color: rgba(239, 213, 156, .46); }
html.professional-theme .hero-section > :not(.keepsake-cinematic-hero):not(.paper-grain):not(.chapter-scenery) { display: none !important; }
html.professional-theme .hero-section .chapter-scenery,
html.professional-theme .hero-section .paper-grain { display: none; }

html.professional-theme .keepsake-cinematic-hero {
  position: absolute;
  inset: 0;
  min-height: 100%;
  overflow: hidden;
  background: #061128;
}

html.professional-theme .keepsake-hero-video {
  display: block !important;
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 1;
  filter: saturate(.86) contrast(1.06) brightness(.62);
}

html.professional-theme .keepsake-hero-veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(3, 9, 24, .78), rgba(3, 9, 24, .06) 38%, rgba(3, 9, 24, .15) 68%, rgba(3, 9, 24, .82)),
    radial-gradient(circle at 50% 48%, rgba(201, 163, 93, .04), rgba(2, 6, 17, .38));
}

html.professional-theme .keepsake-hero-copy {
  position: absolute;
  inset: max(2.25rem, calc(env(safe-area-inset-top) + 1rem)) 1.25rem auto;
  z-index: 5;
  width: calc(100% - 2.5rem);
  color: #fff7e7;
  text-align: center;
}

html.professional-theme .keepsake-guest-line {
  display: table;
  max-width: 92%;
  margin: 0 auto .6rem;
  padding: .35rem .8rem;
  border: 1px solid rgba(239, 213, 156, .44);
  border-radius: 999px;
  background: rgba(4, 12, 29, .55);
  color: #fff0cc;
  font: 650 clamp(.65rem, 2.7vw, .78rem)/1.3 Manrope, sans-serif;
  backdrop-filter: blur(8px);
}

html.professional-theme .keepsake-blessing {
  margin: 0 auto .25rem;
  color: var(--pro-gold-pale);
  font: 560 clamp(.78rem, 3vw, .92rem)/1.4 "Noto Serif Gujarati", serif;
}

html.professional-theme .keepsake-hero-copy h1 {
  margin: 0;
  color: #fff7e7;
  font: 700 clamp(4rem, 20vw, 7.5rem)/.7 Corinthia, cursive;
  letter-spacing: -.025em;
  text-shadow: 0 .35rem 1.6rem rgba(0, 0, 0, .72);
  white-space: nowrap;
}

html.professional-theme .keepsake-hero-copy h1 b { color: var(--pro-gold-pale); font-size: .56em; }

html.professional-theme .keepsake-hero-copy > p[data-bind],
html.professional-theme .keepsake-hero-copy time {
  display: table;
  margin: .3rem auto 0;
  padding: .2rem .6rem;
  background: rgba(4, 12, 29, .55);
  color: #fff4d9;
  font: 750 clamp(.62rem, 2.5vw, .76rem)/1.4 Manrope, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .85);
}

html.professional-theme .keepsake-welcome-couple {
  position: absolute;
  inset: 18% 0 0;
  z-index: 3;
  width: 100%;
  height: 82%;
  margin: 0;
  filter: drop-shadow(0 1.3rem 1.7rem rgba(0, 0, 0, .46));
}

html.professional-theme .keepsake-welcome-couple img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

/* Editorial couple chapter. */
html.professional-theme .couple-section {
  display: grid;
  gap: 0;
  padding: 0;
  background: var(--pro-ivory);
}

html.professional-theme .couple-section::before { z-index: 6; }
html.professional-theme .couple-section .arch-panel {
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--pro-night);
  clip-path: none;
  filter: none;
}

html.professional-theme .couple-section .arch-panel::before,
html.professional-theme .couple-section .arch-pattern,
html.professional-theme .couple-section .petal { display: none; }

html.professional-theme .couple-main {
  width: 100%;
  height: auto;
  aspect-ratio: 979 / 1606;
  margin: 0;
}

html.professional-theme .couple-main img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  object-position: center top;
  filter: none;
}

html.professional-theme .couple-copy {
  position: relative;
  min-width: 0;
  max-width: none;
  padding: clamp(4.5rem, 12vw, 7rem) clamp(1.5rem, 7vw, 4.5rem);
  background:
    radial-gradient(circle at 100% 100%, rgba(201, 163, 93, .17), transparent 18rem),
    var(--pro-ivory);
}

html.professional-theme .couple-copy h2 {
  max-width: none;
  color: var(--pro-rose);
  font: 700 clamp(4.4rem, 18vw, 7.5rem)/.7 Corinthia, cursive;
  letter-spacing: -.02em;
}

html.professional-theme .couple-copy h2 b { color: var(--pro-gold); font-size: .58em; }
html.professional-theme .couple-copy > p:not(.section-kicker) { color: var(--pro-muted); }

html.professional-theme .family-names {
  display: grid;
  gap: 0;
  margin-top: 2.25rem;
  border-block: 1px solid var(--pro-line);
}

html.professional-theme .family-names > div {
  padding: 1.25rem 0;
  border: 0;
}

html.professional-theme .family-names > div + div { border-top: 1px solid var(--pro-line); }
html.professional-theme .family-names small { color: var(--pro-rose); letter-spacing: .13em; text-transform: uppercase; }

/* Night chapters. */
html.professional-theme .ceremonies,
html.professional-theme .countdown-section,
html.professional-theme .contact-section,
html.professional-theme .closing-section {
  color: #fff6e4;
  background:
    radial-gradient(circle at 85% 8%, rgba(54, 102, 157, .33), transparent 20rem),
    linear-gradient(155deg, #071329, #0b1e3f 54%, #071329);
}

html.professional-theme :is(.ceremonies, .countdown-section, .contact-section, .closing-section)::before {
  border-color: rgba(239, 213, 156, .35);
}

html.professional-theme :is(.ceremonies, .countdown-section, .contact-section, .closing-section) .section-kicker { color: var(--pro-gold-pale); }
html.professional-theme :is(.ceremonies, .countdown-section, .contact-section, .closing-section) h2 { color: #fff8e9; }

html.professional-theme .ceremonies { min-height: 100dvh; }
html.professional-theme .section-heading { margin-bottom: clamp(2.5rem, 8vw, 4.5rem); }

html.professional-theme .ceremony-grid {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(239, 213, 156, .34);
  background: rgba(239, 213, 156, .28);
}

html.professional-theme .ceremony {
  position: relative;
  min-height: 23rem;
  padding: 2.25rem 1.5rem;
  border: 0;
  border-radius: 0;
  background: rgba(7, 19, 41, .92);
  box-shadow: none;
}

html.professional-theme .ceremony::after {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  width: 4rem;
  height: 1px;
  content: "";
  background: var(--pro-gold);
  transform-origin: right;
}

html.professional-theme .ceremony h3 {
  margin: 1.6rem 0 .75rem;
  color: #fff7e7;
  font-size: clamp(2rem, 7vw, 2.8rem);
  font-weight: 440;
  line-height: 1.02;
}

html.professional-theme .ceremony p { color: rgba(255, 247, 231, .74); }
html.professional-theme .ceremony-time { color: var(--pro-gold-pale) !important; font-variant-numeric: tabular-nums; }
html.professional-theme .ceremony-symbol,
html.professional-theme .ring-symbol { display: none; }

html.professional-theme .theme2-ceremony-icon {
  display: block;
  width: 68px;
  height: 68px;
  fill: none;
  stroke: var(--pro-gold);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Date reveal. */
html.professional-theme .scratch-section,
html.professional-theme .story-section,
html.professional-theme .dress-section {
  background:
    repeating-radial-gradient(circle at 100% 0, rgba(139, 48, 69, .03) 0 1px, transparent 1px 15px),
    var(--pro-ivory);
}

html.professional-theme .scratch-card {
  width: 100%;
  min-height: 22rem;
  margin-top: 1.5rem;
  border: 1px solid rgba(139, 48, 69, .28);
  border-radius: 50% 50% .75rem .75rem / 5rem 5rem .75rem .75rem;
  background: var(--pro-night);
  box-shadow: var(--pro-shadow);
}

html.professional-theme .scratch-reveal { color: #fff6e1; }
html.professional-theme .scratch-reveal small { color: var(--pro-gold-pale); letter-spacing: .2em; }
html.professional-theme .scratch-reveal strong { font-family: Newsreader, serif; font-size: clamp(2.25rem, 9vw, 4rem); line-height: 1; }
html.professional-theme .scratch-instruction { color: #fff4dc; }

html.professional-theme .text-button {
  min-height: 48px;
  margin-top: 1rem;
  padding: .75rem 1rem;
  color: var(--pro-rose);
}

/* Countdown. */
html.professional-theme .countdown-section { min-height: 84dvh; display: flex; flex-direction: column; justify-content: center; }
html.professional-theme .mandala { opacity: .08; }
html.professional-theme .countdown {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  border: 1px solid rgba(239, 213, 156, .32);
  background: rgba(239, 213, 156, .25);
}

html.professional-theme .countdown > div {
  min-height: 8.5rem;
  padding: 1.25rem .75rem;
  border: 0;
  border-radius: 0;
  background: rgba(7, 19, 41, .88);
  box-shadow: none;
  backdrop-filter: none;
}

html.professional-theme .countdown strong {
  color: #fff6e1;
  font: 430 clamp(3rem, 13vw, 5.4rem)/1 Newsreader, serif;
  font-variant-numeric: tabular-nums;
}

html.professional-theme .countdown span { color: var(--pro-gold-pale); letter-spacing: .14em; text-transform: uppercase; }

/* Story and image. */
html.professional-theme .story-rail { display: grid; grid-template-columns: 1fr; gap: 0; }
html.professional-theme .story-step {
  position: relative;
  min-height: 0;
  padding: 1.75rem 0 1.75rem 4.2rem;
  border: 0;
  border-top: 1px solid var(--pro-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

html.professional-theme .story-step:last-child { border-bottom: 1px solid var(--pro-line); }
html.professional-theme .story-step::before {
  position: absolute;
  left: 0;
  top: 1.45rem;
  content: attr(data-step);
  color: var(--pro-gold);
  font: 500 2.1rem/1 Newsreader, serif;
}

html.professional-theme .story-step h3 { margin: 0 0 .35rem; color: var(--pro-rose); font-size: 1.7rem; font-weight: 500; }
html.professional-theme .story-step p { margin: 0; color: var(--pro-muted); }

html.professional-theme .ring-exchange {
  width: 100%;
  margin: 3rem 0 0;
  overflow: hidden;
  border: 1px solid rgba(201, 163, 93, .52);
  border-radius: .5rem;
  aspect-ratio: 979 / 1606;
  background: var(--pro-night);
  box-shadow: var(--pro-shadow);
}

html.professional-theme .ring-exchange img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

html.professional-theme body[data-theme="royal-keepsake-card"] .chapter-story .ring-exchange {
  width: min(100%, 720px);
  height: auto;
  margin-inline: auto;
  aspect-ratio: 979 / 1606;
  overflow: hidden;
}

html.professional-theme body[data-theme="royal-keepsake-card"] .chapter-story .ring-exchange img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center top;
}

/* Programme as a gold-thread timeline. */
html.professional-theme .timeline-section {
  background:
    linear-gradient(rgba(255, 248, 234, .78), rgba(255, 248, 234, .96)),
    var(--pro-paper);
}

html.professional-theme .programme { width: 100%; margin: 0; padding: 0; }
html.professional-theme .programme::before { left: 29px; background: linear-gradient(var(--pro-gold), rgba(201, 163, 93, .18)); }
html.professional-theme .programme li {
  grid-template-columns: 58px 5.5rem 1fr;
  gap: .75rem;
  min-height: 7rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--pro-line);
}

html.professional-theme .theme2-programme-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid var(--pro-gold);
  border-radius: 50%;
  background: var(--pro-ivory);
  color: var(--pro-rose);
}

html.professional-theme .theme2-programme-icon svg { width: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; }
html.professional-theme .programme time { color: var(--pro-rose); font-variant-numeric: tabular-nums; }
html.professional-theme .programme h3 { color: var(--pro-ink); font-size: 1.35rem; }
html.professional-theme .programme p { margin: .2rem 0 0; color: var(--pro-muted); font-size: .92rem; }

/* Venue. */
html.professional-theme .venue-section {
  display: grid;
  padding: 0;
  background: var(--pro-night);
}

html.professional-theme .venue-illustration {
  min-height: 24rem;
  margin: 0;
  background:
    radial-gradient(circle at 50% 30%, rgba(201, 163, 93, .24), transparent 10rem),
    linear-gradient(155deg, var(--pro-lapis), var(--pro-night));
}

html.professional-theme .venue-copy {
  padding: clamp(4.5rem, 12vw, 7rem) clamp(1.5rem, 7vw, 4.5rem);
  border: 0;
  background: var(--pro-ivory);
  color: var(--pro-ink);
}

html.professional-theme .venue-copy address { color: var(--pro-muted); }

/* Dress and RSVP. */
html.professional-theme .dress-columns {
  display: grid;
  gap: 1px;
  border-block: 1px solid var(--pro-line);
  background: var(--pro-line);
}

html.professional-theme .dress-columns > div {
  padding: 2rem 0;
  border: 0;
  border-radius: 0;
  background: var(--pro-ivory);
  box-shadow: none;
}

html.professional-theme .dress-columns h3 { color: var(--pro-rose); font-size: 1.7rem; font-weight: 500; }
html.professional-theme .dress-columns p { color: var(--pro-muted); }

html.professional-theme .contact-section { min-height: 82dvh; display: flex; flex-direction: column; justify-content: center; }
html.professional-theme .contact-section .section-heading > p:last-child { color: rgba(255, 248, 234, .72); }
html.professional-theme .contact-list { display: grid; gap: 0; margin: 1rem 0 2rem; border-block: 1px solid rgba(239, 213, 156, .28); }
html.professional-theme .contact-item { padding: 1rem 0; border: 0; border-radius: 0; background: transparent; }
html.professional-theme .contact-item + .contact-item { border-top: 1px solid rgba(239, 213, 156, .2); }
html.professional-theme .contact-item strong { color: #fff7e7; }
html.professional-theme .contact-item a { color: var(--pro-gold-pale); }

html.professional-theme .button-primary,
html.professional-theme .button-secondary {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.2rem;
  border-radius: 0;
  font: 750 .75rem/1 Manrope, sans-serif;
  letter-spacing: .11em;
  text-transform: uppercase;
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

html.professional-theme .button-primary {
  border: 1px solid var(--pro-emerald);
  background: var(--pro-emerald);
  color: #fffaf0;
}

html.professional-theme .button-secondary { border: 1px solid var(--pro-rose); background: transparent; color: var(--pro-rose); }
html.professional-theme .button-primary:hover,
html.professional-theme .button-secondary:hover { transform: translateY(-2px); }
html.professional-theme .button-primary:active,
html.professional-theme .button-secondary:active { transform: scale(.985); }

html.professional-theme .contact-section .button-primary { border-color: var(--pro-gold); background: var(--pro-gold); color: var(--pro-night); }

/* Closing. */
html.professional-theme .closing-section { min-height: 100dvh; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; text-align: left; }
html.professional-theme .closing-section .lotus { margin: 0 0 2rem; }
html.professional-theme .closing-section > p { color: rgba(255, 248, 234, .74); }
html.professional-theme .closing-names {
  margin: 1.5rem 0 2rem;
  color: #fff7e7 !important;
  font: 700 clamp(4.2rem, 18vw, 7rem)/.72 Corinthia, cursive !important;
}

html.professional-theme .closing-names b { color: var(--pro-gold-pale); font-size: .56em; }
html.professional-theme .closing-actions { justify-content: flex-start; }
html.professional-theme .closing-section .button-secondary { border-color: var(--pro-gold-pale); color: var(--pro-gold-pale); }
html.professional-theme .made-note { font-size: .72rem !important; letter-spacing: .07em; }

/* Floating controls and RSVP sheet. */
html.professional-theme .music-control {
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, calc(env(safe-area-inset-bottom) + .75rem));
  width: 52px;
  height: 52px;
  border: 1px solid rgba(239, 213, 156, .7);
  background: rgba(7, 19, 41, .88);
  color: #fff3d3;
  box-shadow: 0 12px 35px rgba(0, 0, 0, .3);
  backdrop-filter: blur(8px);
}

html.professional-theme .rsvp-dialog { border: 1px solid var(--pro-gold); border-radius: 0; background: var(--pro-ivory); color: var(--pro-ink); box-shadow: 0 30px 90px rgba(0, 0, 0, .45); }
html.professional-theme .rsvp-dialog::backdrop { background: rgba(2, 6, 17, .72); backdrop-filter: blur(7px); }
html.professional-theme .rsvp-dialog :where(input, textarea) { min-height: 48px; border: 1px solid rgba(139, 48, 69, .28); border-radius: 0; background: #fffdf7; }
html.professional-theme .dialog-close { min-width: 44px; min-height: 44px; }

/* One controlled motion system replaces competing fade-up rules. */
html.professional-theme body.chapter-motion-ready .invitation-chapter > [data-chapter-reveal],
html.professional-theme body.chapter-motion-ready .invitation-chapter .section-heading > *,
html.professional-theme body.chapter-motion-ready .invitation-chapter .ceremony,
html.professional-theme body.chapter-motion-ready .invitation-chapter .story-step,
html.professional-theme body.chapter-motion-ready .invitation-chapter .programme > li,
html.professional-theme body.chapter-motion-ready .invitation-chapter .dress-columns > div,
html.professional-theme body.chapter-motion-ready .invitation-chapter .contact-item,
html.professional-theme body.chapter-motion-ready .chapter-welcome .keepsake-hero-copy > *,
html.professional-theme body.chapter-motion-ready .chapter-welcome .keepsake-welcome-couple,
html.professional-theme body.chapter-motion-ready .chapter-couple .arch-panel {
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  animation: none !important;
}

html.professional-theme [data-pro-motion] {
  opacity: 0;
  transform: translate3d(0, 1.6rem, 0);
  filter: blur(5px);
  transition:
    opacity var(--pro-reveal-duration) cubic-bezier(.2, .72, .18, 1),
    transform var(--pro-reveal-duration) cubic-bezier(.2, .72, .18, 1),
    filter calc(var(--pro-reveal-duration) * .8) ease;
  transition-delay: calc(var(--pro-order, 0) * var(--pro-reveal-stagger));
  will-change: transform, opacity;
}

html.professional-theme [data-pro-motion="rule"] { transform: scaleX(.18); transform-origin: left center; filter: none; }
html.professional-theme [data-pro-motion="image"] { transform: scale(1.035); filter: blur(7px); }
html.professional-theme [data-pro-motion="left"] { transform: translate3d(-1.75rem, 0, 0); }
html.professional-theme [data-pro-motion="right"] { transform: translate3d(1.75rem, 0, 0); }
html.professional-theme [data-pro-motion].is-pro-visible { opacity: 1; transform: none; filter: none; }

html.professional-theme .motion-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(.65em) rotateX(-22deg);
  transform-origin: center bottom;
  transition: opacity 720ms cubic-bezier(.2, .72, .18, 1), transform 820ms cubic-bezier(.16, .78, .16, 1);
  transition-delay: calc(var(--word-index, 0) * 58ms + 100ms);
}

html.professional-theme .is-pro-visible .motion-word { opacity: 1; transform: none; }

html.professional-theme .pro-gold-thread {
  position: absolute;
  inset: 0 auto 0 22px;
  z-index: 3;
  width: 1px;
  background: linear-gradient(transparent, rgba(201, 163, 93, .5) 8% 92%, transparent);
  pointer-events: none;
}

@media (min-width: 680px) {
  html.professional-theme .couple-section { grid-template-columns: minmax(0, 1fr); }
  html.professional-theme .couple-main { height: auto; min-height: 0; aspect-ratio: 979 / 1606; }
  html.professional-theme .couple-main img { object-position: center top; }
  html.professional-theme .ceremony-grid { grid-template-columns: 1fr 1fr; }
  html.professional-theme .countdown { grid-template-columns: repeat(4, 1fr); }
  html.professional-theme .story-rail { grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--pro-line); }
  html.professional-theme .story-step { padding: 4.5rem 1.25rem 1.5rem; border: 0; border-right: 1px solid var(--pro-line); }
  html.professional-theme .story-step:last-child { border: 0; }
  html.professional-theme .story-step::before { left: 1.25rem; top: 1.25rem; }
  html.professional-theme .ring-exchange { aspect-ratio: 979 / 1606; }
  html.professional-theme .venue-section { grid-template-columns: .9fr 1.1fr; }
  html.professional-theme .dress-columns { grid-template-columns: 1fr 1fr; }
  html.professional-theme .dress-columns > div { padding: 2rem; }
  html.professional-theme .dress-columns > div + div { border-left: 1px solid var(--pro-line); }
}

@media (max-width: 420px) {
  html.professional-theme .opening-film__header { grid-template-columns: 1fr; justify-items: center; }
  html.professional-theme .opening-film__header p { display: none; }
  html.professional-theme .section,
  html.professional-theme .engagement-welcome { padding-inline: 1.25rem; }
  html.professional-theme .section::before,
  html.professional-theme .engagement-welcome::before { inset: 10px; }
  html.professional-theme .keepsake-hero-copy { inset-inline: .75rem; width: calc(100% - 1.5rem); }
  html.professional-theme .keepsake-hero-copy h1 { font-size: clamp(3.55rem, 18.2vw, 4.35rem); }
  html.professional-theme .keepsake-welcome-couple { inset: 21% -8% 0; width: 116%; height: 79%; }
  html.professional-theme .programme li { grid-template-columns: 50px 1fr; gap: .75rem; }
  html.professional-theme .programme li time { grid-column: 2; }
  html.professional-theme .programme li > div { grid-column: 2; }
  html.professional-theme .programme::before { left: 24px; }
}

@media (orientation: landscape) and (max-height: 600px) {
  html.professional-theme .opening-film__screen video { transform: none; }

  html.professional-theme .opening-film__portrait {
    right: 2%;
    bottom: -20%;
    width: 48%;
    height: 120%;
    transform: none;
  }

  html.professional-theme .opening-film.is-playing .opening-film__portrait {
    transform: translateY(3%) scale(1.035);
  }

  html.professional-theme .opening-film__start .opening-film__seal,
  html.professional-theme .opening-film__start strong,
  html.professional-theme .opening-film__start small { transform: translateX(-14vw); }

  html.professional-theme .opening-film__final-card {
    width: min(48%, 310px);
    min-height: 270px;
    padding: 2.75rem 1.15rem 1.55rem;
  }

  html.professional-theme .opening-film__final-card > strong { font-size: 3.25rem; }
}

@media (max-height: 700px) and (orientation: landscape) {
  html.professional-theme .engagement-welcome { min-height: 680px; }
  html.professional-theme .hero-section { min-height: 680px; }
  html.professional-theme .keepsake-welcome-couple { inset: 14% 0 0; height: 86%; }
}

/* One coherent Midnight Jharokha palette across every invitation chapter. */
html.professional-theme {
  --pro-night: #06152f;
  --pro-lapis: #102f59;
  --pro-gold: #caa45d;
  --pro-gold-pale: #f0d69b;
  --pro-ivory: #fff8e8;
  --pro-paper: #f4ead6;
  --pro-rose: #caa45d;
  --pro-emerald: #caa45d;
  --pro-ink: #14233d;
  --pro-muted: #d6c8ae;
  --pro-line: rgba(202, 164, 93, .3);
}

html.professional-theme #main-content { background: var(--pro-night); }

html.professional-theme :is(
  .engagement-welcome,
  .couple-section,
  .couple-copy,
  .scratch-section,
  .story-section,
  .timeline-section,
  .venue-section,
  .venue-copy,
  .dress-section
) {
  color: #fff8e8;
  background:
    radial-gradient(circle at 92% 8%, rgba(202, 164, 93, .1), transparent 19rem),
    linear-gradient(155deg, #06152f, #0b2144 58%, #06152f);
}

html.professional-theme :is(
  .engagement-welcome,
  .couple-copy,
  .scratch-section,
  .story-section,
  .timeline-section,
  .venue-copy,
  .dress-section
) :is(h1, h2, h3) { color: #fff8e8; }

html.professional-theme :is(
  .engagement-welcome,
  .couple-copy,
  .scratch-section,
  .story-section,
  .timeline-section,
  .venue-copy,
  .dress-section
) :is(p, address) { color: rgba(255, 248, 232, .74); }

html.professional-theme :is(.section-kicker, .engagement-welcome__kicker),
html.professional-theme .engagement-welcome__names span,
html.professional-theme .family-names small,
html.professional-theme .story-step h3,
html.professional-theme .programme time,
html.professional-theme .dress-columns h3,
html.professional-theme .text-button { color: var(--pro-gold-pale); }

html.professional-theme .engagement-welcome::after { color: rgba(240, 214, 155, .07); }
html.professional-theme .engagement-welcome__continue { color: #fff8e8; }
html.professional-theme .engagement-welcome__continue span { color: var(--pro-gold-pale); }
html.professional-theme .family-names,
html.professional-theme .story-step,
html.professional-theme .programme li,
html.professional-theme .dress-columns { border-color: rgba(240, 214, 155, .22); }
html.professional-theme .family-names > div + div { border-color: rgba(240, 214, 155, .22); }
html.professional-theme .couple-copy > p:not(.section-kicker),
html.professional-theme .story-step p,
html.professional-theme .programme p,
html.professional-theme .dress-columns p,
html.professional-theme .venue-copy address { color: rgba(255, 248, 232, .7); }
html.professional-theme .programme h3 { color: #fff8e8; }
html.professional-theme .theme2-programme-icon {
  border-color: var(--pro-gold);
  background: rgba(6, 21, 47, .78);
  color: var(--pro-gold-pale);
}
html.professional-theme .dress-columns { background: rgba(240, 214, 155, .2); }
html.professional-theme .dress-columns > div { background: rgba(6, 21, 47, .9); }
html.professional-theme .button-primary,
html.professional-theme .contact-section .button-primary {
  border-color: var(--pro-gold);
  background: var(--pro-gold);
  color: var(--pro-night);
}
html.professional-theme .button-secondary {
  border-color: var(--pro-gold-pale);
  color: var(--pro-gold-pale);
}

/* Keep all copy away from the caricatures' faces in the video-backed hero. */
html.professional-theme body[data-theme="royal-keepsake-card"] .chapter-welcome .keepsake-hero-copy {
  position: absolute;
  inset: auto 1.25rem max(1.6rem, calc(env(safe-area-inset-bottom) + 1rem));
  margin: 0;
  width: calc(100% - 2.5rem);
  padding: 4.5rem .75rem .25rem;
  text-align: center;
  background: linear-gradient(180deg, transparent, rgba(3, 10, 25, .78) 52%, rgba(3, 10, 25, .9));
}

html.professional-theme body[data-theme="royal-keepsake-card"] .chapter-welcome .keepsake-welcome-couple {
  inset: 3% 0 0;
  height: 97%;
}

/* Character-by-character scroll typography, with intact connected-script words. */
html.professional-theme .motion-char,
html.professional-theme .motion-script-word,
html.professional-theme .motion-copy-mask {
  display: inline-block;
  opacity: 0;
  will-change: opacity, transform, filter;
  transition:
    opacity 620ms cubic-bezier(.2, .72, .18, 1),
    transform 760ms cubic-bezier(.16, .78, .16, 1),
    filter 620ms ease;
  transition-delay: var(--char-delay, 0ms);
}

html.professional-theme .motion-char {
  filter: blur(4px);
  transform: translate3d(0, .72em, 0) rotate(2deg);
  transform-origin: center bottom;
}

html.professional-theme .motion-space {
  display: inline-block;
  width: .34em;
  white-space: pre;
}

html.professional-theme .motion-script-word {
  clip-path: inset(0 100% 0 0);
  transform: translate3d(0, .24em, 0);
}

html.professional-theme .motion-copy-mask {
  clip-path: inset(0 100% 0 0);
  transform: translate3d(0, .35em, 0);
}

html.professional-theme .is-pro-section-visible :is(.motion-char, .motion-script-word, .motion-copy-mask) {
  opacity: 1;
  filter: none;
  clip-path: inset(0 0 0 0);
  transform: none;
}

/* Muted rose petals are the single animated accent over the blue-and-gold folio. */
html.professional-theme .pro-rose-petal-field {
  position: fixed;
  inset: 0;
  z-index: 20;
  overflow: hidden;
  opacity: 1;
  pointer-events: none;
  transition: opacity .8s ease;
}

html.professional-theme body.intro-active .pro-rose-petal-field { opacity: 0; }
html.professional-theme .pro-rose-petal-field.is-paused .pro-rose-petal { animation-play-state: paused; }

html.professional-theme .pro-rose-petal {
  position: absolute;
  top: -10vh;
  left: var(--petal-left);
  width: var(--petal-size);
  height: calc(var(--petal-size) * 1.45);
  border-radius: 80% 12% 78% 18% / 76% 18% 82% 24%;
  opacity: var(--petal-opacity);
  background:
    radial-gradient(circle at 32% 24%, rgba(255, 224, 220, .82), transparent 26%),
    linear-gradient(145deg, #d88d98, #963b52 68%, #6f263b);
  box-shadow: inset -.08rem -.12rem .2rem rgba(76, 17, 35, .32), 0 .2rem .55rem rgba(0, 0, 0, .2);
  animation: pro-rose-petal-fall var(--petal-duration) linear var(--petal-delay) infinite;
}

@keyframes pro-rose-petal-fall {
  0% { transform: translate3d(0, -12vh, 0) rotate(0deg) rotateX(0deg); }
  28% { transform: translate3d(var(--petal-drift-a), 28vh, 0) rotate(150deg) rotateX(65deg); }
  58% { transform: translate3d(var(--petal-drift-b), 61vh, 0) rotate(330deg) rotateX(145deg); }
  82% { transform: translate3d(var(--petal-drift-a), 88vh, 0) rotate(480deg) rotateX(235deg); }
  100% { transform: translate3d(var(--petal-drift-b), 116vh, 0) rotate(620deg) rotateX(320deg); }
}

@media (prefers-reduced-motion: reduce) {
  html.professional-theme [data-pro-motion],
  html.professional-theme .motion-word,
  html.professional-theme .motion-char,
  html.professional-theme .motion-script-word,
  html.professional-theme .motion-copy-mask {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
  html.professional-theme .pro-rose-petal-field { display: none; }
  html.professional-theme .keepsake-hero-video { display: none !important; }
  html.professional-theme .keepsake-cinematic-hero {
    background: #071329 url("../assets/images/royal-card-chamber-v6.png") center / cover no-repeat;
  }
}
