
:root {
  --bg: #f7f3ed;
  --surface: #fffdf9;
  --ink: #1e1c19;
  --muted: #777169;
  --line: #ded7ce;
  --accent: #1f2b26;
  --accent-soft: #e7ece8;
  --ivory: #eee4d4;
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "DM Sans", sans-serif;
}
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }

:focus-visible { outline: 3px solid rgba(42, 69, 57, .55); outline-offset: 3px; }
button:disabled, a[aria-disabled="true"] { cursor: not-allowed; }

.network-banner {
  position: sticky;
  top: 0;
  z-index: 200;
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px max(16px, env(safe-area-inset-left));
  background: #3d3327;
  color: #fff8ed;
  font-size: 13px;
  text-align: center;
}

.fatal-error-page, .not-found-page {
  min-height: 100svh;
  padding: max(36px, env(safe-area-inset-top)) 20px max(36px, env(safe-area-inset-bottom));
  display: grid;
  place-items: center;
  text-align: center;
}
.fatal-error-card { width: min(520px, 100%); background: var(--surface); border: 1px solid var(--line); border-radius: 28px; padding: 36px; }
.fatal-error-card h1, .not-found-page h1 { font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(38px, 7vw, 58px); margin: 22px 0 10px; }
.fatal-error-card p, .not-found-page p { color: var(--muted); line-height: 1.65; }
.fatal-error-actions, .not-found-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 24px; }
.fatal-error-card small { display: block; margin-top: 28px; color: var(--muted); }
.not-found-code { font-family: "Playfair Display", serif; font-size: clamp(82px, 18vw, 160px); line-height: .8; color: #c8bba8; }

.field.has-error input, .field.has-error textarea, .field.has-error select { border-color: #a44236; box-shadow: 0 0 0 3px rgba(164,66,54,.08); }
.field-error { color: #9c392e; font-size: 11px; line-height: 1.4; }
.required-mark { color: #9c392e; font-weight: 700; }
.editor-validation { margin: 18px 30px 0; padding: 16px 18px; border-radius: 14px; border: 1px solid #e0b4ad; background: #fff6f4; color: #6f2d25; }
.editor-validation strong { display: block; margin-bottom: 4px; }
.editor-validation p { margin: 0 0 8px; font-size: 13px; }
.editor-validation ul { margin: 0; padding-left: 18px; font-size: 12px; line-height: 1.55; }
.invite-phone-link { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }

@media  (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}


.site-header {
  width: min(1180px, calc(100% - 32px));
  margin: 18px auto 0;
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 18px 0 22px;
  background: rgba(255,253,249,.82);
  border: 1px solid rgba(30,28,25,.08);
  border-radius: 22px;
  position: sticky;
  top: 12px;
  z-index: 50;
  backdrop-filter: blur(18px);
  box-shadow: 0 14px 36px rgba(49,43,36,.06);
}
.brand {
  font-weight: 800;
  letter-spacing: .12em;
  font-size: 15px;
}
.brand span { font-weight: 500; }
.desktop-nav { display: flex; gap: 30px; font-size: 14px; }
.desktop-nav a:hover { opacity: .55; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.user-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 7px 5px 5px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 13px;
  background: #fff;
}
.user-pill img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }
.icon-button {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border: 0;
  background: transparent;
  border-radius: 50%;
  color: inherit;
}
.icon-button:hover { background: rgba(0,0,0,.05); }

.primary-button, .ghost-button {
  border: 0;
  border-radius: 999px;
  padding: 12px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-weight: 600;
  font-size: 14px;
  transition: transform .18s ease, opacity .18s ease, background .18s ease;
}
.primary-button { background: var(--accent); color: white; }
.primary-button:hover { transform: translateY(-1px); }
.primary-button:disabled { opacity: .55; cursor: default; transform: none; }
.ghost-button { background: transparent; border: 1px solid var(--line); color: var(--ink); }
.ghost-button:hover { background: rgba(255,255,255,.55); }
.primary-button.big, .ghost-button.big { padding: 15px 22px; }
.compact { padding: 11px 16px; }
.full { width: 100%; }
.menu-button { display: none; border: 0; background: transparent; }
.mobile-menu { display: none; }

/* Stage 8: interface language switcher */
.language-switcher {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.66);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
}
.language-switcher button {
  border: 0;
  background: transparent;
  color: #91897f;
  padding: 2px 3px;
  cursor: pointer;
}
.language-switcher button.active { color: var(--ink); }
.language-switcher > span { color: #c5beb5; }
.hero-shell {
  width: min(1180px, calc(100% - 32px));
  min-height: 670px;
  margin: 26px auto 0;
  border-radius: 34px;
  overflow: hidden;
  background:
    radial-gradient(circle at 90% 18%, rgba(201,185,158,.36), transparent 34%),
    linear-gradient(135deg, #f8f1e7 0%, #ebe3d8 100%);
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  align-items: center;
  padding: 60px 68px;
  position: relative;
}
.hero-shell:after {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(80,65,45,.11);
  border-radius: 26px;
  pointer-events: none;
}
.hero-copy { position: relative; z-index: 2; max-width: 570px; }
.eyebrow {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 700;
  color: #85796a;
  margin-bottom: 14px;
}
.hero-copy h1, .page-head h1, .section-heading h2, .closing-cta h2, .published-page h1 {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  letter-spacing: -.035em;
}
.hero-copy h1 {
  font-size: clamp(48px, 5.2vw, 76px);
  line-height: .97;
  margin: 0 0 26px;
}
.hero-copy p {
  font-size: 18px;
  line-height: 1.65;
  color: #655f58;
  max-width: 540px;
}
.hero-buttons { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.free-note { display: flex; align-items: center; gap: 8px; margin-top: 18px; font-size: 13px; color: #6f675e; }

.hero-visual { height: 560px; position: relative; display: grid; place-items: center; }
.phone {
  width: 282px;
  height: 570px;
  border: 9px solid #1e1d1b;
  border-radius: 48px;
  padding: 6px;
  background: #1e1d1b;
  box-shadow: 0 32px 70px rgba(47,40,32,.22);
  transform: rotate(2deg);
}
.phone-screen {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 34px;
  background: #f6eee2;
}
.mini-invite {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 40% 25%, rgba(255,255,255,.8), transparent 28%),
    linear-gradient(180deg,#f3eadc,#e7d9c4);
  position: relative;
  color: #352d25;
}
.mini-invite > span { letter-spacing: .26em; font-size: 9px; margin-bottom: 26px; }
.mini-invite h3 {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-size: 39px;
  text-align: center;
  font-weight: 500;
  line-height: 1.05;
}
.mini-invite h3 i { display: block; font-weight: 400; font-size: 22px; padding: 8px; }
.mini-line { width: 42px; height: 1px; background: #8b7b67; margin: 26px 0 18px; }
.mini-invite strong { font-size: 12px; letter-spacing: .15em; }
.mini-invite small { margin-top: 10px; color: #806f5b; }
.mini-arrow { position: absolute; bottom: 34px; animation: bounce 1.8s infinite; }
.mini-flower { position: absolute; opacity: .32; font-size: 30px; }
.mini-flower.one { top: 66px; left: 35px; }
.mini-flower.two { right: 30px; bottom: 90px; font-size: 18px; }

.floating-card {
  position: absolute;
  background: rgba(255,255,255,.87);
  border: 1px solid rgba(30,28,25,.08);
  box-shadow: 0 15px 35px rgba(49,43,36,.11);
  backdrop-filter: blur(10px);
  border-radius: 999px;
  padding: 12px 16px;
  font-weight: 600;
  font-size: 13px;
  display: flex;
  gap: 8px;
  align-items: center;
  z-index: 3;
}
.fc-one { right: 0; top: 115px; }
.fc-two { left: 15px; top: 255px; }
.fc-three { right: 20px; bottom: 72px; }

.categories-strip {
  width: min(1080px, calc(100% - 40px));
  margin: 16px auto 0;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: #93897d;
  font-size: 13px;
  overflow-x: auto;
  padding: 16px 2px 4px;
}
.section {
  width: min(1080px, calc(100% - 40px));
  margin: 120px auto;
}
.section-heading { max-width: 650px; margin-bottom: 38px; }
.section-heading h2, .closing-cta h2 { font-size: clamp(36px, 4vw, 54px); line-height: 1.05; margin: 0; }
.row-heading { max-width: none; display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.text-link { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; font-size: 14px; }

.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.step-card {
  min-height: 245px;
  padding: 30px;
  background: var(--surface);
  border-radius: 24px;
  border: 1px solid rgba(40,35,29,.06);
}
.step-card > span { font-family: "Playfair Display", serif; font-size: 28px; color: #b0a18d; }
.step-card h3 { margin: 58px 0 8px; font-size: 20px; }
.step-card p { color: var(--muted); line-height: 1.55; margin: 0; }

.template-card {
  background: var(--surface);
  border: 1px solid rgba(40,35,29,.07);
  border-radius: 28px;
  padding: 16px;
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 30px;
}
.template-preview {
  min-height: 500px;
  background: #efe5d6;
  border-radius: 20px;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.preview-ivory { text-align: center; color: #493f35; }
.preview-ivory small { letter-spacing: .25em; }
.preview-ivory h3 { font-family: "Playfair Display", serif; font-size: 46px; font-weight: 500; margin: 34px 0 16px; }
.preview-ivory h3 em { display: block; font-size: 26px; }
.preview-ivory p { letter-spacing: .16em; }
.template-meta { padding: 38px 28px 28px 0; display: flex; flex-direction: column; justify-content: space-between; }
.tag { display: inline-flex; padding: 7px 11px; border-radius: 999px; background: #eeece7; color: #746c62; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.template-meta h3 { font-family: "Playfair Display", serif; font-size: 36px; font-weight: 500; margin: 16px 0 12px; }
.template-meta p { color: var(--muted); line-height: 1.6; }
.template-actions { display: flex; gap: 9px; flex-wrap: wrap; }

.closing-cta {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto 60px;
  min-height: 470px;
  border-radius: 34px;
  background: #1f2b26;
  color: white;
  text-align: center;
  padding: 70px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.closing-cta > span { letter-spacing: .22em; font-size: 12px; opacity: .62; margin-bottom: 20px; }
.closing-cta h2 { max-width: 650px; margin-bottom: 28px; }
.closing-cta .primary-button { background: #f3ecdf; color: #1f2b26; }

.footer {
  width: min(1080px, calc(100% - 40px));
  margin: 70px auto 30px;
  padding: 28px 0;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  font-size: 13px;
  color: #7c756d;
}
.footer p { text-align: center; }
.footer > span { text-align: right; }

.page-shell { width: min(1080px, calc(100% - 40px)); margin: 90px auto 120px; min-height: 55vh; }
.page-head { max-width: 700px; margin-bottom: 36px; }
.page-head h1 { font-size: clamp(44px, 5vw, 68px); line-height: 1; margin: 0 0 18px; }
.page-head p { color: var(--muted); line-height: 1.6; }
.filter-row { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 24px; padding-bottom: 4px; }
.filter {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  background: transparent;
  padding: 10px 15px;
  border-radius: 999px;
}
.filter.active { background: var(--ink); color: white; border-color: var(--ink); }
.coming-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 20px; }
.coming-card { padding: 14px; background: rgba(255,255,255,.4); border: 1px dashed #cfc7bc; border-radius: 22px; }
.coming-art { height: 210px; display: grid; place-items: center; background: #ede8e1; border-radius: 15px; color: #9b9287; }
.coming-card > span { display: inline-block; margin-top: 16px; color: #9a8e7e; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.coming-card h3 { margin: 6px 0 10px; }


/* Stage 7: multi-template catalog */
.template-catalog-grid {
  display: grid;
  gap: 22px;
}
.template-catalog-grid .template-card:nth-child(even) .template-preview { order: 2; }
.template-catalog-grid .template-card:nth-child(even) .template-meta { padding: 38px 0 28px 28px; }
.preview-miras {
  width: 100%;
  min-height: 500px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #4f4032;
  background:
    radial-gradient(circle at 50% 24%, rgba(255,255,255,.78), transparent 27%),
    linear-gradient(155deg, #f3eadc, #d9c6aa);
  position: relative;
}
.preview-miras:before,
.preview-miras:after {
  content: "";
  position: absolute;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(153,115,62,.28);
  transform: rotate(45deg);
}
.preview-miras:before { left: -86px; top: 64px; }
.preview-miras:after { right: -86px; bottom: 64px; }
.preview-miras small { letter-spacing: .27em; font-size: 10px; }
.preview-miras h3 {
  font-family: "Playfair Display", serif;
  font-size: 64px;
  font-weight: 500;
  line-height: .95;
  margin: 38px 0 24px;
}
.preview-miras p { letter-spacing: .16em; font-size: 12px; }
.compact-empty { min-height: 220px; margin-top: 20px; }
.editor-page { min-height: 100vh; background: #ece8e2; }
.editor-topbar {
  min-height: 72px;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(12px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 80;
  border-bottom: 1px solid #ddd8d1;
}
.editor-topbar > div { display: flex; align-items: center; gap: 18px; }
.small-brand { font-size: 13px; }
.save-state { color: #8b847c; font-size: 12px; }
.editor-top-actions { display: flex; gap: 8px; }
.setup-banner {
  max-width: 1180px;
  margin: 14px auto 0;
  padding: 12px 16px;
  background: #fff5d7;
  border: 1px solid #ead79b;
  border-radius: 12px;
  font-size: 13px;
  color: #64552d;
}
.editor-tabs { display: none; }
.editor-layout {
  max-width: 1180px;
  margin: 18px auto 0;
  display: grid;
  grid-template-columns: minmax(0, 620px) 1fr;
  gap: 18px;
  align-items: start;
  padding: 0 0 80px;
}
.editor-panel {
  background: #fff;
  border-radius: 22px;
  border: 1px solid #ddd8d1;
  overflow: hidden;
}
.editor-intro { padding: 30px 30px 24px; border-bottom: 1px solid #eeeae5; }
.editor-intro h1 { font-family: "Playfair Display", serif; font-size: 40px; font-weight: 500; margin: 13px 0 6px; }
.editor-intro p { margin: 0; color: var(--muted); }
.field-group { padding: 26px 30px; border-bottom: 1px solid #eeeae5; }
.field-group:last-child { border-bottom: 0; }
.field-group h2 { margin: 0 0 18px; font-size: 16px; }
.field-stack { display: grid; gap: 14px; }
.field-grid { display: grid; gap: 12px; }
.field-grid.two { grid-template-columns: 1fr 1fr; }
.field { display: grid; gap: 7px; }
.field > span { font-size: 12px; font-weight: 600; color: #6b645d; }
.field input, .field textarea, .field select,
.program-edit-row input {
  width: 100%;
  border: 1px solid #d9d3cb;
  background: #fcfbf9;
  color: var(--ink);
  border-radius: 12px;
  padding: 12px 13px;
  outline: 0;
}
.field input:focus, .field textarea:focus, .field select:focus,
.program-edit-row input:focus { border-color: #8f877c; box-shadow: 0 0 0 3px rgba(143,135,124,.1); }
.field textarea { resize: vertical; min-height: 130px; }
.upload-zone {
  width: 100%;
  min-height: 210px;
  border: 1px dashed #cfc7bc;
  border-radius: 16px;
  background: #faf8f5;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 9px;
  color: #7d756c;
  overflow: hidden;
  padding: 0;
}
.upload-zone strong { color: #312e2a; }
.upload-zone span { font-size: 12px; }
.upload-zone img { width: 100%; height: 260px; object-fit: cover; }
.upload-row {
  border: 1px solid #d9d3cb;
  background: #fcfbf9;
  border-radius: 14px;
  padding: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.upload-row div { display: flex; align-items: center; gap: 10px; }
.program-edit-row { display: grid; grid-template-columns: 105px 1fr 34px; gap: 8px; align-items: center; }
.text-add { justify-self: start; border: 0; background: transparent; color: #3f5148; font-weight: 700; padding: 6px 0; }
.live-preview-wrap {
  position: sticky;
  top: 90px;
  display: grid;
  justify-items: center;
}
.preview-label { font-size: 11px; color: #817970; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 10px; }
.preview-phone {
  width: 390px;
  height: 720px;
  background: #171716;
  border: 8px solid #171716;
  border-radius: 44px;
  box-shadow: 0 22px 60px rgba(47,43,38,.17);
  overflow: hidden;
}
.preview-scroll { height: 100%; overflow-y: auto; border-radius: 34px; background: #f6efe5; scrollbar-width: none; }
.preview-scroll::-webkit-scrollbar { display: none; }


/* Stage 2: section manager */
.section-manager {
  padding: 26px 30px 30px;
  border-bottom: 1px solid #eeeae5;
  background: linear-gradient(180deg, #fff, #fcfaf7);
}
.section-manager-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}
.section-manager-head h2 {
  margin: 12px 0 5px;
  font-size: 19px;
}
.section-manager-head p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  max-width: 470px;
}
.section-manager-head > svg { color: #8d857b; margin-top: 4px; }
.section-manager-list { display: grid; gap: 8px; }
.section-control {
  border: 1px solid #e1dcd5;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  transition: opacity .18s ease, border-color .18s ease, background .18s ease;
}
.section-control.disabled { background: #f7f5f2; opacity: .72; }
.section-control-main {
  min-height: 62px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
}
.section-visibility {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: #eef2ef;
  color: #334a3f;
}
.section-control.disabled .section-visibility { background: #ece8e3; color: #9b9389; }
.section-control-copy { min-width: 0; display: grid; gap: 3px; }
.section-control-copy strong { font-size: 13px; }
.section-control-copy span { font-size: 11px; color: #8c847b; }
.section-order-actions { display: flex; align-items: center; }
.section-order-actions .icon-button:disabled { opacity: .25; cursor: default; }
.section-settings {
  border-top: 1px solid #eeeae5;
  padding: 14px 14px 16px 58px;
  background: #fbfaf8;
}
.section-settings > p {
  margin: 0 0 12px;
  color: #817970;
  font-size: 12px;
  line-height: 1.45;
}
.section-settings-grid { display: grid; gap: 10px; }
.section-settings .field input {
  background: #fff;
}

@media  (max-width: 560px) {
  .section-manager { padding: 22px 18px 24px; }
  .section-control-main { grid-template-columns: 36px minmax(0, 1fr) auto; padding: 7px 7px; }
  .section-order-actions .icon-button { width: 30px; height: 30px; }
  .section-settings { padding: 13px 12px 15px; }
}

/* Stage 4: image optimization and hero framing */
.hero-media-editor { display: grid; gap: 14px; }
.hero-upload-preview {
  width: 100%;
  aspect-ratio: 4 / 5;
  max-height: 430px;
  border: 1px dashed #cfc7bc;
  border-radius: 18px;
  background: #f4efe8;
  color: #746d65;
  padding: 0;
  overflow: hidden;
  position: relative;
}
.hero-upload-preview:disabled { cursor: progress; opacity: .72; }
.hero-upload-preview > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .2s ease, object-position .2s ease;
  transform-origin: center;
}
.hero-empty-photo {
  min-height: 260px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
}
.hero-empty-photo strong { color: #302d29; }
.hero-empty-photo small { font-size: 12px; opacity: .7; }
.hero-change-photo {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(28,27,25,.82);
  color: white;
  font-size: 11px;
  font-weight: 700;
  backdrop-filter: blur(8px);
}
.media-result-note {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 12px;
  border-radius: 12px;
  background: #eef3ef;
  color: #526158;
  font-size: 11px;
}
.media-result-note strong {
  color: #274235;
  letter-spacing: .08em;
}
.media-result-note small { color: #778078; }
.hero-position-controls {
  display: grid;
  gap: 13px;
  padding: 16px;
  border: 1px solid #e1dcd5;
  border-radius: 15px;
  background: #fbfaf8;
}
.position-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.position-head > div { display: grid; gap: 3px; }
.position-head strong { font-size: 13px; }
.position-head span { font-size: 11px; color: #877f76; line-height: 1.45; }
.range-field { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 12px; }
.range-field > span { font-size: 11px; color: #6f675f; }
.range-field input[type="range"] { width: 100%; accent-color: #35453d; }
.media-status {
  padding: 10px 12px;
  border-radius: 12px;
  background: #f1eee9;
  color: #706960;
  font-size: 11px;
  line-height: 1.45;
}
.media-help-text {
  margin: 10px 0 0;
  color: #8c847a;
  font-size: 11px;
  line-height: 1.5;
}

/* Stage 5: music editor */
.music-editor { display: grid; gap: 12px; }
.music-empty {
  width: 100%;
  min-height: 150px;
  border: 1px dashed #cfc7bc;
  border-radius: 16px;
  background: #faf8f5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: #787068;
  padding: 22px;
}
.music-empty:disabled { cursor: progress; opacity: .72; }
.music-empty strong { color: #302d29; }
.music-empty > span:last-child { font-size: 11px; }
.music-empty-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #e8ede9;
  color: #33483e;
  margin-bottom: 3px;
}
.music-card {
  border: 1px solid #ddd7cf;
  border-radius: 17px;
  background: #fbfaf8;
  padding: 16px;
  display: grid;
  gap: 15px;
}
.music-card-top {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.music-play-button {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 0;
  display: grid;
  place-items: center;
  background: #2f4037;
  color: #fff;
}
.music-track-copy { min-width: 0; display: grid; gap: 4px; }
.music-track-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
}
.music-track-copy span { color: #827a71; font-size: 11px; }
.music-progress-row {
  display: grid;
  grid-template-columns: 36px 1fr 36px;
  gap: 9px;
  align-items: center;
  font-size: 10px;
  color: #8b8379;
}
.music-progress-row input[type="range"],
.music-volume-row input[type="range"] {
  width: 100%;
  accent-color: #35453d;
}
.music-volume-row {
  display: grid;
  grid-template-columns: 20px 145px 1fr;
  gap: 9px;
  align-items: center;
  font-size: 11px;
  color: #665f57;
}
.music-loop-row {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 11px;
  line-height: 1.45;
  color: #6d655d;
}
.music-loop-row input { margin-top: 2px; accent-color: #35453d; }
.music-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.danger-button {
  border: 1px solid #e3c9c6;
  border-radius: 999px;
  background: #fff8f7;
  color: #8c4740;
  padding: 11px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-weight: 600;
  font-size: 13px;
}
.music-library {
  padding: 14px;
  border: 1px solid #e1dcd5;
  border-radius: 15px;
  background: #fff;
}
.music-library-head { display: grid; gap: 3px; margin-bottom: 10px; }
.music-library-head strong { font-size: 13px; }
.music-library-head span { color: #827a71; font-size: 11px; }
.music-library-list { display: grid; gap: 7px; }
.music-library-list button {
  border: 1px solid #e2ddd6;
  border-radius: 12px;
  background: #fbfaf8;
  padding: 11px 12px;
  display: flex;
  align-items: center;
  gap: 9px;
  text-align: left;
}

@media  (max-width: 560px) {
  .music-volume-row { grid-template-columns: 20px 1fr; }
  .music-volume-row input[type="range"] { grid-column: 1 / -1; }
  .music-actions > * { flex: 1; }
}

/* Stage 7: event-specific models */
.event-model-summary {
  border: 1px solid #ded7ce;
  background: linear-gradient(135deg, #faf8f4, #f4efe7);
  border-radius: 14px;
  padding: 14px 15px;
  display: grid;
  gap: 4px;
}
.event-model-summary > span {
  color: #7d7469;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.event-model-summary strong { font-size: 17px; }
.event-model-summary small { color: #8a8178; font-size: 11px; }
.field-grid.one { grid-template-columns: 1fr; }
.invite-template-label { display: block; margin-top: 4px; color: #968b7f; font-size: 11px; }

/* Stage 8: invite language is independent from UI language */
.invite-language-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 15px;
  border: 1px solid #d9d3cb;
  border-radius: 14px;
  background: #fcfbf9;
}
.invite-language-card > div:first-child { display: grid; gap: 4px; }
.invite-language-card > div:first-child > span { font-size: 12px; font-weight: 700; color: #5f5952; }
.invite-language-card small { color: #918980; line-height: 1.35; }
.invite-language-options {
  display: inline-flex;
  gap: 4px;
  padding: 3px;
  border-radius: 999px;
  background: #eeeae4;
  flex: 0 0 auto;
}
.invite-language-options button {
  border: 0;
  border-radius: 999px;
  padding: 8px 11px;
  background: transparent;
  color: #827a71;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .07em;
}
.invite-language-options button.active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 2px 8px rgba(45,40,34,.08);
}
.invite {
  background: #f4ecdf;
  min-height: 100vh;
  color: #342f2a;
  font-family: "Noto Sans", sans-serif;
}
.invite-embedded { min-height: auto; }
.invite-body { opacity: 0; transform: translateY(8px); transition: .7s ease; }
.invite-body.shown { opacity: 1; transform: none; }
.invite-custom-opening-text,
.invite-custom-hero-text,
.invite-custom-final-accent {
  white-space: pre-line;
  overflow-wrap: anywhere;
}








.invite-hero {
  min-height: 100svh;
  display: grid;
  place-items: center;
  text-align: center;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 35% 22%, rgba(255,255,255,.9), transparent 28%),
    linear-gradient(180deg,#f2e8da,#dfceb7);
  background-size: cover;
  background-position: center;
}
.invite-hero:after {
  content: "";
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(73,63,52,.25);
}
.invite-hero-inner { position: relative; z-index: 2; padding: 34px; animation: rise .9s ease both; }
.invite-hero-inner > span, .invite-kicker { font-size: 9px; letter-spacing: .23em; font-weight: 700; }
.invite-hero-inner h1 {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-size: clamp(48px, 14vw, 78px);
  line-height: .96;
  margin: 30px 0 0;
  text-shadow: 0 2px 20px rgba(0,0,0,.06);
}
.invite-hero-inner h1 em { display: block; font-size: .45em; margin: 9px; }
.hairline { width: 44px; height: 1px; background: currentColor; opacity: .62; margin: 28px auto 20px; }
.invite-hero-inner strong { display: block; letter-spacing: .16em; font-size: 12px; }
.invite-hero-inner small { display: block; margin-top: 10px; }
.bounce { margin-top: 45px; animation: bounce 1.7s infinite; }
.ornament { position: absolute; opacity: .28; z-index: 1; font-size: 42px; }
.ornament-a { top: 12%; left: 10%; }
.ornament-b { right: 11%; bottom: 13%; font-size: 24px; }

.invite-section {
  min-height: 66vh;
  padding: 80px max(28px, 8vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-bottom: 1px solid rgba(78,65,50,.12);
}
.invite-section h2 {
  font-family: "Playfair Display", serif;
  font-size: clamp(34px, 9vw, 52px);
  font-weight: 500;
  line-height: 1.08;
  margin: 20px 0;
}
.invite-section p { max-width: 620px; line-height: 1.85; color: #6f655b; font-size: 14px; }
.intro-section { background: #f8f2e9; }
.date-section { background: #efe3d2; }
.date-section > svg, .venue-section > svg { margin-bottom: 20px; }
.timer-section { min-height: 54vh; background: #28342f; color: #f6efe3; }
.countdown { width: min(520px, 100%); display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-top: 28px; }
.countdown div { padding: 16px 6px; border: 1px solid rgba(255,255,255,.22); border-radius: 14px; }
.countdown strong { display: block; font-family: "Playfair Display", serif; font-size: 31px; font-weight: 500; }
.countdown span { display: block; font-size: 8px; text-transform: uppercase; letter-spacing: .1em; margin-top: 6px; opacity: .7; }
.event-day-message { font-family: "Playfair Display", serif; font-size: 38px; margin-top: 24px; }
.hosts-section { min-height: 44vh; }
.venue-section { background: #f8f2e9; }
.map-button {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 18px;
  border-radius: 999px;
  background: #2e3a34;
  color: white;
  font-size: 13px;
}
.program-section { background: #efe3d2; }
.program-list { width: min(560px, 100%); margin-top: 25px; }
.program-row { display: grid; grid-template-columns: 64px 1fr 1.8fr; align-items: center; gap: 14px; text-align: left; padding: 13px 0; }
.program-row strong { font-size: 13px; }
.program-row > span { height: 1px; background: rgba(60,50,40,.26); }
.program-row p { margin: 0; font-size: 13px; }
.dress-section { background: #f8f2e9; }
.swatches { display: flex; gap: 9px; margin-top: 20px; }
.swatches i { width: 34px; height: 34px; border-radius: 50%; background: #d9c6ad; }
.swatches i:nth-child(2) { background: #b9aa98; }
.swatches i:nth-child(3) { background: #7d8376; }
.swatches i:nth-child(4) { background: #4f6257; }
.swatches i:nth-child(5) { background: #28342f; }
.contact-section { min-height: 44vh; }
.final-section { min-height: 75vh; background: #2a352f; color: #f5eee2; }
.final-section h2 { max-width: 620px; }
.final-section p { color: #d8d0c3; }
.final-section small { margin-top: 60px; opacity: .5; letter-spacing: .12em; }
.final-symbol { font-size: 28px; opacity: .45; }
.audio-fab {
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 0;
  background: rgba(35,44,40,.9);
  color: white;
  display: grid;
  place-items: center;
  z-index: 90;
  box-shadow: 0 9px 25px rgba(0,0,0,.18);
}
.audio-fab.playing { animation: pulse 1.8s infinite; }

@keyframes rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(7px); } }
@keyframes pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(42,53,47,.22); } 50% { box-shadow: 0 0 0 10px rgba(42,53,47,0); } }

/* Stage 2: ordered invitation slots are layout-neutral. */
.invite-section-slot:empty { display: none; }

/* Stage 4: hero image uses non-destructive framing settings. */
.invite-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.invite-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center;
  will-change: transform;
}
.invite-hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(29,24,19,.08), rgba(29,24,19,.46));
}
.invite-hero.has-photo { color: #fffaf1; }
.invite-hero.has-photo:after { border-color: rgba(255,248,238,.45); z-index: 3; }
.invite-hero.has-photo .ornament { z-index: 2; }
.invite-hero.has-photo .invite-hero-inner { z-index: 4; }

/* Stage 5: shared invitation music control */
.audio-fab {
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.audio-fab:hover { transform: translateY(-1px); }
.audio-fab:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* =========================================================
   Stage 6 — Wedding Ivory visual polish
   ========================================================= */
.invite {
  --ivory-paper: #f8f2e8;
  --ivory-warm: #eee2d1;
  --ivory-ink: #342f2a;
  --ivory-muted: #766b60;
  --ivory-green: #293730;
  --ivory-gold: #b49a75;
  overflow-x: clip;
}

.invite-body {
  background: var(--ivory-paper);
}

.invite-section-slot {
  position: relative;
  overflow: clip;
}

.section-content {
  width: min(680px, 100%);
  margin-inline: auto;
}

/* Scroll reveal: deliberately subtle, not presentation-like. */



.invite-kicker {
  color: #8a7863;
  letter-spacing: .3em;
  line-height: 1.4;
}
.timer-section .invite-kicker,
.final-section .invite-kicker {
  color: inherit;
}

.invite-section {
  position: relative;
  min-height: 62vh;
  padding: clamp(74px, 10vw, 116px) max(28px, 8vw);
  border-bottom-color: rgba(78,65,50,.095);
}
.invite-section h2 {
  max-width: 680px;
  font-size: clamp(38px, 8.3vw, 58px);
  line-height: 1.02;
  letter-spacing: -.028em;
  text-wrap: balance;
}
.invite-section p {
  max-width: 620px;
  font-size: clamp(14px, 2.6vw, 16px);
  line-height: 1.9;
  color: var(--ivory-muted);
  text-wrap: pretty;
}
.ivory-paper-section {
  background:
    radial-gradient(circle at 12% 16%, rgba(255,255,255,.72), transparent 26%),
    radial-gradient(circle at 86% 82%, rgba(211,193,165,.16), transparent 28%),
    var(--ivory-paper);
}
.invitation-copy {
  white-space: pre-line;
  font-size: clamp(15px, 2.8vw, 17px) !important;
  line-height: 2 !important;
}

/* Gate */













.gate-rule-left { left: 4vw; }
.gate-rule-right { right: 4vw; transform: scaleX(-1); }

/* Hero */
.invite-hero {
  min-height: max(680px, 100svh);
  isolation: isolate;
}
.invite-hero:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(255,255,255,.08), transparent 26%, rgba(54,44,34,.06));
  pointer-events: none;
}
.invite-hero-media img {
  transition: transform 1.4s cubic-bezier(.22,.61,.36,1);
}
.invite-body.shown .invite-hero-media img {
  animation: ivoryHeroBreath 14s ease-in-out infinite alternate;
}
.invite-hero-shade {
  background:
    linear-gradient(180deg, rgba(24,20,16,.05) 0%, rgba(24,20,16,.09) 42%, rgba(24,20,16,.52) 100%),
    radial-gradient(circle at 50% 45%, transparent 20%, rgba(24,20,16,.10) 100%);
}
.invite-hero:after {
  inset: 18px;
  border-color: rgba(73,63,52,.28);
}
.ivory-frame-corner {
  position: absolute;
  z-index: 4;
  width: 36px;
  height: 36px;
  pointer-events: none;
  opacity: .55;
}
.ivory-frame-corner-a {
  top: 18px;
  left: 18px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
}
.ivory-frame-corner-b {
  right: 18px;
  bottom: 18px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
}
.invite-hero-inner {
  width: min(760px, 94%);
  padding: 42px 26px;
}
.hero-enter {
  animation: ivoryHeroTextIn 1.05s cubic-bezier(.22,.61,.36,1) .12s both;
}
.invite-hero-inner > span {
  font-size: 9px;
  letter-spacing: .36em;
  text-transform: uppercase;
}
.invite-hero-inner h1 {
  max-width: 100%;
  margin: 32px auto 0;
  font-size: clamp(54px, 13vw, 88px);
  line-height: .9;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.invite-hero-inner h1 .person-name {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.invite-hero-inner h1.names-medium {
  font-size: clamp(48px, 11vw, 76px);
}
.invite-hero-inner h1.names-compact {
  font-size: clamp(39px, 9vw, 64px);
  line-height: .96;
}
.invite-hero-inner h1 em {
  margin: 10px 0 12px;
  font-size: .36em;
  opacity: .88;
}
.hairline {
  width: 54px;
  opacity: .56;
  margin-top: 34px;
}
.invite-hero-inner strong {
  font-size: 11px;
  letter-spacing: .24em;
  font-variant-numeric: tabular-nums;
}
.invite-hero-inner small {
  margin-top: 12px;
  font-size: 12px;
  letter-spacing: .06em;
}
.bounce {
  opacity: .78;
  margin-top: 52px;
}
.ornament { opacity: .24; }

/* Editorial date */
.date-section {
  background:
    radial-gradient(circle at 50% 20%, rgba(255,255,255,.42), transparent 35%),
    var(--ivory-warm);
}
.date-card-shell {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.section-icon {
  width: 22px;
  height: 22px;
  stroke-width: 1.25;
  margin-bottom: 24px;
  color: #796a59;
}
.editorial-date {
  margin-top: 28px;
  display: grid;
  justify-items: center;
  line-height: 1;
}
.editorial-date strong {
  font-family: "Playfair Display", serif;
  font-size: clamp(84px, 22vw, 132px);
  font-weight: 500;
  line-height: .72;
  letter-spacing: -.06em;
}
.editorial-date span {
  margin-top: 24px;
  font-family: "Playfair Display", serif;
  font-size: clamp(30px, 7vw, 46px);
  text-transform: lowercase;
}
.editorial-date small {
  margin-top: 14px;
  font-size: 11px;
  letter-spacing: .3em;
  color: #887968;
}
.event-time {
  margin-top: 34px !important;
  font-size: 13px !important;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Countdown */
.timer-section {
  min-height: 58vh;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.055), transparent 38%),
    #27352f;
}
.countdown {
  width: min(590px, 100%);
  gap: 10px;
  margin-top: 34px;
}
.countdown div {
  min-width: 0;
  padding: 22px 7px 18px;
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.025);
  border-radius: 2px;
}
.countdown strong {
  font-size: clamp(31px, 8vw, 47px);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.countdown span {
  margin-top: 10px;
  font-size: 7px;
  letter-spacing: .16em;
}
.event-day-message {
  max-width: 550px;
  line-height: 1.08;
  text-wrap: balance;
}

/* Hosts */
.hosts-section { min-height: 48vh; }
.hosts-flourish {
  margin: 32px 0 12px;
  color: var(--ivory-gold);
  opacity: .68;
}
.hosts-names {
  margin-top: 6px !important;
  font-size: clamp(38px, 9vw, 56px) !important;
}

/* Venue */
.venue-section {
  background:
    linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.1)),
    #f4ebde;
}
.venue-content { display: flex; flex-direction: column; align-items: center; }
.venue-section h2 { margin-bottom: 10px; }
.map-button {
  margin-top: 25px;
  padding: 14px 21px;
  background: var(--ivory-green);
  box-shadow: 0 10px 24px rgba(41,55,48,.12);
  transition: transform .2s ease, box-shadow .2s ease;
}
.map-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(41,55,48,.17);
}

/* Program */
.program-section {
  background:
    radial-gradient(circle at 15% 18%, rgba(255,255,255,.42), transparent 26%),
    #eadcca;
}
.program-list {
  width: min(610px, 100%);
  margin-top: 38px;
}
.program-row {
  grid-template-columns: 72px 1fr minmax(130px, 1.75fr);
  gap: 16px;
  padding: 17px 0;
  border-bottom: 1px solid rgba(60,50,40,.085);
}
.program-row:last-child { border-bottom: 0; }
.program-row strong {
  font-family: "Playfair Display", serif;
  font-size: 18px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.program-row > span { opacity: .7; }
.program-row p {
  line-height: 1.45;
  color: #62584d;
}

/* Dress code */
.dress-section .swatches {
  gap: 11px;
  margin-top: 27px;
}
.swatches i {
  width: 38px;
  height: 38px;
  border: 4px solid rgba(255,255,255,.65);
  box-shadow: 0 2px 7px rgba(61,51,40,.09);
}

/* Contact */
.contact-section {
  min-height: 48vh;
  background: #eee2d2;
}
.contact-section h2 { margin-bottom: 7px; }

/* Finale */
.final-section {
  min-height: 82vh;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,255,255,.055), transparent 30%),
    linear-gradient(180deg, #2d3a34 0%, #24302b 100%);
}
.final-content { display: flex; flex-direction: column; align-items: center; }
.final-symbol {
  color: #d7c3a2;
  font-size: 24px;
  opacity: .72;
}
.final-section h2 {
  margin-top: 28px;
  max-width: 650px;
}
.final-names {
  margin-top: 9px !important;
  font-family: "Playfair Display", serif;
  font-size: clamp(24px, 6vw, 38px) !important;
  line-height: 1.2 !important;
  color: #e2d7c6 !important;
  overflow-wrap: anywhere;
}
.final-names.names-medium { font-size: clamp(22px, 5.3vw, 33px) !important; }
.final-names.names-compact { font-size: clamp(19px, 4.7vw, 28px) !important; }
.final-names span { margin-inline: .25em; opacity: .7; font-style: italic; }
.final-section small {
  margin-top: 68px;
  font-size: 8px;
  letter-spacing: .24em;
  text-transform: uppercase;
}

/* Preview refinement */
.invite-embedded .invite-section {
  min-height: 58vh;
}
.invite-embedded .invite-hero {
  min-height: 680px;
}

@keyframes ivoryHeroTextIn {
  from { opacity: 0; transform: translateY(22px); filter: blur(3px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes ivoryHeroBreath {
  from { scale: 1; }
  to { scale: 1.025; }
}

@media  (max-width: 560px) {
  .invite-section {
    min-height: 58vh;
    padding: 72px 24px;
  }
  .invite-section h2 {
    font-size: clamp(35px, 10.5vw, 48px);
  }
  .invite-hero {
    min-height: 100svh;
  }
  .invite-hero-inner {
    width: 100%;
    padding-inline: 25px;
  }
  .invite-hero-inner h1 {
    font-size: clamp(50px, 15vw, 72px);
  }
  .invite-hero-inner h1.names-medium {
    font-size: clamp(43px, 12.5vw, 61px);
  }
  .invite-hero-inner h1.names-compact {
    font-size: clamp(34px, 10.2vw, 49px);
  }
  .invite-hero-inner strong { letter-spacing: .18em; }
  
  
  
  
  .countdown { gap: 5px; }
  .countdown div { padding: 18px 3px 15px; }
  .countdown strong { font-size: clamp(28px, 9vw, 39px); }
  .program-row {
    grid-template-columns: 62px 22px 1fr;
    gap: 10px;
  }
  .program-row strong { font-size: 16px; }
  .program-row p { font-size: 12px; }
  .editorial-date strong { font-size: clamp(82px, 29vw, 118px); }
}

@media  (prefers-reduced-motion: reduce) {
  .invite *,
  .invite *::before,
  .invite *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  
}

/* Stage 7: event participants */
.invite-hero-inner h1 .person-name-wrap{
  display: block;
}
.invite-hero-inner h1 .person-name-wrap > em{
  display: block;
}
.published-page, .auth-page, .center-state {
  min-height: 85vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 32px 20px;
}
.success-circle {
  width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center;
  background: #dfe9e2; color: #2e4b3e; margin-bottom: 22px;
}
.published-page h1 { font-size: clamp(42px, 6vw, 66px); max-width: 720px; margin: 0 0 12px; }
.published-page > p { color: var(--muted); max-width: 540px; line-height: 1.6; }
.published-link {
  width: min(620px, 100%);
  display: flex;
  align-items: center;
  gap: 10px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 8px 8px 8px 16px;
  margin: 24px 0;
}
.published-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; text-align: left; }
.published-link button { border: 0; border-radius: 12px; }
.published-copy-button {
  min-height: 42px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  background: #f1eee8; color: var(--ink); font: inherit; font-weight: 650; cursor: pointer; white-space: nowrap;
}
.published-copy-button:hover { background: #e8e3db; }
.published-copy-button span { overflow: visible; text-overflow: clip; white-space: nowrap; flex: none; text-align: center; }
.published-actions { display: flex; gap: 10px; }
.center-link { margin-top: 20px; }

.auth-card {
  width: min(430px, 100%);
  background: white;
  padding: 36px;
  border-radius: 24px;
  border: 1px solid var(--line);
}
.google-mark {
  width: 48px; height: 48px; display: grid; place-items: center; margin: 0 auto 20px;
  border: 1px solid var(--line); border-radius: 50%; font-weight: 800; font-size: 20px;
}
.auth-card h1 { font-family: "Playfair Display", serif; font-size: 40px; font-weight: 500; margin: 0 0 8px; }
.auth-card p { color: var(--muted); line-height: 1.6; margin-bottom: 22px; }
.empty-state {
  min-height: 330px;
  border: 1px dashed #cbc3b8;
  border-radius: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 32px;
}
.empty-state h2 { font-family: "Playfair Display", serif; font-size: 34px; margin: 0 0 8px; }
.empty-state p { color: var(--muted); }
.invite-list { display: grid; gap: 12px; }
.invite-list-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  display: grid;
  grid-template-columns: 92px 1fr auto;
  align-items: center;
  gap: 16px;
}
.invite-list-thumb { width: 92px; height: 92px; border-radius: 12px; background: #eee6da; overflow: hidden; display: grid; place-items: center; }
.invite-list-thumb img { width: 100%; height: 100%; object-fit: cover; }
.invite-list-card h3 { margin: 8px 0 3px; }
.invite-list-card p { margin: 0; color: var(--muted); font-size: 13px; }

.invite-management-card {
  grid-template-columns: 92px minmax(0, 1fr) auto;
}

.invite-list-info { min-width: 0; }

.invite-card-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  flex-wrap: wrap;
}

.compact-action {
  padding: 9px 12px;
  font-size: 12px;
}

.status-published {
  background: #e6eee8;
  color: #3e5b49;
}

.status-draft {
  background: #f0ece6;
  color: #766d62;
}

.danger-button { color: #a34b43; }
.danger-button:hover { background: #f8e9e7; }
.danger-button:disabled,
.compact-action:disabled { opacity: .45; cursor: default; }

@media  (max-width: 780px) {
  .invite-management-card {
    grid-template-columns: 74px minmax(0, 1fr);
  }

  .invite-management-card .invite-list-thumb {
    width: 74px;
    height: 74px;
  }

  .invite-card-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

.cloud-sync-note {
  margin: -14px 0 24px;
  padding: 12px 14px;
  border: 1px solid #cbd8ce;
  border-radius: 14px;
  background: #eef5f0;
  color: #395044;
  font-size: 13px;
}

.cloud-sync-note.warning {
  border-color: #ead8a6;
  background: #fff7de;
  color: #6a592d;
}

/* Stage 10 — sharing */
.published-page-rich {
  justify-content: flex-start;
  min-height: 100vh;
  padding-top: 76px;
  padding-bottom: 90px;
}

.published-hero {
  width: min(760px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.published-hero > p {
  color: var(--muted);
  max-width: 570px;
  line-height: 1.65;
}

.published-link-static a {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #f1eee8;
}

.published-primary-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 40px;
}

.published-share-layout {
  width: min(920px, 100%);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 16px;
  align-items: stretch;
}

.share-card {
  background: var(--surface);
  border: 1px solid rgba(40,35,29,.08);
  border-radius: 24px;
  padding: 24px;
  text-align: left;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 15px;
}

.share-card-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: #ebe7df;
  color: #38463f;
}

.share-card-copy h2 {
  margin: 2px 0 8px;
  font-family: "Playfair Display", serif;
  font-size: 28px;
  font-weight: 500;
}

.share-card-copy > p {
  margin: 0 0 20px;
  color: var(--muted);
  line-height: 1.55;
  font-size: 14px;
}

.share-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.share-option {
  min-height: 54px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fbfaf7;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding: 12px 14px;
  font-weight: 650;
  font-size: 13px;
}

.share-option:hover { background: #f2efe9; }
.whatsapp-option { background: #eef7f0; border-color: #d6e8da; }
.telegram-option { background: #eff6fa; border-color: #d7e4eb; }

.share-logo {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #2f8f53;
  color: white;
  font-size: 10px;
  font-weight: 800;
}

.qr-share-card { align-content: start; }
.qr-image {
  width: min(230px, 100%);
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 16px;
  margin: 10px auto 16px;
  border: 1px solid #e6e1d9;
}
.qr-placeholder {
  width: min(230px, 100%);
  aspect-ratio: 1;
  border-radius: 16px;
  margin: 10px auto 16px;
  background: #f0ece5;
}

.preview-info-card {
  width: min(920px, 100%);
  margin-top: 16px;
  background: #1f2b26;
  color: white;
  border-radius: 24px;
  padding: 26px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 210px;
  align-items: center;
  gap: 26px;
  text-align: left;
}

.preview-info-card .eyebrow { color: #b8c3bc; }
.preview-info-card h2 {
  margin: 5px 0 8px;
  font-family: "Playfair Display", serif;
  font-size: 31px;
  font-weight: 500;
}
.preview-info-card p { margin: 0; color: #cfd6d1; line-height: 1.6; font-size: 14px; }
.preview-info-card img,
.preview-info-placeholder {
  width: 210px;
  height: 118px;
  border-radius: 16px;
  object-fit: cover;
}
.preview-info-placeholder {
  display: grid;
  place-items: center;
  background: #e9dfcf;
  color: #4e453b;
  text-align: center;
  letter-spacing: .16em;
  font-size: 12px;
  line-height: 1.45;
}

@media  (max-width: 760px) {
  .published-page-rich { padding-top: 48px; }
  .published-share-layout { grid-template-columns: 1fr; }
  .preview-info-card { grid-template-columns: 1fr; }
  .preview-info-card img,
  .preview-info-placeholder { width: 100%; height: 180px; }
}

@media  (max-width: 470px) {
  .share-card { grid-template-columns: 1fr; padding: 19px; }
  .share-grid { grid-template-columns: 1fr; }
  .published-primary-actions { width: 100%; }
  .published-primary-actions > * { width: 100%; }
}

/* Stage 11 — account dashboard */
.account-shell { min-height: 70vh; }
.account-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 18px;
}
.account-stats-grid > div {
  background: var(--surface);
  border: 1px solid rgba(40,35,29,.08);
  border-radius: 18px;
  padding: 20px;
  display: grid;
  gap: 4px;
}
.account-stats-grid strong { font-family: "Playfair Display", serif; font-size: 36px; font-weight: 500; }
.account-stats-grid span { color: var(--muted); font-size: 12px; }
.account-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}
.account-filters { display: flex; gap: 7px; flex-wrap: wrap; }
.account-filters button {
  border: 1px solid var(--line);
  background: transparent;
  border-radius: 999px;
  padding: 9px 13px;
  font-size: 12px;
}
.account-filters button.active { background: var(--ink); color: white; border-color: var(--ink); }
.account-search {
  width: min(310px, 100%);
  display: flex;
  align-items: center;
  gap: 8px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 9px 14px;
  color: #8b837a;
}
.account-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); }
@media  (max-width: 700px) {
  .account-stats-grid { grid-template-columns: repeat(3, 1fr); }
  .account-stats-grid > div { padding: 15px 12px; }
  .account-stats-grid strong { font-size: 30px; }
  .account-toolbar { align-items: stretch; flex-direction: column; }
  .account-search { width: 100%; }
}
/* Gallery editor */
.gallery-editor-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 9px;
}
.gallery-editor-item, .gallery-add {
  aspect-ratio: 1 / 1;
  border-radius: 13px;
  overflow: hidden;
  position: relative;
}
.gallery-editor-item { background: #eee9e2; }
.gallery-editor-item img { width: 100%; height: 100%; object-fit: cover; }
.gallery-item-actions {
  position: absolute;
  left: 5px;
  right: 5px;
  bottom: 5px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
}
.gallery-item-actions button {
  min-width: 0;
  height: 27px;
  border: 0;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: rgba(27,25,23,.76);
  color: white;
  backdrop-filter: blur(7px);
}
.gallery-item-actions button:disabled { opacity: .28; cursor: default; }
.gallery-order-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  min-width: 23px;
  height: 23px;
  padding: 0 6px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: #3b3732;
  font-size: 10px;
  font-weight: 800;
}
.gallery-add {
  border: 1px dashed #c8c0b6;
  background: #faf8f5;
  color: #746c63;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.gallery-add:disabled { opacity: .55; cursor: progress; }
.gallery-add span { font-size: 11px; font-weight: 700; }
.gallery-add small { font-size: 10px; opacity: .65; }

/* Invitation gallery */
.gallery-section { background: #f8f2e9; min-height: auto; padding-top: 88px; padding-bottom: 88px; }
.invite-gallery {
  width: min(680px, 100%);
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  align-items: start;
}
.gallery-photo {
  margin: 0;
  overflow: hidden;
  border-radius: 4px;
  background: #ded4c7;
}
.gallery-photo img {
  width: 100%;
  height: 100%;
  min-height: 230px;
  object-fit: cover;
  transition: transform .7s ease;
}
.gallery-photo:hover img { transform: scale(1.025); }
.gallery-photo-0, .gallery-photo-4 { grid-row: span 2; }
.gallery-photo-0 img, .gallery-photo-4 img { min-height: 470px; }
.gallery-photo-2 { transform: translateY(-18px); }

@media  (max-width: 560px) {
  .gallery-editor-grid { grid-template-columns: repeat(3, 1fr); }
  .invite-gallery { gap: 7px; }
  .gallery-photo img { min-height: 180px; }
  .gallery-photo-0 img, .gallery-photo-4 img { min-height: 367px; }
}

/* Stage 6 — editorial Wedding Ivory gallery */
.gallery-section {
  background:
    radial-gradient(circle at 92% 8%, rgba(211,193,165,.18), transparent 27%),
    #f8f2e9;
  padding-top: clamp(84px, 11vw, 126px);
  padding-bottom: clamp(90px, 12vw, 138px);
}
.gallery-content { width: min(760px, 100%); }
.invite-gallery {
  width: 100%;
  margin-top: 42px;
  gap: 12px;
  grid-auto-flow: dense;
}
.gallery-photo {
  position: relative;
  border-radius: 2px;
  box-shadow: 0 10px 28px rgba(73,60,45,.08);
  background: #ddd1c2;
}
.gallery-photo:after {
  content: "";
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(255,255,255,.34);
  pointer-events: none;
  opacity: .75;
}
.gallery-photo img {
  min-height: 250px;
  transition: transform 1.05s cubic-bezier(.22,.61,.36,1), filter .6s ease;
}
.gallery-photo:hover img { transform: scale(1.035); }
.gallery-photo-0,
.gallery-photo-5 { grid-row: span 2; }
.gallery-photo-0 img,
.gallery-photo-5 img { min-height: 512px; }
.gallery-photo-1 img,
.gallery-photo-4 img { aspect-ratio: 4 / 3; }
.gallery-photo-2 { transform: translateY(28px); }
.gallery-photo-3 { transform: translateY(-12px); }

/* 1–2 photos should still feel intentional rather than like an unfinished grid. */
.gallery-count-1 { grid-template-columns: minmax(0, 1fr); max-width: 520px; margin-inline: auto; }
.gallery-count-1 .gallery-photo-0 { grid-row: auto; }
.gallery-count-1 .gallery-photo-0 img { min-height: 580px; }
.gallery-count-2 { max-width: 680px; margin-inline: auto; }
.gallery-count-2 .gallery-photo { grid-row: auto; transform: none; }
.gallery-count-2 .gallery-photo img { min-height: 390px; }

@media  (max-width: 560px) {
  .invite-gallery { gap: 7px; margin-top: 34px; }
  .gallery-photo:after { inset: 5px; }
  .gallery-photo img { min-height: 188px; }
  .gallery-photo-0 img,
  .gallery-photo-5 img { min-height: 383px; }
  .gallery-photo-2 { transform: translateY(18px); }
  .gallery-photo-3 { transform: translateY(-8px); }
  .gallery-count-1 .gallery-photo-0 img { min-height: 470px; }
  .gallery-count-2 .gallery-photo img { min-height: 260px; }
}

@media  (prefers-reduced-motion: reduce) {
  .gallery-photo:hover img { transform: none; }
}

/* Reset legacy Stage 4 span now that Stage 6 uses photo 5 as the second tall tile. */
.invite-gallery .gallery-photo-4 { grid-row: auto; }
.invite-gallery .gallery-photo-4 img { min-height: 250px; }
@media  (max-width: 560px) {
  .invite-gallery .gallery-photo-4 img { min-height: 188px; }
}
/* Stage 11 — admin */
.site-announcement {
  width: 100%;
  padding: 10px 18px;
  background: #1f2b26;
  color: #f6efe4;
  text-align: center;
  font-size: 12px;
  line-height: 1.45;
}
.site-status-card {
  margin: -12px 0 24px;
  padding: 15px 18px;
  border: 1px solid #ead8a6;
  border-radius: 16px;
  background: #fff7de;
  color: #69582e;
  display: grid;
  gap: 3px;
  font-size: 13px;
}
.disabled-link { opacity: .55; pointer-events: none; }
.admin-page {
  width: min(1180px, calc(100% - 32px));
  margin: 54px auto 110px;
}
.admin-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}
.admin-header h1 {
  margin: 0 0 8px;
  font-family: "Playfair Display", serif;
  font-size: clamp(42px, 5vw, 64px);
  font-weight: 500;
  line-height: 1;
}
.admin-header p { color: var(--muted); margin: 0; }
.admin-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}
.admin-sidebar {
  position: sticky;
  top: 98px;
  padding: 10px;
  border-radius: 20px;
  background: var(--surface);
  border: 1px solid rgba(40,35,29,.08);
  display: grid;
  gap: 5px;
}
.admin-sidebar button {
  border: 0;
  background: transparent;
  border-radius: 12px;
  padding: 12px 13px;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  color: #625c55;
}
.admin-sidebar button.active { background: #25322c; color: white; }
.admin-content {
  min-width: 0;
  background: var(--surface);
  border: 1px solid rgba(40,35,29,.08);
  border-radius: 24px;
  padding: 28px;
}
.admin-message {
  margin-bottom: 18px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #eef5f0;
  border: 1px solid #ceddd2;
  color: #385044;
  font-size: 13px;
}
.admin-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.admin-section-head > div > span { color: #938a7e; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.admin-section-head h2 { margin: 6px 0 5px; font-size: 29px; }
.admin-section-head p { margin: 0; color: var(--muted); max-width: 680px; line-height: 1.55; }
.admin-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
}
.admin-stat-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 20px;
  display: grid;
  gap: 5px;
  background: #fbfaf7;
}
.admin-stat-card strong { font-family: "Playfair Display", serif; font-size: 35px; font-weight: 500; }
.admin-stat-card span { color: var(--muted); font-size: 12px; }
.admin-overview-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 12px; }
.admin-info-card { border-radius: 16px; background: #ede9e2; padding: 20px; display: grid; gap: 8px; }
.admin-info-card svg { color: #657269; }
.admin-info-card strong { font-size: 20px; }
.admin-info-card span { color: var(--muted); font-size: 12px; }
.admin-list { display: grid; gap: 9px; }
.admin-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) 120px 145px;
  align-items: center;
  gap: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fcfbf9;
}
.admin-row-main { min-width: 0; display: grid; justify-items: start; gap: 5px; }
.admin-row-main strong { font-size: 14px; }
.admin-row-main small { color: var(--muted); }
.admin-order { display: grid; gap: 4px; }
.admin-order span { color: var(--muted); font-size: 10px; }
.admin-order input { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 8px; background: white; }
.admin-switch { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #625c55; }
.admin-switch input { width: 17px; height: 17px; accent-color: #25322c; }
.admin-switch.standalone { padding: 12px 0; }
.admin-settings-card, .admin-music-form {
  display: grid;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 20px;
  background: #fbfaf7;
}
.admin-music-form { margin-bottom: 16px; }
.admin-music-form input[type="file"] { padding: 12px; border: 1px dashed #c9c1b6; border-radius: 12px; background: white; }
.music-admin-row { grid-template-columns: minmax(0,1fr) 150px 40px; }
.music-admin-row audio { width: min(420px, 100%); height: 34px; margin-top: 4px; }
@media  (max-width: 900px) {
  .admin-layout { grid-template-columns: 1fr; }
  .admin-sidebar { position: static; grid-template-columns: repeat(5, minmax(0,1fr)); overflow-x: auto; }
  .admin-sidebar button { justify-content: center; }
  .admin-sidebar button span { display: none; }
  .admin-stats-grid { grid-template-columns: repeat(2,1fr); }
  .admin-overview-grid { grid-template-columns: 1fr; }
}
@media  (max-width: 650px) {
  .admin-page { width: calc(100% - 20px); margin-top: 38px; }
  .admin-header { align-items: stretch; flex-direction: column; }
  .admin-content { padding: 18px; border-radius: 20px; }
  .admin-section-head { flex-direction: column; }
  .admin-section-head .primary-button { width: 100%; }
  .admin-row, .music-admin-row { grid-template-columns: 1fr; }
  .admin-stats-grid { grid-template-columns: 1fr 1fr; }
}
@media  (max-width: 900px) {
  .desktop-nav, .desktop-only { display: none !important; }
  .menu-button { display: grid; place-items: center; }
  .mobile-menu {
    display: flex;
    position: fixed;
    inset: 0;
    background: #f7f3ed;
    z-index: 100;
    padding: max(90px, calc(env(safe-area-inset-top) + 68px)) max(26px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(26px, env(safe-area-inset-left));
    flex-direction: column;
    gap: 22px;
    font-size: 24px;
  }
  .menu-close { position: absolute; right: max(24px, env(safe-area-inset-right)); top: max(24px, env(safe-area-inset-top)); border: 0; background: transparent; }
  .mobile-menu .primary-button, .mobile-menu .ghost-button { font-size: 15px; margin-top: 8px; }
  .hero-shell { grid-template-columns: 1fr; padding: 54px 30px 36px; }
  .hero-copy { max-width: none; }
  .hero-visual { height: 500px; margin-top: 34px; }
  .phone { height: 500px; width: 250px; }
  .fc-one { right: 2%; top: 80px; }
  .fc-two { left: 2%; }
  .fc-three { right: 6%; bottom: 38px; }
  .steps-grid { grid-template-columns: 1fr; }
  .step-card { min-height: 190px; }
  .step-card h3 { margin-top: 35px; }
  .template-card { grid-template-columns: 1fr; }
  .template-meta { padding: 15px 10px 10px; }
  .coming-grid { grid-template-columns: 1fr; }
  .footer { grid-template-columns: 1fr; gap: 10px; text-align: center; }
  .footer p, .footer > span { text-align: center; }
  .editor-layout { grid-template-columns: 1fr; margin-top: 0; padding: 0; }
  .editor-panel { border-radius: 0; border: 0; }
  .live-preview-wrap { position: static; min-height: calc(100vh - 124px); background: #ddd8d1; padding: 20px 0 50px; }
  .preview-phone { width: min(390px, calc(100% - 24px)); height: 760px; }
  .editor-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #fff;
    border-bottom: 1px solid #ddd8d1;
  }
  .editor-tabs button {
    border: 0;
    background: transparent;
    padding: 13px;
    color: #857e76;
  }
  .editor-tabs button.active { color: var(--ink); border-bottom: 2px solid var(--ink); font-weight: 700; }
  .mobile-hidden { display: none; }
  .mobile-hidden-preview { display: none; }
  .setup-banner { border-radius: 0; margin: 0; border-left: 0; border-right: 0; }
}

@media  (max-width: 560px) {
  .site-header { width: calc(100% - 20px); margin-top: 10px; min-height: 62px; border-radius: 18px; padding: 0 14px; }
  .hero-shell { width: calc(100% - 20px); margin-top: 14px; border-radius: 26px; padding: 44px 22px 30px; }
  .hero-shell:after { inset: 10px; border-radius: 19px; }
  .hero-copy h1 { font-size: 49px; }
  .hero-copy p { font-size: 16px; }
  .hero-buttons { display: grid; }
  .hero-buttons > * { width: 100%; }
  .hero-visual { height: 450px; }
  .phone { width: 220px; height: 450px; border-width: 7px; border-radius: 40px; }
  .phone-screen { border-radius: 30px; }
  .mini-invite h3 { font-size: 34px; }
  .floating-card { padding: 10px 12px; font-size: 11px; }
  .section { margin: 85px auto; }
  .section-heading h2 { font-size: 40px; }
  .row-heading { align-items: start; flex-direction: column; }
  .template-preview { min-height: 430px; }
  .preview-ivory h3 { font-size: 39px; }
  .template-meta h3 { font-size: 31px; }
  .closing-cta { width: calc(100% - 20px); border-radius: 26px; }
  .closing-cta h2 { font-size: 40px; }
  .page-shell { width: calc(100% - 28px); margin-top: 60px; }
  .page-head h1 { font-size: 46px; }
  .editor-topbar { padding: env(safe-area-inset-top) max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left)); min-height: calc(66px + env(safe-area-inset-top)); }
  .editor-topbar .ghost-button { display: none; }
  .editor-topbar .primary-button { padding: 10px 13px; font-size: 12px; }
  .editor-topbar > div { gap: 9px; }
  .save-state { display: none; }
  .field-group, .editor-intro { padding-left: 18px; padding-right: 18px; }
  .editor-validation { margin-left: 18px; margin-right: 18px; }
  .field-grid.two { grid-template-columns: 1fr; }
  .program-edit-row { grid-template-columns: 88px 1fr 34px; }
  .preview-phone { height: calc(100svh - 160px); min-height: 600px; border-width: 5px; border-radius: 33px; }
  .preview-scroll { border-radius: 28px; }
  .invite-list-card { grid-template-columns: 68px 1fr; }
  .invite-list-thumb { width: 68px; height: 68px; }
  .invite-list-card > .ghost-button { grid-column: 1/-1; }
  .published-actions { width: 100%; flex-direction: column; }
}

@media  (max-width: 900px) {
  .template-catalog-grid .template-card:nth-child(even) .template-preview { order: initial; }
  .template-catalog-grid .template-card:nth-child(even) .template-meta { padding: 15px 10px 10px; }
}

@media  (max-width: 560px) {
  .preview-miras { min-height: 430px; }
  .preview-miras h3 { font-size: 52px; }
}

@media  (max-width: 560px) {
  .compact-language-switcher { display: none; }
  .mobile-menu .language-switcher { align-self: flex-start; font-size: 12px; }
  .invite-language-card { align-items: flex-start; flex-direction: column; }
}
.miras-invite {
  --miras-cream: #f6efe5;
  --miras-paper: #fbf7f0;
  --miras-gold: #a88955;
  --miras-dark: #302c26;
  --miras-wine: #6d3d3d;
  background: var(--miras-cream);
  color: var(--miras-dark);
}





.miras-gate-ornament { position: absolute; top: 24%; color: var(--miras-gold); opacity: .55; font-size: 22px; }






.miras-hero {
  min-height: 100svh;
  display: grid;
  place-items: center;
  text-align: center;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 24%, rgba(255,255,255,.88), transparent 28%),
    linear-gradient(180deg, #f7efe2 0%, #dfd0ba 100%);
}
.miras-hero:after {
  content: "";
  position: absolute;
  inset: 20px;
  border: 1px solid rgba(151,116,62,.34);
  border-radius: 48% 48% 10px 10px / 10% 10% 10px 10px;
  z-index: 4;
  pointer-events: none;
}
.miras-hero-media { position: absolute; inset: 0; overflow: hidden; }
.miras-hero-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s ease; }
.miras-hero.has-photo .miras-hero-media img { filter: saturate(.86) contrast(.96); }
.miras-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(31,22,18,.09), rgba(35,24,19,.58));
  z-index: 1;
}
.miras-hero:not(.has-photo) .miras-hero-overlay { opacity: 0; }
.miras-hero-inner { position: relative; z-index: 3; padding: 42px 34px; }
.miras-hero.has-photo .miras-hero-inner { color: #fff9ef; text-shadow: 0 2px 18px rgba(0,0,0,.18); }
.miras-hero-inner > span { font-size: 10px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.miras-line { width: 34px; height: 1px; background: currentColor; opacity: .55; margin: 22px auto; }
.miras-hero-inner h1 {
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-size: clamp(68px, 17vw, 110px);
  line-height: .94;
  margin: 0;
}
.miras-hero-inner h1.miras-name-medium { font-size: clamp(56px, 14vw, 92px); }
.miras-hero-inner h1.miras-name-compact { font-size: clamp(46px, 11vw, 74px); }
.miras-hero-inner p { margin: 18px 0 30px; font-family: "Playfair Display", serif; font-style: italic; font-size: 16px; }
.miras-hero-inner strong { display: block; font-size: 12px; letter-spacing: .2em; }
.miras-hero-inner small { display: block; margin-top: 10px; }
.miras-ornament { position: absolute; z-index: 2; color: var(--miras-gold); opacity: .5; }
.miras-ornament-top { top: 9%; font-size: 22px; }
.miras-ornament-side { right: 9%; bottom: 12%; font-size: 38px; }

.miras-section { background: var(--miras-paper); }
.miras-section .invite-kicker { color: #987849; }
.miras-section h2 { color: #40372d; }
.miras-centered-copy { max-width: 650px; }
.miras-mini-mark { margin-bottom: 22px; color: var(--miras-gold); opacity: .65; }
.miras-intro-section { background: #faf5ed; }
.miras-intro-section .invitation-copy { font-size: 15px; max-width: 600px; color: #776958; }

.miras-date-section { background: #e7dac5; }
.miras-date-card { width: min(570px, 100%); }
.miras-section-icon { margin-bottom: 20px; color: #8b6c40; }
.miras-date-grid { margin: 28px auto 6px; display: grid; justify-items: center; }
.miras-date-grid strong { font-family: "Playfair Display", serif; font-size: clamp(86px, 22vw, 132px); font-weight: 500; line-height: .75; }
.miras-date-grid span { margin-top: 24px; text-transform: uppercase; letter-spacing: .2em; font-size: 12px; }
.miras-date-grid small { margin-top: 8px; font-size: 13px; }

.miras-timer-section { background: #563a35; color: #fff8ec; }
.miras-timer-section .invite-kicker { color: #d8bd91; }
.miras-timer-section .countdown div { border-color: rgba(255,248,236,.22); background: rgba(255,255,255,.035); }
.miras-hosts-section { min-height: 48vh; background: #faf5ed; }
.miras-host-divider { width: 110px; height: 1px; background: rgba(154,119,66,.35); margin: 28px auto 12px; position: relative; }
.miras-host-divider span { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); background: #faf5ed; color: #a48759; padding: 0 12px; }
.miras-hosts-section h2 { font-size: clamp(36px, 9vw, 56px); }

.miras-venue-section { background: #efe5d7; }
.miras-map-button {
  margin-top: 20px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 19px;
  border-radius: 999px;
  background: #6b4a3f;
  color: #fff9f0;
  font-size: 13px;
}
.miras-program-section { background: #faf5ed; }
.miras-program-list { width: min(560px, 100%); margin: 30px auto 0; }
.miras-program-row { display: grid; grid-template-columns: 70px 30px 1fr; align-items: center; gap: 13px; padding: 15px 0; border-bottom: 1px solid rgba(138,105,61,.16); text-align: left; }
.miras-program-row strong { font-family: "Playfair Display", serif; font-size: 18px; font-weight: 500; }
.miras-program-row > span { color: #ad8b58; font-size: 9px; text-align: center; }
.miras-program-row p { margin: 0; color: #716557; }

.miras-gallery-section { background: #e9ddcd; padding-top: 90px; padding-bottom: 90px; }
.miras-gallery { width: min(680px, 100%); display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 32px; }
.miras-photo { margin: 0; overflow: hidden; border-radius: 90px 90px 12px 12px; min-height: 270px; background: #d8cab6; }
.miras-photo:nth-child(even) { border-radius: 12px 12px 90px 90px; }
.miras-photo img { width: 100%; height: 100%; object-fit: cover; min-height: 270px; transition: transform .7s ease; }
.miras-photo:hover img { transform: scale(1.025); }
.miras-gallery-1 { grid-template-columns: 1fr; max-width: 420px; margin-left: auto; margin-right: auto; }
.miras-gallery-1 .miras-photo { min-height: 480px; }
.miras-gallery-2 .miras-photo { min-height: 360px; }

.miras-dress-section { background: #faf5ed; }
.miras-swatches { display: flex; gap: 9px; margin-top: 22px; }
.miras-swatches i { width: 34px; height: 34px; border-radius: 50%; background: #eee0cb; border: 1px solid rgba(82,61,42,.12); }
.miras-swatches i:nth-child(2) { background: #d8c2a0; }
.miras-swatches i:nth-child(3) { background: #a88b63; }
.miras-swatches i:nth-child(4) { background: #8b5e53; }
.miras-swatches i:nth-child(5) { background: #503631; }
.miras-contact-section { background: #efe5d7; min-height: 48vh; }
.miras-final-section { min-height: 78vh; background: #4e3732; color: #fff7eb; }
.miras-final-section h2 { color: #fff7eb; max-width: 620px; }
.miras-final-section p { color: #e7d7c4; }
.miras-final-mark { font-size: 28px; color: #d2b482; margin-bottom: 10px; }
.miras-final-name { font-family: "Playfair Display", serif; font-size: clamp(52px, 13vw, 82px) !important; line-height: 1; margin-top: 28px !important; color: #fff7eb !important; }
.miras-final-name.miras-name-medium { font-size: clamp(46px, 11vw, 70px) !important; }
.miras-final-name.miras-name-compact { font-size: clamp(38px, 9vw, 58px) !important; }
.miras-final-section small { margin-top: 60px; opacity: .5; letter-spacing: .12em; }

@media  (max-width: 560px) {
  .miras-hero:after { inset: 12px; border-radius: 46% 46% 8px 8px / 9% 9% 8px 8px; }
  .miras-hero-inner { padding: 38px 22px; }
  .miras-program-row { grid-template-columns: 58px 20px 1fr; gap: 9px; }
  .miras-gallery { gap: 8px; }
  .miras-photo, .miras-photo img { min-height: 220px; }
  .miras-gallery-2 .miras-photo { min-height: 280px; }
}

@media  (prefers-reduced-motion: reduce) {
  .miras-hero-media img, .miras-photo img { transition: none !important; }
}

/* =========================================================
   Stage 12 — Public invitation responsive + motion refresh
   Shared by current and future event templates.
   ========================================================= */
html.invite-gate-locked,
body.invite-gate-locked {
  width: 100%;
  height: 100%;
  overflow: hidden !important;
  overscroll-behavior: none;
}
body.invite-gate-locked { touch-action: none; }

.invite.is-gated {
  height: 100dvh;
  min-height: 100dvh;
  overflow: hidden;
}
.invite.is-gated .invite-body {
  width: 100%;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  transform: none;
}





/* The document itself now appears only after the gate has finished closing. */
.invite-body {
  transition: opacity .72s cubic-bezier(.22,.61,.36,1), transform .72s cubic-bezier(.22,.61,.36,1);
}
.invite-body.shown { animation: inviteBodyEnter .72s cubic-bezier(.22,.61,.36,1) both; }
@keyframes inviteBodyEnter {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}

/* Shared reading rhythm */
.invite-section {
  min-height: auto;
  padding: clamp(72px, 8vw, 104px) max(28px, 7vw);
}
.invite-section .section-content { width: min(720px, 100%); }
.invite-kicker {
  font-size: 10px;
  letter-spacing: .27em;
}
.invite-section h2 {
  font-size: clamp(38px, 6.2vw, 56px);
  line-height: 1.04;
  margin: 18px 0;
}
.invite-section p {
  font-size: clamp(15px, 1.8vw, 16px);
  line-height: 1.75;
}
.invitation-copy {
  font-size: clamp(16px, 2vw, 17px) !important;
  line-height: 1.8 !important;
}
.intro-section,
.hosts-section,
.venue-section,
.contact-section,
.dress-section,
.miras-intro-section,
.miras-hosts-section,
.miras-venue-section,
.miras-contact-section,
.miras-dress-section {
  min-height: clamp(390px, 48svh, 520px);
}
.date-section,
.miras-date-section { min-height: clamp(570px, 67svh, 720px); }
.timer-section,
.miras-timer-section { min-height: clamp(410px, 50svh, 520px); }
.final-section,
.miras-final-section { min-height: clamp(610px, 72svh, 760px); }

/* Readability of dates/countdown on real phones. */
.countdown { width: min(620px, 100%); gap: 8px; }
.countdown div { padding: 21px 6px 18px; }
.countdown strong { font-size: clamp(32px, 6vw, 46px); }
.countdown span {
  font-size: 9px;
  line-height: 1.2;
  letter-spacing: .12em;
}
.event-time { font-size: 14px !important; }
.invite-phone-link {
  display: inline-block;
  padding: 4px 0;
  font-size: clamp(16px, 2vw, 18px);
}

/* More expressive reveal while keeping it elegant. */









/* Hero: put contrast where the names actually live rather than only at the bottom. */
.invite-hero-shade {
  background:
    radial-gradient(ellipse at 50% 52%, rgba(17,15,13,.26) 0%, rgba(17,15,13,.12) 32%, transparent 64%),
    linear-gradient(180deg, rgba(24,20,16,.09) 0%, rgba(24,20,16,.10) 37%, rgba(24,20,16,.48) 100%);
}
.miras-hero-overlay {
  background:
    radial-gradient(ellipse at 50% 52%, rgba(30,21,17,.22), transparent 58%),
    linear-gradient(180deg, rgba(31,22,18,.10), rgba(35,24,19,.55));
}
.invite-hero-inner,
.miras-hero-inner { max-width: 820px; }

/* Floating audio control: less intrusive, still easy to reach. */
.audio-fab {
  right: max(14px, env(safe-area-inset-right));
  bottom: max(14px, env(safe-area-inset-bottom));
  width: 46px;
  height: 46px;
  background: rgba(35,44,40,.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  opacity: .88;
}
.audio-fab:hover,
.audio-fab:focus-visible { opacity: 1; }

/* Large screens: the invitation becomes a deliberate editorial canvas instead of
   stretching endlessly over a monitor. */
@media  (min-width: 900px) {
  .invite:not(.invite-embedded) {
    background: #d8d2ca;
  }
  .invite:not(.invite-embedded) .invite-body {
    width: min(1120px, 100%);
    margin-inline: auto;
    box-shadow: 0 0 70px rgba(47,40,33,.12);
  }
  .invite:not(.invite-embedded) .invite-hero,
  .invite:not(.invite-embedded) .miras-hero {
    min-height: clamp(720px, 92svh, 900px);
  }
  .invite:not(.invite-embedded) .section-content {
    width: min(760px, 100%);
  }
  .invite:not(.invite-embedded) .gallery-content,
  .invite:not(.invite-embedded) .miras-gallery-section .section-content {
    width: min(900px, 100%);
  }
  .invite:not(.invite-embedded) .invite-gallery,
  .invite:not(.invite-embedded) .miras-gallery { max-width: 900px; }
  
}

/* Phones: content is intentionally denser and text is never microscopic. */
@media  (max-width: 560px) {
  
  
  
  
  
  
  

  .invite-section {
    min-height: auto;
    padding: 76px 23px;
  }
  .intro-section,
  .hosts-section,
  .venue-section,
  .contact-section,
  .dress-section,
  .miras-intro-section,
  .miras-hosts-section,
  .miras-venue-section,
  .miras-contact-section,
  .miras-dress-section { min-height: auto; }
  .date-section,
  .miras-date-section {
    min-height: 600px;
    padding-top: 86px;
    padding-bottom: 86px;
  }
  .timer-section,
  .miras-timer-section {
    min-height: 430px;
    padding-top: 78px;
    padding-bottom: 78px;
  }
  .final-section,
  .miras-final-section {
    min-height: 650px;
    padding-top: 90px;
    padding-bottom: 72px;
  }
  .invite-kicker {
    font-size: 10px;
    letter-spacing: .24em;
  }
  .invite-section h2 {
    font-size: clamp(34px, 9.4vw, 44px);
    line-height: 1.05;
    margin: 17px 0;
  }
  .invite-section p {
    font-size: 15.5px;
    line-height: 1.72;
  }
  .invitation-copy {
    font-size: 16px !important;
    line-height: 1.78 !important;
  }
  .section-icon,
  .miras-section-icon { margin-bottom: 20px; }
  .editorial-date { margin-top: 25px; }
  .editorial-date strong { font-size: clamp(88px, 27vw, 116px); }
  .editorial-date span { font-size: clamp(31px, 8.7vw, 42px); margin-top: 22px; }
  .event-time { margin-top: 30px !important; font-size: 13px !important; }

  .countdown {
    width: calc(100vw - 46px);
    max-width: 520px;
    gap: 5px;
    margin-top: 29px;
  }
  .countdown div { padding: 19px 2px 16px; }
  .countdown strong { font-size: clamp(29px, 8.8vw, 38px); }
  .countdown span { font-size: 8px; letter-spacing: .08em; }

  .hosts-flourish { margin-top: 27px; }
  .hosts-names { font-size: clamp(35px, 9.6vw, 47px) !important; }
  .map-button,
  .miras-map-button {
    min-height: 52px;
    padding-inline: 22px;
    font-size: 14px;
  }

  .gallery-section,
  .miras-gallery-section {
    padding-top: 78px;
    padding-bottom: 84px;
  }
  .invite-gallery,
  .miras-gallery { margin-top: 31px; }
  .gallery-photo-2,
  .gallery-photo-3 { transform: none; }

  .audio-fab {
    width: 44px;
    height: 44px;
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
  }
}

@media  (max-width: 380px) {
  .countdown span { font-size: 7.5px; letter-spacing: .045em; }
  .countdown strong { font-size: 28px; }
  
}




/* =========================================================
   Stage 8 — second visual pass from real iPhone + desktop QA
   Tighter rhythm, stronger desktop scale, staggered scroll motion.
   Shared rules intentionally improve every current/future invite template.
   ========================================================= */

/* Stagger the actual content inside a revealed block so scrolling feels alive
   without turning the invitation into a slide presentation. */









@keyframes terrainviteChildIn {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* Countdown cells join one after another. */






@keyframes terrainviteCountIn {
  from { opacity: 0; transform: translateY(10px) scale(.97); }
  to { opacity: 1; transform: none; }
}

/* Desktop is an editorial invitation, not a mobile page enlarged to a monitor. */
@media  (min-width: 900px) {
  .invite:not(.invite-embedded) {
    background:
      radial-gradient(circle at 20% 12%, rgba(255,255,255,.28), transparent 27%),
      radial-gradient(circle at 83% 78%, rgba(91,72,50,.08), transparent 28%),
      #d8d2ca;
  }

  .invite:not(.invite-embedded) .invite-body {
    width: min(1120px, 100%);
    box-shadow: 0 0 78px rgba(47,40,33,.14);
  }

  .invite:not(.invite-embedded) .invite-section {
    padding: 72px 76px;
  }

  .invite:not(.invite-embedded) .intro-section,
  .invite:not(.invite-embedded) .hosts-section,
  .invite:not(.invite-embedded) .contact-section,
  .invite:not(.invite-embedded) .dress-section,
  .invite:not(.invite-embedded) .miras-intro-section,
  .invite:not(.invite-embedded) .miras-hosts-section,
  .invite:not(.invite-embedded) .miras-contact-section,
  .invite:not(.invite-embedded) .miras-dress-section {
    min-height: 350px;
  }

  .invite:not(.invite-embedded) .venue-section,
  .invite:not(.invite-embedded) .miras-venue-section { min-height: 390px; }

  .invite:not(.invite-embedded) .date-section,
  .invite:not(.invite-embedded) .miras-date-section { min-height: 520px; }

  .invite:not(.invite-embedded) .timer-section,
  .invite:not(.invite-embedded) .miras-timer-section { min-height: 360px; }

  .invite:not(.invite-embedded) .final-section,
  .invite:not(.invite-embedded) .miras-final-section { min-height: 540px; }

  .invite:not(.invite-embedded) .invite-kicker {
    font-size: 11px;
    letter-spacing: .29em;
  }

  .invite:not(.invite-embedded) .invite-section h2 {
    font-size: clamp(46px, 4.2vw, 64px);
    max-width: 760px;
  }

  .invite:not(.invite-embedded) .invite-section p {
    font-size: 16px;
    line-height: 1.78;
  }

  .invite:not(.invite-embedded) .invitation-copy {
    font-size: 17px !important;
    max-width: 680px;
  }

  .invite:not(.invite-embedded) .editorial-date strong,
  .invite:not(.invite-embedded) .miras-date-grid strong { font-size: 126px; }

  .invite:not(.invite-embedded) .editorial-date span { font-size: 44px; }

  .invite:not(.invite-embedded) .countdown {
    width: min(660px, 100%);
    gap: 10px;
  }
  .invite:not(.invite-embedded) .countdown div { padding: 25px 8px 21px; }
  .invite:not(.invite-embedded) .countdown strong { font-size: 49px; }
  .invite:not(.invite-embedded) .countdown span { font-size: 9px; letter-spacing: .14em; }

  .invite:not(.invite-embedded) .map-button,
  .invite:not(.invite-embedded) .miras-map-button {
    min-height: 50px;
    padding-inline: 24px;
    font-size: 14px;
  }

  .invite:not(.invite-embedded) .invite-phone-link { font-size: 18px; }

  /* Keep the music control visually attached to the invitation canvas. */
  .invite:not(.invite-embedded) .audio-fab {
    right: max(18px, calc((100vw - 1120px) / 2 + 18px));
    bottom: 18px;
  }
}

/* Real-phone pass: less dead air, while preserving the ceremonial feeling. */
@media  (max-width: 560px) {
  .invite-section { padding: 62px 22px; }

  .intro-section,
  .hosts-section,
  .contact-section,
  .dress-section,
  .miras-intro-section,
  .miras-hosts-section,
  .miras-contact-section,
  .miras-dress-section { min-height: auto; }

  .venue-section,
  .miras-venue-section {
    min-height: auto;
    padding-top: 66px;
    padding-bottom: 68px;
  }

  .date-section,
  .miras-date-section {
    min-height: 520px;
    padding-top: 68px;
    padding-bottom: 68px;
  }

  .timer-section,
  .miras-timer-section {
    min-height: 370px;
    padding-top: 62px;
    padding-bottom: 62px;
  }

  .final-section,
  .miras-final-section {
    min-height: 560px;
    padding-top: 76px;
    padding-bottom: 62px;
  }

  .gallery-section,
  .miras-gallery-section {
    padding-top: 66px;
    padding-bottom: 72px;
  }

  .invite-section h2 {
    font-size: clamp(34px, 9vw, 42px);
    line-height: 1.04;
  }

  .intro-section .section-content,
  .miras-intro-section .section-content { max-width: 350px; }

  .editorial-date strong { font-size: clamp(88px, 26vw, 108px); }
  .editorial-date span { font-size: clamp(30px, 8.4vw, 39px); }
  .editorial-date small { margin-top: 12px; }
  .event-time { margin-top: 28px !important; }

  .countdown { margin-top: 27px; }
  .countdown div { padding-top: 18px; padding-bottom: 15px; }
  .countdown strong { font-size: clamp(29px, 8.5vw, 37px); }
  .countdown span { font-size: 8.2px; }

  .hosts-flourish { margin-top: 24px; }
  .hosts-names { margin-bottom: 0 !important; }

  .contact-section h2 { margin-top: 15px; }
  .final-section small { margin-top: 48px; }
}



/* Stage 1: event-specific editor fields */
.event-details-note {
  margin: -4px 0 2px;
  color: #8a8178;
  font-size: 12px;
  line-height: 1.55;
}

/* =========================================================
   Stage 2 Events — five new signature invitation families
   Wedding Ivory + Qyz Uzatu Miras remain their own designs.
   ========================================================= */

/* Catalog previews */
.preview-amulet,
.preview-samal,
.preview-pop,
.preview-noir,
.preview-vow {
  width: 100%; min-height: 500px; padding: 36px 28px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; position: relative; overflow: hidden;
}
.preview-amulet small,.preview-samal small,.preview-pop small,.preview-noir small,.preview-vow small { position: relative; z-index: 2; letter-spacing: .24em; font-size: 10px; }
.preview-amulet h3,.preview-samal h3,.preview-pop h3,.preview-noir h3,.preview-vow h3 { position: relative; z-index: 2; margin: 34px 0 20px; line-height: .96; font-weight: 500; }
.preview-amulet p,.preview-samal p,.preview-pop p,.preview-noir p,.preview-vow p { position: relative; z-index: 2; letter-spacing: .14em; font-size: 11px; }
.preview-amulet { background: radial-gradient(circle at 50% 45%, #6e3844, #2f1720 67%); color: #f2dfc1; }
.preview-amulet:before { content:""; position:absolute; width:245px; height:245px; border:1px solid rgba(222,183,120,.34); border-radius:50%; box-shadow:0 0 0 28px rgba(222,183,120,.06),0 0 0 56px rgba(222,183,120,.035); }
.preview-amulet h3 { font-family:"Playfair Display",serif; font-size:48px; }
.preview-amulet h3 em { display:block; color:#cba86f; font-size:22px; margin:8px 0; }
.preview-samal { background: linear-gradient(160deg,#f7f2df,#dfeedd 55%,#dcecf2); color:#375246; }
.preview-samal:before,.preview-samal:after { content:""; position:absolute; border-radius:50%; }
.preview-samal:before { width:220px;height:220px;background:rgba(255,255,255,.58);left:-82px;top:-55px; }
.preview-samal:after { width:170px;height:170px;background:rgba(238,194,101,.19);right:-48px;bottom:-38px; }
.preview-samal h3 { font-family:"Playfair Display",serif; font-size:70px; color:#31594a; }
.preview-pop { background:#19263a; color:#fff8e8; }
.preview-pop:before { content:""; position:absolute; width:250px;height:250px;border-radius:50%;background:#ef6d63;right:-95px;top:-80px; }
.preview-pop:after { content:""; position:absolute; width:160px;height:160px;border-radius:50%;background:#f2c95c;left:-75px;bottom:-65px; }
.preview-pop h3 { font-family:Arial,sans-serif; font-size:68px; font-weight:800; letter-spacing:-.06em; }
.preview-noir { background:linear-gradient(145deg,#151515,#292725); color:#e7c992; }
.preview-noir:before { content:"50"; position:absolute; font-family:"Playfair Display",serif; font-size:260px; color:rgba(231,201,146,.075); line-height:1; }
.preview-noir h3 { font-family:"Playfair Display",serif; font-size:82px; color:#f0ddbc; }
.preview-vow { background:linear-gradient(160deg,#f2e4df,#e7cac6); color:#703f48; }
.preview-vow:before { content:""; position:absolute; inset:35px; border:1px solid rgba(112,63,72,.25); border-radius:160px 160px 24px 24px; }
.preview-vow h3 { font-family:"Playfair Display",serif; font-size:45px; }
.preview-vow h3 em { display:block; font-size:22px; color:#a9757d; margin:8px; }

/* Shared foundation for new event families */
.signature-invite {
  --sig-bg:#f5efe5; --sig-surface:#fffaf1; --sig-ink:#2d2924; --sig-muted:#766d63;
  --sig-accent:#8c6448; --sig-accent-2:#c5a37a; --sig-dark:#2f302c; --sig-on-dark:#fff9ef;
  background:var(--sig-bg); color:var(--sig-ink);
}
.signature-invite .invite-body { background:var(--sig-bg); }
.signature-invite .invite-kicker { color:var(--sig-accent); }
.signature-section { background:var(--sig-bg); color:var(--sig-ink); }
.signature-content { text-align:center; margin-inline:auto; display:flex; flex-direction:column; align-items:center; }
.signature-content h2,.signature-section h2 { color:var(--sig-ink); }
.signature-section p { color:var(--sig-muted); }
.signature-mini-mark { width:9px;height:9px; transform:rotate(45deg); background:var(--sig-accent-2); margin:0 auto 20px; }
.signature-badge { display:inline-flex; align-items:center; justify-content:center; margin:4px 0 18px; padding:7px 12px; border:1px solid color-mix(in srgb,var(--sig-accent) 30%,transparent); border-radius:999px; color:var(--sig-accent); font-size:9px; text-transform:uppercase; letter-spacing:.16em; }
.signature-icon { width:28px;height:28px; color:var(--sig-accent); stroke-width:1.25; margin-bottom:19px; }

.signature-hero { min-height:100svh; position:relative; display:grid; place-items:center; overflow:hidden; color:var(--sig-on-dark); background:var(--sig-dark); }
.signature-hero-media { position:absolute; inset:0; overflow:hidden; }
.signature-hero-media img { width:100%;height:100%;object-fit:cover;display:block;transform-origin:center;transition:transform 1.2s cubic-bezier(.16,1,.3,1); }
.signature-hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(15,15,14,.2),rgba(15,15,14,.36) 58%,rgba(15,15,14,.62)); }
.signature-hero-inner { width:min(760px,calc(100% - 46px)); min-height:620px; position:relative; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:52px 28px; }
.signature-event-label { font-size:10px;letter-spacing:.28em;text-transform:uppercase;font-weight:700; }
.signature-hero h1 { margin:27px 0 20px; font-family:"Playfair Display",serif; font-weight:500; font-size:clamp(66px,12vw,116px); line-height:.9; letter-spacing:-.035em; }
.signature-hero h1 em { display:block;font-size:.34em;font-weight:400;margin:12px 0;font-style:italic;color:var(--sig-accent-2); }
.signature-hero h1.signature-names-medium { font-size:clamp(56px,10vw,96px); }
.signature-hero h1.signature-names-compact { font-size:clamp(46px,8vw,78px); }
.signature-rule { width:66px;height:1px;background:currentColor;opacity:.55;margin:3px 0 22px; }
.signature-hero-date { font-size:11px;letter-spacing:.22em; }
.signature-hero small { margin-top:10px;font-size:14px; }
.signature-chevron { position:absolute;bottom:34px;opacity:.78; }
.signature-decor { position:absolute; z-index:2; pointer-events:none; }

.signature-metric { display:flex;flex-direction:column;align-items:center;justify-content:center; }
.signature-metric strong { font-family:"Playfair Display",serif;font-size:clamp(75px,16vw,132px);line-height:.72;font-weight:500; }
.signature-metric span { margin-top:15px;font-size:9px;letter-spacing:.22em;text-transform:uppercase; }
.signature-hero .signature-metric { margin:20px 0 2px; }
.signature-hero .signature-metric + h1 { margin-top:16px; }
.signature-birthnote { margin:18px 0 0;display:grid;gap:6px;text-align:center; }
.signature-birthnote span,.signature-origin-date span { font-size:9px;letter-spacing:.18em;text-transform:uppercase; }
.signature-birthnote strong,.signature-origin-date strong { font-family:"Playfair Display",serif;font-size:19px;font-weight:500; }
.signature-origin-date { margin-top:25px;padding:18px 25px;border-top:1px solid color-mix(in srgb,var(--sig-accent) 24%,transparent);border-bottom:1px solid color-mix(in srgb,var(--sig-accent) 24%,transparent);display:grid;gap:7px; }

.signature-date-section { background:var(--sig-surface); }
.signature-date-card { text-align:center;display:flex;flex-direction:column;align-items:center; }
.signature-date { display:flex;align-items:center;justify-content:center;gap:19px;margin-top:28px; }
.signature-date > strong { font-family:"Playfair Display",serif;font-size:clamp(92px,20vw,132px);line-height:.72;font-weight:500;color:var(--sig-ink); }
.signature-date > div { display:flex;flex-direction:column;align-items:flex-start;text-align:left; }
.signature-date span { font-family:"Playfair Display",serif;font-size:clamp(34px,7vw,48px);line-height:1;text-transform:lowercase;color:var(--sig-ink); }
.signature-date small { margin-top:9px;font-size:11px;letter-spacing:.2em;color:var(--sig-muted); }
.signature-date-card .event-time { margin-top:32px!important;color:var(--sig-muted)!important;letter-spacing:.12em;text-transform:uppercase; }

.signature-timer-section { background:var(--sig-dark); color:var(--sig-on-dark); }
.signature-timer-section .invite-kicker { color:var(--sig-accent-2); }
.signature-timer-section .countdown div { border-color:color-mix(in srgb,var(--sig-on-dark) 24%,transparent); border-radius:3px; }
.signature-timer-section .countdown strong { color:var(--sig-on-dark); }
.signature-timer-section .countdown span { color:var(--sig-on-dark); }

.signature-hosts-section { background:var(--sig-bg); }
.signature-hosts { font-family:"Playfair Display",serif;font-size:clamp(38px,7vw,60px)!important;font-weight:500!important;margin:25px 0 0!important; }
.signature-side-grid { width:min(640px,100%);display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:29px; }
.signature-side-card { min-height:150px;border:1px solid color-mix(in srgb,var(--sig-accent) 24%,transparent);padding:25px 17px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px; }
.signature-side-card span,.signature-parents-card span { font-size:9px;letter-spacing:.18em;color:var(--sig-accent); }
.signature-side-card strong,.signature-parents-card strong { font-family:"Playfair Display",serif;font-size:26px;font-weight:500; }
.signature-parents-card { margin-top:28px;padding:24px 34px;border-top:1px solid color-mix(in srgb,var(--sig-accent) 28%,transparent);border-bottom:1px solid color-mix(in srgb,var(--sig-accent) 28%,transparent);display:grid;gap:9px; }

.signature-venue-section { background:var(--sig-surface); }
.signature-address { margin:7px 0 0!important; }
.signature-map-button { margin-top:26px;min-height:50px;padding:13px 23px;border-radius:999px;background:var(--sig-dark);color:var(--sig-on-dark);display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:14px; }

.signature-program-section { background:var(--sig-bg); }
.signature-program-list { width:min(650px,100%);margin:31px auto 0;display:grid; }
.signature-program-row { display:grid;grid-template-columns:72px 34px 1fr;align-items:center;text-align:left;min-height:74px;border-top:1px solid color-mix(in srgb,var(--sig-accent) 18%,transparent); }
.signature-program-row:last-child { border-bottom:1px solid color-mix(in srgb,var(--sig-accent) 18%,transparent); }
.signature-program-row strong { font-family:"Playfair Display",serif;font-size:22px;font-weight:500;color:var(--sig-accent); }
.signature-program-row > span { width:7px;height:7px;border-radius:50%;background:var(--sig-accent-2);justify-self:center; }
.signature-program-row p { margin:0!important;text-align:left!important; }

.signature-gallery-section { background:var(--sig-surface); }
.signature-gallery-content { width:min(900px,100%)!important; }
.signature-gallery { margin-top:36px;display:grid;grid-template-columns:1.1fr .9fr;grid-auto-flow:dense;gap:11px; }
.signature-photo { margin:0;min-height:250px;overflow:hidden;position:relative; }
.signature-photo img { width:100%;height:100%;min-height:250px;object-fit:cover;display:block;transition:transform 1.1s cubic-bezier(.16,1,.3,1); }
.signature-photo-0 { grid-row:span 2;min-height:515px; }
.signature-photo-0 img { min-height:515px; }
.signature-photo-3,.signature-photo-4 { grid-column:span 1; }
.signature-photo-5 { grid-column:1/-1;min-height:300px; }
.signature-photo-5 img { min-height:300px; }





.signature-dress-section { background:var(--sig-bg); }
.signature-swatches { display:flex;gap:8px;margin-top:25px; }
.signature-swatches i { width:31px;height:31px;border-radius:50%;background:var(--sig-dark); }
.signature-swatches i:nth-child(2){background:var(--sig-accent)}
.signature-swatches i:nth-child(3){background:var(--sig-accent-2)}
.signature-swatches i:nth-child(4){background:var(--sig-surface);border:1px solid rgba(0,0,0,.08)}
.signature-swatches i:nth-child(5){background:color-mix(in srgb,var(--sig-accent) 45%,#fff)}

.signature-contact-section { background:var(--sig-surface); }
.signature-contact-section h2 { font-family:"Playfair Display",serif;font-weight:500; }
.signature-final-section { min-height:570px;background:var(--sig-dark);color:var(--sig-on-dark); }
.signature-final-content { text-align:center;display:flex;flex-direction:column;align-items:center; }
.signature-final-section h2 { color:var(--sig-on-dark);max-width:660px; }
.signature-final-section p { color:var(--sig-accent-2)!important;font-family:"Playfair Display",serif;font-size:clamp(34px,7vw,54px)!important;line-height:1.1!important; }
.signature-final-section small { margin-top:45px;opacity:.52;letter-spacing:.15em;text-transform:uppercase; }
.signature-final-symbol { width:22px;height:22px;border:1px solid var(--sig-accent-2);transform:rotate(45deg);margin-bottom:16px; }

/* Gate shared */


.signature-gate-bg { position:absolute;inset:0;pointer-events:none;overflow:hidden; }











/* 1. Syrga Salu — intimate, jewel-like, two-family composition */
.theme-syrga { --sig-bg:#f3e9dd;--sig-surface:#fbf3e8;--sig-ink:#3c2027;--sig-muted:#7b6467;--sig-accent:#87394b;--sig-accent-2:#c8a46e;--sig-dark:#301820;--sig-on-dark:#faead1; }

.theme-syrga .signature-gate-bg:before { content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(135,57,75,.16);left:50%;top:50%;transform:translate(-50%,-48%);box-shadow:0 0 0 38px rgba(135,57,75,.035),0 0 0 76px rgba(135,57,75,.025); }
.theme-syrga .signature-hero.no-photo { background:radial-gradient(circle at 50% 48%,#6f3544,#301820 68%); }
.theme-syrga .signature-hero-overlay { background:linear-gradient(180deg,rgba(40,12,22,.2),rgba(40,12,22,.44) 55%,rgba(40,12,22,.78)); }
.theme-syrga .decor-a,.theme-syrga .decor-b { width:210px;height:210px;border:1px solid rgba(232,201,145,.35);border-radius:50%; }
.theme-syrga .decor-a { left:-115px;top:18%; }
.theme-syrga .decor-b { right:-110px;bottom:13%; }
.theme-syrga .signature-side-card { border-radius:999px 999px 28px 28px;padding-top:36px; }
.theme-syrga .signature-gallery { grid-template-columns:.92fr 1.08fr; }
.theme-syrga .signature-photo { border-radius:120px 120px 8px 8px; }
.theme-syrga .signature-final-symbol { border-radius:50%;transform:none;box-shadow:0 0 0 7px rgba(200,164,110,.1); }

/* 2. Tusaukeser — airy, optimistic, gentle movement */
.theme-tusau { --sig-bg:#eef3e7;--sig-surface:#fbf8ea;--sig-ink:#345146;--sig-muted:#718079;--sig-accent:#5f8977;--sig-accent-2:#d9ae58;--sig-dark:#3f6357;--sig-on-dark:#fffced; }

.theme-tusau .signature-gate-bg:before,.theme-tusau .signature-gate-bg:after { content:"";position:absolute;border-radius:50%; }
.theme-tusau .signature-gate-bg:before { width:290px;height:290px;background:rgba(255,255,255,.66);left:-100px;top:-80px; }
.theme-tusau .signature-gate-bg:after { width:220px;height:220px;background:rgba(220,177,88,.15);right:-80px;bottom:-60px; }
.theme-tusau .signature-hero.no-photo { background:linear-gradient(155deg,#6f9c89,#3f6357); }
.theme-tusau .signature-hero-overlay { background:linear-gradient(180deg,rgba(39,70,58,.08),rgba(39,70,58,.25) 48%,rgba(37,62,52,.62)); }
.theme-tusau .decor-a { width:170px;height:170px;background:rgba(255,255,255,.15);border-radius:50%;left:-55px;top:12%; }
.theme-tusau .decor-b { width:110px;height:110px;background:rgba(239,196,104,.25);border-radius:50%;right:-25px;bottom:18%; }
.theme-tusau .signature-hero h1 { font-style:italic; }
.theme-tusau .signature-date-section { background:linear-gradient(180deg,#fbf8ea,#f2f3e4); }
.theme-tusau .signature-date-card { padding:38px;border-radius:44px;background:rgba(255,255,255,.43); }
.theme-tusau .signature-timer-section { background:linear-gradient(155deg,#42695b,#315247); }
.theme-tusau .signature-gallery { gap:14px; }
.theme-tusau .signature-photo { border-radius:32px; }
.theme-tusau .signature-photo-0 { border-radius:120px 120px 32px 32px; }
.theme-tusau .signature-program-row > span { border-radius:0;transform:rotate(45deg); }
.theme-tusau .signature-map-button { background:#5f8977; }
.theme-tusau .signature-final-section { background:linear-gradient(160deg,#42695b,#2e4d43); }
.theme-tusau .signature-final-symbol { border-radius:50%;transform:none;background:var(--sig-accent-2);border:0; }

/* 3. Birthday — graphic, contemporary, energetic */
.theme-birthday { --sig-bg:#f7f0df;--sig-surface:#fff9eb;--sig-ink:#17253a;--sig-muted:#687184;--sig-accent:#ef695e;--sig-accent-2:#f0c85b;--sig-dark:#19263a;--sig-on-dark:#fff8e7; }






.theme-birthday .signature-gate-bg:before { content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:#ef695e;right:-125px;top:-100px; }
.theme-birthday .signature-gate-bg:after { content:"";position:absolute;width:230px;height:230px;border-radius:50%;background:#f0c85b;left:-105px;bottom:-85px; }
.theme-birthday .signature-hero.no-photo { background:#19263a; }
.theme-birthday .signature-hero-overlay { background:linear-gradient(180deg,rgba(13,25,42,.1),rgba(13,25,42,.24) 45%,rgba(13,25,42,.78)); }
.theme-birthday .decor-a { width:240px;height:240px;border-radius:50%;background:#ef695e;right:-135px;top:12%;mix-blend-mode:screen;opacity:.45; }
.theme-birthday .decor-b { width:170px;height:170px;border-radius:50%;background:#f0c85b;left:-100px;bottom:9%;mix-blend-mode:screen;opacity:.32; }
.theme-birthday .signature-hero h1 { font-family:Arial,sans-serif;font-weight:800;letter-spacing:-.065em; }
.theme-birthday .signature-metric strong { font-family:Arial,sans-serif;font-weight:900;letter-spacing:-.08em; }
.theme-birthday .signature-intro h2,.theme-birthday .signature-gallery-section h2,.theme-birthday .signature-venue-section h2 { font-family:Arial,sans-serif;font-weight:800;letter-spacing:-.045em; }
.theme-birthday .signature-badge { background:var(--sig-accent);border-color:var(--sig-accent);color:#fff; }
.theme-birthday .signature-date > strong { font-family:Arial,sans-serif;font-weight:900;color:#ef695e; }
.theme-birthday .signature-date span { font-family:Arial,sans-serif;font-weight:800; }
.theme-birthday .signature-timer-section { background:#19263a; }
.theme-birthday .signature-timer-section .countdown div:nth-child(1){border-color:#ef695e}.theme-birthday .signature-timer-section .countdown div:nth-child(2){border-color:#f0c85b}.theme-birthday .signature-timer-section .countdown div:nth-child(3){border-color:#72a4ab}.theme-birthday .signature-timer-section .countdown div:nth-child(4){border-color:#fff8e7}
.theme-birthday .signature-gallery { grid-template-columns:1fr 1fr;transform:rotate(-1deg); }
.theme-birthday .signature-photo { border:8px solid #fff;box-shadow:0 14px 30px rgba(22,36,56,.11); }
.theme-birthday .signature-photo:nth-child(even){transform:rotate(2deg)}
.theme-birthday .signature-photo:nth-child(odd){transform:rotate(-1deg)}
.theme-birthday .signature-map-button { background:#ef695e; }
.theme-birthday .signature-final-section { background:#ef695e; }
.theme-birthday .signature-final-section p { color:#f9e5a8!important; }
.theme-birthday .signature-final-symbol { border:0;background:#f0c85b;border-radius:50%;transform:none; }

/* 4. Jubilee — evening black tie, age as monument */
.theme-jubilee { --sig-bg:#eee8dd;--sig-surface:#f8f3ea;--sig-ink:#24211d;--sig-muted:#71695e;--sig-accent:#9d7947;--sig-accent-2:#dfc48f;--sig-dark:#171716;--sig-on-dark:#f3e4c7; }






.theme-jubilee .signature-gate-bg:before { content:"";position:absolute;inset:9%;border:1px solid rgba(223,196,143,.16); }
.theme-jubilee .signature-hero.no-photo { background:linear-gradient(145deg,#242321,#111); }
.theme-jubilee .signature-hero-overlay { background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.38) 55%,rgba(0,0,0,.78)); }
.theme-jubilee .signature-hero .signature-metric strong { font-size:clamp(130px,25vw,220px);color:#dfc48f; }
.theme-jubilee .signature-hero .signature-metric span { color:#dfc48f; }
.theme-jubilee .signature-hero h1 { font-size:clamp(56px,9vw,86px);letter-spacing:-.025em; }
.theme-jubilee .decor-a,.theme-jubilee .decor-b { width:190px;height:1px;background:rgba(223,196,143,.45); }
.theme-jubilee .decor-a { left:0;top:25%; }.theme-jubilee .decor-b { right:0;bottom:25%; }
.theme-jubilee .signature-intro { background:#171716;color:#f3e4c7; }
.theme-jubilee .signature-intro h2 { color:#f3e4c7; }.theme-jubilee .signature-intro p { color:#c9bdab; }.theme-jubilee .signature-intro .signature-badge { color:#dfc48f;border-color:rgba(223,196,143,.35); }
.theme-jubilee .signature-date-section { background:#eee8dd; }
.theme-jubilee .signature-date > strong { color:#9d7947; }
.theme-jubilee .signature-timer-section { background:#232220; }
.theme-jubilee .signature-hosts-section { background:#f8f3ea; }
.theme-jubilee .signature-gallery { gap:4px;background:#171716;padding:4px; }
.theme-jubilee .signature-photo { filter:saturate(.8) contrast(1.03); }
.theme-jubilee .signature-map-button { border-radius:2px;background:#171716; }
.theme-jubilee .signature-program-row > span { width:14px;height:1px;border-radius:0;background:#9d7947; }
.theme-jubilee .signature-final-section { background:#171716; }
.theme-jubilee .signature-final-symbol { width:50px;height:1px;transform:none;border:0;background:#dfc48f; }

/* 5. Wedding anniversary — soft, mature, story-driven */
.theme-anniversary { --sig-bg:#f2e5e0;--sig-surface:#fbf4f0;--sig-ink:#5b3039;--sig-muted:#876f73;--sig-accent:#925864;--sig-accent-2:#d2a89c;--sig-dark:#542c36;--sig-on-dark:#fff3ec; }

.theme-anniversary .signature-gate-bg:before { content:"";position:absolute;inset:7% 13%;border:1px solid rgba(91,48,57,.18);border-radius:260px 260px 28px 28px; }
.theme-anniversary .signature-hero.no-photo { background:linear-gradient(145deg,#895865,#542c36); }
.theme-anniversary .signature-hero-overlay { background:linear-gradient(180deg,rgba(69,31,42,.09),rgba(69,31,42,.3) 50%,rgba(69,31,42,.74)); }
.theme-anniversary .decor-a,.theme-anniversary .decor-b { width:210px;height:320px;border:1px solid rgba(255,239,232,.28);border-radius:120px 120px 20px 20px; }
.theme-anniversary .decor-a { left:-145px;top:18%; }.theme-anniversary .decor-b { right:-145px;bottom:12%; }
.theme-anniversary .signature-hero h1 em { color:#f0c6bb; }
.theme-anniversary .signature-metric strong { font-style:italic; }
.theme-anniversary .signature-intro { background:linear-gradient(180deg,#fbf4f0,#f2e5e0); }
.theme-anniversary .signature-origin-date { border-color:rgba(146,88,100,.24); }
.theme-anniversary .signature-date-section { background:#fbf4f0; }
.theme-anniversary .signature-date-card:before { content:"";width:1px;height:50px;background:#d2a89c;margin-bottom:24px; }
.theme-anniversary .signature-timer-section { background:#542c36; }
.theme-anniversary .signature-gallery { grid-template-columns:1fr 1fr;gap:13px; }
.theme-anniversary .signature-photo { border-radius:160px 160px 10px 10px; }
.theme-anniversary .signature-photo-0 { grid-row:span 1;min-height:390px; }.theme-anniversary .signature-photo-0 img { min-height:390px; }
.theme-anniversary .signature-photo:nth-child(3n) { border-radius:10px 10px 160px 160px; }
.theme-anniversary .signature-program-row > span { width:9px;height:9px;background:transparent;border:1px solid #925864; }
.theme-anniversary .signature-map-button { background:#925864; }
.theme-anniversary .signature-final-section { background:linear-gradient(160deg,#653943,#48242d); }
.theme-anniversary .signature-final-symbol { border-radius:50%;transform:none;position:relative; }

/* Signature motion exclusions/fixes: figures and schedule rows animate as units. */





@media  (min-width:900px) {
  .signature-invite:not(.invite-embedded) .signature-hero { min-height:clamp(720px,92svh,900px); }
  .signature-invite:not(.invite-embedded) .signature-section { padding:76px 78px; }
  .signature-invite:not(.invite-embedded) .signature-intro,.signature-invite:not(.invite-embedded) .signature-hosts-section,.signature-invite:not(.invite-embedded) .signature-contact-section,.signature-invite:not(.invite-embedded) .signature-dress-section { min-height:350px; }
  .signature-invite:not(.invite-embedded) .signature-date-section { min-height:500px; }
  .signature-invite:not(.invite-embedded) .signature-timer-section { min-height:360px; }
  .signature-invite:not(.invite-embedded) .signature-venue-section { min-height:390px; }
  .signature-invite:not(.invite-embedded) .signature-gallery-content { width:min(900px,100%)!important; }
  .signature-invite:not(.invite-embedded) .signature-date > strong { font-size:132px; }
  .signature-invite:not(.invite-embedded) .signature-date span { font-size:48px; }
  .signature-invite:not(.invite-embedded) .audio-fab { right:max(18px,calc((100vw - 1120px)/2 + 18px)); }
}

@media  (max-width:560px) {
  .preview-amulet,.preview-samal,.preview-pop,.preview-noir,.preview-vow { min-height:430px; }
  .preview-amulet h3{font-size:42px}.preview-samal h3{font-size:61px}.preview-pop h3{font-size:58px}.preview-noir h3{font-size:72px}.preview-vow h3{font-size:39px}

  .signature-hero-inner { min-height:100svh;width:calc(100% - 32px);padding:58px 17px; }
  .signature-hero h1 { font-size:clamp(58px,18vw,82px); }
  .signature-hero h1.signature-names-medium { font-size:clamp(50px,15vw,70px); }
  .signature-hero h1.signature-names-compact { font-size:clamp(42px,12.5vw,60px); }
  .signature-hero .signature-metric strong { font-size:clamp(78px,25vw,116px); }
  .signature-section { padding:62px 22px; }
  .signature-intro,.signature-hosts-section,.signature-venue-section,.signature-contact-section,.signature-dress-section { min-height:auto; }
  .signature-date-section { min-height:500px;padding-top:70px;padding-bottom:70px; }
  .signature-timer-section { min-height:370px;padding-top:62px;padding-bottom:62px; }
  .signature-final-section { min-height:550px;padding-top:76px;padding-bottom:62px; }
  .signature-date { gap:14px; }
  .signature-date > strong { font-size:clamp(86px,27vw,108px); }
  .signature-date span { font-size:clamp(29px,8.4vw,39px); }
  .signature-side-grid { grid-template-columns:1fr; }
  .signature-side-card { min-height:125px; }
  .signature-gallery { gap:8px;margin-top:31px; }
  .signature-photo,.signature-photo img { min-height:190px; }
  .signature-photo-0,.signature-photo-0 img { min-height:390px; }
  .signature-photo-5,.signature-photo-5 img { min-height:230px; }
  .signature-program-row { grid-template-columns:60px 24px 1fr;min-height:68px; }
  .signature-program-row strong { font-size:19px; }
  
  
  
  .theme-birthday .signature-gallery { transform:none; }
  .theme-birthday .signature-photo { border-width:5px; }
  .theme-anniversary .signature-photo-0,.theme-anniversary .signature-photo-0 img { min-height:300px; }
}

@media  (max-width:380px) {
  .signature-section { padding-left:18px;padding-right:18px; }
  .signature-gallery { gap:6px; }
  .signature-date { gap:10px; }
  .signature-date > strong { font-size:82px; }
  .signature-date span { font-size:28px; }
}



/* =========================================================
   Stage 3 + 4 — scalable catalog + true iframe live preview
   ========================================================= */

/* Home category strip now behaves as navigation. */
.categories-strip a {
  flex: 0 0 auto;
  padding: 8px 0;
  transition: color .2s ease, transform .2s ease;
}
.categories-strip a:hover { color: var(--ink); transform: translateY(-1px); }

/* Event-first catalog */
.event-catalog-page { width: min(1180px, calc(100% - 40px)); }
.event-catalog-head { max-width: 760px; margin-bottom: 42px; }
.event-type-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.event-type-card {
  min-height: 290px;
  background: var(--surface);
  border: 1px solid rgba(40,35,29,.08);
  border-radius: 26px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
  overflow: hidden;
}
.event-type-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 45px rgba(57,50,42,.09);
  border-color: rgba(40,35,29,.14);
}
.event-type-art {
  position: relative;
  min-height: 205px;
  border-radius: 19px;
  overflow: hidden;
  display: grid;
  place-items: center;
  isolation: isolate;
}
.event-type-art:before,
.event-type-art:after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.event-type-mark {
  position: relative;
  z-index: 2;
  font-family: "Playfair Display", serif;
  font-size: 74px;
  line-height: 1;
  font-weight: 500;
}
.event-type-name-ghost {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 12px;
  z-index: 2;
  text-align: center;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .23em;
  opacity: .66;
}
.event-type-meta {
  min-height: 68px;
  padding: 15px 9px 5px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.event-type-meta h2 {
  margin: 0 0 4px;
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-size: 24px;
}
.event-type-meta p { margin: 0; color: var(--muted); font-size: 12px; }
.event-type-arrow {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(40,35,29,.1);
  background: rgba(255,255,255,.52);
}

.event-type-wedding .event-type-art { background: linear-gradient(155deg,#f4eadc,#dfceb5); color:#443b32; }
.event-type-wedding .event-type-art:before { inset:14px; border:1px solid rgba(68,59,50,.18); }
.event-type-qyz-uzatu .event-type-art { background: linear-gradient(155deg,#f3eadc,#d7c3a5); color:#6c5235; }
.event-type-qyz-uzatu .event-type-art:before { width:150px;height:150px;border:1px solid rgba(137,100,52,.25);transform:rotate(45deg);left:-95px;top:24px; }
.event-type-qyz-uzatu .event-type-art:after { width:150px;height:150px;border:1px solid rgba(137,100,52,.25);transform:rotate(45deg);right:-95px;bottom:24px; }
.event-type-syrga-salu .event-type-art { background: radial-gradient(circle at 50% 48%,#6e3844,#2f1720 70%); color:#e8c891; }
.event-type-syrga-salu .event-type-art:before { width:150px;height:150px;border-radius:50%;border:1px solid rgba(232,200,145,.28);box-shadow:0 0 0 24px rgba(232,200,145,.04); }
.event-type-tusaukeser .event-type-art { background: linear-gradient(150deg,#f5f1dc,#dfeedd 55%,#dceaf0); color:#3f6556; }
.event-type-tusaukeser .event-type-art:before { width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.55);left:-55px;top:-45px; }
.event-type-birthday .event-type-art { background:#19263a; color:#fff7e9; }
.event-type-birthday .event-type-art:before { width:160px;height:160px;border-radius:50%;background:#ef6d63;right:-60px;top:-55px; }
.event-type-birthday .event-type-art:after { width:100px;height:100px;border-radius:50%;background:#f2c95c;left:-42px;bottom:-30px; }
.event-type-anniversary .event-type-art { background:linear-gradient(145deg,#151515,#292725); color:#e7c992; }
.event-type-anniversary .event-type-art:before { inset:18px;border:1px solid rgba(231,201,146,.16); }
.event-type-wedding-anniversary .event-type-art { background:linear-gradient(155deg,#f2e4df,#e5c8c5); color:#70424b; }
.event-type-wedding-anniversary .event-type-art:before { inset:18px 28px;border:1px solid rgba(112,66,75,.22);border-radius:100px 100px 18px 18px; }

/* Category page */
.template-category-page { width: min(1180px, calc(100% - 40px)); }
.catalog-back-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #6f685f;
  font-size: 13px;
  margin-bottom: 26px;
}
.catalog-back-link > span { display:inline-flex;align-items:center;gap:7px; }
.template-category-head { margin-bottom: 20px; }
.template-category-head h1 { text-wrap: balance; }
.event-category-switcher {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 0 18px;
  margin-bottom: 10px;
  scrollbar-width: none;
}
.event-category-switcher::-webkit-scrollbar { display:none; }

/* Scalable compact cards. Optional template.coverImage can replace the CSS preview later. */
.template-catalog-grid.category-template-grid,
.home-template-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.home-template-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.template-catalog-grid.category-template-grid .template-card,
.home-template-grid .template-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 10px;
  border-radius: 24px;
  min-width: 0;
  overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.template-catalog-grid.category-template-grid .template-card:hover,
.home-template-grid .template-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(57,50,42,.09);
  border-color: rgba(40,35,29,.13);
}
.template-catalog-grid.category-template-grid .template-card:nth-child(even) .template-preview,
.home-template-grid .template-card:nth-child(even) .template-preview { order: initial; }
.template-card-preview-link { display:block; min-width:0; }
.template-catalog-grid.category-template-grid .template-preview,
.home-template-grid .template-preview {
  width: 100%;
  min-height: 0;
  aspect-ratio: 4 / 5;
  border-radius: 17px;
}
.template-catalog-grid.category-template-grid .template-preview > div,
.home-template-grid .template-preview > div {
  min-height: 0 !important;
  height: 100%;
  width: 100%;
  padding: 24px 18px;
}
.template-cover-image { width:100%;height:100%;object-fit:cover; }
.template-catalog-grid.category-template-grid .template-meta,
.home-template-grid .template-meta,
.template-catalog-grid.category-template-grid .template-card:nth-child(even) .template-meta,
.home-template-grid .template-card:nth-child(even) .template-meta {
  padding: 17px 8px 9px;
  display: block;
}
.template-catalog-grid.category-template-grid .template-meta h3,
.home-template-grid .template-meta h3 {
  font-size: 24px;
  margin: 11px 0 8px;
}
.template-catalog-grid.category-template-grid .template-meta p,
.home-template-grid .template-meta p {
  font-size: 12px;
  line-height: 1.55;
  margin: 0;
  color: var(--muted);
}
.template-view-link {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 700;
}
.template-card .tag { font-size: 9px; padding: 6px 9px; }
.template-catalog-grid.category-template-grid .preview-ivory h3,
.home-template-grid .preview-ivory h3 { font-size: 36px; margin: 26px 0 12px; }
.template-catalog-grid.category-template-grid .preview-miras h3,
.home-template-grid .preview-miras h3 { font-size: 46px; margin: 28px 0 18px; }
.template-catalog-grid.category-template-grid .preview-amulet h3,
.home-template-grid .preview-amulet h3 { font-size: 37px; }
.template-catalog-grid.category-template-grid .preview-samal h3,
.home-template-grid .preview-samal h3 { font-size: 54px; }
.template-catalog-grid.category-template-grid .preview-pop h3,
.home-template-grid .preview-pop h3 { font-size: 52px; }
.template-catalog-grid.category-template-grid .preview-noir h3,
.home-template-grid .preview-noir h3 { font-size: 62px; }
.template-catalog-grid.category-template-grid .preview-vow h3,
.home-template-grid .preview-vow h3 { font-size: 34px; }

/* Full template demo: browsing does not create a draft. */
.template-demo-page { min-height:100vh; background:#ddd7cf; }
.template-demo-canvas { min-height:100vh; }
.template-demo-toolbar {
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  left: 50%;
  transform: translateX(-50%);
  width: min(860px, calc(100% - 24px));
  min-height: 54px;
  z-index: 260;
  padding: 7px 8px;
  border-radius: 18px;
  background: rgba(250,248,244,.92);
  border: 1px solid rgba(40,35,29,.11);
  box-shadow: 0 12px 38px rgba(31,28,24,.14);
  backdrop-filter: blur(18px);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
}
.demo-back-button,
.demo-choose-button { min-height:40px; }
.demo-back-button { justify-self:start;padding:0 10px;font-size:12px;font-weight:700; }
.demo-back-button > span { display:inline-flex;align-items:center;gap:6px; }
.demo-template-name { text-align:center; display:grid; gap:1px; }
.demo-template-name span { color:#8b8277;font-size:8px;text-transform:uppercase;letter-spacing:.16em; }
.demo-template-name strong { font-family:"Playfair Display",serif;font-weight:500;font-size:15px; }
.demo-choose-button { justify-self:end; }
.demo-choose-button > span { display:inline-flex;align-items:center;gap:6px; }

/* Real live preview: iframe has its own viewport, so mobile media queries are now truthful. */
.live-preview-wrap { width:100%; }
.preview-toolbar {
  width: 406px;
  max-width: 100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.preview-label {
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.preview-expand-button {
  width:32px;height:32px;
  border-radius:50%;
  border:1px solid #d1cbc3;
  background:rgba(255,255,255,.7);
  color:#6f685f;
  display:grid;
  place-items:center;
}
.preview-phone {
  width: 406px;
  height: 776px;
  max-width: 100%;
  background: #171716;
  border: 8px solid #171716;
  border-radius: 44px;
  box-shadow: 0 22px 60px rgba(47,43,38,.17);
  overflow: hidden;
}
.preview-iframe {
  display:block;
  width:100%;
  height:100%;
  border:0;
  border-radius:34px;
  background:#f6efe5;
}
.preview-hint {
  width:406px;
  max-width:100%;
  margin:10px 0 0;
  color:#8a8279;
  font-size:10px;
  line-height:1.5;
  text-align:center;
}
.live-preview-wrap.is-expanded {
  position: fixed;
  inset: 0;
  z-index: 400;
  top: 0;
  min-height: 100dvh;
  padding: 24px;
  background: rgba(29,27,24,.78);
  backdrop-filter: blur(12px);
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  align-content:center;
  justify-items:center;
}
.live-preview-wrap.is-expanded .preview-toolbar { color:#fff; }
.live-preview-wrap.is-expanded .preview-label { color:#f3eee7; }
.live-preview-wrap.is-expanded .preview-expand-button { background:#fff;color:#292621; }
.live-preview-wrap.is-expanded .preview-phone {
  width:406px;
  height:min(776px, calc(100dvh - 120px));
  align-self:center;
}
.live-preview-wrap.is-expanded .preview-hint { color:#ddd7cf; }

html.preview-frame-root,
body.preview-frame-root { width:100%; min-height:100%; background:#f6efe5; }
body.preview-frame-root { overflow-x:hidden; }
.preview-frame-loading {
  min-height:100dvh;
  display:grid;
  place-items:center;
  color:#8b8277;
  font-size:10px;
  letter-spacing:.24em;
  background:#f6efe5;
}

@media  (max-width: 980px) {
  .event-type-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .template-catalog-grid.category-template-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-template-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media  (max-width: 900px) {
  .preview-toolbar { width:min(406px,calc(100% - 24px)); }
  .preview-phone { width:min(406px,calc(100% - 24px)); height:calc(100svh - 160px); min-height:600px; }
  .preview-hint { width:min(406px,calc(100% - 24px)); }
  .live-preview-wrap.is-expanded { display:grid !important; padding:16px 8px; }
  .live-preview-wrap.is-expanded .preview-phone { width:min(406px,calc(100% - 16px)); }
}

@media  (max-width: 640px) {
  .event-catalog-page,
  .template-category-page { width:calc(100% - 24px); margin-top:48px; }
  .event-catalog-head { margin-bottom:28px; }
  .event-type-grid { grid-template-columns:1fr; gap:12px; }
  .event-type-card { min-height:0; }
  .event-type-art { min-height:190px; }
  .event-type-mark { font-size:66px; }
  .template-catalog-grid.category-template-grid,
  .home-template-grid { grid-template-columns:1fr; gap:14px; }
  .template-catalog-grid.category-template-grid .template-preview,
  .home-template-grid .template-preview { aspect-ratio: 4 / 4.7; }
  .template-demo-toolbar {
    top:auto;
    bottom:max(10px, env(safe-area-inset-bottom));
    width:calc(100% - 18px);
    grid-template-columns:auto 1fr;
    border-radius:17px;
  }
  .demo-template-name { display:none; }
  .demo-back-button { padding:0 7px; }
  .demo-back-button > span { font-size:0; }
  .demo-back-button svg { width:19px;height:19px; }
  .demo-choose-button { justify-self:stretch; justify-content:center; }
  .preview-hint { display:none; }
}

/* =========================================================
   Stage 5 — simpler editor + template switching
   ========================================================= */
.editor-intro .current-template-card { margin-top:22px; }
.current-template-card {
  display:grid;
  grid-template-columns:70px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:12px;
  border:1px solid #ded8d0;
  border-radius:16px;
  background:linear-gradient(135deg,#fbfaf8,#f4efe8);
}
.current-template-thumb {
  width:70px;
  height:82px;
  border-radius:12px;
  overflow:hidden;
  background:#eee7dc;
  border:1px solid rgba(67,58,49,.08);
}
.current-template-copy { min-width:0; display:grid; gap:3px; }
.current-template-copy > span { color:#867d73; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }
.current-template-copy strong { font-size:14px; line-height:1.25; }
.current-template-copy small { color:#91887e; font-size:10px; line-height:1.4; }
.template-change-button { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }

.template-switch-art {
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  padding:9px 7px !important;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  text-align:center;
  position:relative;
}
.template-switch-art small { font-size:5px !important; letter-spacing:.16em !important; }
.template-switch-art h3 { font-size:17px !important; margin:7px 0 5px !important; line-height:.9 !important; }
.template-switch-art h3 em { font-size:9px !important; margin:2px 0 !important; }
.template-switch-art p { font-size:5px !important; margin:0 !important; letter-spacing:.1em !important; }
.template-switch-art.preview-noir:before { font-size:68px !important; }
.template-switch-art.preview-amulet:before { width:70px !important; height:70px !important; box-shadow:0 0 0 8px rgba(222,183,120,.06),0 0 0 16px rgba(222,183,120,.035) !important; }
.template-switch-art.preview-samal:before { width:65px !important;height:65px !important;left:-24px !important;top:-18px !important; }
.template-switch-art.preview-samal:after { width:50px !important;height:50px !important;right:-16px !important;bottom:-14px !important; }
.template-switch-art.preview-pop:before { width:70px !important;height:70px !important;right:-28px !important;top:-24px !important; }
.template-switch-art.preview-pop:after { width:46px !important;height:46px !important;left:-21px !important;bottom:-18px !important; }
.template-switch-art.preview-vow:before { inset:8px !important; border-radius:40px 40px 7px 7px !important; }
.template-switch-cover { width:100%;height:100%;object-fit:cover;display:block; }

.template-switch-overlay {
  position:fixed;
  inset:0;
  z-index:500;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(34,31,27,.58);
  backdrop-filter:blur(10px);
}
.template-switch-dialog {
  width:min(880px,100%);
  max-height:min(820px,calc(100dvh - 48px));
  overflow:auto;
  background:#fff;
  border:1px solid #ded9d2;
  border-radius:24px;
  box-shadow:0 30px 90px rgba(30,27,23,.28);
}
.template-switch-head {
  position:sticky;
  top:0;
  z-index:3;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  padding:24px 26px 20px;
  border-bottom:1px solid #eee9e2;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
}
.template-switch-head h2 { margin:11px 0 5px; font-family:"Playfair Display",serif; font-size:30px; font-weight:500; }
.template-switch-head p { margin:0; max-width:620px; color:#817970; font-size:12px; line-height:1.55; }
.template-switch-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:20px 22px 8px; }
.template-switch-option {
  position:relative;
  min-width:0;
  border:1px solid #e1dcd5;
  background:#fff;
  border-radius:16px;
  padding:8px;
  text-align:left;
  transition:.18s ease;
}
.template-switch-option:hover { transform:translateY(-2px); border-color:#aaa197; box-shadow:0 10px 26px rgba(53,46,39,.08); }
.template-switch-option.active { border-color:#344b40; box-shadow:0 0 0 2px rgba(52,75,64,.08); }
.template-switch-option-preview { aspect-ratio:4/5; border-radius:11px; overflow:hidden; background:#eee8de; }
.template-switch-option-copy { display:grid; gap:3px; padding:10px 4px 5px; }
.template-switch-option-copy strong { font-size:12px; line-height:1.3; }
.template-switch-option-copy span { color:#8e857b; font-size:10px; }
.template-switch-check { position:absolute; right:13px; top:13px; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#20362d; color:#fff; box-shadow:0 4px 14px rgba(32,54,45,.22); }
.template-switch-empty { margin:10px 22px 22px; padding:14px 16px; border-radius:12px; background:#f7f4ef; color:#847b71; font-size:11px; line-height:1.5; }

.optional-blocks {
  padding:24px 30px 26px;
  border-bottom:1px solid #eeeae5;
  background:#fbfaf8;
}
.optional-blocks-head { margin-bottom:14px; }
.optional-blocks-head h2 { margin:0 0 5px; font-size:16px; }
.optional-blocks-head p { margin:0; color:#898078; font-size:11px; line-height:1.5; }
.optional-block-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.optional-block-button {
  min-width:0;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  gap:9px;
  align-items:center;
  padding:10px;
  border:1px solid #ddd7cf;
  border-radius:12px;
  background:#fff;
  text-align:left;
}
.optional-block-button:hover { border-color:#aaa197; }
.optional-block-button.active { background:#f0f4f1; border-color:#cad6cf; }
.optional-block-icon { width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#eee9e3;color:#7f776e; }
.optional-block-button.active .optional-block-icon { background:#284238;color:#fff; }
.optional-block-copy { min-width:0;display:grid;gap:2px; }
.optional-block-copy strong { font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.optional-block-copy small { color:#938a80;font-size:9px; }

.advanced-structure { border-bottom:0; background:#fff; }
.advanced-structure > summary {
  list-style:none;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:20px 30px;
  cursor:pointer;
  border-top:1px solid #eeeae5;
  user-select:none;
}
.advanced-structure > summary::-webkit-details-marker { display:none; }
.advanced-structure-icon { width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#f0ece6;color:#6f675f; }
.advanced-structure-copy { display:grid;gap:3px; }
.advanced-structure-copy strong { font-size:13px; }
.advanced-structure-copy small { color:#91887f;font-size:10px;line-height:1.4; }
.advanced-structure-chevron { transition:transform .18s ease; color:#8c847a; }
.advanced-structure[open] .advanced-structure-chevron { transform:rotate(180deg); }
.section-manager.compact { padding:0 30px 28px; border-bottom:0; background:#fff; }

@media  (max-width: 900px) {
  .template-switch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media  (max-width: 640px) {
  .current-template-card { grid-template-columns:58px minmax(0,1fr); }
  .current-template-thumb { width:58px;height:70px; }
  .template-change-button { grid-column:1/-1; justify-content:center; width:100%; }
  .template-switch-overlay { padding:0; align-items:end; }
  .template-switch-dialog { width:100%; max-height:92dvh; border-radius:22px 22px 0 0; }
  .template-switch-head { padding:18px 18px 15px; }
  .template-switch-head h2 { font-size:26px; }
  .template-switch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); padding:14px 14px 6px; gap:9px; }
  .template-switch-option-copy strong { font-size:11px; }
  .template-switch-empty { margin:10px 14px 18px; }
  .optional-blocks { padding:22px 18px 24px; }
  .optional-block-grid { grid-template-columns:1fr 1fr; gap:7px; }
  .optional-block-button { grid-template-columns:28px minmax(0,1fr); padding:8px; }
  .optional-block-icon { width:28px;height:28px; }
  .advanced-structure > summary { padding:18px; grid-template-columns:36px minmax(0,1fr) auto; }
  .section-manager.compact { padding:0 18px 24px; }
}

@media  (max-width: 390px) {
  .template-switch-grid { grid-template-columns:1fr 1fr; }
  .optional-block-grid { grid-template-columns:1fr; }
}

/* Stage 6 — cleaner invitation management + template version metadata */
.invite-card-statusline {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.invite-version-label {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .03em;
}
.invite-card-actions-primary {
  position: relative;
}
.invite-main-action {
  min-width: 104px;
  justify-content: center;
}
.invite-more-wrap {
  position: relative;
  display: inline-flex;
}
.invite-more-button {
  border: 1px solid var(--line);
  background: white;
}
.invite-more-menu {
  position: absolute;
  z-index: 40;
  top: calc(100% + 8px);
  right: 0;
  width: 178px;
  padding: 6px;
  border: 1px solid rgba(40,35,29,.10);
  border-radius: 14px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 42px rgba(37,31,25,.14);
  display: grid;
  gap: 2px;
}
.invite-more-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  border-radius: 10px;
  padding: 10px 11px;
  display: flex;
  align-items: center;
  gap: 9px;
  text-align: left;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.invite-more-menu button:hover { background: #f4f0e9; }
.invite-more-menu button:disabled { opacity: .45; cursor: default; }
.invite-more-menu .danger-menu-item { color: #a34b43; }
.invite-more-menu .danger-menu-item:hover { background: #f8e9e7; }

.published-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 4px 0 18px;
  color: var(--muted);
  font-size: 11px;
}
.published-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.55);
}

@media  (max-width: 920px) {
  .invite-management-card {
    grid-template-columns: 82px minmax(0, 1fr);
    align-items: start;
  }
  .invite-management-card .invite-list-thumb {
    width: 82px;
    height: 82px;
  }
  .invite-card-actions-primary {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: flex-start;
  }
}

@media  (max-width: 560px) {
  .invite-list { gap: 10px; }
  .invite-management-card {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 12px;
    padding: 11px;
  }
  .invite-management-card .invite-list-thumb {
    width: 68px;
    height: 68px;
    border-radius: 11px;
  }
  .invite-list-card h3 {
    font-size: 17px;
    margin-top: 6px;
  }
  .invite-template-label,
  .invite-version-label { font-size: 10px; }
  .invite-card-actions-primary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 7px;
  }
  .invite-card-actions-primary .compact-action {
    min-width: 0;
    padding: 9px 10px;
  }
  .invite-card-actions-primary .invite-main-action {
    width: 100%;
  }
  .invite-share-action {
    width: 40px;
    height: 40px;
    padding: 0 !important;
    font-size: 0;
    display: grid;
    place-items: center;
  }
  .invite-share-action svg { width: 16px; height: 16px; }
  .invite-more-menu {
    position: fixed;
    left: 14px;
    right: 14px;
    top: auto;
    bottom: calc(14px + env(safe-area-inset-bottom));
    width: auto;
    border-radius: 18px;
    padding: 8px;
    box-shadow: 0 24px 60px rgba(37,31,25,.22);
  }
  .invite-more-menu button {
    min-height: 48px;
    font-size: 14px;
  }
  .published-meta { margin-bottom: 14px; }
}

/* Stage 7 — scalable catalog metadata, filters and template analytics */
.template-preview-wrap { position: relative; overflow: hidden; }
.template-badge {
  position: absolute;
  z-index: 4;
  top: 12px;
  left: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 9px;
  line-height: 1;
  letter-spacing: .12em;
  font-weight: 800;
  box-shadow: 0 7px 22px rgba(0,0,0,.08);
}
.template-badge-new { background: #f4ead7; color: #775831; }
.template-badge-popular { background: #203129; color: white; }
.template-style-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.template-style-tags span {
  border: 1px solid rgba(50,44,37,.11);
  background: #f7f3ed;
  color: #746b61;
  border-radius: 999px;
  padding: 5px 8px;
  font-size: 9px;
  line-height: 1;
}
.template-style-filter {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin: 0 0 22px;
}
.template-style-filter button {
  border: 1px solid var(--line);
  background: #fff;
  color: #6c655d;
  border-radius: 999px;
  padding: 9px 13px;
  font-size: 11px;
  cursor: pointer;
}
.template-style-filter button.active { background: #26342e; border-color: #26342e; color: #fff; }

.admin-stats-grid { grid-template-columns: repeat(5, minmax(0,1fr)); }
.admin-template-list { display: grid; gap: 12px; }
.admin-template-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fcfbf9;
  padding: 16px;
  display: grid;
  gap: 15px;
}
.admin-template-card-head {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 18px;
}
.admin-template-metrics { display: grid; grid-template-columns: repeat(3, minmax(72px,1fr)); gap: 8px; }
.admin-template-metrics > span {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 9px 10px;
  display: grid;
  gap: 2px;
  min-width: 76px;
  background: #fff;
}
.admin-template-metrics strong { font-size: 18px; }
.admin-template-metrics small { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }
.admin-template-controls {
  display: grid;
  grid-template-columns: 110px 150px minmax(280px,1fr);
  align-items: end;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(50,44,37,.08);
}
.admin-select { display: grid; gap: 4px; }
.admin-select > span { color: var(--muted); font-size: 10px; }
.admin-select select { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 8px; background: white; }
.admin-template-visibility-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  min-width:0;
}
.admin-template-status {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 10px;
  border-radius:999px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.admin-template-status.is-visible { background:#e9f2ed; color:#29483a; }
.admin-template-status.is-hidden { background:#f2eee8; color:#756b5f; }
.admin-template-visibility-actions .danger-button { border-color:rgba(163,75,67,.24); color:#9b4b4b; }
@media  (max-width: 1050px) {
  .admin-stats-grid { grid-template-columns: repeat(3,1fr); }
  .admin-template-card-head { grid-template-columns: 1fr; }
  .admin-template-controls { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media  (max-width: 650px) {
  .admin-stats-grid { grid-template-columns: 1fr 1fr; }
  .admin-template-metrics { grid-template-columns: repeat(3,1fr); width:100%; }
  .admin-template-controls { grid-template-columns: 1fr; }
  .template-style-filter { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .template-style-filter::-webkit-scrollbar { display:none; }
  .template-style-filter button { flex:0 0 auto; }
}

/* =========================================================
   Stage 8 — Wedding collection 02–04 + real catalog covers
   ========================================================= */
.template-card-preview-link .template-cover-image {
  display:block;
  transition:transform .55s cubic-bezier(.16,1,.3,1), filter .35s ease;
}
.template-card:hover .template-cover-image { transform:scale(1.025); }

/* Wedding 02 — SILK: soft, romantic, arched photo composition */
.theme-wedding-silk {
  --sig-bg:#f2e7e2; --sig-surface:#fbf6f1; --sig-ink:#563b3f; --sig-muted:#876f71;
  --sig-accent:#a77771; --sig-accent-2:#c9a69e; --sig-dark:#ead9d3; --sig-on-dark:#563b3f;
}


.theme-wedding-silk .signature-gate-bg:before {
  content:""; position:absolute; width:min(480px,78vw); height:72vh; max-height:690px;
  left:50%; top:50%; transform:translate(-50%,-48%); border:1px solid rgba(117,78,82,.19);
  border-radius:260px 260px 28px 28px; box-shadow:0 0 0 28px rgba(255,255,255,.10);
}
.theme-wedding-silk .signature-gate-bg:after {
  content:""; position:absolute; left:-12%; right:-12%; bottom:-14%; height:36%;
  background:radial-gradient(ellipse at center,rgba(255,255,255,.56),transparent 66%);
}


.theme-wedding-silk .signature-hero { background:#eadbd5;color:#563b3f; }
.theme-wedding-silk .signature-hero-media {
  inset:5.5% 8.5% 7%; border-radius:240px 240px 28px 28px; box-shadow:0 25px 70px rgba(82,52,55,.18);
}
.theme-wedding-silk .signature-hero-media img { filter:saturate(.82) contrast(.96) brightness(1.04); }
.theme-wedding-silk .signature-hero-overlay {
  inset:5.5% 8.5% 7%; border-radius:240px 240px 28px 28px;
  background:linear-gradient(180deg,rgba(255,244,239,.05),rgba(75,45,50,.08) 44%,rgba(45,24,29,.56));
}
.theme-wedding-silk .signature-hero.has-photo { color:#fff9f6; }
.theme-wedding-silk .signature-hero.no-photo {
  background:radial-gradient(circle at 50% 40%,#f7ece7,#dfc7c1 76%);
}
.theme-wedding-silk .signature-hero.no-photo:before {
  content:""; position:absolute; inset:6% 9% 8%; border:1px solid rgba(93,57,62,.20); border-radius:240px 240px 28px 28px;
}
.theme-wedding-silk .signature-hero h1 { font-style:italic;font-weight:400;letter-spacing:-.055em; }
.theme-wedding-silk .signature-hero h1 em { color:#d8aaa0; }
.theme-wedding-silk .decor-a,.theme-wedding-silk .decor-b {
  width:210px;height:1px;background:rgba(112,75,78,.28);transform:rotate(-24deg);
}
.theme-wedding-silk .decor-a { left:-70px;top:17%; }.theme-wedding-silk .decor-b { right:-75px;bottom:15%; }
.theme-wedding-silk .signature-intro { background:#fbf6f1; }
.theme-wedding-silk .signature-mini-mark { width:44px;height:1px;transform:none;background:#b98982; }
.theme-wedding-silk .signature-badge { border-radius:2px;background:rgba(169,119,113,.07); }
.theme-wedding-silk .signature-date-section { background:linear-gradient(180deg,#f2e7e2,#f9f2ec); }
.theme-wedding-silk .signature-date-card:before { content:"";width:1px;height:58px;background:#c9a69e;margin-bottom:22px; }
.theme-wedding-silk .signature-date > strong { font-style:italic;color:#6a494d; }
.theme-wedding-silk .signature-timer-section { background:#64474b;color:#fff7f3; }
.theme-wedding-silk .signature-timer-section .invite-kicker { color:#e7c5bd; }
.theme-wedding-silk .signature-hosts-section { background:#fbf6f1; }
.theme-wedding-silk .signature-hosts { font-style:italic; }
.theme-wedding-silk .signature-program-row > span { width:18px;height:1px;border-radius:0;background:#b78780; }
.theme-wedding-silk .signature-gallery { grid-template-columns:1fr 1fr;gap:14px; }
.theme-wedding-silk .signature-photo { border-radius:150px 150px 14px 14px; }
.theme-wedding-silk .signature-photo:nth-child(3n) { border-radius:14px 14px 150px 150px; }
.theme-wedding-silk .signature-photo-0 { min-height:470px; }.theme-wedding-silk .signature-photo-0 img { min-height:470px; }
.theme-wedding-silk .signature-map-button { background:#67464a;color:#fff8f4; }
.theme-wedding-silk .signature-final-section { background:linear-gradient(155deg,#68484d,#4e3438);color:#fff4ef; }
.theme-wedding-silk .signature-final-section h2 { color:#fff4ef; }
.theme-wedding-silk .signature-final-section p { color:#e3bbb1!important; }
.theme-wedding-silk .signature-final-symbol { width:48px;height:1px;border:0;background:#ddb8af;transform:none; }

/* Wedding 03 — MIDNIGHT: cinematic, dark, bold typography */
.theme-wedding-midnight {
  --sig-bg:#101722; --sig-surface:#172333; --sig-ink:#f2ede3; --sig-muted:#98a2ae;
  --sig-accent:#d2b176; --sig-accent-2:#e5c993; --sig-dark:#09101a; --sig-on-dark:#f8f1e7;
}


.theme-wedding-midnight .signature-gate-bg:before {
  content:"";position:absolute;width:560px;height:560px;border-radius:50%;right:-250px;top:-230px;
  background:radial-gradient(circle,rgba(211,177,117,.28),rgba(211,177,117,0) 68%);
}
.theme-wedding-midnight .signature-gate-bg:after { content:"03";position:absolute;left:-22px;bottom:-74px;font:700 280px/1 Arial,sans-serif;color:rgba(255,255,255,.025);letter-spacing:-.08em; }





.theme-wedding-midnight .signature-hero.no-photo { background:linear-gradient(145deg,#213146,#09101a); }
.theme-wedding-midnight .signature-hero-overlay { background:linear-gradient(180deg,rgba(3,8,14,.08),rgba(5,11,18,.25) 42%,rgba(3,7,12,.86)); }
.theme-wedding-midnight .signature-hero-inner { align-items:flex-start;text-align:left;width:min(900px,calc(100% - 56px)); }
.theme-wedding-midnight .signature-hero h1 { font-family:Arial,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.075em;line-height:.78;font-size:clamp(65px,13vw,130px);margin:30px 0; }
.theme-wedding-midnight .signature-hero h1 em { font-family:Georgia,serif;text-transform:none;font-weight:400;color:#d2b176;margin:16px 0;font-size:.28em; }
.theme-wedding-midnight .signature-rule { width:min(520px,78vw);background:#d2b176; }
.theme-wedding-midnight .signature-chevron { left:28px;right:auto; }
.theme-wedding-midnight .decor-a { width:38vw;max-width:480px;height:1px;right:0;top:19%;background:rgba(210,177,118,.55); }
.theme-wedding-midnight .decor-b { width:110px;height:110px;right:9%;bottom:13%;border:1px solid rgba(210,177,118,.32);border-radius:50%; }
.theme-wedding-midnight .signature-section { background:#101722;color:#f2ede3; }
.theme-wedding-midnight .signature-section h2 { color:#f2ede3; }
.theme-wedding-midnight .signature-section p { color:#98a2ae; }
.theme-wedding-midnight .signature-intro { background:#0b111a; }
.theme-wedding-midnight .signature-mini-mark { transform:none;width:54px;height:1px;background:#d2b176; }
.theme-wedding-midnight .signature-badge { border-radius:2px;color:#d2b176;border-color:rgba(210,177,118,.35); }
.theme-wedding-midnight .signature-date-section { background:#efe9de;color:#141b24; }
.theme-wedding-midnight .signature-date-section h2,.theme-wedding-midnight .signature-date-section p { color:#141b24; }
.theme-wedding-midnight .signature-date-section .invite-kicker,.theme-wedding-midnight .signature-date > strong { color:#9b7845; }
.theme-wedding-midnight .signature-date span { font-family:Arial,sans-serif;font-weight:800;text-transform:uppercase;color:#141b24; }
.theme-wedding-midnight .signature-timer-section { background:#111c2b; }
.theme-wedding-midnight .signature-hosts-section { background:#0b111a; }
.theme-wedding-midnight .signature-hosts { font-family:Arial,sans-serif!important;font-weight:700!important;text-transform:uppercase;letter-spacing:-.04em; }
.theme-wedding-midnight .signature-venue-section { background:#efe9de;color:#141b24; }
.theme-wedding-midnight .signature-venue-section h2,.theme-wedding-midnight .signature-venue-section p { color:#141b24; }
.theme-wedding-midnight .signature-map-button { border-radius:2px;background:#111c2b;color:#f5ecdf; }
.theme-wedding-midnight .signature-program-section { background:#101722; }
.theme-wedding-midnight .signature-program-row { grid-template-columns:86px 34px 1fr;border-color:rgba(210,177,118,.18); }
.theme-wedding-midnight .signature-program-row strong { font-family:Arial,sans-serif;font-weight:700;color:#d2b176; }
.theme-wedding-midnight .signature-program-row > span { width:18px;height:1px;border-radius:0;background:#d2b176; }
.theme-wedding-midnight .signature-gallery-section { background:#080d14; }
.theme-wedding-midnight .signature-gallery { gap:4px;background:#080d14;grid-template-columns:1.25fr .75fr; }
.theme-wedding-midnight .signature-photo { filter:saturate(.72) contrast(1.09); }
.theme-wedding-midnight .signature-photo-0 { min-height:560px; }.theme-wedding-midnight .signature-photo-0 img { min-height:560px; }
.theme-wedding-midnight .signature-dress-section { background:#efe9de;color:#141b24; }
.theme-wedding-midnight .signature-dress-section h2,.theme-wedding-midnight .signature-dress-section p { color:#141b24; }
.theme-wedding-midnight .signature-contact-section { background:#111c2b; }
.theme-wedding-midnight .signature-contact-section h2 { color:#f2ede3; }
.theme-wedding-midnight .signature-final-section { background:#060a10;min-height:650px; }
.theme-wedding-midnight .signature-final-section p { font-family:Arial,sans-serif!important;font-weight:800;text-transform:uppercase;letter-spacing:-.04em;color:#d2b176!important; }
.theme-wedding-midnight .signature-final-symbol { width:80px;height:1px;border:0;background:#d2b176;transform:none; }

/* Wedding 04 — BOTANICA: sage, organic frames, calm natural rhythm */
.theme-wedding-botanical {
  --sig-bg:#edf0e7; --sig-surface:#faf8ef; --sig-ink:#405443; --sig-muted:#748076;
  --sig-accent:#758c70; --sig-accent-2:#b6a16e; --sig-dark:#40594a; --sig-on-dark:#fbf7e9;
}

.theme-wedding-botanical .signature-gate-bg:before {
  content:"";position:absolute;width:520px;height:650px;left:50%;top:50%;transform:translate(-50%,-50%);
  border:1px solid rgba(87,111,84,.24);border-radius:50% 50% 44% 56%/48% 54% 46% 52%;
}
.theme-wedding-botanical .signature-gate-bg:after {
  content:"";position:absolute;width:210px;height:360px;right:-70px;top:10%;border:2px solid rgba(91,121,86,.22);border-radius:50%;transform:rotate(26deg);
}


.theme-wedding-botanical .signature-hero { background:#dfe6d9;color:#405443; }
.theme-wedding-botanical .signature-hero-media {
  inset:6% 9% 8%;border-radius:50% 50% 44% 56%/47% 53% 47% 53%;box-shadow:0 30px 70px rgba(55,78,58,.16);
}
.theme-wedding-botanical .signature-hero-media img { filter:saturate(.78) contrast(.95) brightness(1.02); }
.theme-wedding-botanical .signature-hero-overlay {
  inset:6% 9% 8%;border-radius:50% 50% 44% 56%/47% 53% 47% 53%;
  background:linear-gradient(180deg,rgba(38,64,43,.04),rgba(35,59,42,.09) 48%,rgba(27,49,34,.56));
}
.theme-wedding-botanical .signature-hero.has-photo { color:#fbf7e9; }
.theme-wedding-botanical .signature-hero.no-photo { background:linear-gradient(145deg,#f3f0e6,#dce5d8); }
.theme-wedding-botanical .signature-hero.no-photo:before {
  content:"";position:absolute;inset:7% 10% 9%;border:1px solid rgba(75,101,74,.22);border-radius:50% 50% 44% 56%/47% 53% 47% 53%;
}
.theme-wedding-botanical .signature-hero h1 { color:inherit;font-weight:400; }
.theme-wedding-botanical .signature-hero h1 em { color:#c4b17d; }
.theme-wedding-botanical .decor-a,.theme-wedding-botanical .decor-b { width:160px;height:270px;border:1px solid rgba(83,112,81,.28);border-radius:50%; }
.theme-wedding-botanical .decor-a { left:-85px;bottom:8%;transform:rotate(-30deg); }.theme-wedding-botanical .decor-b { right:-85px;top:8%;transform:rotate(30deg); }
.theme-wedding-botanical .signature-intro { background:#faf8ef; }
.theme-wedding-botanical .signature-mini-mark { border-radius:50%;transform:none;background:#8ca084; }
.theme-wedding-botanical .signature-badge { background:rgba(117,140,112,.08); }
.theme-wedding-botanical .signature-date-section { background:#edf0e7; }
.theme-wedding-botanical .signature-date-card { padding:42px;border:1px solid rgba(91,116,87,.17);border-radius:50% 50% 36px 36px; }
.theme-wedding-botanical .signature-date > strong { color:#58705a; }
.theme-wedding-botanical .signature-timer-section { background:#40594a; }
.theme-wedding-botanical .signature-hosts-section { background:#faf8ef; }
.theme-wedding-botanical .signature-hosts { color:#405443; }
.theme-wedding-botanical .signature-program-row > span { width:10px;height:10px;background:#879d80;box-shadow:9px -7px 0 -3px #b4c0a9; }
.theme-wedding-botanical .signature-venue-section { background:#edf0e7; }
.theme-wedding-botanical .signature-map-button { background:#58705a; }
.theme-wedding-botanical .signature-gallery-section { background:#faf8ef; }
.theme-wedding-botanical .signature-gallery { gap:13px; }
.theme-wedding-botanical .signature-photo { border-radius:45% 45% 22px 22px/30% 30% 22px 22px; }
.theme-wedding-botanical .signature-photo:nth-child(3n) { border-radius:22px 22px 45% 45%/22px 22px 30% 30%; }
.theme-wedding-botanical .signature-dress-section { background:#edf0e7; }
.theme-wedding-botanical .signature-contact-section { background:#faf8ef; }
.theme-wedding-botanical .signature-final-section { background:linear-gradient(145deg,#4b6653,#344a3c); }
.theme-wedding-botanical .signature-final-section p { color:#d8c895!important; }
.theme-wedding-botanical .signature-final-symbol { border-radius:50%;transform:none;border-color:#d8c895;box-shadow:16px -10px 0 -7px #d8c895; }

@media  (max-width: 620px) {
  .theme-wedding-silk .signature-hero-media,.theme-wedding-silk .signature-hero-overlay { inset:4.5% 5.5% 6.5%;border-radius:180px 180px 22px 22px; }
  .theme-wedding-silk .signature-hero.no-photo:before { inset:5% 6% 7%;border-radius:180px 180px 22px 22px; }
  .theme-wedding-midnight .signature-hero-inner { align-items:flex-start;text-align:left;width:calc(100% - 34px);padding-inline:7px; }
  .theme-wedding-midnight .signature-hero h1 { font-size:clamp(54px,17vw,82px); }
  .theme-wedding-midnight .signature-gallery { grid-template-columns:1fr 1fr; }
  .theme-wedding-midnight .signature-photo-0,.theme-wedding-midnight .signature-photo-0 img { min-height:390px; }
  .theme-wedding-botanical .signature-hero-media,.theme-wedding-botanical .signature-hero-overlay { inset:5% 6% 7%; }
  .theme-wedding-botanical .signature-hero.no-photo:before { inset:5.5% 6.5% 7.5%; }
  .theme-wedding-botanical .signature-date-card { padding:30px 20px;border-radius:44% 44% 28px 28px; }
}

/* =========================================================
   Stage 9 — Wedding polish pass (Ivory / Silk / Midnight / Botanica)
   ========================================================= */

/* The iframe keeps native scrolling, but the fake-phone scrollbar is hidden. */
html.preview-frame-root,
body.preview-frame-root {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
html.preview-frame-root::-webkit-scrollbar,
body.preview-frame-root::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

/* Shared protection against long names / translated strings. */
.signature-invite,
.signature-invite .invite-body,
.signature-section,
.signature-hero {
  overflow-x: clip;
}
.signature-section { position: relative; }
.signature-section h2,
.signature-final-section p,
.signature-hosts,
.signature-address,
.signature-program-row p {
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.signature-content,
.signature-final-content { width: min(760px, 100%); }
.signature-final-content { margin-inline: auto; padding-inline: 4px; }
.signature-final-section p { max-width: 100%; }

/* IVORY — keep the established look, only refine text rhythm and finale. */
.invite:not(.signature-invite) .final-content { width: min(720px, 100%); margin-inline: auto; }
.invite:not(.signature-invite) .final-names { max-width: 100%; text-wrap: balance; }
.invite:not(.signature-invite) .intro-section .invitation-copy { max-width: 36ch; }

/* SILK — improve contrast, layered light, and a more recognisable soft rhythm. */
.theme-wedding-silk .signature-timer-section {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 18% 10%, rgba(255,255,255,.12), transparent 30%),
    radial-gradient(circle at 85% 85%, rgba(226,181,173,.12), transparent 32%),
    #64474b;
}
.theme-wedding-silk .signature-timer-section::before {
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,246,242,.08);
  pointer-events:none;
  z-index:0;
}
.theme-wedding-silk .signature-timer-section .section-content { position:relative; z-index:1; }
.theme-wedding-silk .signature-timer-section .countdown div {
  background: rgba(255,248,244,.055);
  border-color: rgba(255,248,244,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
.theme-wedding-silk .signature-timer-section .countdown strong {
  color:#fff8f4;
  text-shadow:0 1px 0 rgba(45,26,30,.12);
}
.theme-wedding-silk .signature-timer-section .countdown span {
  color:#f2dcd6;
  opacity:.82;
}
.theme-wedding-silk .signature-date-card {
  position:relative;
  padding:34px 30px 38px;
  border-radius:180px 180px 24px 24px;
  background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,.10));
  border:1px solid rgba(124,82,86,.10);
}
.theme-wedding-silk .signature-date-card::after {
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(169,119,113,.07);
  border-radius:166px 166px 18px 18px;
  pointer-events:none;
}
.theme-wedding-silk .signature-photo:nth-child(2n) {
  border-radius:16px 16px 145px 145px;
}
.theme-wedding-silk .signature-photo:nth-child(3n) {
  border-radius:145px 145px 16px 16px;
}
.theme-wedding-silk .signature-final-content { max-width:690px; }
.theme-wedding-silk .signature-final-section h2 { max-width:16ch; }
.theme-wedding-silk .signature-final-section p { max-width:18ch; }

/* MIDNIGHT — lift secondary copy and make the finale safely fit every phone. */
.theme-wedding-midnight .signature-intro p,
.theme-wedding-midnight .signature-program-row p,
.theme-wedding-midnight .signature-contact-section p {
  color:#c1c9d2;
}
.theme-wedding-midnight .signature-intro .invitation-copy { max-width:34ch; }
.theme-wedding-midnight .signature-timer-section .countdown div {
  background:rgba(255,255,255,.018);
  border-color:rgba(210,177,118,.24);
}
.theme-wedding-midnight .signature-timer-section .countdown strong { color:#f3eadc; }
.theme-wedding-midnight .signature-timer-section .countdown span { color:#c7d0d9;opacity:.78; }
.theme-wedding-midnight .signature-final-section {
  min-height:620px;
  padding-bottom:max(96px, calc(72px + env(safe-area-inset-bottom)));
}
.theme-wedding-midnight .signature-final-content {
  width:min(680px,100%);
  min-height:410px;
  justify-content:center;
}
.theme-wedding-midnight .signature-final-section h2 {
  max-width:15ch;
  line-height:.98;
}
.theme-wedding-midnight .signature-final-section p {
  max-width:20ch;
  margin-top:24px!important;
  font-size:clamp(29px,7.6vw,46px)!important;
  line-height:.94!important;
  letter-spacing:-.035em!important;
}
.theme-wedding-midnight .signature-final-section small { margin-top:34px; }
.theme-wedding-midnight .signature-gallery-section .invite-kicker,
.theme-wedding-midnight .signature-gallery-section h2 { color:#f2ede3; }
.theme-wedding-midnight .signature-photo { background:#111822; }

/* BOTANICA — carry the botanical identity through the whole invitation. */
.theme-wedding-botanical .signature-intro,
.theme-wedding-botanical .signature-gallery-section,
.theme-wedding-botanical .signature-contact-section,
.theme-wedding-botanical .signature-final-section {
  isolation:isolate;
}
.theme-wedding-botanical .signature-intro::before,
.theme-wedding-botanical .signature-gallery-section::before,
.theme-wedding-botanical .signature-contact-section::after,
.theme-wedding-botanical .signature-final-section::before {
  content:"";
  position:absolute;
  width:190px;
  height:105px;
  background:url("/assets/decor/botanical-sprig.svg") center/contain no-repeat;
  opacity:.38;
  pointer-events:none;
  z-index:0;
}
.theme-wedding-botanical .signature-intro::before { right:-42px;top:18px;transform:rotate(9deg); }
.theme-wedding-botanical .signature-gallery-section::before { left:-54px;top:32px;transform:scaleX(-1) rotate(5deg);opacity:.31; }
.theme-wedding-botanical .signature-contact-section::after { right:-58px;bottom:18px;transform:rotate(18deg);opacity:.28; }
.theme-wedding-botanical .signature-final-section::before { left:-44px;bottom:35px;filter:brightness(1.6);opacity:.22; }
.theme-wedding-botanical .signature-intro > *,
.theme-wedding-botanical .signature-gallery-section > *,
.theme-wedding-botanical .signature-contact-section > *,
.theme-wedding-botanical .signature-final-section > * { position:relative;z-index:1; }
.theme-wedding-botanical .signature-date-section::after {
  content:"";
  position:absolute;
  width:160px;height:88px;
  right:-35px;bottom:18px;
  background:url("/assets/decor/botanical-sprig.svg") center/contain no-repeat;
  opacity:.22;
  transform:rotate(-12deg);
  pointer-events:none;
}
.theme-wedding-botanical .signature-gallery {
  grid-template-columns:.92fr 1.08fr;
  gap:15px;
  align-items:start;
}
.theme-wedding-botanical .signature-photo-0 {
  border-radius:48% 48% 30px 30px/34% 34% 30px 30px;
}
.theme-wedding-botanical .signature-photo-1 {
  margin-top:28px;
  border-radius:28px 28px 48% 48%/28px 28px 34% 34%;
}
.theme-wedding-botanical .signature-photo-2 {
  border-radius:46% 46% 24px 24px/30% 30% 24px 24px;
}
.theme-wedding-botanical .signature-photo-3 { margin-top:18px; }
.theme-wedding-botanical .signature-photo-5 { border-radius:120px 26px 120px 26px/80px 26px 80px 26px; }
.theme-wedding-botanical .signature-badge {
  backdrop-filter:blur(5px);
  border-color:rgba(117,140,112,.22);
}
.theme-wedding-botanical .signature-final-content { max-width:650px; }
.theme-wedding-botanical .signature-final-section h2 { max-width:15ch; }
.theme-wedding-botanical .signature-final-section p { max-width:18ch; }

@media  (max-width:560px) {
  .signature-final-content { width:100%; }
  .signature-final-section p { padding-inline:2px; }

  .theme-wedding-silk .signature-date-card {
    width:min(330px,100%);
    padding:30px 18px 34px;
  }
  .theme-wedding-silk .signature-timer-section::before { inset:12px; }
  .theme-wedding-silk .signature-gallery { gap:9px; }
  .theme-wedding-silk .signature-photo:nth-child(2n),
  .theme-wedding-silk .signature-photo:nth-child(3n) { border-radius:100px 100px 12px 12px; }
  .theme-wedding-silk .signature-photo:nth-child(2n) { border-radius:12px 12px 100px 100px; }

  .theme-wedding-midnight .signature-intro p { font-size:15px;line-height:1.65; }
  .theme-wedding-midnight .signature-final-section {
    min-height:590px;
    padding-top:70px;
    padding-bottom:max(108px, calc(82px + env(safe-area-inset-bottom)));
  }
  .theme-wedding-midnight .signature-final-content { min-height:390px; }
  .theme-wedding-midnight .signature-final-section h2 { font-size:clamp(35px,10.2vw,47px); }
  .theme-wedding-midnight .signature-final-section p {
    font-size:clamp(28px,8vw,35px)!important;
    max-width:15ch;
  }

  .theme-wedding-botanical .signature-intro::before,
  .theme-wedding-botanical .signature-gallery-section::before,
  .theme-wedding-botanical .signature-contact-section::after,
  .theme-wedding-botanical .signature-final-section::before {
    width:145px;height:82px;opacity:.25;
  }
  .theme-wedding-botanical .signature-gallery { gap:9px; }
  .theme-wedding-botanical .signature-photo-1 { margin-top:18px; }
  .theme-wedding-botanical .signature-photo-3 { margin-top:10px; }
}

@media  (max-width:380px) {
  .theme-wedding-midnight .signature-final-section p { font-size:27px!important; }
  .theme-wedding-botanical .signature-gallery { gap:7px; }
}

/* =========================================================
   Stage 10 — CMS foundation + public cleanup
   ========================================================= */
.home-mini-invite {
  background:
    linear-gradient(180deg, rgba(246,238,226,.14), rgba(231,217,196,.18)),
    url("/assets/decor/home-phone-bg.svg") center/cover no-repeat;
}
.home-mini-invite:before {
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:150px;
  pointer-events:none;
}
.home-events-section { padding-top: 40px; }
.home-event-grid { margin-top: 20px; }
.event-type-art-image { background:#eee8df; }
.event-type-art-image:before,.event-type-art-image:after { display:none; }
.event-type-art-image img { width:100%; height:100%; object-fit:cover; display:block; }

.admin-content-card { gap:18px; }
.admin-cms-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.admin-cms-grid textarea { resize:vertical; }
.admin-image-field { display:grid; gap:8px; }
.admin-field-label { font-size:11px; color:var(--muted); font-weight:600; }
.admin-image-field-row {
  display:grid;
  grid-template-columns:128px minmax(0,1fr);
  gap:14px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:14px;
  background:white;
  padding:10px;
}
.admin-image-preview {
  height:92px;
  border-radius:10px;
  background:#f0ece5;
  overflow:hidden;
  display:grid;
  place-items:center;
  color:#8a8176;
}
.admin-image-preview img { width:100%; height:100%; object-fit:cover; display:block; }
.admin-image-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.text-button { border:0; background:none; padding:5px 0; cursor:pointer; font:inherit; }
.danger-text { color:#9b4b4b; }
.category-controls { grid-template-columns:110px 150px; }
.visually-hidden {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

@media  (max-width: 900px) {
  .admin-cms-grid { grid-template-columns:1fr; }
  .admin-image-field-row { grid-template-columns:100px minmax(0,1fr); }
}
@media  (max-width: 650px) {
  .home-events-section { padding-top:22px; }
  .admin-image-field-row { grid-template-columns:1fr; }
  .admin-image-preview { height:150px; }
  .category-controls { grid-template-columns:1fr; }
}

/* Stage 11 — demo content management */
.admin-demo-panel { display:grid; gap:18px; }
.admin-demo-list { display:grid; gap:16px; }
.admin-demo-card { border:1px solid var(--line); border-radius:20px; padding:16px; background:rgba(255,255,255,.72); box-shadow:0 12px 30px rgba(46,38,28,.04); }
.admin-demo-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
.admin-demo-card-head > div { display:grid; gap:3px; }
.admin-demo-card-head strong { font-size:16px; }
.admin-demo-card-head small { color:var(--muted); font-size:11px; }
.admin-demo-grid { display:grid; grid-template-columns:minmax(180px,.8fr) minmax(280px,1.35fr) minmax(220px,1fr); gap:14px; align-items:start; }
.admin-demo-block { border:1px solid var(--line); border-radius:16px; padding:12px; background:var(--surface); display:grid; gap:10px; min-width:0; }
.admin-demo-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); display:flex; align-items:center; gap:6px; }
.admin-demo-hero-preview { aspect-ratio:4/5; border-radius:13px; overflow:hidden; background:#eee8de; }
.admin-demo-hero-preview img { width:100%; height:100%; display:block; object-fit:cover; }
.admin-demo-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.admin-demo-gallery-item { aspect-ratio:1/1; position:relative; border-radius:10px; overflow:hidden; background:#eee8de; }
.admin-demo-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; }
.admin-demo-gallery-item button { position:absolute; top:5px; right:5px; width:24px; height:24px; border:0; border-radius:999px; background:rgba(18,18,18,.74); color:white; display:grid; place-items:center; cursor:pointer; }
.admin-file-button { position:relative; overflow:hidden; width:max-content; }
.admin-file-button input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.admin-demo-hint { color:var(--muted); line-height:1.45; font-size:10px; }
.admin-demo-music-select { width:100%; min-height:42px; border:1px solid var(--line); border-radius:12px; padding:0 11px; background:white; color:var(--ink); }
.admin-demo-block audio { width:100%; max-width:100%; }
@media  (max-width: 1100px) { .admin-demo-grid { grid-template-columns:1fr 1.4fr; } .admin-demo-grid > .admin-demo-block:last-child { grid-column:1 / -1; } }
@media  (max-width: 720px) { .admin-demo-card { padding:12px; } .admin-demo-card-head { flex-direction:column; } .admin-demo-grid { grid-template-columns:1fr; } .admin-demo-grid > .admin-demo-block:last-child { grid-column:auto; } .admin-demo-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* Stage 12 — public text CMS */
.admin-text-toolbar {
  display:grid;
  grid-template-columns:minmax(240px,1fr) minmax(190px,.55fr) auto;
  gap:10px;
  align-items:center;
  margin-bottom:14px;
}
.admin-text-search {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  border:1px solid var(--line);
  border-radius:12px;
  background:white;
  padding:0 12px;
}
.admin-text-search input { border:0; outline:0; width:100%; min-width:0; background:transparent; color:var(--ink); }
.admin-text-group-select { min-height:42px; border:1px solid var(--line); border-radius:12px; padding:0 12px; background:white; color:var(--ink); }
.admin-text-summary {
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  gap:10px;
  align-items:baseline;
  margin-bottom:12px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(244,239,231,.72);
  border:1px solid var(--line);
}
.admin-text-summary strong { font-size:13px; }
.admin-text-summary span { font-size:11px; color:var(--muted); }
.admin-text-summary small { color:var(--muted); line-height:1.45; justify-self:end; text-align:right; }
.admin-text-list { display:grid; gap:12px; }
.admin-text-card { border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.78); padding:14px; display:grid; gap:12px; }
.admin-text-card-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.admin-text-card-head > div { display:grid; gap:4px; min-width:0; }
.admin-text-card-head strong { font-size:13px; }
.admin-text-card-head code { color:var(--muted); font-size:10px; overflow-wrap:anywhere; }
.admin-text-changed { flex:0 0 auto; border-radius:999px; padding:5px 8px; background:#e9f0ea; color:#2f5840; font-size:9px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.admin-text-languages { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.admin-text-language { display:grid; gap:7px; border:1px solid var(--line); border-radius:14px; padding:10px; background:var(--surface); }
.admin-text-language.is-overridden { border-color:#b9c8bb; box-shadow:inset 0 0 0 1px rgba(47,88,64,.07); }
.admin-text-language > span { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.admin-text-language b { font-size:10px; letter-spacing:.08em; }
.admin-text-language button { border:0; background:transparent; color:var(--muted); font-size:10px; text-decoration:underline; cursor:pointer; padding:0; }
.admin-text-language textarea { width:100%; resize:vertical; min-height:64px; border:1px solid var(--line); border-radius:10px; padding:10px; background:white; color:var(--ink); line-height:1.45; font:inherit; font-size:12px; }
.admin-text-language textarea:focus { outline:2px solid rgba(37,50,44,.12); outline-offset:1px; }
@media  (max-width: 960px) {
  .admin-sidebar { grid-template-columns:repeat(auto-fit,minmax(46px,1fr)); }
  .admin-text-toolbar { grid-template-columns:1fr 1fr; }
  .admin-text-toolbar .ghost-button { grid-column:1 / -1; width:100%; }
  .admin-text-summary { grid-template-columns:1fr auto; }
  .admin-text-summary small { grid-column:1 / -1; justify-self:start; text-align:left; }
}
@media  (max-width: 700px) {
  .admin-text-toolbar { grid-template-columns:1fr; }
  .admin-text-toolbar .ghost-button { grid-column:auto; }
  .admin-text-languages { grid-template-columns:1fr; }
  .admin-text-card-head { flex-direction:column; }
  .admin-text-summary { grid-template-columns:1fr; }
}
.admin-text-vars { color:#8b6f4e; font-size:10px; line-height:1.35; }

/* =========================================================
   Stage 13 — default event content CMS
   ========================================================= */
.admin-event-content-panel { display:grid; gap:18px; }
.admin-event-content-toolbar {
  display:grid;
  grid-template-columns:minmax(220px,1.2fr) minmax(180px,.8fr) auto;
  gap:12px;
  align-items:end;
  padding:14px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.72);
}
.admin-language-picker { display:grid; gap:7px; }
.admin-language-picker > span { font-size:11px; font-weight:600; color:var(--muted); }
.admin-language-buttons { display:flex; gap:6px; }
.admin-language-buttons button {
  min-height:40px;
  padding:0 16px;
  border:1px solid var(--line);
  border-radius:999px;
  background:white;
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.admin-language-buttons button.active { background:#25322c; border-color:#25322c; color:white; }
.admin-event-content-card {
  display:grid;
  gap:14px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:rgba(255,255,255,.76);
  box-shadow:0 12px 30px rgba(46,38,28,.035);
}
.admin-event-content-card h3 { margin:0; font-size:18px; }
.admin-event-subgroup { display:grid; gap:10px; padding-top:4px; }
.admin-event-subgroup > strong { font-size:12px; color:#514a42; }
.admin-span-two { grid-column:1 / -1; }
.admin-event-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.admin-event-program-list { display:grid; gap:8px; }
.admin-event-program-row { display:grid; grid-template-columns:120px minmax(0,1fr) 42px; gap:8px; align-items:center; }
.admin-event-program-row input {
  width:100%;
  min-height:42px;
  border:1px solid var(--line);
  border-radius:11px;
  background:white;
  padding:0 11px;
  font:inherit;
}
.admin-event-sections { display:grid; gap:12px; }
.admin-event-section-row { display:grid; gap:10px; padding:14px; border:1px solid var(--line); border-radius:15px; background:var(--surface); }
.admin-event-section-row > strong { font-size:13px; }

@media  (max-width: 900px) {
  .admin-event-content-toolbar { grid-template-columns:1fr 1fr; }
  .admin-event-content-toolbar > .ghost-button { grid-column:1 / -1; justify-self:start; }
}
@media  (max-width: 650px) {
  .admin-event-content-toolbar { grid-template-columns:1fr; }
  .admin-event-content-toolbar > .ghost-button { grid-column:auto; }
  .admin-span-two { grid-column:auto; }
  .admin-event-program-row { grid-template-columns:92px minmax(0,1fr) 40px; }
  .admin-event-content-card { padding:14px; }
}

/* Stage 14 — reusable media library */
.media-library-stats {
  display:flex; flex-wrap:wrap; gap:10px; margin:0 0 18px;
}
.media-library-stats span {
  display:inline-flex; align-items:center; gap:5px; padding:8px 12px; border:1px solid var(--line, #e9e5de); border-radius:999px;
  background:#fff; font-size:13px; color:#6e685f;
}
.media-library-stats strong { color:#171713; }
.media-library-toolbar,
.media-picker-toolbar {
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:18px;
}
.media-search {
  min-width:240px; flex:1 1 320px; display:flex; align-items:center; gap:9px; padding:0 12px; height:42px;
  border:1px solid #e4dfd7; border-radius:12px; background:#fff; color:#7a746c;
}
.media-search input { border:0; outline:0; background:transparent; width:100%; min-width:0; font:inherit; color:#201f1b; }
.media-filter-row { display:flex; gap:6px; flex-wrap:wrap; }
.media-filter-row button {
  border:1px solid #e4dfd7; background:#fff; border-radius:999px; padding:9px 12px; font:inherit; font-size:13px; cursor:pointer; color:#5e5952;
}
.media-filter-row button.active { background:#191914; color:#fff; border-color:#191914; }
.admin-media-grid {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px;
}
.admin-media-card {
  position:relative; min-width:0; border:1px solid #e8e3db; border-radius:16px; background:#fff; overflow:hidden;
  box-shadow:0 8px 28px rgba(40,35,25,.05);
}
.admin-media-thumb { aspect-ratio:4/3; background:#f2efe9; overflow:hidden; }
.admin-media-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.admin-media-meta { display:grid; gap:5px; padding:11px 42px 12px 12px; min-width:0; }
.admin-media-meta strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.admin-media-meta small { color:#807970; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-media-card > .icon-button { position:absolute; right:8px; bottom:9px; }
.media-usage { width:max-content; max-width:100%; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:4px 7px; border-radius:999px; }
.media-usage.used { color:#6a4b0d; background:#fff1c8; }
.media-usage.free { color:#376b4a; background:#e8f5ec; }
.media-usage-paths { white-space:normal !important; line-height:1.25; }

.media-picker-backdrop {
  position:fixed; inset:0; z-index:3000; display:grid; place-items:center; padding:20px; background:rgba(18,17,14,.58); backdrop-filter:blur(8px);
}
.media-picker-dialog {
  width:min(980px, 100%); max-height:min(86vh, 820px); display:grid; grid-template-rows:auto auto minmax(0,1fr) auto;
  overflow:hidden; border-radius:22px; background:#f8f6f1; box-shadow:0 28px 90px rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.42);
}
.media-picker-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:22px 22px 12px; }
.media-picker-head h2 { margin:4px 0 0; font-size:25px; }
.media-picker-head p { margin:5px 0 0; color:#7b756c; font-size:13px; }
.media-picker-toolbar { padding:0 22px 14px; margin:0; }
.media-picker-grid {
  min-height:0; overflow:auto; padding:4px 22px 22px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px;
  scrollbar-width:thin;
}
.media-picker-item {
  position:relative; display:block; padding:0; overflow:hidden; text-align:left; border:1px solid #e6e0d7; border-radius:14px; background:#fff; cursor:pointer;
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.media-picker-item:hover { transform:translateY(-2px); box-shadow:0 10px 26px rgba(37,32,25,.09); }
.media-picker-item.selected { border-color:#222018; box-shadow:0 0 0 2px rgba(34,32,24,.12); }
.media-picker-thumb { aspect-ratio:4/3; overflow:hidden; background:#ece8e1; }
.media-picker-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.media-picker-check {
  position:absolute; top:8px; right:8px; width:27px; height:27px; border-radius:999px; display:grid; place-items:center; color:#fff; background:#1e1d18; box-shadow:0 3px 10px rgba(0,0,0,.2);
}
.media-picker-name { display:grid; gap:3px; padding:9px 10px 10px; min-width:0; }
.media-picker-name strong { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.media-picker-name small { font-size:10px; color:#7c766e; }
.media-picker-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 22px 18px; border-top:1px solid #e8e2d9; background:#fff; }
.media-picker-footer > div { display:flex; gap:8px; }

.admin-image-actions .ghost-button.compact { white-space:nowrap; }
.admin-demo-block > .ghost-button.compact { margin-top:8px; }

@media  (max-width: 1020px) {
  .admin-media-grid, .media-picker-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media  (max-width: 720px) {
  .admin-media-grid, .media-picker-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .media-picker-backdrop { padding:8px; align-items:end; }
  .media-picker-dialog { width:100%; max-height:92dvh; border-radius:20px 20px 0 0; }
  .media-picker-head { padding:18px 16px 10px; }
  .media-picker-toolbar { padding:0 16px 12px; }
  .media-picker-grid { padding:4px 16px 18px; gap:9px; }
  .media-picker-footer { padding:12px 16px max(14px, env(safe-area-inset-bottom)); align-items:flex-start; flex-direction:column; }
  .media-library-toolbar, .media-picker-toolbar { align-items:stretch; }
  .media-search { min-width:0; flex-basis:100%; }
}

/* =========================================================
   Stage 15 — optimized admin images + crop controls
   ========================================================= */
.admin-crop-control,
.admin-focus-control {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fbfaf7;
  display: grid;
  gap: 12px;
}
.admin-crop-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.admin-crop-head > div { display:grid; gap:3px; }
.admin-crop-head strong { font-size: 12px; }
.admin-crop-head small { color: var(--muted); line-height: 1.45; }
.admin-crop-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.admin-crop-pane { display:grid; gap:8px; min-width:0; }
.admin-crop-pane > strong { font-size:11px; color:#6f675d; }
.admin-crop-preview,
.admin-focus-preview {
  width: 100%;
  padding: 0;
  border: 0;
  background: #e9e4dc;
  overflow: hidden;
  position: relative;
  cursor: crosshair;
  display: block;
}
.admin-crop-portrait .admin-crop-preview { aspect-ratio: 4 / 5; border-radius: 12px; }
.admin-crop-landscape .admin-crop-preview { aspect-ratio: 16 / 9; border-radius: 12px; }
.admin-crop-preview img,
.admin-focus-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
  transition: object-position .15s ease;
}
.admin-crop-target {
  position: absolute;
  width: 20px;
  height: 20px;
  border: 2px solid #fff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 1px 5px rgba(0,0,0,.45), inset 0 0 0 1px rgba(0,0,0,.2);
  pointer-events: none;
}
.admin-crop-target::before,
.admin-crop-target::after {
  content: "";
  position: absolute;
  background: rgba(255,255,255,.85);
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
}
.admin-crop-target::before { width: 8px; height: 1px; }
.admin-crop-target::after { width: 1px; height: 8px; }
.compact-range { gap: 4px; }
.compact-range span { font-size: 10px; color: var(--muted); }
.compact-range input { width: 100%; }
.admin-focus-preview { max-width: 250px; border-radius: 16px; justify-self:start; }
.admin-focus-ranges { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.admin-media-result { width:max-content; max-width:100%; padding:5px 8px; border-radius:9px; background:#eef4ee; color:#46614c; }
.admin-media-result strong { font-size:10px; }

@media  (max-width: 760px) {
  .admin-crop-grid { grid-template-columns: 1fr; }
  .admin-crop-portrait .admin-crop-preview { max-width: 220px; }
  .admin-focus-ranges { grid-template-columns:1fr; }
  .admin-crop-head { flex-direction:column; }
}

/* =========================================================
   Stage 16 — UX / responsive hardening
   Final cross-screen pass for phone, tablet and desktop.
   ========================================================= */

/* Global overflow and long RU/KZ content safety. */
html { scroll-padding-top: 96px; }
body { overflow-x: clip; min-height: 100dvh; }
main, section, article, header, footer, nav, div { min-width: 0; }
h1, h2, h3, p, span, small, strong, a, button, label {
  overflow-wrap: break-word;
}
.primary-button,
.ghost-button,
.danger-button,
.filter,
.account-filters button,
.admin-sidebar button,
.media-filter-row button {
  min-height: 44px;
}
.primary-button,
.ghost-button,
.danger-button { white-space: normal; text-align: center; line-height: 1.2; }
.icon-button,
.menu-button,
.menu-close,
.preview-expand-button { min-width: 44px; min-height: 44px; }
.field input,
.field textarea,
.field select,
.program-edit-row input,
.admin-order input,
.admin-event-program-row input {
  min-width: 0;
  max-width: 100%;
}

/* Header / navigation: safe areas and compact logged-in mobile state. */
.site-header { top: max(12px, env(safe-area-inset-top)); }
.mobile-menu { overflow-y: auto; overscroll-behavior: contain; }
.mobile-menu > a:not(.primary-button),
.mobile-menu > button:not(.menu-close) {
  min-height: 48px;
  display: flex;
  align-items: center;
}

/* Marketing pages: keep cards and headings readable on narrow screens. */
.hero-copy h1,
.page-head h1,
.section-heading h2,
.closing-cta h2 { text-wrap: balance; }
.hero-copy p,
.page-head p,
.section-heading p { text-wrap: pretty; }
.categories-strip { scrollbar-width: none; overscroll-behavior-inline: contain; }
.categories-strip::-webkit-scrollbar { display: none; }
.template-meta h3,
.template-meta p { max-width: 100%; }
.event-type-card,
.template-card { isolation: isolate; }
.template-cover-image,
.event-type-art img { user-select: none; -webkit-user-drag: none; }

/* Demo toolbar must never cover the final part of the invitation. */
@media  (max-width: 640px) {
  .template-demo-canvas { padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
  .template-demo-toolbar {
    bottom: max(8px, env(safe-area-inset-bottom));
    gap: 7px;
    padding: 6px;
  }
  .demo-back-button { min-width: 44px; }
  .demo-choose-button { min-width: 0; padding-left: 12px; padding-right: 12px; }
}

/* Editor: predictable viewport, no iOS input zoom, persistent mobile tabs. */
.editor-page { min-height: 100dvh; }
@media  (max-width: 900px) {
  .editor-tabs {
    position: sticky;
    top: calc(66px + env(safe-area-inset-top));
    z-index: 72;
    box-shadow: 0 8px 18px rgba(36,31,26,.05);
  }
  .editor-tabs button { min-height: 46px; }
  .live-preview-wrap { min-height: calc(100dvh - 112px); }
}
@media  (max-width: 560px) {
  .field input,
  .field textarea,
  .field select,
  .program-edit-row input,
  .admin-order input,
  .admin-event-program-row input,
  .account-search input,
  .media-search input {
    font-size: 16px;
  }
  .editor-intro h1 { font-size: clamp(32px, 10vw, 40px); }
  .field-group { padding-top: 22px; padding-bottom: 22px; }
  .field textarea { min-height: 112px; }
  .program-edit-row { grid-template-columns: 82px minmax(0, 1fr) 44px; }
  .program-edit-row .icon-button { width: 44px; height: 44px; }
  .upload-row { align-items: flex-start; gap: 12px; }
  .upload-row > * { min-width: 0; }
  .hero-position-controls { padding: 14px; }
  .range-field { grid-template-columns: 86px minmax(0, 1fr); gap: 8px; }
  .preview-phone { min-height: 0; height: calc(100dvh - 158px); max-height: 780px; }
  .live-preview-wrap.is-expanded { padding-top: max(12px, env(safe-area-inset-top)); padding-bottom: max(12px, env(safe-area-inset-bottom)); }
}

/* Account / published flows: buttons and cards remain usable on small phones. */
@media  (max-width: 700px) {
  .account-shell .row-heading { gap: 18px; }
  .account-shell .row-heading > .primary-button { width: 100%; }
  .account-toolbar { gap: 10px; }
  .account-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
  .account-filters::-webkit-scrollbar { display: none; }
  .account-filters button { flex: 0 0 auto; }
  .invite-card-actions { width: 100%; }
  .invite-main-action { flex: 1 1 160px; }
}
@media  (max-width: 470px) {
  .account-stats-grid { gap: 7px; }
  .account-stats-grid > div { padding: 13px 8px; border-radius: 14px; text-align: center; }
  .account-stats-grid strong { font-size: 27px; }
  .account-stats-grid span { font-size: 10px; }
  .invite-management-card { grid-template-columns: 64px minmax(0, 1fr); gap: 11px; }
  .invite-management-card .invite-list-thumb { width: 64px; height: 64px; }
  .invite-list-card h3 { margin-top: 6px; font-size: 16px; }
  .invite-card-actions-primary > .ghost-button:not(.invite-share-action) { flex: 1 1 120px; }
  .invite-share-action { flex: 1 1 120px; }
  .published-page-rich { padding-left: 14px; padding-right: 14px; }
  .published-link { font-size: 12px; padding-left: 12px; }
  .share-card-copy h2 { font-size: 25px; }
}

/* Admin: horizontal labelled tabs are clearer than icon-only tabs on tablets. */
@media  (max-width: 900px) {
  .admin-sidebar {
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    gap: 6px;
    padding: 8px;
  }
  .admin-sidebar::-webkit-scrollbar { display: none; }
  .admin-sidebar button {
    flex: 0 0 auto;
    justify-content: flex-start;
    padding: 10px 12px;
    white-space: nowrap;
  }
  .admin-sidebar button span { display: inline; }
}
@media  (max-width: 650px) {
  .admin-page { margin-bottom: 72px; }
  .admin-header h1 { font-size: clamp(38px, 12vw, 54px); }
  .admin-content { padding: 14px; }
  .admin-section-head { margin-bottom: 18px; gap: 14px; }
  .admin-section-head h2 { font-size: 25px; }
  .admin-settings-card,
  .admin-music-form,
  .admin-event-content-card { padding: 13px; }
  .admin-template-card { overflow: hidden; }
  .admin-template-card-head,
  .admin-template-controls,
  .admin-event-card-head { align-items: stretch; }
  .admin-event-program-row { grid-template-columns: 82px minmax(0,1fr) 44px; }
  .admin-media-grid { gap: 9px; }
  .admin-media-meta { padding-left: 9px; padding-top: 9px; }
}

/* Bottom sheets / modal pickers: keyboard and safe-area friendly. */
@media  (max-width: 720px) {
  .media-picker-dialog,
  .template-switch-dialog {
    max-height: calc(100dvh - max(8px, env(safe-area-inset-top)));
    overscroll-behavior: contain;
  }
  .media-picker-grid,
  .template-switch-dialog { -webkit-overflow-scrolling: touch; }
  .media-picker-head .icon-button,
  .template-switch-head .icon-button { flex: 0 0 44px; }
}

/* Very small phones (320–380 px): avoid decorative overflow. */
@media  (max-width: 380px) {
  .site-header { width: calc(100% - 12px); padding-left: 10px; padding-right: 10px; }
  .brand { font-size: 13px; letter-spacing: .09em; }
  .user-pill { padding: 3px; }
  .user-pill > span { display: none; }
  .user-pill img { width: 32px; height: 32px; }
  .hero-shell { width: calc(100% - 12px); padding: 38px 17px 24px; }
  .hero-copy h1 { font-size: clamp(40px, 13vw, 47px); }
  .hero-copy p { font-size: 15px; line-height: 1.55; }
  .hero-visual { height: 410px; }
  .phone { width: 198px; height: 410px; }
  .floating-card { font-size: 10px; padding: 8px 9px; }
  .fc-two { left: 0; }
  .fc-one, .fc-three { right: 0; }
  .page-shell { width: calc(100% - 20px); }
  .page-head h1 { font-size: clamp(38px, 12vw, 44px); }
  .event-type-art { min-height: 165px; }
  .template-catalog-grid.category-template-grid .template-preview,
  .home-template-grid .template-preview { aspect-ratio: 4 / 5; }
  .auth-card { padding: 26px 18px; border-radius: 20px; }
}

/* Stage 17 — compact admin grouping by event type */
.admin-event-filter {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 0 14px;
  margin: 0 0 14px;
  scrollbar-width: thin;
  overscroll-behavior-inline: contain;
}
.admin-event-filter button {
  flex: 0 0 auto;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(62,55,47,.15);
  background: #fffdf9;
  color: #423b34;
  border-radius: 999px;
  padding: 9px 14px;
  font: inherit;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.admin-event-filter button:hover { transform: translateY(-1px); }
.admin-event-filter button.active {
  background: #20382f;
  border-color: #20382f;
  color: #fff;
}
.admin-event-filter button small {
  min-width: 22px;
  height: 22px;
  display: inline-grid;
  place-items: center;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(32,56,47,.08);
  font-size: 11px;
  line-height: 1;
}
.admin-event-filter button.active small { background: rgba(255,255,255,.16); }
@media  (max-width: 700px) {
  .admin-event-filter { margin-inline: -4px; padding-inline: 4px; }
  .admin-event-filter button { min-height: 44px; padding-inline: 13px; }
}

/* Stage 18 — security status */
.admin-security-warning {
  max-width: 1180px;
  margin: 0 auto 18px;
  padding: 12px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid rgba(157, 86, 40, .25);
  border-radius: 14px;
  background: #fff4e8;
  color: #70421f;
  font-size: 13px;
  line-height: 1.45;
}
.admin-security-warning svg { flex: 0 0 auto; margin-top: 1px; }

/* Stage 18 — security status */
.admin-security-warning {
  max-width: 1180px;
  margin: 0 auto 18px;
  padding: 12px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid rgba(157, 86, 40, .25);
  border-radius: 14px;
  background: #fff4e8;
  color: #70421f;
  font-size: 13px;
  line-height: 1.45;
}
.admin-security-warning svg { flex: 0 0 auto; margin-top: 1px; }

/* Stage 18.1 — simplified sharing */
.share-grid-primary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media  (max-width: 520px) {
  .published-link { padding-left: 12px; }
  .published-copy-button { padding: 0 11px; }
  .published-copy-button span { display: inline; }
  .share-grid-primary { grid-template-columns: 1fr; }
}

/* =========================================================
   Patch 19.1 — auth return, mobile header, demo CTA, Date v2
   ========================================================= */

/* Date v2: year and time must read as event information, not micro-copy. */
.editorial-date small,
.miras-date-grid small,
.signature-date small {
  font-size: clamp(18px, 4.6vw, 22px) !important;
  line-height: 1;
  letter-spacing: .14em !important;
  font-weight: 600;
  opacity: .82;
}

.event-time {
  width: fit-content;
  min-width: 150px;
  margin: 30px auto 0 !important;
  padding: 11px 22px 12px;
  display: inline-grid;
  justify-items: center;
  gap: 4px;
  border: 1px solid rgba(70,61,52,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.26);
  line-height: 1 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}
.event-time > span {
  font-size: 9px;
  line-height: 1.2;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .68;
  font-weight: 700;
}
.event-time > strong {
  font-family: "Playfair Display", serif;
  font-size: clamp(25px, 6vw, 31px);
  line-height: 1;
  font-weight: 500;
  letter-spacing: .015em;
  color: inherit;
}

.date-card-shell,
.miras-date-card,
.signature-date-card {
  position: relative;
}
.date-card-shell::after,
.miras-date-card::after,
.signature-date-card::after {
  content: "";
  width: 42px;
  height: 1px;
  margin-top: 30px;
  background: currentColor;
  opacity: .14;
}

.signature-date { margin-top: 32px; gap: 22px; }
.signature-date > strong { font-size: clamp(100px, 21vw, 140px); }
.signature-date span { font-size: clamp(38px, 7.6vw, 52px); }
.miras-date-grid small { margin-top: 13px; }
.editorial-date small { margin-top: 15px; }

.theme-birthday .event-time > strong { font-family: Arial, sans-serif; font-weight: 900; }
.theme-wedding-midnight .event-time {
  border-color: rgba(20,27,36,.16);
  background: rgba(255,255,255,.28);
}
.theme-wedding-midnight .event-time > strong { font-family: Arial, sans-serif; font-weight: 800; }
.theme-jubilee .event-time { border-color: rgba(157,121,71,.24); }
.theme-botanical .event-time,
.theme-wedding-botanical .event-time { border-color: rgba(88,112,90,.22); }

/* Desktop demo toolbar: no back arrow, clear primary action. */
.template-demo-toolbar {
  grid-template-columns: minmax(0,1fr) auto;
}
.demo-choose-button {
  min-width: 220px;
}

/* Mobile header: compact bar + proper drawer instead of a full blank page. */
.mobile-menu-layer,
.mobile-menu-panel { display: none; }

@media  (max-width: 900px) {
  .site-header {
    width: calc(100% - 16px);
    min-height: 60px;
    margin-top: max(8px, env(safe-area-inset-top));
    top: max(8px, env(safe-area-inset-top));
    padding: 0 9px 0 14px;
    border-radius: 18px;
    gap: 8px;
    background: rgba(255,253,249,.94);
    box-shadow: 0 10px 30px rgba(43,38,32,.08);
  }
  .site-header .brand { font-size: 13px; letter-spacing: .1em; white-space: nowrap; }
  .header-actions { gap: 6px; margin-left: auto; }
  .desktop-user-pill { display: none !important; }
  .compact-language-switcher {
    display: inline-flex !important;
    padding: 5px 7px;
    gap: 3px;
    font-size: 10px;
    background: #fff;
  }
  .compact-language-switcher button { padding: 2px 2px; }
  .menu-button {
    width: 44px;
    height: 44px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    color: var(--ink);
  }

  .mobile-menu-layer {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 520;
    justify-content: flex-end;
    background: rgba(28,25,22,.38);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    animation: tiMenuFade .18s ease both;
  }
  .mobile-menu-panel {
    display: flex;
    width: min(390px, calc(100% - 18px));
    height: 100dvh;
    padding: max(14px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) 18px;
    flex-direction: column;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fbf8f3;
    box-shadow: -20px 0 50px rgba(24,21,18,.16);
    animation: tiMenuSlide .28s cubic-bezier(.22,.8,.25,1) both;
  }
  .mobile-menu-head {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
  }
  .mobile-menu-brand { font-size: 13px; }
  .menu-close {
    position: static;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    color: var(--ink);
  }
  .mobile-menu-language { padding: 16px 0 4px; }
  .mobile-menu-language .language-switcher { font-size: 11px; background: #fff; }
  .mobile-account-card {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr);
    gap: 11px;
    align-items: center;
    margin: 10px 0 4px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
  }
  .mobile-account-card img,
  .mobile-account-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
  }
  .mobile-account-avatar { display:grid; place-items:center; background:#eee8df; }
  .mobile-account-card strong { display:block; font-size:14px; }
  .mobile-account-card small { display:block; margin-top:2px; color:#8a8279; font-size:10px; overflow:hidden; text-overflow:ellipsis; }
  .mobile-menu-links {
    display: grid;
    margin-top: 18px;
    border-top: 1px solid var(--line);
  }
  .mobile-menu-links > a {
    min-height: 56px;
    display: flex;
    align-items: center;
    padding: 0 2px;
    border-bottom: 1px solid var(--line);
    font-family: "Playfair Display", serif;
    font-size: 25px;
    line-height: 1.1;
  }
  .mobile-menu-actions {
    display: grid;
    gap: 9px;
    margin-top: auto;
    padding-top: 22px;
  }
  .mobile-menu-actions .primary-button,
  .mobile-menu-actions .ghost-button { min-height: 50px; font-size: 14px; }

  @keyframes tiMenuFade { from { opacity:0; } to { opacity:1; } }
  @keyframes tiMenuSlide { from { opacity:.5; transform:translateX(24px); } to { opacity:1; transform:none; } }
}

@media  (max-width: 640px) {
  .template-demo-toolbar {
    grid-template-columns: 1fr;
    min-height: 58px;
    padding: 7px;
  }
  .demo-template-name { display: none; }
  .demo-choose-button {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    justify-self: stretch;
    justify-content: center;
    padding-inline: 18px;
    font-size: 15px;
  }
  .template-demo-page .audio-fab {
    bottom: calc(82px + env(safe-area-inset-bottom));
  }
  .template-demo-canvas { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }

  .editorial-date small,
  .miras-date-grid small,
  .signature-date small { font-size: 18px !important; }
  .event-time { margin-top: 26px !important; padding: 10px 20px 11px; }
  .event-time > strong { font-size: 27px; }
  .signature-date { gap: 14px; }
  .signature-date > strong { font-size: clamp(94px, 28vw, 118px); }
  .signature-date span { font-size: clamp(32px, 9vw, 42px); }
}

@media  (max-width: 380px) {
  .site-header { width: calc(100% - 10px); padding-left: 11px; padding-right: 6px; }
  .compact-language-switcher { font-size: 9px; padding-inline: 6px; }
  .mobile-menu-panel { width: calc(100% - 8px); }
  .mobile-menu-links > a { font-size: 23px; }
  .event-time > strong { font-size: 25px; }
}

/* =========================================================
   Patch 19.2 — TERRAINVITE Motion System v2
   Theme-aware reveal directions, editorial photo masks, hero parallax,
   living ornaments and stronger number/date choreography.
   ========================================================= */



/* Core reveal language */












/* Inner stagger inherits the section's direction instead of always rising. */












/* Editorial gallery choreography. Each image gets its own reveal direction. */













/* Hero entrance: media opens first, then typography assembles in layers. */














/* Date and countdown feel important rather than static. */








/* Tiny living details — tasteful, slow and theme-aware. */





/* Program markers breathe while the schedule itself alternates left/right. */



/* Hero parallax and theme-specific decorative movement. */



















































/* Theme-level motion personality for scroll sections. */








/* Responsive motion distance: smaller screens need less travel to avoid clipping. */


/* Accessibility: the full invitation remains beautiful and immediate with motion disabled. */


/* TERRAINVITE Wedding Art Collection — Wedding 02–21 */


/* ================================================================
   TERRAINVITE Wedding Art Collection — Wedding 02–21
   Shared technical primitives; each art-theme below owns composition.
   ================================================================ */
.art-wedding{--art-bg:#f5f2ec;--art-ink:#181716;--art-accent:#8f6d50;--art-accent2:#c9b79d;--art-paper:#fff;--art-muted:color-mix(in srgb,var(--art-ink) 58%,transparent);font-family:"DM Sans",sans-serif;color:var(--art-ink);background:var(--art-bg);overflow:hidden;isolation:isolate}.art-wedding .invite-body{background:var(--art-bg)}.art-section{position:relative;overflow:hidden;background:var(--art-bg);color:var(--art-ink);padding:clamp(74px,10vw,128px) 22px}.art-section-content{position:relative;z-index:2;max-width:980px;margin:auto}.art-kicker{font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--art-accent)}.art-section h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(34px,7vw,66px);line-height:1.02;margin:15px 0 20px}.art-section p{color:var(--art-muted);line-height:1.75}.art-hero{min-height:100svh;position:relative;overflow:hidden;background:var(--art-bg);color:var(--art-ink);display:grid;place-items:center}.art-hero-photo{position:absolute;overflow:hidden;z-index:1}.art-hero-photo img{width:100%;height:100%;display:block;object-fit:cover;transform-origin:center}.art-photo-placeholder{width:100%;height:100%;display:grid;grid-template-columns:1fr 1fr;place-items:center;background:linear-gradient(135deg,var(--art-accent),var(--art-accent2));color:var(--art-paper);font-family:"Playfair Display",serif;font-size:clamp(80px,18vw,170px);opacity:.75}.art-hero-copy{position:relative;z-index:4;width:min(1100px,calc(100% - 38px));margin:auto}.art-event-label{display:block;font-size:10px;letter-spacing:.28em;text-transform:uppercase;font-weight:700}.art-hero h1{font-family:"Playfair Display",serif;font-weight:500;margin:18px 0;line-height:.91;letter-spacing:-.045em}.art-couple-names{display:flex;align-items:center;gap:.18em}.art-couple-names em{font-weight:400;font-style:italic;color:var(--art-accent)}.art-names-default{font-size:clamp(58px,11vw,126px)}.art-names-medium{font-size:clamp(48px,9vw,102px)}.art-names-compact{font-size:clamp(40px,7.5vw,82px)}.art-hero-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;letter-spacing:.08em}.art-hero-meta strong{font-weight:700}.art-hero-meta small{font-size:12px}.art-concept-signature{margin-top:18px;font-size:10px;letter-spacing:.23em;text-transform:uppercase;opacity:.72}.art-chevron{position:absolute;z-index:5;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%)}.art-motif{position:absolute;inset:0;pointer-events:none;z-index:0}.art-motif i{position:absolute;display:block}.art-date-composition,.art-countdown-content,.art-hosts-card,.art-venue-card,.art-dress-card,.art-contact-card,.art-final-composition{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px}.art-date-parts{display:flex;align-items:center;justify-content:center;gap:24px;margin:24px 0}.art-day{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(92px,19vw,180px);line-height:.8}.art-date-words{display:flex;flex-direction:column;text-align:left}.art-month{font-family:"Playfair Display",serif;font-size:clamp(28px,5vw,48px);text-transform:capitalize}.art-year{font-size:clamp(22px,4vw,36px);font-weight:700}.art-weekday{margin-top:6px;text-transform:uppercase;letter-spacing:.16em}.art-time{display:flex;gap:10px;align-items:baseline;font-size:13px}.art-time strong{font-size:24px}.art-countdown-content .countdown{position:relative;z-index:2;width:min(860px,100%);display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.art-countdown-content .countdown div{background:transparent}.art-countdown-content .countdown strong{font-size:clamp(42px,8vw,82px);font-family:"Playfair Display",serif}.art-countdown-content .countdown span{font-size:9px;letter-spacing:.12em}.art-hosts-card h2{font-size:clamp(42px,8vw,72px)}.art-venue-card{max-width:800px}.art-venue-icon{color:var(--art-accent);margin-bottom:15px}.art-map-button{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:13px 20px;border:1px solid currentColor;border-radius:999px;color:var(--art-ink);text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.art-program-content{max-width:1000px;margin:auto}.art-program-list{margin-top:34px}.art-program-row{display:grid;grid-template-columns:42px 80px 1fr 2fr;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid color-mix(in srgb,var(--art-ink) 14%,transparent)}.art-program-index{font-size:10px;opacity:.5}.art-program-row strong{font-size:16px}.art-program-row i{height:1px;background:var(--art-accent);opacity:.5}.art-program-row p{margin:0;color:var(--art-ink);line-height:1.35}.art-gallery-content{max-width:1160px;margin:auto}.art-gallery-content>div:first-child{text-align:center}.art-gallery{margin-top:38px;display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.art-photo{position:relative;margin:0;overflow:hidden;min-height:260px}.art-photo img{width:100%;height:100%;object-fit:cover;display:block}.art-photo figcaption{position:absolute;right:10px;bottom:8px;font-size:9px;letter-spacing:.2em;color:white;text-shadow:0 1px 8px #000}.art-photo-1{grid-column:1/8}.art-photo-2{grid-column:8/13}.art-photo-3{grid-column:1/5}.art-photo-4{grid-column:5/13}.art-photo-5{grid-column:2/7}.art-photo-6{grid-column:7/12}.art-swatches{display:flex;gap:10px;margin-top:22px}.art-swatches i{width:34px;height:34px;border-radius:50%;background:var(--art-accent)}.art-swatches i:nth-child(2){background:var(--art-accent2)}.art-swatches i:nth-child(3){background:var(--art-ink)}.art-swatches i:nth-child(4){background:var(--art-paper)}.art-swatches i:nth-child(5){background:color-mix(in srgb,var(--art-accent) 40%,var(--art-paper))}.art-contact-card .invite-phone-link{font-size:clamp(22px,4vw,38px);color:var(--art-ink)}.art-final-section{min-height:80svh}.art-final-accent{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--art-accent)}.art-final-names{display:flex;align-items:center;justify-content:center;gap:.25em;font-family:"Playfair Display",serif;font-size:clamp(52px,9vw,102px);line-height:.95}.art-final-names em{color:var(--art-accent);font-style:italic;font-weight:400}.art-wedding .audio-fab{background:color-mix(in srgb,var(--art-bg) 85%,transparent);color:var(--art-ink);border-color:color-mix(in srgb,var(--art-ink) 18%,transparent);backdrop-filter:blur(16px)}
@media (max-width:640px){.art-section{padding:72px 18px}.art-hero-copy{width:calc(100% - 34px)}.art-couple-names{flex-direction:column;gap:.02em;align-items:flex-start}.art-couple-names em{font-size:.42em;margin:.08em 0}.art-date-parts{gap:15px}.art-countdown-content .countdown{gap:6px}.art-program-row{grid-template-columns:30px 62px 1fr;gap:9px}.art-program-row i{display:none}.art-program-row p{font-size:13px}.art-gallery{gap:8px}.art-photo{min-height:180px}.art-photo-1,.art-photo-4{grid-column:1/13}.art-photo-2{grid-column:1/7}.art-photo-3{grid-column:7/13}.art-photo-5{grid-column:1/8}.art-photo-6{grid-column:8/13}}
@media (max-width:350px){.art-section{padding-left:14px;padding-right:14px}.art-names-default{font-size:52px}.art-names-medium{font-size:45px}.art-names-compact{font-size:38px}.art-countdown-content .countdown strong{font-size:34px}.art-countdown-content .countdown span{font-size:7px;letter-spacing:.04em}.art-map-button{padding:12px 14px}}
@media (min-width:900px){.art-wedding:not(.invite-embedded){max-width:100%;box-shadow:none}.art-wedding:not(.invite-embedded) .art-section-content{max-width:1120px}.art-wedding:not(.invite-embedded) .art-hero-copy{width:min(1180px,calc(100% - 90px))}.art-wedding:not(.invite-embedded) .art-gallery{gap:20px}.art-wedding:not(.invite-embedded) .art-photo{min-height:360px}}
@media (prefers-reduced-motion:reduce){.art-wedding *,.art-wedding *:before,.art-wedding *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.art-wedding .art-motif i{transform:none!important}}

.art-theme-celestial-eclipse{--art-bg:#090814;--art-ink:#f4efe4;--art-accent:#c6a66a;--art-accent2:#3a1f62;--art-paper:#f4efe4}.art-theme-celestial-eclipse .art-hero-photo{width:min(68vw,560px);aspect-ratio:1;border-radius:50%;left:50%;top:48%;transform:translate(-50%,-50%);clip-path:circle(49%)}.art-theme-celestial-eclipse .art-hero-photo:after{content:"";position:absolute;width:75%;height:75%;border-radius:50%;background:#090814;right:-24%;top:-8%;box-shadow:0 0 65px #3a1f6288}.art-theme-celestial-eclipse .art-hero-copy{text-align:center;display:grid;place-items:center}.art-theme-celestial-eclipse .art-hero h1{position:relative;margin-top:42vh;text-shadow:0 3px 30px #000}.art-theme-celestial-eclipse .art-couple-names{justify-content:center}.art-theme-celestial-eclipse .motif-orbit i{border:1px solid #c6a66a55;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.art-theme-celestial-eclipse .motif-orbit i:nth-child(1){width:76vmin;height:76vmin}.art-theme-celestial-eclipse .motif-orbit i:nth-child(2){width:92vmin;height:42vmin;transform:translate(-50%,-50%) rotate(24deg)}.art-theme-celestial-eclipse .motif-orbit i:nth-child(n/**/+3){width:4px;height:4px;background:#fff;border:0;box-shadow:0 0 14px #fff}.art-theme-celestial-eclipse .date-astral-orbit .art-date-composition{width:min(620px,92vw);aspect-ratio:1;border:1px solid #c6a66a55;border-radius:50%}.art-theme-celestial-eclipse .date-astral-orbit .art-day{font-size:150px}.art-theme-celestial-eclipse .countdown-orbital .countdown{display:flex;justify-content:center;gap:22px}.art-theme-celestial-eclipse .countdown-orbital .countdown div{width:150px;aspect-ratio:1;border:1px solid #c6a66a66;border-radius:50%;display:grid;place-content:center;position:relative}.art-theme-celestial-eclipse .countdown-orbital .countdown div:nth-child(even){transform:translateY(42px)}.art-theme-celestial-eclipse .gallery-constellation .art-gallery{grid-template-columns:repeat(12,1fr);min-height:850px;position:relative}.art-theme-celestial-eclipse .gallery-constellation .art-photo{border-radius:50%;min-height:0;aspect-ratio:1}.art-theme-celestial-eclipse .gallery-constellation .art-photo-1{grid-column:1/6}.art-theme-celestial-eclipse .gallery-constellation .art-photo-2{grid-column:8/12;margin-top:100px}.art-theme-celestial-eclipse .gallery-constellation .art-photo-3{grid-column:5/9}.art-theme-celestial-eclipse .gallery-constellation .art-photo-4{grid-column:9/13}.art-theme-celestial-eclipse .final-orbit-convergence .art-final-composition:before,.art-theme-celestial-eclipse .final-orbit-convergence .art-final-composition:after{content:"";position:absolute;width:330px;height:330px;border:1px solid #c6a66a66;border-radius:50%}.art-theme-celestial-eclipse .final-orbit-convergence .art-final-composition:before{transform:translateX(-120px)}.art-theme-celestial-eclipse .final-orbit-convergence .art-final-composition:after{transform:translateX(120px)}
.art-theme-paris-editorial{--art-bg:#f3eee5;--art-ink:#151515;--art-accent:#a61922;--art-accent2:#8b8882;--art-paper:#fff}.art-theme-paris-editorial .art-hero{display:block;padding:5vw}.art-theme-paris-editorial .art-hero-photo{left:5vw;top:8vh;width:52vw;height:84vh}.art-theme-paris-editorial .art-hero-copy{margin-left:auto;width:46%;padding:18vh 2vw 0}.art-theme-paris-editorial .art-hero h1{font-size:clamp(80px,11vw,170px);position:relative;left:-22vw;mix-blend-mode:multiply;white-space:nowrap}.art-theme-paris-editorial .art-couple-names{display:block}.art-theme-paris-editorial .art-couple-names em{margin:0 .08em;color:#a61922}.art-theme-paris-editorial .art-concept-signature{border-top:1px solid;padding-top:14px}.art-theme-paris-editorial .date-issue-block .art-date-composition{align-items:flex-start;text-align:left;max-width:860px}.art-theme-paris-editorial .date-issue-block .art-date-parts{justify-content:flex-start}.art-theme-paris-editorial .date-issue-block .art-day:before{content:"ISSUE ";font:700 12px "DM Sans";letter-spacing:.22em;display:block}.art-theme-paris-editorial .countdown-editorial-line .countdown{display:flex;border-block:1px solid #151515;padding:20px 0}.art-theme-paris-editorial .countdown-editorial-line .countdown div{flex:1;text-align:left;border-right:1px solid #151515;padding-left:18px}.art-theme-paris-editorial .program-contents-page .art-program-row{grid-template-columns:50px 1fr 70px;grid-template-areas:"i title time"}.art-theme-paris-editorial .program-contents-page .art-program-index{grid-area:i}.art-theme-paris-editorial .program-contents-page strong{grid-area:time}.art-theme-paris-editorial .program-contents-page p{grid-area:title;font-family:"Playfair Display",serif;font-size:24px}.art-theme-paris-editorial .program-contents-page i{display:none}.art-theme-paris-editorial .gallery-fashion-masonry .art-gallery{display:block;columns:2;column-gap:22px}.art-theme-paris-editorial .gallery-fashion-masonry .art-photo{break-inside:avoid;margin:0 0 22px;min-height:auto}.art-theme-paris-editorial .gallery-fashion-masonry .art-photo img{height:auto}.art-theme-paris-editorial .final-magazine-cover .art-final-composition{align-items:flex-start;text-align:left;min-height:75vh}.art-theme-paris-editorial .final-magazine-cover .art-final-names{font-size:clamp(70px,12vw,170px);align-items:flex-start}.art-theme-paris-editorial .final-magazine-cover .art-final-names em{color:#a61922}
.art-theme-sakura-mist{--art-bg:#fffaf7;--art-ink:#765b55;--art-accent:#e8b9bf;--art-accent2:#f5d9c7;--art-paper:#fff}.art-theme-sakura-mist .art-hero{background:radial-gradient(circle at 50% 40%,#fff 0,#fffaf7 42%,#f6e8e7 100%)}.art-theme-sakura-mist .art-hero-photo{width:min(70vw,520px);height:72vh;top:8vh;left:50%;transform:translateX(-50%);border-radius:48% 52% 46% 54%/38% 44% 56% 62%;filter:saturate(.8);box-shadow:0 0 60px 45px #fffaf7 inset}.art-theme-sakura-mist .art-hero-copy{text-align:center;padding-top:62vh}.art-theme-sakura-mist .art-couple-names{justify-content:center}.art-theme-sakura-mist .motif-sakura i{width:10px;height:14px;background:#e8b9bf88;border-radius:70% 0 70% 0;animation:artPetal 8s linear infinite;top:-5%;left:calc(9% * var(--n,1))}.art-theme-sakura-mist .motif-sakura i:nth-child(1){left:12%;animation-delay:-1s}.art-theme-sakura-mist .motif-sakura i:nth-child(2){left:28%;animation-delay:-5s}.art-theme-sakura-mist .motif-sakura i:nth-child(3){left:46%;animation-delay:-2s}.art-theme-sakura-mist .motif-sakura i:nth-child(4){left:67%;animation-delay:-6s}.art-theme-sakura-mist .motif-sakura i:nth-child(5){left:84%;animation-delay:-3s}@keyframes artPetal{to{transform:translate(30px,110vh) rotate(360deg)}}.art-theme-sakura-mist .date-vertical-calendar .art-date-parts{flex-direction:column;gap:5px}.art-theme-sakura-mist .date-vertical-calendar .art-date-words{text-align:center}.art-theme-sakura-mist .date-vertical-calendar .art-day{font-size:130px}.art-theme-sakura-mist .countdown-floating-numbers .countdown div{background:none!important;padding:10px}.art-theme-sakura-mist .countdown-floating-numbers .countdown div:nth-child(odd){transform:translateY(-20px)}.art-theme-sakura-mist .gallery-hanging-photos .art-gallery{grid-template-columns:repeat(10,1fr)}.art-theme-sakura-mist .gallery-hanging-photos .art-photo{box-shadow:0 18px 45px #b78c8c22;border:10px solid white}.art-theme-sakura-mist .gallery-hanging-photos .art-photo-1{grid-column:1/6;transform:rotate(-2deg)}.art-theme-sakura-mist .gallery-hanging-photos .art-photo-2{grid-column:6/10;margin-top:70px;transform:rotate(2deg)}.art-theme-sakura-mist .gallery-hanging-photos .art-photo-3{grid-column:2/5}.art-theme-sakura-mist .gallery-hanging-photos .art-photo-4{grid-column:5/11;transform:rotate(-1deg)}.art-theme-sakura-mist .final-branch-embrace .art-final-composition{border-radius:50%;background:#fff;max-width:760px;margin:auto;box-shadow:0 30px 90px #cda2aa22}
.art-theme-electric-love{--art-bg:#050507;--art-ink:#f8f8f8;--art-accent:#ff2ca8;--art-accent2:#225cff;--art-paper:#fff}.art-theme-electric-love .art-hero-photo{inset:0}.art-theme-electric-love .art-hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,#05050744,#050507cc 70%)}.art-theme-electric-love .art-hero-copy{width:100%;padding:12vh 4vw 8vh;align-self:end}.art-theme-electric-love .art-hero h1{font-family:"Noto Sans",sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(72px,14vw,190px);letter-spacing:-.075em}.art-theme-electric-love .art-couple-names{display:block}.art-theme-electric-love .art-couple-names span{display:block}.art-theme-electric-love .art-couple-names span:last-child{text-align:right;color:#ff2ca8}.art-theme-electric-love .art-couple-names em{display:none}.art-theme-electric-love .art-hero-meta{font-family:monospace;background:#225cff;padding:8px 12px;width:max-content}.art-theme-electric-love .date-led-board .art-date-composition{font-family:monospace;border:2px solid #225cff;box-shadow:0 0 35px #225cff55}.art-theme-electric-love .date-led-board .art-day{font-family:monospace;color:#ff2ca8;text-shadow:0 0 15px #ff2ca8}.art-theme-electric-love .countdown-scoreboard .countdown{gap:4px;background:#111;padding:4px;border:1px solid #333}.art-theme-electric-love .countdown-scoreboard .countdown div{background:#0b0b0d!important;border:1px solid #222}.art-theme-electric-love .countdown-scoreboard .countdown strong{font-family:monospace;color:#53f0ff;text-shadow:0 0 12px #225cff}.art-theme-electric-love .program-lineup .art-program-row{border-bottom:2px solid #fff;grid-template-columns:50px 90px 1fr}.art-theme-electric-love .program-lineup .art-program-row p{font-size:clamp(22px,3vw,34px);font-weight:700;text-transform:uppercase}.art-theme-electric-love .program-lineup i{display:none}.art-theme-electric-love .gallery-diagonal-strips .art-gallery{transform:skewY(-3deg);gap:8px}.art-theme-electric-love .gallery-diagonal-strips .art-photo{border:2px solid #225cff}.art-theme-electric-love .gallery-diagonal-strips .art-photo img{transform:skewY(3deg) scale(1.08)}.art-theme-electric-love .final-love-after-dark .art-final-accent{font-size:clamp(42px,9vw,110px);font-family:"Noto Sans";font-weight:700;color:#ff2ca8;letter-spacing:-.05em}.art-theme-electric-love .art-map-button{border-radius:0;background:#225cff;border-color:#225cff;color:#fff}
.art-theme-desert-vow{--art-bg:#e8d3b6;--art-ink:#3d352f;--art-accent:#b76543;--art-accent2:#d88747;--art-paper:#f5e7d1}.art-theme-desert-vow .art-hero:before{content:"";position:absolute;width:52vmin;height:52vmin;border-radius:50%;background:#d88747;top:12vh;right:8vw}.art-theme-desert-vow .art-hero-photo{width:min(62vw,650px);height:67vh;left:8vw;bottom:8vh;border-radius:48% 48% 8% 8%}.art-theme-desert-vow .art-hero-copy{align-self:end;text-align:right;padding-bottom:9vh}.art-theme-desert-vow .art-couple-names{justify-content:flex-end}.art-theme-desert-vow .motif-dunes i{left:-10%;right:-10%;height:22vh;border-radius:50% 50% 0 0;background:#b76543;bottom:-13vh}.art-theme-desert-vow .motif-dunes i:nth-child(2){background:#d88747;bottom:-9vh;transform:translateX(20%)}.art-theme-desert-vow .date-travel-postcard .art-date-composition{align-items:flex-start;text-align:left;border:1px solid #3d352f55;padding:40px;transform:rotate(-1deg)}.art-theme-desert-vow .date-travel-postcard .art-time{border-top:1px solid;width:100%;padding-top:15px}.art-theme-desert-vow .countdown-dune-layers .countdown{align-items:end;gap:0}.art-theme-desert-vow .countdown-dune-layers .countdown div{border-radius:50% 50% 0 0;background:#d8874744!important;padding-top:60px}.art-theme-desert-vow .countdown-dune-layers .countdown div:nth-child(2){padding-top:100px}.art-theme-desert-vow .countdown-dune-layers .countdown div:nth-child(3){padding-top:40px}.art-theme-desert-vow .gallery-organic-scrapbook .art-photo{border-radius:36% 8% 30% 10%;box-shadow:0 12px 40px #6d3a2422}.art-theme-desert-vow .gallery-organic-scrapbook .art-photo:nth-child(even){border-radius:8% 35% 10% 30%}.art-theme-desert-vow .venue-destination-card .art-venue-card{background:#f5e7d1;padding:55px;align-items:flex-start;text-align:left;transform:rotate(.6deg)}.art-theme-desert-vow .final-sunset-hills{background:linear-gradient(#e8d3b6 0 55%,#b76543 55% 72%,#3d352f 72%)}.art-theme-desert-vow .final-sunset-hills .art-final-composition{color:#f5e7d1}
.art-theme-nordic-glass{--art-bg:#e9f1f3;--art-ink:#263035;--art-accent:#7d929c;--art-accent2:#fff;--art-paper:#fff}.art-theme-nordic-glass .art-hero{background:linear-gradient(145deg,#f9fbfb,#dce9ed)}.art-theme-nordic-glass .art-hero-photo{width:min(72vw,820px);height:74vh;right:5vw;top:13vh;filter:saturate(.7);border-radius:8px}.art-theme-nordic-glass .art-hero-photo:after{content:"";position:absolute;inset:0 48% 0 0;background:#e9f1f3aa;backdrop-filter:blur(18px);border-right:1px solid #fff}.art-theme-nordic-glass .art-hero-copy{display:grid;grid-template-columns:1fr 1fr;align-items:center}.art-theme-nordic-glass .art-hero h1{grid-column:1/2;font-family:"Noto Sans";font-weight:500;letter-spacing:-.06em}.art-theme-nordic-glass .art-hero-meta{grid-column:1/2}.art-theme-nordic-glass .date-iso-date .art-date-parts{border-block:1px solid #263035;justify-content:space-between;width:min(720px,100%);padding:18px 0}.art-theme-nordic-glass .date-iso-date .art-day{font-family:"Noto Sans";font-size:100px}.art-theme-nordic-glass .countdown-glass-surface .countdown{background:#ffffff66;backdrop-filter:blur(18px);padding:24px;border:1px solid #fff}.art-theme-nordic-glass .countdown-glass-surface .countdown div{border-right:1px solid #c1cdd2}.art-theme-nordic-glass .countdown-glass-surface .countdown div:last-child{border:0}.art-theme-nordic-glass .gallery-modular-grid .art-gallery{grid-auto-rows:180px}.art-theme-nordic-glass .gallery-modular-grid .art-photo{min-height:0;border-radius:3px}.art-theme-nordic-glass .gallery-modular-grid .art-photo-1{grid-column:1/7;grid-row:1/3}.art-theme-nordic-glass .gallery-modular-grid .art-photo-2{grid-column:7/13;grid-row:1/2}.art-theme-nordic-glass .gallery-modular-grid .art-photo-3{grid-column:7/10;grid-row:2/4}.art-theme-nordic-glass .gallery-modular-grid .art-photo-4{grid-column:10/13;grid-row:2/4}.art-theme-nordic-glass .final-quiet-line .art-final-composition{min-height:60vh}.art-theme-nordic-glass .final-quiet-line .art-final-composition:before{content:"";width:1px;height:110px;background:#263035;margin-bottom:30px}
.art-theme-baroque-noir{--art-bg:#18090d;--art-ink:#f0e5d2;--art-accent:#b89558;--art-accent2:#641f2d;--art-paper:#f0e5d2}.art-theme-baroque-noir .art-hero-photo{width:min(56vw,520px);height:72vh;top:13vh;left:50%;transform:translateX(-50%);border:14px solid #b89558;outline:2px solid #f0e5d288;outline-offset:12px}.art-theme-baroque-noir .art-hero-copy{text-align:center;padding-top:67vh}.art-theme-baroque-noir .art-couple-names{justify-content:center}.art-theme-baroque-noir .motif-baroque i{width:100px;height:100px;border:2px solid #b89558;border-radius:70% 0;transform:rotate(45deg)}.art-theme-baroque-noir .motif-baroque i:nth-child(1){left:4%;top:4%}.art-theme-baroque-noir .motif-baroque i:nth-child(2){right:4%;top:4%;transform:rotate(135deg)}.art-theme-baroque-noir .motif-baroque i:nth-child(3){left:4%;bottom:4%;transform:rotate(-45deg)}.art-theme-baroque-noir .motif-baroque i:nth-child(4){right:4%;bottom:4%;transform:rotate(-135deg)}.art-theme-baroque-noir .date-gold-medallion .art-date-composition{width:min(600px,90vw);aspect-ratio:1;border:10px double #b89558;border-radius:50%}.art-theme-baroque-noir .countdown-antique-clock .countdown div{aspect-ratio:1;border:2px solid #b89558;border-radius:50%;display:grid;place-content:center;background:#641f2d22!important}.art-theme-baroque-noir .gallery-salon-wall .art-gallery{background:#641f2d;padding:36px;gap:28px}.art-theme-baroque-noir .gallery-salon-wall .art-photo{border:10px ridge #b89558;box-shadow:0 14px 35px #0008}.art-theme-baroque-noir .gallery-salon-wall .art-photo-1{grid-column:1/5}.art-theme-baroque-noir .gallery-salon-wall .art-photo-2{grid-column:5/10;margin-top:70px}.art-theme-baroque-noir .gallery-salon-wall .art-photo-3{grid-column:10/13}.art-theme-baroque-noir .final-curtain-monogram:before,.art-theme-baroque-noir .final-curtain-monogram:after{content:"";position:absolute;top:0;bottom:0;width:28%;background:linear-gradient(90deg,#3b0d17,#7b2032,#3b0d17);z-index:0}.art-theme-baroque-noir .final-curtain-monogram:before{left:0;border-radius:0 0 100% 0}.art-theme-baroque-noir .final-curtain-monogram:after{right:0;border-radius:0 0 0 100%}
.art-theme-herbarium{--art-bg:#eee8d7;--art-ink:#5d4c3d;--art-accent:#657052;--art-accent2:#a4ad82;--art-paper:#f8f4e7}.art-theme-herbarium .art-hero{padding:6vw}.art-theme-herbarium .art-hero-photo{width:min(62vw,620px);height:78vh;left:8vw;top:11vh;border:1px solid #5d4c3d44;background:#f8f4e7;padding:30px}.art-theme-herbarium .art-hero-photo img{filter:saturate(.65)}.art-theme-herbarium .art-hero-copy{width:38%;margin-left:auto}.art-theme-herbarium .art-hero h1{font-size:clamp(65px,8vw,112px)}.art-theme-herbarium .motif-botanical i{width:1px;height:180px;background:#657052;transform-origin:bottom;transform:rotate(28deg)}.art-theme-herbarium .motif-botanical i:after{content:"";position:absolute;width:18px;height:34px;border:1px solid #657052;border-radius:100% 0;left:0;top:35px}.art-theme-herbarium .motif-botanical i:nth-child(1){left:5%;bottom:5%}.art-theme-herbarium .motif-botanical i:nth-child(2){right:8%;top:8%;transform:rotate(-140deg)}.art-theme-herbarium .date-museum-label .art-date-composition{align-items:flex-start;text-align:left;border:1px solid #5d4c3d;padding:35px;max-width:680px}.art-theme-herbarium .date-museum-label .art-day{font-size:86px}.art-theme-herbarium .countdown-collection-labels .countdown{gap:18px}.art-theme-herbarium .countdown-collection-labels .countdown div{border:1px solid #657052;text-align:left;padding:18px;background:#f8f4e7!important}.art-theme-herbarium .countdown-collection-labels .countdown div:before{content:"COL.";font-size:8px;letter-spacing:.2em}.art-theme-herbarium .gallery-specimen-cards .art-gallery{grid-template-columns:repeat(3,1fr)}.art-theme-herbarium .gallery-specimen-cards .art-photo{grid-column:auto!important;border:1px solid #657052;padding:14px 14px 48px;background:#f8f4e7}.art-theme-herbarium .gallery-specimen-cards .art-photo figcaption{color:#5d4c3d;text-shadow:none;bottom:16px;left:15px}.art-theme-herbarium .final-botanical-wreath .art-final-composition{border:1px solid #657052;border-radius:50%;width:min(720px,90vw);aspect-ratio:1;margin:auto}
.art-theme-riviera-60s{--art-bg:#eff5ef;--art-ink:#145d8c;--art-accent:#e36f59;--art-accent2:#efce39;--art-paper:#fff}.art-theme-riviera-60s .art-hero{background:#efce39}.art-theme-riviera-60s .art-hero-photo{width:58vw;height:72vh;right:0;bottom:0;clip-path:polygon(16% 0,100% 0,100% 100%,0 100%)}.art-theme-riviera-60s .art-hero-copy{padding-left:6vw}.art-theme-riviera-60s .art-hero h1{font-family:"Noto Sans";font-weight:700;color:#145d8c;text-transform:uppercase;width:55%;font-size:clamp(64px,9vw,125px)}.art-theme-riviera-60s .art-couple-names{display:block}.art-theme-riviera-60s .art-couple-names span{display:block}.art-theme-riviera-60s .art-couple-names em{color:#e36f59}.art-theme-riviera-60s .date-travel-stamp .art-date-composition{width:min(560px,90vw);aspect-ratio:1;border:8px double #145d8c;border-radius:50%;transform:rotate(-5deg)}.art-theme-riviera-60s .countdown-flip-board .countdown div{background:#145d8c!important;color:#fff;border-radius:6px;box-shadow:inset 0 -3px #0a3e5f}.art-theme-riviera-60s .countdown-flip-board .countdown strong{font-family:monospace}.art-theme-riviera-60s .venue-resort-postcard .art-venue-card{background:#fff;padding:45px;box-shadow:0 16px 40px #145d8c22;transform:rotate(1.5deg)}.art-theme-riviera-60s .gallery-postcard-wall .art-gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:28px}.art-theme-riviera-60s .gallery-postcard-wall .art-photo{width:min(42%,390px);height:320px;border:14px solid white;border-bottom-width:54px;box-shadow:0 15px 35px #0b3a551f;transform:rotate(-2deg)}.art-theme-riviera-60s .gallery-postcard-wall .art-photo:nth-child(even){transform:rotate(3deg);margin-top:50px}.art-theme-riviera-60s .final-see-you-sea{background:linear-gradient(#eff5ef 0 45%,#8fd4df 45% 70%,#145d8c 70%)}.art-theme-riviera-60s .final-see-you-sea .art-final-composition{color:white}
.art-theme-cinema-noir{--art-bg:#080808;--art-ink:#f4f4f1;--art-accent:#8c2132;--art-accent2:#979797;--art-paper:#f4f4f1}.art-theme-cinema-noir .art-hero:before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 20% 30%,#fff1 0 1px,transparent 1px 4px);opacity:.28;mix-blend-mode:screen}.art-theme-cinema-noir .art-hero-photo{width:92vw;aspect-ratio:2.39/1;left:4vw;top:20vh;filter:grayscale(1) contrast(1.08)}.art-theme-cinema-noir .art-hero-copy{text-align:center;padding-top:55vh}.art-theme-cinema-noir .art-couple-names{justify-content:center;text-transform:uppercase}.art-theme-cinema-noir .art-hero h1{font-family:"Noto Sans";letter-spacing:.02em}.art-theme-cinema-noir .date-cinema-slate .art-date-composition{align-items:flex-start;text-align:left;border:2px solid #f4f4f1;padding:36px;background:linear-gradient(135deg,transparent 0 18px,#f4f4f1 18px 20px,transparent 20px 40px)}.art-theme-cinema-noir .date-cinema-slate .art-date-parts{justify-content:flex-start}.art-theme-cinema-noir .countdown-film-leader .countdown div{aspect-ratio:1;border:2px solid #f4f4f1;border-radius:50%;display:grid;place-content:center;position:relative}.art-theme-cinema-noir .countdown-film-leader .countdown div:after{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px solid #fff4}.art-theme-cinema-noir .program-screenplay .art-program-row{background:#f4f4f1;color:#080808;padding:18px 24px;border-bottom:1px solid #999}.art-theme-cinema-noir .program-screenplay .art-program-row p{color:#080808;font-family:monospace;text-transform:uppercase}.art-theme-cinema-noir .gallery-film-strip .art-gallery{display:flex;overflow:hidden;gap:8px;padding:24px 0;border-block:18px dotted #f4f4f1}.art-theme-cinema-noir .gallery-film-strip .art-photo{min-width:38vw;height:350px;filter:grayscale(1)}.art-theme-cinema-noir .final-the-end .art-final-accent{font-size:clamp(72px,15vw,190px);font-family:"Noto Sans";font-weight:700;letter-spacing:.02em;color:#f4f4f1}
.art-theme-art-deco-champagne{--art-bg:#0b0b0d;--art-ink:#f2ead9;--art-accent:#c7a86b;--art-accent2:#5f574d;--art-paper:#f2ead9}.art-theme-art-deco-champagne .art-hero:before,.art-theme-art-deco-champagne .art-hero:after{content:"";position:absolute;inset:5vh 8vw;border:1px solid #c7a86b;clip-path:polygon(0 12%,12% 12%,12% 0,88% 0,88% 12%,100% 12%,100% 88%,88% 88%,88% 100%,12% 100%,12% 88%,0 88%)}.art-theme-art-deco-champagne .art-hero:after{inset:8vh 11vw;border-width:2px}.art-theme-art-deco-champagne .art-hero-photo{width:min(42vw,520px);height:68vh;left:50%;top:16vh;transform:translateX(-50%);clip-path:polygon(20% 0,80% 0,100% 20%,100% 80%,80% 100%,20% 100%,0 80%,0 20%)}.art-theme-art-deco-champagne .art-hero-copy{text-align:center;padding-top:62vh}.art-theme-art-deco-champagne .art-couple-names{justify-content:center}.art-theme-art-deco-champagne .date-deco-medallion .art-date-composition{width:min(560px,88vw);aspect-ratio:1;clip-path:polygon(50% 0,62% 18%,85% 15%,82% 38%,100% 50%,82% 62%,85% 85%,62% 82%,50% 100%,38% 82%,15% 85%,18% 62%,0 50%,18% 38%,15% 15%,38% 18%);background:#c7a86b12;border:1px solid #c7a86b}.art-theme-art-deco-champagne .countdown-deco-construction .countdown{clip-path:polygon(4% 0,96% 0,100% 18%,100% 82%,96% 100%,4% 100%,0 82%,0 18%);border:1px solid #c7a86b;padding:28px}.art-theme-art-deco-champagne .countdown-deco-construction .countdown div{border-inline:1px solid #c7a86b44}.art-theme-art-deco-champagne .gallery-symmetric-gallery .art-gallery{grid-template-columns:repeat(10,1fr);align-items:center}.art-theme-art-deco-champagne .gallery-symmetric-gallery .art-photo{border:1px solid #c7a86b}.art-theme-art-deco-champagne .gallery-symmetric-gallery .art-photo-1{grid-column:1/4}.art-theme-art-deco-champagne .gallery-symmetric-gallery .art-photo-2{grid-column:4/8;min-height:520px}.art-theme-art-deco-champagne .gallery-symmetric-gallery .art-photo-3{grid-column:8/11}.art-theme-art-deco-champagne .gallery-symmetric-gallery .art-photo-4{grid-column:3/9}.art-theme-art-deco-champagne .final-deco-monogram .art-final-composition{border:3px double #c7a86b;clip-path:polygon(8% 0,92% 0,100% 8%,100% 92%,92% 100%,8% 100%,0 92%,0 8%);max-width:880px;margin:auto}
.art-theme-paper-cut-romance{--art-bg:#f6e5d9;--art-ink:#604f51;--art-accent:#9b80b5;--art-accent2:#7b8e75;--art-paper:#fffaf4}.art-theme-paper-cut-romance .art-hero:before,.art-theme-paper-cut-romance .art-hero:after{content:"";position:absolute;inset:5vh 5vw;background:#d6c4e7;clip-path:polygon(0 7%,15% 2%,30% 8%,47% 1%,65% 7%,80% 3%,100% 10%,96% 90%,80% 96%,60% 91%,45% 98%,28% 92%,10% 97%,3% 80%);filter:drop-shadow(0 20px 24px #5e455333)}.art-theme-paper-cut-romance .art-hero:after{inset:10vh 10vw;background:#e8e0c5}.art-theme-paper-cut-romance .art-hero-photo{z-index:2;width:min(58vw,620px);height:68vh;left:50%;top:14vh;transform:translateX(-50%);clip-path:polygon(12% 4%,88% 2%,96% 18%,92% 84%,78% 96%,18% 92%,4% 78%,8% 20%)}.art-theme-paper-cut-romance .art-hero-copy{text-align:center;padding-top:62vh}.art-theme-paper-cut-romance .art-couple-names{justify-content:center}.art-theme-paper-cut-romance .date-paper-tag .art-date-composition{background:#fffaf4;padding:32px 70px;clip-path:polygon(8% 0,100% 0,100% 100%,8% 100%,0 50%);box-shadow:0 14px 30px #5e455322}.art-theme-paper-cut-romance .countdown-paper-layers .countdown div{background:#fffaf4!important;box-shadow:0 12px 26px #5e45531f;transform:rotate(-2deg)}.art-theme-paper-cut-romance .countdown-paper-layers .countdown div:nth-child(even){background:#d6c4e7!important;transform:rotate(2deg) translateY(12px)}.art-theme-paper-cut-romance .gallery-polaroid-scrapbook .art-gallery{display:flex;flex-wrap:wrap;justify-content:center}.art-theme-paper-cut-romance .gallery-polaroid-scrapbook .art-photo{width:32%;height:330px;background:#fff;padding:12px 12px 50px;box-shadow:0 14px 28px #5e45532b;transform:rotate(-3deg)}.art-theme-paper-cut-romance .gallery-polaroid-scrapbook .art-photo:nth-child(even){transform:rotate(4deg);margin-top:55px}.art-theme-paper-cut-romance .final-paper-open .art-final-composition{background:#fffaf4;clip-path:polygon(4% 0,96% 0,100% 10%,96% 100%,5% 96%,0 80%,2% 12%);max-width:850px;margin:auto;padding:70px}
.art-theme-red-thread{--art-bg:#faf9f6;--art-ink:#131313;--art-accent:#a80f1b;--art-accent2:#a80f1b;--art-paper:#fff}.art-theme-red-thread .art-hero-photo{width:min(34vw,390px);height:58vh;right:12vw;top:20vh}.art-theme-red-thread .art-hero-copy{padding-left:8vw;width:56%;margin-right:auto}.art-theme-red-thread .art-hero h1{font-family:"Noto Sans";font-weight:500}.art-theme-red-thread .motif-thread i{height:2px;background:#a80f1b;width:38vw;left:5%;top:50%;transform:rotate(15deg);transform-origin:left}.art-theme-red-thread .motif-thread i:nth-child(2){left:38%;top:52%;transform:rotate(-20deg)}.art-theme-red-thread .motif-thread i:nth-child(n/**/+3){display:none}.art-theme-red-thread .date-thread-date .art-date-composition:before{content:"";position:absolute;width:72%;height:2px;background:#a80f1b;transform:rotate(-8deg)}.art-theme-red-thread .date-thread-date .art-day{position:relative;background:#faf9f6;padding:0 20px}.art-theme-red-thread .countdown-thread-connected .countdown{position:relative;gap:0}.art-theme-red-thread .countdown-thread-connected .countdown:before{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#a80f1b}.art-theme-red-thread .countdown-thread-connected .countdown div{position:relative;background:#faf9f6!important}.art-theme-red-thread .countdown-thread-connected .countdown div:before{content:"";width:9px;height:9px;border-radius:50%;background:#a80f1b;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.art-theme-red-thread .program-vertical-thread .art-program-list{position:relative;padding-left:80px}.art-theme-red-thread .program-vertical-thread .art-program-list:before{content:"";position:absolute;left:52px;top:0;bottom:0;width:2px;background:#a80f1b}.art-theme-red-thread .program-vertical-thread .art-program-row{display:grid;grid-template-columns:60px 1fr;border:0;position:relative}.art-theme-red-thread .program-vertical-thread .art-program-index,.art-theme-red-thread .program-vertical-thread i{display:none}.art-theme-red-thread .gallery-thread-gallery .art-gallery{gap:50px 80px}.art-theme-red-thread .gallery-thread-gallery .art-photo{border-radius:0}.art-theme-red-thread .gallery-thread-gallery .art-photo:after{content:"";position:absolute;width:100px;height:2px;background:#a80f1b;right:-90px;top:50%}.art-theme-red-thread .final-red-infinity .art-final-accent{font-size:180px;line-height:.6;color:#a80f1b}.art-theme-red-thread .art-map-button{border-color:#a80f1b;color:#a80f1b}
.art-theme-moonlit-garden{--art-bg:#0c1916;--art-ink:#e8e9df;--art-accent:#c5a86d;--art-accent2:#31254a;--art-paper:#e8e9df}.art-theme-moonlit-garden .art-hero:before{content:"";position:absolute;width:min(68vw,650px);aspect-ratio:1;border-radius:50%;background:#e8e9df;top:10vh;right:8vw;box-shadow:0 0 80px #e8e9df55}.art-theme-moonlit-garden .art-hero-photo{width:min(42vw,450px);height:65vh;right:16vw;top:18vh;border-radius:45% 45% 0 0;mix-blend-mode:multiply}.art-theme-moonlit-garden .art-hero-copy{padding-left:7vw;width:52%;margin-right:auto}.art-theme-moonlit-garden .motif-moon i{width:4px;height:4px;border-radius:50%;background:#f5e8a9;box-shadow:0 0 12px #f5e8a9;animation:firefly 4s ease-in-out infinite alternate}.art-theme-moonlit-garden .motif-moon i:nth-child(1){left:12%;top:22%}.art-theme-moonlit-garden .motif-moon i:nth-child(2){left:27%;top:64%;animation-delay:-2s}.art-theme-moonlit-garden .motif-moon i:nth-child(3){right:16%;top:45%;animation-delay:-1s}@keyframes firefly{to{transform:translate(12px,-18px);opacity:.35}}.art-theme-moonlit-garden .date-moon-disk .art-date-composition{width:min(560px,90vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#deded3 68%,#b4b6ad);color:#0c1916}.art-theme-moonlit-garden .countdown-garden-lights .countdown div{border-radius:50%;background:#31254a88!important;box-shadow:0 0 40px #8f74c755}.art-theme-moonlit-garden .gallery-branch-gallery .art-gallery{grid-template-columns:repeat(12,1fr);gap:28px}.art-theme-moonlit-garden .gallery-branch-gallery .art-photo{border-radius:50% 50% 8px 8px;border:1px solid #c5a86d55}.art-theme-moonlit-garden .gallery-branch-gallery .art-photo:nth-child(even){margin-top:90px}.art-theme-moonlit-garden .final-moonlight-final{background:radial-gradient(circle at 50% 15%,#f5f1df55,transparent 40%),#0c1916}
.art-theme-pop-art-wedding{--art-bg:#fff4df;--art-ink:#111;--art-accent:#e93631;--art-accent2:#175bd7;--art-paper:#fff}.art-theme-pop-art-wedding .art-hero{background:radial-gradient(circle,#111 1.5px,transparent 1.5px) 0 0/14px 14px,#f6d329}.art-theme-pop-art-wedding .art-hero-photo{width:50vw;height:70vh;right:5vw;bottom:0;border:6px solid #111;transform:rotate(3deg);box-shadow:18px 18px 0 #175bd7}.art-theme-pop-art-wedding .art-hero-copy{padding-left:4vw;width:60%;margin-right:auto}.art-theme-pop-art-wedding .art-hero h1{font-family:"Noto Sans";font-weight:700;text-transform:uppercase;font-size:clamp(72px,12vw,155px);text-shadow:6px 6px 0 #fff}.art-theme-pop-art-wedding .art-couple-names{display:block}.art-theme-pop-art-wedding .art-couple-names span{display:block}.art-theme-pop-art-wedding .date-speech-bubble .art-date-composition{background:#fff;border:5px solid #111;border-radius:50%;width:min(600px,92vw);aspect-ratio:1;box-shadow:12px 12px 0 #175bd7}.art-theme-pop-art-wedding .date-speech-bubble .art-date-composition:after{content:"";position:absolute;width:70px;height:70px;background:#fff;border-left:5px solid #111;border-bottom:5px solid #111;right:10%;bottom:1%;transform:rotate(-35deg)}.art-theme-pop-art-wedding .countdown-pop-stickers .countdown{gap:18px}.art-theme-pop-art-wedding .countdown-pop-stickers .countdown div{border:4px solid #111;background:#fff!important;box-shadow:7px 7px 0 #e93631;transform:rotate(-3deg)}.art-theme-pop-art-wedding .countdown-pop-stickers .countdown div:nth-child(even){transform:rotate(4deg);box-shadow:7px 7px 0 #175bd7}.art-theme-pop-art-wedding .program-comic-strip .art-program-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.art-theme-pop-art-wedding .program-comic-strip .art-program-row{display:block;border:4px solid #111;padding:22px;background:#fff;box-shadow:7px 7px 0 #f6d329}.art-theme-pop-art-wedding .program-comic-strip .art-program-row i{display:none}.art-theme-pop-art-wedding .gallery-comic-panels .art-gallery{gap:5px;background:#111;padding:5px}.art-theme-pop-art-wedding .gallery-comic-panels .art-photo{border:4px solid #111}.art-theme-pop-art-wedding .final-giant-love .art-final-accent{font-family:"Noto Sans";font-weight:700;font-size:clamp(100px,22vw,280px);letter-spacing:-.08em;color:#e93631;text-shadow:8px 8px 0 #175bd7}.art-theme-pop-art-wedding .art-map-button{border:4px solid #111;border-radius:0;box-shadow:5px 5px 0 #175bd7}
.art-theme-pure-typography{--art-bg:#f7f7f3;--art-ink:#111;--art-accent:#ff4d2e;--art-accent2:#b9b9b2;--art-paper:#fff}.art-theme-pure-typography .art-hero{display:block;padding:5vw}.art-theme-pure-typography .art-hero-copy{width:100%;padding-top:10vh}.art-theme-pure-typography .art-hero h1{font-family:"Noto Sans";font-weight:600;font-size:clamp(85px,18vw,240px);letter-spacing:-.09em;line-height:.74;text-transform:uppercase}.art-theme-pure-typography .art-couple-names{display:block}.art-theme-pure-typography .art-couple-names span{display:block}.art-theme-pure-typography .art-couple-names span:last-child{text-align:right}.art-theme-pure-typography .art-couple-names em{position:absolute;left:49%;font-size:.18em;color:#ff4d2e}.art-theme-pure-typography .art-hero-photo{width:180px;height:230px;left:48%;top:42%;z-index:5;border:10px solid #f7f7f3}.art-theme-pure-typography .date-giant-number .art-date-composition{align-items:flex-start;text-align:left}.art-theme-pure-typography .date-giant-number .art-day{font-family:"Noto Sans";font-weight:600;font-size:clamp(180px,30vw,380px);letter-spacing:-.09em;color:#ff4d2e}.art-theme-pure-typography .date-giant-number .art-date-parts{align-items:flex-end}.art-theme-pure-typography .countdown-swiss-table .countdown{border-top:8px solid #111;border-bottom:1px solid #111;gap:0}.art-theme-pure-typography .countdown-swiss-table .countdown div{text-align:left;border-right:1px solid #111}.art-theme-pure-typography .countdown-swiss-table .countdown strong{font-family:"Noto Sans";font-weight:500}.art-theme-pure-typography .program-swiss-grid .art-program-row{grid-template-columns:70px 110px 1fr 3fr;border-color:#111}.art-theme-pure-typography .gallery-swiss-gallery .art-gallery{grid-template-columns:repeat(6,1fr);grid-auto-rows:220px}.art-theme-pure-typography .gallery-swiss-gallery .art-photo{grid-column:auto;min-height:0}.art-theme-pure-typography .gallery-swiss-gallery .art-photo-1{grid-column:1/5;grid-row:1/3}.art-theme-pure-typography .gallery-swiss-gallery .art-photo-2{grid-column:5/7}.art-theme-pure-typography .gallery-swiss-gallery .art-photo-3{grid-column:5/7}.art-theme-pure-typography .gallery-swiss-gallery .art-photo-4{grid-column:2/6;grid-row:3/5}.art-theme-pure-typography .final-together-type .art-final-accent{font-family:"Noto Sans";font-size:clamp(85px,18vw,230px);font-weight:600;letter-spacing:-.08em;color:#111}.art-theme-pure-typography .art-map-button{border-radius:0;border:0;border-bottom:4px solid #ff4d2e;padding-inline:0}
.art-theme-nomad-contemporary{--art-bg:#0d3c35;--art-ink:#f1eadb;--art-accent:#a8784c;--art-accent2:#5b1f3e;--art-paper:#f1eadb}.art-theme-nomad-contemporary .art-hero:before{content:"";position:absolute;inset:6vh 6vw;border:1px solid #a8784c;clip-path:polygon(0 10%,10% 10%,10% 0,90% 0,90% 10%,100% 10%,100% 90%,90% 90%,90% 100%,10% 100%,10% 90%,0 90%)}.art-theme-nomad-contemporary .art-hero-photo{width:min(50vw,560px);height:68vh;right:10vw;top:16vh;clip-path:polygon(50% 0,100% 18%,94% 78%,50% 100%,6% 78%,0 18%)}.art-theme-nomad-contemporary .art-hero-copy{width:47%;margin-right:auto;padding-left:7vw}.art-theme-nomad-contemporary .art-hero h1{font-size:clamp(62px,8vw,110px)}.art-theme-nomad-contemporary .motif-nomad i{width:70px;height:70px;border:2px solid #a8784c;transform:rotate(45deg)}.art-theme-nomad-contemporary .motif-nomad i:nth-child(1){left:2%;top:8%}.art-theme-nomad-contemporary .motif-nomad i:nth-child(2){right:2%;bottom:8%}.art-theme-nomad-contemporary .motif-nomad i:nth-child(3){left:46%;top:4%;width:30px;height:30px}.art-theme-nomad-contemporary .date-modern-tamga .art-date-composition{width:min(520px,90vw);aspect-ratio:1;clip-path:polygon(50% 0,90% 16%,100% 50%,86% 90%,50% 100%,14% 90%,0 50%,10% 16%);background:#a8784c18;border:1px solid #a8784c}.art-theme-nomad-contemporary .countdown-ornament-modules .countdown div{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:#5b1f3e88!important;padding:30px 8px}.art-theme-nomad-contemporary .gallery-nomad-geometry .art-gallery{grid-template-columns:repeat(10,1fr);gap:16px}.art-theme-nomad-contemporary .gallery-nomad-geometry .art-photo{clip-path:polygon(8% 0,100% 0,92% 100%,0 100%)}.art-theme-nomad-contemporary .gallery-nomad-geometry .art-photo-1{grid-column:1/7}.art-theme-nomad-contemporary .gallery-nomad-geometry .art-photo-2{grid-column:7/11;margin-top:80px}.art-theme-nomad-contemporary .gallery-nomad-geometry .art-photo-3{grid-column:2/5}.art-theme-nomad-contemporary .gallery-nomad-geometry .art-photo-4{grid-column:5/11}.art-theme-nomad-contemporary .final-modern-monogram .art-final-composition{border:1px solid #a8784c;clip-path:polygon(6% 0,94% 0,100% 10%,100% 90%,94% 100%,6% 100%,0 90%,0 10%);max-width:850px;margin:auto}
.art-theme-ocean-pearl{--art-bg:#eff5f1;--art-ink:#123b50;--art-accent:#5aaea7;--art-accent2:#ccd4d4;--art-paper:#fff}.art-theme-ocean-pearl .art-hero{background:linear-gradient(180deg,#eff5f1,#cfe8e2)}.art-theme-ocean-pearl .art-hero-photo{width:min(66vw,650px);height:72vh;right:7vw;top:14vh;border-radius:52% 48% 60% 40%/45% 60% 40% 55%}.art-theme-ocean-pearl .art-hero-copy{width:48%;margin-right:auto;padding-left:7vw}.art-theme-ocean-pearl .motif-ocean i{border-radius:50%;border:1px solid #fff;background:#ffffff55;box-shadow:inset -10px -12px 20px #123b5022;width:54px;height:54px}.art-theme-ocean-pearl .motif-ocean i:nth-child(1){left:8%;top:14%}.art-theme-ocean-pearl .motif-ocean i:nth-child(2){right:5%;top:27%;width:90px;height:90px}.art-theme-ocean-pearl .motif-ocean i:nth-child(3){left:42%;bottom:8%;width:32px;height:32px}.art-theme-ocean-pearl .date-water-reflection .art-date-composition:after{content:"";position:absolute;bottom:10%;width:70%;height:55px;background:linear-gradient(180deg,#5aaea733,transparent);filter:blur(5px);transform:skewX(-18deg)}.art-theme-ocean-pearl .countdown-pearls .countdown{display:flex;justify-content:center;align-items:center}.art-theme-ocean-pearl .countdown-pearls .countdown div{border-radius:50%;aspect-ratio:1;background:radial-gradient(circle at 30% 25%,#fff,#d9e5e3 55%,#9db8b5)!important;display:grid;place-content:center;box-shadow:0 18px 35px #123b5022}.art-theme-ocean-pearl .countdown-pearls .countdown div:nth-child(2){width:23%;transform:translateY(30px)}.art-theme-ocean-pearl .countdown-pearls .countdown div:nth-child(3){width:18%}.art-theme-ocean-pearl .gallery-wave-flow .art-gallery{display:flex;gap:0;align-items:center}.art-theme-ocean-pearl .gallery-wave-flow .art-photo{flex:1;height:470px;border-radius:50% 45% 55% 50%;margin-left:-30px}.art-theme-ocean-pearl .gallery-wave-flow .art-photo:nth-child(even){height:330px;transform:translateY(70px)}.art-theme-ocean-pearl .final-single-pearl .art-final-composition:before{content:"";width:180px;height:180px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#d9e5e3);box-shadow:0 20px 60px #123b5033;margin-bottom:35px}
.art-theme-gothic-cathedral{--art-bg:#171719;--art-ink:#e2dfd6;--art-accent:#bf9b61;--art-accent2:#6b1e2d;--art-paper:#e2dfd6}.art-theme-gothic-cathedral .art-hero-photo{width:min(48vw,520px);height:76vh;left:50%;top:12vh;transform:translateX(-50%);clip-path:polygon(50% 0,75% 9%,92% 28%,100% 50%,100% 100%,0 100%,0 50%,8% 28%,25% 9%)}.art-theme-gothic-cathedral .art-hero-photo:after{content:"";position:absolute;inset:0;border:6px solid #aaa9a4;clip-path:inherit}.art-theme-gothic-cathedral .art-hero-copy{text-align:center;padding-top:67vh}.art-theme-gothic-cathedral .art-couple-names{justify-content:center}.art-theme-gothic-cathedral .date-stone-inscription .art-date-composition{border:1px solid #aaa9a466;background:linear-gradient(135deg,#232326,#171719);box-shadow:inset 0 0 0 10px #0002}.art-theme-gothic-cathedral .countdown-gothic-arches .countdown div{clip-path:polygon(50% 0,72% 9%,90% 27%,100% 50%,100% 100%,0 100%,0 50%,10% 27%,28% 9%);background:#6b1e2d33!important;border-bottom:2px solid #bf9b61;padding-top:55px}.art-theme-gothic-cathedral .program-nave-procession .art-program-list{max-width:650px;margin-inline:auto}.art-theme-gothic-cathedral .program-nave-procession .art-program-row{grid-template-columns:40px 80px 1fr;border-left:1px solid #bf9b61;padding-left:30px}.art-theme-gothic-cathedral .program-nave-procession i{display:none}.art-theme-gothic-cathedral .gallery-stained-glass .art-gallery{gap:4px;background:#aaa9a4;padding:4px}.art-theme-gothic-cathedral .gallery-stained-glass .art-photo{clip-path:polygon(50% 0,78% 10%,96% 35%,100% 100%,0 100%,4% 35%,22% 10%);filter:saturate(.8) contrast(1.05)}.art-theme-gothic-cathedral .final-cathedral-light{background:linear-gradient(180deg,#171719,#252326)}.art-theme-gothic-cathedral .final-cathedral-light:before{content:"";position:absolute;top:-20%;left:50%;width:30%;height:120%;transform:translateX(-50%);background:linear-gradient(180deg,#fff9,transparent 75%);clip-path:polygon(44% 0,56% 0,100% 100%,0 100%);filter:blur(12px);opacity:.35}
.art-theme-digital-aurora{--art-bg:#071024;--art-ink:#f0e8ff;--art-accent:#4bd7ee;--art-accent2:#7059ff;--art-paper:#fff}.art-theme-digital-aurora .art-hero:before{content:"";position:absolute;inset:-20%;background:conic-gradient(from 180deg at 50% 50%,#7059ff55,#4bd7ee44,#ff68c744,#7059ff55);filter:blur(70px);animation:auroraSpin 16s linear infinite}@keyframes auroraSpin{to{transform:rotate(360deg)}}.art-theme-digital-aurora .art-hero-photo{width:min(62vw,620px);aspect-ratio:1;left:50%;top:48%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid #ffffff88;box-shadow:inset 0 0 60px #fff3,0 30px 90px #7059ff66;backdrop-filter:blur(8px)}.art-theme-digital-aurora .art-hero-copy{text-align:center;padding-top:60vh}.art-theme-digital-aurora .art-couple-names{justify-content:center;text-shadow:0 0 30px #7059ff}.art-theme-digital-aurora .date-floating-glass .art-date-composition{background:#ffffff0d;border:1px solid #ffffff55;border-radius:28px;backdrop-filter:blur(24px);box-shadow:0 30px 80px #0005;transform:perspective(700px) rotateX(8deg) rotateY(-7deg)}.art-theme-digital-aurora .countdown-glass-numerals .countdown{perspective:900px}.art-theme-digital-aurora .countdown-glass-numerals .countdown div{background:linear-gradient(145deg,#ffffff19,#ffffff05)!important;border:1px solid #ffffff44;border-radius:22px;backdrop-filter:blur(18px);box-shadow:inset 0 1px #fff5,0 20px 45px #0004;transform:rotateY(-7deg)}.art-theme-digital-aurora .countdown-glass-numerals .countdown div:nth-child(even){transform:rotateY(7deg) translateY(25px)}.art-theme-digital-aurora .gallery-depth-cards .art-gallery{perspective:1000px;display:flex;gap:18px}.art-theme-digital-aurora .gallery-depth-cards .art-photo{flex:1;height:460px;border-radius:24px;border:1px solid #ffffff55;box-shadow:0 30px 60px #0006;transform:rotateY(12deg) translateZ(-20px)}.art-theme-digital-aurora .gallery-depth-cards .art-photo:nth-child(even){transform:rotateY(-12deg) translateY(60px)}.art-theme-digital-aurora .final-aurora-convergence:before{content:"";position:absolute;width:70vw;height:70vw;border-radius:50%;background:radial-gradient(circle,#fff 0 1%,#4bd7ee33 8%,#7059ff22 25%,transparent 62%);filter:blur(4px)}.art-theme-digital-aurora .art-map-button{background:#ffffff10;border-color:#ffffff55;backdrop-filter:blur(12px)}

@media (max-width:700px){
.art-theme-paris-editorial .art-hero{padding:0}.art-theme-paris-editorial .art-hero-photo{left:0;top:0;width:72%;height:62vh}.art-theme-paris-editorial .art-hero-copy{width:100%;padding:58vh 20px 0}.art-theme-paris-editorial .art-hero h1{left:0;white-space:normal;font-size:66px}.art-theme-paris-editorial .gallery-fashion-masonry .art-gallery{columns:1}
.art-theme-electric-love .art-hero h1{font-size:64px}.art-theme-electric-love .art-hero-copy{padding:18vh 18px 10vh}.art-theme-electric-love .program-lineup .art-program-row{grid-template-columns:36px 60px 1fr}.art-theme-electric-love .gallery-diagonal-strips .art-gallery{transform:none}
.art-theme-desert-vow .art-hero:before{width:74vw;height:74vw;top:10vh;right:-15vw}.art-theme-desert-vow .art-hero-photo{width:78vw;height:58vh;left:6vw;bottom:14vh}.art-theme-desert-vow .art-hero-copy{padding:68vh 18px 8vh;text-align:left}.art-theme-desert-vow .art-couple-names{justify-content:flex-start}.art-theme-desert-vow .venue-destination-card .art-venue-card{padding:34px}
.art-theme-nordic-glass .art-hero-photo{width:86vw;height:62vh;right:7vw;top:10vh}.art-theme-nordic-glass .art-hero-copy{display:block;padding:64vh 18px 0}.art-theme-nordic-glass .art-hero h1{font-size:58px}.art-theme-nordic-glass .gallery-modular-grid .art-gallery{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:180px}.art-theme-nordic-glass .gallery-modular-grid .art-photo{grid-column:auto!important;grid-row:auto!important}
.art-theme-baroque-noir .art-hero-photo{width:74vw;height:58vh;top:12vh}.art-theme-baroque-noir .art-hero-copy{padding-top:64vh}.art-theme-baroque-noir .date-gold-medallion .art-date-composition{width:86vw}.art-theme-baroque-noir .gallery-salon-wall .art-gallery{padding:16px;gap:12px}
.art-theme-herbarium .art-hero{padding:0}.art-theme-herbarium .art-hero-photo{width:82vw;height:58vh;left:9vw;top:8vh;padding:18px}.art-theme-herbarium .art-hero-copy{width:100%;padding:64vh 22px 0}.art-theme-herbarium .gallery-specimen-cards .art-gallery{grid-template-columns:1fr 1fr}.art-theme-herbarium .gallery-specimen-cards .art-photo{grid-column:auto!important}
.art-theme-riviera-60s .art-hero-photo{width:76vw;height:58vh;right:0}.art-theme-riviera-60s .art-hero-copy{padding:10vh 18px 0}.art-theme-riviera-60s .art-hero h1{width:85%;font-size:60px}.art-theme-riviera-60s .gallery-postcard-wall .art-photo{width:85%;height:280px}
.art-theme-cinema-noir .art-hero-photo{width:94vw;left:3vw;top:20vh}.art-theme-cinema-noir .art-hero-copy{padding-top:53vh}.art-theme-cinema-noir .gallery-film-strip .art-photo{min-width:78vw;height:280px}
.art-theme-art-deco-champagne .art-hero-photo{width:70vw;height:56vh}.art-theme-art-deco-champagne .art-hero-copy{padding-top:61vh}.art-theme-art-deco-champagne .gallery-symmetric-gallery .art-gallery{display:grid;grid-template-columns:1fr 1fr}.art-theme-art-deco-champagne .gallery-symmetric-gallery .art-photo{grid-column:auto!important;min-height:220px!important}
.art-theme-paper-cut-romance .art-hero-photo{width:74vw;height:54vh}.art-theme-paper-cut-romance .art-hero-copy{padding-top:61vh}.art-theme-paper-cut-romance .gallery-polaroid-scrapbook .art-photo{width:78%;height:280px}
.art-theme-red-thread .art-hero-photo{width:46vw;height:46vh;right:6vw;top:18vh}.art-theme-red-thread .art-hero-copy{width:78%;padding-left:7vw}.art-theme-red-thread .program-vertical-thread .art-program-list{padding-left:35px}.art-theme-red-thread .program-vertical-thread .art-program-list:before{left:16px}
.art-theme-moonlit-garden .art-hero:before{width:82vw;right:-20vw}.art-theme-moonlit-garden .art-hero-photo{width:58vw;height:52vh;right:0;top:20vh}.art-theme-moonlit-garden .art-hero-copy{width:75%;padding-left:6vw}.art-theme-moonlit-garden .gallery-branch-gallery .art-photo:nth-child(even){margin-top:20px}
.art-theme-pop-art-wedding .art-hero-photo{width:68vw;height:48vh;right:-4vw}.art-theme-pop-art-wedding .art-hero-copy{width:95%;padding:9vh 18px 0}.art-theme-pop-art-wedding .art-hero h1{font-size:58px}.art-theme-pop-art-wedding .program-comic-strip .art-program-list{grid-template-columns:1fr}.art-theme-pop-art-wedding .date-speech-bubble .art-date-composition{width:88vw}
.art-theme-pure-typography .art-hero{padding:18px}.art-theme-pure-typography .art-hero h1{font-size:68px;line-height:.82}.art-theme-pure-typography .art-hero-photo{width:115px;height:150px;left:auto;right:8%;top:45%}.art-theme-pure-typography .date-giant-number .art-day{font-size:170px}.art-theme-pure-typography .gallery-swiss-gallery .art-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.art-theme-pure-typography .gallery-swiss-gallery .art-photo{grid-column:auto!important;grid-row:auto!important}
.art-theme-nomad-contemporary .art-hero-photo{width:68vw;height:50vh;right:4vw;top:18vh}.art-theme-nomad-contemporary .art-hero-copy{width:78%;padding-left:7vw}.art-theme-nomad-contemporary .gallery-nomad-geometry .art-photo{grid-column:1/13!important;margin-top:0!important}
.art-theme-ocean-pearl .art-hero-photo{width:76vw;height:54vh;right:-4vw;top:15vh;clip-path:ellipse(48% 44% at 52% 50%)}.art-theme-ocean-pearl .art-hero-copy{width:75%;padding-left:5vw}.art-theme-ocean-pearl .gallery-wave-flow .art-gallery{display:grid;grid-template-columns:1fr 1fr}.art-theme-ocean-pearl .gallery-wave-flow .art-photo{height:230px;margin:0!important;transform:none!important}.art-theme-ocean-pearl .countdown-pearls .countdown div{width:auto!important}
.art-theme-gothic-cathedral .art-hero-photo{width:72vw;height:57vh}.art-theme-gothic-cathedral .art-hero-copy{padding-top:64vh}.art-theme-gothic-cathedral .countdown-gothic-arches .countdown div{padding-top:35px}
.art-theme-digital-aurora .art-hero-photo{width:78vw}.art-theme-digital-aurora .art-hero-copy{padding-top:63vh}.art-theme-digital-aurora .gallery-depth-cards .art-gallery{display:grid;grid-template-columns:1fr 1fr}.art-theme-digital-aurora .gallery-depth-cards .art-photo{height:240px;transform:none!important}.art-theme-digital-aurora .countdown-glass-numerals .countdown div{transform:none!important}
.art-theme-celestial-eclipse .art-hero-photo{width:78vw}.art-theme-celestial-eclipse .art-hero h1{margin-top:44vh}.art-theme-celestial-eclipse .countdown-orbital .countdown{gap:5px}.art-theme-celestial-eclipse .countdown-orbital .countdown div{width:23vw}.art-theme-celestial-eclipse .gallery-constellation .art-gallery{min-height:auto}.art-theme-celestial-eclipse .gallery-constellation .art-photo{grid-column:span 6!important;margin:0!important}
}


/* Support-section differentiation + motion languages */
.art-theme-celestial-eclipse .art-intro-content,.art-theme-celestial-eclipse .art-hosts-card,.art-theme-celestial-eclipse .art-venue-card{border:1px solid #c6a66a44;border-radius:50%;max-width:720px;aspect-ratio:1;padding:60px}.art-theme-celestial-eclipse .art-dress-card .art-swatches i{box-shadow:0 0 20px currentColor}.art-theme-celestial-eclipse .art-contact-card{border-top:1px solid #c6a66a55}
.art-theme-paris-editorial .art-intro-content,.art-theme-paris-editorial .art-hosts-card,.art-theme-paris-editorial .art-contact-card{align-items:flex-start;text-align:left;border-top:6px solid #151515}.art-theme-paris-editorial .art-venue-card{align-items:flex-end;text-align:right;border-right:1px solid;padding-right:35px}.art-theme-paris-editorial .art-dress-card{display:grid;grid-template-columns:1fr 1fr;text-align:left}
.art-theme-sakura-mist .art-intro-content,.art-theme-sakura-mist .art-hosts-card,.art-theme-sakura-mist .art-venue-card,.art-theme-sakura-mist .art-contact-card{background:#fff8;padding:45px;border-radius:45% 55% 48% 52%/12% 12% 18% 18%;box-shadow:0 20px 70px #e8b9bf22}.art-theme-sakura-mist .art-swatches i{border-radius:65% 35% 60% 40%}
.art-theme-electric-love .art-intro-content,.art-theme-electric-love .art-hosts-card,.art-theme-electric-love .art-contact-card{align-items:flex-start;text-align:left;border-left:8px solid #ff2ca8;padding-left:28px}.art-theme-electric-love .art-venue-card{border:2px solid #225cff;padding:42px;box-shadow:12px 12px 0 #ff2ca8}.art-theme-electric-love .art-swatches i{border-radius:0;transform:skew(-12deg)}
.art-theme-desert-vow .art-intro-content,.art-theme-desert-vow .art-hosts-card,.art-theme-desert-vow .art-contact-card{background:#f5e7d1;padding:46px;border-radius:42% 12% 36% 8%}.art-theme-desert-vow .art-dress-card{border-bottom:8px solid #b76543}.art-theme-desert-vow .art-swatches i{border-radius:50% 50% 15% 15%}
.art-theme-nordic-glass .art-intro-content,.art-theme-nordic-glass .art-hosts-card,.art-theme-nordic-glass .art-venue-card,.art-theme-nordic-glass .art-contact-card{background:#ffffff66;backdrop-filter:blur(16px);border:1px solid #fff;padding:48px;border-radius:8px}.art-theme-nordic-glass .art-swatches i{border-radius:3px}
.art-theme-baroque-noir .art-intro-content,.art-theme-baroque-noir .art-hosts-card,.art-theme-baroque-noir .art-venue-card,.art-theme-baroque-noir .art-contact-card{border:3px double #b89558;padding:54px;background:#641f2d18}.art-theme-baroque-noir .art-swatches i{border:2px solid #b89558}
.art-theme-herbarium .art-intro-content,.art-theme-herbarium .art-hosts-card,.art-theme-herbarium .art-venue-card,.art-theme-herbarium .art-contact-card{align-items:flex-start;text-align:left;background:#f8f4e7;padding:38px;border:1px solid #657052}.art-theme-herbarium .art-dress-card{border-left:1px solid #657052;align-items:flex-start;text-align:left}.art-theme-herbarium .art-swatches i{border-radius:100% 0}
.art-theme-riviera-60s .art-intro-content,.art-theme-riviera-60s .art-hosts-card,.art-theme-riviera-60s .art-contact-card{background:#fff;padding:44px;box-shadow:9px 9px 0 #efce39;transform:rotate(-.7deg)}.art-theme-riviera-60s .art-swatches i{border-radius:3px;box-shadow:3px 3px 0 #145d8c}
.art-theme-cinema-noir .art-intro-content,.art-theme-cinema-noir .art-hosts-card,.art-theme-cinema-noir .art-venue-card,.art-theme-cinema-noir .art-contact-card{border-block:2px solid #fff;padding:45px;font-family:monospace}.art-theme-cinema-noir .art-swatches i{border-radius:0;border:1px solid #fff}
.art-theme-art-deco-champagne .art-intro-content,.art-theme-art-deco-champagne .art-hosts-card,.art-theme-art-deco-champagne .art-venue-card,.art-theme-art-deco-champagne .art-contact-card{border:1px solid #c7a86b;padding:52px;clip-path:polygon(6% 0,94% 0,100% 12%,100% 88%,94% 100%,6% 100%,0 88%,0 12%)}.art-theme-art-deco-champagne .art-swatches i{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border-radius:0}
.art-theme-paper-cut-romance .art-intro-content,.art-theme-paper-cut-romance .art-hosts-card,.art-theme-paper-cut-romance .art-venue-card,.art-theme-paper-cut-romance .art-contact-card{background:#fffaf4;padding:46px;box-shadow:0 14px 0 #d6c4e7;clip-path:polygon(3% 0,97% 2%,100% 94%,4% 100%,0 8%)}.art-theme-paper-cut-romance .art-swatches i{border-radius:6px;transform:rotate(5deg)}
.art-theme-red-thread .art-intro-content,.art-theme-red-thread .art-hosts-card,.art-theme-red-thread .art-venue-card,.art-theme-red-thread .art-contact-card{align-items:flex-start;text-align:left;border-left:2px solid #a80f1b;padding-left:34px}.art-theme-red-thread .art-swatches i{border-radius:0;width:50px;height:8px}
.art-theme-moonlit-garden .art-intro-content,.art-theme-moonlit-garden .art-hosts-card,.art-theme-moonlit-garden .art-venue-card,.art-theme-moonlit-garden .art-contact-card{background:#31254a44;border:1px solid #c5a86d55;padding:46px;border-radius:48% 48% 12px 12px}.art-theme-moonlit-garden .art-swatches i{box-shadow:0 0 16px #fff4}
.art-theme-pop-art-wedding .art-intro-content,.art-theme-pop-art-wedding .art-hosts-card,.art-theme-pop-art-wedding .art-venue-card,.art-theme-pop-art-wedding .art-contact-card{background:#fff;border:4px solid #111;padding:38px;box-shadow:9px 9px 0 #175bd7;transform:rotate(-1deg)}.art-theme-pop-art-wedding .art-swatches i{border-radius:0;border:3px solid #111}
.art-theme-pure-typography .art-intro-content,.art-theme-pure-typography .art-hosts-card,.art-theme-pure-typography .art-venue-card,.art-theme-pure-typography .art-contact-card{align-items:flex-start;text-align:left;border-top:8px solid #111;padding-top:28px}.art-theme-pure-typography .art-hosts-card h2{font-family:"Noto Sans"}.art-theme-pure-typography .art-swatches{width:100%}.art-theme-pure-typography .art-swatches i{border-radius:0;flex:1;height:14px}
.art-theme-nomad-contemporary .art-intro-content,.art-theme-nomad-contemporary .art-hosts-card,.art-theme-nomad-contemporary .art-venue-card,.art-theme-nomad-contemporary .art-contact-card{border:1px solid #a8784c;padding:50px;clip-path:polygon(5% 0,95% 0,100% 8%,100% 92%,95% 100%,5% 100%,0 92%,0 8%)}.art-theme-nomad-contemporary .art-swatches i{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);border-radius:0}
.art-theme-ocean-pearl .art-intro-content,.art-theme-ocean-pearl .art-hosts-card,.art-theme-ocean-pearl .art-venue-card,.art-theme-ocean-pearl .art-contact-card{background:#ffffff80;padding:48px;border-radius:48% 52% 42% 58%/18% 22% 20% 24%;box-shadow:0 20px 50px #123b5018}.art-theme-ocean-pearl .art-swatches i{box-shadow:inset -5px -7px 10px #123b5022,0 8px 18px #123b5018}
.art-theme-gothic-cathedral .art-intro-content,.art-theme-gothic-cathedral .art-hosts-card,.art-theme-gothic-cathedral .art-venue-card,.art-theme-gothic-cathedral .art-contact-card{border:1px solid #aaa9a466;padding:50px;clip-path:polygon(50% 0,65% 3%,82% 14%,94% 34%,100% 58%,100% 100%,0 100%,0 58%,6% 34%,18% 14%,35% 3%)}.art-theme-gothic-cathedral .art-swatches i{border-radius:50% 50% 0 0}
.art-theme-digital-aurora .art-intro-content,.art-theme-digital-aurora .art-hosts-card,.art-theme-digital-aurora .art-venue-card,.art-theme-digital-aurora .art-contact-card{background:linear-gradient(145deg,#ffffff17,#ffffff05);border:1px solid #ffffff3d;padding:48px;border-radius:24px;backdrop-filter:blur(18px);box-shadow:0 30px 70px #0004}.art-theme-digital-aurora .art-swatches i{box-shadow:0 0 18px currentColor}

.motion-orbit .art-motif{animation:artSlowRotate 30s linear infinite}@keyframes artSlowRotate{to{transform:rotate(360deg)}}
.motion-wipe .art-reveal{clip-path:inset(0 100% 0 0);transition:clip-path .9s cubic-bezier(.16,1,.3,1),opacity .7s}.motion-wipe .art-reveal.is-visible{clip-path:inset(0)}
.motion-petal .art-reveal{transform:translateY(22px);filter:blur(7px)}.motion-petal .art-reveal.is-visible{transform:none;filter:none}
.motion-kinetic .art-reveal{transform:translateX(-28px) skewX(-3deg)}.motion-kinetic .art-reveal.is-visible{transform:none}
.motion-parallax .art-hero-photo{animation:artFloatWide 9s ease-in-out infinite alternate}@keyframes artFloatWide{to{transform:translateY(-10px) scale(1.015)}}
.motion-blur .art-reveal{filter:blur(12px);transform:translateY(8px)}.motion-blur .art-reveal.is-visible{filter:none;transform:none}
.motion-curtain .art-reveal{clip-path:inset(0 50%)}.motion-curtain .art-reveal.is-visible{clip-path:inset(0)}
.motion-plant-draw .art-motif i{animation:artPlantSway 6s ease-in-out infinite alternate}@keyframes artPlantSway{to{transform:rotate(34deg)}}
.motion-retro .art-reveal{transform:translateX(24px) rotate(1deg)}.motion-retro .art-reveal.is-visible{transform:none}
.motion-film .art-reveal{filter:grayscale(1) contrast(1.15);opacity:.25}.motion-film .art-reveal.is-visible{filter:grayscale(0);opacity:1}
.motion-geometric .art-reveal{transform:scale(.96);clip-path:polygon(50% 0,50% 0,50% 100%,50% 100%)}.motion-geometric .art-reveal.is-visible{transform:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.motion-paper .art-reveal{transform:translateY(18px) rotate(-1deg)}.motion-paper .art-reveal.is-visible{transform:none}
.motion-line-draw .art-reveal{transform:none}.motion-line-draw .art-program-row{opacity:.35;transition:opacity .6s}.motion-line-draw .art-program-row.is-visible{opacity:1}
.motion-firefly .art-reveal{transform:translateY(14px);filter:blur(3px)}.motion-firefly .art-reveal.is-visible{transform:none;filter:none}
.motion-pop .art-reveal{transform:scale(.88) rotate(-2deg)}.motion-pop .art-reveal.is-visible{transform:none}
.motion-tracking .art-reveal{letter-spacing:.08em;opacity:0}.motion-tracking .art-reveal.is-visible{letter-spacing:normal;opacity:1}
.motion-construction .art-reveal{clip-path:inset(0 0 100% 0)}.motion-construction .art-reveal.is-visible{clip-path:inset(0)}
.motion-fluid .art-reveal{transform:translateY(18px) scale(.98);filter:blur(5px)}.motion-fluid .art-reveal.is-visible{transform:none;filter:none}
.motion-arch .art-reveal{clip-path:ellipse(20% 0 at 50% 100%)}.motion-arch .art-reveal.is-visible{clip-path:ellipse(90% 90% at 50% 50%)}
.motion-aurora .art-reveal{filter:blur(12px);transform:translateY(20px) scale(.98)}.motion-aurora .art-reveal.is-visible{filter:none;transform:none}
@media (max-width:700px){.art-theme-celestial-eclipse .art-intro-content,.art-theme-celestial-eclipse .art-hosts-card,.art-theme-celestial-eclipse .art-venue-card{aspect-ratio:auto;border-radius:180px;padding:42px 24px}.art-theme-paris-editorial .art-dress-card{display:flex}.art-theme-pop-art-wedding .art-intro-content,.art-theme-pop-art-wedding .art-hosts-card,.art-theme-pop-art-wedding .art-venue-card,.art-theme-pop-art-wedding .art-contact-card{padding:28px}.art-theme-gothic-cathedral .art-intro-content,.art-theme-gothic-cathedral .art-hosts-card,.art-theme-gothic-cathedral .art-venue-card,.art-theme-gothic-cathedral .art-contact-card{padding:42px 24px}}

/* =========================================================
   Event-level shared media — one photo set per event category
   ========================================================= */
.admin-event-media-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.admin-event-media-hint {
  display:block;
  margin-top:-4px;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}
.admin-demo-event-media {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.admin-demo-event-media > div {
  display:grid;
  gap:9px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.72);
}
.admin-demo-event-media strong { font-size:13px; }
.admin-demo-event-media small { color:var(--muted); font-size:11px; line-height:1.45; }
.admin-demo-event-media img {
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  display:block;
  border-radius:12px;
  background:#eee8df;
}
.admin-demo-grid-inherited {
  grid-template-columns:minmax(180px,.9fr) minmax(280px,1.4fr) minmax(220px,1fr);
}
.template-event-main-photo {
  object-fit:cover;
}
@media  (max-width:900px) {
  .admin-event-media-grid,
  .admin-demo-event-media { grid-template-columns:1fr; }
  .admin-demo-grid-inherited { grid-template-columns:1fr; }
}
.template-event-photo-composition {
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  background:#eee8df;
}
.template-event-photo-composition .template-event-main-photo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.template-event-design-overlay {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.18;
  mix-blend-mode:multiply;
  pointer-events:none;
}
.template-card:hover .template-event-photo-composition .template-event-main-photo { transform:scale(1.025); }
.template-catalog-grid.category-template-grid .template-preview > .template-event-photo-composition,
.home-template-grid .template-preview > .template-event-photo-composition {
  padding:0 !important;
  min-height:0 !important;
  height:100%;
}

/* =========================================================
   Event media v2 — 8-photo event galleries + true template thumbnails
   ========================================================= */
.admin-event-media-grid {
  grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr);
  align-items:start;
}
.admin-event-gallery-field {
  display:grid;
  gap:12px;
  min-width:0;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.72);
}
.admin-event-gallery-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.admin-event-gallery-head > div:first-child { display:grid; gap:4px; }
.admin-event-gallery-head small { color:var(--muted); font-size:11px; }
.admin-event-gallery-actions { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.admin-event-gallery-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
}
.admin-event-gallery-item {
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:12px;
  background:#eee8df;
  border:1px solid rgba(40,35,29,.08);
}
.admin-event-gallery-item img { width:100%;height:100%;object-fit:cover;display:block; }
.admin-event-gallery-number {
  position:absolute;top:7px;left:7px;
  min-width:24px;height:24px;padding:0 6px;
  display:grid;place-items:center;
  border-radius:999px;background:rgba(20,20,18,.76);color:#fff;
  font-size:10px;font-weight:700;
  backdrop-filter:blur(8px);
}
.admin-event-gallery-item-actions {
  position:absolute;left:6px;right:6px;bottom:6px;
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;
  opacity:0;transform:translateY(4px);transition:.18s ease;
}
.admin-event-gallery-item:hover .admin-event-gallery-item-actions,
.admin-event-gallery-item:focus-within .admin-event-gallery-item-actions { opacity:1;transform:none; }
.admin-event-gallery-item-actions button {
  min-width:0;height:28px;border:0;border-radius:8px;
  background:rgba(255,255,255,.92);color:#25211d;font-weight:700;
  box-shadow:0 4px 12px rgba(0,0,0,.1);
}
.admin-event-gallery-item-actions button:disabled { opacity:.35; }
.admin-event-gallery-item-actions button.danger { color:#8a2828; }
.admin-event-gallery-empty {
  min-height:120px;display:grid;place-items:center;text-align:center;
  padding:18px;border:1px dashed #d7cec3;border-radius:12px;color:var(--muted);font-size:12px;
}
.admin-demo-event-media { grid-template-columns:minmax(180px,.55fr) minmax(360px,1.45fr); }
.admin-demo-shared-gallery { display:grid;gap:9px; }
.admin-demo-shared-gallery-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px; }
.admin-demo-shared-gallery-grid img { aspect-ratio:4/5!important;border-radius:9px!important; }

.wedding-template-thumbnail {
  position:relative;
  width:100%;height:100%;min-height:0!important;
  overflow:hidden;
  padding:0!important;
  isolation:isolate;
  background:var(--wt-bg,#f2ede5);
  color:var(--wt-ink,#181818);
}
.wedding-template-thumbnail .wt-photo { position:absolute;overflow:hidden;z-index:2; }
.wedding-template-thumbnail .wt-photo img { width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.template-card:hover .wedding-template-thumbnail .wt-photo img { transform:scale(1.025); }
.wedding-template-thumbnail .wt-copy { position:absolute;z-index:5; }
.wedding-template-thumbnail .wt-copy small { display:block;font:700 6px/1.2 "Noto Sans",sans-serif;letter-spacing:.22em;text-transform:uppercase; }
.wedding-template-thumbnail .wt-copy h4 { margin:0;font-family:"Playfair Display",serif;font-weight:500;line-height:.9;letter-spacing:-.045em; }
.wedding-template-thumbnail .wt-copy h4 > span { display:flex;align-items:baseline;gap:.16em;flex-wrap:wrap; }
.wedding-template-thumbnail .wt-copy h4 em { font-weight:400;font-style:italic;color:var(--wt-accent); }
.wedding-template-thumbnail .wt-copy p { margin:0;font:600 6px/1.2 "Noto Sans",sans-serif;letter-spacing:.08em;text-transform:uppercase; }
.wedding-template-thumbnail .wt-signature { position:absolute;z-index:6;font:700 5px/1 "Noto Sans",sans-serif;text-transform:uppercase;letter-spacing:.18em;opacity:.58; }
.wedding-template-thumbnail .wt-decor { position:absolute;z-index:1;pointer-events:none; }

/* Ivory — full editorial portrait with fine oval frame. */
.wt-ivory { background:#eadbc6; }
.wt-ivory .wt-photo { inset:0; }
.wt-ivory .wt-photo:after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fff5 0 12%,transparent 42%,#eadbc6aa 100%); }
.wt-ivory-frame { position:absolute;z-index:4;inset:8% 8% 11%;border:1px solid rgba(102,83,58,.25);border-radius:48% 48% 46% 46%; }
.wt-ivory-frame:before,.wt-ivory-frame:after { content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#aa8f67; }
.wt-ivory-frame:before { top:2%;left:7%; }.wt-ivory-frame:after { right:5%;bottom:5%; }
.wt-ivory .wt-copy { inset:auto 8% 12%;text-align:center;color:#544536; }
.wt-ivory .wt-copy small { margin-bottom:13px; }
.wt-ivory .wt-copy h4 { font-size:24px; }
.wt-ivory .wt-copy h4 > span { justify-content:center; }
.wt-ivory .wt-copy p { margin-top:12px;letter-spacing:.18em; }

/* 02 Celestial Eclipse */
.wt-celestial-eclipse { background:#090814;color:#f4efe4; }
.wt-celestial-eclipse:before,.wt-celestial-eclipse:after { content:"";position:absolute;border:1px solid rgba(198,166,106,.42);border-radius:50%;z-index:1; }
.wt-celestial-eclipse:before { width:125%;height:68%;left:-18%;top:8%;transform:rotate(22deg); }
.wt-celestial-eclipse:after { width:72%;height:118%;left:16%;top:-11%;transform:rotate(-19deg); }
.wt-celestial-eclipse .wt-photo { width:60%;aspect-ratio:1;left:20%;top:18%;border-radius:50%;clip-path:circle(49%); }
.wt-celestial-eclipse .wt-photo:after { content:"";position:absolute;width:75%;height:75%;right:-23%;top:-9%;border-radius:50%;background:#090814;box-shadow:0 0 30px #3a1f62aa; }
.wt-celestial-eclipse .wt-copy { left:5%;right:5%;bottom:13%;text-align:center; }
.wt-celestial-eclipse .wt-copy h4 { font-size:25px; }.wt-celestial-eclipse .wt-copy h4 > span{justify-content:center}.wt-celestial-eclipse .wt-copy p{margin-top:8px}.wt-celestial-eclipse .wt-signature{bottom:5%;left:50%;transform:translateX(-50%);color:#c6a66a}

/* 03 Paris Editorial */
.wt-paris-editorial { background:#f3eee5;color:#151515; }
.wt-paris-editorial .wt-photo { left:7%;top:8%;width:61%;height:82%; }
.wt-paris-editorial .wt-photo:after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 72%,#f3eee5dd); }
.wt-paris-editorial .wt-copy { left:3%;right:3%;top:38%; }
.wt-paris-editorial .wt-copy small { margin-left:70%;color:#a61922; }
.wt-paris-editorial .wt-copy h4 { font-size:37px;mix-blend-mode:multiply;white-space:nowrap; }
.wt-paris-editorial .wt-copy p { margin-left:70%;margin-top:7px; }
.wt-paris-editorial .wt-copy:after { content:"";display:block;width:48%;margin-left:50%;margin-top:8px;border-top:1px solid #151515; }
.wt-paris-editorial .wt-signature { left:71%;bottom:8%;color:#a61922; }

/* 04 Sakura Mist */
.wt-sakura-mist { background:radial-gradient(circle at 50% 35%,#fff 0,#fffaf7 45%,#f7e7e8 100%);color:#765b55; }
.wt-sakura-mist .wt-photo { width:54%;height:68%;left:23%;top:8%;border-radius:48% 52% 46% 54%/38% 44% 56% 62%;box-shadow:inset 0 0 30px 14px #fffaf7; }
.wt-sakura-mist .wt-decor-a,.wt-sakura-mist .wt-decor-b { width:5px;height:9px;border-radius:80% 20% 80% 20%;background:#e8b9bf;transform:rotate(28deg); }
.wt-sakura-mist .wt-decor-a { left:12%;top:46%; }.wt-sakura-mist .wt-decor-b{right:12%;top:18%;}
.wt-sakura-mist .wt-copy { left:5%;right:5%;bottom:8%;text-align:center; }
.wt-sakura-mist .wt-copy h4 { font-size:29px; }.wt-sakura-mist .wt-copy h4 > span{justify-content:center}.wt-sakura-mist .wt-copy h4 em{color:#e8b9bf}.wt-sakura-mist .wt-copy p{margin-top:8px}.wt-sakura-mist .wt-signature{right:6%;bottom:3%;}

/* 05 Electric Love */
.wt-electric-love { background:#050507;color:#fff; }
.wt-electric-love .wt-photo { inset:0;filter:saturate(.62) contrast(1.06); }
.wt-electric-love .wt-photo:after { content:"";position:absolute;inset:0;background:linear-gradient(115deg,#05050744,#050507d9 72%); }
.wt-electric-love .wt-copy { left:8%;right:5%;top:37%; }
.wt-electric-love .wt-copy small { margin-bottom:7px; }.wt-electric-love .wt-copy h4{font-family:"Noto Sans",sans-serif;font-weight:800;font-size:35px;line-height:.82;text-transform:uppercase;letter-spacing:-.08em}.wt-electric-love .wt-copy h4 > span{display:block}.wt-electric-love .wt-copy h4 em{display:none}.wt-electric-love .wt-copy h4 span span:last-child{display:block;margin-left:34%;color:#ff2ca8}.wt-electric-love .wt-copy p{display:inline-block;margin-top:10px;padding:5px 7px;background:#225cff;color:#fff}.wt-electric-love .wt-signature{left:8%;bottom:8%;color:#ff654f}

/* 06 Desert Vow */
.wt-desert-vow { background:#e8d3b6;color:#3d352f; }
.wt-desert-vow .wt-decor-a { width:63%;aspect-ratio:1;border-radius:50%;background:#d88747;left:-14%;top:8%; }
.wt-desert-vow .wt-photo { width:58%;height:62%;left:31%;top:22%;border-radius:48% 48% 8% 8%; }
.wt-desert-vow .wt-decor-b { left:-10%;right:-5%;height:25%;bottom:-8%;background:#b76543;border-radius:50% 45% 0 0; }
.wt-desert-vow .wt-copy { left:4%;right:4%;top:43%;text-align:right; }
.wt-desert-vow .wt-copy h4{font-size:28px}.wt-desert-vow .wt-copy h4 > span{justify-content:flex-end}.wt-desert-vow .wt-copy p{margin-top:8px}.wt-desert-vow .wt-signature{right:5%;bottom:10%;}

/* 07 Nordic Glass */
.wt-nordic-glass { background:linear-gradient(145deg,#f9fbfb,#dce9ed);color:#263035; }
.wt-nordic-glass .wt-photo { right:7%;top:10%;width:72%;height:72%;border-radius:3px;filter:saturate(.72); }
.wt-nordic-glass .wt-photo:after{content:"";position:absolute;inset:0 48% 0 0;background:#e9f1f3b5;backdrop-filter:blur(8px);border-right:1px solid #fff}.wt-nordic-glass .wt-copy{left:7%;top:46%;width:45%}.wt-nordic-glass .wt-copy h4{font-family:"Noto Sans",sans-serif;font-size:24px;font-weight:500;letter-spacing:-.07em}.wt-nordic-glass .wt-copy h4 > span{display:block}.wt-nordic-glass .wt-copy p{margin-top:10px}.wt-nordic-glass .wt-signature{left:7%;bottom:7%;}.wt-nordic-glass .wt-decor-a{left:7%;top:10%;height:22%;border-left:1px solid #a7b1b6}.wt-nordic-glass .wt-decor-b{left:7%;right:7%;bottom:14%;border-top:1px solid #a7b1b6}

/* 08 Baroque Noir */
.wt-baroque-noir { background:radial-gradient(circle at 50% 36%,#641f2d 0,#18090d 68%);color:#f0e5d2; }
.wt-baroque-noir .wt-photo { width:55%;height:62%;left:22.5%;top:12%;border:6px solid #b89558;outline:1px solid #f0e5d288;outline-offset:5px; }
.wt-baroque-noir .wt-photo:before{content:"";position:absolute;inset:4px;border:1px solid #b8955888;z-index:2}.wt-baroque-noir .wt-copy{left:5%;right:5%;bottom:8%;text-align:center}.wt-baroque-noir .wt-copy h4{font-size:26px}.wt-baroque-noir .wt-copy h4 > span{justify-content:center}.wt-baroque-noir .wt-copy p{margin-top:8px;color:#b89558}.wt-baroque-noir .wt-signature{right:5%;top:5%;color:#b89558}

/* 09 Herbarium */
.wt-herbarium { background:#eee8d7;color:#5d4c3d; }
.wt-herbarium .wt-photo { left:8%;top:10%;width:62%;height:70%;padding:8px;background:#f8f4e7;border:1px solid #5d4c3d55; }
.wt-herbarium .wt-photo img{filter:saturate(.68)}.wt-herbarium .wt-copy{right:5%;top:28%;width:34%}.wt-herbarium .wt-copy small{color:#657052}.wt-herbarium .wt-copy h4{font-size:23px}.wt-herbarium .wt-copy h4 > span{display:block}.wt-herbarium .wt-copy p{margin-top:9px}.wt-herbarium .wt-decor-a{right:7%;bottom:16%;width:26%;height:22%;border-left:1px solid #657052;border-bottom:1px solid #657052;border-radius:0 0 0 70%}.wt-herbarium .wt-decor-b{right:13%;bottom:24%;width:5px;height:5px;border-radius:50%;background:#657052;box-shadow:12px 10px 0 #a4ad82,20px -7px 0 #657052}.wt-herbarium .wt-signature{left:8%;bottom:6%;}

/* 10 Riviera 60s */
.wt-riviera-60s { background:#efce39;color:#145d8c; }
.wt-riviera-60s .wt-photo { right:0;bottom:0;width:63%;height:76%;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%); }
.wt-riviera-60s .wt-copy{left:7%;top:18%;width:57%}.wt-riviera-60s .wt-copy h4{font-family:"Noto Sans",sans-serif;font-weight:800;font-size:30px;line-height:.8;text-transform:uppercase}.wt-riviera-60s .wt-copy h4 > span{display:block}.wt-riviera-60s .wt-copy h4 em{color:#e36f59}.wt-riviera-60s .wt-copy p{display:inline-block;margin-top:10px;padding:5px 7px;background:#eff5ef;color:#145d8c;border-radius:999px}.wt-riviera-60s .wt-decor-a{width:36%;aspect-ratio:1;border-radius:50%;background:#e36f59;right:-14%;top:-14%}.wt-riviera-60s .wt-decor-b{left:-10%;bottom:-12%;width:42%;aspect-ratio:1;border-radius:50%;background:#eff5ef}.wt-riviera-60s .wt-signature{left:7%;bottom:7%;}

/* 11 Cinema Noir */
.wt-cinema-noir { background:#080808;color:#f4f4f1; }
.wt-cinema-noir:before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 20% 30%,#fff1 0 1px,transparent 1px 4px);opacity:.3}.wt-cinema-noir .wt-photo{left:4%;right:4%;top:25%;height:32%;filter:grayscale(1) contrast(1.08)}.wt-cinema-noir .wt-photo:before,.wt-cinema-noir .wt-photo:after{content:"";position:absolute;left:0;right:0;height:5px;background:#080808;z-index:2}.wt-cinema-noir .wt-photo:before{top:0}.wt-cinema-noir .wt-photo:after{bottom:0}.wt-cinema-noir .wt-copy{left:4%;right:4%;top:62%;text-align:center}.wt-cinema-noir .wt-copy h4{font-family:"Noto Sans",sans-serif;font-size:25px;text-transform:uppercase;letter-spacing:.02em}.wt-cinema-noir .wt-copy h4 > span{justify-content:center}.wt-cinema-noir .wt-copy p{margin-top:8px}.wt-cinema-noir .wt-signature{left:5%;bottom:6%;color:#979797}

/* 12 Art Deco Champagne */
.wt-art-deco-champagne { background:#0b0a09;color:#f4ead9; }
.wt-art-deco-champagne:before,.wt-art-deco-champagne:after{content:"";position:absolute;inset:5% 7%;border:1px solid #c7a86b;clip-path:polygon(0 12%,12% 12%,12% 0,88% 0,88% 12%,100% 12%,100% 88%,88% 88%,88% 100%,12% 100%,12% 88%,0 88%)}.wt-art-deco-champagne:after{inset:8% 10%;opacity:.62}.wt-art-deco-champagne .wt-photo{width:52%;height:59%;left:24%;top:15%;clip-path:polygon(20% 0,80% 0,100% 20%,100% 80%,80% 100%,20% 100%,0 80%,0 20%)}.wt-art-deco-champagne .wt-copy{left:6%;right:6%;bottom:8%;text-align:center}.wt-art-deco-champagne .wt-copy h4{font-size:25px}.wt-art-deco-champagne .wt-copy h4 > span{justify-content:center}.wt-art-deco-champagne .wt-copy p{margin-top:7px;color:#c7a86b}.wt-art-deco-champagne .wt-signature{top:7%;left:50%;transform:translateX(-50%);color:#c7a86b}

/* 13 Paper Cut Romance */
.wt-paper-cut-romance { background:#f3d7ce;color:#5e4553; }
.wt-paper-cut-romance .wt-decor-a,.wt-paper-cut-romance .wt-decor-b{inset:6% 5%;background:#d6c4e7;clip-path:polygon(0 7%,15% 2%,30% 8%,47% 1%,65% 7%,80% 3%,100% 10%,96% 90%,80% 96%,60% 91%,45% 98%,28% 92%,10% 97%,3% 80%);filter:drop-shadow(0 9px 10px #5e455333)}.wt-paper-cut-romance .wt-decor-b{inset:11% 10%;background:#e8e0c5}.wt-paper-cut-romance .wt-photo{z-index:3;width:58%;height:61%;left:21%;top:15%;clip-path:polygon(12% 4%,88% 2%,96% 18%,92% 84%,78% 96%,18% 92%,4% 78%,8% 20%)}.wt-paper-cut-romance .wt-copy{left:5%;right:5%;bottom:8%;text-align:center}.wt-paper-cut-romance .wt-copy h4{font-size:26px}.wt-paper-cut-romance .wt-copy h4 > span{justify-content:center}.wt-paper-cut-romance .wt-copy p{margin-top:7px}.wt-paper-cut-romance .wt-signature{right:5%;top:5%;}

/* 14 Red Thread */
.wt-red-thread { background:#fbfaf7;color:#151515; }
.wt-red-thread .wt-photo{right:8%;top:24%;width:39%;height:48%;}.wt-red-thread .wt-copy{left:7%;top:24%;width:58%}.wt-red-thread .wt-copy h4{font-family:"Noto Sans",sans-serif;font-size:26px;font-weight:500;letter-spacing:-.065em}.wt-red-thread .wt-copy h4 > span{display:block}.wt-red-thread .wt-copy h4 em{color:#a51f28}.wt-red-thread .wt-copy p{margin-top:10px}.wt-red-thread .wt-decor-a{left:-8%;top:50%;width:122%;height:35%;border:2px solid #a51f28;border-color:#a51f28 transparent transparent #a51f28;border-radius:50%;transform:rotate(-12deg)}.wt-red-thread .wt-decor-b{right:7%;bottom:9%;width:28px;height:15px;border:2px solid #a51f28;border-radius:50% 50% 50% 50%;transform:rotate(-18deg)}.wt-red-thread .wt-signature{left:7%;bottom:8%;color:#a51f28}

/* 15 Moonlit Garden */
.wt-moonlit-garden { background:linear-gradient(180deg,#17251f,#0f1613);color:#f1efe6; }
.wt-moonlit-garden .wt-decor-a{width:64%;aspect-ratio:1;border-radius:50%;background:#e8e9df;right:-6%;top:7%;box-shadow:0 0 28px #e8e9df44}.wt-moonlit-garden .wt-photo{right:10%;top:20%;width:47%;height:57%;border-radius:48% 48% 0 0;mix-blend-mode:luminosity}.wt-moonlit-garden .wt-copy{left:7%;top:33%;width:55%}.wt-moonlit-garden .wt-copy h4{font-size:27px}.wt-moonlit-garden .wt-copy h4 > span{display:block}.wt-moonlit-garden .wt-copy h4 em{color:#c5a76a}.wt-moonlit-garden .wt-copy p{margin-top:9px}.wt-moonlit-garden .wt-decor-b{left:4%;right:4%;bottom:4%;height:22%;background:linear-gradient(180deg,transparent,#17251f);clip-path:polygon(0 80%,18% 55%,35% 76%,52% 40%,73% 72%,100% 45%,100% 100%,0 100%)}.wt-moonlit-garden .wt-signature{left:7%;bottom:7%;color:#c5a76a}

/* 16 Pop Art Wedding */
.wt-pop-art-wedding { background:radial-gradient(circle,#111 1px,transparent 1px) 0 0/9px 9px,#f6d329;color:#111; }
.wt-pop-art-wedding .wt-photo{right:5%;bottom:7%;width:57%;height:64%;border:4px solid #111;transform:rotate(3deg);box-shadow:11px 11px 0 #175bd7}.wt-pop-art-wedding .wt-copy{left:5%;top:18%;width:70%}.wt-pop-art-wedding .wt-copy h4{font-family:"Noto Sans",sans-serif;font-size:31px;font-weight:900;text-transform:uppercase;line-height:.82;letter-spacing:-.07em;text-shadow:3px 3px 0 #fff}.wt-pop-art-wedding .wt-copy h4 > span{display:block}.wt-pop-art-wedding .wt-copy h4 em{color:#e52535}.wt-pop-art-wedding .wt-copy p{display:inline-block;margin-top:9px;padding:5px 7px;background:#fff;border:2px solid #111;transform:rotate(-2deg)}.wt-pop-art-wedding .wt-decor-a{width:42%;aspect-ratio:1;border-radius:50%;background:#e52535;right:-20%;top:-16%}.wt-pop-art-wedding .wt-signature{left:5%;bottom:5%;background:#111;color:#fff;padding:4px 6px}

/* 17 Pure Typography */
.wt-pure-typography { background:#f7f7f3;color:#111; }
.wt-pure-typography .wt-photo{width:31%;height:31%;right:8%;top:42%;border:5px solid #f7f7f3;z-index:4}.wt-pure-typography .wt-copy{left:4%;right:4%;top:11%}.wt-pure-typography .wt-copy small{margin-left:2px}.wt-pure-typography .wt-copy h4{font-family:"Noto Sans",sans-serif;font-weight:700;font-size:40px;line-height:.72;text-transform:uppercase;letter-spacing:-.1em}.wt-pure-typography .wt-copy h4 > span{display:block}.wt-pure-typography .wt-copy h4 em{display:block;color:#ff4c2e;font-style:normal}.wt-pure-typography .wt-copy p{position:absolute;top:220px;left:0}.wt-pure-typography .wt-decor-a{left:4%;right:4%;bottom:14%;border-top:2px solid #111}.wt-pure-typography .wt-signature{right:4%;bottom:7%;}

/* 18 Nomad Contemporary */
.wt-nomad-contemporary { background:#123e35;color:#f0e5d2; }
.wt-nomad-contemporary:before{content:"";position:absolute;inset:6%;border:1px solid #a8784c;clip-path:polygon(0 10%,10% 10%,10% 0,90% 0,90% 10%,100% 10%,100% 90%,90% 90%,90% 100%,10% 100%,10% 90%,0 90%)}.wt-nomad-contemporary .wt-photo{right:8%;top:19%;width:52%;height:58%;clip-path:polygon(50% 0,100% 18%,94% 78%,50% 100%,6% 78%,0 18%)}.wt-nomad-contemporary .wt-copy{left:7%;top:32%;width:52%}.wt-nomad-contemporary .wt-copy h4{font-size:27px}.wt-nomad-contemporary .wt-copy h4 > span{display:block}.wt-nomad-contemporary .wt-copy h4 em{color:#a8784c}.wt-nomad-contemporary .wt-copy p{margin-top:9px}.wt-nomad-contemporary .wt-decor-a{left:7%;bottom:17%;width:19%;aspect-ratio:1;border:1px solid #a8784c;transform:rotate(45deg)}.wt-nomad-contemporary .wt-signature{left:7%;bottom:7%;color:#a8784c}

/* 19 Ocean Pearl */
.wt-ocean-pearl { background:linear-gradient(180deg,#eff5f1,#cfe8e2);color:#173a42; }
.wt-ocean-pearl .wt-photo{right:4%;top:15%;width:65%;height:61%;border-radius:52% 48% 60% 40%/45% 60% 40% 55%}.wt-ocean-pearl .wt-copy{left:6%;top:31%;width:52%}.wt-ocean-pearl .wt-copy h4{font-size:27px}.wt-ocean-pearl .wt-copy h4 > span{display:block}.wt-ocean-pearl .wt-copy h4 em{color:#7fb6ad}.wt-ocean-pearl .wt-copy p{margin-top:9px}.wt-ocean-pearl .wt-decor-a,.wt-ocean-pearl .wt-decor-b{border-radius:50%;border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 0 12px #fff7}.wt-ocean-pearl .wt-decor-a{width:23%;aspect-ratio:1;left:4%;top:8%}.wt-ocean-pearl .wt-decor-b{width:13%;aspect-ratio:1;right:5%;bottom:8%}.wt-ocean-pearl .wt-signature{left:6%;bottom:7%;}

/* 20 Gothic Cathedral */
.wt-gothic-cathedral { background:linear-gradient(180deg,#242326,#141416);color:#e9e5dc; }
.wt-gothic-cathedral .wt-photo{width:54%;height:66%;left:23%;top:10%;clip-path:polygon(50% 0,75% 9%,92% 28%,100% 50%,100% 100%,0 100%,0 50%,8% 28%,25% 9%)}.wt-gothic-cathedral .wt-photo:after{content:"";position:absolute;inset:0;border:4px solid #aaa9a4;clip-path:inherit}.wt-gothic-cathedral .wt-copy{left:5%;right:5%;bottom:7%;text-align:center}.wt-gothic-cathedral .wt-copy h4{font-size:25px}.wt-gothic-cathedral .wt-copy h4 > span{justify-content:center}.wt-gothic-cathedral .wt-copy h4 em{color:#bf9b61}.wt-gothic-cathedral .wt-copy p{margin-top:7px}.wt-gothic-cathedral .wt-decor-a{left:13%;right:13%;top:5%;height:76%;border:1px solid #aaa9a455;border-radius:50% 50% 0 0}.wt-gothic-cathedral .wt-signature{right:5%;top:5%;color:#bf9b61}

/* 21 Digital Aurora */
.wt-digital-aurora { background:#071024;color:#f0e8ff; }
.wt-digital-aurora:before{content:"";position:absolute;inset:-25%;background:conic-gradient(from 180deg at 50% 50%,#7059ff88,#4bd7ee66,#ff68c766,#7059ff88);filter:blur(24px);opacity:.72}.wt-digital-aurora .wt-photo{width:59%;aspect-ratio:1;left:20.5%;top:18%;border-radius:50%;border:1px solid #ffffffaa;box-shadow:inset 0 0 24px #fff3,0 18px 34px #7059ff66}.wt-digital-aurora .wt-copy{left:5%;right:5%;bottom:11%;text-align:center}.wt-digital-aurora .wt-copy h4{font-size:27px;text-shadow:0 0 15px #7059ff}.wt-digital-aurora .wt-copy h4 > span{justify-content:center}.wt-digital-aurora .wt-copy h4 em{color:#4bd7ee}.wt-digital-aurora .wt-copy p{margin-top:8px}.wt-digital-aurora .wt-decor-a{width:17%;aspect-ratio:1;border-radius:50%;right:6%;top:8%;background:#ffffff12;border:1px solid #ffffff55;backdrop-filter:blur(5px)}.wt-digital-aurora .wt-decor-b{width:11%;aspect-ratio:1;border-radius:50%;left:8%;bottom:18%;background:#ffffff0d;border:1px solid #ffffff44}.wt-digital-aurora .wt-signature{left:50%;bottom:4%;transform:translateX(-50%);color:#4bd7ee}

@media  (max-width:900px) {
  .admin-event-media-grid { grid-template-columns:1fr; }
  .admin-event-gallery-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .admin-demo-event-media { grid-template-columns:1fr; }
}
@media  (max-width:620px) {
  .admin-event-gallery-head { display:grid; }
  .admin-event-gallery-actions { justify-content:flex-start; }
  .admin-event-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-demo-shared-gallery-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .admin-event-gallery-item-actions { opacity:1;transform:none; }
}

/* =========================================================
   Event collection expansion — 12 additional event templates
   ========================================================= */
/* Qyz Uzatu shared foundation for the two new variants */
.theme-qyz { --sig-bg:#f4efe5;--sig-surface:#fffaf2;--sig-ink:#372f29;--sig-muted:#7c7166;--sig-accent:#9b7650;--sig-accent-2:#d1b37c;--sig-dark:#3d302b;--sig-on-dark:#fff8ec; }

.theme-qyz .signature-gate-bg:before { content:"";position:absolute;inset:8%;border:1px solid rgba(155,118,80,.18);border-radius:180px 180px 28px 28px; }
.theme-qyz .signature-hero.no-photo { background:linear-gradient(150deg,#7a5f4d,#3d302b); }
.theme-qyz .signature-hero-overlay { background:linear-gradient(180deg,rgba(42,29,20,.08),rgba(42,29,20,.30) 50%,rgba(42,29,20,.72)); }
.theme-qyz .decor-a,.theme-qyz .decor-b { width:180px;height:300px;border:1px solid rgba(255,240,214,.28);border-radius:100px 100px 18px 18px; }
.theme-qyz .decor-a { left:-120px;top:16%; }.theme-qyz .decor-b { right:-120px;bottom:12%; }
.theme-qyz .signature-date-section { background:#fffaf2; }
.theme-qyz .signature-gallery { grid-template-columns:1fr .9fr;gap:12px; }
.theme-qyz .signature-photo { border-radius:110px 110px 8px 8px; }
.theme-qyz .signature-map-button { background:#6f5542; }
.theme-qyz .signature-final-section { background:linear-gradient(155deg,#60483a,#352923); }

/* Qyz Uzatu 02 — Aq Bata: airy paper editorial */
.theme-qyz-aq-bata { --sig-bg:#f6f1e8;--sig-surface:#fffdf8;--sig-ink:#40362e;--sig-muted:#81766b;--sig-accent:#9a7b54;--sig-accent-2:#cbaa6e;--sig-dark:#5b493b;--sig-on-dark:#fffaf0; }
.theme-qyz-aq-bata .signature-hero-media { inset:4% 5% 8%;border-radius:170px 170px 20px 20px; }
.theme-qyz-aq-bata .signature-hero-overlay { inset:4% 5% 8%;border-radius:170px 170px 20px 20px;background:linear-gradient(180deg,rgba(40,30,20,.02),rgba(40,30,20,.48)); }
.theme-qyz-aq-bata .signature-hero.no-photo { background:#f6f1e8;color:#4c3d31; }
.theme-qyz-aq-bata .signature-hero.no-photo:before { content:"";position:absolute;inset:4% 5% 8%;border-radius:170px 170px 20px 20px;background:linear-gradient(145deg,#e8dcc8,#c9ad86); }
.theme-qyz-aq-bata .signature-hero-inner { padding-top:90px; }
.theme-qyz-aq-bata .signature-intro h2 { font-style:italic;font-weight:400; }
.theme-qyz-aq-bata .signature-date-card { border-top:1px solid rgba(154,123,84,.26);border-bottom:1px solid rgba(154,123,84,.26);padding-block:36px; }
.theme-qyz-aq-bata .signature-gallery { grid-template-columns:1fr 1fr;gap:20px;background:#fffdf8;padding:18px; }
.theme-qyz-aq-bata .signature-photo { border-radius:2px;box-shadow:0 16px 30px rgba(83,67,51,.08); }
.theme-qyz-aq-bata .signature-photo:nth-child(even){ margin-top:44px; }
.theme-qyz-aq-bata .signature-program-row > span { width:18px;height:1px;border-radius:0; }

/* Qyz Uzatu 03 — Tumar: contemporary dark heritage */
.theme-qyz-tumar { --sig-bg:#e8e1d3;--sig-surface:#f2ecdf;--sig-ink:#183c37;--sig-muted:#66736d;--sig-accent:#a75f43;--sig-accent-2:#d4ae76;--sig-dark:#12342f;--sig-on-dark:#f3e4ca; }



.theme-qyz-tumar .signature-hero.no-photo { background:linear-gradient(135deg,#1b4a43,#0f2d29); }
.theme-qyz-tumar .signature-hero-inner { align-items:flex-start;text-align:left;width:min(900px,calc(100% - 48px)); }
.theme-qyz-tumar .signature-hero h1 { font-family:Arial,sans-serif;font-weight:800;letter-spacing:-.06em;text-transform:uppercase;line-height:.82; }
.theme-qyz-tumar .signature-rule { margin-left:0; }
.theme-qyz-tumar .signature-date-section { background:#173d37;color:#f4ead7; }
.theme-qyz-tumar .signature-date-section .signature-date > strong,.theme-qyz-tumar .signature-date-section .signature-date span { color:#f4ead7; }
.theme-qyz-tumar .signature-date-section .signature-date small,.theme-qyz-tumar .signature-date-card .event-time { color:#d9c7aa!important; }
.theme-qyz-tumar .signature-gallery { grid-template-columns:1.2fr .8fr;gap:5px;background:#173d37;padding:5px; }
.theme-qyz-tumar .signature-photo { border-radius:0;filter:saturate(.75) contrast(1.06); }
.theme-qyz-tumar .signature-map-button { border-radius:2px;background:#a75f43; }
.theme-qyz-tumar .signature-final-section { background:#12342f; }

/* Syrga 02 — Pearl: luminous jewellery */
.theme-syrga-pearl { --sig-bg:#f5eee8;--sig-surface:#fffaf6;--sig-ink:#594945;--sig-muted:#8a7771;--sig-accent:#a77f70;--sig-accent-2:#d9bda7;--sig-dark:#66514d;--sig-on-dark:#fff8f2; }

.theme-syrga-pearl .signature-gate-bg:before { box-shadow:0 0 0 34px rgba(217,189,167,.10),0 0 0 68px rgba(217,189,167,.07);border-color:rgba(167,127,112,.18); }
.theme-syrga-pearl .signature-hero.no-photo { background:linear-gradient(155deg,#b89b8c,#66514d); }
.theme-syrga-pearl .signature-side-card { background:rgba(255,255,255,.54);border-radius:999px;min-height:180px; }
.theme-syrga-pearl .signature-gallery { grid-template-columns:1fr 1fr;gap:18px; }
.theme-syrga-pearl .signature-photo { border-radius:999px 999px 28px 28px;box-shadow:0 16px 34px rgba(88,64,58,.08); }
.theme-syrga-pearl .signature-date > strong { color:#a77f70; }
.theme-syrga-pearl .signature-map-button { background:#a77f70; }
.theme-syrga-pearl .signature-final-section { background:linear-gradient(150deg,#755f59,#4e3b38); }

/* Syrga 03 — Velvet: formal plum editorial */
.theme-syrga-velvet { --sig-bg:#ede3dc;--sig-surface:#f8f1eb;--sig-ink:#3b2030;--sig-muted:#765f69;--sig-accent:#7c3859;--sig-accent-2:#b88a60;--sig-dark:#26131f;--sig-on-dark:#f7e7dc; }



.theme-syrga-velvet .signature-hero.no-photo { background:#26131f; }
.theme-syrga-velvet .signature-hero-inner { align-items:flex-end;text-align:right;width:min(880px,calc(100% - 50px)); }
.theme-syrga-velvet .signature-rule { margin-right:0; }
.theme-syrga-velvet .signature-side-grid { gap:0;border:1px solid rgba(124,56,89,.22); }
.theme-syrga-velvet .signature-side-card { border:0;border-radius:0; }
.theme-syrga-velvet .signature-side-card + .signature-side-card { border-left:1px solid rgba(124,56,89,.22); }
.theme-syrga-velvet .signature-gallery { gap:4px;background:#26131f;padding:4px; }
.theme-syrga-velvet .signature-photo { border-radius:0; }
.theme-syrga-velvet .signature-map-button { border-radius:2px;background:#7c3859; }
.theme-syrga-velvet .signature-final-section { background:#26131f; }

/* Tusau 02 — Steppe: warm organic landscape */
.theme-tusau-steppe { --sig-bg:#eee5d4;--sig-surface:#f8f1e2;--sig-ink:#5a4a37;--sig-muted:#81745f;--sig-accent:#8d7048;--sig-accent-2:#c69b57;--sig-dark:#6a5842;--sig-on-dark:#fff6df; }

.theme-tusau-steppe .signature-hero.no-photo { background:linear-gradient(155deg,#aa8c60,#5d4b38); }
.theme-tusau-steppe .signature-hero h1 { font-style:normal;font-weight:500; }
.theme-tusau-steppe .signature-date-card { border-radius:0;background:transparent;border:1px solid rgba(141,112,72,.22); }
.theme-tusau-steppe .signature-gallery { gap:14px;transform:rotate(-.4deg); }
.theme-tusau-steppe .signature-photo { border-radius:18px;box-shadow:0 12px 25px rgba(93,74,52,.10); }
.theme-tusau-steppe .signature-photo-0 { border-radius:90px 18px 18px 18px; }
.theme-tusau-steppe .signature-program-row > span { width:16px;height:1px;transform:none;border-radius:0; }
.theme-tusau-steppe .signature-map-button { background:#8d7048; }
.theme-tusau-steppe .signature-final-section { background:linear-gradient(155deg,#766149,#4f4232); }

/* Tusau 03 — Sunbeam: playful first-step */
.theme-tusau-sunbeam { --sig-bg:#fff4d2;--sig-surface:#fffaf0;--sig-ink:#453b39;--sig-muted:#786e69;--sig-accent:#eb8e55;--sig-accent-2:#efc45a;--sig-dark:#536f83;--sig-on-dark:#fffdf4; }

.theme-tusau-sunbeam .signature-gate-bg:before { background:#f7ba67;opacity:.28; }.theme-tusau-sunbeam .signature-gate-bg:after { background:#84b9c4;opacity:.20; }
.theme-tusau-sunbeam .signature-hero.no-photo { background:linear-gradient(155deg,#f0b061,#e37f58 55%,#667f8f); }
.theme-tusau-sunbeam .signature-hero h1 { font-family:Arial,sans-serif;font-weight:900;font-style:normal;letter-spacing:-.055em; }
.theme-tusau-sunbeam .signature-date-card { border-radius:36px;background:#fffaf0;box-shadow:0 15px 35px rgba(114,85,44,.08); }
.theme-tusau-sunbeam .signature-gallery { grid-template-columns:1fr 1fr;gap:14px;transform:none; }
.theme-tusau-sunbeam .signature-photo { border-radius:26px;border:7px solid #fff;box-shadow:0 12px 24px rgba(80,65,50,.10); }
.theme-tusau-sunbeam .signature-photo:nth-child(2n) { transform:rotate(2deg); }.theme-tusau-sunbeam .signature-photo:nth-child(2n/**/+1) { transform:rotate(-1.5deg); }
.theme-tusau-sunbeam .signature-map-button { background:#eb8e55; }
.theme-tusau-sunbeam .signature-final-section { background:linear-gradient(145deg,#f0a85c,#e88159); }

/* Birthday 02 — Noir Party: adult, sharp, nightlife */
.theme-birthday-noir { --sig-bg:#111216;--sig-surface:#17191f;--sig-ink:#f1efe8;--sig-muted:#9fa2aa;--sig-accent:#c9ff46;--sig-accent-2:#ef6c96;--sig-dark:#08090b;--sig-on-dark:#f8f7f1; }



.theme-birthday-noir .signature-gate-bg:before { background:#c9ff46;width:180px;height:520px;border-radius:0;transform:rotate(26deg);right:-40px;top:-120px;opacity:.15; }
.theme-birthday-noir .signature-gate-bg:after { background:#ef6c96;width:260px;height:260px;opacity:.18; }
.theme-birthday-noir .signature-hero.no-photo { background:#08090b; }
.theme-birthday-noir .signature-hero h1 { text-transform:uppercase;line-height:.78; }
.theme-birthday-noir .signature-section,.theme-birthday-noir .signature-date-section,.theme-birthday-noir .signature-gallery-section,.theme-birthday-noir .signature-venue-section,.theme-birthday-noir .signature-contact-section { background:#111216;color:#f1efe8; }
.theme-birthday-noir .signature-section h2,.theme-birthday-noir .signature-date > strong,.theme-birthday-noir .signature-date span { color:#f1efe8; }
.theme-birthday-noir .signature-section p { color:#9fa2aa; }
.theme-birthday-noir .signature-date > strong { color:#c9ff46; }
.theme-birthday-noir .signature-gallery { gap:3px;background:#08090b;padding:3px;transform:none; }
.theme-birthday-noir .signature-photo { border:0;box-shadow:none;border-radius:0;transform:none!important; }
.theme-birthday-noir .signature-program-row { border-color:#2c2f36; }.theme-birthday-noir .signature-program-row > span { background:#c9ff46; }
.theme-birthday-noir .signature-map-button { background:#c9ff46;color:#08090b; }
.theme-birthday-noir .signature-final-section { background:#c9ff46;color:#08090b; }.theme-birthday-noir .signature-final-section h2 { color:#08090b; }.theme-birthday-noir .signature-final-section p { color:#08090b!important; }

/* Birthday 03 — Confetti Kids: dedicated child template */
.theme-birthday-kids { --sig-bg:#fff7ea;--sig-surface:#ffffff;--sig-ink:#28345e;--sig-muted:#687092;--sig-accent:#ff6f91;--sig-accent-2:#ffc65b;--sig-dark:#5c73b8;--sig-on-dark:#fff; }

.theme-birthday-kids .signature-gate-bg:before { background:#ff6f91;width:210px;height:210px;right:-65px;top:-55px; }.theme-birthday-kids .signature-gate-bg:after { background:#ffc65b;width:190px;height:190px;left:-55px;bottom:-55px; }


.theme-birthday-kids .signature-hero.no-photo { background:linear-gradient(155deg,#6d82c3,#4f68af); }
.theme-birthday-kids .signature-hero h1 { text-transform:uppercase;transform:rotate(-2deg); }
.theme-birthday-kids .decor-a { background:#ff6f91;opacity:.8;width:160px;height:160px;right:-45px; }.theme-birthday-kids .decor-b { background:#ffc65b;opacity:.8;width:110px;height:110px;left:-30px; }
.theme-birthday-kids .signature-date-section { background:#fff0bd; }
.theme-birthday-kids .signature-date > strong { color:#ff6f91; }
.theme-birthday-kids .signature-date-card { background:#fff;border-radius:30px;padding:36px;box-shadow:0 12px 30px rgba(72,83,130,.10); }
.theme-birthday-kids .signature-gallery { grid-template-columns:1fr 1fr;gap:15px;transform:none; }
.theme-birthday-kids .signature-photo { border:8px solid #fff;border-radius:24px;box-shadow:0 13px 26px rgba(72,83,130,.13); }
.theme-birthday-kids .signature-photo:nth-child(3n/**/+1){transform:rotate(-3deg)}.theme-birthday-kids .signature-photo:nth-child(3n/**/+2){transform:rotate(3deg)}
.theme-birthday-kids .signature-map-button { background:#5c73b8; }
.theme-birthday-kids .signature-final-section { background:linear-gradient(145deg,#5c73b8,#7864b9); }

/* Jubilee 02 — Champagne: luminous black tie */
.theme-jubilee-champagne { --sig-bg:#f1eadb;--sig-surface:#fcf8ef;--sig-ink:#3b332b;--sig-muted:#796f64;--sig-accent:#aa8857;--sig-accent-2:#d6bd8e;--sig-dark:#4a4035;--sig-on-dark:#fff8e9; }



.theme-jubilee-champagne .signature-hero.no-photo { background:linear-gradient(150deg,#806b4f,#4a4035); }
.theme-jubilee-champagne .signature-hero .signature-metric strong { color:#f0d7a6; }
.theme-jubilee-champagne .signature-intro { background:#fcf8ef;color:#3b332b; }
.theme-jubilee-champagne .signature-intro h2 { color:#3b332b; }.theme-jubilee-champagne .signature-intro p { color:#796f64; }
.theme-jubilee-champagne .signature-gallery { background:transparent;padding:0;gap:14px; }
.theme-jubilee-champagne .signature-photo { border:10px solid #fff;box-shadow:0 16px 32px rgba(84,68,47,.08); }
.theme-jubilee-champagne .signature-map-button { background:#aa8857;border-radius:999px; }
.theme-jubilee-champagne .signature-final-section { background:linear-gradient(155deg,#5b4c3d,#3f352c); }

/* Jubilee 03 — Heritage: deep green family archive */
.theme-jubilee-heritage { --sig-bg:#e7dfcd;--sig-surface:#f1eadb;--sig-ink:#15372c;--sig-muted:#69766d;--sig-accent:#a86843;--sig-accent-2:#c69866;--sig-dark:#102f27;--sig-on-dark:#f1e7d1; }

.theme-jubilee-heritage .signature-hero.no-photo { background:linear-gradient(145deg,#245343,#102f27); }
.theme-jubilee-heritage .signature-intro { background:#102f27;color:#f1e7d1; }.theme-jubilee-heritage .signature-intro h2 { color:#f1e7d1; }.theme-jubilee-heritage .signature-intro p { color:#c8bcaa; }
.theme-jubilee-heritage .signature-gallery { grid-template-columns:repeat(2,1fr);gap:12px;background:transparent;padding:0; }
.theme-jubilee-heritage .signature-photo { border:1px solid rgba(21,55,44,.25);padding:7px;background:#efe7d6;filter:sepia(.12) saturate(.85); }
.theme-jubilee-heritage .signature-program-row > span { background:#a86843; }
.theme-jubilee-heritage .signature-map-button { background:#15372c; }
.theme-jubilee-heritage .signature-final-section { background:#102f27; }

/* Anniversary 02 — Paper Love: tactile letter album */
.theme-anniversary-paper { --sig-bg:#eee6da;--sig-surface:#faf5ed;--sig-ink:#4b3b38;--sig-muted:#7f716e;--sig-accent:#a66f69;--sig-accent-2:#c6a18e;--sig-dark:#6d504e;--sig-on-dark:#fff7ed; }
.theme-anniversary-paper .signature-gate-bg:before { border-radius:8px;transform:rotate(-2deg);background:rgba(255,255,255,.25); }
.theme-anniversary-paper .signature-hero.no-photo { background:linear-gradient(145deg,#aa8079,#6d504e); }
.theme-anniversary-paper .signature-intro { background:#faf5ed; }
.theme-anniversary-paper .signature-date-card { background:#fffdf8;padding:40px;box-shadow:0 16px 40px rgba(80,60,55,.09);transform:rotate(-1deg); }
.theme-anniversary-paper .signature-gallery { grid-template-columns:1fr 1fr;gap:24px; }
.theme-anniversary-paper .signature-photo { border-radius:2px;border:12px solid #fff;box-shadow:0 18px 34px rgba(78,59,54,.12); }
.theme-anniversary-paper .signature-photo:nth-child(odd){ transform:rotate(-2deg); }.theme-anniversary-paper .signature-photo:nth-child(even){ transform:rotate(2deg);margin-top:34px; }
.theme-anniversary-paper .signature-map-button { background:#a66f69; }
.theme-anniversary-paper .signature-final-section { background:linear-gradient(155deg,#82615d,#604441); }

/* Anniversary 03 — Afterglow: cinematic dusk */
.theme-anniversary-afterglow { --sig-bg:#262039;--sig-surface:#312946;--sig-ink:#f2e5dd;--sig-muted:#b4a7b1;--sig-accent:#d98f6f;--sig-accent-2:#eab6a0;--sig-dark:#171326;--sig-on-dark:#f8e9df; }

.theme-anniversary-afterglow .signature-hero.no-photo { background:linear-gradient(180deg,#604c72 0,#3b2e57 50%,#171326 100%); }
.theme-anniversary-afterglow .signature-hero-overlay { background:linear-gradient(180deg,rgba(20,14,35,.05),rgba(25,16,39,.35) 48%,rgba(17,12,28,.82)); }
.theme-anniversary-afterglow .signature-section,.theme-anniversary-afterglow .signature-date-section,.theme-anniversary-afterglow .signature-gallery-section,.theme-anniversary-afterglow .signature-venue-section,.theme-anniversary-afterglow .signature-contact-section { background:#262039;color:#f2e5dd; }
.theme-anniversary-afterglow .signature-section h2,.theme-anniversary-afterglow .signature-date > strong,.theme-anniversary-afterglow .signature-date span { color:#f2e5dd; }.theme-anniversary-afterglow .signature-section p { color:#b4a7b1; }
.theme-anniversary-afterglow .signature-gallery { gap:4px;background:#171326;padding:4px; }
.theme-anniversary-afterglow .signature-photo { border-radius:0;filter:saturate(.82) contrast(1.04); }
.theme-anniversary-afterglow .signature-program-row { border-color:#463d59; }.theme-anniversary-afterglow .signature-program-row > span { border-color:#d98f6f; }
.theme-anniversary-afterglow .signature-map-button { background:#d98f6f; }
.theme-anniversary-afterglow .signature-final-section { background:linear-gradient(180deg,#211a34,#100d1b); }

@media  (max-width:700px) {
  .theme-qyz-aq-bata .signature-hero-media,.theme-qyz-aq-bata .signature-hero-overlay { inset:3% 4% 7%;border-radius:120px 120px 18px 18px; }
  .theme-qyz-tumar .signature-hero-inner,.theme-syrga-velvet .signature-hero-inner { width:calc(100% - 34px); }
  .theme-birthday-kids .signature-date-card,.theme-anniversary-paper .signature-date-card { padding:28px 18px; }
}

/* =========================================================
   Wedding 07 — Nordic Glass / photo-story redesign (Stage 3)
   Gallery images are woven into the invitation narrative.
   ========================================================= */
.nordic-story {
  --ng-bg:#f2f4f3;
  --ng-paper:#fbfcfb;
  --ng-ink:#222b2f;
  --ng-muted:#6c777b;
  --ng-line:rgba(34,43,47,.18);
  --ng-glass:rgba(255,255,255,.58);
  --ng-frost:rgba(230,236,237,.72);
  --ng-blue:#879ba4;
  background:var(--ng-bg);
  color:var(--ng-ink);
  font-family:"Noto Sans",sans-serif;
  overflow:hidden;
}
.nordic-story .invite-body { background:var(--ng-bg); }



.nordic-story .ng-kicker,.nordic-story .ng-hero-event {
  font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--ng-muted);
}

.nordic-story .ng-hero h1 span,.nordic-story .ng-final-names span { display:block; }
.nordic-story .ng-hero h1 em,.nordic-story .ng-final-names em { display:block;font-family:"Playfair Display",serif;font-weight:400;font-size:.55em;line-height:.9;margin:.06em 0;font-style:italic;color:var(--ng-blue); }



.ng-hero { min-height:100svh;position:relative;background:linear-gradient(145deg,#f8faf9,#dce6e8);overflow:hidden; }
.ng-hero-photo { position:absolute;inset:7vh 5vw 8vh 21vw;overflow:hidden;background:#d8e0e2; }
.ng-hero-photo img { width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(.96);transition:transform 1.5s cubic-bezier(.16,1,.3,1); }
.ng-hero-photo:after { content:"";position:absolute;inset:0 48% 0 0;background:rgba(231,238,239,.64);backdrop-filter:blur(17px);border-right:1px solid rgba(255,255,255,.85); }
.ng-hero-placeholder { height:100%;display:grid;place-items:center;letter-spacing:.3em;font-size:11px;color:#73868d; }
.ng-hero-glass { position:absolute;z-index:2;left:8vw;top:50%;transform:translateY(-50%);width:min(510px,48vw);padding:34px 34px 30px;border:1px solid rgba(255,255,255,.88);background:rgba(255,255,255,.32);backdrop-filter:blur(14px); }
.ng-hero h1 { margin:18px 0 24px;font-family:"Noto Sans",sans-serif;font-size:clamp(52px,7.4vw,112px);line-height:.83;font-weight:400;letter-spacing:-.075em; }
.ng-hero h1 span { display:block; }
.ng-hero h1 em { display:block;font-family:"Playfair Display",serif;font-weight:400;font-style:italic;font-size:.43em;letter-spacing:-.02em;line-height:1;margin:.12em 0;color:var(--ng-blue); }
.ng-names-medium { font-size:.86em !important; }.ng-names-compact { font-size:.72em !important; }
.ng-hero-meta { border-top:1px solid var(--ng-line);padding-top:15px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;text-transform:uppercase;letter-spacing:.09em; }
.ng-hero-meta strong { font-weight:600; }.ng-hero-meta small { color:var(--ng-muted); }
.ng-hero-mark { position:absolute;left:8vw;bottom:7vh;font-size:9px;letter-spacing:.22em;color:var(--ng-muted); }
.ng-chevron { position:absolute;right:7vw;bottom:6.5vh;color:#61737a; }

.ng-story-section { position:relative;padding:clamp(76px,11vw,145px) 24px;display:flex;justify-content:center; }
.ng-story-section h2,.ng-final h2 { font-family:"Playfair Display",serif;font-weight:400;font-size:clamp(36px,5vw,66px);line-height:1.05;letter-spacing:-.035em;margin:14px 0 22px; }
.ng-story-section p { color:var(--ng-muted);line-height:1.9;font-size:14px;margin:0; }
.ng-glass-card { width:min(720px,100%);padding:clamp(32px,5vw,62px);border:1px solid rgba(255,255,255,.9);background:var(--ng-glass);backdrop-filter:blur(20px);box-shadow:0 20px 65px rgba(62,76,80,.06); }
.ng-copy-card { text-align:center; }.ng-copy-card .ng-invitation-copy { max-width:570px;margin:0 auto;font-family:"Playfair Display",serif;font-size:clamp(18px,2.1vw,25px);line-height:1.75;color:#4d595d; }
.ng-card-rule { display:block;width:1px;height:64px;background:var(--ng-line);margin:34px auto -15px; }

.ng-date { background:#e8eeee; }
.ng-date-panel { width:min(800px,100%); }
.ng-date-grid { margin-top:18px;padding:26px 0;border-top:1px solid var(--ng-ink);border-bottom:1px solid var(--ng-ink);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(24px,7vw,90px); }
.ng-date-grid > strong { font-size:clamp(96px,18vw,190px);line-height:.8;font-weight:400;letter-spacing:-.08em; }
.ng-date-grid > div { display:grid;gap:5px;text-transform:uppercase;letter-spacing:.12em; }
.ng-date-grid span { font-family:"Playfair Display",serif;font-size:clamp(27px,4vw,48px);letter-spacing:-.02em;text-transform:none; }
.ng-date-grid small { color:var(--ng-muted); }.ng-date-grid b { font-weight:500;font-size:22px; }
.ng-time-line { margin-top:20px;display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.14em;font-size:11px; }
.ng-time-line strong { font-size:25px;font-weight:500;letter-spacing:-.03em; }

.ng-countdown-card { text-align:center; }
.ng-countdown-card .countdown { margin:30px auto 0;width:100%;gap:0;border-top:1px solid var(--ng-line);border-bottom:1px solid var(--ng-line); }
.ng-countdown-card .countdown div { border:0;border-right:1px solid var(--ng-line);border-radius:0;background:transparent;padding:24px 8px; }
.ng-countdown-card .countdown div:last-child { border-right:0; }
.ng-countdown-card .countdown strong { font-family:"Noto Sans",sans-serif;font-weight:300;letter-spacing:-.06em;font-size:clamp(36px,6vw,62px); }

.ng-quiet-card { width:min(760px,100%);text-align:center;padding:20px 0; }
.ng-hosts .ng-quiet-card h2 { font-size:clamp(44px,6vw,82px); }
.ng-venue-card { text-align:left;position:relative; }.ng-venue-icon { color:var(--ng-blue);margin-bottom:22px; }
.ng-map-button { margin-top:26px;display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em; }

.ng-program-wrap { width:min(820px,100%); }.ng-program-list { margin-top:30px;border-top:1px solid var(--ng-line); }
.ng-program-row { display:grid;grid-template-columns:45px 100px 1fr;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid var(--ng-line); }
.ng-program-row > span { color:var(--ng-blue);font-size:10px;letter-spacing:.12em; }.ng-program-row strong { font-weight:500;font-size:19px; }.ng-program-row p { color:var(--ng-ink); }
.ng-swatches { display:flex;justify-content:center;gap:8px;margin-top:26px; }.ng-swatches i { width:42px;height:42px;border-radius:2px;border:1px solid rgba(34,43,47,.08); }
.ng-swatches i:nth-child(1){background:#f1eee8}.ng-swatches i:nth-child(2){background:#ccd5d4}.ng-swatches i:nth-child(3){background:#9caeb0}.ng-swatches i:nth-child(4){background:#65777d}.ng-swatches i:nth-child(5){background:#2c3437}
.ng-contact-card{text-align:center}.ng-contact-card a{font-size:clamp(22px,4vw,38px);font-weight:400;letter-spacing:-.04em;border-bottom:1px solid var(--ng-line)}

/* Full-width photo narrative. Irregular edges echo handmade invitation references without copying them. */
.ng-photo-story { margin:0;position:relative;background:var(--ng-bg);padding:0; }
.ng-photo-frame { position:relative;height:clamp(460px,74vw,860px);overflow:hidden;clip-path:polygon(0 4%,6% 2%,12% 5%,20% 1.5%,28% 4%,37% 2%,45% 4.8%,54% 1%,63% 3.6%,72% 1.8%,82% 4.5%,91% 2%,100% 4%,100% 96%,93% 98.5%,86% 95.5%,77% 99%,68% 96.5%,59% 99%,51% 95.8%,42% 98.4%,33% 96%,23% 99%,13% 95.8%,6% 98%,0 96%); }
.ng-photo-frame img { width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(.98);transition:transform 1.1s cubic-bezier(.16,1,.3,1); }
.ng-photo-story.is-visible .ng-photo-frame img { transform:scale(1.015); }
.ng-photo-frame:after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,28,31,.03),transparent 35%,transparent 70%,rgba(19,28,31,.12));pointer-events:none; }
.ng-photo-index { position:absolute;z-index:2;right:26px;bottom:34px;width:42px;height:42px;display:grid;place-items:center;background:rgba(255,255,255,.56);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.85);font-size:9px;letter-spacing:.12em; }
.ng-photo-pair-grid { display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--ng-bg); }
.ng-photo-pair-grid .ng-photo-frame { height:clamp(360px,52vw,650px); }
.ng-photo-pair-grid .ng-photo-story:nth-child(even) .ng-photo-frame { clip-path:polygon(0 2%,9% 4%,18% 1%,29% 3.8%,40% 1.5%,52% 4%,64% 1%,76% 3%,88% 1.6%,100% 4%,100% 97%,90% 95%,80% 99%,70% 96%,58% 98.8%,47% 95.5%,36% 99%,24% 96%,13% 98.5%,0 95%); }

.ng-final { min-height:76vh;padding:110px 24px;display:grid;place-items:center;background:linear-gradient(180deg,#edf1f0,#f8f9f8);text-align:center; }
.ng-final-inner { width:min(760px,100%);display:grid;justify-items:center; }.ng-final-line { width:1px;height:100px;background:var(--ng-ink);margin-bottom:40px; }
.ng-final h2 { max-width:660px; }.ng-final-names { margin-top:22px;font-size:clamp(42px,7vw,84px);line-height:.86;letter-spacing:-.07em;font-weight:300; }
.ng-final small { margin-top:55px;color:var(--ng-muted);font-size:9px;letter-spacing:.16em;text-transform:uppercase; }

@media  (max-width: 720px) {
  .ng-hero { min-height:100svh; }
  .ng-hero-photo { inset:7vh 14px 12vh 14px;height:64vh; }
  .ng-hero-photo:after { inset:auto 0 0 0;height:42%;background:linear-gradient(180deg,transparent,rgba(230,237,238,.88));backdrop-filter:blur(8px);border:0; }
  .ng-hero-glass { left:22px;right:22px;top:auto;bottom:9vh;transform:none;width:auto;padding:24px;background:rgba(255,255,255,.50); }
  .ng-hero h1 { font-size:clamp(48px,15vw,72px);margin:14px 0 17px; }
  .ng-hero-meta { gap:8px 12px;font-size:9px; }.ng-hero-mark { left:22px;bottom:4.3vh; }.ng-chevron { right:22px;bottom:4vh; }
  .ng-story-section { padding:74px 18px; }.ng-glass-card { padding:32px 24px; }
  .ng-story-section h2,.ng-final h2 { font-size:clamp(34px,10vw,48px); }
  .ng-date-grid { gap:20px; }.ng-date-grid > strong { font-size:32vw; }.ng-date-grid span { font-size:8vw; }.ng-date-grid b { font-size:17px; }
  .ng-time-line strong { font-size:21px; }
  .ng-countdown-card .countdown div { padding:20px 2px 17px; }.ng-countdown-card .countdown strong { font-size:9vw; }.ng-countdown-card .countdown span { font-size:7px;letter-spacing:.04em; }
  .ng-program-row { grid-template-columns:32px 70px 1fr;gap:9px;padding:18px 0; }.ng-program-row strong { font-size:16px; }.ng-program-row p { font-size:12px;line-height:1.5; }
  .ng-photo-frame { height:128vw;min-height:430px;max-height:690px;clip-path:polygon(0 3%,8% 1.2%,18% 4%,29% 1%,41% 3.4%,52% 1.3%,65% 4%,77% 1%,89% 3.4%,100% 1.8%,100% 97%,91% 99%,80% 96%,69% 99%,58% 96.2%,46% 99%,35% 96%,23% 98.8%,11% 96%,0 98%); }
  .ng-photo-pair-grid { grid-template-columns:1fr;gap:0; }.ng-photo-pair-grid .ng-photo-frame { height:112vw;min-height:390px;max-height:620px; }
  .ng-photo-index { right:18px;bottom:26px;width:36px;height:36px; }
  .ng-swatches i { width:34px;height:34px; }
  .ng-final { min-height:72vh;padding:90px 20px; }.ng-final-line { height:72px;margin-bottom:30px; }.ng-final-names { font-size:clamp(44px,14vw,68px); }
}

@media  (prefers-reduced-motion: reduce) {
  .nordic-story .ng-photo-frame img,.nordic-story .ng-hero-photo img { transition:none !important;transform:none !important; }
}

/* Nordic Glass v2 catalogue thumbnail cue: photo-led story with torn paper edges. */
.wt-nordic-glass .wt-photo{
  clip-path:polygon(0 3%,9% 1%,18% 4%,29% 1.5%,41% 3.6%,53% 1%,64% 4%,76% 1.6%,88% 3.7%,100% 1.8%,100% 97%,90% 99%,80% 96%,69% 99%,58% 96.5%,47% 99%,35% 96%,24% 98.8%,12% 96%,0 98%);
}
.wt-nordic-glass .wt-photo:after{
  inset:0 48% 0 0;
}
.wt-nordic-glass:after{
  content:"PHOTO STORY";
  position:absolute;
  right:7%;bottom:7%;
  font-size:6px;letter-spacing:.18em;
  color:#5f7077;
  border-top:1px solid #a7b1b6;
  padding-top:5px;
}

/* ===== Stage 5: Qyz Uzatu refinements (Aq Bata v2 / Tumar v2) ===== */
.tumar-story {
  --qt-bg:#dfe5df;
  --qt-surface:#f6efe1;
  --qt-card:#f5f1e8;
  --qt-ink:#173430;
  --qt-muted:#65736c;
  --qt-line:rgba(23,52,48,.16);
  --qt-accent:#ad6e52;
  --qt-accent-2:#d8bb83;
  background:var(--qt-bg);
  color:var(--qt-ink);
}
.tumar-story .invite-body{background:linear-gradient(180deg,#dde3de 0%,#e8e0d1 100%);} 


.qt-kicker,.qt-hero-event{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#cfbea2;}


 

.qt-hero{min-height:100svh;position:relative;overflow:hidden;background:linear-gradient(135deg,#173d37,#274842);} 
.qt-hero-ornament{position:absolute;inset:0;background:radial-gradient(circle at 80% 12%,rgba(216,187,131,.2),transparent 20%),radial-gradient(circle at 15% 78%,rgba(173,110,82,.12),transparent 22%);} 
.qt-hero-photo{position:absolute;inset:7vh 7vw 8vh 16vw;overflow:hidden;border-radius:30px;box-shadow:0 34px 80px rgba(4,16,14,.35);}
.qt-hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.02);} 
.qt-hero-photo:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(245,241,232,.52) 0 24%,transparent 42%),linear-gradient(180deg,transparent 50%,rgba(7,18,16,.28));z-index:1;pointer-events:none;}
.qt-hero-glass{position:absolute;z-index:2;left:8vw;top:50%;transform:translateY(-50%);width:min(470px,44vw);padding:34px 34px 30px;border:1px solid rgba(255,255,255,.32);border-radius:28px;background:rgba(245,241,232,.18);backdrop-filter:blur(14px);box-shadow:0 18px 40px rgba(6,17,15,.18);} 
.qt-names{margin:18px 0 24px;font-family:"Noto Sans",sans-serif;font-size:clamp(56px,7vw,112px);line-height:.82;font-weight:700;letter-spacing:-.08em;color:#f8f0e0;}
.qt-names.qt-names-medium{font-size:clamp(50px,6.2vw,92px);} .qt-names.qt-names-compact{font-size:clamp(42px,5.2vw,72px);} 
.qt-hero-meta{border-top:1px solid rgba(255,255,255,.24);padding-top:15px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:#f4ead7;}
.qt-hero-meta small{color:#d8c8ae;} .qt-hero-meta strong{font-weight:600;}
.qt-hero-mark{position:absolute;left:8vw;bottom:7vh;font-size:9px;letter-spacing:.24em;color:#d7c7ac;text-transform:uppercase;}
.qt-chevron{position:absolute;right:8vw;bottom:7vh;color:#f4ead7;opacity:.8;}
.qt-story-section,.qt-final{padding:28px 22px;}
.qt-panel,.qt-date-panel,.qt-final-inner{width:min(980px,100%);margin:0 auto;border-radius:26px;}
.qt-panel{background:rgba(245,241,232,.72);border:1px solid rgba(23,52,48,.09);box-shadow:0 16px 36px rgba(31,38,36,.06);padding:34px 28px;}
.qt-token-line{display:flex;align-items:center;justify-content:center;gap:12px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--qt-muted);margin-bottom:18px;}
.qt-token-line i{width:46px;height:1px;background:linear-gradient(90deg,transparent,var(--qt-accent-2),transparent);} 
.qt-copy-card{text-align:center;max-width:860px;} .qt-copy-card h2,.qt-quiet-card h2,.qt-venue-card h2,.qt-contact-card h2,.qt-final-inner h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(32px,4.2vw,58px);letter-spacing:-.03em;margin:0 0 14px;}
.qt-invitation-copy,.qt-quiet-card p,.qt-venue-card p,.qt-contact-card p{max-width:620px;margin:0 auto;color:var(--qt-muted);line-height:1.85;}
.qt-date-panel{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;align-items:stretch;background:linear-gradient(145deg,#f4ecdf,#f0e4d0);padding:24px;border:1px solid rgba(23,52,48,.09);box-shadow:0 18px 40px rgba(58,56,48,.08);} 
.qt-date-grid{display:flex;align-items:flex-start;gap:22px;background:#fffaf1;border-radius:22px;padding:26px;min-height:100%;}
.qt-date-grid strong{font-family:"Noto Sans",sans-serif;font-size:clamp(72px,12vw,140px);line-height:.86;letter-spacing:-.08em;color:var(--qt-ink);} 
.qt-date-grid span{display:block;font-family:"Playfair Display",serif;font-size:clamp(26px,3vw,42px);} .qt-date-grid small,.qt-date-grid b{display:block;color:var(--qt-muted);font-weight:500;text-transform:capitalize;}
.qt-time-line{display:flex;flex-direction:column;justify-content:center;border-radius:22px;background:#173d37;color:#f7ecda;padding:24px 26px;letter-spacing:.12em;text-transform:uppercase;} .qt-time-line strong{font-size:clamp(28px,4vw,42px);letter-spacing:-.04em;margin-top:8px;color:#fff;}
.qt-countdown-card{max-width:860px;text-align:center;background:linear-gradient(145deg,rgba(255,250,241,.72),rgba(244,236,223,.92));}
.qt-program-wrap,.qt-photo-pair-grid{width:min(980px,100%);margin:0 auto;}
.qt-program-list{display:grid;gap:12px;margin-top:18px;}
.qt-program-row{display:grid;grid-template-columns:52px 110px 1fr;gap:14px;align-items:center;padding:16px 18px;border-radius:18px;background:rgba(255,250,241,.7);border:1px solid rgba(23,52,48,.08);} 
.qt-program-row>span{font-size:10px;letter-spacing:.24em;color:var(--qt-muted);} .qt-program-row strong{font-size:20px;} .qt-program-row p{margin:0;color:var(--qt-muted);} 
.qt-venue-card,.qt-contact-card{text-align:center;max-width:760px;} .qt-venue-icon{margin:0 auto 12px;color:var(--qt-accent);} 
.qt-map-button,.qt-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border-radius:999px;background:#173d37;color:#fff;text-decoration:none;}
.qt-swatches{display:flex;justify-content:center;gap:12px;margin-top:18px;} .qt-swatches i{width:32px;height:32px;border-radius:999px;background:linear-gradient(135deg,#f4e7d1,#d8bb83);} .qt-swatches i:nth-child(2){background:#d6c8b2;} .qt-swatches i:nth-child(3){background:#a4a28b;} .qt-swatches i:nth-child(4){background:#b16d54;} .qt-swatches i:nth-child(5){background:#173d37;}
.qt-photo-story,.qt-photo-pair-grid{width:min(1060px,100%);margin:0 auto;}
.qt-photo-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.qt-photo-frame{position:relative;height:clamp(460px,72vw,860px);overflow:hidden;background:#f1e8d8;clip-path:polygon(0 5%,7% 1.4%,18% 5.2%,29% 0,40% 4.5%,52% 1.2%,64% 5%,74% .5%,86% 4.8%,100% 1.8%,100% 95%,91% 98.4%,79% 94%,66% 99%,55% 95.2%,43% 99%,31% 95.5%,19% 98.8%,9% 94.5%,0 97%);}
.qt-photo-pair-grid .qt-photo-frame{height:clamp(360px,50vw,620px);} 
.qt-photo-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.02);} 
.qt-photo-edge{position:absolute;left:0;right:0;height:24px;pointer-events:none;}
.qt-photo-edge-top{top:0;background:radial-gradient(circle at 7% 160%,transparent 15px,#f1e8d8 16px) 0 0/90px 100% repeat-x;mix-blend-mode:screen;opacity:.48;}
.qt-photo-edge-bottom{bottom:0;background:radial-gradient(circle at 11% -55%,transparent 16px,#efe4cf 17px) 0 0/94px 100% repeat-x;mix-blend-mode:screen;opacity:.42;}
.qt-photo-index{position:absolute;right:16px;bottom:14px;padding:8px 10px;border-radius:999px;background:rgba(245,241,232,.76);backdrop-filter:blur(5px);font-size:10px;letter-spacing:.16em;color:#173d37;}
.qt-final-inner{max-width:780px;text-align:center;background:#173d37;color:#f8f0e0;padding:44px 28px;} .qt-final-line{display:block;width:78px;height:1px;margin:0 auto 22px;background:rgba(248,240,224,.45);} .qt-final-name{margin-top:18px;} .qt-final-inner small{display:block;margin-top:14px;color:#cfbea2;}

.aqb-invite{--qab-bg:#fbf7f1;--qab-surface:#fffdf9;--qab-paper:#fff8ef;--qab-ink:#4b3a2e;--qab-muted:#817264;--qab-line:rgba(117,93,68,.18);--qab-accent:#b48a57;--qab-accent-2:#e6d3b5;background:var(--qab-bg);color:var(--qab-ink);} 
.aqb-invite .invite-body{background:linear-gradient(180deg,#fbf7f1 0%,#f4ecdf 100%);} 
 
 
.qab-kicker,.qab-hero-event{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--qab-muted);} 
 
 
 
 
.qab-hero{min-height:100svh;position:relative;display:grid;place-items:center;padding:56px 22px 80px;overflow:hidden;} 
.qab-hero-aura{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(230,211,181,.62),transparent 30%),radial-gradient(circle at 82% 16%,rgba(180,138,87,.12),transparent 22%),linear-gradient(180deg,#fbf7f1,#f2e8d8);} 
.qab-hero-photo-wrap{position:relative;z-index:1;width:min(560px,86vw);padding:18px;background:#fffaf2;border-radius:200px 200px 34px 34px;box-shadow:0 30px 70px rgba(75,58,46,.1);} 
.qab-hero-photo{height:min(72vh,760px);overflow:hidden;border-radius:180px 180px 24px 24px;background:#e8dbc8;} 
.qab-hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(.98);} 
.qab-hero-card{position:absolute;z-index:2;left:50%;bottom:68px;transform:translateX(-50%);width:min(620px,calc(100% - 44px));text-align:center;padding:26px 28px;border:1px solid rgba(117,93,68,.12);border-radius:28px;background:rgba(255,252,247,.92);box-shadow:0 14px 34px rgba(89,72,57,.08);} 
.qab-name{margin:12px 0 10px;font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(52px,7vw,96px);line-height:.92;letter-spacing:-.05em;} .qab-name.qab-name-medium{font-size:clamp(46px,6vw,78px);} .qab-name.qab-name-compact{font-size:clamp(38px,5vw,62px);} 
.qab-hero-card p{margin:0;color:var(--qab-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;} 
.qab-blessing-chip{display:inline-flex;align-items:center;justify-content:center;margin-top:15px;padding:10px 16px;border-radius:999px;background:linear-gradient(145deg,#f2e2c8,#e7d1ad);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#69533c;} 
.qab-hero-mark{position:absolute;left:26px;bottom:18px;font-size:9px;letter-spacing:.24em;color:var(--qab-muted);text-transform:uppercase;z-index:2;} .qab-chevron{position:absolute;right:26px;bottom:18px;color:var(--qab-muted);z-index:2;}
.qab-section{padding:30px 22px;} 
.qab-paper-card,.qab-date-card,.qab-blessing-card,.qab-final-card{width:min(900px,100%);margin:0 auto;border:1px solid rgba(117,93,68,.1);border-radius:28px;background:var(--qab-paper);box-shadow:0 18px 38px rgba(103,87,71,.06);} 
.qab-paper-card{padding:34px 28px;} .qab-intro-card{text-align:center;max-width:860px;} .qab-intro-card h2,.qab-blessing-card h2,.qab-paper-card h2,.qab-gallery-head h2,.qab-final-card h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(32px,4vw,56px);letter-spacing:-.03em;margin:0 0 14px;} 
.qab-copy{max-width:620px;margin:0 auto;color:var(--qab-muted);line-height:1.88;} .qab-divider{width:92px;height:1px;background:linear-gradient(90deg,transparent,var(--qab-accent),transparent);margin:18px auto 20px;} 
.qab-date-card{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;padding:26px 28px;background:linear-gradient(145deg,#fff8ef,#f5ecdc);} .qab-icon{color:var(--qab-accent);}
.qab-date-content{min-width:0;} .qab-date-grid{display:flex;align-items:flex-start;gap:18px;} .qab-date-grid strong{font-family:"Noto Sans",sans-serif;font-size:clamp(72px,11vw,124px);line-height:.85;letter-spacing:-.08em;} .qab-date-grid span{display:block;font-family:"Playfair Display",serif;font-size:clamp(24px,3vw,38px);} .qab-date-grid small{display:block;color:var(--qab-muted);} .qab-time-line{margin:12px 0 0;color:var(--qab-muted);text-transform:uppercase;letter-spacing:.12em;font-size:11px;} .qab-time-line b{color:var(--qab-ink);font-size:17px;letter-spacing:0;margin-left:8px;}
.qab-countdown-card{text-align:center;max-width:860px;} .qab-blessing-card{max-width:760px;padding:34px 28px;text-align:center;background:linear-gradient(145deg,#fff7ed,#f1e5cf);} 
.qab-program-shell,.qab-gallery-shell{width:min(980px,100%);margin:0 auto;} .qab-program-head{text-align:center;margin-bottom:16px;} .qab-program-list{display:grid;gap:12px;} .qab-program-row{display:grid;grid-template-columns:110px 44px 1fr;gap:14px;align-items:center;padding:18px 18px;border-radius:20px;background:rgba(255,248,239,.88);border:1px solid rgba(117,93,68,.08);} .qab-program-row strong{font-size:20px;} .qab-program-row span{height:1px;background:linear-gradient(90deg,var(--qab-accent),transparent);} .qab-program-row p{margin:0;color:var(--qab-muted);} 
.qab-venue-card,.qab-dress-card,.qab-contact-card{text-align:center;max-width:760px;} .qab-venue-card p,.qab-dress-card p,.qab-contact-card p{color:var(--qab-muted);line-height:1.8;max-width:560px;margin:0 auto;} .qab-map-button,.qab-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border-radius:999px;background:#fff;border:1px solid rgba(117,93,68,.12);color:var(--qab-ink);text-decoration:none;} 
.qab-gallery-head{text-align:center;margin-bottom:18px;} .qab-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;} .qab-photo{background:#fff;border-radius:24px;padding:10px;box-shadow:0 16px 32px rgba(97,80,62,.08);} .qab-photo img{width:100%;height:100%;min-height:220px;object-fit:cover;border-radius:18px;} .qab-photo-0,.qab-photo-3{grid-column:span 7;} .qab-photo-1,.qab-photo-4{grid-column:span 5;} .qab-photo-2,.qab-photo-5{grid-column:span 6;} .qab-photo-0{transform:rotate(-1.8deg);} .qab-photo-1{transform:rotate(1.3deg);} .qab-photo-2{transform:rotate(-.8deg);} .qab-photo-3{transform:rotate(1.4deg);} .qab-photo-4{transform:rotate(-1deg);} .qab-photo-5{transform:rotate(.8deg);} 
.qab-swatches{display:flex;justify-content:center;gap:12px;margin-top:18px;} .qab-swatches i{width:34px;height:34px;border-radius:999px;background:#f2e2c8;} .qab-swatches i:nth-child(2){background:#e7d1ad;} .qab-swatches i:nth-child(3){background:#d7b889;} .qab-swatches i:nth-child(4){background:#b48a57;} .qab-swatches i:nth-child(5){background:#6d5745;} 
.qab-final-card{max-width:780px;text-align:center;padding:42px 28px;background:linear-gradient(145deg,#fff8ef,#f1e5cf);} .qab-final-line{display:block;width:78px;height:1px;margin:0 auto 22px;background:linear-gradient(90deg,transparent,var(--qab-accent),transparent);} .qab-final-card small{display:block;margin-top:14px;color:var(--qab-muted);} 

@media  (max-width: 900px){
  .qt-hero-photo{inset:8vh 14px 15vh 14px;height:62vh;} .qt-hero-glass{left:22px;right:22px;top:auto;bottom:10vh;transform:none;width:auto;padding:24px;} .qt-hero-mark{left:22px;bottom:4vh;} .qt-chevron{right:22px;bottom:4vh;} .qt-date-panel{grid-template-columns:1fr;} .qt-photo-pair-grid{grid-template-columns:1fr;} .qt-photo-frame{height:126vw;min-height:420px;max-height:700px;} .qt-photo-pair-grid .qt-photo-frame{height:110vw;min-height:360px;max-height:580px;} .qt-program-row{grid-template-columns:44px 92px 1fr;} 
  .qab-hero{padding-inline:14px;padding-bottom:76px;} .qab-hero-photo-wrap{width:min(620px,100%);} .qab-hero-photo{height:60vh;min-height:420px;border-radius:140px 140px 22px 22px;} .qab-hero-card{bottom:58px;width:calc(100% - 28px);padding:20px 18px;} .qab-date-card{grid-template-columns:1fr;} .qab-gallery{grid-template-columns:1fr 1fr;} .qab-photo,.qab-photo-0,.qab-photo-1,.qab-photo-2,.qab-photo-3,.qab-photo-4,.qab-photo-5{grid-column:auto;transform:none;} .qab-photo img{min-height:190px;} 
}
@media  (max-width: 640px){
    .qt-panel,.qt-date-panel,.qt-final-inner,.qab-paper-card,.qab-date-card,.qab-blessing-card,.qab-final-card{padding:24px 18px;border-radius:22px;} .qt-copy-card h2,.qt-quiet-card h2,.qt-venue-card h2,.qt-contact-card h2,.qt-final-inner h2,.qab-intro-card h2,.qab-blessing-card h2,.qab-paper-card h2,.qab-gallery-head h2,.qab-final-card h2{font-size:clamp(28px,9vw,42px);} .qt-date-grid strong,.qab-date-grid strong{font-size:clamp(58px,22vw,90px);} .qt-date-grid,.qab-date-grid{gap:14px;} .qt-time-line{padding:18px 20px;} .qt-program-row{grid-template-columns:1fr;gap:8px;text-align:left;} .qt-program-row>span{order:-1;} .qt-kicker{font-size:10px;} .qt-hero{min-height:100svh;} .qt-names{font-size:clamp(46px,14vw,68px);} .qt-hero-meta{gap:7px 12px;font-size:9px;} .qt-hero-photo:before{background:linear-gradient(180deg,transparent,rgba(7,18,16,.33));} .qab-hero-photo{height:54vh;min-height:360px;border-radius:120px 120px 18px 18px;} .qab-name{font-size:clamp(44px,13vw,70px);} .qab-hero-card p{font-size:10px;} .qab-gallery{grid-template-columns:1fr;} 
}

/* ===== Stage 6: Syrga Salu refinements (Pearl v2 / Velvet v2) ===== */
.velvet-story{--sv-bg:#e6d9dd;--sv-surface:#f6eff2;--sv-card:#fbf7f8;--sv-ink:#392432;--sv-muted:#876d78;--sv-line:rgba(57,36,50,.14);--sv-accent:#b38a5e;--sv-accent-2:#6f3756;background:var(--sv-bg);color:var(--sv-ink);} 
.velvet-story .invite-body{background:linear-gradient(180deg,#e6d9dd 0%,#efe3e6 100%);} 
 
 
.sv-kicker,.sv-hero-event{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#d8c5cc;}      
.sv-hero{min-height:100svh;position:relative;overflow:hidden;background:linear-gradient(145deg,#3b2032,#5d2d4b);} .sv-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 18%,rgba(179,138,94,.18),transparent 18%),radial-gradient(circle at 82% 10%,rgba(255,255,255,.06),transparent 22%);} .sv-hero-photo{position:absolute;inset:7vh 5vw 8vh 19vw;overflow:hidden;background:#5d4150;} .sv-hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.74) contrast(1.02);} .sv-hero-photo:after{content:"";position:absolute;inset:0 48% 0 0;background:rgba(49,25,40,.48);backdrop-filter:blur(14px);border-right:1px solid rgba(255,255,255,.12);} 
.sv-hero-glass{position:absolute;z-index:2;left:8vw;top:50%;transform:translateY(-50%);width:min(520px,48vw);padding:34px 34px 30px;border:1px solid rgba(255,255,255,.16);background:rgba(255,248,250,.12);backdrop-filter:blur(13px);} .sv-names{margin:18px 0 24px;font-family:"Noto Sans",sans-serif;font-size:clamp(48px,6.4vw,92px);line-height:.84;font-weight:500;letter-spacing:-.07em;color:#fff4f8;} .sv-names span{display:block;} .sv-names em{display:block;font-family:"Playfair Display",serif;font-style:italic;font-size:.5em;line-height:1;margin:.08em 0;color:#e4c99b;} .sv-names.sv-names-medium{font-size:clamp(42px,5.6vw,78px);} .sv-names.sv-names-compact{font-size:clamp(38px,4.8vw,64px);} .sv-hero-meta{border-top:1px solid rgba(255,255,255,.16);padding-top:15px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:#f5e9ef;} .sv-hero-meta small{color:#d8c5cc;} .sv-hero-mark{position:absolute;left:8vw;bottom:7vh;font-size:9px;letter-spacing:.24em;color:#d8c5cc;text-transform:uppercase;} .sv-chevron{position:absolute;right:8vw;bottom:7vh;color:#f1e5ea;opacity:.8;}
.sv-story-section,.sv-final{padding:28px 22px;} .sv-card,.sv-date-panel,.sv-final-inner{width:min(980px,100%);margin:0 auto;border-radius:26px;} .sv-card{background:rgba(255,250,251,.82);border:1px solid rgba(57,36,50,.08);box-shadow:0 16px 36px rgba(49,35,42,.06);padding:34px 28px;} .sv-copy-card,.sv-quiet-card,.sv-venue-card,.sv-contact-card{max-width:840px;text-align:center;} .sv-copy-card h2,.sv-quiet-card h2,.sv-venue-card h2,.sv-contact-card h2,.sv-final-inner h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(32px,4vw,56px);letter-spacing:-.03em;margin:0 0 14px;} .sv-copy,.sv-quiet-card p,.sv-venue-card p,.sv-contact-card p{max-width:620px;margin:0 auto;color:var(--sv-muted);line-height:1.85;} 
.sv-date-panel{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:stretch;background:linear-gradient(145deg,#fff7f9,#efe0e6);padding:24px;border:1px solid rgba(57,36,50,.08);box-shadow:0 18px 40px rgba(58,56,48,.08);} .sv-date-grid{display:flex;align-items:flex-start;gap:22px;background:#fff;border-radius:22px;padding:26px;min-height:100%;} .sv-date-grid strong{font-family:"Noto Sans",sans-serif;font-size:clamp(72px,12vw,140px);line-height:.86;letter-spacing:-.08em;color:var(--sv-ink);} .sv-date-grid span{display:block;font-family:"Playfair Display",serif;font-size:clamp(26px,3vw,42px);} .sv-date-grid small,.sv-date-grid b{display:block;color:var(--sv-muted);font-weight:500;text-transform:capitalize;} .sv-time-line{display:flex;flex-direction:column;justify-content:center;border-radius:22px;background:#442437;color:#f8ecf0;padding:24px 26px;letter-spacing:.12em;text-transform:uppercase;} .sv-time-line strong{font-size:clamp(28px,4vw,42px);letter-spacing:-.04em;margin-top:8px;color:#fff;}
.sv-countdown-card{max-width:860px;text-align:center;background:linear-gradient(145deg,rgba(255,252,253,.72),rgba(241,227,233,.92));}
.sv-side-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;} .sv-side-card{padding:18px;border-radius:18px;background:rgba(111,55,86,.06);border:1px solid rgba(57,36,50,.08);} .sv-side-card span{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--sv-muted);margin-bottom:8px;} .sv-side-card strong{font-size:18px;font-weight:600;}
.sv-program-wrap,.sv-photo-pair-grid{width:min(980px,100%);margin:0 auto;} .sv-program-list{display:grid;gap:12px;margin-top:18px;} .sv-program-row{display:grid;grid-template-columns:52px 110px 1fr;gap:14px;align-items:center;padding:16px 18px;border-radius:18px;background:rgba(255,250,251,.84);border:1px solid rgba(57,36,50,.08);} .sv-program-row>span{font-size:10px;letter-spacing:.24em;color:var(--sv-muted);} .sv-program-row strong{font-size:20px;} .sv-program-row p{margin:0;color:var(--sv-muted);} .sv-venue-icon{margin:0 auto 12px;color:var(--sv-accent);} .sv-map-button,.sv-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border-radius:999px;background:#442437;color:#fff;text-decoration:none;} 
.sv-swatches{display:flex;justify-content:center;gap:12px;margin-top:18px;} .sv-swatches i{width:32px;height:32px;border-radius:999px;background:#f3dde5;} .sv-swatches i:nth-child(2){background:#d7bcc7;} .sv-swatches i:nth-child(3){background:#b5899e;} .sv-swatches i:nth-child(4){background:#6f3756;} .sv-swatches i:nth-child(5){background:#442437;} 
.sv-photo-story,.sv-photo-pair-grid{width:min(1060px,100%);margin:0 auto;} .sv-photo-pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;} .sv-photo-frame{position:relative;height:clamp(460px,72vw,860px);overflow:hidden;background:#ecdfe4;} .sv-photo-pair-grid .sv-photo-frame{height:clamp(360px,50vw,620px);} .sv-photo-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.02);} .sv-paper-edge{position:absolute;left:0;right:0;height:30px;pointer-events:none;background-repeat:repeat-x;background-size:56px 30px;} .sv-paper-edge-top{top:0;background-image:linear-gradient(-45deg,transparent 14px,#eadde2 15px,#eadde2 26px,transparent 27px),linear-gradient(45deg,transparent 14px,#eadde2 15px,#eadde2 26px,transparent 27px);background-position:0 0,28px 0;opacity:.9;} .sv-paper-edge-bottom{bottom:0;background-image:linear-gradient(-45deg,transparent 14px,#f5edf0 15px,#f5edf0 26px,transparent 27px),linear-gradient(45deg,transparent 14px,#f5edf0 15px,#f5edf0 26px,transparent 27px);background-position:0 0,28px 0;transform:scaleY(-1);opacity:.88;} .sv-photo-index{position:absolute;right:16px;bottom:14px;padding:8px 10px;border-radius:999px;background:rgba(255,250,251,.78);backdrop-filter:blur(5px);font-size:10px;letter-spacing:.16em;color:#442437;}
.sv-final-inner{max-width:780px;text-align:center;background:#442437;color:#f8ecf0;padding:44px 28px;} .sv-final-line{display:block;width:78px;height:1px;margin:0 auto 22px;background:rgba(248,236,240,.45);} .sv-final-inner small{display:block;margin-top:14px;color:#d8c5cc;}

.pearl-invite{--sp-bg:#f8f6f4;--sp-surface:#fffdfa;--sp-paper:#ffffff;--sp-ink:#554942;--sp-muted:#8a7b72;--sp-line:rgba(85,73,66,.12);--sp-accent:#ccb49a;--sp-accent-2:#efe5da;background:var(--sp-bg);color:var(--sp-ink);} .pearl-invite .invite-body{background:linear-gradient(180deg,#faf8f5 0%,#f3eee8 100%);} 
  .sp-kicker,.sp-hero-event{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--sp-muted);} .sp-names{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(44px,7vw,80px);line-height:.9;letter-spacing:-.04em;margin:16px 0 14px;} .sp-names span{display:block;} .sp-names em{display:block;font-style:italic;font-size:.48em;line-height:1;margin:.06em 0;color:#b89a7c;}    
.sp-hero{min-height:100svh;position:relative;padding:58px 22px 74px;overflow:hidden;} .sp-hero-orb{position:absolute;border-radius:999px;filter:blur(2px);} .sp-hero-orb-a{width:320px;height:320px;left:-60px;top:60px;background:radial-gradient(circle,rgba(239,229,218,.9),rgba(239,229,218,0));} .sp-hero-orb-b{width:240px;height:240px;right:-40px;bottom:70px;background:radial-gradient(circle,rgba(204,180,154,.32),rgba(204,180,154,0));} .sp-hero-layout{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.05fr;gap:24px;align-items:center;width:min(1120px,100%);margin:0 auto;} .sp-hero-copy-inner{padding:28px 0 28px 12px;} .sp-hero-rule{width:84px;height:1px;background:linear-gradient(90deg,var(--sp-accent),transparent);margin:18px 0;} .sp-hero-copy p,.sp-hero-copy small{display:block;color:var(--sp-muted);} .sp-hero-copy p{margin:0 0 8px;text-transform:uppercase;font-size:11px;letter-spacing:.12em;} .sp-pearl-chip{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:999px;background:linear-gradient(145deg,#fff,#efe5da);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 6px 16px rgba(167,147,130,.08);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#7d6d62;} .sp-hero-photo-shell{display:grid;place-items:center;} .sp-hero-photo-ring{position:relative;width:min(640px,100%);aspect-ratio:1/1;border-radius:999px;padding:22px;background:radial-gradient(circle at 35% 30%,#ffffff,#f1e7dc 65%,#dfd2c4);box-shadow:0 24px 60px rgba(139,124,112,.12);} .sp-hero-photo{width:100%;height:100%;overflow:hidden;border-radius:999px;background:#e7ddd1;} .sp-hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1);} .sp-ring-label{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.75);backdrop-filter:blur(4px);font-size:10px;letter-spacing:.2em;color:#7d6d62;text-transform:uppercase;} .sp-chevron{position:absolute;right:28px;bottom:18px;color:var(--sp-muted);} 
.sp-section{padding:30px 22px;} .sp-card{width:min(960px,100%);margin:0 auto;border-radius:28px;background:rgba(255,255,255,.78);border:1px solid rgba(85,73,66,.08);box-shadow:0 16px 36px rgba(116,102,92,.06);padding:34px 28px;} .sp-intro-card,.sp-hosts-card,.sp-venue-card,.sp-contact-card,.sp-dress-card,.sp-final-card{max-width:840px;text-align:center;} .sp-intro-card h2,.sp-hosts-card h2,.sp-venue-card h2,.sp-contact-card h2,.sp-dress-card h2,.sp-gallery-head h2,.sp-final-card h2,.sp-program-head h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(32px,4vw,56px);letter-spacing:-.03em;margin:0 0 14px;} .sp-copy,.sp-hosts-card p,.sp-venue-card p,.sp-contact-card p,.sp-dress-card p{max-width:620px;margin:0 auto;color:var(--sp-muted);line-height:1.86;} .sp-pearl-row{display:flex;justify-content:center;gap:9px;margin:18px 0 20px;} .sp-pearl-row i{width:10px;height:10px;border-radius:999px;background:linear-gradient(145deg,#fff,#d9c4ae);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);} 
.sp-side-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;} .sp-side-card{padding:18px;border-radius:22px;background:linear-gradient(145deg,#fff,#f4ede6);border:1px solid rgba(85,73,66,.07);} .sp-side-card span{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--sp-muted);margin-bottom:8px;} .sp-side-card strong{font-size:18px;font-weight:600;} 
.sp-date-card{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;} .sp-icon{color:#b89a7c;} .sp-date-grid{display:flex;align-items:flex-start;gap:18px;} .sp-date-grid strong{font-family:"Noto Sans",sans-serif;font-size:clamp(72px,11vw,120px);line-height:.86;letter-spacing:-.08em;} .sp-date-grid span{display:block;font-family:"Playfair Display",serif;font-size:clamp(24px,3vw,38px);} .sp-date-grid small{display:block;color:var(--sp-muted);} .sp-time-line{margin:12px 0 0;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.12em;font-size:11px;} .sp-time-line b{font-size:17px;color:var(--sp-ink);margin-left:8px;letter-spacing:0;} .sp-countdown-card{text-align:center;max-width:860px;} 
.sp-program-shell,.sp-gallery-shell{width:min(1040px,100%);margin:0 auto;} .sp-program-head,.sp-gallery-head{text-align:center;margin-bottom:18px;} .sp-program-list{display:grid;gap:12px;} .sp-program-row{display:grid;grid-template-columns:110px 48px 1fr;gap:14px;align-items:center;padding:18px;border-radius:22px;background:rgba(255,255,255,.78);border:1px solid rgba(85,73,66,.07);} .sp-program-row strong{font-size:20px;} .sp-program-row span{height:1px;background:linear-gradient(90deg,#d7c2aa,transparent);} .sp-program-row p{margin:0;color:var(--sp-muted);} .sp-map-button,.sp-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border-radius:999px;background:#fff;border:1px solid rgba(85,73,66,.08);color:var(--sp-ink);text-decoration:none;} 
.sp-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;} .sp-photo{overflow:hidden;border-radius:34px;background:linear-gradient(145deg,#fff,#f3ebe2);padding:12px;box-shadow:0 18px 34px rgba(149,133,119,.08);} .sp-photo img{width:100%;height:100%;min-height:240px;object-fit:cover;border-radius:26px;} .sp-photo-0{grid-column:span 5;} .sp-photo-1{grid-column:span 7;} .sp-photo-2{grid-column:span 4;} .sp-photo-3{grid-column:span 4;} .sp-photo-4{grid-column:span 4;} .sp-photo-5{grid-column:span 6;} .sp-photo-0,.sp-photo-2,.sp-photo-5{border-radius:120px 120px 28px 28px;} .sp-photo-1,.sp-photo-3,.sp-photo-4{border-radius:28px 28px 120px 120px;} 
.sp-swatches{display:flex;justify-content:center;gap:12px;margin-top:18px;} .sp-swatches i{width:34px;height:34px;border-radius:999px;background:#ffffff;border:1px solid rgba(85,73,66,.06);} .sp-swatches i:nth-child(2){background:#f0e6db;} .sp-swatches i:nth-child(3){background:#dcc8b2;} .sp-swatches i:nth-child(4){background:#b89a7c;} .sp-swatches i:nth-child(5){background:#7d6d62;} 
.sp-final-card{max-width:780px;background:linear-gradient(145deg,#fff,#f2e9de);} .sp-final-line{display:block;width:78px;height:1px;margin:0 auto 22px;background:linear-gradient(90deg,transparent,#cbb39a,transparent);} .sp-final-card small{display:block;margin-top:14px;color:var(--sp-muted);} 

@media  (max-width: 900px){
  .sv-hero-photo{inset:8vh 14px 15vh 14px;height:62vh;} .sv-hero-photo:after{inset:auto 0 0 0;height:42%;background:linear-gradient(180deg,transparent,rgba(49,25,40,.68));backdrop-filter:blur(8px);border:0;} .sv-hero-glass{left:22px;right:22px;top:auto;bottom:10vh;transform:none;width:auto;padding:24px;} .sv-hero-mark{left:22px;bottom:4vh;} .sv-chevron{right:22px;bottom:4vh;} .sv-date-panel{grid-template-columns:1fr;} .sv-photo-pair-grid{grid-template-columns:1fr;} .sv-photo-frame{height:126vw;min-height:420px;max-height:700px;} .sv-photo-pair-grid .sv-photo-frame{height:110vw;min-height:360px;max-height:580px;} .sv-side-grid{grid-template-columns:1fr;} 
  .sp-hero-layout{grid-template-columns:1fr;gap:20px;} .sp-hero-copy-inner{text-align:center;padding:10px 0 0;} .sp-hero-rule{margin-inline:auto;} .sp-hero-photo-ring{width:min(520px,100%);} .sp-side-grid{grid-template-columns:1fr;} .sp-date-card{grid-template-columns:1fr;} .sp-gallery{grid-template-columns:1fr 1fr;} .sp-photo,.sp-photo-0,.sp-photo-1,.sp-photo-2,.sp-photo-3,.sp-photo-4,.sp-photo-5{grid-column:auto;border-radius:28px;} .sp-photo img{min-height:210px;border-radius:20px;} 
}
@media  (max-width: 640px){
   .sp-names{font-size:clamp(40px,13vw,60px);} .sv-card,.sv-date-panel,.sv-final-inner,.sp-card{padding:24px 18px;border-radius:22px;} .sv-copy-card h2,.sv-quiet-card h2,.sv-venue-card h2,.sv-contact-card h2,.sv-final-inner h2,.sp-intro-card h2,.sp-hosts-card h2,.sp-venue-card h2,.sp-contact-card h2,.sp-dress-card h2,.sp-gallery-head h2,.sp-final-card h2,.sp-program-head h2{font-size:clamp(28px,9vw,42px);} .sv-date-grid strong,.sp-date-grid strong{font-size:clamp(58px,22vw,90px);} .sv-program-row{grid-template-columns:1fr;gap:8px;text-align:left;} .sv-program-row>span{order:-1;} .sv-names{font-size:clamp(42px,13vw,62px);} .sv-hero-meta{gap:7px 12px;font-size:9px;} .sp-program-row{grid-template-columns:1fr;gap:8px;} .sp-program-row span{display:none;} .sp-gallery{grid-template-columns:1fr;} .sp-hero{padding-inline:14px;} .sp-hero-photo-ring{padding:16px;} .sp-ring-label{bottom:12px;} 
}


/* Stage 7 — media optimization admin UI */
.admin-media-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.admin-media-meta small{line-height:1.45;}
@media  (max-width:760px){.admin-media-head-actions{width:100%;justify-content:stretch}.admin-media-head-actions .ghost-button,.admin-media-head-actions .primary-button{flex:1;justify-content:center}}

/* ===== Stage 8: gallery reliability / 8-photo layouts =====
   Gallery media must never disappear because of scroll-reveal state.  The
   headings/sections still animate, while photos remain visible and lazy-load
   normally as the visitor approaches them. */
.gallery-photo,
.miras-photo,
.signature-photo,
.art-photo,
.qab-photo,
.sp-photo,
.ng-photo-story,
.qt-photo-story,
.sv-photo-story {
  opacity: 1 !important;
  filter: none !important;
}
.gallery-photo,
.miras-photo,
.signature-photo,
.art-photo,
.qab-photo,
.sp-photo { margin: 0; }

/* Wedding Ivory: indexes 6–7 must not repeat the tall index-0 geometry. */
.gallery-count-7 .gallery-photo-index-6,
.gallery-count-8 .gallery-photo-index-6,
.gallery-count-8 .gallery-photo-index-7 {
  grid-row: auto !important;
  transform: none;
}
.gallery-count-7 .gallery-photo-index-6 { grid-column: 1 / -1; }
.gallery-count-8 .gallery-photo-index-6,
.gallery-count-8 .gallery-photo-index-7 { grid-column: auto; }
.gallery-count-7 .gallery-photo-index-6 img,
.gallery-count-8 .gallery-photo-index-6 img,
.gallery-count-8 .gallery-photo-index-7 img { min-height: 280px; }

/* Shared event gallery (Birthday, Jubilee, Tusaukeser, etc.).
   With 8 photos the old modulo-6 class made photo 7 tall again and left a
   visually empty grid cell.  Give the final pair a normal dense row. */
.signature-gallery-7 .signature-photo-index-6,
.signature-gallery-8 .signature-photo-index-6,
.signature-gallery-8 .signature-photo-index-7 {
  grid-row: auto !important;
  grid-column: auto !important;
  min-height: 250px;
}
.signature-gallery-7 .signature-photo-index-6 { grid-column: 1 / -1 !important; min-height: 300px; }
.signature-gallery-7 .signature-photo-index-6 img,
.signature-gallery-8 .signature-photo-index-6 img,
.signature-gallery-8 .signature-photo-index-7 img { min-height: inherit; }

/* Art Wedding base grid previously only positioned photos 1–6 explicitly. */
.art-gallery .art-photo-7 { grid-column: 1 / 7; }
.art-gallery .art-photo-8 { grid-column: 7 / 13; }

/* Aq Bata / Pearl: the last two items get a deliberate final row rather than
   inheriting the first two items' modulo geometry. */
.qab-gallery-7 .qab-photo-index-6 { grid-column: 1 / -1; }
.qab-gallery-8 .qab-photo-index-6,
.qab-gallery-8 .qab-photo-index-7 { grid-column: span 6; transform: none; }
.sp-gallery-7 .sp-photo-index-6 { grid-column: 1 / -1; border-radius: 34px; }
.sp-gallery-8 .sp-photo-index-6,
.sp-gallery-8 .sp-photo-index-7 { grid-column: span 6; border-radius: 34px; }

@media  (max-width: 640px) {
  .gallery-count-7 .gallery-photo-index-6,
  .signature-gallery-7 .signature-photo-index-6 { grid-column: 1 / -1 !important; }
  .gallery-count-8 .gallery-photo-index-6,
  .gallery-count-8 .gallery-photo-index-7,
  .signature-gallery-8 .signature-photo-index-6,
  .signature-gallery-8 .signature-photo-index-7 { grid-column: auto !important; }
  .gallery-count-7 .gallery-photo-index-6 img,
  .gallery-count-8 .gallery-photo-index-6 img,
  .gallery-count-8 .gallery-photo-index-7 img,
  .signature-gallery-7 .signature-photo-index-6,
  .signature-gallery-8 .signature-photo-index-6,
  .signature-gallery-8 .signature-photo-index-7 { min-height: 210px; }
  .art-gallery .art-photo-7 { grid-column: 1 / 7; }
  .art-gallery .art-photo-8 { grid-column: 7 / 13; }
  .qab-gallery-7 .qab-photo-index-6,
  .sp-gallery-7 .sp-photo-index-6 { grid-column: 1 / -1; }
  .qab-gallery-8 .qab-photo-index-6,
  .qab-gallery-8 .qab-photo-index-7,
  .sp-gallery-8 .sp-photo-index-6,
  .sp-gallery-8 .sp-photo-index-7 { grid-column: auto; }
}

/* ============================
   Stage 2 — Wedding collection pass
   Shared refinements + V2 concepts
   ============================ */

.art-wedding .art-hosts-card,
.art-wedding .art-venue-card,
.art-wedding .art-dress-card,
.art-wedding .art-contact-card,
.art-wedding .art-date-composition,
.art-wedding .art-countdown-content {
  position: relative;
  gap: 18px;
  width: min(980px, 100%);
  margin-inline: auto;
  padding: clamp(28px, 4vw, 44px);
  border-radius: 32px;
  border: 1px solid color-mix(in srgb, var(--art-ink) 10%, transparent);
  background: color-mix(in srgb, var(--art-paper) 82%, transparent);
  box-shadow: 0 28px 70px color-mix(in srgb, var(--art-ink) 10%, transparent);
  backdrop-filter: blur(10px);
}
.art-wedding .art-program-list {
  display: grid;
  gap: 10px;
}
.art-wedding .art-program-row {
  padding: 18px 18px;
  border-radius: 20px;
  border: 1px solid color-mix(in srgb, var(--art-ink) 10%, transparent);
  background: color-mix(in srgb, var(--art-paper) 72%, transparent);
}
.art-wedding .art-photo {
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--art-ink) 10%, transparent);
  box-shadow: 0 24px 50px color-mix(in srgb, var(--art-ink) 14%, transparent);
}
.art-wedding .art-photo img {
  transition: transform .8s ease;
}
.art-wedding .art-photo:hover img {
  transform: scale(1.035);
}
.art-date-layout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 4vw, 44px);
  flex-wrap: wrap;
  width: 100%;
}
.art-date-sidecopy {
  display: grid;
  gap: 12px;
  align-content: center;
  text-align: left;
  max-width: 260px;
}
.art-date-badge {
  display: inline-flex;
  width: fit-content;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1;
  letter-spacing: .18em;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--art-accent) 14%, transparent);
  color: var(--art-accent);
}
.art-date-full {
  margin: 0;
  font-size: clamp(18px, 2vw, 24px);
  font-family: "Playfair Display", serif;
  line-height: 1.25;
  color: var(--art-ink);
}
.art-calendar-card {
  width: min(430px, 100%);
  display: grid;
  gap: 12px;
  padding: 20px;
  border-radius: 28px;
  border: 1px solid color-mix(in srgb, var(--art-ink) 10%, transparent);
  background: color-mix(in srgb, var(--art-paper) 88%, transparent);
  box-shadow: 0 24px 60px color-mix(in srgb, var(--art-ink) 12%, transparent);
}
.art-calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 14px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.art-calendar-head strong {
  font-size: 15px;
}
.art-calendar-weekdays,
.art-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}
.art-calendar-weekdays span,
.art-calendar-grid span {
  display: grid;
  place-items: center;
  min-height: 42px;
  border-radius: 12px;
}
.art-calendar-weekdays span {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--art-ink) 62%, transparent);
}
.art-calendar-grid span {
  font-size: 14px;
  background: color-mix(in srgb, var(--art-paper) 86%, transparent);
  border: 1px solid color-mix(in srgb, var(--art-ink) 8%, transparent);
}
.art-calendar-grid span.is-muted {
  opacity: .28;
}
.art-calendar-grid span.is-active {
  background: var(--art-accent);
  color: var(--art-paper);
  border-color: transparent;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--art-accent) 42%, transparent);
}
.art-date-layout-led .art-led-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(90px, 1fr));
  gap: 10px;
  width: min(480px, 100%);
}
.art-date-layout-led .art-led-board span {
  display: grid;
  place-items: center;
  min-height: 120px;
  font-family: "Space Grotesk", "DM Sans", sans-serif;
  font-size: clamp(24px, 4vw, 42px);
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 20px;
  background: color-mix(in srgb, var(--art-paper) 9%, transparent);
  border: 1px solid color-mix(in srgb, var(--art-paper) 20%, transparent);
}
.art-travel-stamp {
  width: min(360px, 100%);
  padding: 26px 26px 20px;
  border-radius: 24px;
  border: 2px dashed color-mix(in srgb, var(--art-accent) 65%, transparent);
  background: color-mix(in srgb, var(--art-paper) 92%, transparent);
  display: grid;
  justify-items: start;
  gap: 6px;
  transform: rotate(-3deg);
  box-shadow: 0 26px 55px color-mix(in srgb, var(--art-ink) 14%, transparent);
}
.art-travel-stamp strong {
  font-family: "Playfair Display", serif;
  font-size: clamp(60px, 10vw, 88px);
  line-height: .88;
}
.art-travel-stamp span {
  font-size: clamp(24px, 4vw, 36px);
  text-transform: uppercase;
  letter-spacing: .16em;
}
.art-travel-stamp em,
.art-travel-stamp small {
  font-style: normal;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--art-ink) 66%, transparent);
}
.art-cinema-date {
  width: min(460px, 100%);
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--art-paper) 28%, transparent);
  background: #050505;
  color: #faf7f1;
  box-shadow: 0 22px 60px rgba(0,0,0,.45);
}
.art-cinema-clap {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  min-height: 22px;
}
.art-cinema-clap i:nth-child(odd) { background: #faf7f1; }
.art-cinema-clap i:nth-child(even) { background: #151515; }
.art-cinema-body {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px 12px;
  align-items: center;
  padding: 18px 20px 20px;
  text-transform: uppercase;
}
.art-cinema-body span {
  font-size: clamp(20px, 4vw, 28px);
  letter-spacing: .16em;
}
.art-cinema-body strong {
  grid-row: span 2;
  font-size: clamp(42px, 7vw, 62px);
  line-height: 1;
}
.art-cinema-body small {
  letter-spacing: .26em;
  opacity: .8;
}
.art-speech-date {
  position: relative;
  width: min(360px, 100%);
  padding: 28px 26px;
  border-radius: 32px;
  background: #fff;
  color: #0d0d0d;
  border: 4px solid currentColor;
  box-shadow: 12px 12px 0 #1d5dff;
}
.art-speech-date:after {
  content: "";
  position: absolute;
  left: 26px;
  bottom: -22px;
  width: 44px;
  height: 44px;
  background: #fff;
  border-right: 4px solid currentColor;
  border-bottom: 4px solid currentColor;
  transform: rotate(35deg);
}
.art-speech-date strong,
.art-speech-date span,
.art-speech-date small {
  display: block;
}
.art-speech-date strong {
  font-size: clamp(66px, 12vw, 92px);
  line-height: .85;
}
.art-speech-date span {
  font-size: clamp(22px, 4vw, 34px);
  text-transform: uppercase;
  letter-spacing: .1em;
}
.art-speech-date small {
  font-size: 14px;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.calendar-glass {
  background: linear-gradient(145deg, rgba(255,255,255,.15), rgba(255,255,255,.03));
  border-color: rgba(255,255,255,.28);
  backdrop-filter: blur(24px);
}
.calendar-glass .art-calendar-grid span,
.calendar-glass .art-calendar-weekdays span {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
}
.calendar-pearl {
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(234,244,243,.92));
}
.art-gallery-count-7 .art-photo-7 { grid-column: 1 / -1; }
.art-gallery-count-8 .art-photo-7,
.art-gallery-count-8 .art-photo-8 { grid-column: span 6; }

/* Sakura Mist 02 */
.art-theme-sakura-mist-v2 { --art-bg:#fbf6f6; --art-ink:#2c2125; --art-accent:#c98fa4; --art-accent2:#efd5df; --art-paper:#fffdfd; }
.art-theme-sakura-mist-v2 .art-hero { padding: 0; background: linear-gradient(180deg, #fdf9fa, #f6eef2 68%, #fbf6f6); }
.art-theme-sakura-mist-v2 .art-hero:before,
.art-theme-sakura-mist-v2 .art-hero:after {
  content:""; position:absolute; inset:auto; border-radius:999px; filter:blur(0); opacity:.55; z-index:0;
}
.art-theme-sakura-mist-v2 .art-hero:before { width:38vmax; height:38vmax; top:-10vmax; right:-12vmax; background:radial-gradient(circle, #fff 0, #f4dce6 55%, transparent 70%); }
.art-theme-sakura-mist-v2 .art-hero:after { width:28vmax; height:28vmax; bottom:-10vmax; left:-6vmax; background:radial-gradient(circle, #fff 0, #efd5df 54%, transparent 72%); }
.art-theme-sakura-mist-v2 .art-hero-photo { width:min(48vw, 560px); height:68vh; right:6vw; top:14vh; border-radius:42% 42% 36% 36% / 28% 28% 34% 34%; box-shadow:0 40px 90px rgba(124,77,96,.18); }
.art-theme-sakura-mist-v2 .art-hero-copy { width:min(1160px, calc(100% - 72px)); padding: 0 0 0 2vw; display:grid; align-items:end; min-height:100svh; }
.art-theme-sakura-mist-v2 .art-hero h1 { max-width: 6.2ch; }
.art-theme-sakura-mist-v2 .art-hero-meta { background: rgba(255,255,255,.72); border:1px solid rgba(44,33,37,.08); padding: 14px 18px; border-radius: 999px; width: fit-content; backdrop-filter: blur(10px); }
.art-theme-sakura-mist-v2 .motif-petals i { background: radial-gradient(circle, #fff 0, #f3cddd 64%, transparent 66%); width:16px; height:16px; border-radius: 16px 6px 16px 6px; opacity:.55; animation: sakuraDrift 12s linear infinite; }
.art-theme-sakura-mist-v2 .motif-petals i:nth-child(1){left:8%;top:18%}.art-theme-sakura-mist-v2 .motif-petals i:nth-child(2){left:18%;top:6%;animation-duration:10s}.art-theme-sakura-mist-v2 .motif-petals i:nth-child(3){right:20%;top:16%}.art-theme-sakura-mist-v2 .motif-petals i:nth-child(4){right:12%;top:28%;animation-duration:14s}.art-theme-sakura-mist-v2 .motif-petals i:nth-child(5){left:16%;bottom:22%}.art-theme-sakura-mist-v2 .motif-petals i:nth-child(6){right:22%;bottom:14%;animation-duration:11s}.art-theme-sakura-mist-v2 .motif-petals i:nth-child(7){left:44%;top:20%}.art-theme-sakura-mist-v2 .motif-petals i:nth-child(8){left:56%;bottom:18%;animation-duration:13s}
@keyframes sakuraDrift { 50% { transform: translate3d(18px, 26px, 0) rotate(25deg); } to { transform: translate3d(-8px, 42px, 0) rotate(46deg); } }
.art-theme-sakura-mist-v2 .gallery-floating-frames .art-gallery { grid-auto-flow: dense; }
.art-theme-sakura-mist-v2 .gallery-floating-frames .art-photo:nth-child(odd) { transform: rotate(-2deg); }
.art-theme-sakura-mist-v2 .gallery-floating-frames .art-photo:nth-child(even) { transform: rotate(2deg) translateY(26px); }
.art-theme-sakura-mist-v2 .gallery-floating-frames .art-photo { padding: 12px; background:#fff; }
.art-theme-sakura-mist-v2 .final-petal-epilogue { background: linear-gradient(180deg, #f8eef2, #fffafb); }

/* Electric Love 02 */
.art-theme-electric-love-v2 { --art-bg:#050505; --art-ink:#fff5f9; --art-accent:#ff2fa2; --art-accent2:#3b57ff; --art-paper:#ffffff; }
.art-theme-electric-love-v2 .art-hero { padding: 0; background: radial-gradient(circle at 30% 20%, rgba(255,47,162,.24), transparent 32%), radial-gradient(circle at 72% 14%, rgba(59,87,255,.25), transparent 28%), #050505; }
.art-theme-electric-love-v2 .art-hero-photo { inset:0; width:100%; height:100%; border-radius:0; opacity:.42; }
.art-theme-electric-love-v2 .art-hero-photo:after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.68)); }
.art-theme-electric-love-v2 .art-hero-copy { display:grid; align-content:end; min-height:100svh; padding: 14vh 34px 10vh; }
.art-theme-electric-love-v2 .art-hero h1 { max-width: 8.6ch; text-transform: uppercase; line-height: .88; text-shadow: 0 10px 38px rgba(0,0,0,.42); }
.art-theme-electric-love-v2 .art-hero-meta { gap:12px; }
.art-theme-electric-love-v2 .art-hero-meta > * { padding: 10px 14px; border-radius: 999px; background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); backdrop-filter: blur(10px); }
.art-theme-electric-love-v2 .art-date-composition,
.art-theme-electric-love-v2 .art-countdown-content,
.art-theme-electric-love-v2 .art-hosts-card,
.art-theme-electric-love-v2 .art-venue-card,
.art-theme-electric-love-v2 .art-dress-card,
.art-theme-electric-love-v2 .art-contact-card { background: linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); border-color: rgba(255,255,255,.12); }
.art-theme-electric-love-v2 .art-led-board span { background:#111; border-color:#252525; box-shadow: inset 0 0 0 1px rgba(255,255,255,.02), 0 0 28px rgba(255,47,162,.12); }
.art-theme-electric-love-v2 .countdown-scoreboard .countdown { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.art-theme-electric-love-v2 .countdown-scoreboard .countdown div { padding: 26px 10px; border-radius: 18px; background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03))!important; border:1px solid rgba(255,255,255,.12); box-shadow: 0 20px 35px rgba(0,0,0,.28); }
.art-theme-electric-love-v2 .countdown-scoreboard .countdown strong { font-family: "Space Grotesk", sans-serif; font-size: clamp(34px,6vw,70px); }
.art-theme-electric-love-v2 .gallery-band-wall .art-gallery { display:grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.art-theme-electric-love-v2 .gallery-band-wall .art-photo { grid-column: span 3 !important; min-height: 320px; }
.art-theme-electric-love-v2 .gallery-band-wall .art-photo:nth-child(1),
.art-theme-electric-love-v2 .gallery-band-wall .art-photo:nth-child(4),
.art-theme-electric-love-v2 .gallery-band-wall .art-photo:nth-child(7) { transform: translateY(-18px); }
.art-theme-electric-love-v2 .gallery-band-wall .art-photo:nth-child(2),
.art-theme-electric-love-v2 .gallery-band-wall .art-photo:nth-child(5),
.art-theme-electric-love-v2 .gallery-band-wall .art-photo:nth-child(8) { transform: translateY(18px); }
.art-theme-electric-love-v2 .art-gallery-count-5 .art-photo:nth-child(1){grid-column:1 / span 5 !important}.art-theme-electric-love-v2 .art-gallery-count-5 .art-photo:nth-child(2){grid-column:6 / span 3 !important}.art-theme-electric-love-v2 .art-gallery-count-5 .art-photo:nth-child(3){grid-column:9 / span 4 !important}.art-theme-electric-love-v2 .art-gallery-count-5 .art-photo:nth-child(4){grid-column:2 / span 4 !important}.art-theme-electric-love-v2 .art-gallery-count-5 .art-photo:nth-child(5){grid-column:7 / span 5 !important}
.art-theme-electric-love-v2 .final-afterparty-marquee { background: #050505; }
.art-theme-electric-love-v2 .final-afterparty-marquee .art-final-composition { gap: 18px; }
.art-theme-electric-love-v2 .final-afterparty-marquee .art-final-composition h2 { font-family: "Space Grotesk", sans-serif; font-size: clamp(36px, 7vw, 84px); line-height: .92; text-transform: uppercase; max-width: 9ch; text-wrap: balance; }
.art-theme-electric-love-v2 .final-afterparty-marquee .art-final-names { font-size: clamp(42px,7vw,84px); }

/* Riviera 60s 02 */
.art-theme-riviera-60s-v2 { --art-bg:#f3f3eb; --art-ink:#123d66; --art-accent:#ef7c63; --art-accent2:#e7c93d; --art-paper:#fffdf7; }
.art-theme-riviera-60s-v2 .art-hero { padding: 0; background: linear-gradient(180deg, #e9cb39 0 38%, #f6f4ed 38% 100%); }
.art-theme-riviera-60s-v2 .art-hero-photo { width:min(60vw, 760px); height:64vh; right:2vw; bottom:0; top:auto; border-radius: 0; box-shadow:none; }
.art-theme-riviera-60s-v2 .art-hero-copy { width:min(1180px, calc(100% - 80px)); display:grid; align-content:center; min-height:100svh; }
.art-theme-riviera-60s-v2 .art-hero h1 { max-width: 6.8ch; text-transform: uppercase; font-family:"DM Sans", sans-serif; font-weight:700; letter-spacing:-.05em; }
.art-theme-riviera-60s-v2 .art-hero .art-event-label { color: var(--art-ink); }
.art-theme-riviera-60s-v2 .art-hero-meta { color:#184977; }
.art-theme-riviera-60s-v2 .art-date-composition,
.art-theme-riviera-60s-v2 .art-countdown-content,
.art-theme-riviera-60s-v2 .art-hosts-card,
.art-theme-riviera-60s-v2 .art-venue-card,
.art-theme-riviera-60s-v2 .art-dress-card,
.art-theme-riviera-60s-v2 .art-contact-card { background: color-mix(in srgb, #fff 82%, transparent); }
.art-theme-riviera-60s-v2 .countdown-flip-board .countdown div { border-radius: 18px; border: 1px solid rgba(18,61,102,.12); background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(245,241,224,.96))!important; box-shadow: inset 0 1px rgba(255,255,255,.8); }
.art-theme-riviera-60s-v2 .gallery-postcard-wall .art-gallery { align-items:start; }
.art-theme-riviera-60s-v2 .gallery-postcard-wall .art-photo { padding: 14px 14px 34px; background: #fff; }
.art-theme-riviera-60s-v2 .gallery-postcard-wall .art-photo:nth-child(odd) { transform: rotate(-3deg); }
.art-theme-riviera-60s-v2 .gallery-postcard-wall .art-photo:nth-child(even) { transform: rotate(3deg); }
.art-theme-riviera-60s-v2 .gallery-postcard-wall .art-photo figcaption { color:#123d66; text-shadow:none; left:18px; right:auto; bottom:12px; }
.art-theme-riviera-60s-v2 .final-postcard-signoff { background: linear-gradient(180deg, #f8f5ea, #84d0df 58%, #1f679c 58% 100%); }
.art-theme-riviera-60s-v2 .final-postcard-signoff .art-final-composition { min-height: 74svh; }
.art-theme-riviera-60s-v2 .final-postcard-signoff h2 { color:rgba(255,255,255,.92); font-size:clamp(32px,6vw,64px); text-shadow:0 1px 0 rgba(18,61,102,.18); }

/* Cinema Noir 02 */
.art-theme-cinema-noir-v2 { --art-bg:#0c0c0c; --art-ink:#f3eee6; --art-accent:#9f2238; --art-accent2:#777; --art-paper:#faf6ef; }
.art-theme-cinema-noir-v2 .art-hero { padding: 0; background: radial-gradient(circle at 50% -10%, rgba(255,255,255,.16), transparent 28%), #0c0c0c; }
.art-theme-cinema-noir-v2 .art-hero-photo { width:min(72vw, 980px); height:66vh; left:50%; top:16vh; transform:translateX(-50%); border-radius:0; box-shadow:none; }
.art-theme-cinema-noir-v2 .art-hero-photo img { filter: grayscale(1) contrast(1.1); }
.art-theme-cinema-noir-v2 .art-hero-photo:after { content:""; position:absolute; inset:0; box-shadow: inset 0 0 0 14px #0c0c0c, inset 0 0 0 15px rgba(255,255,255,.1); pointer-events:none; }
.art-theme-cinema-noir-v2 .art-hero-copy { text-align:center; display:grid; align-content:end; min-height:100svh; padding: 0 36px 10vh; }
.art-theme-cinema-noir-v2 .art-couple-names { justify-content:center; }
.art-theme-cinema-noir-v2 .countdown-film-leader .countdown { display:grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.art-theme-cinema-noir-v2 .countdown-film-leader .countdown div { position:relative; border-radius: 999px; border:1px solid rgba(255,255,255,.14); background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02))!important; aspect-ratio:1; display:grid; place-content:center; }
.art-theme-cinema-noir-v2 .gallery-film-frame-grid .art-gallery { gap: 18px; background: transparent; }
.art-theme-cinema-noir-v2 .gallery-film-frame-grid .art-photo { padding: 12px; background: #111; border-radius: 0; border-color: rgba(255,255,255,.08); }
.art-theme-cinema-noir-v2 .gallery-film-frame-grid .art-photo:before,
.art-theme-cinema-noir-v2 .gallery-film-frame-grid .art-photo:after { content:""; position:absolute; top:8px; bottom:8px; width:12px; background: radial-gradient(circle, #f3eee6 32%, transparent 34%) center / 100% 18px repeat-y; opacity:.8; z-index:2; }
.art-theme-cinema-noir-v2 .gallery-film-frame-grid .art-photo:before { left:8px; }
.art-theme-cinema-noir-v2 .gallery-film-frame-grid .art-photo:after { right:8px; }
.art-theme-cinema-noir-v2 .gallery-film-frame-grid .art-photo img { padding-inline: 16px; filter: grayscale(1) contrast(1.08); }
.art-theme-cinema-noir-v2 .final-cinema-epilogue { background: #020202; }
.art-theme-cinema-noir-v2 .final-cinema-epilogue h2 { font-family: "Space Grotesk", sans-serif; font-size: clamp(44px,9vw,120px); text-transform: uppercase; line-height: .86; max-width: 8ch; text-wrap: balance; }

/* Pop Art Wedding 02 */
.art-theme-pop-art-wedding-v2 { --art-bg:#fde44a; --art-ink:#121212; --art-accent:#f53b3b; --art-accent2:#1d5dff; --art-paper:#fffdf7; }
.art-theme-pop-art-wedding-v2 .art-hero { padding: 0; background-image: radial-gradient(circle, rgba(0,0,0,.18) 1.2px, transparent 1.2px); background-size: 16px 16px; }
.art-theme-pop-art-wedding-v2 .art-hero-photo { width:min(60vw, 840px); height:70vh; left:50%; top:18vh; transform:translateX(-50%) rotate(-4deg); border:4px solid #121212; box-shadow: 16px 16px 0 var(--art-accent2); border-radius:0; }
.art-theme-pop-art-wedding-v2 .art-hero-copy { display:grid; align-content:start; min-height:100svh; padding: 18vh 32px 0; }
.art-theme-pop-art-wedding-v2 .art-hero h1 { width:min-content; text-transform: uppercase; font-family:"Space Grotesk",sans-serif; font-weight:700; }
.art-theme-pop-art-wedding-v2 .countdown-sticker-stack .countdown { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.art-theme-pop-art-wedding-v2 .countdown-sticker-stack .countdown div { padding: 24px 10px; border:4px solid currentColor; background:#fff !important; border-radius: 22px; box-shadow: 10px 10px 0 var(--art-accent2); }
.art-theme-pop-art-wedding-v2 .program-comic-strip .art-program-row { border-width: 3px; background: #fff; box-shadow: 8px 8px 0 var(--art-accent2); }
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery { display:grid; grid-template-columns: repeat(12, 1fr); gap: 16px; }
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-photo { border:4px solid #121212; border-radius:0; padding:0; box-shadow: 10px 10px 0 var(--art-accent2); background:#fff; }
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-photo:nth-child(1){grid-column:1 / span 7 !important}.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-photo:nth-child(2){grid-column:8 / span 5 !important}.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-photo:nth-child(3){grid-column:1 / span 4 !important}.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-photo:nth-child(4){grid-column:5 / span 4 !important}.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-photo:nth-child(5){grid-column:9 / span 4 !important}.art-theme-pop-art-wedding-v2 .art-gallery-count-6 .art-photo:nth-child(6),.art-theme-pop-art-wedding-v2 .art-gallery-count-7 .art-photo:nth-child(6),.art-theme-pop-art-wedding-v2 .art-gallery-count-8 .art-photo:nth-child(6){grid-column:1 / span 6 !important}.art-theme-pop-art-wedding-v2 .art-gallery-count-6 .art-photo:nth-child(7),.art-theme-pop-art-wedding-v2 .art-gallery-count-8 .art-photo:nth-child(7){grid-column:7 / span 6 !important}.art-theme-pop-art-wedding-v2 .art-gallery-count-8 .art-photo:nth-child(8){grid-column:4 / span 6 !important}
.art-theme-pop-art-wedding-v2 .final-comic-finale { background: linear-gradient(180deg, #fff7d6, #fde44a); }
.art-theme-pop-art-wedding-v2 .final-comic-finale h2 { font-family: "Space Grotesk", sans-serif; font-size: clamp(42px,9vw,112px); text-transform: uppercase; line-height: .84; text-shadow: 5px 5px 0 var(--art-accent2); }

/* Ocean Pearl 02 */
.art-theme-ocean-pearl-v2 { --art-bg:#eef6f4; --art-ink:#18425c; --art-accent:#65b5b1; --art-accent2:#9acfe0; --art-paper:#ffffff; }
.art-theme-ocean-pearl-v2 .art-hero { padding:0; background: linear-gradient(180deg, #eef6f4, #dfeef2); }
.art-theme-ocean-pearl-v2 .art-hero-photo { width:min(58vw, 620px); height:68vh; right:4vw; top:14vh; clip-path:ellipse(44% 46% at 50% 50%); box-shadow: 0 28px 90px rgba(24,66,92,.14); }
.art-theme-ocean-pearl-v2 .art-hero-copy { width:min(1120px, calc(100% - 80px)); display:grid; align-content:end; min-height:100svh; padding-bottom: 12vh; }
.art-theme-ocean-pearl-v2 .countdown-pearls .countdown div:nth-child(1),
.art-theme-ocean-pearl-v2 .countdown-pearls .countdown div:nth-child(4) { width: 21%; }
.art-theme-ocean-pearl-v2 .gallery-pearl-ribbon .art-gallery { display:flex; gap:14px; align-items:center; }
.art-theme-ocean-pearl-v2 .gallery-pearl-ribbon .art-photo { flex:1; height:420px; border-radius: 42px; }
.art-theme-ocean-pearl-v2 .gallery-pearl-ribbon .art-photo:nth-child(even) { height:320px; transform:translateY(50px); }
.art-theme-ocean-pearl-v2 .final-sea-benediction { background: linear-gradient(180deg, #eef6f4, #d6ecf1); }
.art-theme-ocean-pearl-v2 .final-sea-benediction .art-final-composition:before { content:""; width:160px; height:160px; border-radius:50%; background: radial-gradient(circle at 30% 25%, #fff, #d9ece9 56%, #aad1d8 100%); box-shadow: 0 24px 60px rgba(24,66,92,.12); }

/* Digital Aurora 02 */
.art-theme-digital-aurora-v2 { --art-bg:#071024; --art-ink:#f4ecff; --art-accent:#55daf0; --art-accent2:#7a64ff; --art-paper:#ffffff; }
.art-theme-digital-aurora-v2 .art-hero { padding:0; background: radial-gradient(circle at 20% 18%, rgba(85,218,240,.16), transparent 22%), radial-gradient(circle at 72% 14%, rgba(122,100,255,.26), transparent 26%), #071024; }
.art-theme-digital-aurora-v2 .art-hero:before { content:""; position:absolute; inset:-10%; background:conic-gradient(from 0deg, rgba(122,100,255,.36), rgba(85,218,240,.2), rgba(255,102,213,.18), rgba(122,100,255,.36)); filter: blur(90px); animation: auroraWave 18s linear infinite; }
@keyframes auroraWave { to { transform: rotate(360deg); } }
.art-theme-digital-aurora-v2 .art-hero-photo { width:min(46vw, 500px); height:66vh; left:11vw; top:17vh; border-radius:32px; overflow:hidden; border:1px solid rgba(255,255,255,.36); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 34px 70px rgba(7,16,36,.38); }
.art-theme-digital-aurora-v2 .art-hero-copy { width:min(1180px, calc(100% - 80px)); display:grid; justify-items:end; align-content:center; min-height:100svh; text-align:right; }
.art-theme-digital-aurora-v2 .art-couple-names { justify-content:flex-end; }
.art-theme-digital-aurora-v2 .art-hero h1 { max-width: 6.8ch; text-shadow: 0 0 35px rgba(122,100,255,.38); }
.art-theme-digital-aurora-v2 .gallery-light-columns .art-gallery { display:grid; grid-template-columns: repeat(8, minmax(0,1fr)); gap: 16px; align-items:end; }
.art-theme-digital-aurora-v2 .gallery-light-columns .art-photo { grid-column: span 1 !important; min-height: 380px; border-radius: 24px; border-color: rgba(255,255,255,.32); background: rgba(255,255,255,.08); }
.art-theme-digital-aurora-v2 .gallery-light-columns .art-photo:nth-child(odd) { min-height: 300px; }
.art-theme-digital-aurora-v2 .gallery-light-columns .art-photo:nth-child(3n) { min-height: 420px; }
.art-theme-digital-aurora-v2 .gallery-light-columns .art-photo figcaption { color:#fff; }
.art-theme-digital-aurora-v2 .final-aurora-epilogue { background: linear-gradient(180deg, #071024, #121d4b); }
.art-theme-digital-aurora-v2 .final-aurora-epilogue .art-final-composition { min-height: 76svh; }

@media  (max-width: 900px) {
  .art-wedding .art-hosts-card,
  .art-wedding .art-venue-card,
  .art-wedding .art-dress-card,
  .art-wedding .art-contact-card,
  .art-wedding .art-date-composition,
  .art-wedding .art-countdown-content { padding: 22px; border-radius: 24px; }
  .art-date-layout-led .art-led-board { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .art-theme-electric-love-v2 .gallery-band-wall .art-photo,
  .art-theme-digital-aurora-v2 .gallery-light-columns .art-photo { grid-column: span 4 !important; min-height: 260px; transform: none !important; }
  .art-theme-ocean-pearl-v2 .gallery-pearl-ribbon .art-gallery { display:grid; grid-template-columns: 1fr 1fr; }
  .art-theme-ocean-pearl-v2 .gallery-pearl-ribbon .art-photo { height: 240px !important; transform:none !important; }
}
@media  (max-width: 640px) {
  .art-date-layout,
  .art-date-sidecopy { text-align:center; justify-items:center; }
  .art-date-layout-led .art-led-board span { min-height: 84px; font-size: 24px; }
  .art-calendar-card { padding: 16px; border-radius: 22px; }
  .art-calendar-weekdays, .art-calendar-grid { gap: 6px; }
  .art-calendar-weekdays span, .art-calendar-grid span { min-height: 34px; }
  .art-travel-stamp, .art-speech-date, .art-cinema-date { width: 100%; }
  .art-theme-sakura-mist-v2 .art-hero-photo,
  .art-theme-riviera-60s-v2 .art-hero-photo,
  .art-theme-cinema-noir-v2 .art-hero-photo,
  .art-theme-pop-art-wedding-v2 .art-hero-photo,
  .art-theme-ocean-pearl-v2 .art-hero-photo,
  .art-theme-digital-aurora-v2 .art-hero-photo { width: calc(100% - 36px); left: 18px; right: 18px; transform:none; top: 90px; height: 46svh; }
  .art-theme-sakura-mist-v2 .art-hero-copy,
  .art-theme-electric-love-v2 .art-hero-copy,
  .art-theme-riviera-60s-v2 .art-hero-copy,
  .art-theme-cinema-noir-v2 .art-hero-copy,
  .art-theme-pop-art-wedding-v2 .art-hero-copy,
  .art-theme-ocean-pearl-v2 .art-hero-copy,
  .art-theme-digital-aurora-v2 .art-hero-copy { width: calc(100% - 36px); padding: 58svh 0 8vh; text-align:left; justify-items:start; }
  .art-theme-cinema-noir-v2 .art-couple-names,
  .art-theme-digital-aurora-v2 .art-couple-names { justify-content:flex-start; }
  .art-theme-electric-love-v2 .countdown-scoreboard .countdown,
  .art-theme-cinema-noir-v2 .countdown-film-leader .countdown,
  .art-theme-pop-art-wedding-v2 .countdown-sticker-stack .countdown { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .art-theme-electric-love-v2 .gallery-band-wall .art-photo,
  .art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-photo,
  .art-theme-digital-aurora-v2 .gallery-light-columns .art-photo { grid-column: span 6 !important; }
  .art-theme-pop-art-wedding-v2 .art-hero-photo { box-shadow: 8px 8px 0 var(--art-accent2); }
}

/* ============================
   Stage 3 — Qyz Uzatu collection pass
   Miras v2 + collection refinements
   ============================ */

.miras-v2 {
  --m2-bg: #f8f2ea;
  --m2-surface: #fffaf3;
  --m2-card: #fdf7ef;
  --m2-ink: #34261f;
  --m2-muted: #7b6757;
  --m2-line: rgba(113, 89, 66, .16);
  --m2-accent: #b48858;
  --m2-accent-2: #dbc2a0;
  background: var(--m2-bg);
  color: var(--m2-ink);
}



.m2-kicker,
.m2-label {
  display: block;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--m2-muted);
}




.m2-hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  padding: 56px 22px 86px;
  background: linear-gradient(180deg, #fbf5ee, #f1e5d5);
}
.m2-hero-ornament {
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}
.m2-hero-ornament-a {
  width: 46vmax;
  height: 46vmax;
  left: -12vmax;
  top: -14vmax;
  background: radial-gradient(circle, rgba(255,255,255,.95), rgba(237,221,199,.7) 52%, transparent 68%);
}
.m2-hero-ornament-b {
  width: 28vmax;
  height: 28vmax;
  right: -8vmax;
  bottom: 10vh;
  background: radial-gradient(circle, rgba(255,255,255,.9), rgba(214,184,148,.28) 54%, transparent 72%);
}
.m2-hero-inner {
  position: relative;
  z-index: 2;
  width: min(1180px, 100%);
  margin: 0 auto;
  min-height: calc(100svh - 142px);
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .82fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
}
.m2-hero-copy { max-width: 520px; }
.m2-hero-copy p {
  margin: 18px 0 28px;
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-size: clamp(16px, 2.1vw, 22px);
  line-height: 1.6;
  color: color-mix(in srgb, var(--m2-ink) 84%, white 16%);
}
.m2-name {
  margin: 16px 0 0;
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-size: clamp(60px, 8vw, 120px);
  line-height: .88;
  letter-spacing: -.045em;
}
.m2-name.m2-name-medium { font-size: clamp(52px, 7vw, 98px); }
.m2-name.m2-name-compact { font-size: clamp(44px, 5.8vw, 82px); }
.m2-hero-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
.m2-hero-meta > * {
  display: inline-flex;
  align-items: center;
  padding: 11px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(113, 89, 66, .1);
  color: var(--m2-ink);
}
.m2-hero-photo-shell { display: flex; justify-content: center; }
.m2-hero-photo,
.m2-placeholder {
  width: min(520px, 100%);
  aspect-ratio: 10 / 12.5;
  overflow: hidden;
  background: linear-gradient(180deg, #efe2cd, #d5bea0);
  clip-path: path("M 50 0 C 78 0 100 22 100 50 L 100 100 L 0 100 L 0 50 C 0 22 22 0 50 0 Z");
  border: 18px solid rgba(255,250,243,.92);
  box-shadow: 0 34px 90px rgba(77, 59, 42, .15);
}
@supports  not (clip-path: path("M 50 0 C 78 0 100 22 100 50 L 100 100 L 0 100 L 0 50 C 0 22 22 0 50 0 Z")) {
  .m2-hero-photo,
  .m2-placeholder { border-radius: 42% 42% 0 0 / 16% 16% 0 0; }
}
.m2-hero-photo img {
  width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(.98);
}
.m2-placeholder {
  display: grid; place-items: center; font-family: "Playfair Display", serif; font-size: clamp(90px, 15vw, 160px); color: rgba(52,38,31,.28);
}
.m2-hero-mark,
.m2-chevron {
  position: absolute; bottom: 20px; z-index: 3; color: var(--m2-muted);
}
.m2-hero-mark { left: 28px; font-size: 9px; letter-spacing: .24em; text-transform: uppercase; }
.m2-chevron { right: 28px; }
.m2-section { padding: 30px 22px; }
.m2-card,
.m2-date-wrap,
.m2-final-card {
  width: min(980px, 100%);
  margin: 0 auto;
  border-radius: 30px;
  border: 1px solid rgba(113, 89, 66, .1);
  background: rgba(255, 250, 243, .88);
  box-shadow: 0 20px 42px rgba(84, 66, 51, .06);
}
.m2-card { padding: 36px 28px; }
.m2-copy-card { max-width: 860px; text-align: center; }
.m2-copy-card h2,
.m2-hosts-card h2,
.m2-venue-card h2,
.m2-dress-card h2,
.m2-contact-card h2,
.m2-gallery-head h2,
.m2-final-card h2 {
  margin: 0 0 14px;
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-size: clamp(34px, 4.3vw, 58px);
  letter-spacing: -.03em;
}
.m2-copy-card p,
.m2-venue-card p,
.m2-dress-card p,
.m2-contact-card p { max-width: 620px; margin: 0 auto; color: var(--m2-muted); line-height: 1.85; }
.m2-mini-mark { margin-bottom: 18px; color: var(--m2-accent); opacity: .78; }
.m2-date-wrap {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .95fr);
  gap: 18px;
  align-items: stretch;
  padding: 24px;
  background: linear-gradient(145deg, #fcf6ee, #f1e4d2);
}
.m2-date-copy {
  padding: 18px 6px 18px 8px;
  display: grid;
  align-content: center;
  gap: 12px;
}
.m2-section-icon { color: var(--m2-accent); }
.m2-date-copy h2 {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-weight: 500;
  font-size: clamp(42px, 5.5vw, 78px);
  line-height: .96;
}
.m2-date-copy p { margin: 0; color: var(--m2-muted); font-size: 16px; }
.m2-time {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-top: 8px; color: var(--m2-muted); letter-spacing: .12em; text-transform: uppercase; font-size: 11px;
}
.m2-time strong { color: var(--m2-ink); font-size: 18px; letter-spacing: 0; }
.m2-calendar {
  display: grid;
  gap: 12px;
  padding: 18px;
  border-radius: 24px;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(113, 89, 66, .09);
}
.m2-calendar-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-transform: uppercase; letter-spacing: .12em; font-size: 12px; color: var(--m2-muted); }
.m2-calendar-top strong { font-size: 14px; color: var(--m2-ink); }
.m2-calendar-weekdays,
.m2-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 8px; }
.m2-calendar-weekdays span,
.m2-calendar-grid span { display: grid; place-items: center; min-height: 40px; border-radius: 12px; }
.m2-calendar-weekdays span { font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: var(--m2-muted); }
.m2-calendar-grid span { font-size: 14px; background: rgba(255,255,255,.82); border: 1px solid rgba(113, 89, 66, .08); }
.m2-calendar-grid span.is-muted { opacity: .28; }
.m2-calendar-grid span.is-active { background: var(--m2-accent); color: #fff; border-color: transparent; box-shadow: 0 12px 28px rgba(180,136,88,.26); }
.m2-countdown-card { max-width: 860px; text-align: center; }
.m2-hosts-card { max-width: 760px; text-align: center; background: linear-gradient(145deg, #fff9f0, #f2e6d4); }
.m2-host-line { width: 110px; height: 1px; background: rgba(180,136,88,.35); margin: 22px auto 14px; position: relative; }
.m2-host-line span { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: #f9f1e7; color: var(--m2-accent); padding: 0 12px; }
.m2-program-shell,
.m2-gallery-shell { width: min(980px, 100%); margin: 0 auto; }
.m2-program-head,
.m2-gallery-head { text-align: center; margin-bottom: 18px; }
.m2-program-list { display: grid; gap: 12px; }
.m2-program-row {
  display: grid;
  grid-template-columns: 110px 36px 1fr;
  gap: 14px;
  align-items: center;
  padding: 18px;
  border-radius: 20px;
  background: rgba(255,250,243,.9);
  border: 1px solid rgba(113,89,66,.08);
}
.m2-program-row strong { font-family: "Playfair Display", serif; font-weight: 500; font-size: 22px; }
.m2-program-row span { text-align: center; color: var(--m2-accent); font-size: 10px; }
.m2-program-row p { margin: 0; color: var(--m2-muted); }
.m2-venue-card,
.m2-dress-card,
.m2-contact-card { max-width: 760px; text-align: center; }
.m2-map-button,
.m2-contact-card a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding: 12px 18px;
  border-radius: 999px;
  background: linear-gradient(145deg, #fff, #f5eadc);
  border: 1px solid rgba(113,89,66,.12);
  color: var(--m2-ink);
  text-decoration: none;
}
.m2-swatches { display: flex; justify-content: center; gap: 11px; margin-top: 18px; }
.m2-swatches i { width: 34px; height: 34px; border-radius: 999px; background: #f3e4cf; }
.m2-swatches i:nth-child(2) { background: #e4d0b0; }
.m2-swatches i:nth-child(3) { background: #d2b388; }
.m2-swatches i:nth-child(4) { background: #af8556; }
.m2-swatches i:nth-child(5) { background: #5a4032; }
.m2-gallery-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.m2-photo {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 26px;
  border: 1px solid rgba(113,89,66,.1);
  background: #f2e5d0;
  box-shadow: 0 16px 32px rgba(96, 74, 55, .07);
}
.m2-photo img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; display: block; }
.m2-photo figcaption {
  position: absolute; left: 14px; bottom: 14px; padding: 8px 10px; border-radius: 999px;
  background: rgba(255,250,243,.76); backdrop-filter: blur(6px); font-size: 10px; letter-spacing: .16em; color: var(--m2-ink);
}
.m2-photo-index-0 { grid-column: span 7; min-height: 360px; }
.m2-photo-index-1 { grid-column: span 5; min-height: 300px; }
.m2-photo-index-2 { grid-column: span 5; min-height: 300px; }
.m2-photo-index-3 { grid-column: span 7; min-height: 360px; }
.m2-photo-index-4 { grid-column: span 4; min-height: 280px; }
.m2-photo-index-5 { grid-column: span 4; min-height: 280px; }
.m2-photo-index-6 { grid-column: span 4; min-height: 280px; }
.m2-photo-index-7 { grid-column: 3 / span 8; min-height: 320px; }
.m2-gallery-1 .m2-photo-index-0 { grid-column: 3 / span 8; min-height: 460px; }
.m2-gallery-2 .m2-photo-index-0, .m2-gallery-2 .m2-photo-index-1 { grid-column: span 6; min-height: 340px; }
.m2-gallery-3 .m2-photo-index-2 { grid-column: 3 / span 8; min-height: 320px; }
.m2-gallery-4 .m2-photo-index-2, .m2-gallery-4 .m2-photo-index-3 { grid-column: span 6; min-height: 320px; }
.m2-final { padding-bottom: 44px; }
.m2-final-card {
  max-width: 800px;
  text-align: center;
  padding: 44px 28px;
  background: linear-gradient(145deg, #4f362f, #6a4a40);
  color: #fff7ef;
}
.m2-final-card h2 { color: #fff7ef; max-width: 600px; margin-inline: auto; }
.m2-final-card p { margin: 18px 0 0; color: #f1e0cf; }
.m2-final-mark { display: block; margin-bottom: 12px; color: #ddbe90; font-size: 28px; }
.m2-final-card small { display: block; margin-top: 18px; color: rgba(255,247,239,.58); letter-spacing: .12em; }

/* Collection-level polish for existing Qyz Uzatu templates */
.aqb-invite .qab-gallery-head,
.tumar-story .qt-program-wrap,
.tumar-story .qt-photo-story,
.tumar-story .qt-photo-pair-grid {
  position: relative;
}
.aqb-invite .qab-gallery-head:after {
  content: "";
  display: block;
  width: 86px;
  height: 1px;
  margin: 14px auto 0;
  background: linear-gradient(90deg, transparent, var(--qab-accent), transparent);
}
.aqb-invite .qab-date-card,
.aqb-invite .qab-countdown-card,
.aqb-invite .qab-blessing-card,
.aqb-invite .qab-venue-card,
.aqb-invite .qab-dress-card,
.aqb-invite .qab-contact-card,
.aqb-invite .qab-final-card {
  box-shadow: 0 22px 48px rgba(97, 80, 62, .08);
}
.aqb-invite .qab-photo {
  border: 1px solid rgba(117,93,68,.08);
}
.tumar-story .qt-photo-frame {
  box-shadow: 0 18px 42px rgba(23,52,48,.11);
}
.tumar-story .qt-program-row,
.tumar-story .qt-panel,
.tumar-story .qt-date-panel,
.tumar-story .qt-final-inner {
  box-shadow: 0 18px 40px rgba(31,38,36,.08);
}
.tumar-story .qt-final-inner h2 {
  max-width: 10ch;
  margin-inline: auto;
}

/* Visibility reliability for Miras v2 gallery */
.m2-photo { opacity: 1 !important; filter: none !important; }

@media  (max-width: 900px) {
  .m2-hero-inner { grid-template-columns: 1fr; min-height: auto; }
  .m2-hero-copy { max-width: none; text-align: center; }
  .m2-hero-meta { justify-content: center; }
  .m2-date-wrap { grid-template-columns: 1fr; }
  .m2-gallery-grid { grid-template-columns: 1fr 1fr; }
  .m2-photo,
  .m2-photo-index-0,
  .m2-photo-index-1,
  .m2-photo-index-2,
  .m2-photo-index-3,
  .m2-photo-index-4,
  .m2-photo-index-5,
  .m2-photo-index-6,
  .m2-photo-index-7 { grid-column: auto; min-height: 260px; }
  .m2-gallery-1 .m2-photo-index-0 { grid-column: 1 / -1; min-height: 420px; }
}
@media  (max-width: 640px) {
  
  
  .m2-hero { padding-inline: 14px; }
  .m2-hero-inner { gap: 22px; }
  .m2-hero-photo,
  .m2-placeholder { width: 100%; border-width: 12px; }
  .m2-hero-copy p { font-size: 16px; }
  .m2-name { font-size: clamp(44px, 13vw, 70px); }
  .m2-card,
  .m2-date-wrap,
  .m2-final-card { padding: 24px 18px; border-radius: 22px; }
  .m2-copy-card h2,
  .m2-hosts-card h2,
  .m2-venue-card h2,
  .m2-dress-card h2,
  .m2-contact-card h2,
  .m2-gallery-head h2,
  .m2-final-card h2 { font-size: clamp(28px, 9vw, 42px); }
  .m2-date-copy h2 { font-size: clamp(34px, 9vw, 48px); }
  .m2-program-row { grid-template-columns: 1fr; gap: 8px; text-align: left; }
  .m2-program-row span { text-align: left; }
  .m2-gallery-grid { grid-template-columns: 1fr; }
  .m2-photo,
  .m2-photo-index-0,
  .m2-photo-index-1,
  .m2-photo-index-2,
  .m2-photo-index-3,
  .m2-photo-index-4,
  .m2-photo-index-5,
  .m2-photo-index-6,
  .m2-photo-index-7,
  .m2-gallery-1 .m2-photo-index-0 { grid-column: auto; min-height: 220px; }
  .m2-calendar-weekdays,
  .m2-calendar-grid { gap: 6px; }
  .m2-calendar-weekdays span,
  .m2-calendar-grid span { min-height: 34px; }
}

/* ============================
   Stage 4 — Syrga Salu collection pass
   Amulet v2 / Pearl v3 / Velvet v3
   ============================ */

/* Amulet v2 — dark jewellery / family heirloom */
.amulet-v2 {
  --sa2-bg:#1e1218;
  --sa2-surface:#2a1720;
  --sa2-card:#f5eadc;
  --sa2-ink:#f6eadb;
  --sa2-dark-ink:#3b2730;
  --sa2-muted:#c9b6ac;
  --sa2-gold:#c8a46e;
  --sa2-wine:#6b2e45;
  --sa2-wine-2:#8c3d59;
  background:var(--sa2-bg);
  color:var(--sa2-ink);
}
.amulet-v2 .invite-body{background:linear-gradient(180deg,#21141a 0%,#2e1922 42%,#f0e5d7 42%,#f4ede5 100%)}


.sa2-kicker{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#d6bf9b}





.sa2-hero{min-height:100svh;position:relative;overflow:hidden;padding:56px 22px 82px;background:radial-gradient(circle at 22% 18%,rgba(140,61,89,.22),transparent 28%),linear-gradient(145deg,#26131d,#3a1c2b)}
.sa2-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(200,164,110,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(200,164,110,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(180deg,rgba(0,0,0,.7),transparent 86%)}
.sa2-orbit{position:absolute;border:1px solid rgba(200,164,110,.18);border-radius:50%;pointer-events:none}
.sa2-orbit-a{width:46vw;height:46vw;max-width:660px;max-height:660px;right:-14vw;top:-12vw;box-shadow:0 0 0 34px rgba(200,164,110,.025),0 0 0 70px rgba(200,164,110,.018)}
.sa2-orbit-b{width:260px;height:260px;left:-150px;bottom:8vh}
.sa2-hero-layout{position:relative;z-index:2;width:min(1180px,100%);min-height:calc(100svh - 138px);margin:0 auto;display:grid;grid-template-columns:minmax(0,.92fr) minmax(340px,.78fr);gap:clamp(30px,6vw,82px);align-items:center}
.sa2-hero-copy{max-width:560px}
.sa2-names{margin:18px 0 20px;font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(52px,7.6vw,112px);line-height:.86;letter-spacing:-.05em;color:#fff2e3}
.sa2-names span{display:block}.sa2-names em{display:block;font-style:italic;color:var(--sa2-gold);font-size:.44em;line-height:1;margin:.05em 0}
.sa2-names.sa2-names-medium{font-size:clamp(46px,6.5vw,92px)}.sa2-names.sa2-names-compact{font-size:clamp(40px,5.6vw,76px)}
.sa2-hero-rule{width:92px;height:1px;margin:20px 0;background:linear-gradient(90deg,var(--sa2-gold),transparent)}
.sa2-hero-meta{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;color:#d9c8cf;font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.sa2-hero-meta strong{color:#fff0de}.sa2-hero-meta>*{padding:9px 12px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.035)}
.sa2-jewel-chip{display:inline-flex;margin-top:18px;padding:10px 15px;border-radius:999px;border:1px solid rgba(200,164,110,.24);color:#ddc49a;font-size:10px;letter-spacing:.2em;text-transform:uppercase;background:rgba(200,164,110,.05)}
.sa2-hero-medallion{position:relative;width:min(500px,100%);aspect-ratio:.82;border-radius:48% 48% 38% 38% / 24% 24% 18% 18%;padding:18px;background:linear-gradient(145deg,#d8bd8e,#8c6840);box-shadow:0 36px 88px rgba(0,0,0,.34)}
.sa2-hero-medallion:before,.sa2-hero-medallion:after{content:"";position:absolute;left:50%;transform:translateX(-50%);border-radius:50%;border:1px solid rgba(239,214,172,.6)}
.sa2-hero-medallion:before{width:54px;height:54px;top:-28px;background:#301722;box-shadow:0 0 0 7px #b88f58}
.sa2-hero-medallion:after{width:26px;height:26px;top:-14px;background:#c8a46e}
.sa2-hero-photo{width:100%;height:100%;overflow:hidden;border-radius:46% 46% 36% 36% / 22% 22% 16% 16%;background:#412433}
.sa2-hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.76) contrast(1.04)}
.sa2-placeholder{height:100%;display:grid;place-items:center;font-size:clamp(26px,4vw,44px);letter-spacing:.14em;color:#d7bd91;background:radial-gradient(circle,#573047,#2b1621)}
.sa2-hero-mark,.sa2-chevron{position:absolute;bottom:20px;z-index:4;color:#d1bbc3}.sa2-hero-mark{left:28px;font-size:9px;letter-spacing:.24em;text-transform:uppercase}.sa2-chevron{right:28px}
.sa2-section{padding:30px 22px;background:#f1e7dc;color:var(--sa2-dark-ink)}
.sa2-section:nth-of-type(even){background:#f6eee5}
.sa2-card,.sa2-date-panel,.sa2-final-card{width:min(960px,100%);margin:0 auto;border:1px solid rgba(76,49,61,.09);border-radius:26px;background:rgba(255,250,244,.9);box-shadow:0 20px 46px rgba(74,52,57,.07)}
.sa2-card{padding:36px 28px}.sa2-intro-card,.sa2-hosts-card,.sa2-venue-card,.sa2-dress-card,.sa2-contact-card,.sa2-final-card{max-width:840px;text-align:center}
.sa2-intro-card h2,.sa2-hosts-card h2,.sa2-venue-card h2,.sa2-dress-card h2,.sa2-contact-card h2,.sa2-program-head h2,.sa2-gallery-head h2,.sa2-final-card h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(32px,4.2vw,58px);line-height:1.02;letter-spacing:-.03em;margin:0 0 14px}
.sa2-intro-card p,.sa2-venue-card p,.sa2-dress-card p,.sa2-contact-card p{max-width:620px;margin:0 auto;color:#7e6871;line-height:1.86}
.sa2-seal{width:58px;height:58px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;font-family:"Playfair Display",serif;font-size:24px;color:#fff0dc;background:linear-gradient(145deg,#7b334c,#4a2334);box-shadow:0 0 0 6px rgba(200,164,110,.14)}
.sa2-date-panel{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1fr);gap:28px;align-items:center;padding:30px;background:linear-gradient(145deg,#fdf7ef,#ead9c5)}
.sa2-date-medallion{position:relative;width:min(280px,100%);aspect-ratio:1;margin:auto;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 35% 28%,#fff7e8,#d9b77e 58%,#8e6339 100%);box-shadow:0 20px 44px rgba(100,66,41,.18),inset 0 0 0 10px rgba(255,255,255,.24)}
.sa2-date-medallion strong{font-family:"Playfair Display",serif;font-size:clamp(78px,10vw,122px);line-height:.78;color:#4f2b39}.sa2-date-medallion span{margin-top:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#633a49}.sa2-date-medallion i{position:absolute;width:18px;height:18px;border-radius:50%;right:15%;top:15%;background:#7c3855;box-shadow:0 0 0 5px rgba(255,255,255,.28)}
.sa2-date-copy h2{margin:8px 0 6px;font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(40px,5.2vw,70px);line-height:.96}.sa2-date-copy p{margin:0;color:#806c73;text-transform:capitalize}.sa2-time{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;color:#806c73;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.sa2-time strong{font-size:22px;letter-spacing:0;color:#4c313d}
.sa2-countdown-card{text-align:center;max-width:880px;background:linear-gradient(145deg,#4b2638,#28141f);color:#f8ecdf;border-color:rgba(200,164,110,.18)}.sa2-countdown-card .sa2-kicker{color:#d9c197}.sa2-countdown-card .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.sa2-countdown-card .countdown div{padding:18px 8px;border-radius:999px;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.16),rgba(255,255,255,.03) 60%)!important;border:1px solid rgba(216,185,135,.2);aspect-ratio:1;display:grid;place-content:center}.sa2-countdown-card .countdown strong{font-family:"Playfair Display",serif;font-size:clamp(34px,5vw,64px)}
.sa2-family-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.sa2-family-card{padding:22px;border-radius:20px;background:linear-gradient(145deg,#fbf5ec,#ead8c4);border:1px solid rgba(76,49,61,.08)}.sa2-family-card span{display:block;margin-bottom:8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8e6f62}.sa2-family-card strong{font-size:18px;color:#4a303b}
.sa2-icon{margin:0 auto 12px;color:#8b5266}.sa2-map-button,.sa2-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border-radius:999px;background:#4a2637;color:#fff2e6;text-decoration:none;border:1px solid rgba(200,164,110,.2)}
.sa2-program-shell,.sa2-gallery-shell{width:min(1040px,100%);margin:0 auto}.sa2-program-head,.sa2-gallery-head{text-align:center;margin-bottom:20px}.sa2-program-chain{position:relative;display:grid;gap:10px}.sa2-program-chain:before{content:"";position:absolute;left:20px;top:22px;bottom:22px;width:1px;background:linear-gradient(#c8a46e,rgba(200,164,110,.1))}.sa2-program-row{position:relative;display:grid;grid-template-columns:42px 105px 1fr;gap:14px;align-items:center;padding:16px 18px;border-radius:20px;background:rgba(255,250,244,.82);border:1px solid rgba(76,49,61,.07)}.sa2-program-dot{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#6b2e45;color:#d9b878;font-size:9px}.sa2-program-row strong{font-size:20px}.sa2-program-row p{margin:0;color:#806b73}
.sa2-gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:stretch}.sa2-photo{position:relative;margin:0;overflow:hidden;background:#3a1d2b;border:8px solid #f8efe4;box-shadow:0 18px 38px rgba(77,55,60,.11)}.sa2-photo img{width:100%;height:100%;min-height:240px;object-fit:cover;display:block;filter:saturate(.82) contrast(1.02)}.sa2-photo figcaption{position:absolute;right:12px;bottom:10px;font-size:9px;letter-spacing:.18em;color:#fff;text-shadow:0 1px 8px #000}
.sa2-photo-1{grid-column:1/span 5;min-height:420px;border-radius:48% 48% 18px 18px/22% 22% 18px 18px}.sa2-photo-2{grid-column:6/span 7;min-height:320px;border-radius:22px}.sa2-photo-3{grid-column:1/span 4;min-height:290px;border-radius:50%}.sa2-photo-4{grid-column:5/span 4;min-height:290px;border-radius:24px}.sa2-photo-5{grid-column:9/span 4;min-height:290px;border-radius:50%}.sa2-photo-6{grid-column:2/span 5;min-height:340px;border-radius:22px}.sa2-photo-7{grid-column:7/span 5;min-height:340px;border-radius:48% 48% 18px 18px/22% 22% 18px 18px}.sa2-photo-8{grid-column:3/span 8;min-height:360px;border-radius:22px}
.sa2-gallery-1 .sa2-photo-1{grid-column:3/span 8;min-height:500px}.sa2-gallery-2 .sa2-photo-1,.sa2-gallery-2 .sa2-photo-2{grid-column:span 6;min-height:390px}.sa2-gallery-3 .sa2-photo-3{grid-column:4/span 6}.sa2-gallery-4 .sa2-photo-1,.sa2-gallery-4 .sa2-photo-2,.sa2-gallery-4 .sa2-photo-3,.sa2-gallery-4 .sa2-photo-4{grid-column:span 6;min-height:330px;border-radius:24px}
.sa2-swatches{display:flex;justify-content:center;gap:12px;margin-top:18px}.sa2-swatches i{width:34px;height:34px;border-radius:50%;background:#f2e4d2}.sa2-swatches i:nth-child(2){background:#d6b884}.sa2-swatches i:nth-child(3){background:#9d6f54}.sa2-swatches i:nth-child(4){background:#6b2e45}.sa2-swatches i:nth-child(5){background:#2d1722}
.sa2-final{background:#21131a!important;color:#fff0e2}.sa2-final-card{background:radial-gradient(circle at 50% 20%,rgba(200,164,110,.12),transparent 28%),linear-gradient(145deg,#4d2638,#24131c);border-color:rgba(200,164,110,.16);color:#fff0e2;padding:48px 28px}.sa2-final-card h2{color:#fff0e2;max-width:650px;margin-inline:auto}.sa2-final-amulet{width:94px;height:112px;margin:0 auto 22px;display:grid;place-items:center;clip-path:polygon(50% 0,88% 18%,96% 70%,50% 100%,4% 70%,12% 18%);background:linear-gradient(145deg,#d6b77d,#8c653b);color:#4b2335;font-size:28px;box-shadow:0 22px 40px rgba(0,0,0,.18)}.sa2-final-names{margin-top:22px}.sa2-final-card small{display:block;margin-top:16px;color:#bcaab0;letter-spacing:.12em}
.sa2-photo{opacity:1!important;filter:none!important}

/* Pearl v3 — luminous jewellery / pearl necklace */
.pearl-v3{--sp-bg:#f7f8f7;--sp-surface:#fff;--sp-paper:#fff;--sp-ink:#39474a;--sp-muted:#7c8a8b;--sp-line:rgba(57,71,74,.10);--sp-accent:#c9b38f;--sp-accent-2:#dce7e5;background:linear-gradient(180deg,#fafcfb,#eef3f1);color:var(--sp-ink)}
.pearl-v3 .invite-body{background:linear-gradient(180deg,#fafcfb,#eef3f1 52%,#f8f6f1)}


.pearl-v3 .sp-hero{padding:0;background:radial-gradient(circle at 14% 16%,rgba(255,255,255,.95),transparent 24%),linear-gradient(155deg,#eef4f2,#faf8f4)}
.pearl-v3 .sp-hero-layout{min-height:100svh;width:min(1220px,calc(100% - 70px));grid-template-columns:.85fr 1.15fr;gap:clamp(20px,5vw,66px)}
.pearl-v3 .sp-hero-copy-inner{padding:0}
.pearl-v3 .sp-hero-copy h1{color:#334447;font-size:clamp(50px,6.3vw,90px)}
.pearl-v3 .sp-hero-rule{width:120px;background:linear-gradient(90deg,#c5ad87,transparent)}
.pearl-v3 .sp-hero-photo-ring{width:min(610px,100%);padding:28px;background:radial-gradient(circle at 30% 24%,#fff,#e8eeec 60%,#cfdad7 100%);box-shadow:0 34px 90px rgba(59,76,75,.14)}
.pearl-v3 .sp-hero-photo-ring:before,.pearl-v3 .sp-hero-photo-ring:after{content:"";position:absolute;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fff,#dfe9e7 66%,#a9bab7);box-shadow:0 12px 28px rgba(65,82,80,.12)}
.pearl-v3 .sp-hero-photo-ring:before{width:84px;height:84px;left:-34px;top:18%}.pearl-v3 .sp-hero-photo-ring:after{width:54px;height:54px;right:-18px;bottom:20%}
.pearl-v3 .sp-ring-label{background:rgba(255,255,255,.84);color:#617170}
.pearl-v3 .sp-card{border-radius:34px;background:rgba(255,255,255,.74);box-shadow:0 22px 50px rgba(67,83,81,.07)}
.pearl-v3 .sp-pearl-row i{width:12px;height:12px;background:radial-gradient(circle at 30% 24%,#fff,#d9e5e2 68%,#b5c5c1)}
.pearl-v3 .sp-date-card{grid-template-columns:170px 1fr;padding:30px;background:linear-gradient(145deg,#fff,#edf3f1)}
.pearl-v3 .sp-date-card .sp-icon{display:none}
.pearl-v3 .sp-date-card:before{content:"";width:150px;height:150px;border-radius:50%;grid-row:1/span 4;display:block;background:radial-gradient(circle at 30% 24%,#fff,#e4ecea 58%,#b7c6c3 100%);box-shadow:inset 0 1px rgba(255,255,255,.8),0 18px 38px rgba(63,82,79,.1)}
.pearl-v3 .sp-date-grid{grid-column:2;align-items:center}.pearl-v3 .sp-date-grid strong{font-family:"Playfair Display",serif;color:#425458;font-size:clamp(70px,9vw,112px)}.pearl-v3 .sp-time-line{grid-column:2}
.pearl-v3 .sp-countdown-card .countdown{display:flex;justify-content:center;gap:14px;align-items:center}.pearl-v3 .sp-countdown-card .countdown div{width:min(21vw,150px);aspect-ratio:1;border-radius:50%;display:grid;place-content:center;background:radial-gradient(circle at 30% 25%,#fff,#e6efec 60%,#c0ceca)!important;border:1px solid rgba(71,89,88,.07);box-shadow:0 16px 34px rgba(68,85,83,.09)}.pearl-v3 .sp-countdown-card .countdown div:nth-child(even){transform:translateY(24px)}
.pearl-v3 .sp-program-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pearl-v3 .sp-program-row{grid-template-columns:1fr;gap:8px;text-align:center;padding:24px 18px;border-radius:999px 999px 30px 30px;background:linear-gradient(180deg,#fff,#edf2f0)}.pearl-v3 .sp-program-row span{height:1px;width:48px;margin:auto;background:#c6b18f}.pearl-v3 .sp-program-row p{margin:0}
.pearl-v3 .sp-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:center}.pearl-v3 .sp-photo{padding:10px;background:linear-gradient(145deg,#fff,#e6eeec);box-shadow:0 20px 40px rgba(72,89,88,.08)}.pearl-v3 .sp-photo img{border-radius:inherit}.pearl-v3 .sp-photo-0{grid-column:1/span 4;border-radius:50%;aspect-ratio:1}.pearl-v3 .sp-photo-1{grid-column:5/span 4;border-radius:999px;min-height:420px}.pearl-v3 .sp-photo-2{grid-column:9/span 4;border-radius:50%;aspect-ratio:1}.pearl-v3 .sp-photo-3{grid-column:2/span 3;border-radius:999px;min-height:330px}.pearl-v3 .sp-photo-4{grid-column:5/span 4;border-radius:50%;aspect-ratio:1}.pearl-v3 .sp-photo-5{grid-column:9/span 3;border-radius:999px;min-height:330px}.pearl-v3 .sp-photo-index-6{grid-column:2/span 5!important;border-radius:50%!important;aspect-ratio:1}.pearl-v3 .sp-photo-index-7{grid-column:7/span 5!important;border-radius:50%!important;aspect-ratio:1}
.pearl-v3 .sp-final-card{background:radial-gradient(circle at 50% 0,rgba(255,255,255,.9),transparent 30%),linear-gradient(145deg,#eef4f2,#dce6e3);border-radius:42px}.pearl-v3 .sp-final-card:before{content:"";display:block;width:120px;height:120px;margin:0 auto 22px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#dfe9e6 62%,#b5c5c0);box-shadow:0 20px 45px rgba(62,80,78,.1)}

/* Velvet v3 — high-fashion editorial / plum velvet */
.velvet-v3{--sv-bg:#24151f;--sv-surface:#2f1927;--sv-card:#f3e9ec;--sv-ink:#e9dfe3;--sv-muted:#c0aeb5;--sv-line:rgba(233,223,227,.12);--sv-accent:#c6a06d;--sv-accent-2:#7a3558;background:#24151f;color:#f5ebef}
.velvet-v3 .invite-body{background:linear-gradient(180deg,#24151f 0 42%,#e8dce0 42% 100%)}


.velvet-v3 .sv-hero{background:#1c1017;padding:0}
.velvet-v3 .sv-hero-photo{inset:0;width:100%;height:100%;background:#321c29}
.velvet-v3 .sv-hero-photo img{filter:none}
.velvet-v3 .sv-hero-photo:after{inset:0;background:transparent;backdrop-filter:none;border:0}
.velvet-v3 .sv-hero-glass{left:6vw;top:50%;width:min(560px,44vw);padding:0;border:0;background:transparent;backdrop-filter:none}
.velvet-v3 .sv-names{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(58px,7.2vw,108px);letter-spacing:-.055em;line-height:.8;color:#fff4f7}.velvet-v3 .sv-names em{color:#c6a06d;font-size:.42em}.velvet-v3 .sv-hero-event{color:#d1b9c1}.velvet-v3 .sv-hero-meta{margin-top:20px;padding-top:18px;border-top:1px solid rgba(198,160,109,.34);max-width:460px}
.velvet-v3 .sv-story-section,.velvet-v3 .sv-final{padding:30px 22px;background:#e9dde1;color:#392432}.velvet-v3 .sv-story-section:nth-of-type(even){background:#efe5e8}
.velvet-v3 .sv-card{border-radius:0;background:#f7f0f2;border-color:rgba(57,36,50,.1);box-shadow:0 24px 48px rgba(68,47,57,.08)}
.velvet-v3 .sv-date-panel{border-radius:0;grid-template-columns:1fr 280px;gap:0;padding:0;overflow:hidden;background:#2d1925;border:1px solid rgba(198,160,109,.18);box-shadow:0 26px 50px rgba(56,36,46,.12)}
.velvet-v3 .sv-date-grid{border-radius:0;background:#f6eef0;padding:34px;align-items:center}.velvet-v3 .sv-date-grid strong{font-family:"Playfair Display",serif;color:#4a2639;font-size:clamp(82px,11vw,138px)}.velvet-v3 .sv-date-grid span{font-size:clamp(28px,3.2vw,44px)}
.velvet-v3 .sv-time-line{border-radius:0;background:#2d1925;color:#eadde2;padding:34px;justify-content:center}.velvet-v3 .sv-time-line strong{color:#c6a06d;font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(34px,4.6vw,58px)}
.velvet-v3 .sv-countdown-card{border-radius:0;background:#2a1722;color:#f5ebef;border-color:rgba(198,160,109,.14)}.velvet-v3 .sv-countdown-card .sv-kicker{color:#ccb6be}.velvet-v3 .sv-countdown-card .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(198,160,109,.24)}.velvet-v3 .sv-countdown-card .countdown div{border-radius:0;background:#2a1722!important;padding:24px 8px;border:0}.velvet-v3 .sv-countdown-card .countdown strong{font-family:"Playfair Display",serif;color:#f8edf1}
.velvet-v3 .sv-side-card{border-radius:0;background:#efe2e6;border-color:rgba(57,36,50,.1)}
.velvet-v3 .sv-program-row{border-radius:0;background:#f4ecef;border-left:4px solid #7a3558}.velvet-v3 .sv-program-row strong{font-family:"Playfair Display",serif;color:#4b293b}.velvet-v3 .sv-map-button,.velvet-v3 .sv-contact-card a{border-radius:0;background:#432236;color:#fff}
.velvet-v3 .sv-photo-frame{clip-path:none;background:#321d29;border:10px solid #2b1722;box-shadow:0 28px 58px rgba(52,35,44,.14)}.velvet-v3 .sv-photo-frame img{filter:saturate(.7) contrast(1.06)}.velvet-v3 .sv-paper-edge{display:none}.velvet-v3 .sv-photo-index{border-radius:0;background:#2b1722;color:#d8bea0}
.velvet-v3 .sv-final-inner{border-radius:0;background:linear-gradient(145deg,#2d1824,#1b0f16);border:1px solid rgba(198,160,109,.18);box-shadow:0 28px 60px rgba(0,0,0,.25)}.velvet-v3 .sv-final-inner h2{font-family:"Playfair Display",serif;font-size:clamp(40px,6vw,78px);line-height:.98;max-width:9ch;margin-inline:auto;color:#fff1f5}.velvet-v3 .sv-final-names{margin-top:24px;color:#f5e8ed}

@media (max-width:900px){
  .sa2-hero-layout{grid-template-columns:1fr;min-height:auto;text-align:center}.sa2-hero-copy{max-width:none}.sa2-hero-rule{margin-inline:auto}.sa2-hero-meta{justify-content:center}.sa2-hero-medallion{margin:auto;width:min(520px,88vw)}.sa2-date-panel{grid-template-columns:1fr}.sa2-family-grid{grid-template-columns:1fr}.sa2-gallery-grid{grid-template-columns:1fr 1fr}.sa2-photo,.sa2-photo-1,.sa2-photo-2,.sa2-photo-3,.sa2-photo-4,.sa2-photo-5,.sa2-photo-6,.sa2-photo-7,.sa2-photo-8,.sa2-gallery-1 .sa2-photo-1,.sa2-gallery-2 .sa2-photo-1,.sa2-gallery-2 .sa2-photo-2,.sa2-gallery-3 .sa2-photo-3,.sa2-gallery-4 .sa2-photo-1,.sa2-gallery-4 .sa2-photo-2,.sa2-gallery-4 .sa2-photo-3,.sa2-gallery-4 .sa2-photo-4{grid-column:auto;min-height:280px;border-radius:24px}
  .pearl-v3 .sp-hero-layout{grid-template-columns:1fr;padding:84px 0}.pearl-v3 .sp-hero-copy{text-align:center}.pearl-v3 .sp-hero-rule{margin-inline:auto}.pearl-v3 .sp-program-list{grid-template-columns:1fr}.pearl-v3 .sp-program-row{border-radius:28px}.pearl-v3 .sp-gallery{grid-template-columns:1fr 1fr}.pearl-v3 .sp-photo,.pearl-v3 .sp-photo-0,.pearl-v3 .sp-photo-1,.pearl-v3 .sp-photo-2,.pearl-v3 .sp-photo-3,.pearl-v3 .sp-photo-4,.pearl-v3 .sp-photo-5,.pearl-v3 .sp-photo-index-6,.pearl-v3 .sp-photo-index-7{grid-column:auto!important;min-height:260px;border-radius:28px!important;aspect-ratio:auto!important}
  .velvet-v3 .sv-hero-glass{left:24px;right:24px;width:auto}.velvet-v3 .sv-date-panel{grid-template-columns:1fr}
}
@media (max-width:640px){
  .sa2-hero{padding-inline:14px}.sa2-names{font-size:clamp(44px,13vw,72px)}.sa2-card,.sa2-date-panel,.sa2-final-card{padding:24px 18px;border-radius:22px}.sa2-intro-card h2,.sa2-hosts-card h2,.sa2-venue-card h2,.sa2-dress-card h2,.sa2-contact-card h2,.sa2-program-head h2,.sa2-gallery-head h2,.sa2-final-card h2{font-size:clamp(28px,9vw,42px)}.sa2-countdown-card .countdown{grid-template-columns:repeat(2,1fr)}.sa2-program-row{grid-template-columns:34px 72px 1fr;gap:8px;padding:14px 12px}.sa2-gallery-grid{grid-template-columns:1fr}.sa2-photo,.sa2-photo-1,.sa2-photo-2,.sa2-photo-3,.sa2-photo-4,.sa2-photo-5,.sa2-photo-6,.sa2-photo-7,.sa2-photo-8{grid-column:auto;min-height:230px}.sa2-date-medallion{width:220px}
  .pearl-v3 .sp-hero-layout{width:calc(100% - 28px)}.pearl-v3 .sp-date-card{grid-template-columns:1fr;text-align:center}.pearl-v3 .sp-date-card:before{margin:auto}.pearl-v3 .sp-date-grid,.pearl-v3 .sp-time-line{grid-column:1}.pearl-v3 .sp-date-grid{justify-content:center}.pearl-v3 .sp-countdown-card .countdown{display:grid;grid-template-columns:repeat(2,1fr)}.pearl-v3 .sp-countdown-card .countdown div{width:auto;transform:none!important}.pearl-v3 .sp-gallery{grid-template-columns:1fr}.pearl-v3 .sp-photo{min-height:230px!important}
  .velvet-v3 .sv-hero-glass{left:18px;right:18px;top:auto;bottom:11vh}.velvet-v3 .sv-hero-photo img{filter:none}.velvet-v3 .sv-hero-photo:after{background:transparent}.velvet-v3 .sv-names{font-size:clamp(44px,13vw,70px)}.velvet-v3 .sv-countdown-card .countdown{grid-template-columns:repeat(2,1fr)}
}

/* Stage 4 compatibility correction: keep Miras v2 arch responsive in all browsers. */
.miras-v2 .m2-hero-photo,
.miras-v2 .m2-placeholder {
  clip-path: none;
  border-radius: 44% 44% 18px 18px / 14% 14% 18px 18px;
}

/* Stage 4 — distinct catalogue thumbnails for Syrga Salu */
.syrga-thumb{position:relative;width:100%;height:100%;overflow:hidden;background:#2c1720;color:#fff;isolation:isolate}
.syrga-thumb-photo{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;transition:transform .45s ease,filter .45s ease}
.syrga-thumb-art{position:absolute;inset:0;pointer-events:none}
.syrga-thumb-copy{position:absolute;z-index:3;display:grid;gap:8px}
.syrga-thumb-copy span{font-size:9px;letter-spacing:.22em;text-transform:uppercase;font-weight:700}
.syrga-thumb-copy strong{font-family:"Playfair Display",serif;font-size:clamp(24px,3vw,38px);font-weight:500;line-height:.94;letter-spacing:-.035em}
.syrga-thumb-copy small{font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.syrga-thumb-copy em{font-style:normal;font-size:10px;letter-spacing:.14em}
.syrga-thumb-syrga-salu-amulet{background:linear-gradient(145deg,#2b151f,#5b2b41)}
.syrga-thumb-syrga-salu-amulet .syrga-thumb-photo{inset:10% 12% 11%;width:76%;height:79%;border-radius:46% 46% 22px 22px/20% 20% 22px 22px;filter:saturate(.72) contrast(1.04) brightness(.74);box-shadow:0 0 0 8px #d0aa70,0 24px 46px rgba(0,0,0,.25)}
.syrga-thumb-syrga-salu-amulet .syrga-thumb-art:before,.syrga-thumb-syrga-salu-amulet .syrga-thumb-art:after{content:"";position:absolute;border:1px solid rgba(222,187,129,.38);border-radius:50%}
.syrga-thumb-syrga-salu-amulet .syrga-thumb-art:before{width:58%;aspect-ratio:1;left:21%;top:9%;box-shadow:0 0 0 16px rgba(208,170,112,.04)}
.syrga-thumb-syrga-salu-amulet .syrga-thumb-art:after{width:30px;height:30px;left:50%;top:4%;transform:translateX(-50%);background:#c8a46e;box-shadow:0 0 0 6px #3b1d2a}
.syrga-thumb-syrga-salu-amulet .syrga-thumb-copy{left:7%;right:7%;bottom:5%;text-align:center;color:#fff0dd}
.syrga-thumb-syrga-salu-amulet .syrga-thumb-copy span,.syrga-thumb-syrga-salu-amulet .syrga-thumb-copy small,.syrga-thumb-syrga-salu-amulet .syrga-thumb-copy em{color:#d9b77d}
.syrga-thumb-syrga-salu-pearl{background:linear-gradient(180deg,#f7faf8,#e9f0ed);color:#3f4e50}
.syrga-thumb-syrga-salu-pearl .syrga-thumb-photo{width:68%;height:54%;left:16%;top:18%;border-radius:50%;filter:saturate(.76) contrast(.98);box-shadow:0 0 0 14px rgba(255,255,255,.72),0 0 0 15px rgba(89,107,104,.08),0 22px 42px rgba(71,89,86,.12)}
.syrga-thumb-syrga-salu-pearl .syrga-thumb-art{background:radial-gradient(circle at 12% 16%,#fff 0 7%,transparent 7.4%),radial-gradient(circle at 84% 22%,#dce7e4 0 8%,transparent 8.4%),radial-gradient(circle at 17% 78%,#e2ece9 0 5%,transparent 5.4%),radial-gradient(circle at 86% 80%,#fff 0 6%,transparent 6.4%)}
.syrga-thumb-syrga-salu-pearl .syrga-thumb-art:after{content:"";position:absolute;inset:8%;border:1px solid rgba(93,111,108,.12);border-radius:999px}
.syrga-thumb-syrga-salu-pearl .syrga-thumb-copy{inset:6% 8%;text-align:left;grid-template-rows:auto auto 1fr auto auto}
.syrga-thumb-syrga-salu-pearl .syrga-thumb-copy strong{font-size:clamp(23px,2.8vw,34px);max-width:8ch}
.syrga-thumb-syrga-salu-pearl .syrga-thumb-copy span,.syrga-thumb-syrga-salu-pearl .syrga-thumb-copy small,.syrga-thumb-syrga-salu-pearl .syrga-thumb-copy em{color:#758583}
.syrga-thumb-syrga-salu-pearl .syrga-thumb-copy small{grid-row:4;color:#b59b73}
.syrga-thumb-syrga-salu-pearl .syrga-thumb-copy em{grid-row:5}
.syrga-thumb-syrga-salu-velvet{background:#1d1017;color:#f6e9ef}
.syrga-thumb-syrga-salu-velvet .syrga-thumb-photo{width:62%;height:100%;left:38%;top:0;filter:saturate(.62) contrast(1.08) brightness(.72)}
.syrga-thumb-syrga-salu-velvet .syrga-thumb-art{background:linear-gradient(90deg,#211019 0 42%,rgba(33,16,25,.84) 51%,rgba(33,16,25,.06) 75%)}
.syrga-thumb-syrga-salu-velvet .syrga-thumb-art:before{content:"";position:absolute;left:7%;top:9%;bottom:9%;width:1px;background:#c19a68}
.syrga-thumb-syrga-salu-velvet .syrga-thumb-copy{left:10%;top:12%;bottom:10%;width:46%;align-content:center}
.syrga-thumb-syrga-salu-velvet .syrga-thumb-copy span,.syrga-thumb-syrga-salu-velvet .syrga-thumb-copy small,.syrga-thumb-syrga-salu-velvet .syrga-thumb-copy em{color:#c9a373}
.syrga-thumb-syrga-salu-velvet .syrga-thumb-copy strong{font-size:clamp(28px,3.5vw,44px);line-height:.86}
.template-card:hover .syrga-thumb-photo{transform:scale(1.025)}

/* ============================
   Stage 5 — Tusaukeser collection
   Samal v2 / Steppe v2 / Sunbeam v2
   ============================ */

/* ---------- Samal v2: airy family story ---------- */
.tus-samal-v2 {
  --ts-samal-bg:#eef5ef;
  --ts-samal-paper:#fffdf4;
  --ts-samal-ink:#35534a;
  --ts-samal-muted:#71847b;
  --ts-samal-accent:#74a68f;
  --ts-samal-sun:#e3bb61;
  background:var(--ts-samal-bg);
  color:var(--ts-samal-ink);
}


.ts-samal-label,.ts-samal-kicker {
  display:block;
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ts-samal-muted);
}
.ts-samal-name {
  font-family:"Playfair Display",serif;
  font-weight:500;
  letter-spacing:-.045em;
}




.ts-samal-hero {
  min-height:100svh;
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#eef6f2 0 68%,#f8f5e8 68% 100%);
  padding:54px 22px 84px;
}
.ts-samal-cloud { position:absolute;border-radius:50%;background:rgba(255,255,255,.74);filter:blur(1px);pointer-events:none; }
.ts-samal-cloud:before,.ts-samal-cloud:after { content:"";position:absolute;border-radius:50%;background:inherit; }
.ts-samal-cloud-a { width:220px;height:82px;left:-40px;top:10%; }
.ts-samal-cloud-a:before { width:96px;height:96px;left:48px;top:-40px; }.ts-samal-cloud-a:after { width:72px;height:72px;right:26px;top:-24px; }
.ts-samal-cloud-b { width:180px;height:66px;right:-26px;top:20%;opacity:.6; }
.ts-samal-cloud-b:before { width:80px;height:80px;left:38px;top:-34px; }.ts-samal-cloud-b:after { width:58px;height:58px;right:20px;top:-18px; }
.ts-samal-hero-grid { position:relative;z-index:2;width:min(1160px,100%);margin:0 auto;min-height:calc(100svh - 138px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.82fr);gap:clamp(28px,5vw,68px);align-items:center; }
.ts-samal-hero-copy { max-width:540px; }
.ts-samal-name { margin:14px 0 0;font-size:clamp(62px,8.5vw,122px);line-height:.88;color:var(--ts-samal-ink); }
.ts-samal-name-medium{font-size:clamp(52px,7vw,98px)}.ts-samal-name-compact{font-size:clamp(44px,5.7vw,82px)}
.ts-samal-hero-copy>p { margin:18px 0 26px;font-family:"Playfair Display",serif;font-style:italic;font-size:clamp(18px,2.3vw,24px);color:#5b756c; }
.ts-samal-meta { display:flex;flex-wrap:wrap;gap:9px 12px; }
.ts-samal-meta>* { display:inline-flex;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.65);border:1px solid rgba(53,83,74,.09); }
.ts-samal-photo-wrap { position:relative;width:min(520px,100%);aspect-ratio:4/5.15;overflow:hidden;border-radius:48% 48% 28px 28px/22% 22% 28px 28px;background:#dbeadd;box-shadow:0 34px 90px rgba(53,83,74,.15);border:14px solid rgba(255,253,244,.86); }
.ts-samal-photo-wrap img { width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9) contrast(.98); }
.ts-samal-placeholder { width:100%;height:100%;display:grid;place-items:center;font-family:"Playfair Display",serif;font-size:150px;color:rgba(53,83,74,.24); }
.ts-samal-step-path { position:absolute;left:8%;right:8%;bottom:28px;height:54px;display:flex;justify-content:center;gap:34px;align-items:center;z-index:2; }
.ts-samal-step-path i { width:13px;height:21px;border-radius:50% 50% 42% 42%;background:#6e9d89;transform:rotate(20deg);opacity:.48; }
.ts-samal-step-path i:nth-child(even){transform:rotate(-20deg) translateY(-7px)}
.ts-samal-chevron { position:absolute;right:28px;bottom:24px;color:var(--ts-samal-ink);z-index:3; }
.ts-samal-section { padding:30px 22px; }
.ts-samal-card,.ts-samal-date-grid,.ts-samal-countdown-card,.ts-samal-parents-card,.ts-samal-venue-card { width:min(940px,100%);margin:0 auto;border-radius:32px;border:1px solid rgba(53,83,74,.09);background:rgba(255,253,244,.82);box-shadow:0 20px 42px rgba(53,83,74,.06); }
.ts-samal-card,.ts-samal-parents-card,.ts-samal-venue-card { padding:36px 28px; }
.ts-samal-copy-card,.ts-samal-dress-card,.ts-samal-contact-card,.ts-samal-parents-card,.ts-samal-venue-card { text-align:center;max-width:800px; }
.ts-samal-copy-card h2,.ts-samal-dress-card h2,.ts-samal-contact-card h2,.ts-samal-parents-card h2,.ts-samal-venue-card h2,.ts-samal-gallery-head h2,.ts-samal-final-inner h2 { margin:0 0 14px;font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(32px,4.2vw,58px);letter-spacing:-.03em; }
.ts-samal-copy-card p,.ts-samal-dress-card p,.ts-samal-venue-card p { max-width:620px;margin:0 auto;color:var(--ts-samal-muted);line-height:1.85; }
.ts-samal-birth-chip { display:inline-flex;gap:9px;align-items:center;margin-top:22px;padding:10px 14px;border-radius:999px;background:#e5efe7;color:var(--ts-samal-ink);font-size:11px; }
.ts-samal-birth-chip span{text-transform:uppercase;letter-spacing:.12em;color:var(--ts-samal-muted)}
.ts-samal-date-grid { display:grid;grid-template-columns:.8fr 1.2fr;gap:18px;padding:24px;background:linear-gradient(145deg,#f8f5e7,#e5f0e8); }
.ts-samal-date-copy { display:grid;align-content:center;gap:12px;padding:20px; }
.ts-samal-date-copy h2 { margin:0;font-family:"Playfair Display",serif;font-size:clamp(42px,5vw,68px);font-weight:500;line-height:.96; }
.ts-samal-date-copy p { margin:0;color:var(--ts-samal-muted); }
.ts-samal-time { display:flex;align-items:center;gap:10px;flex-wrap:wrap;text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--ts-samal-muted); }
.ts-samal-time strong { color:var(--ts-samal-ink);font-size:18px;letter-spacing:0; }
.ts-samal-calendar { background:rgba(255,255,255,.74);border:1px solid rgba(53,83,74,.08);border-radius:24px;padding:18px;display:grid;gap:12px; }
.ts-samal-calendar-head { display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--ts-samal-muted); }
.ts-samal-calendar-head strong { color:var(--ts-samal-ink);font-size:14px; }
.ts-samal-calendar-weekdays,.ts-samal-calendar-grid { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px; }
.ts-samal-calendar-weekdays span,.ts-samal-calendar-grid span { display:grid;place-items:center;min-height:38px;border-radius:11px; }
.ts-samal-calendar-weekdays span { font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ts-samal-muted); }
.ts-samal-calendar-grid span { background:rgba(255,255,255,.88);border:1px solid rgba(53,83,74,.07);font-size:13px; }
.ts-samal-calendar-grid .is-muted{opacity:.26}.ts-samal-calendar-grid .is-active{background:var(--ts-samal-accent);color:#fff;border-color:transparent;box-shadow:0 10px 22px rgba(116,166,143,.28)}
.ts-samal-countdown-card { padding:34px 28px;text-align:center;background:linear-gradient(145deg,#dceee7,#f8f4e6); }
.ts-samal-countdown-card .countdown { display:grid;grid-template-columns:repeat(4,1fr);gap:12px; }
.ts-samal-countdown-card .countdown div { border-radius:999px;background:rgba(255,255,255,.7)!important;aspect-ratio:1;display:grid;place-content:center;border:1px solid rgba(53,83,74,.08); }
.ts-samal-countdown-card .countdown strong { font-family:"Playfair Display",serif;font-size:clamp(30px,5vw,54px); }
.ts-samal-parents-card { background:linear-gradient(145deg,#fffdf4,#edf4ec); }
.ts-samal-parents { display:grid;gap:7px;margin-top:18px; }
.ts-samal-parents span { text-transform:uppercase;letter-spacing:.18em;font-size:10px;color:var(--ts-samal-muted); }
.ts-samal-parents strong { font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(28px,4vw,46px); }
.ts-samal-venue-card svg { color:var(--ts-samal-accent);margin-bottom:12px; }
.ts-samal-venue-card a,.ts-samal-contact-card a { display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border-radius:999px;background:var(--ts-samal-ink);color:white;text-decoration:none; }
.ts-samal-program-shell,.ts-samal-gallery-shell { width:min(980px,100%);margin:0 auto; }
.ts-samal-program-kicker,.ts-samal-gallery-head { text-align:center;margin-bottom:18px; }
.ts-samal-steps { display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch; }
.ts-samal-step { position:relative;padding:30px 22px 24px;border-radius:50% 50% 26px 26px/18% 18% 26px 26px;background:#fffdf4;border:1px solid rgba(53,83,74,.08);text-align:center;box-shadow:0 18px 34px rgba(53,83,74,.06); }
.ts-samal-step>span { display:grid;place-items:center;width:36px;height:36px;border-radius:50%;margin:0 auto 14px;background:#dbece4;color:var(--ts-samal-ink);font-size:10px; }
.ts-samal-step strong { display:block;font-size:20px;margin-bottom:8px; }.ts-samal-step p{margin:0;color:var(--ts-samal-muted);line-height:1.5}
.ts-samal-gallery-head { text-align:center; }.ts-samal-gallery-grid { display:grid;grid-template-columns:repeat(12,1fr);gap:14px; }
.ts-samal-photo { margin:0;overflow:hidden;border-radius:30px;background:#dceade;box-shadow:0 16px 30px rgba(53,83,74,.08); }
.ts-samal-photo img { width:100%;height:100%;min-height:240px;object-fit:cover;display:block; }
.ts-samal-photo-0{grid-column:span 7;min-height:360px;border-radius:120px 30px 30px 30px}.ts-samal-photo-1{grid-column:span 5;min-height:320px}.ts-samal-photo-2{grid-column:span 4}.ts-samal-photo-3{grid-column:span 4}.ts-samal-photo-4{grid-column:span 4}.ts-samal-photo-5{grid-column:span 5}.ts-samal-photo-6{grid-column:span 7}.ts-samal-photo-7{grid-column:3/span 8;min-height:310px;border-radius:30px 120px 30px 30px}
.ts-samal-swatches { display:flex;justify-content:center;gap:10px;margin-top:20px; }.ts-samal-swatches i{width:34px;height:34px;border-radius:50%;background:#eef3dd}.ts-samal-swatches i:nth-child(2){background:#d7e9df}.ts-samal-swatches i:nth-child(3){background:#a9c8b8}.ts-samal-swatches i:nth-child(4){background:#e1bd71}.ts-samal-swatches i:nth-child(5){background:#526f65}
.ts-samal-final { position:relative;overflow:hidden;min-height:70svh;display:grid;place-items:center;padding:56px 22px;background:linear-gradient(180deg,#e3f1e8,#f8f0d9); }
.ts-samal-final-inner { position:relative;z-index:2;text-align:center;width:min(780px,100%); }
.ts-samal-sun { width:150px;height:150px;border-radius:50%;margin:0 auto 24px;background:radial-gradient(circle,#fff3b5 0,#e6bd5f 68%,#d7aa44 100%);box-shadow:0 0 0 30px rgba(227,187,97,.1),0 0 0 70px rgba(227,187,97,.05); }
.ts-samal-final-inner p{margin:18px 0 0}.ts-samal-final-inner small{display:block;margin-top:16px;color:var(--ts-samal-muted)}
.ts-samal-photo { opacity:1!important;filter:none!important; }

/* ---------- Steppe v2: warm journey / editorial ---------- */
.tus-steppe-v2 { --ts-step-bg:#e9dfcd;--ts-step-paper:#f7efdf;--ts-step-ink:#554532;--ts-step-muted:#80715d;--ts-step-accent:#9b7448;--ts-step-dark:#574733;background:var(--ts-step-bg);color:var(--ts-step-ink); }



.ts-steppe-label,.ts-steppe-kicker { display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ts-step-muted); }
.ts-steppe-name{ font-family:"Playfair Display",serif;font-weight:500;letter-spacing:-.045em; }
.ts-steppe-hero { min-height:100svh;position:relative;overflow:hidden;background:#c9b48f; }
.ts-steppe-hero-photo { position:absolute;inset:0; }.ts-steppe-hero-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.72) contrast(.94) sepia(.08)}.ts-steppe-hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(58,47,35,.75) 0,rgba(58,47,35,.28) 46%,rgba(58,47,35,.08) 72%),linear-gradient(180deg,transparent 58%,rgba(56,44,31,.34));}
.ts-steppe-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#c9b48f,#9c805d);font-family:"Playfair Display",serif;font-size:160px;color:rgba(255,255,255,.25)}
.ts-steppe-horizon{position:absolute;left:-5%;right:-5%;bottom:0;height:32%;z-index:2;background:linear-gradient(180deg,transparent,#876c49 8%,#6e583c 60%,#544430);clip-path:polygon(0 60%,14% 46%,29% 54%,44% 30%,59% 48%,74% 35%,88% 46%,100% 28%,100% 100%,0 100%);opacity:.72;pointer-events:none}
.ts-steppe-hero-copy { position:relative;z-index:3;width:min(1160px,calc(100% - 50px));margin:0 auto;min-height:100svh;display:grid;align-content:center;justify-items:start;color:#fff8ea;text-shadow:0 2px 22px rgba(0,0,0,.18); }
.ts-steppe-name { margin:14px 0 0;font-size:clamp(64px,10vw,132px);line-height:.86;color:#fff8ea;max-width:7ch; }.ts-steppe-name-medium{font-size:clamp(54px,8vw,105px)}.ts-steppe-name-compact{font-size:clamp(46px,6.4vw,86px)}
.ts-steppe-hero-copy>p{font-size:13px;letter-spacing:.18em;text-transform:uppercase;margin:18px 0 22px}.ts-steppe-meta{display:flex;gap:10px 14px;flex-wrap:wrap}.ts-steppe-meta>*{padding:9px 13px;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.08);backdrop-filter:blur(8px);font-size:12px}
.ts-steppe-route { position:absolute;left:7%;bottom:7%;z-index:4;display:flex;align-items:center;gap:22px; }.ts-steppe-route:before{content:"";position:absolute;left:4px;right:4px;height:1px;background:rgba(255,248,234,.52)}.ts-steppe-route i{position:relative;z-index:1;width:10px;height:10px;border:2px solid #fff8ea;border-radius:50%;background:#7a6243}.ts-steppe-route i:nth-child(3){width:18px;height:18px;background:#d3ad6c}.ts-steppe-chevron{position:absolute;right:26px;bottom:24px;color:#fff8ea;z-index:4}
.ts-steppe-section{padding:30px 22px}.ts-steppe-note,.ts-steppe-date-marker,.ts-steppe-countdown-wrap,.ts-steppe-family-band,.ts-steppe-location{width:min(900px,100%);margin:0 auto;border:1px solid rgba(85,69,50,.11);background:rgba(247,239,223,.87);box-shadow:0 18px 38px rgba(85,69,50,.07)}
.ts-steppe-note{padding:36px 28px;max-width:800px;text-align:center}.ts-steppe-note h2,.ts-steppe-family-band h2,.ts-steppe-location h2,.ts-steppe-gallery-head h2,.ts-steppe-final-inner h2{margin:0 0 14px;font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(32px,4.2vw,58px);letter-spacing:-.03em}.ts-steppe-note p,.ts-steppe-location p{max-width:620px;margin:0 auto;color:var(--ts-step-muted);line-height:1.85}.ts-steppe-born{display:inline-flex;gap:10px;margin-top:22px;padding:10px 14px;border:1px solid rgba(85,69,50,.12);font-size:11px}.ts-steppe-born span{text-transform:uppercase;letter-spacing:.12em;color:var(--ts-step-muted)}
.ts-steppe-date-marker{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:30px 34px;border-radius:0;border-left:8px solid var(--ts-step-accent)}.ts-steppe-date-marker>strong{font-family:"Playfair Display",serif;font-size:clamp(90px,15vw,150px);line-height:.78;font-weight:500}.ts-steppe-date-marker h2{margin:4px 0 2px;font-family:"Playfair Display",serif;font-size:clamp(34px,4vw,52px);font-weight:500}.ts-steppe-date-marker p{margin:0;color:var(--ts-step-muted)}.ts-steppe-date-marker b{display:inline-block;margin-top:10px;padding:8px 12px;background:var(--ts-step-dark);color:#fff;font-size:14px;letter-spacing:.08em}
.ts-steppe-countdown-wrap{padding:34px 28px;text-align:center;background:linear-gradient(145deg,#e7d8be,#f7efdf)}.ts-steppe-countdown-wrap .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ts-steppe-countdown-wrap .countdown div{border-radius:0;background:rgba(255,255,255,.42)!important;border:1px solid rgba(85,69,50,.11);padding:22px 8px}.ts-steppe-countdown-wrap .countdown strong{font-family:"Playfair Display",serif;font-size:clamp(32px,5vw,58px)}
.ts-steppe-family-band{position:relative;padding:38px 28px;text-align:center;overflow:hidden}.ts-steppe-band-edge{position:absolute;left:0;right:0;top:0;height:12px;background:repeating-linear-gradient(90deg,#8d6d45 0 14px,#d6bd91 14px 28px,#6d5539 28px 42px,#d9c6a2 42px 56px)}.ts-steppe-parents{display:grid;gap:8px;margin-top:16px}.ts-steppe-parents span{text-transform:uppercase;letter-spacing:.18em;font-size:10px;color:var(--ts-step-muted)}.ts-steppe-parents strong{font-family:"Playfair Display",serif;font-size:clamp(28px,4vw,46px);font-weight:500}
.ts-steppe-location{max-width:760px;padding:36px 28px;text-align:left;border-radius:0}.ts-steppe-location svg{color:var(--ts-step-accent);margin-bottom:12px}.ts-steppe-location a,.ts-steppe-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:11px 16px;background:var(--ts-step-dark);color:white;text-decoration:none}
.ts-steppe-program-shell,.ts-steppe-gallery-shell{width:min(980px,100%);margin:0 auto}.ts-steppe-program-kicker,.ts-steppe-gallery-head{text-align:center;margin-bottom:20px}.ts-steppe-path-list{position:relative;display:grid;gap:0;max-width:760px;margin:0 auto}.ts-steppe-path-list:before{content:"";position:absolute;left:35px;top:20px;bottom:20px;width:1px;background:rgba(85,69,50,.24)}.ts-steppe-path-item{display:grid;grid-template-columns:70px 90px 1fr;gap:14px;align-items:center;position:relative;padding:18px 0}.ts-steppe-path-dot{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;margin-left:17px;background:var(--ts-step-paper);border:1px solid rgba(85,69,50,.18);font-size:9px}.ts-steppe-path-item strong{font-size:18px}.ts-steppe-path-item p{margin:0;color:var(--ts-step-muted)}
.ts-steppe-gallery-head{text-align:left}.ts-steppe-gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:start}.ts-steppe-photo{position:relative;margin:0;overflow:hidden;background:#d5c4a6;border:10px solid #f7efdf;box-shadow:0 16px 30px rgba(85,69,50,.11)}.ts-steppe-photo img{width:100%;height:100%;min-height:240px;object-fit:cover;display:block;filter:saturate(.82) contrast(.98)}.ts-steppe-photo figcaption{position:absolute;right:10px;bottom:10px;font-size:9px;letter-spacing:.16em;color:white;text-shadow:0 1px 8px rgba(0,0,0,.4)}.ts-steppe-photo-0{grid-column:1/span 7;min-height:380px;transform:rotate(-1.2deg)}.ts-steppe-photo-1{grid-column:8/span 5;min-height:320px;transform:rotate(1.2deg)}.ts-steppe-photo-2{grid-column:2/span 4;min-height:270px}.ts-steppe-photo-3{grid-column:6/span 6;min-height:330px;transform:rotate(-.7deg)}.ts-steppe-photo-4{grid-column:1/span 5;min-height:300px}.ts-steppe-photo-5{grid-column:6/span 7;min-height:350px;transform:rotate(.8deg)}.ts-steppe-photo-6{grid-column:2/span 5;min-height:280px}.ts-steppe-photo-7{grid-column:7/span 5;min-height:280px}
.ts-steppe-swatches{display:flex;justify-content:center;gap:10px;margin-top:20px}.ts-steppe-swatches i{width:34px;height:34px;border-radius:2px;background:#eadcc2}.ts-steppe-swatches i:nth-child(2){background:#d8c19c}.ts-steppe-swatches i:nth-child(3){background:#b7905d}.ts-steppe-swatches i:nth-child(4){background:#8a6c49}.ts-steppe-swatches i:nth-child(5){background:#554532}
.ts-steppe-final{position:relative;overflow:hidden;min-height:72svh;display:grid;place-items:center;padding:60px 22px;background:linear-gradient(180deg,#b79668,#6b563d);color:#fff8ea}.ts-steppe-final-horizon{width:100%;height:190px;margin-bottom:18px;background:linear-gradient(180deg,transparent,#5c4934 10%,#493a2a);clip-path:polygon(0 60%,18% 42%,34% 55%,50% 25%,65% 52%,80% 38%,100% 60%,100% 100%,0 100%);opacity:.84}.ts-steppe-final-inner{text-align:center;width:min(780px,100%)}.ts-steppe-final-inner h2{color:#fff8ea}.ts-steppe-final-inner p{margin:18px 0 0;color:#fff8ea}.ts-steppe-final-inner small{display:block;margin-top:16px;opacity:.58}.ts-steppe-photo{opacity:1!important;filter:none!important}

/* ---------- Sunbeam v2: playful child-first direction ---------- */
.tus-sunbeam-v2 { --ts-sun-bg:#fff3bf;--ts-sun-paper:#fffdf5;--ts-sun-ink:#283b48;--ts-sun-muted:#6f7071;--ts-sun-orange:#f2995b;--ts-sun-blue:#7db8c7;--ts-sun-yellow:#f2c94c;--ts-sun-coral:#ef7768;background:var(--ts-sun-bg);color:var(--ts-sun-ink); }


.ts-sun-label,.ts-sun-kicker{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#68717a}.ts-sun-name{font-family:"Arial Rounded MT Bold","Arial",sans-serif;font-weight:900;letter-spacing:-.06em}
.ts-sun-hero{min-height:100svh;position:relative;overflow:hidden;background:linear-gradient(180deg,#fff3b9 0 58%,#dceef2 58% 100%);padding:50px 22px 82px}.ts-sun-disc{position:absolute;width:min(50vmin,430px);aspect-ratio:1;border-radius:50%;right:6vw;top:9vh;background:radial-gradient(circle,#fff3a6,#f2c94c);box-shadow:0 0 0 32px rgba(242,201,76,.12),0 0 0 70px rgba(242,201,76,.06)}.ts-sun-cloud{position:absolute;width:180px;height:58px;border-radius:999px;background:#fff;opacity:.84}.ts-sun-cloud:before,.ts-sun-cloud:after{content:"";position:absolute;border-radius:50%;background:#fff}.ts-sun-cloud-a{left:-30px;top:18%}.ts-sun-cloud-a:before{width:76px;height:76px;left:34px;top:-34px}.ts-sun-cloud-a:after{width:58px;height:58px;right:26px;top:-22px}.ts-sun-cloud-b{right:-40px;bottom:20%;opacity:.68}.ts-sun-cloud-b:before{width:70px;height:70px;left:30px;top:-30px}.ts-sun-cloud-b:after{width:52px;height:52px;right:24px;top:-18px}.ts-sun-doodle{position:absolute;z-index:3;font-size:42px;color:var(--ts-sun-coral)}.ts-sun-doodle-a{left:7%;top:11%;transform:rotate(-15deg)}.ts-sun-doodle-b{right:10%;bottom:14%;color:var(--ts-sun-blue);font-size:28px}
.ts-sun-photo-card{position:absolute;right:8vw;top:17vh;width:min(42vw,480px);height:62vh;overflow:hidden;border:10px solid #fff;border-radius:34px;box-shadow:14px 14px 0 var(--ts-sun-blue);transform:rotate(4deg);z-index:2}.ts-sun-photo-card img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.03)}.ts-sun-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#ffd774,#ef8c65);font-size:150px;font-family:"Arial",sans-serif;font-weight:900;color:rgba(255,255,255,.6)}
.ts-sun-hero-copy{position:relative;z-index:4;width:min(1120px,calc(100% - 50px));margin:0 auto;min-height:100svh;display:grid;align-content:center;justify-items:start}.ts-sun-name{margin:12px 0 0;font-size:clamp(68px,10vw,138px);line-height:.8;max-width:5.7ch;color:var(--ts-sun-ink);text-shadow:5px 5px 0 rgba(255,255,255,.65)}.ts-sun-name-medium{font-size:clamp(56px,8vw,110px)}.ts-sun-name-compact{font-size:clamp(46px,6.4vw,86px)}.ts-sun-hero-copy>p{font-size:clamp(18px,2.6vw,28px);font-weight:700;margin:20px 0}.ts-sun-meta{display:flex;gap:9px 12px;flex-wrap:wrap}.ts-sun-meta>*{padding:9px 13px;border:2px solid var(--ts-sun-ink);border-radius:999px;background:#fffdf5;font-size:11px;box-shadow:3px 3px 0 rgba(40,59,72,.14)}.ts-sun-chevron{position:absolute;right:26px;bottom:24px;z-index:5;color:var(--ts-sun-ink)}
.ts-sun-section{padding:30px 22px}.ts-sun-bubble-card,.ts-sun-map-card,.ts-sun-date-blocks,.ts-sun-countdown-wrap{width:min(900px,100%);margin:0 auto}.ts-sun-bubble-card,.ts-sun-map-card{padding:34px 28px;border:3px solid var(--ts-sun-ink);border-radius:34px;background:var(--ts-sun-paper);box-shadow:9px 9px 0 rgba(125,184,199,.85);text-align:center}.ts-sun-copy-card h2,.ts-sun-parents-card h2,.ts-sun-map-card h2,.ts-sun-dress-card h2,.ts-sun-contact-card h2,.ts-sun-gallery-head h2,.ts-sun-final-inner h2{margin:0 0 14px;font-family:"Arial Rounded MT Bold","Arial",sans-serif;font-weight:900;font-size:clamp(32px,4.5vw,60px);letter-spacing:-.04em}.ts-sun-copy-card p,.ts-sun-map-card p,.ts-sun-dress-card p{max-width:620px;margin:0 auto;line-height:1.75;color:#657077}.ts-sun-birth-sticker{display:inline-flex;gap:9px;align-items:center;margin-top:20px;padding:10px 14px;border-radius:999px;background:var(--ts-sun-yellow);border:2px solid var(--ts-sun-ink);font-size:11px;transform:rotate(-2deg)}.ts-sun-birth-sticker span{text-transform:uppercase;letter-spacing:.1em}
.ts-sun-date-blocks{display:grid;grid-template-columns:1fr 1fr .72fr;gap:14px}.ts-sun-date-tile{min-height:190px;padding:24px;display:grid;align-content:center;justify-items:center;text-align:center;border:3px solid var(--ts-sun-ink);border-radius:28px;box-shadow:8px 8px 0 rgba(40,59,72,.12)}.ts-sun-date-day{background:#fffdf5}.ts-sun-date-month{background:#7db8c7;color:#fff}.ts-sun-date-time{background:#ef7768;color:#fff}.ts-sun-date-tile small,.ts-sun-date-tile span{text-transform:uppercase;letter-spacing:.12em;font-size:10px}.ts-sun-date-day strong{font-size:clamp(78px,12vw,120px);line-height:.8}.ts-sun-date-month span{font-size:clamp(24px,3vw,36px);letter-spacing:0;text-transform:none;font-family:"Arial Rounded MT Bold","Arial",sans-serif;font-weight:900}.ts-sun-date-month b{font-size:20px}.ts-sun-date-time strong{font-size:clamp(36px,5vw,60px)}
.ts-sun-countdown-wrap{padding:34px 28px;text-align:center;border-radius:38px;background:#dceef2}.ts-sun-countdown-wrap .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ts-sun-countdown-wrap .countdown div{aspect-ratio:1;border-radius:50%;display:grid;place-content:center;border:3px solid var(--ts-sun-ink);background:#fffdf5!important;box-shadow:5px 5px 0 rgba(40,59,72,.12)}.ts-sun-countdown-wrap .countdown div:nth-child(2){background:#f2c94c!important}.ts-sun-countdown-wrap .countdown div:nth-child(3){background:#ef7768!important;color:#fff}.ts-sun-countdown-wrap .countdown div:nth-child(4){background:#7db8c7!important;color:#fff}.ts-sun-countdown-wrap .countdown strong{font-family:"Arial Rounded MT Bold","Arial",sans-serif;font-size:clamp(30px,5vw,56px)}
.ts-sun-parents{display:grid;gap:8px;margin-top:18px}.ts-sun-parents span{text-transform:uppercase;letter-spacing:.16em;font-size:10px}.ts-sun-parents strong{font-size:clamp(26px,4vw,44px)}.ts-sun-map-card{max-width:760px;box-shadow:9px 9px 0 var(--ts-sun-coral)}.ts-sun-map-pin{width:58px;height:58px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:var(--ts-sun-yellow);border:3px solid var(--ts-sun-ink)}.ts-sun-map-card a,.ts-sun-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border:3px solid var(--ts-sun-ink);border-radius:999px;background:#fff;color:var(--ts-sun-ink);text-decoration:none;box-shadow:5px 5px 0 var(--ts-sun-blue)}
.ts-sun-program-shell,.ts-sun-gallery-shell{width:min(980px,100%);margin:0 auto}.ts-sun-program-kicker,.ts-sun-gallery-head{text-align:center;margin-bottom:20px}.ts-sun-program-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.ts-sun-program-card{padding:24px 20px;border:3px solid var(--ts-sun-ink);border-radius:30px;background:#fffdf5;box-shadow:7px 7px 0 rgba(40,59,72,.12);text-align:center}.ts-sun-program-card-1{background:#f7d96f}.ts-sun-program-card-2{background:#96cbd6}.ts-sun-program-card-3{background:#f39a7f}.ts-sun-program-card>span{display:inline-grid;place-items:center;width:34px;height:34px;border:2px solid currentColor;border-radius:50%;font-size:10px}.ts-sun-program-card strong{display:block;margin:12px 0 8px;font-size:20px}.ts-sun-program-card p{margin:0;line-height:1.5}
.ts-sun-gallery-head{text-align:left}.ts-sun-gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.ts-sun-photo{position:relative;margin:0;overflow:hidden;border:8px solid white;border-radius:26px;box-shadow:9px 9px 0 rgba(40,59,72,.1);background:#fff}.ts-sun-photo img{width:100%;height:100%;min-height:230px;object-fit:cover;display:block}.ts-sun-photo figcaption{position:absolute;right:10px;bottom:8px;font-size:20px;color:var(--ts-sun-coral);text-shadow:0 1px 3px rgba(255,255,255,.8)}.ts-sun-photo-0{grid-column:span 7;min-height:360px;transform:rotate(-2deg)}.ts-sun-photo-1{grid-column:span 5;min-height:320px;transform:rotate(2deg)}.ts-sun-photo-2{grid-column:span 4;transform:rotate(1deg)}.ts-sun-photo-3{grid-column:span 4;transform:rotate(-1.5deg)}.ts-sun-photo-4{grid-column:span 4;transform:rotate(2deg)}.ts-sun-photo-5{grid-column:span 5}.ts-sun-photo-6{grid-column:span 7;transform:rotate(-1deg)}.ts-sun-photo-7{grid-column:3/span 8;min-height:310px;transform:rotate(1.5deg)}
.ts-sun-swatches{display:flex;justify-content:center;gap:10px;margin-top:20px}.ts-sun-swatches i{width:34px;height:34px;border:3px solid var(--ts-sun-ink);border-radius:50%;background:#fff4be}.ts-sun-swatches i:nth-child(2){background:#f2c94c}.ts-sun-swatches i:nth-child(3){background:#7db8c7}.ts-sun-swatches i:nth-child(4){background:#ef7768}.ts-sun-swatches i:nth-child(5){background:#fffdf5}
.ts-sun-final{min-height:72svh;position:relative;overflow:hidden;display:grid;place-items:center;padding:60px 22px;background:linear-gradient(180deg,#dceef2,#fff3bf)}.ts-sun-final-inner{text-align:center;width:min(780px,100%);position:relative;z-index:2}.ts-sun-final-disc{width:170px;height:170px;border-radius:50%;margin:0 auto 20px;background:#f2c94c;box-shadow:0 0 0 24px rgba(242,201,76,.16),0 0 0 54px rgba(242,201,76,.08)}.ts-sun-final-inner>span{display:inline-block;padding:8px 12px;border:2px solid var(--ts-sun-ink);border-radius:999px;background:#fff;font-weight:700;letter-spacing:.1em;font-size:10px;transform:rotate(-2deg)}.ts-sun-final-inner p{margin:18px 0 0}.ts-sun-final-inner small{display:block;margin-top:16px;color:#68717a}.ts-sun-photo{opacity:1!important;filter:none!important}

/* ---------- catalog thumbnails for Tusaukeser ---------- */
.tusau-thumb{position:relative;width:100%;height:100%;min-height:100%;overflow:hidden;background:#f5efe1;color:#2c3c42}.tusau-thumb-photo{position:absolute;width:100%;height:100%;object-fit:cover}.tusau-thumb-art{position:absolute;inset:0;pointer-events:none}.tusau-thumb-copy{position:absolute;z-index:3;display:grid;gap:5px}.tusau-thumb-copy span{font-size:9px;letter-spacing:.18em;text-transform:uppercase}.tusau-thumb-copy strong{font-size:clamp(26px,4vw,48px);line-height:.9}.tusau-thumb-copy small{font-size:10px;text-transform:uppercase;letter-spacing:.12em}.tusau-thumb-copy em{font-size:10px;font-style:normal}
.tusau-thumb-tusaukeser-samal{background:linear-gradient(180deg,#e9f3ed,#f8f1dc)}.tusau-thumb-tusaukeser-samal .tusau-thumb-photo{width:60%;height:78%;right:5%;top:8%;border-radius:44% 44% 22px 22px/20% 20% 22px 22px;border:8px solid #fff;box-shadow:0 12px 28px rgba(53,83,74,.12)}.tusau-thumb-tusaukeser-samal .tusau-thumb-art{background:radial-gradient(circle at 15% 18%,#fff 0 8%,transparent 9%),radial-gradient(circle at 82% 12%,rgba(227,187,97,.25) 0 11%,transparent 12%)}.tusau-thumb-tusaukeser-samal .tusau-thumb-copy{left:6%;bottom:8%;max-width:54%;color:#35534a}.tusau-thumb-tusaukeser-samal .tusau-thumb-copy strong{font-family:"Playfair Display",serif;font-weight:500}
.tusau-thumb-tusaukeser-steppe{background:#bd9e70}.tusau-thumb-tusaukeser-steppe .tusau-thumb-photo{inset:0;filter:saturate(.72) sepia(.08)}.tusau-thumb-tusaukeser-steppe .tusau-thumb-art{background:linear-gradient(90deg,rgba(62,48,33,.72),rgba(62,48,33,.14) 70%),linear-gradient(180deg,transparent 55%,rgba(62,48,33,.42))}.tusau-thumb-tusaukeser-steppe .tusau-thumb-copy{left:7%;top:12%;color:#fff8ea;max-width:64%;text-shadow:0 2px 15px rgba(0,0,0,.18)}.tusau-thumb-tusaukeser-steppe .tusau-thumb-copy strong{font-family:"Playfair Display",serif;font-weight:500}
.tusau-thumb-tusaukeser-sunbeam{background:linear-gradient(180deg,#fff0aa 0 62%,#dcecf2 62%)}.tusau-thumb-tusaukeser-sunbeam .tusau-thumb-photo{width:58%;height:70%;right:7%;top:15%;border:7px solid white;border-radius:24px;transform:rotate(4deg);box-shadow:8px 8px 0 #7db8c7}.tusau-thumb-tusaukeser-sunbeam .tusau-thumb-art:before{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:2%;top:5%;background:#f2c94c;box-shadow:0 0 0 16px rgba(242,201,76,.14)}.tusau-thumb-tusaukeser-sunbeam .tusau-thumb-art:after{content:"✦";position:absolute;left:7%;top:12%;font-size:28px;color:#ef7768}.tusau-thumb-tusaukeser-sunbeam .tusau-thumb-copy{left:6%;bottom:9%;max-width:50%;color:#283b48}.tusau-thumb-tusaukeser-sunbeam .tusau-thumb-copy strong{font-family:"Arial Rounded MT Bold","Arial",sans-serif;font-weight:900;letter-spacing:-.05em}

@media (max-width:900px){
  .ts-samal-hero-grid{grid-template-columns:1fr;min-height:auto}.ts-samal-hero-copy{text-align:center;max-width:none}.ts-samal-meta{justify-content:center}.ts-samal-photo-wrap{margin:auto}.ts-samal-date-grid{grid-template-columns:1fr}.ts-samal-steps{grid-template-columns:1fr 1fr}.ts-samal-gallery-grid,.ts-steppe-gallery-grid,.ts-sun-gallery-grid{grid-template-columns:1fr 1fr}.ts-samal-photo,.ts-samal-photo-0,.ts-samal-photo-1,.ts-samal-photo-2,.ts-samal-photo-3,.ts-samal-photo-4,.ts-samal-photo-5,.ts-samal-photo-6,.ts-samal-photo-7,.ts-steppe-photo,.ts-steppe-photo-0,.ts-steppe-photo-1,.ts-steppe-photo-2,.ts-steppe-photo-3,.ts-steppe-photo-4,.ts-steppe-photo-5,.ts-steppe-photo-6,.ts-steppe-photo-7,.ts-sun-photo,.ts-sun-photo-0,.ts-sun-photo-1,.ts-sun-photo-2,.ts-sun-photo-3,.ts-sun-photo-4,.ts-sun-photo-5,.ts-sun-photo-6,.ts-sun-photo-7{grid-column:auto!important;min-height:260px;transform:none}.ts-steppe-gallery-head,.ts-sun-gallery-head{text-align:center}.ts-sun-photo-card{width:48vw;right:4vw}.ts-sun-program-cards{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .ts-samal-hero,.ts-sun-hero{padding-inline:14px}.ts-samal-name,.ts-steppe-name,.ts-sun-name{font-size:clamp(44px,13vw,72px)}.ts-samal-card,.ts-samal-date-grid,.ts-samal-countdown-card,.ts-samal-parents-card,.ts-samal-venue-card,.ts-steppe-note,.ts-steppe-date-marker,.ts-steppe-countdown-wrap,.ts-steppe-family-band,.ts-steppe-location,.ts-sun-bubble-card,.ts-sun-map-card,.ts-sun-date-blocks,.ts-sun-countdown-wrap{border-radius:22px}.ts-samal-date-grid,.ts-steppe-date-marker,.ts-sun-date-blocks{grid-template-columns:1fr}.ts-samal-countdown-card .countdown,.ts-steppe-countdown-wrap .countdown,.ts-sun-countdown-wrap .countdown{grid-template-columns:repeat(2,1fr)}.ts-samal-steps,.ts-sun-program-cards{grid-template-columns:1fr}.ts-samal-gallery-grid,.ts-steppe-gallery-grid,.ts-sun-gallery-grid{grid-template-columns:1fr}.ts-samal-photo,.ts-steppe-photo,.ts-sun-photo{min-height:220px!important}.ts-steppe-hero-copy{width:calc(100% - 30px);align-content:end;padding-bottom:18vh}.ts-steppe-hero-copy>p{font-size:11px}.ts-steppe-path-item{grid-template-columns:56px 72px 1fr;gap:8px}.ts-steppe-path-list:before{left:28px}.ts-steppe-path-dot{margin-left:10px}.ts-sun-photo-card{width:calc(100% - 36px);left:18px;right:auto;top:90px;height:44svh}.ts-sun-hero-copy{width:calc(100% - 28px);align-content:end;padding-bottom:6vh;min-height:100svh}.ts-sun-hero-copy>p{font-size:18px}.ts-sun-date-tile{min-height:145px}.ts-sun-disc{width:180px;right:-30px;top:40px}
}

/* ============================
   Stage 6 — Birthday collection pass
   Cumulative from stages 1–5
   ============================ */

/* --- Birthday Pop v2 --- */
.birthday-pop-v2 { --bdp-bg:#f5f0e4;--bdp-ink:#16243b;--bdp-red:#ef6459;--bdp-yellow:#f0c95c;--bdp-blue:#4f7ca5;--bdp-paper:#fffaf0;background:var(--bdp-bg);color:var(--bdp-ink); }
.bd-pop-label,.bd-pop-kicker{display:block;font-size:10px;letter-spacing:.23em;text-transform:uppercase;font-weight:800}.bd-pop-gate-age{display:block;color:var(--bdp-yellow);font-size:54px;line-height:1}
.bd-pop-hero{position:relative;min-height:100svh;overflow:hidden;background:var(--bdp-paper);display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch}.bd-pop-block{position:absolute;z-index:0;pointer-events:none}.bd-pop-block-a{left:-9vw;top:0;width:36vw;height:26vh;background:var(--bdp-yellow);transform:rotate(-8deg)}.bd-pop-block-b{right:-8vw;bottom:-8vh;width:38vw;height:28vh;background:var(--bdp-red);transform:rotate(8deg)}.bd-pop-photo{grid-column:2;position:relative;z-index:1;margin:7vh 5vw 7vh 0;overflow:hidden;border-radius:0 0 0 120px;background:#d7d0c5;box-shadow:-22px 24px 0 rgba(22,36,59,.08)}.bd-pop-photo img{width:100%;height:100%;object-fit:cover}.bd-pop-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:150px;font-weight:900;background:linear-gradient(145deg,#d8c5aa,#b4c9d8);color:#fff}.bd-pop-hero-copy{grid-column:1;grid-row:1;position:relative;z-index:3;align-self:center;padding:8vh 4vw 8vh 8vw;max-width:760px}.bd-pop-label{color:var(--bdp-red)}.bd-pop-name{margin:16px 0;font-family:"DM Sans",sans-serif;font-weight:800;font-size:clamp(64px,9vw,128px);line-height:.8;letter-spacing:-.07em}.bd-pop-name-medium{font-size:clamp(56px,8vw,108px)}.bd-pop-name-compact{font-size:clamp(46px,7vw,88px)}.bd-pop-age{display:flex;align-items:end;gap:9px;width:fit-content;padding:8px 14px;background:var(--bdp-yellow);transform:rotate(-2deg)}.bd-pop-age strong{font-size:clamp(46px,6vw,78px);line-height:.8}.bd-pop-age span{font-size:10px;letter-spacing:.2em;font-weight:800;margin-bottom:5px}.bd-pop-meta{display:flex;gap:10px 16px;flex-wrap:wrap;margin-top:24px;font-size:12px;letter-spacing:.06em}.bd-pop-meta>*{padding:8px 12px;border:1px solid rgba(22,36,59,.12);background:rgba(255,255,255,.65)}.bd-pop-chevron{position:absolute;z-index:4;left:8vw;bottom:28px}
.bd-pop-section{padding:30px 22px}.bd-pop-card,.bd-pop-date-wrap,.bd-pop-countdown-card,.bd-pop-venue-card{width:min(980px,100%);margin:0 auto;background:var(--bdp-paper);border:1px solid rgba(22,36,59,.09);box-shadow:0 20px 42px rgba(22,36,59,.06)}.bd-pop-card{padding:36px 30px}.bd-pop-copy-card{text-align:center;max-width:880px}.bd-pop-copy-card h2,.bd-pop-hosts-card h2,.bd-pop-venue-card h2,.bd-pop-dress-card h2,.bd-pop-contact-card h2,.bd-pop-gallery-head h2,.bd-pop-final-inner h2{font-family:"DM Sans",sans-serif;font-weight:800;letter-spacing:-.055em;font-size:clamp(34px,4.8vw,64px);line-height:.95;margin:0 0 15px}.bd-pop-copy-card p,.bd-pop-venue-card p,.bd-pop-dress-card p,.bd-pop-contact-card p{max-width:650px;margin:0 auto;line-height:1.8;color:#657083}.bd-pop-date-wrap{display:grid;grid-template-columns:.72fr 1.28fr;gap:18px;padding:20px;background:#fff}.bd-pop-date-poster{padding:28px;background:var(--bdp-blue);color:#fff;display:grid;align-content:center;min-height:390px}.bd-pop-date-poster .bd-pop-kicker{color:#d7e4ee}.bd-pop-date-poster>strong{font-size:clamp(94px,14vw,168px);line-height:.78;letter-spacing:-.08em}.bd-pop-date-poster>span{font-size:22px;text-transform:uppercase;margin-top:18px}.bd-pop-date-poster>b{margin-top:16px;font-size:30px}.bd-pop-calendar{padding:26px;display:grid;align-content:center;gap:12px;background:#f7efe0}.bd-pop-calendar-head{display:flex;justify-content:space-between;gap:12px;text-transform:uppercase;letter-spacing:.12em}.bd-pop-calendar-week,.bd-pop-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.bd-pop-calendar-week span,.bd-pop-calendar-grid span{display:grid;place-items:center;min-height:42px}.bd-pop-calendar-week span{font-size:10px;color:#738096;text-transform:uppercase}.bd-pop-calendar-grid span{background:rgba(255,255,255,.75);border:1px solid rgba(22,36,59,.08)}.bd-pop-calendar-grid span.is-muted{opacity:.25}.bd-pop-calendar-grid span.is-active{background:var(--bdp-red);color:#fff;border-color:transparent;box-shadow:8px 8px 0 var(--bdp-yellow)}
.bd-pop-countdown-card{padding:32px;background:#17263b;color:#fff}.bd-pop-countdown-card .bd-pop-kicker{color:#f0c95c;text-align:center}.bd-pop-countdown-card .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.bd-pop-countdown-card .countdown div{background:#203755!important;border:1px solid rgba(255,255,255,.12);padding:22px 8px}.bd-pop-countdown-card .countdown div:nth-child(2){background:#ef6459!important}.bd-pop-countdown-card .countdown div:nth-child(3){background:#4f7ca5!important}.bd-pop-countdown-card .countdown div:nth-child(4){background:#f0c95c!important;color:#17263b}.bd-pop-countdown-card .countdown strong{font-family:"DM Sans",sans-serif;font-weight:800}.bd-pop-hosts-card{text-align:center;background:linear-gradient(145deg,#fffaf0,#f0c95c22)}.bd-pop-venue-card{padding:36px 30px;text-align:center;background:#e9f0f4}.bd-pop-venue-card svg{color:var(--bdp-red);margin-bottom:10px}.bd-pop-venue-card a,.bd-pop-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border-radius:999px;background:var(--bdp-red);color:#fff;text-decoration:none}.bd-pop-program-shell,.bd-pop-gallery-shell{width:min(1040px,100%);margin:auto}.bd-pop-program-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.bd-pop-program-row{padding:22px;display:grid;grid-template-columns:36px 80px 1fr;align-items:center;gap:12px;border:1px solid rgba(22,36,59,.1);background:#fff}.bd-pop-program-row:nth-child(4n/**/+2){background:#f0c95c}.bd-pop-program-row:nth-child(4n/**/+3){background:#e9f0f4}.bd-pop-program-row:nth-child(4n/**/+4){background:#ef6459;color:#fff}.bd-pop-program-row span{font-size:10px;letter-spacing:.18em}.bd-pop-program-row strong{font-size:20px}.bd-pop-program-row p{margin:0}.bd-pop-gallery-head{text-align:left;margin-bottom:18px}.bd-pop-gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-flow:dense;gap:12px}.bd-pop-photo-card{position:relative;margin:0;overflow:hidden;min-height:280px;border:10px solid #fff;box-shadow:0 14px 28px rgba(22,36,59,.08)}.bd-pop-photo-card img{width:100%;height:100%;object-fit:cover}.bd-pop-photo-card figcaption{position:absolute;left:12px;bottom:10px;background:#17263b;color:#fff;padding:7px 9px;font-size:9px;letter-spacing:.16em}.bd-pop-photo-0{grid-column:span 7;min-height:440px}.bd-pop-photo-1{grid-column:span 5}.bd-pop-photo-2{grid-column:span 4}.bd-pop-photo-3{grid-column:span 8}.bd-pop-photo-4,.bd-pop-photo-5,.bd-pop-photo-6{grid-column:span 4}.bd-pop-photo-7{grid-column:3/span 8}.bd-pop-swatches{display:flex;justify-content:center;gap:10px;margin-top:18px}.bd-pop-swatches i{width:36px;height:36px;background:#ef6459}.bd-pop-swatches i:nth-child(2){background:#f0c95c}.bd-pop-swatches i:nth-child(3){background:#4f7ca5}.bd-pop-swatches i:nth-child(4){background:#17263b}.bd-pop-swatches i:nth-child(5){background:#f5f0e4}.bd-pop-dress-card,.bd-pop-contact-card{text-align:center;max-width:780px}.bd-pop-final{min-height:78svh;background:linear-gradient(145deg,#ef6459 0 50%,#f0c95c 50% 100%);display:grid;place-items:center;padding:30px 22px}.bd-pop-final-inner{text-align:center;width:min(900px,100%);padding:54px 30px;background:#17263b;color:#fff}.bd-pop-final-inner>span{font-size:10px;letter-spacing:.23em;color:#f0c95c}.bd-pop-final-inner h2{color:#fff;margin-top:14px}.bd-pop-final-inner p{color:#fff;margin:18px 0 0}.bd-pop-final-inner small{display:block;margin-top:20px;opacity:.5}

/* --- Birthday Noir v2 --- */
.birthday-noir-v2{--bdn-bg:#090a0d;--bdn-surface:#111319;--bdn-ink:#f4f2ec;--bdn-muted:#9ca0a8;--bdn-lime:#c8ff45;--bdn-pink:#ef6b96;background:var(--bdn-bg);color:var(--bdn-ink)}.bd-noir-kicker{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--bdn-lime)}
.bd-noir-hero{position:relative;min-height:100svh;overflow:hidden;background:#050608}.bd-noir-photo{position:absolute;inset:0}.bd-noir-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.08) brightness(.92)}.bd-noir-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:170px;font-weight:900;color:#333;background:#111}.bd-noir-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,6,8,.94) 0 38%,rgba(5,6,8,.58) 58%,rgba(5,6,8,.18)),linear-gradient(180deg,transparent 60%,rgba(5,6,8,.88))}.bd-noir-beam{position:absolute;pointer-events:none;filter:blur(3px);opacity:.75}.bd-noir-beam-a{width:14px;height:120%;background:var(--bdn-lime);right:14%;top:-10%;transform:rotate(21deg);box-shadow:0 0 34px #c8ff4566}.bd-noir-beam-b{width:8px;height:100%;background:var(--bdn-pink);right:25%;top:10%;transform:rotate(-14deg);box-shadow:0 0 34px #ef6b9666}.bd-noir-copy{position:relative;z-index:3;min-height:100svh;width:min(1180px,calc(100% - 64px));margin:auto;display:grid;align-content:end;padding-bottom:11vh}.bd-noir-copy>span{font-size:10px;letter-spacing:.25em;color:var(--bdn-lime)}.bd-noir-name{margin:12px 0 8px;font-family:"Space Grotesk","DM Sans",sans-serif;font-size:clamp(66px,11vw,150px);line-height:.72;font-weight:700;letter-spacing:-.07em;text-transform:uppercase;max-width:8ch}.bd-noir-name-medium{font-size:clamp(56px,9vw,120px)}.bd-noir-name-compact{font-size:clamp(48px,8vw,98px)}.bd-noir-age{position:absolute;right:3vw;bottom:9vh;display:grid;justify-items:end}.bd-noir-age strong{font-size:clamp(96px,18vw,230px);line-height:.7;color:var(--bdn-lime);letter-spacing:-.1em}.bd-noir-age em{font-style:normal;font-size:11px;letter-spacing:.25em;color:var(--bdn-lime)}.bd-noir-meta{display:flex;gap:10px 16px;flex-wrap:wrap;color:#fff;font-size:12px}.bd-noir-meta>*{border-top:1px solid #3a3d44;padding-top:9px}.bd-noir-chevron{position:absolute;z-index:4;left:50%;bottom:24px;color:#fff}
.bd-noir-section{padding:32px 22px;background:var(--bdn-bg);color:var(--bdn-ink)}.bd-noir-panel,.bd-noir-countdown-wrap,.bd-noir-venue-card{width:min(940px,100%);margin:auto;padding:34px 28px;border:1px solid #252832;background:#0d0f14}.bd-noir-panel h2,.bd-noir-venue-card h2,.bd-noir-gallery-head h2,.bd-noir-final-inner h2{font-family:"Space Grotesk","DM Sans",sans-serif;font-size:clamp(34px,5vw,68px);text-transform:uppercase;line-height:.88;letter-spacing:-.055em;margin:0 0 15px}.bd-noir-panel p,.bd-noir-venue-card p{color:var(--bdn-muted);line-height:1.8;max-width:620px}.bd-noir-pass{width:min(900px,100%);margin:auto;display:grid;grid-template-columns:1.25fr .75fr;border:1px solid #343740;background:#111319;box-shadow:0 20px 50px #0008}.bd-noir-pass-main{padding:28px;display:grid;grid-template-columns:auto auto;align-items:end;gap:6px 16px;border-right:1px dashed #444853}.bd-noir-pass-main>span{grid-column:1/-1;font-size:10px;letter-spacing:.24em;color:var(--bdn-lime)}.bd-noir-pass-main>strong{font-size:clamp(96px,13vw,158px);line-height:.72;color:var(--bdn-lime)}.bd-noir-pass-main>b{font-size:36px;text-transform:uppercase}.bd-noir-pass-main>small{grid-column:2;font-size:18px;color:#858a94}.bd-noir-pass-side{padding:28px;display:grid;align-content:center;gap:12px;text-transform:uppercase}.bd-noir-pass-side>span{font-size:14px;color:var(--bdn-pink)}.bd-noir-pass-side>strong{font-size:42px}.bd-noir-pass-side>small{color:#898e98;letter-spacing:.12em}.bd-noir-countdown-wrap{text-align:center;background:#050608}.bd-noir-countdown-wrap .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid #2b2e37}.bd-noir-countdown-wrap .countdown div{background:#0d0f14!important;border:0;border-right:1px solid #2b2e37;padding:26px 8px}.bd-noir-countdown-wrap .countdown div:last-child{border-right:0}.bd-noir-countdown-wrap .countdown strong{font-family:"Space Grotesk",sans-serif;font-size:clamp(42px,7vw,86px);color:var(--bdn-lime)}.bd-noir-hosts .bd-noir-panel{text-align:center}.bd-noir-venue-card{text-align:left;position:relative}.bd-noir-venue-card>svg{color:var(--bdn-lime)}.bd-noir-venue-card a,.bd-noir-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;background:var(--bdn-lime);color:#090a0d;text-decoration:none;font-weight:700}.bd-noir-program-shell,.bd-noir-gallery-shell{width:min(1060px,100%);margin:auto}.bd-noir-program-list{margin-top:18px}.bd-noir-program-row{display:grid;grid-template-columns:48px 110px 1fr;gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid #272a31}.bd-noir-program-row span{font-size:10px;color:#6e737c;letter-spacing:.2em}.bd-noir-program-row strong{font-size:22px;color:var(--bdn-lime)}.bd-noir-program-row p{margin:0;color:#c6c9ce}.bd-noir-gallery-head{margin-bottom:18px}.bd-noir-contact-sheet{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#020203;padding:3px}.bd-noir-shot{position:relative;margin:0;min-height:280px;overflow:hidden;background:#111}.bd-noir-shot img{width:100%;height:100%;object-fit:cover;filter:none}.bd-noir-shot figcaption{position:absolute;left:8px;bottom:8px;font-size:9px;letter-spacing:.14em;background:#050608cc;color:#fff;padding:6px 7px}.bd-noir-shot-0,.bd-noir-shot-5{grid-column:span 2}.bd-noir-shot-0{grid-row:span 2;min-height:563px}.bd-noir-swatches{display:flex;gap:8px;margin-top:18px}.bd-noir-swatches i{width:34px;height:34px;border:1px solid #3b3f48;background:#090a0d}.bd-noir-swatches i:nth-child(2){background:#c8ff45}.bd-noir-swatches i:nth-child(3){background:#ef6b96}.bd-noir-swatches i:nth-child(4){background:#353943}.bd-noir-swatches i:nth-child(5){background:#f4f2ec}.bd-noir-dress-card,.bd-noir-contact-card{max-width:760px}.bd-noir-final{min-height:82svh;background:var(--bdn-lime);color:#050608;display:grid;place-items:center;padding:30px 22px}.bd-noir-final-inner{width:min(1000px,100%);text-align:left}.bd-noir-final-inner>span{font-size:10px;letter-spacing:.25em}.bd-noir-final-inner h2{font-size:clamp(52px,8vw,112px);color:#050608;max-width:9ch;margin-top:18px}.bd-noir-final-inner p{color:#050608;margin:18px 0 0}.bd-noir-final-inner small{display:block;margin-top:24px;opacity:.5}

/* --- Birthday Kids v2 --- */
.birthday-kids-v2{--bdk-bg:#fff7e9;--bdk-ink:#29345f;--bdk-blue:#5e78bf;--bdk-pink:#ff6f91;--bdk-yellow:#ffc75b;--bdk-mint:#8ed9ca;--bdk-lilac:#a989dc;background:var(--bdk-bg);color:var(--bdk-ink)}.bd-kids-kicker{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:900}.bd-kids-gate-age{display:inline-grid;place-items:center;width:74px;height:74px;border-radius:50%;background:var(--bdk-pink);color:#fff;font-size:34px;transform:rotate(7deg)}
.bd-kids-hero{position:relative;min-height:100svh;overflow:hidden;background:linear-gradient(180deg,#dff4ff 0 58%,#fff1bd 58% 100%)}.bd-kids-sun{position:absolute;width:280px;height:280px;border-radius:50%;background:var(--bdk-yellow);right:-70px;top:-65px;box-shadow:0 0 0 28px #ffc75b44}.bd-kids-cloud{position:absolute;width:180px;height:60px;border-radius:999px;background:#fff;box-shadow:45px -25px 0 8px #fff,-38px -12px 0 4px #fff}.bd-kids-cloud-a{left:7%;top:18%}.bd-kids-cloud-b{right:8%;top:38%;transform:scale(.8)}.bd-kids-confetti{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,#ff6f91 0 3px,transparent 4px),radial-gradient(circle,#5e78bf 0 3px,transparent 4px),linear-gradient(45deg,transparent 45%,#8ed9ca 46% 54%,transparent 55%);background-size:120px 150px,160px 130px,110px 120px;background-position:0 20px,40px 0,20px 50px;opacity:.5}.bd-kids-confetti-b{transform:rotate(18deg);opacity:.25}.bd-kids-photo-card{position:absolute;z-index:2;right:8vw;top:15vh;width:min(43vw,520px);height:63vh;border:14px solid #fff;border-bottom-width:52px;background:#fff;box-shadow:16px 16px 0 var(--bdk-blue);transform:rotate(4deg);overflow:hidden}.bd-kids-photo-card img{width:100%;height:100%;object-fit:cover;object-position:center top}.bd-kids-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:150px;font-weight:900;background:var(--bdk-mint);color:#fff}.bd-kids-copy{position:relative;z-index:3;width:min(1100px,calc(100% - 44px));min-height:100svh;margin:auto;display:grid;align-content:center;justify-items:start}.bd-kids-copy>span{display:inline-block;padding:8px 12px;border:3px solid var(--bdk-ink);background:#fff;font-size:10px;letter-spacing:.16em;font-weight:900;transform:rotate(-2deg)}.bd-kids-name{font-family:"DM Sans",sans-serif;font-weight:900;font-size:clamp(58px,9vw,118px);line-height:.8;letter-spacing:-.06em;text-transform:uppercase;margin:18px 0;max-width:6ch;text-shadow:5px 5px 0 #fff}.bd-kids-name-medium{font-size:clamp(52px,8vw,100px)}.bd-kids-name-compact{font-size:clamp(44px,7vw,82px)}.bd-kids-age-sticker{display:grid;place-items:center;width:110px;height:110px;border-radius:50%;background:var(--bdk-pink);color:#fff;border:5px solid #fff;box-shadow:7px 7px 0 var(--bdk-ink);transform:rotate(-8deg)}.bd-kids-age-sticker strong{font-size:48px;line-height:.8}.bd-kids-age-sticker small{font-size:9px;letter-spacing:.16em}.bd-kids-copy>p{font-weight:800;font-size:18px;max-width:380px}.bd-kids-meta{display:flex;gap:8px 12px;flex-wrap:wrap}.bd-kids-meta>*{padding:8px 12px;border-radius:999px;background:#fff;border:2px solid var(--bdk-ink);font-size:11px}.bd-kids-chevron{position:absolute;z-index:5;left:50%;bottom:24px}
.bd-kids-section{padding:30px 22px}.bd-kids-bubble,.bd-kids-map-card{width:min(900px,100%);margin:auto;padding:34px 28px;background:#fff;border:3px solid var(--bdk-ink);border-radius:30px;box-shadow:10px 10px 0 #d8e3f5}.bd-kids-copy-card{text-align:center}.bd-kids-copy-card h2,.bd-kids-hosts-card h2,.bd-kids-map-card h2,.bd-kids-dress-card h2,.bd-kids-contact-card h2,.bd-kids-gallery-head h2,.bd-kids-final-inner h2{font-family:"DM Sans",sans-serif;font-weight:900;font-size:clamp(32px,4.8vw,60px);line-height:.94;letter-spacing:-.05em;margin:0 0 14px}.bd-kids-copy-card p,.bd-kids-map-card p,.bd-kids-dress-card p{max-width:620px;margin:0 auto;color:#687092;line-height:1.8}.bd-kids-date-toys{width:min(900px,100%);margin:auto;display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:14px}.bd-kids-toy{min-height:210px;padding:24px;border:4px solid var(--bdk-ink);display:grid;align-content:center;justify-items:center;box-shadow:8px 8px 0 #fff}.bd-kids-toy-day{background:var(--bdk-pink);color:#fff;transform:rotate(-3deg)}.bd-kids-toy-month{background:var(--bdk-yellow);transform:rotate(2deg)}.bd-kids-toy-time{background:var(--bdk-mint);transform:rotate(-1deg)}.bd-kids-toy-day strong{font-size:96px;line-height:.8}.bd-kids-toy-day small{font-weight:900;text-transform:uppercase}.bd-kids-toy-month span{font-size:32px;font-weight:900;text-transform:uppercase}.bd-kids-toy-month b{font-size:22px}.bd-kids-toy-time strong{font-size:52px}.bd-kids-countdown-wrap{width:min(900px,100%);margin:auto;text-align:center}.bd-kids-countdown-wrap .countdown{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.bd-kids-countdown-wrap .countdown div{width:150px;aspect-ratio:1;border-radius:50%;display:grid;place-content:center;border:4px solid var(--bdk-ink);background:var(--bdk-pink)!important;box-shadow:6px 6px 0 #fff}.bd-kids-countdown-wrap .countdown div:nth-child(2){background:var(--bdk-yellow)!important}.bd-kids-countdown-wrap .countdown div:nth-child(3){background:var(--bdk-mint)!important}.bd-kids-countdown-wrap .countdown div:nth-child(4){background:var(--bdk-lilac)!important;color:#fff}.bd-kids-countdown-wrap .countdown strong{font-family:"DM Sans",sans-serif;font-weight:900;font-size:48px}.bd-kids-hosts-card{text-align:center;background:#fff8f3}.bd-kids-map-card{text-align:center;background:#eaf7ff}.bd-kids-map-pin{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:var(--bdk-pink);color:#fff}.bd-kids-map-card a,.bd-kids-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:12px 18px;border-radius:999px;background:var(--bdk-blue);color:#fff;text-decoration:none;font-weight:900}.bd-kids-program-shell,.bd-kids-gallery-shell{width:min(1040px,100%);margin:auto}.bd-kids-program-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.bd-kids-program-card{padding:24px;border:3px solid var(--bdk-ink);background:#fff;box-shadow:7px 7px 0 #dce7fa;min-height:180px}.bd-kids-program-card:nth-child(5n/**/+1){background:#ffdce5}.bd-kids-program-card:nth-child(5n/**/+2){background:#fff0b5}.bd-kids-program-card:nth-child(5n/**/+3){background:#d6f4ec}.bd-kids-program-card:nth-child(5n/**/+4){background:#e7ddfb}.bd-kids-program-card:nth-child(5n/**/+5){background:#ddecff}.bd-kids-program-card span{font-size:10px;letter-spacing:.18em}.bd-kids-program-card strong{display:block;font-size:28px;margin:14px 0 8px}.bd-kids-program-card p{margin:0;font-weight:800}.bd-kids-gallery-head{text-align:center;margin-bottom:18px}.bd-kids-scrapbook{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:start}.bd-kids-polaroid{position:relative;margin:0;padding:10px 10px 34px;background:#fff;border:3px solid var(--bdk-ink);box-shadow:9px 9px 0 #dce7fa;grid-column:span 4}.bd-kids-polaroid:nth-child(3n/**/+1){transform:rotate(-3deg)}.bd-kids-polaroid:nth-child(3n/**/+2){transform:rotate(3deg)}.bd-kids-polaroid:nth-child(3n){transform:rotate(-1deg)}.bd-kids-polaroid img{width:100%;height:280px;object-fit:cover;object-position:center top}.bd-kids-polaroid figcaption{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);font-size:18px;color:var(--bdk-pink)}.bd-kids-polaroid-0{grid-column:span 7}.bd-kids-polaroid-1{grid-column:span 5}.bd-kids-polaroid-3{grid-column:span 5}.bd-kids-polaroid-4{grid-column:span 7}.bd-kids-swatches{display:flex;justify-content:center;gap:10px;margin-top:18px}.bd-kids-swatches i{width:36px;height:36px;border-radius:50%;border:2px solid var(--bdk-ink);background:var(--bdk-pink)}.bd-kids-swatches i:nth-child(2){background:var(--bdk-yellow)}.bd-kids-swatches i:nth-child(3){background:var(--bdk-mint)}.bd-kids-swatches i:nth-child(4){background:var(--bdk-blue)}.bd-kids-swatches i:nth-child(5){background:var(--bdk-lilac)}.bd-kids-dress-card,.bd-kids-contact-card{text-align:center;max-width:800px}.bd-kids-final{min-height:80svh;display:grid;place-items:center;padding:30px 22px;background:linear-gradient(160deg,#5e78bf,#a989dc);color:#fff}.bd-kids-final-inner{text-align:center;width:min(900px,100%)}.bd-kids-final-star{font-size:72px;color:var(--bdk-yellow);filter:drop-shadow(5px 5px 0 rgba(0,0,0,.14))}.bd-kids-final-inner>span{font-size:10px;letter-spacing:.2em;font-weight:900}.bd-kids-final-inner h2{color:#fff;margin-top:14px}.bd-kids-final-inner p{color:#fff;margin:18px 0 0}.bd-kids-final-inner small{display:block;margin-top:20px;opacity:.6}

/* Birthday catalog thumbnails */
.birthday-thumb{position:relative;width:100%;height:100%;min-height:300px;overflow:hidden;background:#eee}.birthday-thumb-photo{position:absolute;width:100%;height:100%;object-fit:cover}.birthday-thumb-art{position:absolute;inset:0;pointer-events:none}.birthday-thumb-copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column}.birthday-thumb-copy span{font-size:8px;letter-spacing:.15em;text-transform:uppercase}.birthday-thumb-copy strong{font-size:34px;line-height:.86}.birthday-thumb-copy small{font-size:9px;text-transform:uppercase;letter-spacing:.12em}.birthday-thumb-copy em{font-style:normal;font-size:9px}.birthday-thumb-birthday-pop{background:#f5f0e4}.birthday-thumb-birthday-pop .birthday-thumb-photo{width:58%;left:auto;right:0;filter:saturate(.9)}.birthday-thumb-birthday-pop .birthday-thumb-art{background:linear-gradient(90deg,#f5f0e4 0 46%,transparent 46%),linear-gradient(155deg,transparent 0 74%,#ef6459 74%)}.birthday-thumb-birthday-pop .birthday-thumb-copy{justify-content:center;align-items:flex-start;padding:24px;color:#17263b}.birthday-thumb-birthday-pop .birthday-thumb-copy strong{font-weight:900;max-width:45%}.birthday-thumb-birthday-pop .birthday-thumb-copy small{background:#f0c95c;padding:4px 6px;margin-top:8px}.birthday-thumb-birthday-pop .birthday-thumb-copy em{margin-top:8px}.birthday-thumb-birthday-noir{background:#07080a}.birthday-thumb-birthday-noir .birthday-thumb-photo{filter:saturate(1.04) contrast(1.08) brightness(.9)}.birthday-thumb-birthday-noir .birthday-thumb-art{background:linear-gradient(90deg,#050608e8 0 52%,transparent 78%),linear-gradient(75deg,transparent 58%,#c8ff45 59% 61%,transparent 62%)}.birthday-thumb-birthday-noir .birthday-thumb-copy{justify-content:flex-end;padding:24px;color:#fff}.birthday-thumb-birthday-noir .birthday-thumb-copy span,.birthday-thumb-birthday-noir .birthday-thumb-copy small{color:#c8ff45}.birthday-thumb-birthday-noir .birthday-thumb-copy strong{font-weight:900;text-transform:uppercase;max-width:70%}.birthday-thumb-birthday-noir .birthday-thumb-copy em{color:#fff;margin-top:8px}.birthday-thumb-birthday-kids{background:#dff4ff}.birthday-thumb-birthday-kids .birthday-thumb-photo{width:62%;height:70%;left:29%;top:14%;border:8px solid #fff;box-shadow:8px 8px 0 #5e78bf;transform:rotate(4deg);object-position:center top}.birthday-thumb-birthday-kids .birthday-thumb-art{background:radial-gradient(circle at 90% 8%,#ffc75b 0 12%,transparent 13%),radial-gradient(circle at 12% 78%,#ff6f91 0 8%,transparent 9%)}.birthday-thumb-birthday-kids .birthday-thumb-copy{justify-content:flex-end;padding:22px;color:#29345f}.birthday-thumb-birthday-kids .birthday-thumb-copy strong{font-weight:900;text-transform:uppercase;text-shadow:3px 3px #fff}.birthday-thumb-birthday-kids .birthday-thumb-copy small{background:#fff;border:2px solid #29345f;width:max-content;padding:4px 6px;margin-top:6px}.birthday-thumb-birthday-kids .birthday-thumb-copy em{margin-top:6px}

/* Ensure new birthday gallery media cannot stay hidden by reveal states. */
.bd-pop-photo-card,.bd-noir-shot,.bd-kids-polaroid{opacity:1!important;filter:none!important}

@media (max-width:900px){
  .bd-pop-hero{display:block}.bd-pop-photo{position:absolute;inset:8vh 16px 42vh 22%;margin:0;border-radius:0 0 0 80px}.bd-pop-hero-copy{min-height:100svh;padding:58vh 22px 8vh}.bd-pop-chevron{left:22px}.bd-pop-date-wrap{grid-template-columns:1fr}.bd-pop-program-list{grid-template-columns:1fr}.bd-pop-gallery-grid{grid-template-columns:1fr 1fr}.bd-pop-photo-card,.bd-pop-photo-0,.bd-pop-photo-1,.bd-pop-photo-2,.bd-pop-photo-3,.bd-pop-photo-4,.bd-pop-photo-5,.bd-pop-photo-6,.bd-pop-photo-7{grid-column:auto;min-height:250px}
  .bd-noir-age{right:22px}.bd-noir-contact-sheet{grid-template-columns:1fr 1fr}.bd-noir-shot,.bd-noir-shot-0,.bd-noir-shot-5{grid-column:auto;grid-row:auto;min-height:280px}.bd-noir-pass{grid-template-columns:1fr}.bd-noir-pass-main{border-right:0;border-bottom:1px dashed #444853}
  .bd-kids-photo-card{width:52vw;right:4vw}.bd-kids-date-toys{grid-template-columns:1fr}.bd-kids-toy{min-height:150px}.bd-kids-program-cards{grid-template-columns:1fr 1fr}.bd-kids-scrapbook{grid-template-columns:1fr 1fr}.bd-kids-polaroid,.bd-kids-polaroid-0,.bd-kids-polaroid-1,.bd-kids-polaroid-3,.bd-kids-polaroid-4{grid-column:auto;transform:none}.bd-kids-polaroid img{height:240px}
}
@media (max-width:640px){
  .bd-pop-name{font-size:clamp(48px,15vw,72px)}.bd-pop-hero-copy{padding-top:54vh}.bd-pop-photo{inset:7vh 14px 46vh 26%;border-radius:0 0 0 55px}.bd-pop-date-poster{min-height:260px}.bd-pop-calendar{padding:16px}.bd-pop-calendar-week,.bd-pop-calendar-grid{gap:5px}.bd-pop-calendar-week span,.bd-pop-calendar-grid span{min-height:34px}.bd-pop-countdown-card .countdown{grid-template-columns:1fr 1fr}.bd-pop-gallery-grid{grid-template-columns:1fr}.bd-pop-photo-card{min-height:220px}.bd-pop-program-row{grid-template-columns:30px 70px 1fr;padding:16px 12px}
  .bd-noir-copy{width:calc(100% - 36px);padding-bottom:13vh}.bd-noir-name{font-size:clamp(48px,15vw,76px)}.bd-noir-age{position:static;justify-items:start;margin:12px 0 18px}.bd-noir-age strong{font-size:90px}.bd-noir-overlay{background:linear-gradient(180deg,rgba(5,6,8,.25),rgba(5,6,8,.72) 48%,rgba(5,6,8,.96))}.bd-noir-countdown-wrap .countdown{grid-template-columns:1fr 1fr}.bd-noir-countdown-wrap .countdown div{border-bottom:1px solid #2b2e37}.bd-noir-program-row{grid-template-columns:34px 80px 1fr}.bd-noir-contact-sheet{grid-template-columns:1fr}.bd-noir-shot{min-height:240px}.bd-noir-final-inner h2{font-size:clamp(44px,13vw,72px)}
  .bd-kids-photo-card{width:calc(100% - 56px);height:44vh;right:20px;top:10vh;border-width:10px;border-bottom-width:36px}.bd-kids-copy{width:calc(100% - 36px);padding-top:52vh;align-content:start}.bd-kids-name{font-size:clamp(44px,14vw,68px)}.bd-kids-age-sticker{width:86px;height:86px}.bd-kids-copy>p{font-size:15px}.bd-kids-countdown-wrap .countdown div{width:44vw}.bd-kids-program-cards{grid-template-columns:1fr}.bd-kids-scrapbook{grid-template-columns:1fr}.bd-kids-polaroid img{height:220px}.bd-kids-bubble,.bd-kids-map-card{padding:24px 18px;border-radius:24px}
}

@media  (prefers-reduced-motion: reduce){
  .bd-pop-photo-card img,.bd-noir-shot img,.bd-kids-polaroid,.bd-kids-photo-card,.bd-pop-block,.bd-noir-beam{transition:none!important;animation:none!important}
}

/* ============================
   Stage 7 — Jubilee collection
   Noir 02 / Champagne 02 / Heritage 02
   ============================ */

/* --- Jubilee template thumbnails --- */
.jubilee-thumb{position:relative;width:100%;height:100%;min-height:100%;overflow:hidden;background:#111;color:#fff}.jubilee-thumb-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.jubilee-thumb-art{position:absolute;inset:0;pointer-events:none}.jubilee-thumb-copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column}.jubilee-thumb-copy span,.jubilee-thumb-copy small,.jubilee-thumb-copy em{font-style:normal;text-transform:uppercase}.jubilee-thumb-copy span{font-size:9px;letter-spacing:.2em}.jubilee-thumb-copy strong{font-size:clamp(44px,9vw,78px);line-height:.8}.jubilee-thumb-copy small{font-size:10px;letter-spacing:.16em}.jubilee-thumb-copy em{font-size:9px;letter-spacing:.12em}
.jubilee-thumb-jubilee-noir{background:#090909}.jubilee-thumb-jubilee-noir .jubilee-thumb-photo{filter:saturate(1.04) contrast(1.03) brightness(.94);opacity:.86}.jubilee-thumb-jubilee-noir .jubilee-thumb-art{background:linear-gradient(90deg,#050505 0 44%,transparent 72%),linear-gradient(180deg,transparent 42%,#050505dd)}.jubilee-thumb-jubilee-noir .jubilee-thumb-art:before{content:"";position:absolute;inset:14px;border:1px solid #c8a66b88}.jubilee-thumb-jubilee-noir .jubilee-thumb-copy{justify-content:flex-end;padding:22px}.jubilee-thumb-jubilee-noir .jubilee-thumb-copy strong{font-family:"Playfair Display",serif;color:#d6b67b;font-size:78px}.jubilee-thumb-jubilee-noir .jubilee-thumb-copy small{margin-top:8px;color:#d6b67b}.jubilee-thumb-jubilee-noir .jubilee-thumb-copy em{margin-top:10px;color:#eee8dc}
.jubilee-thumb-jubilee-champagne{background:#f3ead9;color:#4c4031}.jubilee-thumb-jubilee-champagne .jubilee-thumb-photo{width:62%;left:auto;filter:saturate(.75) contrast(.96)}.jubilee-thumb-jubilee-champagne .jubilee-thumb-art{background:linear-gradient(90deg,#f6eddd 0 50%,#f6eddd44 70%,transparent)}.jubilee-thumb-jubilee-champagne .jubilee-thumb-art:before,.jubilee-thumb-jubilee-champagne .jubilee-thumb-art:after{content:"";position:absolute;border:1px solid #b38a4e55;border-radius:50%}.jubilee-thumb-jubilee-champagne .jubilee-thumb-art:before{width:130px;height:130px;left:20px;top:25px}.jubilee-thumb-jubilee-champagne .jubilee-thumb-art:after{width:86px;height:86px;left:43px;top:47px}.jubilee-thumb-jubilee-champagne .jubilee-thumb-copy{justify-content:flex-end;padding:22px;width:58%}.jubilee-thumb-jubilee-champagne .jubilee-thumb-copy strong{font-family:"Playfair Display",serif;color:#a57c45;font-size:72px}.jubilee-thumb-jubilee-champagne .jubilee-thumb-copy small{margin-top:7px;color:#8b6b43}.jubilee-thumb-jubilee-champagne .jubilee-thumb-copy em{margin-top:9px;color:#645443}
.jubilee-thumb-jubilee-heritage{background:#18342d;color:#ede5d7}.jubilee-thumb-jubilee-heritage .jubilee-thumb-photo{width:58%;left:37%;top:8%;height:84%;filter:sepia(.28) saturate(.7) contrast(.98);border:8px solid #e6d8c0;box-shadow:0 15px 30px #0004}.jubilee-thumb-jubilee-heritage .jubilee-thumb-art{background:linear-gradient(90deg,#18342d 0 42%,transparent 72%)}.jubilee-thumb-jubilee-heritage .jubilee-thumb-art:before{content:"ARCHIVE";position:absolute;left:18px;top:20px;padding:5px 8px;border:1px solid #b1784d88;color:#d7b694;font-size:7px;letter-spacing:.22em}.jubilee-thumb-jubilee-heritage .jubilee-thumb-copy{justify-content:flex-end;padding:22px;width:54%}.jubilee-thumb-jubilee-heritage .jubilee-thumb-copy strong{font-family:"Playfair Display",serif;color:#d2a475;font-size:70px}.jubilee-thumb-jubilee-heritage .jubilee-thumb-copy small{margin-top:8px;color:#d2a475}.jubilee-thumb-jubilee-heritage .jubilee-thumb-copy em{margin-top:9px;color:#ece0d1}

/* --- Jubilee Noir 02 --- */
.jubilee-noir-v2{--jb-bg:#090909;--jb-ink:#f2eee7;--jb-gold:#c4a268;--jb-muted:#aaa49b;background:var(--jb-bg);color:var(--jb-ink);font-family:"DM Sans",sans-serif}.jb-noir-label,.jb-noir-kicker{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--jb-gold)}.jb-noir-gate-age{display:block;font-family:"Playfair Display",serif;font-size:82px;line-height:.8;color:var(--jb-gold);margin:18px 0}.jb-noir-hero{position:relative;min-height:100svh;overflow:hidden;background:#050505}.jb-noir-hero-photo{position:absolute;inset:0}.jb-noir-hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.04) brightness(.95)}.jb-noir-placeholder{width:100%;height:100%;display:grid;place-items:center;font-family:"Playfair Display",serif;font-size:28vw;color:#2a2a2a}.jb-noir-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#050505f5 0 34%,#05050588 58%,#05050533),linear-gradient(180deg,transparent 50%,#050505cc)}.jb-noir-hero:after{content:"";position:absolute;inset:22px;border:1px solid #c4a26855;pointer-events:none}.jb-noir-hero-copy{position:relative;z-index:2;width:min(1180px,calc(100% - 80px));min-height:100svh;margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:1180px}.jb-noir-age{display:flex;align-items:flex-end;gap:12px;margin:18px 0}.jb-noir-age strong{font-family:"Playfair Display",serif;font-size:clamp(104px,18vw,250px);line-height:.68;font-weight:500;color:var(--jb-gold)}.jb-noir-age small{padding-bottom:12px;letter-spacing:.2em;color:#d1c8bb}.jb-noir-name{margin:18px 0;font-family:"Playfair Display",serif;font-size:clamp(54px,8vw,110px);line-height:.9;font-weight:500;max-width:8ch}.jb-noir-name-medium{font-size:clamp(48px,7vw,94px)}.jb-noir-name-compact{font-size:clamp(40px,6vw,76px)}.jb-noir-meta{display:flex;gap:10px;flex-wrap:wrap}.jb-noir-meta>*{padding:9px 13px;border:1px solid #ffffff22;background:#0006;backdrop-filter:blur(6px);font-size:11px;letter-spacing:.08em}.jb-noir-frame-mark{position:absolute;left:40px;bottom:30px;z-index:2;color:#c4a268;font-size:9px;letter-spacing:.22em}.jb-noir-chevron{position:absolute;right:40px;bottom:28px;z-index:2;color:#c4a268}.jb-noir-section{padding:32px 22px;background:#090909}.jb-noir-panel,.jb-noir-date-card,.jb-noir-countdown-card,.jb-noir-venue-card{width:min(980px,100%);margin:auto;border:1px solid #ffffff16;background:#101010;padding:36px 30px}.jb-noir-copy{text-align:left;display:grid;grid-template-columns:1fr 1.4fr;gap:22px;align-items:start}.jb-noir-copy h2,.jb-noir-hosts-card h2,.jb-noir-venue-card h2,.jb-noir-dress-card h2,.jb-noir-contact-card h2,.jb-noir-gallery-head h2,.jb-noir-final-inner h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(34px,5vw,66px);line-height:1;margin:0}.jb-noir-copy p,.jb-noir-venue-card p,.jb-noir-dress-card p{color:#aaa49b;line-height:1.8;margin:0}.jb-noir-date-card{display:grid;grid-template-columns:minmax(170px,.6fr) 1.4fr;align-items:center;gap:32px;border-color:#c4a26844}.jb-noir-date-day{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(120px,18vw,220px);line-height:.7;color:var(--jb-gold)}.jb-noir-date-copy{display:grid;gap:8px}.jb-noir-date-copy span{font-family:"Playfair Display",serif;font-size:clamp(34px,5vw,62px);text-transform:capitalize}.jb-noir-date-copy small{color:#aaa49b;font-size:14px}.jb-noir-date-copy b{font-size:24px;color:#fff}.jb-noir-countdown-card{text-align:center;background:linear-gradient(180deg,#111,#080808)}.jb-noir-countdown-card .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px}.jb-noir-countdown-card .countdown div{aspect-ratio:1;border-radius:50%;border:1px solid #c4a26855;background:#0c0c0c!important;display:grid;place-content:center}.jb-noir-countdown-card .countdown strong{font-family:"Playfair Display",serif;font-size:clamp(34px,6vw,68px);color:#e7d6b7}.jb-noir-countdown-card .countdown span{font-size:9px;letter-spacing:.14em}.jb-noir-hosts-card{text-align:center}.jb-noir-venue-card{text-align:left;display:grid;justify-items:start;gap:12px}.jb-noir-venue-card>a,.jb-noir-contact-card>a{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:11px 16px;border:1px solid #c4a26855;color:#e3d2b2;text-decoration:none;border-radius:999px}.jb-noir-program-shell,.jb-noir-gallery-shell{width:min(1050px,100%);margin:auto}.jb-noir-program-list{margin-top:18px;border-top:1px solid #ffffff18}.jb-noir-program-row{display:grid;grid-template-columns:42px 90px 1fr 1.5fr;gap:16px;align-items:center;padding:18px 4px;border-bottom:1px solid #ffffff18}.jb-noir-program-row>span{font-size:9px;color:#777}.jb-noir-program-row strong{font-size:18px;color:#e1d0b2}.jb-noir-program-row i{height:1px;background:#c4a26855}.jb-noir-program-row p{margin:0;color:#b6afa4}.jb-noir-gallery-head{text-align:left;margin-bottom:18px}.jb-noir-contact-sheet{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#020202;padding:10px;border:1px solid #ffffff15}.jb-noir-photo{margin:0;background:#111;min-height:260px;position:relative;overflow:hidden}.jb-noir-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(1.02) contrast(1.03) brightness(.96)}.jb-noir-photo figcaption{position:absolute;left:8px;bottom:8px;background:#050505cc;color:#d0b98e;padding:5px 7px;font-size:8px;letter-spacing:.16em}.jb-noir-photo-0,.jb-noir-photo-5{grid-column:span 2;grid-row:span 2}.jb-noir-swatches{display:flex;gap:10px;margin-top:18px}.jb-noir-swatches i{width:30px;height:30px;border-radius:50%;background:#0c0c0c;border:1px solid #444}.jb-noir-swatches i:nth-child(2){background:#292929}.jb-noir-swatches i:nth-child(3){background:#c4a268}.jb-noir-swatches i:nth-child(4){background:#6b6258}.jb-noir-swatches i:nth-child(5){background:#ede7dd}.jb-noir-contact-card{text-align:center}.jb-noir-contact-card a{font-size:18px}.jb-noir-final{min-height:84svh;display:grid;place-items:center;padding:70px 22px;background:radial-gradient(circle at 50% 45%,#3f3526 0,#15120f 25%,#050505 62%)}.jb-noir-final-inner{text-align:center;max-width:850px}.jb-noir-final-age{display:block;font-family:"Playfair Display",serif;font-size:clamp(120px,22vw,280px);line-height:.7;color:#c4a26866}.jb-noir-final-inner>span{display:block;margin:22px 0 14px;color:#c4a268;letter-spacing:.25em;font-size:10px}.jb-noir-final-inner h2{max-width:10ch;margin:auto}.jb-noir-final-inner p{margin:22px auto 0;color:#f2eee7}.jb-noir-final-inner small{display:block;margin-top:18px;color:#777}

/* --- Jubilee Champagne 02 --- */
.jubilee-champagne-v2{--jbc-bg:#f5eddf;--jbc-paper:#fffaf1;--jbc-ink:#4e4032;--jbc-gold:#b28a52;--jbc-muted:#847562;background:var(--jbc-bg);color:var(--jbc-ink);font-family:"DM Sans",sans-serif}.jb-ch-label,.jb-ch-kicker{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--jbc-gold)}.jb-ch-gate-age{display:block;font-family:"Playfair Display",serif;font-size:86px;line-height:.8;color:#b28a52;margin:18px 0}.jb-ch-hero{position:relative;min-height:100svh;overflow:hidden;background:linear-gradient(180deg,#fbf7f0,#efe3d0);padding:40px 22px}.jb-ch-ring{position:absolute;border:1px solid #b28a5255;border-radius:50%;pointer-events:none}.jb-ch-ring-a{width:58vmin;height:58vmin;left:-16vmin;top:-12vmin}.jb-ch-ring-b{width:74vmin;height:74vmin;right:-28vmin;bottom:-20vmin}.jb-ch-hero-photo{position:absolute;right:6vw;top:12vh;width:min(46vw,560px);height:72vh;border-radius:48% 48% 28px 28px/22% 22% 28px 28px;overflow:hidden;border:14px solid #fff8ef;box-shadow:0 35px 80px #71533022}.jb-ch-hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(.97)}.jb-ch-placeholder{width:100%;height:100%;display:grid;place-items:center;background:#dfcba8;color:#8f6f43;font-family:"Playfair Display",serif;font-size:160px}.jb-ch-hero-copy{position:relative;z-index:2;width:min(1120px,calc(100% - 40px));min-height:calc(100svh - 80px);margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:1120px}.jb-ch-age{display:flex;align-items:flex-end;gap:10px;margin:14px 0}.jb-ch-age strong{font-family:"Playfair Display",serif;font-size:clamp(100px,17vw,220px);line-height:.7;color:#b28a52;font-weight:500}.jb-ch-age small{padding-bottom:10px;letter-spacing:.2em;color:#91734d}.jb-ch-name{font-family:"Playfair Display",serif;font-size:clamp(54px,8vw,108px);font-weight:500;line-height:.9;margin:16px 0;max-width:7ch}.jb-ch-name-medium{font-size:clamp(48px,7vw,92px)}.jb-ch-name-compact{font-size:clamp(40px,6vw,76px)}.jb-ch-rule{width:90px;height:1px;background:#b28a52;margin:10px 0 18px}.jb-ch-meta{display:flex;gap:10px;flex-wrap:wrap;color:#6f604f}.jb-ch-meta>*{padding:9px 13px;background:#ffffff88;border:1px solid #b28a5222;border-radius:999px}.jb-ch-chevron{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);color:#b28a52}.jb-ch-section{padding:32px 22px;background:#f5eddf}.jb-ch-card,.jb-ch-date-wrap,.jb-ch-countdown-card{width:min(980px,100%);margin:auto;border:1px solid #b28a5222;background:#fffaf1;padding:36px 30px;border-radius:30px;box-shadow:0 20px 48px #765b3b0d}.jb-ch-copy{text-align:center;max-width:850px}.jb-ch-copy h2,.jb-ch-hosts-card h2,.jb-ch-venue-card h2,.jb-ch-dress-card h2,.jb-ch-contact-card h2,.jb-ch-gallery-head h2,.jb-ch-final-inner h2{font-family:"Playfair Display",serif;font-size:clamp(34px,5vw,62px);font-weight:500;line-height:1.02;margin:0 0 15px}.jb-ch-copy p,.jb-ch-venue-card p,.jb-ch-dress-card p{max-width:620px;margin:auto;color:var(--jbc-muted);line-height:1.85}.jb-ch-date-wrap{display:grid;grid-template-columns:.72fr 1.28fr;gap:18px;align-items:stretch}.jb-ch-date-copy{border-radius:24px;background:linear-gradient(145deg,#c8a46f,#a8804b);color:#fff;display:grid;align-content:center;justify-items:center;padding:24px;text-align:center}.jb-ch-date-copy .jb-ch-kicker{color:#fff9}.jb-ch-date-copy>strong{font-family:"Playfair Display",serif;font-size:clamp(100px,15vw,180px);line-height:.75;font-weight:500}.jb-ch-date-copy>span{text-transform:capitalize;font-family:"Playfair Display",serif;font-size:26px}.jb-ch-date-copy>b{margin-top:12px;font-size:24px}.jb-ch-calendar{padding:18px;border:1px solid #b28a5222;border-radius:24px;background:#fffdf8}.jb-ch-calendar-head{display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.12em;color:#907554;font-size:12px}.jb-ch-calendar-week,.jb-ch-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:10px}.jb-ch-calendar-week span,.jb-ch-calendar-grid span{display:grid;place-items:center;min-height:39px;border-radius:10px}.jb-ch-calendar-week span{font-size:9px;color:#9b8a74;text-transform:uppercase}.jb-ch-calendar-grid span{background:#fbf3e8;border:1px solid #b28a5214;font-size:13px}.jb-ch-calendar-grid .is-muted{opacity:.25}.jb-ch-calendar-grid .is-active{background:#b28a52;color:#fff;box-shadow:0 10px 22px #b28a5244}.jb-ch-countdown-card{text-align:center}.jb-ch-countdown-card .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px}.jb-ch-countdown-card .countdown div{background:linear-gradient(180deg,#fff,#f1e4d1)!important;border:1px solid #b28a5228;border-radius:22px;padding:20px 10px}.jb-ch-countdown-card .countdown strong{font-family:"Playfair Display",serif;font-size:clamp(36px,6vw,68px);color:#8d6a3e}.jb-ch-countdown-card .countdown span{font-size:9px;color:#887764;letter-spacing:.12em}.jb-ch-hosts-card{text-align:center;max-width:760px}.jb-ch-venue-card{text-align:center;max-width:760px}.jb-ch-venue-card>a,.jb-ch-contact-card>a{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:11px 17px;border:1px solid #b28a5233;border-radius:999px;color:#725635;text-decoration:none}.jb-ch-program-shell,.jb-ch-gallery-shell{width:min(1040px,100%);margin:auto}.jb-ch-program-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}.jb-ch-program-card{min-height:220px;padding:24px;border:1px solid #b28a5222;background:#fffaf1;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between}.jb-ch-program-card span{font-size:10px;letter-spacing:.18em;color:#b28a52}.jb-ch-program-card strong{font-family:"Playfair Display",serif;font-size:36px;font-weight:500}.jb-ch-program-card p{margin:0;color:#7d6d5a}.jb-ch-gallery-head{text-align:center;margin-bottom:18px}.jb-ch-salon{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:start}.jb-ch-gallery-photo{position:relative;margin:0;padding:10px;background:#fff;border:1px solid #b28a5220;box-shadow:0 16px 30px #765b3b14;height:300px;min-height:0;overflow:hidden}.jb-ch-gallery-photo img{width:100%;height:100%;object-fit:cover;display:block}.jb-ch-gallery-photo-0{grid-column:1/span 7;height:390px}.jb-ch-gallery-photo-1{grid-column:8/span 5;height:300px;margin-top:40px}.jb-ch-gallery-photo-2{grid-column:2/span 4;height:280px}.jb-ch-gallery-photo-3{grid-column:6/span 6;height:360px}.jb-ch-gallery-photo-4{grid-column:1/span 5;height:320px}.jb-ch-gallery-photo-5{grid-column:6/span 3;height:280px}.jb-ch-gallery-photo-6{grid-column:9/span 4;height:320px}.jb-ch-gallery-photo-7{grid-column:3/span 8;height:360px}.jb-ch-dress-card,.jb-ch-contact-card{text-align:center;max-width:760px}.jb-ch-swatches{display:flex;justify-content:center;gap:10px;margin-top:18px}.jb-ch-swatches i{width:32px;height:32px;border-radius:50%;background:#f8efdf;border:1px solid #b28a5222}.jb-ch-swatches i:nth-child(2){background:#e9d6b7}.jb-ch-swatches i:nth-child(3){background:#ceb184}.jb-ch-swatches i:nth-child(4){background:#a47d4b}.jb-ch-swatches i:nth-child(5){background:#5e4b37}.jb-ch-final{min-height:82svh;display:grid;place-items:center;padding:70px 22px;background:linear-gradient(180deg,#efe1cb,#f8f2e9)}.jb-ch-final-inner{text-align:center;max-width:850px;position:relative}.jb-ch-final-inner:before,.jb-ch-final-inner:after{content:"";position:absolute;border:1px solid #b28a5238;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);z-index:0}.jb-ch-final-inner:before{width:430px;height:430px}.jb-ch-final-inner:after{width:320px;height:320px}.jb-ch-final-inner>*{position:relative;z-index:1}.jb-ch-final-age{display:block;font-family:"Playfair Display",serif;font-size:clamp(120px,21vw,260px);line-height:.7;color:#b28a524a}.jb-ch-final-inner>span{display:block;color:#a7804b;letter-spacing:.24em;font-size:10px;margin:20px 0 13px}.jb-ch-final-inner h2{max-width:11ch;margin:auto}.jb-ch-final-inner p{margin:20px auto 0;color:#715f4c}.jb-ch-final-inner small{display:block;margin-top:18px;color:#9b8b78}

/* --- Jubilee Heritage 02 --- */
.jubilee-heritage-v2{--jbh-bg:#17352e;--jbh-paper:#eadfcb;--jbh-paper2:#f4ead9;--jbh-ink:#233f38;--jbh-copper:#b17750;--jbh-dark:#102821;--jbh-muted:#6f756d;background:var(--jbh-bg);color:#eee5d7;font-family:"DM Sans",sans-serif}.jb-hg-label,.jb-hg-kicker{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#cf9e79}.jb-hg-gate-age{display:block;font-family:"Playfair Display",serif;font-size:84px;line-height:.8;color:#c08a61;margin:18px 0}.jb-hg-hero{position:relative;min-height:100svh;overflow:hidden;background:#17352e;padding:50px 22px}.jb-hg-paper{position:absolute;inset:5vh 6vw;background:#eadfcb;clip-path:polygon(0 2%,5% 0,12% 2%,20% 1%,29% 2.5%,38% .5%,47% 2%,58% 0,69% 2.2%,80% .8%,91% 2.4%,100% 1%,100% 98%,91% 100%,80% 98%,68% 99.5%,56% 97.8%,45% 100%,33% 98%,22% 99.4%,10% 97.7%,0 99%);box-shadow:0 30px 80px #0003}.jb-hg-photo{position:absolute;right:8vw;top:13vh;width:min(43vw,520px);height:68vh;overflow:hidden;border:16px solid #f4ead9;box-shadow:0 28px 50px #0003;transform:rotate(1.8deg)}.jb-hg-photo img{width:100%;height:100%;object-fit:cover;filter:sepia(.28) saturate(.72) contrast(.98)}.jb-hg-placeholder{width:100%;height:100%;display:grid;place-items:center;background:#d7c5a8;color:#a1704d;font-family:"Playfair Display",serif;font-size:150px}.jb-hg-hero-copy{position:relative;z-index:2;width:min(1080px,calc(100% - 70px));min-height:calc(100svh - 100px);margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;color:#233f38}.jb-hg-age-seal{display:grid;place-content:center;text-align:center;width:118px;height:118px;border:2px solid #b17750;border-radius:50%;transform:rotate(-6deg);margin:18px 0;color:#9f6847}.jb-hg-age-seal strong{font-family:"Playfair Display",serif;font-size:58px;line-height:.8}.jb-hg-age-seal small{margin-top:8px;font-size:9px;letter-spacing:.18em}.jb-hg-name{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(54px,8vw,108px);line-height:.9;max-width:7ch;margin:10px 0}.jb-hg-name-medium{font-size:clamp(48px,7vw,92px)}.jb-hg-name-compact{font-size:clamp(40px,6vw,76px)}.jb-hg-meta{display:flex;gap:10px;flex-wrap:wrap;color:#52665e}.jb-hg-meta>*{padding:8px 11px;border-bottom:1px solid #b1775055;font-size:11px}.jb-hg-file-code{position:absolute;left:8vw;bottom:7vh;z-index:2;color:#b17750;font-size:9px;letter-spacing:.22em}.jb-hg-chevron{position:absolute;right:8vw;bottom:7vh;z-index:2;color:#b17750}.jb-hg-section{padding:32px 22px;background:#17352e}.jb-hg-document,.jb-hg-index-card,.jb-hg-ledger-countdown,.jb-hg-place-card{width:min(980px,100%);margin:auto;background:#eadfcb;color:#233f38;padding:38px 30px;box-shadow:0 18px 42px #0002;position:relative}.jb-hg-document:before,.jb-hg-index-card:before,.jb-hg-place-card:before{content:"";position:absolute;inset:10px;border:1px solid #b1775038;pointer-events:none}.jb-hg-copy{max-width:880px}.jb-hg-copy h2,.jb-hg-hosts-card h2,.jb-hg-place-card h2,.jb-hg-dress-card h2,.jb-hg-contact-card h2,.jb-hg-gallery-head h2,.jb-hg-final-inner h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(34px,5vw,62px);line-height:1.02;margin:0 0 15px}.jb-hg-copy p,.jb-hg-place-card p,.jb-hg-dress-card p{max-width:650px;color:#5f6d66;line-height:1.85}.jb-hg-stamp{position:absolute;right:24px;bottom:22px;border:2px solid #b1775077;color:#b17750;padding:7px 10px;transform:rotate(-8deg);font-size:9px;letter-spacing:.2em}.jb-hg-index-card{display:grid;grid-template-columns:.7fr 1.3fr;gap:28px;align-items:center}.jb-hg-index-number{display:grid;justify-items:center;border-right:1px solid #b1775044;padding-right:22px}.jb-hg-index-number strong{font-family:"Playfair Display",serif;font-size:clamp(100px,16vw,180px);line-height:.72;color:#a36b49;font-weight:500}.jb-hg-index-number span{margin-top:14px;text-transform:uppercase;letter-spacing:.18em;color:#806b59}.jb-hg-index-copy{display:grid;gap:9px}.jb-hg-index-copy h2{margin:0;font-family:"Playfair Display",serif;font-size:clamp(38px,5vw,64px);font-weight:500}.jb-hg-index-copy p{margin:0;color:#6f756d}.jb-hg-index-copy b{font-size:24px}.jb-hg-ledger-countdown{background:#102821;color:#eee5d7}.jb-hg-ledger-countdown .jb-hg-kicker{color:#d29b73}.jb-hg-ledger-countdown .countdown{display:grid;grid-template-columns:repeat(4,1fr);margin-top:22px;border-top:1px solid #b1775044;border-left:1px solid #b1775044}.jb-hg-ledger-countdown .countdown div{border-right:1px solid #b1775044;border-bottom:1px solid #b1775044;background:transparent!important;padding:22px 10px}.jb-hg-ledger-countdown .countdown strong{font-family:"Playfair Display",serif;font-size:clamp(38px,6vw,68px);color:#d3ab88}.jb-hg-ledger-countdown .countdown span{font-size:9px;letter-spacing:.12em;color:#aaa89f}.jb-hg-hosts-card{text-align:center;max-width:760px}.jb-hg-place-card{max-width:800px}.jb-hg-place-card>a,.jb-hg-contact-card>a{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:10px 15px;border:1px solid #b1775055;color:#754e38;text-decoration:none}.jb-hg-program-shell,.jb-hg-gallery-shell{width:min(1040px,100%);margin:auto}.jb-hg-timeline{margin-top:20px;position:relative}.jb-hg-timeline:before{content:"";position:absolute;left:128px;top:0;bottom:0;width:1px;background:#b1775066}.jb-hg-timeline-row{display:grid;grid-template-columns:42px 70px 34px 1fr;gap:12px;align-items:center;min-height:92px}.jb-hg-timeline-row span{color:#8d958e;font-size:9px}.jb-hg-timeline-row strong{font-family:"Playfair Display",serif;font-size:20px;color:#d1a47f}.jb-hg-timeline-row i{width:13px;height:13px;border-radius:50%;background:#b17750;border:3px solid #17352e;box-shadow:0 0 0 1px #b17750;z-index:1}.jb-hg-timeline-row p{margin:0;color:#d8d2c8}.jb-hg-gallery-head{color:#eee5d7;margin-bottom:18px}.jb-hg-gallery-head .jb-hg-kicker{color:#cf9e79}.jb-hg-archive{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:start}.jb-hg-photo-card{margin:0;background:#eadfcb;padding:12px 12px 34px;box-shadow:0 16px 30px #0002;transform:rotate(-1deg);min-height:280px}.jb-hg-photo-card:nth-child(even){transform:rotate(1.2deg)}.jb-hg-photo-card img{width:100%;height:100%;object-fit:cover;filter:sepia(.3) saturate(.72);display:block}.jb-hg-photo-card figcaption{display:flex;justify-content:space-between;gap:10px;color:#6e5c4e;font-size:9px;letter-spacing:.12em;margin-top:9px}.jb-hg-photo-card-0{grid-column:1/span 7;min-height:400px}.jb-hg-photo-card-1{grid-column:8/span 5;min-height:310px;margin-top:40px}.jb-hg-photo-card-2{grid-column:2/span 4;min-height:280px}.jb-hg-photo-card-3{grid-column:6/span 6;min-height:360px}.jb-hg-photo-card-4{grid-column:1/span 5;min-height:320px}.jb-hg-photo-card-5{grid-column:6/span 3;min-height:270px}.jb-hg-photo-card-6{grid-column:9/span 4;min-height:320px}.jb-hg-photo-card-7{grid-column:3/span 8;min-height:360px}.jb-hg-dress-card,.jb-hg-contact-card{text-align:center;max-width:780px}.jb-hg-swatches{display:flex;justify-content:center;gap:10px;margin-top:18px}.jb-hg-swatches i{width:32px;height:32px;border-radius:50%;background:#17352e;border:1px solid #b1775044}.jb-hg-swatches i:nth-child(2){background:#2f5348}.jb-hg-swatches i:nth-child(3){background:#b17750}.jb-hg-swatches i:nth-child(4){background:#d0b99d}.jb-hg-swatches i:nth-child(5){background:#eee5d7}.jb-hg-final{min-height:84svh;display:grid;place-items:center;padding:70px 22px;background:linear-gradient(180deg,#17352e,#102821)}.jb-hg-final-inner{text-align:center;max-width:850px}.jb-hg-final-inner>span{display:block;color:#cf9e79;letter-spacing:.22em;font-size:10px}.jb-hg-final-age{display:block;font-family:"Playfair Display",serif;font-size:clamp(130px,22vw,280px);line-height:.68;color:#b1775045;margin:20px 0}.jb-hg-final-inner h2{max-width:10ch;margin:auto;color:#eee5d7}.jb-hg-final-inner p{margin:22px auto 0;color:#eee5d7}.jb-hg-final-inner small{display:block;margin-top:18px;color:#8f9a91}

/* gallery reveal reliability */
.jb-noir-photo,.jb-ch-gallery-photo,.jb-hg-photo-card{opacity:1!important;filter:none!important}

@media (max-width:900px){.jb-noir-contact-sheet{grid-template-columns:repeat(2,1fr)}.jb-noir-photo-0,.jb-noir-photo-5{grid-column:auto;grid-row:auto}.jb-ch-hero-photo{width:54vw;right:-2vw}.jb-ch-program-cards{grid-template-columns:1fr 1fr}.jb-ch-salon,.jb-hg-archive{grid-template-columns:1fr 1fr}.jb-ch-gallery-photo,.jb-ch-gallery-photo-0,.jb-ch-gallery-photo-1,.jb-ch-gallery-photo-2,.jb-ch-gallery-photo-3,.jb-ch-gallery-photo-4,.jb-ch-gallery-photo-5,.jb-ch-gallery-photo-6,.jb-ch-gallery-photo-7{grid-column:auto;height:300px;min-height:0;margin-top:0}.jb-hg-photo-card,.jb-hg-photo-card-0,.jb-hg-photo-card-1,.jb-hg-photo-card-2,.jb-hg-photo-card-3,.jb-hg-photo-card-4,.jb-hg-photo-card-5,.jb-hg-photo-card-6,.jb-hg-photo-card-7{grid-column:auto;min-height:280px;margin-top:0}.jb-hg-photo{width:49vw;right:4vw}.jb-hg-hero-copy{width:calc(100% - 40px)}}
@media (max-width:640px){.jb-noir-hero-copy,.jb-ch-hero-copy,.jb-hg-hero-copy{width:calc(100% - 34px);padding-top:52vh;justify-content:flex-end;padding-bottom:10vh}.jb-noir-hero-overlay{background:linear-gradient(180deg,#05050544 0 35%,#050505f5 72%)}.jb-noir-age strong,.jb-ch-age strong{font-size:96px}.jb-noir-name,.jb-ch-name,.jb-hg-name{font-size:clamp(42px,14vw,66px)}.jb-noir-copy,.jb-noir-date-card,.jb-ch-date-wrap,.jb-hg-index-card{grid-template-columns:1fr}.jb-noir-date-day{text-align:center}.jb-noir-countdown-card .countdown,.jb-ch-countdown-card .countdown,.jb-hg-ledger-countdown .countdown{grid-template-columns:repeat(2,1fr)}.jb-noir-program-row{grid-template-columns:34px 72px 1fr}.jb-noir-program-row i{display:none}.jb-noir-contact-sheet,.jb-ch-program-cards,.jb-ch-salon,.jb-hg-archive{grid-template-columns:1fr}.jb-ch-gallery-photo,.jb-ch-gallery-photo-0,.jb-ch-gallery-photo-1,.jb-ch-gallery-photo-2,.jb-ch-gallery-photo-3,.jb-ch-gallery-photo-4,.jb-ch-gallery-photo-5,.jb-ch-gallery-photo-6,.jb-ch-gallery-photo-7{height:260px}.jb-ch-hero-photo,.jb-hg-photo{left:18px;right:18px;width:auto;height:43vh;top:8vh}.jb-ch-hero-copy{padding-top:49vh}.jb-ch-date-copy>strong{font-size:100px}.jb-ch-calendar-week,.jb-ch-calendar-grid{gap:5px}.jb-ch-calendar-week span,.jb-ch-calendar-grid span{min-height:34px}.jb-hg-paper{inset:3vh 10px}.jb-hg-photo{top:8vh;height:40vh;border-width:10px;transform:rotate(1deg)}.jb-hg-hero-copy{padding-top:48vh;color:#233f38}.jb-hg-age-seal{width:86px;height:86px}.jb-hg-age-seal strong{font-size:42px}.jb-hg-timeline:before{left:101px}.jb-hg-timeline-row{grid-template-columns:28px 58px 28px 1fr;gap:8px}.jb-hg-document,.jb-hg-index-card,.jb-hg-ledger-countdown,.jb-hg-place-card,.jb-noir-panel,.jb-noir-date-card,.jb-noir-countdown-card,.jb-noir-venue-card,.jb-ch-card,.jb-ch-date-wrap,.jb-ch-countdown-card{padding:24px 18px}.jb-noir-final-age,.jb-ch-final-age,.jb-hg-final-age{font-size:120px}.jb-ch-final-inner:before{width:280px;height:280px}.jb-ch-final-inner:after{width:210px;height:210px}}

/* =========================================================
   Stage 8 — Wedding anniversary collection
   Vow / Paper Love / Afterglow
   ========================================================= */
.anniversary-vow-v2,.anniversary-paper-v2,.anniversary-afterglow-v2{--an-bg:#f1e8df;--an-paper:#fffaf3;--an-ink:#4a3535;--an-muted:#836e6e;--an-accent:#a96f68;--an-dark:#573d3d;--an-light:#fff8f1;background:var(--an-bg);color:var(--an-ink);overflow:hidden}.an-section{padding:32px 22px}.an-card,.an-date-card,.an-countdown-card{width:min(980px,100%);margin:auto}.an-card{padding:38px 30px}.an-card>small,.an-kicker,.an-gallery-head>span,.an-countdown-card>span{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase}.an-card h2,.an-gallery-head h2,.an-final-inner h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(36px,5vw,66px);line-height:.98;margin:10px 0 15px}.an-card p{line-height:1.8;color:var(--an-muted)}.an-hero{position:relative;min-height:100svh;overflow:hidden}.an-hero-photo{position:absolute;overflow:hidden}.an-hero-photo img{width:100%;height:100%;object-fit:cover}.an-hero-placeholder{width:100%;height:100%;display:grid;place-items:center;font-family:"Playfair Display",serif;font-size:150px}.an-hero-copy{position:relative;z-index:3}.an-hero-copy>span{font-size:10px;letter-spacing:.25em;text-transform:uppercase}.an-years{display:flex;align-items:end;gap:10px}.an-years strong{font-size:clamp(92px,15vw,190px);line-height:.7;letter-spacing:-.08em}.an-years small{padding-bottom:9px;font-size:10px;letter-spacing:.2em;max-width:11ch}.an-names{font-family:"Playfair Display",serif;font-size:clamp(54px,8vw,110px);font-weight:500;line-height:.86;margin:20px 0}.an-names em,.an-final-names em{display:inline-block;font-weight:400;font-style:italic;margin:0 .18em}.an-names-medium{font-size:clamp(46px,7vw,88px)}.an-names-compact{font-size:clamp(38px,6vw,72px)}.an-hero-copy>p{font-size:18px}.an-hero-copy>b{font-size:28px}.an-chevron{position:absolute;z-index:4;bottom:26px;left:50%}.an-origin{display:grid;gap:5px;margin-top:24px;padding-top:18px;border-top:1px solid currentColor}.an-origin small{text-transform:uppercase;letter-spacing:.16em}.an-origin strong{font-family:"Playfair Display",serif;font-size:22px}.an-date-card{display:grid;grid-template-columns:.72fr 1.28fr;gap:18px;padding:22px}.an-date-copy{display:grid;align-content:center;justify-items:center;text-align:center;padding:28px}.an-date-copy small{font-size:10px;letter-spacing:.18em;text-transform:uppercase}.an-date-copy>strong{font-family:"Playfair Display",serif;font-size:clamp(100px,15vw,180px);font-weight:500;line-height:.72}.an-date-copy>span{font-family:"Playfair Display",serif;font-size:28px}.an-date-copy>b{font-size:22px}.an-date-copy>em{margin-top:12px;font-style:normal;font-size:28px}.an-calendar{padding:20px}.an-calendar-week,.an-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.an-calendar-week span,.an-calendar-grid span{display:grid;place-items:center;min-height:40px}.an-calendar-week span{font-size:9px;text-transform:uppercase;color:var(--an-muted)}.an-calendar-grid span{border:1px solid rgba(73,52,52,.09)}.an-calendar-grid .is-muted{opacity:.22}.an-calendar-grid .is-active{background:var(--an-accent);color:#fff;border-color:transparent}.an-countdown-card{padding:34px 28px;text-align:center}.an-countdown-card .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}.an-countdown-card .countdown div{padding:20px 8px}.an-countdown-card .countdown strong{font-size:clamp(38px,6vw,72px)}.an-host-card,.an-venue-card,.an-dress-card,.an-contact-card{text-align:center;max-width:780px}.an-venue-card a,.an-contact-card a{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:11px 17px;text-decoration:none}.an-program-shell,.an-gallery-shell{width:min(1060px,100%);margin:auto}.an-program-list{margin-top:20px}.an-program-row{display:grid;grid-template-columns:46px 100px 1fr;gap:14px;align-items:center;padding:19px 0}.an-program-row>span{font-size:9px;letter-spacing:.18em}.an-program-row>strong{font-size:21px}.an-program-row>p{margin:0}.an-gallery-head{margin-bottom:20px}.an-gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;align-items:start}.an-photo{position:relative;margin:0;overflow:hidden;min-height:280px}.an-photo img{width:100%;height:100%;object-fit:cover;display:block}.an-photo figcaption{font-size:9px;letter-spacing:.16em}.an-photo-0{grid-column:span 7;min-height:430px}.an-photo-1{grid-column:span 5;min-height:330px;margin-top:45px}.an-photo-2{grid-column:2/span 4}.an-photo-3{grid-column:6/span 6;min-height:370px}.an-photo-4{grid-column:span 5}.an-photo-5{grid-column:span 3}.an-photo-6{grid-column:span 4}.an-photo-7{grid-column:3/span 8;min-height:360px}.an-swatches{display:flex;justify-content:center;gap:9px;margin-top:18px}.an-swatches i{width:34px;height:34px}.an-final{min-height:84svh;display:grid;place-items:center;padding:70px 22px}.an-final-inner{text-align:center;max-width:900px}.an-final-inner>span{display:block;margin:15px 0;font-size:10px;letter-spacing:.24em;text-transform:uppercase}.an-final-names{font-family:"Playfair Display",serif;font-size:clamp(42px,7vw,88px);line-height:.9}.an-final-inner>strong{display:block;font-size:clamp(90px,16vw,190px);line-height:.8;opacity:.16}.an-final-inner>small{display:block;margin-top:20px;opacity:.55}

/* Vow — premium classic, pearl and burgundy */
.an-vow{--an-bg:#eee5df;--an-paper:#fffaf4;--an-ink:#493535;--an-muted:#826f6b;--an-accent:#925e5c;--an-dark:#4c3335;--an-light:#fff9f2}.an-vow .an-hero{background:linear-gradient(110deg,#f8f1e9 0 53%,#e2d3cb 53%)}.an-vow .an-hero-orbit{position:absolute;width:70vw;height:70vw;border:1px solid #925e5c33;border-radius:50%;right:-22vw;top:-15vw;box-shadow:0 0 0 46px #fff4}.an-vow .an-hero-photo{right:7vw;top:8vh;width:min(43vw,540px);height:78vh;border-radius:50% 50% 22px 22px/22% 22% 22px 22px;border:12px solid #fff9f2;box-shadow:0 28px 70px #5b403329}.an-vow .an-hero-placeholder{background:#d8c0b6;color:#fff}.an-vow .an-hero-copy{width:min(1080px,calc(100% - 60px));min-height:100svh;margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.an-vow .an-years strong{color:#925e5c}.an-vow .an-names{max-width:7ch}.an-vow .an-intro,.an-vow .an-date,.an-vow .an-hosts,.an-vow .an-program,.an-vow .an-dress{background:#eee5df}.an-vow .an-card,.an-vow .an-date-card,.an-vow .an-countdown-card{background:#fffaf4;border:1px solid #925e5c1f;border-radius:28px;box-shadow:0 18px 45px #5b40330c}.an-vow .an-story-card{text-align:center;max-width:860px}.an-vow .an-story-card svg{color:#925e5c}.an-vow .an-date-copy{background:#5a3e40;color:#fff;border-radius:22px}.an-vow .an-calendar{background:#fff;border-radius:22px}.an-vow .an-calendar-grid .is-active{border-radius:50%;box-shadow:0 9px 22px #925e5c44}.an-vow .an-countdown,.an-vow .an-venue,.an-vow .an-gallery,.an-vow .an-contact{background:#f8f1e9}.an-vow .an-countdown-card .countdown div{background:#eee5df!important;border-radius:999px}.an-vow .an-countdown-card .countdown strong{font-family:"Playfair Display",serif;color:#925e5c}.an-vow .an-venue-card a,.an-vow .an-contact-card a{border-radius:999px;background:#925e5c;color:#fff}.an-vow .an-program-row{border-bottom:1px solid #925e5c2b}.an-vow .an-program-row>span{color:#925e5c}.an-vow .an-photo{padding:10px;background:#fff;border-radius:18px;box-shadow:0 16px 34px #5b40331a}.an-vow .an-photo figcaption{position:absolute;right:18px;bottom:16px;color:#925e5c}.an-vow .an-swatches i{border-radius:50%;background:#fff9f2;border:1px solid #925e5c22}.an-vow .an-swatches i:nth-child(2){background:#e0c9c1}.an-vow .an-swatches i:nth-child(3){background:#bd9186}.an-vow .an-swatches i:nth-child(4){background:#925e5c}.an-vow .an-swatches i:nth-child(5){background:#4c3335}.an-vow .an-final{background:radial-gradient(circle at 50% 45%,#fffaf4,#e2d2ca)}.an-vow .an-final-inner svg{color:#925e5c}.an-vow .an-final-inner:before{content:"";display:block;width:120px;height:1px;background:#925e5c;margin:0 auto 30px}

/* Paper Love — tactile scrapbook and correspondence */
.an-paper{--an-bg:#d9c8b3;--an-paper:#f7efdf;--an-ink:#3f332c;--an-muted:#76665b;--an-accent:#b45246;--an-dark:#5c4439;--an-light:#fffaf0;font-family:"DM Sans",sans-serif;background:#d9c8b3}.an-paper .an-hero{background:#d9c8b3;background-image:radial-gradient(#5a433427 1px,transparent 1px);background-size:18px 18px}.an-paper .an-hero:before{content:"";position:absolute;inset:5vh 6vw;background:#f7efdf;clip-path:polygon(0 2%,8% 0,18% 2%,30% .5%,44% 2%,58% 0,73% 2%,86% .5%,100% 2%,98% 100%,84% 98%,70% 100%,54% 98%,38% 100%,22% 98%,7% 100%,1% 97%);box-shadow:0 30px 70px #4f38282f}.an-paper .an-hero-photo{right:9vw;top:13vh;width:min(42vw,510px);height:66vh;border:15px solid #fff;border-bottom-width:52px;box-shadow:12px 18px 0 #694f3a20;transform:rotate(3deg)}.an-paper .an-hero-placeholder{background:#c6a78c;color:#f7efdf}.an-paper .an-hero-copy{width:min(1080px,calc(100% - 90px));min-height:100svh;margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.an-paper .an-years{transform:rotate(-3deg);background:#b45246;color:#fff;padding:10px 18px}.an-paper .an-years strong{font-size:clamp(70px,11vw,140px)}.an-paper .an-names{font-style:italic;max-width:6ch}.an-paper .an-hero-copy>span,.an-vow .an-hero-copy>span{opacity:.86}.an-paper .an-section{background:#d9c8b3}.an-paper .an-card,.an-paper .an-date-card,.an-paper .an-countdown-card{background:#f7efdf;border-radius:2px;box-shadow:10px 14px 0 #60473116}.an-paper .an-story-card{max-width:850px;transform:rotate(-.7deg);position:relative}.an-paper .an-story-card:after{content:"P.S. ♥";position:absolute;right:26px;bottom:22px;color:#b45246;font-family:"Playfair Display",serif;font-style:italic}.an-paper .an-date-card{grid-template-columns:1fr 1fr;transform:rotate(.6deg)}.an-paper .an-date-copy{justify-items:start;text-align:left;border-right:1px dashed #8f765d88}.an-paper .an-date-copy>strong{color:#b45246}.an-paper-stamp{display:grid;place-content:center;justify-items:center;margin:auto;width:170px;height:170px;border:3px double #b45246;border-radius:50%;color:#b45246;transform:rotate(-9deg)}.an-paper-stamp span,.an-paper-stamp b{font-size:12px;letter-spacing:.28em}.an-paper-stamp strong{font-family:"Playfair Display",serif;font-size:42px}.an-paper .an-countdown-card .countdown{gap:14px}.an-paper .an-countdown-card .countdown div{position:relative;background:#fffaf0!important;border:1px solid #b59b7b55;box-shadow:5px 6px 0 #60473110;transform:rotate(-2deg)}.an-paper .an-countdown-card .countdown div:nth-child(even){transform:rotate(2deg)}.an-paper .an-countdown-card .countdown strong{font-family:"Playfair Display",serif;color:#b45246}.an-paper .an-venue-card a,.an-paper .an-contact-card a{border:1px dashed #b45246;color:#b45246}.an-paper .an-program-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.an-paper .an-program-row{grid-template-columns:34px 76px 1fr;padding:22px;background:#f7efdf;box-shadow:5px 7px 0 #60473110;transform:rotate(-.6deg)}.an-paper .an-program-row:nth-child(even){transform:rotate(.8deg)}.an-paper .an-program-row>span{color:#b45246}.an-paper .an-gallery-head{text-align:center}.an-paper .an-photo{padding:12px 12px 36px;background:#fff;box-shadow:0 16px 30px #4d372520;transform:rotate(-2deg)}.an-paper .an-photo:nth-child(even){transform:rotate(2.5deg)}.an-paper .an-photo figcaption{position:absolute;left:16px;bottom:13px;color:#7f6957}.an-paper .an-swatches i{background:#f7efdf;border:1px solid #7d634b33}.an-paper .an-swatches i:nth-child(2){background:#d9c8b3}.an-paper .an-swatches i:nth-child(3){background:#b45246}.an-paper .an-swatches i:nth-child(4){background:#7b5d49}.an-paper .an-swatches i:nth-child(5){background:#3f332c}.an-paper .an-final{background:#cdb79a;background-image:radial-gradient(#5a433421 1px,transparent 1px);background-size:18px 18px}.an-paper .an-final-inner{padding:54px 38px;background:#f7efdf;box-shadow:14px 18px 0 #5f463320;transform:rotate(-1deg);clip-path:polygon(0 2%,8% 0,18% 2%,30% .5%,44% 2%,58% 0,73% 2%,86% .5%,100% 2%,98% 100%,84% 98%,70% 100%,54% 98%,38% 100%,22% 98%,7% 100%,1% 97%)}.an-paper .an-final-inner svg{color:#b45246}

/* Afterglow — cinematic dusk and film language */
.an-glow{--an-bg:#15111f;--an-paper:#221a30;--an-ink:#f4e7df;--an-muted:#b6a6ad;--an-accent:#ff926f;--an-dark:#0b0911;--an-light:#fff4eb;background:#15111f;color:#f4e7df;font-family:"Space Grotesk","DM Sans",sans-serif}.an-glow .an-hero{background:#0b0911}.an-glow .an-hero-photo{inset:0}.an-glow .an-hero-photo img{filter:saturate(.86) contrast(1.04) brightness(.88)}.an-glow .an-hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b0911d8 0 30%,#0b091140 62%,transparent),linear-gradient(180deg,transparent 60%,#0b0911d6)}.an-glow .an-hero-orbit{position:absolute;z-index:2;left:-10vw;right:-10vw;bottom:14vh;height:2px;background:linear-gradient(90deg,transparent,#ff926f,#e884bc,transparent);box-shadow:0 0 35px #ff926f}.an-glow .an-hero-placeholder{background:linear-gradient(180deg,#4c385f,#181020);color:#ff926f}.an-glow .an-hero-copy{width:min(1180px,calc(100% - 64px));min-height:100svh;margin:auto;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:11vh}.an-glow .an-years strong{color:#ff926f;text-shadow:0 0 28px #ff926f55}.an-glow .an-names{font-family:"Space Grotesk",sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:-.075em;max-width:10ch}.an-glow .an-names em{color:#ff926f}.an-glow .an-section{background:#15111f;color:#f4e7df}.an-glow .an-card,.an-glow .an-date-card,.an-glow .an-countdown-card{background:#1e1729;border:1px solid #4c3b5c;border-radius:0}.an-glow .an-card p{color:#b6a6ad}.an-glow .an-story-card{max-width:940px;border-left:4px solid #ff926f}.an-glow .an-date-card{grid-template-columns:.75fr 1.25fr}.an-glow .an-date-copy{background:#0b0911;border-right:1px solid #4c3b5c}.an-glow .an-date-copy>strong{font-family:"Space Grotesk",sans-serif;color:#ff926f;font-weight:600}.an-film-slate{display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:14px;padding:30px;text-transform:uppercase}.an-film-slate span{grid-column:1/-1;color:#ff926f;letter-spacing:.22em;font-size:10px}.an-film-slate strong{grid-column:1/-1;font-size:clamp(32px,5vw,62px);line-height:.95}.an-film-slate b{font-size:26px}.an-film-slate small{text-align:right;color:#a99cb0}.an-glow .an-countdown-card{background:#0b0911}.an-glow .an-countdown-card>span{color:#ff926f}.an-glow .an-countdown-card .countdown{gap:0;border:1px solid #45364f}.an-glow .an-countdown-card .countdown div{background:#15111f!important;border-right:1px solid #45364f}.an-glow .an-countdown-card .countdown strong{color:#ff926f;font-family:"Space Grotesk",sans-serif}.an-glow .an-venue-card a,.an-glow .an-contact-card a{background:#ff926f;color:#15111f}.an-glow .an-program-row{border-bottom:1px solid #3e3148}.an-glow .an-program-row>span{color:#ff926f}.an-glow .an-program-row>strong{color:#f2d2c8}.an-glow .an-gallery{background:#0b0911}.an-glow .an-gallery-grid{display:flex;gap:4px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.an-glow .an-photo{flex:0 0 min(72vw,520px);height:420px;min-height:420px;scroll-snap-align:center;border:1px solid #33273e;background:#0b0911}.an-glow .an-photo:first-child{margin-left:max(0px,calc((100vw - 1060px)/2))}.an-glow .an-photo img{filter:saturate(.78) contrast(1.08)}.an-glow .an-photo figcaption{display:none}.an-glow .an-swatches i{background:#15111f;border:1px solid #4c3b5c}.an-glow .an-swatches i:nth-child(2){background:#3b2a4a}.an-glow .an-swatches i:nth-child(3){background:#8d506b}.an-glow .an-swatches i:nth-child(4){background:#ff926f}.an-glow .an-swatches i:nth-child(5){background:#f4e7df}.an-glow .an-final{background:radial-gradient(circle at 50% 20%,#ff926f44,transparent 32%),linear-gradient(180deg,#20162c,#09070d);color:#fff}.an-glow .an-final-inner h2{font-family:"Space Grotesk",sans-serif;text-transform:uppercase;font-weight:600;letter-spacing:-.06em}.an-glow .an-final-inner svg{color:#ff926f}.an-glow .an-final-names{font-family:"Space Grotesk",sans-serif;text-transform:uppercase}.an-glow .an-final-inner>strong{color:#ff926f}

/* Anniversary catalog thumbnails */
.anniversary-thumb{position:relative;width:100%;height:100%;min-height:100%;overflow:hidden}.anniversary-thumb-photo{position:absolute;width:100%;height:100%;object-fit:cover}.anniversary-thumb-art{position:absolute;inset:0;pointer-events:none}.anniversary-thumb-copy{position:absolute;z-index:2;display:grid}.anniversary-thumb-copy span,.anniversary-thumb-copy small,.anniversary-thumb-copy i{font-size:9px;letter-spacing:.15em;text-transform:uppercase}.anniversary-thumb-copy strong{font-family:"Playfair Display",serif;font-size:clamp(24px,4vw,46px);font-weight:500;line-height:.9}.anniversary-thumb-copy strong em{font-style:italic;margin:0 .18em}.anniversary-thumb-copy b{font-size:64px;line-height:.8}.anniversary-thumb-copy i{font-style:normal}.anniversary-thumb-anniversary-vow{background:linear-gradient(110deg,#f7efe6 0 53%,#dfcec5 53%);color:#4b3535}.anniversary-thumb-anniversary-vow .anniversary-thumb-photo{width:56%;height:78%;right:5%;top:7%;border:8px solid #fff;border-radius:50% 50% 14px 14px/20% 20% 14px 14px}.anniversary-thumb-anniversary-vow .anniversary-thumb-art{background:radial-gradient(circle at 92% 4%,transparent 0 28%,#925e5c22 28.5% 29%,transparent 29.5%)}.anniversary-thumb-anniversary-vow .anniversary-thumb-copy{left:7%;top:14%;bottom:8%;width:46%;align-content:center}.anniversary-thumb-anniversary-vow .anniversary-thumb-copy strong{font-size:clamp(22px,3.4vw,38px);max-width:5.3ch}.anniversary-thumb-anniversary-vow .anniversary-thumb-copy b{order:-1;color:#925e5c}.anniversary-thumb-anniversary-vow .anniversary-thumb-copy small{color:#925e5c;margin-top:8px}.anniversary-thumb-anniversary-vow .anniversary-thumb-copy i{margin-top:10px}.anniversary-thumb-anniversary-paper{background:#d2bda1;color:#41352d}.anniversary-thumb-anniversary-paper .anniversary-thumb-photo{width:64%;height:66%;right:7%;top:11%;border:10px solid #fff;border-bottom-width:34px;transform:rotate(4deg);box-shadow:8px 10px 0 #654a3822;z-index:1}.anniversary-thumb-anniversary-paper .anniversary-thumb-art{z-index:0}.anniversary-thumb-anniversary-paper .anniversary-thumb-art:before{content:"";position:absolute;inset:7%;background:#f6ecd9;clip-path:polygon(0 3%,10% 0,24% 3%,40% 1%,58% 3%,73% 0,88% 3%,100% 1%,98% 98%,83% 96%,68% 100%,50% 97%,34% 100%,17% 97%,1% 100%)}.anniversary-thumb-anniversary-paper .anniversary-thumb-copy{left:9%;bottom:8%;width:62%;transform:rotate(-2deg)}.anniversary-thumb-anniversary-paper .anniversary-thumb-copy span,.anniversary-thumb-anniversary-paper .anniversary-thumb-copy small{color:#b45246}.anniversary-thumb-anniversary-paper .anniversary-thumb-copy b{position:absolute;right:-36%;top:-155%;color:#b45246;transform:rotate(7deg)}.anniversary-thumb-anniversary-paper .anniversary-thumb-copy i{margin-top:8px}.anniversary-thumb-anniversary-afterglow{background:#0c0912;color:#fff}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-photo{inset:0;filter:saturate(.84) contrast(1.04) brightness(.9)}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-art{background:linear-gradient(90deg,#0b0911ca 0 34%,transparent 78%),linear-gradient(180deg,transparent 62%,#0b0911b6)}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-art:after{content:"";position:absolute;left:-10%;right:-10%;bottom:27%;height:2px;background:linear-gradient(90deg,transparent,#ff926f,#e884bc,transparent);box-shadow:0 0 18px #ff926f}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-copy{left:7%;right:5%;bottom:9%;align-content:end}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-copy strong{font-family:"Space Grotesk",sans-serif;text-transform:uppercase;font-weight:600;letter-spacing:-.06em}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-copy strong em{color:#ff926f}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-copy span,.anniversary-thumb-anniversary-afterglow .anniversary-thumb-copy small{color:#ff926f}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-copy b{position:absolute;right:0;bottom:0;color:#ff926f55;font-size:120px}.anniversary-thumb-anniversary-afterglow .anniversary-thumb-copy i{margin-top:8px}

/* Restore Qyz Uzatu card compositions in the cumulative build. */
.qyz-thumb{position:relative;width:100%;height:100%;min-height:100%;overflow:hidden;isolation:isolate;background:#eee4d4;color:#493d32}.qyz-thumb-photo{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.qyz-thumb-art{position:absolute;inset:0;pointer-events:none}.qyz-thumb-copy{position:absolute;z-index:3;display:grid;gap:6px}.qyz-thumb-copy span{font:700 8px/1.2 "Noto Sans",sans-serif;letter-spacing:.22em;text-transform:uppercase}.qyz-thumb-copy strong{font-family:"Playfair Display",serif;font-size:clamp(28px,3.7vw,46px);font-weight:500;line-height:.9;letter-spacing:-.045em}.qyz-thumb-copy small,.qyz-thumb-copy em{font:600 9px/1.2 "Noto Sans",sans-serif;letter-spacing:.16em;text-transform:uppercase}.qyz-thumb-copy em{font-style:normal}.template-card:hover .qyz-thumb-photo{transform:scale(1.025)}.qyz-thumb-qyz-uzatu-miras{background:linear-gradient(145deg,#f4ead9,#ded0b7)}.qyz-thumb-qyz-uzatu-miras .qyz-thumb-photo{inset:7% 17% 18%;width:66%;height:75%;border-radius:48% 48% 18px 18px/18% 18% 18px 18px;border:8px solid #f8f0e2;filter:saturate(.82);box-shadow:0 20px 38px #5c462b26}.qyz-thumb-qyz-uzatu-miras .qyz-thumb-art:before,.qyz-thumb-qyz-uzatu-miras .qyz-thumb-art:after{content:"";position:absolute;inset:5%;border:1px solid #a07c4552;clip-path:polygon(50% 0,56% 7%,93% 7%,93% 44%,100% 50%,93% 56%,93% 93%,56% 93%,50% 100%,44% 93%,7% 93%,7% 56%,0 50%,7% 44%,7% 7%,44% 7%)}.qyz-thumb-qyz-uzatu-miras .qyz-thumb-art:after{inset:9%;opacity:.6}.qyz-thumb-qyz-uzatu-miras .qyz-thumb-copy{left:6%;right:6%;bottom:5%;text-align:center;color:#594a38}.qyz-thumb-qyz-uzatu-miras .qyz-thumb-copy span,.qyz-thumb-qyz-uzatu-miras .qyz-thumb-copy small,.qyz-thumb-qyz-uzatu-miras .qyz-thumb-copy em{color:#a37b43}.qyz-thumb-qyz-uzatu-aq-bata{background:#f4efe5}.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-photo{right:7%;top:8%;width:58%;height:78%;border-radius:160px 160px 8px 8px;filter:saturate(.68) brightness(1.04);box-shadow:-14px 18px 0 #e9ddca}.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-art{background:linear-gradient(90deg,#f4efe5 0 36%,#f4efe5d1 48%,transparent 72%)}.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-art:before{content:"";position:absolute;left:7%;top:8%;bottom:8%;border-left:1px solid #b99662}.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-art:after{content:"ақ бата";position:absolute;left:10%;top:13%;font:500 8px/1 "Noto Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#a18155;writing-mode:vertical-rl}.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-copy{left:12%;bottom:9%;width:50%;color:#5c5045}.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-copy strong{font-size:clamp(30px,4vw,48px)}.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-copy span,.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-copy small,.qyz-thumb-qyz-uzatu-aq-bata .qyz-thumb-copy em{color:#a18155}.qyz-thumb-qyz-uzatu-tumar{background:#0b332d;color:#f5ead8}.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-photo{inset:0;filter:saturate(.64) contrast(1.08) brightness(.72)}.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-art{background:linear-gradient(105deg,#062520f5 0 42%,#0625209e 60%,#0625201f),linear-gradient(180deg,transparent 55%,#062520d1)}.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-art:before{content:"";position:absolute;width:118px;height:138px;right:8%;top:9%;background:#b86c48db;clip-path:polygon(50% 0,100% 27%,82% 100%,18% 100%,0 27%);mix-blend-mode:screen;opacity:.5}.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-art:after{content:"";position:absolute;inset:7%;border:1px solid #c57e5880}.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-copy{left:9%;top:17%;bottom:10%;width:55%;align-content:center;color:#fff1df}.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-copy strong{font-family:"Noto Sans",sans-serif;font-weight:700;font-size:clamp(34px,4.6vw,56px);letter-spacing:-.065em}.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-copy span,.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-copy small,.qyz-thumb-qyz-uzatu-tumar .qyz-thumb-copy em{color:#cf8a64}

@media (max-width:900px){.an-vow .an-hero-photo,.an-paper .an-hero-photo{width:52vw;right:3vw}.an-vow .an-hero-copy,.an-paper .an-hero-copy{width:calc(100% - 40px)}.an-gallery-grid{grid-template-columns:1fr 1fr}.an-photo,.an-photo-0,.an-photo-1,.an-photo-2,.an-photo-3,.an-photo-4,.an-photo-5,.an-photo-6,.an-photo-7{grid-column:auto;min-height:300px;margin-top:0}.an-paper .an-program-list{grid-template-columns:1fr}.an-glow .an-photo{flex-basis:75vw}}
@media (max-width:640px){.an-section{padding:24px 14px}.an-vow .an-hero,.an-paper .an-hero{min-height:100svh}.an-vow .an-hero-photo,.an-paper .an-hero-photo{left:18px;right:18px;top:7vh;width:auto;height:43vh;border-width:9px}.an-vow .an-hero-copy,.an-paper .an-hero-copy{width:calc(100% - 34px);padding-top:48vh;justify-content:flex-end;padding-bottom:9vh;align-items:center;text-align:center;gap:10px}.an-vow .an-hero-copy>span,.an-paper .an-hero-copy>span{padding:7px 12px;border-radius:999px;background:#fff8f0cc;backdrop-filter:blur(8px)}.an-vow .an-years,.an-paper .an-years{justify-content:center}.an-vow .an-names,.an-paper .an-names{max-width:none}.an-vow .an-hero{background:linear-gradient(180deg,#e2d3cb 0 48%,#f8f1e9 48%)}.an-paper .an-hero:before{inset:3vh 9px}.an-paper .an-hero-copy{position:relative}.an-glow .an-hero-copy{width:calc(100% - 34px);padding-bottom:9vh}.an-years strong{font-size:76px}.an-names{font-size:clamp(42px,14vw,66px)}.an-date-card{grid-template-columns:1fr;padding:16px}.an-calendar-week,.an-calendar-grid{gap:4px}.an-calendar-week span,.an-calendar-grid span{min-height:32px}.an-countdown-card .countdown{grid-template-columns:repeat(2,1fr)}.an-program-row{grid-template-columns:30px 68px 1fr;gap:8px}.an-gallery-grid{grid-template-columns:1fr}.an-glow .an-gallery-grid{display:flex}.an-glow .an-photo{flex-basis:86vw;height:380px;min-height:380px}.an-glow .an-date-card{grid-template-columns:1fr}.an-film-slate{padding:22px}.an-paper .an-date-card{grid-template-columns:1fr}.an-paper .an-date-copy{border-right:0;border-bottom:1px dashed #8f765d88}.an-paper-stamp{width:140px;height:140px;margin-block:12px}.an-card,.an-countdown-card{padding:26px 18px}.an-photo{min-height:280px}.an-final-inner{padding-inline:10px}.an-paper .an-final-inner{padding:42px 22px}.anniversary-thumb-copy b{font-size:54px}}

@media (prefers-reduced-motion:no-preference){.an-vow .an-hero-orbit{animation:anOrbit 18s linear infinite}.an-paper .an-hero-photo{animation:anPaperFloat 7s ease-in-out infinite}.an-glow .an-hero-orbit{animation:anGlow 5s ease-in-out infinite alternate}.an-paper-stamp{animation:anStamp 8s ease-in-out infinite}}
@keyframes anOrbit{to{transform:rotate(360deg)}}@keyframes anPaperFloat{50%{transform:rotate(1.5deg) translateY(-8px)}}@keyframes anGlow{to{opacity:.55;filter:blur(2px)}}@keyframes anStamp{50%{transform:rotate(-5deg) scale(1.025)}}

/* Music library only: scalable picker for admin-managed tracks */
.music-library-editor {
  gap: 14px;
}
.music-library-intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 17px;
  border: 1px solid #ded8d0;
  border-radius: 16px;
  background: linear-gradient(135deg, #fbfaf8, #f5f1eb);
}
.music-library-intro > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.music-library-intro strong {
  font-size: 14px;
  color: #302d29;
}
.music-library-intro span:not(.music-library-count) {
  color: #7b746c;
  font-size: 11px;
  line-height: 1.45;
}
.music-library-count {
  flex: 0 0 auto;
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #34463d;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.music-selected {
  border: 1px solid #cfd9d3;
  border-radius: 16px;
  background: #f5faf7;
  padding: 14px;
  display: grid;
  gap: 10px;
}
.music-selected.legacy {
  border-color: #e5d5bb;
  background: #fffaf1;
}
.music-selected-main {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
}
.music-selected-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: #34463d;
}
.music-selected.legacy .music-selected-icon {
  background: #8a6a42;
}
.music-selected-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.music-selected-copy small {
  color: #7c746b;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.music-selected-copy strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  color: #2e2b27;
}
.music-selected-copy span {
  min-height: 15px;
  color: #857d74;
  font-size: 10px;
}
.music-remove-button {
  border: 1px solid #dfc9c6;
  border-radius: 999px;
  background: #fff;
  color: #8a4b45;
  min-height: 36px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
}
.music-legacy-note {
  margin: 0;
  padding-top: 9px;
  border-top: 1px solid #eadfcf;
  color: #806e58;
  font-size: 10px;
  line-height: 1.5;
}
.music-library-picker {
  overflow: hidden;
  border: 1px solid #ddd8d0;
  border-radius: 16px;
  background: #fff;
}
.music-none-option {
  width: 100%;
  min-height: 62px;
  border: 0;
  border-bottom: 1px solid #e7e2dc;
  border-radius: 0;
  background: #faf9f7;
  padding: 10px 13px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 28px;
  gap: 10px;
  align-items: center;
  text-align: left;
  color: #38342f;
}
.music-none-option.selected {
  background: #eef5f1;
}
.music-row-index {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: #ece8e2;
  color: #6b645d;
}
.music-none-option.selected .music-row-index {
  background: #34463d;
  color: #fff;
}
.music-library-scroll {
  display: grid;
  gap: 0;
  max-height: 430px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding: 0;
}
.music-library-scroll::-webkit-scrollbar {
  width: 9px;
}
.music-library-scroll::-webkit-scrollbar-track {
  background: #f7f5f2;
}
.music-library-scroll::-webkit-scrollbar-thumb {
  background: #cbc4bb;
  border: 2px solid #f7f5f2;
  border-radius: 999px;
}
.music-library-list .music-library-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
  border-bottom: 1px solid #ece7e1;
  background: #fff;
}
.music-library-list .music-library-row:last-child {
  border-bottom: 0;
}
.music-library-list .music-library-row.selected {
  background: #f0f6f2;
}
.music-library-list .music-library-row:hover {
  background: #faf9f7;
}
.music-library-list .music-library-row.selected:hover {
  background: #edf4ef;
}
.music-library-list .music-library-preview,
.music-library-list .music-library-select {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
}
.music-library-list .music-library-preview {
  width: 46px;
  min-height: 62px;
  padding: 0;
  display: grid;
  place-items: center;
  border-right: 1px solid #ece7e1;
  color: #34463d;
}
.music-library-list .music-library-preview:hover,
.music-library-list .music-library-preview.playing {
  background: #34463d;
  color: #fff;
}
.music-library-list .music-library-select {
  width: 100%;
  min-width: 0;
  min-height: 62px;
  padding: 9px 12px;
  display: block;
  text-align: left;
}
.music-row-layout {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 28px;
  gap: 9px;
  align-items: center;
}
.music-row-number {
  color: #a09991;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .08em;
}
.music-row-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.music-row-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #302d29;
  font-size: 12px;
  font-weight: 700;
}
.music-row-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #8a8279;
  font-size: 10px;
}
.music-row-check {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  justify-self: end;
  background: #34463d;
  color: #fff;
}
.music-settings-card {
  border: 1px solid #e1dcd5;
  border-radius: 15px;
  background: #fbfaf8;
  padding: 14px;
  display: grid;
  gap: 13px;
}
.music-library-loading {
  display: grid;
}
.music-library-skeleton {
  min-height: 62px;
  padding: 10px 13px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 11px;
  border-bottom: 1px solid #ece7e1;
}
.music-library-skeleton i,
.music-library-skeleton span,
.music-library-skeleton b {
  display: block;
  background: linear-gradient(90deg, #eeeae5, #f8f6f3, #eeeae5);
  background-size: 200% 100%;
  animation: musicSkeleton 1.25s linear infinite;
}
.music-library-skeleton i { width: 34px; height: 34px; border-radius: 50%; }
.music-library-skeleton span { width: 72%; height: 11px; border-radius: 6px; }
.music-library-skeleton b { width: 24px; height: 24px; border-radius: 50%; }
@keyframes musicSkeleton { to { background-position: -200% 0; } }
.music-library-empty {
  min-height: 150px;
  padding: 28px 20px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 7px;
  text-align: center;
  color: #827a71;
}
.music-library-empty strong {
  color: #39342f;
  font-size: 13px;
}
.music-library-empty span {
  max-width: 330px;
  font-size: 10px;
  line-height: 1.5;
}

@media  (max-width: 560px) {
  .music-library-intro { padding: 14px; }
  .music-library-scroll { max-height: 390px; }
  .music-selected-main { grid-template-columns: 38px minmax(0, 1fr) 36px; }
  .music-selected-icon { width: 38px; height: 38px; }
  .music-remove-button { width: 36px; min-width: 36px; padding: 0; }
  .music-remove-button span { display: none; }
  .music-none-option { grid-template-columns: 36px minmax(0, 1fr) 26px; }
  .music-library-list .music-library-row { grid-template-columns: 44px minmax(0, 1fr); }
  .music-library-list .music-library-preview { width: 44px; }
  .music-row-layout { grid-template-columns: 25px minmax(0, 1fr) 26px; gap: 7px; }
  .music-settings-card .music-volume-row { grid-template-columns: 20px 1fr; }
  .music-settings-card .music-volume-row input[type="range"] { grid-column: 1 / -1; }
}


/* ==========================================================
   Premium opening card + selectable invitation typography
   Stage: opening cover / 5 font styles
   ========================================================== */








/* Keep old published invitations unchanged when no explicit typography was saved. */


/* Slightly tune script fonts so long Cyrillic/Kazakh headings remain readable. */




/* Universal premium first screen. Existing gate behaviour/music remains intact. */















.invite-font-scope .invite:not(.invite-embedded) [class*="gate-ornament"] {
  opacity: .18 !important;
}

/* Font picker in the invitation editor. */
.invite-font-picker { display: grid; gap: 14px; }
.invite-font-picker-note {
  margin: 0;
  color: #777169;
  font-size: 12px;
  line-height: 1.6;
}
.invite-font-options { display: grid; gap: 10px; }
.invite-font-option {
  width: 100%;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(190px,.75fr) minmax(240px,1.25fr);
  align-items: stretch;
  overflow: hidden;
  border: 1px solid #ded8ce;
  border-radius: 18px;
  background: #fff;
  color: #27241f;
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background .2s ease;
}
.invite-font-option:hover { transform: translateY(-1px); border-color: #b9b09f; box-shadow: 0 8px 24px rgba(45,41,34,.06); }
.invite-font-option.is-active { border-color: #6b7550; background: #fbfaf5; box-shadow: 0 0 0 2px rgba(107,117,80,.11); }
.invite-font-option-meta {
  position: relative;
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 12px;
  align-items: start;
  padding: 18px 16px;
  border-right: 1px solid #ebe6dd;
}
.invite-font-option-number {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eee8db;
  color: #766958;
  font-family: "Noto Sans", sans-serif;
  font-size: 11px;
  font-weight: 700;
}
.invite-font-option.is-active .invite-font-option-number { background: #66724c; color: #fff; }
.invite-font-option-copy { display: grid; gap: 5px; padding-top: 1px; }
.invite-font-option-copy strong { font-size: 13px; font-weight: 700; }
.invite-font-option-copy small { color: #817a70; font-size: 11px; line-height: 1.45; }
.invite-font-option-check {
  position: absolute;
  top: 14px;
  right: 12px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #66724c;
  color: #fff;
}
.invite-font-sample {
  min-height: 108px;
  display: grid;
  align-content: center;
  gap: 7px;
  padding: 20px 22px;
  background:
    radial-gradient(circle at 90% 20%, rgba(113,126,80,.08), transparent 30%),
    #faf8f3;
  color: #4d513b;
}
.invite-font-sample b {
  display: block;
  font: inherit;
  font-size: clamp(24px, 3.4vw, 38px);
  line-height: 1.05;
  overflow-wrap: anywhere;
}
.invite-font-sample em {
  display: block;
  font-style: normal;
  font-size: 13px;
  opacity: .7;
}
.invite-font-sample-caveat b { font-size: clamp(29px, 4vw, 44px); }
.invite-font-sample-pacifico b { font-size: clamp(22px, 3vw, 34px); line-height: 1.3; }
.invite-font-sample-manrope b { font-size: clamp(22px, 3vw, 34px); letter-spacing: -.04em; }

@media  (max-width: 720px) {
  .invite-font-option { grid-template-columns: 1fr; }
  .invite-font-option-meta { border-right: 0; border-bottom: 1px solid #ebe6dd; }
  .invite-font-sample { min-height: 92px; padding: 16px 18px; }
  .invite-font-sample b { font-size: 29px; }
  .invite-font-sample-caveat b { font-size: 36px; }
  .invite-font-sample-pacifico b { font-size: 25px; }
  .invite-font-sample-manrope b { font-size: 26px; }
}



@media  (prefers-reduced-motion: reduce) {
  .invite-font-option { transition: none; }
}

/* Stage: refined opening cover + scalable font selector */






















.invite-font-trigger {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(180px, 1.22fr) 40px;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #ded8ce;
  border-radius: 18px;
  background: #fff;
  color: #27241f;
  text-align: left;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.invite-font-trigger:hover {
  transform: translateY(-1px);
  border-color: #b9b09f;
  box-shadow: 0 8px 24px rgba(45,41,34,.06);
}
.invite-font-trigger-copy {
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 18px 18px 18px 20px;
  border-right: 1px solid #ebe6dd;
}
.invite-font-trigger-copy strong { font-size: 14px; font-weight: 700; }
.invite-font-trigger-copy small { color: #80786f; font-size: 12px; line-height: 1.4; }
.invite-font-trigger-sample {
  min-height: 102px;
  border-radius: 0 !important;
}
.invite-font-trigger-arrow {
  display: grid;
  place-items: center;
  border-left: 1px solid #ebe6dd;
  color: #6e7452;
}
.invite-font-dialog-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: rgba(26,24,20,.38);
  backdrop-filter: blur(8px);
}
.invite-font-dialog {
  width: min(880px, 100%);
  max-height: min(82dvh, 860px);
  display: grid;
  gap: 16px;
  padding: 18px;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(223,217,206,.95);
  background: #fbfaf6;
  box-shadow: 0 28px 60px rgba(31,27,22,.24);
}
.invite-font-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.invite-font-dialog-copy { display: grid; gap: 4px; }
.invite-font-dialog-copy strong { font-size: 18px; font-weight: 800; }
.invite-font-dialog-copy small { color: #80786f; font-size: 13px; line-height: 1.5; }
.invite-font-dialog-close {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: grid;
  place-items: center;
  border: 1px solid #e2ddd3;
  border-radius: 50%;
  background: #fff;
  color: #4f4a43;
  cursor: pointer;
}
.invite-font-dialog .invite-font-options {
  max-height: min(68dvh, 720px);
  overflow: auto;
  padding-right: 4px;
}
.invite-font-dialog .invite-font-options::-webkit-scrollbar { width: 10px; }
.invite-font-dialog .invite-font-options::-webkit-scrollbar-thumb { background: #d6cebf; border-radius: 999px; }

@media  (max-width: 720px) {
  .invite-font-trigger {
    grid-template-columns: 1fr;
  }
  .invite-font-trigger-copy {
    border-right: 0;
    border-bottom: 1px solid #ebe6dd;
  }
  .invite-font-trigger-arrow {
    border-left: 0;
    border-top: 1px solid #ebe6dd;
    min-height: 46px;
  }
  .invite-font-dialog-overlay { padding: 10px; }
  .invite-font-dialog {
    width: 100%;
    max-height: calc(100dvh - 20px);
    padding: 14px;
    border-radius: 20px;
  }
  .invite-font-dialog-copy strong { font-size: 16px; }
}



/* =====================================================================
   OPENING ENVELOPE V4 — premium postcard/envelope gate (2026-09-25)
   New physical CSS file is intentionally cache-busted from app.css.
   ===================================================================== */



/* Remove individual template gate ornaments so every template receives one clean opening card. */




/* Soft blurred foliage outside the card, deliberately subtle. */





/* Real envelope seams/flap. */


/* Vector wax seal with envelope icon. */




/* Event label — same quiet, letterspaced feel as the reference. */




/* Main names/title. */







/* Optional user opening line. It stays elegant and intentionally secondary. */


/* Age or other template-specific gate metadata should not break the unified card. */



/* Open button — premium paper pill with play mark. */







/* Mobile demo has a bottom template CTA. Reserve room so it never covers the open button. */






/* =====================================================================
   OPENING ENVELOPE V5 — symmetry / refined premium invitation gate
   Patch date: 2026-09-25
   ===================================================================== */

/* Unified palette */


/* Hide any leftover template-specific media/ornaments inside the gate. */

































/* =====================================================================
   OPENING ENVELOPE V6 — premium polish / paper / seal / motion
   Patch date: 2026-09-25
   ===================================================================== */
















/* Elegant opening motion: seal releases first, then flap lifts, then the whole card fades. */














/* =====================================================================
   TERRAINVITE gallery cleanup — 2026-09-25 18:55
   Requested fixes:
   - Pop Art Wedding: balanced 1–4 photo gallery, no tiny panel.
   - Velvet: subtle lower hero darkening for readable copy.
   - All invitation galleries: no colored/padded backing cards around media.
   - Additional photo numbering is hidden everywhere.
   ===================================================================== */

/* 1) Gallery media must visually be the photo itself, not a colored backing card.
   Keep each template's radius / border / shadow language, but remove interior
   background fills and padding that create empty bars around differently-shaped
   source images. */
.invite [class*="gallery"] figure,
.invite figure[class*="photo"],
.invite figure[class*="polaroid"],
.invite figure[class*="shot"] {
  background: transparent !important;
  padding: 0 !important;
}

.invite [class*="gallery"] figure > img,
.invite figure[class*="photo"] > img,
.invite figure[class*="polaroid"] > img,
.invite figure[class*="shot"] > img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* Some story-style galleries are distributed between content sections instead
   of living inside a dedicated gallery wrapper. These frames still need the
   same no-letterbox behaviour. */
.invite .ng-photo-frame,
.invite .qt-photo-frame,
.invite .sv-photo-frame {
  background: transparent !important;
  padding: 0 !important;
}
.invite .ng-photo-frame > img,
.invite .qt-photo-frame > img,
.invite .sv-photo-frame > img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* 2) Remove numeric photo labels from all additional-photo presentations.
   Decorative non-numeric marks (stars/hearts) in playful templates stay intact. */
.invite .art-photo figcaption,
.invite .sa2-photo figcaption,
.invite .ts-steppe-photo figcaption,
.invite .bd-pop-photo-card figcaption,
.invite .jb-noir-photo figcaption,
.invite .bd-noir-shot figcaption,
.invite .m2-photo figcaption,
.invite .an-paper .an-photo figcaption,
.invite .ng-photo-index,
.invite .qt-photo-index,
.invite .sv-photo-index {
  display: none !important;
}
.invite .jb-hg-photo-card figcaption > span {
  display: none !important;
}

/* 3) Pop Art Wedding — explicit gallery geometry for small photo counts.
   The previous nth-child rules had higher specificity than the mobile reset,
   so photo 3 could remain only four grid columns wide. */
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-1 .art-photo:nth-child(1) {
  grid-column: 1 / -1 !important;
  min-height: 420px;
}
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-2 .art-photo:nth-child(1),
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-2 .art-photo:nth-child(2),
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-4 .art-photo:nth-child(1),
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-4 .art-photo:nth-child(2),
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-4 .art-photo:nth-child(3),
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-4 .art-photo:nth-child(4) {
  grid-column: span 6 !important;
  min-height: 320px;
}
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-3 .art-photo:nth-child(1),
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-3 .art-photo:nth-child(2) {
  grid-column: span 6 !important;
  min-height: 320px;
}
.art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-3 .art-photo:nth-child(3) {
  grid-column: 3 / span 8 !important;
  min-height: 360px;
}

/* 4) Velvet — readable lower hero copy without making the portrait look dark. */
.velvet-v3 .sv-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0 !important;
  height: auto !important;
  border: 0 !important;
  pointer-events: none;
  backdrop-filter: none !important;
  background:
    linear-gradient(180deg, transparent 46%, rgba(29, 13, 22, .08) 60%, rgba(29, 13, 22, .48) 100%),
    linear-gradient(90deg, rgba(36, 18, 29, .24) 0%, rgba(36, 18, 29, .08) 52%, transparent 78%) !important;
}

@media (max-width: 640px) {
  /* Two clean columns on phones; every item gets the same visual weight. */
  .art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery .art-photo:nth-child(n) {
    grid-column: span 6 !important;
    min-height: 250px !important;
  }
  .art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-1 .art-photo:last-child,
  .art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-3 .art-photo:last-child,
  .art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-5 .art-photo:last-child,
  .art-theme-pop-art-wedding-v2 .gallery-poster-panels .art-gallery-count-7 .art-photo:last-child {
    grid-column: 1 / -1 !important;
    min-height: 290px !important;
  }

  /* On mobile the Velvet copy sits over the lower part of the hero image,
     therefore use only a soft bottom fade and no left-side veil. */
  .velvet-v3 .sv-hero-photo::after {
    background: linear-gradient(180deg, transparent 48%, rgba(29, 13, 22, .10) 64%, rgba(29, 13, 22, .56) 100%) !important;
  }
}


/* 5) Mobile gallery orientation — horizontal photos should not create very tall empty-looking cards. */
@media (max-width: 760px) {
  .invite [class*="gallery"] figure[data-ti-orientation],
  .invite .jb-noir-contact-sheet figure[data-ti-orientation],
  .invite .jb-ch-salon figure[data-ti-orientation],
  .invite .bd-noir-gallery-grid figure[data-ti-orientation],
  .invite .bd-pop-gallery-grid figure[data-ti-orientation],
  .invite .m2-gallery-grid figure[data-ti-orientation],
  .invite .an-gallery-grid figure[data-ti-orientation],
  .invite .ts-samal-gallery-grid figure[data-ti-orientation],
  .invite .ts-steppe-gallery-grid figure[data-ti-orientation],
  .invite .ts-sun-gallery-grid figure[data-ti-orientation] {
    height: auto !important;
    min-height: 0 !important;
    align-self: start;
  }

  .invite [class*="gallery"] figure[data-ti-orientation="landscape"],
  .invite .jb-noir-contact-sheet figure[data-ti-orientation="landscape"],
  .invite .jb-ch-salon figure[data-ti-orientation="landscape"],
  .invite .bd-noir-gallery-grid figure[data-ti-orientation="landscape"],
  .invite .bd-pop-gallery-grid figure[data-ti-orientation="landscape"],
  .invite .m2-gallery-grid figure[data-ti-orientation="landscape"],
  .invite .an-gallery-grid figure[data-ti-orientation="landscape"],
  .invite .ts-samal-gallery-grid figure[data-ti-orientation="landscape"],
  .invite .ts-steppe-gallery-grid figure[data-ti-orientation="landscape"],
  .invite .ts-sun-gallery-grid figure[data-ti-orientation="landscape"] {
    aspect-ratio: 16 / 10 !important;
  }

  .invite [class*="gallery"] figure[data-ti-orientation="portrait"],
  .invite .jb-noir-contact-sheet figure[data-ti-orientation="portrait"],
  .invite .jb-ch-salon figure[data-ti-orientation="portrait"],
  .invite .bd-noir-gallery-grid figure[data-ti-orientation="portrait"],
  .invite .bd-pop-gallery-grid figure[data-ti-orientation="portrait"],
  .invite .m2-gallery-grid figure[data-ti-orientation="portrait"],
  .invite .an-gallery-grid figure[data-ti-orientation="portrait"],
  .invite .ts-samal-gallery-grid figure[data-ti-orientation="portrait"],
  .invite .ts-steppe-gallery-grid figure[data-ti-orientation="portrait"],
  .invite .ts-sun-gallery-grid figure[data-ti-orientation="portrait"] {
    aspect-ratio: 4 / 5 !important;
  }

  .invite [class*="gallery"] figure[data-ti-orientation="square"],
  .invite .jb-noir-contact-sheet figure[data-ti-orientation="square"],
  .invite .jb-ch-salon figure[data-ti-orientation="square"],
  .invite .bd-noir-gallery-grid figure[data-ti-orientation="square"],
  .invite .bd-pop-gallery-grid figure[data-ti-orientation="square"],
  .invite .m2-gallery-grid figure[data-ti-orientation="square"],
  .invite .an-gallery-grid figure[data-ti-orientation="square"],
  .invite .ts-samal-gallery-grid figure[data-ti-orientation="square"],
  .invite .ts-steppe-gallery-grid figure[data-ti-orientation="square"],
  .invite .ts-sun-gallery-grid figure[data-ti-orientation="square"] {
    aspect-ratio: 1 / 1 !important;
  }
}


/* =====================================================================
   TERRAINVITE V11 — authoritative gallery system
   Fixes mobile gallery cards for ALL templates without relying on each
   template's historic min-height / grid / image-height rules.
   ===================================================================== */

/* Every regular gallery card is marked by JS as data-ti-gallery-item="1".
   Keep the media clipped to the card and never allow inherited min-heights
   on the image itself to create blank bands. */
.invite figure[data-ti-gallery-item="1"] {
  overflow: hidden !important;
  box-sizing: border-box !important;
}
.invite figure[data-ti-gallery-item="1"] > img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* Existing numeric gallery labels stay hidden; decorative symbols may remain. */
.invite .art-photo figcaption,
.invite .sa2-photo figcaption,
.invite .ts-steppe-photo figcaption,
.invite .bd-pop-photo-card figcaption,
.invite .jb-noir-photo figcaption,
.invite .bd-noir-shot figcaption,
.invite .m2-photo figcaption,
.invite .an-paper .an-photo figcaption,
.invite .ng-photo-index,
.invite .qt-photo-index,
.invite .sv-photo-index {
  display: none !important;
}

/* Phones/tablets: one predictable vertical feed. The card ratio follows the
   actual source image orientation, so a horizontal photo is not forced into a
   huge portrait box and a vertical photo still gets enough height. */
@media (max-width: 760px) {
  .invite [data-ti-gallery-group="1"] {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: auto !important;
    align-items: start !important;
    justify-items: stretch !important;
    gap: 14px !important;
    height: auto !important;
    min-height: 0 !important;
    padding-inline: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    transform: none !important;
  }

  .invite figure[data-ti-gallery-item="1"] {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    align-self: start !important;
    justify-self: stretch !important;
    margin: 0 !important;
    transform: none !important;
    clip-path: none !important;
  }

  .invite figure[data-ti-gallery-item="1"][data-ti-orientation="landscape"] {
    aspect-ratio: 16 / 10 !important;
  }
  .invite figure[data-ti-gallery-item="1"][data-ti-orientation="portrait"] {
    aspect-ratio: 4 / 5 !important;
  }
  .invite figure[data-ti-gallery-item="1"][data-ti-orientation="square"] {
    aspect-ratio: 1 / 1 !important;
  }
  /* Safe fallback while intrinsic image dimensions are still loading. */
  .invite figure[data-ti-gallery-item="1"]:not([data-ti-orientation]) {
    aspect-ratio: 4 / 3 !important;
  }

  .invite figure[data-ti-gallery-item="1"] > img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: inherit;
    transform: none !important;
  }

  /* Preserve decorative captions/stickers without letting them affect card size. */
  .invite figure[data-ti-gallery-item="1"] > figcaption {
    position: absolute !important;
    z-index: 3 !important;
  }

  /* Pop Art used extra-specific legacy nth-child geometry. V11 wins explicitly. */
  .art-theme-pop-art-wedding-v2 [data-ti-gallery-group="1"] .art-photo:nth-child(n),
  .art-theme-pop-art-wedding [data-ti-gallery-group="1"] .art-photo:nth-child(n) {
    grid-column: 1 / -1 !important;
    min-height: 0 !important;
    height: auto !important;
  }

  /* Confetti Kids / polaroid-style frames: keep the playful border/shadow,
     but the frame itself now follows the image ratio instead of a fixed 220px
     image sitting inside a much taller card. */
  .bd-kids-polaroid[data-ti-gallery-item="1"],
  .ts-sun-photo[data-ti-gallery-item="1"] {
    padding: 0 !important;
  }
}

/* Admin music-event category chips are part of the active V11 stylesheet. */
.music-event-filter-field { gap: 12px; }
.music-event-chip-grid { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.music-event-chip { position:relative; display:inline-flex; align-items:center; border:1px solid rgba(18,30,24,.12); border-radius:999px; background:#fff; cursor:pointer; overflow:hidden; }
.music-event-chip input { position:absolute; inset:0; opacity:0; pointer-events:none; }
.music-event-chip span { display:inline-flex; align-items:center; padding:8px 12px; font-size:13px; line-height:1.2; }
.music-event-chip.active { background:#13251f; border-color:#13251f; color:#fff; }
.music-event-chip-grid.compact .music-event-chip span { padding:6px 10px; font-size:12px; }
.music-track-events { margin-top:14px; display:grid; gap:8px; }


/* V12 targeted fixes: Birthday Noir gallery color + Confetti Kids name/timer layout */
.birthday-kids-v2 .bd-kids-copy { overflow:hidden; }
.birthday-kids-v2 .bd-kids-name {
  display:block;
  width:100%;
  max-width:none;
  white-space:nowrap;
  overflow:visible;
  text-wrap:nowrap;
  line-height:.92;
  font-size:clamp(34px, 9.6vw, 96px);
  letter-spacing:-.055em;
}
.birthday-kids-v2 .bd-kids-name-medium { font-size:clamp(31px, 8.4vw, 80px); }
.birthday-kids-v2 .bd-kids-name-compact { font-size:clamp(27px, 7.2vw, 66px); }
.birthday-kids-v2 .bd-kids-final-inner .bd-kids-name {
  max-width:100%;
  margin-inline:auto;
  text-align:center;
  text-shadow:none;
  font-size:clamp(32px, 9vw, 82px);
}
.birthday-kids-v2 .bd-kids-final-inner .bd-kids-name-medium { font-size:clamp(29px, 7.8vw, 70px); }
.birthday-kids-v2 .bd-kids-final-inner .bd-kids-name-compact { font-size:clamp(25px, 6.6vw, 58px); }
.birthday-kids-v2 .bd-kids-countdown-wrap .countdown {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
  justify-items:center;
  align-items:start;
}
.birthday-kids-v2 .bd-kids-countdown-wrap .countdown div {
  width:min(100%, 150px);
  aspect-ratio:1;
  min-width:0;
  margin:0;
}
.birthday-kids-v2 .bd-kids-countdown-wrap .countdown strong { font-size:clamp(34px, 6vw, 48px); line-height:.88; }
.birthday-kids-v2 .bd-kids-countdown-wrap .countdown span { font-size:10px; line-height:1.15; letter-spacing:.08em; }
@media (max-width: 860px) {
  .birthday-kids-v2 .bd-kids-countdown-wrap .countdown {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    width:min(520px, 100%);
    margin-inline:auto;
  }
  .birthday-kids-v2 .bd-kids-countdown-wrap .countdown div {
    width:min(100%, 165px);
  }
}
@media (max-width: 640px) {
  .birthday-kids-v2 .bd-kids-name { font-size:clamp(30px, 10.5vw, 56px); }
  .birthday-kids-v2 .bd-kids-name-medium { font-size:clamp(27px, 9.2vw, 48px); }
  .birthday-kids-v2 .bd-kids-name-compact { font-size:clamp(23px, 8vw, 40px); }
  .birthday-kids-v2 .bd-kids-final-inner .bd-kids-name { font-size:clamp(28px, 9vw, 48px); }
  .birthday-kids-v2 .bd-kids-final-inner .bd-kids-name-medium { font-size:clamp(25px, 8vw, 42px); }
  .birthday-kids-v2 .bd-kids-final-inner .bd-kids-name-compact { font-size:clamp(21px, 7vw, 36px); }
  .birthday-kids-v2 .bd-kids-countdown-wrap .countdown { gap:12px; }
  .birthday-kids-v2 .bd-kids-countdown-wrap .countdown div { width:min(100%, 150px); }
}
@media (max-width: 390px) {
  .birthday-kids-v2 .bd-kids-copy { width:calc(100% - 28px); }
  .birthday-kids-v2 .bd-kids-name { font-size:clamp(27px, 10vw, 44px); }
  .birthday-kids-v2 .bd-kids-name-medium { font-size:clamp(24px, 8.8vw, 38px); }
  .birthday-kids-v2 .bd-kids-name-compact { font-size:clamp(20px, 7.6vw, 32px); }
  .birthday-kids-v2 .bd-kids-final-inner .bd-kids-name { font-size:clamp(24px, 8.4vw, 38px); }
  .birthday-kids-v2 .bd-kids-final-inner .bd-kids-name-medium { font-size:clamp(22px, 7.6vw, 34px); }
  .birthday-kids-v2 .bd-kids-final-inner .bd-kids-name-compact { font-size:clamp(19px, 6.8vw, 30px); }
  .birthday-kids-v2 .bd-kids-countdown-wrap .countdown div { width:min(100%, 138px); }
  .birthday-kids-v2 .bd-kids-countdown-wrap .countdown strong { font-size:clamp(28px, 8vw, 36px); }
  .birthday-kids-v2 .bd-kids-countdown-wrap .countdown span { font-size:9px; }
}

/* =====================================================================
   TERRAINVITE V13 — admin font library
   ===================================================================== */
.admin-font-library { display:grid; gap:20px; }
.admin-font-upload-card { padding:22px; border:1px solid var(--line); border-radius:24px; background:var(--surface); box-shadow:0 14px 36px rgba(35,31,27,.05); }
.admin-font-upload-title { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.admin-font-upload-title>svg { flex:0 0 auto; }
.admin-font-upload-title strong { display:block; font-size:17px; }
.admin-font-upload-title small { display:block; margin-top:3px; color:var(--muted); }
.admin-font-form-grid { display:grid; grid-template-columns:2fr 1fr 1fr .8fr .7fr; gap:12px; align-items:end; }
.admin-font-switches { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:16px; }
.admin-font-file-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:16px; }
.admin-font-license-note { margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.55; max-width:960px; }
.admin-font-list { display:grid; gap:16px; }
.admin-font-card { padding:18px; border:1px solid var(--line); border-radius:22px; background:var(--surface); box-shadow:0 12px 32px rgba(35,31,27,.045); }
.admin-font-preview { min-height:132px; display:grid; align-content:center; justify-items:center; gap:7px; padding:22px; border-radius:16px; background:linear-gradient(145deg,#fbf8f0,#f1ece2); text-align:center; overflow:hidden; }
.admin-font-preview strong { font:inherit; font-size:clamp(30px,5vw,54px); line-height:1.1; white-space:nowrap; max-width:100%; }
.admin-font-preview span { font:inherit; font-size:clamp(17px,2.3vw,25px); line-height:1.25; }
.admin-font-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 14px; margin:12px 2px 16px; color:var(--muted); font-size:12px; }
.admin-font-meta code { font-size:11px; color:var(--ink); background:#f2eee6; border-radius:8px; padding:4px 7px; }
.admin-font-fields { display:grid; grid-template-columns:2fr 1fr 1fr .7fr .7fr; gap:10px; align-items:end; }
.admin-font-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.admin-font-card .field-error { display:block; margin-top:12px; }
@media (max-width:1000px) {
  .admin-font-form-grid,.admin-font-fields { grid-template-columns:1fr 1fr; }
}
@media (max-width:620px) {
  .admin-font-upload-card,.admin-font-card { padding:15px; border-radius:18px; }
  .admin-font-form-grid,.admin-font-fields { grid-template-columns:1fr; }
  .admin-font-file-row { align-items:stretch; }
  .admin-font-file-row>button { width:100%; justify-content:center; }
  .admin-font-preview { min-height:112px; padding:16px 10px; }
  .admin-font-preview strong { font-size:clamp(24px,9vw,38px); }
  .admin-font-preview span { font-size:16px; }
  .admin-font-actions>button { flex:1 1 auto; justify-content:center; }
}

/* TERRAINVITE v26 — friendly section label editor */
.section-label-editor{display:grid;gap:14px}
.section-label-editor-head{display:grid;gap:5px;padding:14px 16px;border:1px solid #e8e2db;border-radius:18px;background:#fbf8f4}
.section-label-editor-head strong{font-size:14px;color:#25211d}
.section-label-editor-head p{margin:0;font-size:12px;line-height:1.5;color:#7d756c}
.section-label-editor-list{display:grid;gap:10px}
.section-label-editor-card{display:grid;gap:11px;padding:14px;border:1px solid #ebe5de;border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(38,31,24,.035)}
.section-label-editor-name{display:grid;gap:3px}
.section-label-editor-name strong{font-size:13px;color:#26221e}
.section-label-editor-name small{font-size:11px;line-height:1.4;color:#8b837a}
.section-label-choice{display:grid;gap:7px}
.section-label-choice-title{font-size:11px;font-weight:700;color:#6f675f}
.section-label-choice select,.section-label-choice input{width:100%;min-height:44px;border:1px solid #ded7cf;border-radius:13px;background:#fff;color:#24201c;font:600 13px/1.2 "DM Sans",Arial,sans-serif;padding:0 13px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.section-label-choice select{appearance:auto}
.section-label-choice input{font-weight:500}
.section-label-choice select:focus,.section-label-choice input:focus{border-color:#aaa097;box-shadow:0 0 0 3px rgba(88,78,69,.08)}
.section-label-choice input{background:#fbfaf8}
@media(min-width:760px){.section-label-editor-list{grid-template-columns:repeat(2,minmax(0,1fr))}.section-label-editor-card{align-content:start}}


/* ==============================================================
   TERRAINVITE v27.0.0 — Contacts page
   ============================================================== */
.contact-page{
  width:min(1180px,calc(100% - 32px));
  margin:26px auto 72px;
  display:grid;
  gap:24px;
}
.contact-hero{
  position:relative;
  min-height:610px;
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);
  align-items:center;
  gap:44px;
  padding:clamp(46px,7vw,82px);
  overflow:hidden;
  border-radius:34px;
  color:#f7f4ed;
  background:
    radial-gradient(circle at 78% 18%,rgba(166,199,184,.22),transparent 30%),
    radial-gradient(circle at 18% 88%,rgba(198,172,122,.16),transparent 34%),
    linear-gradient(135deg,#17211d 0%,#1d2b25 46%,#101713 100%);
  box-shadow:0 24px 70px rgba(25,34,30,.12);
  isolation:isolate;
}
.contact-hero:before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:26px;
  pointer-events:none;
}
.contact-hero:after{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  right:-160px;
  bottom:-180px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:0 0 0 44px rgba(255,255,255,.018),0 0 0 92px rgba(255,255,255,.012);
  pointer-events:none;
}
.contact-hero-copy{position:relative;z-index:2;max-width:620px}
.contact-eyebrow{color:#c8d8d0}
.contact-hero h1{
  margin:0;
  max-width:660px;
  font-family:"Playfair Display",serif;
  font-size:clamp(48px,6vw,82px);
  font-weight:500;
  line-height:.94;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.contact-lead{
  max-width:590px;
  margin:26px 0 0;
  color:rgba(247,244,237,.72);
  font-size:clamp(16px,1.6vw,19px);
  line-height:1.7;
}
.contact-hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:32px}
.contact-instagram-button{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 20px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:#f7f4ed;
  color:#17211d;
  font-size:14px;
  font-weight:700;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
  transition:transform .18s ease,box-shadow .18s ease;
}
.contact-instagram-button:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.24)}
.contact-secondary-link{padding:14px 6px;color:rgba(247,244,237,.72);font-size:14px;font-weight:600}
.contact-secondary-link:hover{color:#fff}
.contact-social-panel{position:relative;z-index:2;min-height:420px;display:grid;place-items:center}
.contact-social-card{
  position:relative;
  z-index:4;
  width:min(330px,88%);
  min-height:350px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  padding:30px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:30px;
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.045));
  backdrop-filter:blur(20px);
  box-shadow:0 30px 70px rgba(0,0,0,.26);
  transform:rotate(2deg);
}
.contact-social-icon{
  width:68px;height:68px;display:grid;place-items:center;margin-bottom:auto;
  border-radius:22px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.15)
}
.contact-social-card>span{margin-top:28px;color:#a9bdb3;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.contact-social-card>strong{margin-top:7px;font-size:clamp(28px,4vw,40px);letter-spacing:-.04em}
.contact-social-card>p{margin:15px 0 22px;color:rgba(247,244,237,.68);font-size:14px;line-height:1.55}
.contact-social-card>a{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#fff}
.contact-orbit{position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:50%;pointer-events:none}
.contact-orbit--one{width:390px;height:390px}
.contact-orbit--two{width:280px;height:280px;border-color:rgba(198,172,122,.18)}
.contact-float-label{
  position:absolute;z-index:5;padding:9px 12px;border:1px solid rgba(255,255,255,.14);border-radius:999px;
  background:rgba(16,23,19,.78);backdrop-filter:blur(12px);font-size:9px;font-weight:700;letter-spacing:.13em;color:#d9e4df
}
.contact-float-label--a{top:13%;right:1%;transform:rotate(-4deg)}
.contact-float-label--b{left:0;bottom:13%;transform:rotate(4deg);color:#ead9b5}

.contact-topics-section{
  padding:clamp(40px,6vw,70px);
  border:1px solid var(--line);
  border-radius:34px;
  background:rgba(255,253,249,.76);
}
.contact-section-head{max-width:720px;margin-bottom:34px}
.contact-section-head h2,.contact-message-guide h2,.contact-final-cta h2{
  margin:0;font-family:"Playfair Display",serif;font-weight:500;letter-spacing:-.035em;line-height:1
}
.contact-section-head h2{font-size:clamp(36px,5vw,60px)}
.contact-section-head p{margin:18px 0 0;color:var(--muted);line-height:1.65}
.contact-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.contact-topic-card{
  position:relative;min-height:270px;padding:28px;border:1px solid rgba(30,28,25,.09);border-radius:26px;background:#fffdfa;overflow:hidden
}
.contact-topic-card:after{content:"";position:absolute;width:120px;height:120px;right:-58px;bottom:-58px;border-radius:50%;background:var(--contact-soft,#eef1ed)}
.contact-topic-card--sage{--contact-accent:#506b5e;--contact-soft:#e8efeb}
.contact-topic-card--gold{--contact-accent:#97794b;--contact-soft:#f3eadb}
.contact-topic-card--rose{--contact-accent:#9a625f;--contact-soft:#f3e5e3}
.contact-topic-card--blue{--contact-accent:#5b6f84;--contact-soft:#e7edf2}
.contact-topic-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:var(--contact-soft);color:var(--contact-accent)}
.contact-topic-eyebrow{display:block;margin-top:30px;color:var(--contact-accent);font-size:10px;font-weight:700;letter-spacing:.16em}
.contact-topic-card h2{margin:8px 0 0;font-family:"Playfair Display",serif;font-size:clamp(26px,3vw,36px);font-weight:500;letter-spacing:-.03em}
.contact-topic-card p{position:relative;z-index:2;margin:15px 0 0;max-width:500px;color:var(--muted);font-size:14px;line-height:1.65}

.contact-message-guide{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:48px;align-items:center;
  padding:clamp(40px,6vw,70px);border-radius:34px;background:#eee6da
}
.contact-guide-copy h2{font-size:clamp(36px,5vw,58px)}
.contact-guide-copy p{margin:18px 0 0;color:#6c655d;line-height:1.65}
.contact-guide-list{display:grid;gap:10px}
.contact-guide-list>div{
  min-height:82px;display:grid;grid-template-columns:48px 1fr;align-items:center;gap:16px;padding:16px 20px;
  border:1px solid rgba(30,28,25,.1);border-radius:20px;background:rgba(255,253,249,.72)
}
.contact-guide-list b{font-family:"Playfair Display",serif;font-size:21px;font-weight:500;color:#8d806f}
.contact-guide-list span{font-size:14px;line-height:1.5}

.contact-final-cta{
  position:relative;min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:60px 24px;overflow:hidden;border-radius:34px;background:#151915;color:#f7f4ed
}
.contact-final-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(120px,24vw,310px);font-weight:800;letter-spacing:.04em;color:rgba(255,255,255,.025);white-space:nowrap;pointer-events:none}
.contact-final-cta>.eyebrow,.contact-final-cta>h2,.contact-final-cta>p,.contact-final-cta>a{position:relative;z-index:2}
.contact-final-cta>.eyebrow{color:#b7c9c0}
.contact-final-cta h2{max-width:800px;font-size:clamp(40px,6vw,70px);text-wrap:balance}
.contact-final-cta p{max-width:560px;margin:20px 0 28px;color:rgba(247,244,237,.67);font-size:16px;line-height:1.6}
.contact-instagram-button--light{background:#f7f4ed;color:#151915}
.footer-links{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--muted)}
.footer-links a:hover{color:var(--ink)}

@media(max-width:820px){
  .contact-page{width:calc(100% - 20px);margin-top:16px;gap:14px}
  .contact-hero{min-height:0;grid-template-columns:1fr;gap:32px;padding:52px 24px 34px;border-radius:28px}
  .contact-hero:before{inset:10px;border-radius:21px}
  .contact-hero h1{font-size:clamp(44px,13vw,64px)}
  .contact-social-panel{min-height:380px}
  .contact-social-card{width:min(330px,84%);min-height:330px}
  .contact-float-label--a{right:0}.contact-float-label--b{left:0}
  .contact-topics-section,.contact-message-guide{padding:34px 18px;border-radius:28px}
  .contact-topic-grid{grid-template-columns:1fr}
  .contact-topic-card{min-height:230px;padding:24px}
  .contact-message-guide{grid-template-columns:1fr;gap:28px}
  .contact-final-cta{min-height:390px;border-radius:28px;padding-inline:20px}
  .footer-links{order:3;width:100%;justify-content:center}
}
@media(max-width:460px){
  .contact-hero{padding-top:44px}
  .contact-lead{font-size:16px}
  .contact-hero-actions{align-items:stretch;flex-direction:column}
  .contact-instagram-button{width:100%}
  .contact-secondary-link{text-align:center}
  .contact-social-panel{min-height:340px}
  .contact-social-card{min-height:300px;padding:24px;border-radius:24px;transform:rotate(1deg)}
  .contact-orbit--one{width:320px;height:320px}.contact-orbit--two{width:230px;height:230px}
  .contact-float-label{font-size:8px}
  .contact-topic-card h2{font-size:29px}
  .contact-guide-list>div{grid-template-columns:38px 1fr;padding:14px 15px}
}

/* v27 footer alignment after adding the Contacts link. */
.footer{grid-template-columns:1fr auto auto 1fr;gap:24px}
@media(max-width:820px){
  .footer{grid-template-columns:1fr;gap:10px;text-align:center}
  .footer p,.footer>span{text-align:center}
  .footer-links{order:0;width:auto;justify-content:center}
}
