:root {
  --ink: #0a1e50;
  --ink-80: #33436b;
  --ink-50: #7a85a0;
  --coral: #fb5a57;
  --coral-soft: #ff8a86;
  --coral-tint: #fdebea;
  --guest-display-font: "Cormorant Garamond", Georgia, serif;
  --guest-body-font: "Hanken Grotesk", system-ui, sans-serif;
  --guest-button-font: "Hanken Grotesk", system-ui, sans-serif;
  --guest-heading-text: #0a1e50;
  --guest-body-text: #33436b;
  --guest-body-muted: #7a85a0;
  --guest-hero-text: #ffffff;
  --guest-hero-muted: rgba(255, 255, 255, 0.86);
  --guest-button-bg: #fb5a57;
  --guest-button-text: #ffffff;
  --guest-soft-accent: #ff8a86;
  --guest-tint: #fdebea;
  --guest-handwritten-font: "Kalam", "Segoe Print", cursive;
  --paper: #fbf8f3;
  --ivory: #f4eee4;
  --white: #ffffff;
  --line: #ebe3d5;
  --line-cool: #e4e7f0;
  --gold: #c8a96a;
  --sage: #7c9a77;
  --shadow: 0 18px 40px -20px rgba(10, 30, 80, 0.24);
  color-scheme: light;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--paper);
  color: var(--ink);
  font-family: "Hanken Grotesk", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

button,
input,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

img {
  display: block;
  max-width: 100%;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.app-frame {
  min-height: 100vh;
}

.demo-toolbar {
  position: fixed;
  z-index: 120;
  top: max(10px, env(safe-area-inset-top));
  right: 12px;
  left: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  pointer-events: none;
}

.demo-toolbar-actions,
.demo-view-switch {
  display: flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(234, 223, 206, 0.88);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.94);
  box-shadow: 0 14px 34px -18px rgba(10, 30, 80, 0.55);
  padding: 5px;
  pointer-events: auto;
  backdrop-filter: blur(16px);
}

.demo-toolbar button {
  min-height: 40px;
  border: 0;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.demo-start-button {
  background: var(--coral);
  color: #fff;
}

.demo-exit-button,
.demo-reset-button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--ink);
  color: #fff;
}

.demo-exit-button .icon,
.demo-reset-button .icon {
  width: 16px;
  height: 16px;
}

.demo-view-switch > span {
  padding: 0 8px;
  color: var(--ink-50);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.demo-view-switch button {
  min-width: 66px;
  background: transparent;
  color: var(--ink);
}

.demo-view-switch button.is-active {
  background: var(--ink);
  color: #fff;
}

.demo-prompt-sheet {
  display: grid;
  gap: 12px;
  max-width: 520px;
}

.demo-prompt-sheet .button {
  width: 100%;
}

body.is-feed-fullscreen .demo-toolbar {
  display: none;
}

@media (max-width: 1099px) {
  body.is-demo-mode:has(.guest-shell > .mobile-brand-bar--guest) .demo-toolbar {
    top: calc(max(10px, env(safe-area-inset-top)) + 58px);
  }
}

@media (max-width: 979px) {
  body.is-demo-mode:has(.host-shell > .mobile-brand-bar--host) .demo-toolbar {
    top: calc(max(10px, env(safe-area-inset-top)) + 58px);
  }

  body.is-demo-mode .host-layout {
    padding-top: calc(82px + env(safe-area-inset-top));
  }
}

@media (max-width: 560px) {
  .demo-toolbar {
    top: calc(max(6px, env(safe-area-inset-top)) + 58px);
    right: 6px;
    left: 6px;
    gap: 6px;
  }

  body.is-demo-mode:has(.event-hero--welcome) .demo-toolbar {
    top: max(6px, env(safe-area-inset-top));
  }

  body.is-demo-mode .guest-upload-shortcut {
    top: calc(max(12px, env(safe-area-inset-top)) + 116px);
  }

  .demo-toolbar-actions,
  .demo-view-switch {
    gap: 3px;
    padding: 3px;
  }

  .demo-toolbar button {
    min-height: 36px;
    padding: 7px 10px;
    font-size: 12px;
  }

  .demo-exit-button span,
  .demo-reset-button span,
  .demo-view-switch > span {
    display: none;
  }

  .demo-exit-button,
  .demo-reset-button {
    width: 36px;
    justify-content: center;
    padding: 0;
  }

  .demo-view-switch button {
    min-width: 54px;
  }
}

@media (max-width: 979px) {
  html:has(body.app-surface:not(.is-feed-fullscreen) .mobile-brand-bar) {
    width: 100%;
    height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
  }

  body.app-surface:not(.is-feed-fullscreen):not(:has(.event-hero--welcome)) {
    position: fixed;
    inset: 0;
    width: 100%;
    height: var(--app-visual-height, 100dvh);
    min-height: 0;
    overflow: hidden;
    overscroll-behavior: none;
  }

  body.app-surface:not(.is-feed-fullscreen):not(:has(.event-hero--welcome)) .app-frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

  body.is-app-keyboard-open .mobile-tabs {
    display: none;
  }

  body.is-app-keyboard-open .guest-shell,
  body.is-app-keyboard-open .host-shell {
    padding-bottom: 24px;
  }

  body.is-app-keyboard-open.is-guest-meal-page .app-frame {
    scroll-padding: 72px 0 24px;
  }

  body.is-app-keyboard-open.is-guest-meal-page .meal-page :is(input, select, textarea, button) {
    scroll-margin-block: 76px 24px;
  }

  body.is-app-modal-open .app-frame {
    overflow: hidden !important;
  }
}

@media (max-width: 1099px) {
  body:is(.is-app-keyboard-open, .is-app-keyboard-recovering) .modal-backdrop {
    top: var(--app-visual-viewport-top, 0px);
    height: var(--app-visual-viewport-height, 100dvh);
  }

  body:is(.is-app-keyboard-open, .is-app-keyboard-recovering) .modal-sheet {
    max-height: calc(var(--app-visual-viewport-height, 100dvh) - 8px);
    scroll-padding-block: 16px 36px;
    padding-bottom: calc(36px + env(safe-area-inset-bottom));
  }

  body:is(.is-app-keyboard-open, .is-app-keyboard-recovering) .modal-sheet :is(input, select, textarea, button, [contenteditable="true"]) {
    scroll-margin-block: 16px 36px;
  }
}

.topbar {
  position: sticky;
  z-index: 20;
  top: 0;
  display: none;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  background: rgba(251, 248, 243, 0.88);
  padding: 16px 40px;
  backdrop-filter: blur(14px);
}

.topbar img {
  height: 28px;
}

.topbar nav {
  display: flex;
  align-items: center;
  gap: 16px;
}

.mobile-brand-bar {
  position: sticky;
  z-index: 28;
  top: 0;
  display: flex;
  box-sizing: border-box;
  height: 60px;
  min-height: 60px;
  max-height: 60px;
  flex: 0 0 60px;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--line);
  background: rgba(251, 248, 243, 0.9);
  padding: 8px 18px;
  backdrop-filter: blur(14px);
}

.mobile-brand-bar--guest,
.mobile-brand-bar--host {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  justify-content: stretch;
}

.mobile-brand-action-column {
  display: flex;
  width: 44px;
  align-items: center;
}

.mobile-brand-action-column--start {
  justify-content: flex-start;
}

.mobile-brand-action-column--end {
  justify-content: flex-end;
}

.mobile-brand-action {
  display: inline-grid;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  box-shadow: 0 12px 24px -20px rgba(10, 30, 80, 0.7);
}

.mobile-brand-action:hover,
.mobile-brand-action:focus-visible {
  border-color: rgba(10, 30, 80, 0.32);
  outline: none;
}

.mobile-brand-upload {
  border-color: transparent;
  background: var(--guest-button-bg);
  color: var(--guest-button-text);
}

.mobile-brand-tutorial {
  border-color: rgba(10, 30, 80, 0.12);
  background: var(--ink);
  color: var(--white);
}

.mobile-brand-tutorial.is-disabled,
.mobile-brand-tutorial:disabled {
  border-color: var(--line);
  background: var(--ivory);
  color: var(--ink-50);
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.74;
}

.mobile-brand-action .icon {
  width: 19px;
  height: 19px;
}

.mobile-brand-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}

.mobile-brand-bar--guest .mobile-brand-logo,
.mobile-brand-bar--host .mobile-brand-logo {
  min-width: 0;
  justify-self: center;
}

.mobile-brand-logo img {
  display: block;
  height: 28px;
  width: auto;
}

.nav-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0;
  background: transparent;
  color: var(--ink-50);
  font-size: 13px;
  font-weight: 700;
}

.nav-button .icon {
  width: 16px;
  height: 16px;
}

.nav-button.is-active {
  color: var(--coral);
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  border-radius: 12px;
  border: 1.5px solid transparent;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1), background 220ms ease;
}

.button:focus-visible,
.nav-button:focus-visible,
.icon-button:focus-visible,
.chip:focus-visible,
.table-card:focus-visible,
.explore-button:focus-visible,
.template-route-toggle:focus-visible,
.settings-section-toggle:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

.button:hover {
  transform: translateY(-1px);
}

.button.primary {
  background: var(--coral);
  color: var(--white);
}

.button.ink {
  background: var(--ink);
  color: var(--white);
}

.button.secondary {
  border-color: var(--ink);
  background: transparent;
  color: var(--ink);
}

.button.ghost {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--white);
}

.button.danger-soft {
  border-color: rgba(251, 90, 87, 0.22);
  background: var(--coral-tint);
  color: var(--coral);
}

.timetable-edit-button {
  min-height: 40px;
  border-radius: 999px;
  padding: 0 14px;
  font-size: 13px;
  white-space: nowrap;
}

.host-timetable-card {
  color: var(--white);
}

.host-timetable-head {
  align-items: flex-start;
  margin-bottom: 14px;
}

.host-timetable-card .overline {
  color: rgba(255, 255, 255, 0.66);
}

.host-timetable-card .card-title {
  color: var(--white);
}

.host-timetable-card .timetable-edit-button {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.1);
  color: var(--white);
}

.icon {
  width: 18px;
  height: 18px;
  stroke-width: 1.7px;
}

.guest-shell {
  padding-bottom: calc(24px + env(safe-area-inset-bottom));
  color: var(--guest-body-text);
  font-family: var(--guest-body-font);
}

body.is-guest-menu-open,
body.is-host-menu-open {
  overflow: hidden;
}

body.is-guest-menu-open .app-frame,
body.is-host-menu-open .app-frame {
  overflow: hidden !important;
}

.guest-mobile-drawer {
  position: fixed;
  z-index: 140;
  inset: 0;
  display: grid;
  grid-template-columns: min(340px, calc(100vw - 44px)) 1fr;
}

.guest-drawer-backdrop {
  position: absolute;
  z-index: 0;
  inset: 0;
  border: 0;
  background: rgba(10, 30, 80, 0.42);
  backdrop-filter: blur(3px);
}

.guest-drawer-panel {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  min-width: 0;
  height: 100dvh;
  flex-direction: column;
  gap: 18px;
  overflow-x: hidden;
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: var(--paper);
  padding: calc(max(18px, env(safe-area-inset-top)) + 4px) 18px calc(18px + env(safe-area-inset-bottom));
  box-shadow: 24px 0 60px -38px rgba(10, 30, 80, 0.64);
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.guest-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.guest-drawer-head h2 {
  margin: 4px 0 0;
  color: var(--ink);
  font-family: var(--guest-display-font);
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
}

.guest-drawer-close {
  display: inline-grid;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
}

.guest-drawer-nav {
  display: grid;
  gap: 6px;
}

.guest-drawer-link {
  display: grid;
  min-width: 0;
  min-height: 46px;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ink);
  padding: 10px 12px;
  text-align: left;
  font-family: var(--guest-button-font);
  font-size: 15px;
  font-weight: 800;
}

.guest-drawer-link span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.guest-drawer-link.is-active {
  background: var(--blush);
  color: var(--coral-deep);
}

.guest-drawer-link:hover,
.guest-drawer-link:focus-visible {
  background: var(--ivory);
  outline: none;
}

.guest-drawer-link.is-active:hover,
.guest-drawer-link.is-active:focus-visible {
  background: var(--blush);
}

.guest-drawer-upload {
  width: 100%;
  margin-top: auto;
}

.host-mobile-drawer {
  position: fixed;
  z-index: 140;
  inset: 0;
  display: grid;
  grid-template-columns: min(340px, calc(100vw - 44px)) 1fr;
}

.host-drawer-backdrop {
  position: absolute;
  z-index: 0;
  inset: 0;
  border: 0;
  background: rgba(10, 30, 80, 0.42);
  backdrop-filter: blur(3px);
}

.host-drawer-panel {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  min-width: 0;
  height: 100dvh;
  flex-direction: column;
  gap: 16px;
  overflow-x: hidden;
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: var(--paper);
  padding: calc(max(18px, env(safe-area-inset-top)) + 4px) 18px calc(18px + env(safe-area-inset-bottom));
  box-shadow: 24px 0 60px -38px rgba(10, 30, 80, 0.64);
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.host-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.host-drawer-head h2 {
  margin: 4px 0 0;
  color: var(--ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 30px;
  font-weight: 600;
  line-height: 1;
}

.host-drawer-close {
  display: inline-grid;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
}

.host-drawer-nav {
  display: grid;
  gap: 4px;
}

.host-drawer-link {
  display: grid;
  min-width: 0;
  min-height: 44px;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ink);
  padding: 9px 12px;
  text-align: left;
  font-size: 14px;
  font-weight: 800;
}

.host-drawer-link > .icon {
  width: 19px;
  height: 19px;
}

.host-drawer-link > span:not(.host-drawer-lock) {
  min-width: 0;
  overflow-wrap: anywhere;
}

.host-drawer-link.is-active {
  background: var(--coral-tint);
  color: var(--coral);
}

.host-drawer-link.is-locked:not(.is-active) {
  color: var(--ink-50);
}

.host-drawer-link:hover,
.host-drawer-link:focus-visible {
  background: var(--ivory);
  outline: none;
}

.host-drawer-link.is-active:hover,
.host-drawer-link.is-active:focus-visible {
  background: var(--coral-tint);
}

.host-drawer-lock {
  display: inline-grid;
  place-items: center;
}

.host-drawer-lock .icon {
  width: 14px;
  height: 14px;
}

.host-drawer-upgrade {
  width: 100%;
  margin-top: auto;
}

.host-preview-return-pill {
  position: fixed;
  z-index: 27;
  top: calc(max(8px, env(safe-area-inset-top)) + 62px);
  left: max(12px, env(safe-area-inset-left));
  display: inline-flex;
  max-width: calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right));
  min-height: 40px;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
  padding: 9px 14px;
  font-family: var(--guest-button-font);
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 16px 34px -22px rgba(10, 30, 80, 0.8);
}

.host-preview-return-pill .icon {
  width: 17px;
  height: 17px;
}

.guest-upload-shortcut {
  position: fixed;
  z-index: 24;
  right: 18px;
  top: max(16px, env(safe-area-inset-top));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  border: 0;
  border-radius: 999px;
  background: var(--guest-button-bg);
  color: var(--guest-button-text);
  padding: 0 18px;
  font-family: var(--guest-button-font);
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 16px 34px -24px rgba(10, 30, 80, 0.72);
}

.guest-upload-shortcut .icon {
  width: 18px;
  height: 18px;
}

.guest-shell:has(.mobile-brand-bar) .guest-upload-shortcut {
  top: calc(env(safe-area-inset-top) + 64px);
}

.event-hero {
  position: relative;
  width: min(100%, 900px);
  margin: 0 auto;
  overflow: hidden;
  background: var(--template-ground);
  color: var(--template-title);
  font-family: var(--guest-body-font);
}

.event-hero--welcome {
  height: 100vh;
  min-height: 100vh;
  overflow: hidden;
}

.event-hero--home {
  min-height: 620px;
  height: 70vh;
}

.event-hero--home.event-hero--route-photography,
.event-hero--home.event-hero--route-duotone {
  height: clamp(360px, 48vw, 440px);
  min-height: 360px;
  max-height: 440px;
}

.event-hero-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--welcome-image-x, 50%) var(--welcome-image-y, 50%);
  transform: scale(var(--welcome-image-zoom, 1));
  transform-origin: var(--welcome-image-x, 50%) var(--welcome-image-y, 50%);
  display: block;
}

/* In-context welcome editor. The production template remains the only preview renderer. */
body.is-welcome-editor-open {
  overflow: hidden;
}

.welcome-editor-launcher {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
  align-items: center;
  gap: 22px;
}

.welcome-editor-launcher-art,
.welcome-editor-template-art {
  display: block;
  overflow: hidden;
  aspect-ratio: 393 / 852;
  border-radius: 8px;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
}

.welcome-editor-launcher-art {
  width: min(100%, 150px);
  justify-self: center;
  background-color: var(--ivory);
}

.welcome-editor-launcher-live-preview {
  position: relative;
  background: var(--paper);
}

.welcome-editor-launcher-live-preview .welcome-page-preview-frame {
  position: absolute;
  inset: 0 auto auto 0;
  width: 393px;
  height: 852px;
  max-width: none;
  aspect-ratio: auto;
  border-radius: 0;
  pointer-events: none;
  transform: scale(var(--current-welcome-preview-scale, 0.38168));
  transform-origin: top left;
}

.welcome-editor-launcher-art--classic,
.welcome-editor-template-art--classic {
  background: var(--template-ground, var(--ivory));
}

.welcome-editor-launcher-art--classic .template-choice-preview,
.welcome-editor-template-art--classic .template-choice-preview {
  width: 100%;
  height: 100%;
  min-height: 0;
  border-radius: 0;
}

.welcome-editor-template-art--classic .template-preview-text {
  gap: 5px;
  width: 88%;
  max-width: none;
}

.welcome-editor-template-art--classic .template-preview-meta {
  display: grid;
  gap: 2px;
  justify-items: center;
  min-width: 0;
}

.welcome-editor-template-art--classic .template-preview-date,
.welcome-editor-template-art--classic .template-preview-location {
  overflow: hidden;
  width: 100%;
  color: var(--template-muted);
  font-family: var(--guest-body-font);
  font-size: 7px;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.welcome-editor-template-art--classic .template-preview-date {
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.welcome-editor-template-art--classic .template-preview-cta {
  margin-top: 3px;
  background: var(--template-button);
  color: var(--template-button-text, #fff);
}

.welcome-editor-launcher-copy {
  min-width: 0;
}

.welcome-editor-launcher-copy .card-title {
  margin-top: 6px;
}

.welcome-editor-launcher-copy .copy {
  margin: 8px 0 16px;
}

.welcome-visual-editor {
  position: fixed;
  z-index: 140;
  inset: 0;
  display: grid;
  grid-template-rows: 68px minmax(0, 1fr);
  width: 100%;
  height: var(--app-stable-height, 100dvh);
  overflow: hidden;
  background: var(--paper);
  color: var(--ink);
}

.welcome-visual-editor-header {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  background: rgba(251, 248, 243, 0.96);
  padding: 10px 18px;
  backdrop-filter: blur(16px);
}

.welcome-editor-header-button,
.welcome-editor-icon-button {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--white);
  color: var(--ink);
}

.welcome-editor-icon-button:disabled {
  opacity: 0.35;
}

.welcome-editor-header-title {
  display: grid;
  min-width: 0;
}

.welcome-editor-header-title strong {
  font-size: 15px;
}

.welcome-editor-header-title small {
  overflow: hidden;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.welcome-editor-history-actions {
  display: flex;
  gap: 6px;
}

.welcome-editor-save {
  min-height: 42px;
  padding-inline: 18px;
}

.welcome-visual-editor-body {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 400px);
  min-height: 0;
  overflow: hidden;
}

.welcome-visual-editor-stage {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background:
    linear-gradient(90deg, transparent 49.9%, rgba(10, 30, 80, 0.045) 50%, transparent 50.1%),
    #e7eaf0;
  padding: 22px 24px;
}

.welcome-editor-device {
  width: min(393px, calc((100dvh - 150px) * 393 / 852), 100%);
  aspect-ratio: 393 / 852;
  overflow: hidden;
  border: 7px solid var(--ink);
  border-radius: 28px;
  background: var(--white);
  box-shadow: 0 28px 58px -34px rgba(10, 30, 80, 0.82);
}

.welcome-editor-device .welcome-page-preview-frame {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 20px;
}

.welcome-visual-editor-inspector {
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-left: 1px solid var(--line);
  background: var(--paper);
  padding-bottom: 30px;
  -webkit-overflow-scrolling: touch;
}

.welcome-editor-inspector-head {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  background: rgba(251, 248, 243, 0.96);
  padding: 18px 20px 14px;
  backdrop-filter: blur(14px);
}

.welcome-editor-inspector-head > div {
  display: grid;
  min-width: 0;
}

.welcome-editor-inspector-head .overline {
  color: var(--coral);
  font-size: 10px;
}

.welcome-editor-inspector-head strong {
  margin-top: 3px;
  font-family: var(--display);
  font-size: 26px;
  font-weight: 500;
  line-height: 1;
}

.welcome-editor-inspector-close {
  display: none;
}

.welcome-editor-inspector-content {
  padding: 18px 20px;
}

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

.welcome-editor-template-choice {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  padding: 7px;
  color: var(--ink);
  text-align: left;
}

.welcome-editor-template-choice.is-active {
  border-color: var(--coral);
  box-shadow: 0 0 0 2px var(--coral-tint);
}

.welcome-editor-template-choice > strong {
  display: block;
  overflow: hidden;
  margin-top: 7px;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.welcome-editor-template-art {
  width: 100%;
  border-radius: 5px;
  background-color: var(--ivory);
}

/* Keep these structural thumbnails proportional to their real 393 x 852 covers. */
.welcome-editor-template-choice[data-template-id="atelier"] .template-choice-preview--matted {
  display: block;
  padding: 0;
}

.welcome-editor-template-choice[data-template-id="atelier"] .template-choice-preview--matted > i {
  position: absolute;
  left: 4.75%;
  top: 16.66%;
  width: 90.5%;
  height: 39.38%;
  aspect-ratio: auto;
  border: 6px solid var(--white);
  border-bottom-width: 13px;
  background: var(--template-preview-image, url("/assets/wedding-hero.png")) center / cover;
  box-shadow: 0 8px 18px -12px rgba(10, 30, 80, 0.7);
}

.welcome-editor-template-choice[data-template-id="atelier"] .template-choice-preview--matted .template-preview-text {
  position: absolute;
  left: 4.75%;
  top: 57.47%;
  width: 90.5%;
  max-width: none;
  text-align: center;
}

.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage {
  display: block;
  padding: 0;
}

.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage > i,
.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage::before,
.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage::after {
  position: absolute;
  border-radius: 7px;
  background-position: center;
  background-size: cover;
}

.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage > i {
  left: 4.22%;
  top: 16.95%;
  width: 59.63%;
  height: 42.96%;
  background-image: var(--template-preview-image, url("/assets/wedding-hero.png"));
}

.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage::before,
.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage::after {
  left: 65.96%;
  width: 29.82%;
  height: 21%;
  content: "";
}

.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage::before {
  top: 16.95%;
  background-image: url("/assets/templates/july26/stock-02-640.webp");
}

.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage::after {
  top: 38.91%;
  background-image: url("/assets/templates/july26/stock-08-640.webp");
}

.welcome-editor-template-choice[data-template-id="mosaic"] .template-choice-preview--collage .template-preview-text {
  position: absolute;
  left: 4.22%;
  top: 61.34%;
  width: 91.56%;
  max-width: none;
  text-align: center;
}

.welcome-editor-element-list,
.welcome-editor-image-list,
.welcome-editor-control-stack {
  display: grid;
  gap: 12px;
}

.welcome-editor-element-button,
.welcome-editor-image-button {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 10px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  padding: 10px;
  color: var(--ink);
  text-align: left;
}

.welcome-editor-element-button > span:first-child {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--coral-tint);
  color: var(--coral);
}

.welcome-editor-element-button > span:nth-child(2),
.welcome-editor-image-button > span {
  display: grid;
  min-width: 0;
}

.welcome-editor-element-button small,
.welcome-editor-image-button small {
  overflow: hidden;
  color: var(--ink-50);
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.welcome-editor-image-button img {
  width: 42px;
  height: 42px;
  border-radius: 6px;
  object-fit: cover;
}

.welcome-editor-control-stack > label {
  display: grid;
  gap: 7px;
}

.welcome-editor-reset-link {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 7px;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 800;
}

.welcome-editor-reset-link.is-danger {
  color: var(--coral);
}

.welcome-editor-segmented {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin-top: 7px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  padding: 4px;
}

.welcome-editor-segmented button {
  min-height: 38px;
  border-radius: 6px;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 800;
}

.welcome-editor-segmented button.is-active {
  background: var(--ink);
  color: var(--white);
}

.welcome-editor-colour-grid {
  display: grid;
  grid-template-columns: repeat(9, 32px);
  gap: 7px;
  margin-top: 8px;
}

.welcome-editor-colour-grid button {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid transparent;
  border-radius: 50%;
}

.welcome-editor-colour-grid button > span,
.welcome-editor-background-grid button > span {
  display: block;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(10, 30, 80, 0.14);
  border-radius: 50%;
  background: var(--editor-swatch, linear-gradient(135deg, var(--coral) 50%, var(--ink) 50%));
}

.welcome-editor-colour-grid button.is-active {
  border-color: var(--ink);
}

.welcome-editor-background-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 8px;
}

.welcome-editor-background-grid button {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  padding: 7px 8px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 800;
  text-align: left;
}

.welcome-editor-background-grid button.is-active {
  border-color: var(--coral);
  box-shadow: 0 0 0 1px var(--coral-tint);
}

.welcome-editor-selected-image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  background: var(--ivory);
}

.welcome-editor-selected-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.welcome-editor-selected-image .button {
  position: absolute;
  right: 10px;
  bottom: 10px;
  min-height: 40px;
  background: rgba(255, 255, 255, 0.94);
}

.welcome-editor-crop-control {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  padding: 12px;
}

.welcome-editor-control-label {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.welcome-editor-control-label output {
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 800;
}

.welcome-editor-crop-control input[type="range"] {
  width: 100%;
  accent-color: var(--coral);
}

.welcome-editor-position-pad {
  display: grid;
  grid-template-columns: repeat(5, 40px);
  justify-content: center;
  gap: 6px;
}

.welcome-editor-position-pad button {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--ink);
}

.welcome-editor-empty-state,
.welcome-editor-event-link {
  display: grid;
  justify-items: center;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  padding: 28px 18px;
  text-align: center;
}

.welcome-editor-empty-state > .icon,
.welcome-editor-event-link > span {
  color: var(--coral);
}

.welcome-editor-event-link .button {
  width: 100%;
}

.welcome-editor-mobile-tools {
  display: none;
}

@media (max-width: 899px) {
  .welcome-editor-launcher {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 14px;
    padding: 16px;
  }

  .welcome-editor-launcher-copy .button {
    width: 100%;
    min-height: 44px;
    padding-inline: 10px;
    font-size: 13px;
  }

  .welcome-visual-editor {
    grid-template-rows: 58px minmax(0, 1fr);
  }

  .welcome-visual-editor-header {
    grid-template-columns: 38px minmax(0, 1fr) auto auto;
    gap: 7px;
    padding: 7px 9px;
  }

  .welcome-editor-header-button,
  .welcome-editor-icon-button {
    width: 36px;
    height: 36px;
  }

  .welcome-editor-header-title small {
    display: none;
  }

  .welcome-editor-history-actions {
    gap: 2px;
  }

  .welcome-editor-save {
    min-height: 38px;
    gap: 5px;
    padding-inline: 11px;
    font-size: 13px;
  }

  .welcome-visual-editor-body {
    display: block;
  }

  .welcome-visual-editor-stage {
    position: absolute;
    inset: 0 0 62px;
    padding: 12px;
  }

  .welcome-editor-device {
    width: min(100%, calc((100dvh - 190px) * 393 / 852));
    max-height: calc(100% - 2px);
    border-width: 5px;
    border-radius: 22px;
  }

  .welcome-editor-device .welcome-page-preview-frame {
    border-radius: 16px;
  }

  .welcome-visual-editor-inspector {
    position: absolute;
    z-index: 5;
    right: 0;
    bottom: 62px;
    left: 0;
    max-height: min(58dvh, 560px);
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -26px 54px -34px rgba(10, 30, 80, 0.78);
    transform: translateY(calc(100% + 10px));
    transition: transform 220ms ease;
  }

  .welcome-visual-editor-inspector.is-open {
    transform: translateY(0);
  }

  .welcome-editor-inspector-head {
    padding: 13px 16px 11px;
  }

  .welcome-editor-inspector-head strong {
    font-size: 23px;
  }

  .welcome-editor-inspector-close {
    display: inline-grid;
  }

  .welcome-editor-inspector-content {
    padding: 15px 16px calc(24px + env(safe-area-inset-bottom));
  }

  .welcome-editor-template-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .welcome-editor-mobile-tools {
    position: absolute;
    z-index: 6;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    min-height: 62px;
    border-top: 1px solid var(--line);
    background: rgba(251, 248, 243, 0.98);
    padding-bottom: env(safe-area-inset-bottom);
    backdrop-filter: blur(14px);
  }

  .welcome-editor-mobile-tools button {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 3px;
    min-width: 0;
    color: var(--ink-50);
    font-size: 10px;
    font-weight: 800;
  }

  .welcome-editor-mobile-tools button.is-active {
    color: var(--coral);
  }

  .welcome-editor-mobile-tools .icon {
    width: 20px;
    height: 20px;
  }

  body:is(.is-app-keyboard-open, .is-app-keyboard-recovering) .welcome-visual-editor {
    top: var(--app-visual-viewport-top, 0px);
    height: var(--app-visual-viewport-height, 100dvh);
  }

  body:is(.is-app-keyboard-open, .is-app-keyboard-recovering) .welcome-visual-editor-inspector {
    max-height: calc(var(--app-visual-viewport-height, 100dvh) - 58px);
    padding-bottom: calc(22px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 420px) {
  .welcome-editor-header-title strong {
    font-size: 13px;
  }

  .welcome-editor-history-actions .welcome-editor-icon-button {
    width: 32px;
    height: 32px;
  }

  .welcome-editor-template-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .welcome-editor-colour-grid {
    grid-template-columns: repeat(8, 32px);
  }
}

.event-hero--route-photography .event-hero-photo,
.event-hero--route-duotone .event-hero-photo {
  position: absolute;
  inset: 0;
}

.event-hero--welcome.event-hero--route-photography .event-hero-photo,
.event-hero--welcome.event-hero--route-duotone .event-hero-photo {
  min-height: 100vh;
}

.event-hero-scrim,
.event-hero-wash {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5, 17, 45, 0.18) 0%, color-mix(in srgb, var(--template-overlay) 42%, transparent) 42%, color-mix(in srgb, var(--template-overlay) 90%, rgba(5, 17, 45, 0.72)) 100%);
  pointer-events: none;
}

.event-hero-wash {
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--template-ground) 72%, transparent), color-mix(in srgb, var(--template-accent) 54%, transparent)),
    linear-gradient(180deg, rgba(10, 30, 80, 0.1), var(--template-overlay));
  mix-blend-mode: multiply;
}

.event-hero-copy {
  position: absolute;
  z-index: 2;
  right: 28px;
  bottom: clamp(76px, 14vh, 130px);
  left: 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--template-title);
  text-align: center;
}

.event-hero--home .event-hero-copy {
  bottom: 30px;
}

.event-hero--route-photography .event-hero-copy,
.event-hero--route-duotone .event-hero-copy {
  color: var(--template-photo-title);
}

.event-hero--route-photography .event-hero-copy::before,
.event-hero--route-duotone .event-hero-copy::before {
  position: absolute;
  z-index: -1;
  inset: -18px -16px;
  border-radius: 22px;
  background: radial-gradient(ellipse at center, rgba(5, 17, 45, 0.46), rgba(5, 17, 45, 0));
  content: "";
}

.event-hero-copy .overline {
  color: var(--template-muted);
}

.event-hero--route-photography .event-hero-copy .overline,
.event-hero--route-photography .event-hero-copy .hero-place,
.event-hero--route-photography .event-hero-copy .rule-date,
.event-hero--route-duotone .event-hero-copy .overline,
.event-hero--route-duotone .event-hero-copy .hero-place,
.event-hero--route-duotone .event-hero-copy .rule-date {
  color: var(--template-photo-muted);
}

body.is-demo-mode .event-hero--template-heirloom .event-hero-copy [data-editor-field="welcome-line"] {
  color: #fff;
}

.event-hero-copy .display {
  margin-top: 14px;
  color: var(--template-title);
  font-size: clamp(48px, 13vw, 84px);
  line-height: 0.9;
  text-shadow: 0 14px 32px rgba(5, 17, 45, 0.42);
}

.event-hero--route-photography .event-hero-copy .display,
.event-hero--route-duotone .event-hero-copy .display {
  color: var(--template-photo-title);
  text-shadow: 0 2px 8px rgba(5, 17, 45, 0.78), 0 18px 34px rgba(5, 17, 45, 0.62);
}

.event-hero-copy .display em {
  color: var(--template-accent);
  font-style: italic;
}

.event-hero-copy .rule-date {
  margin-top: 22px;
  color: var(--template-title);
}

.event-hero-copy .rule-date::before,
.event-hero-copy .rule-date::after {
  background: var(--template-muted);
}

.event-hero--route-photography .event-hero-copy .rule-date::before,
.event-hero--route-photography .event-hero-copy .rule-date::after,
.event-hero--route-duotone .event-hero-copy .rule-date::before,
.event-hero--route-duotone .event-hero-copy .rule-date::after {
  background: var(--template-photo-muted);
}

.event-hero-copy .hero-place {
  margin-top: 10px;
  color: var(--template-muted);
}

.guest-welcome-button {
  margin-top: 28px;
  min-width: min(280px, 100%);
  min-height: 58px;
  border-radius: 999px;
  background: var(--template-button);
  color: var(--guest-button-text);
  box-shadow: 0 18px 38px -20px rgba(10, 30, 80, 0.72);
  font-family: var(--guest-button-font);
  font-size: 16px;
}

@media (prefers-reduced-motion: no-preference) {
  .event-hero--animate .event-hero-copy > .overline,
  .event-hero--animate .event-hero-copy > .display,
  .event-hero--animate .event-hero-copy > .rule-date,
  .event-hero--animate .event-hero-copy > .hero-place {
    animation: eventHeroTextReveal 760ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
  }

  .event-hero--animate .event-hero-copy > .overline {
    animation-delay: 90ms;
  }

  .event-hero--animate .event-hero-copy > .display {
    animation-delay: 210ms;
  }

  .event-hero--animate .event-hero-copy > .rule-date {
    animation-delay: 340ms;
  }

  .event-hero--animate .event-hero-copy > .hero-place {
    animation-delay: 450ms;
  }

  .event-hero--animate .guest-welcome-button {
    animation: eventHeroButtonReveal 820ms cubic-bezier(0.2, 0.7, 0.2, 1) 580ms both;
    transition: transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1), background 220ms ease, box-shadow 220ms ease;
  }

  .guest-welcome-button:hover {
    box-shadow: 0 24px 46px -22px rgba(10, 30, 80, 0.82);
    transform: translateY(-2px);
  }
}

.event-hero--route-split {
  display: grid;
  min-height: 100vh;
}

.event-hero--home.event-hero--route-split {
  min-height: 620px;
}

.event-hero-media {
  min-height: 45vh;
  overflow: hidden;
}

.event-hero--home .event-hero-media {
  min-height: 280px;
}

.event-hero-panel,
.event-hero-caption {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 42vh;
  background: var(--template-ground);
  padding: 44px 28px;
}

.event-hero-panel .event-hero-copy,
.event-hero-caption .event-hero-copy,
.event-hero--route-minimal .event-hero-copy {
  position: static;
  inset: auto;
}

.event-hero-panel .event-hero-copy .display,
.event-hero-caption .event-hero-copy .display,
.event-hero--route-minimal .event-hero-copy .display {
  text-shadow: none;
}

.event-hero--route-minimal {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 54px 28px;
}

.event-hero--home.event-hero--route-minimal {
  min-height: 620px;
}

.event-hero-minimal-mark {
  margin-bottom: 26px;
  border: 1px solid color-mix(in srgb, var(--template-accent) 44%, transparent);
  border-radius: 999px;
  color: var(--template-accent);
  padding: 18px 24px;
  font-family: var(--guest-display-font);
  font-size: 42px;
  line-height: 1;
}

.event-hero--route-matted {
  display: grid;
  align-content: center;
  min-height: 100vh;
  padding: 30px;
  gap: 22px;
}

.event-hero--home.event-hero--route-matted {
  min-height: 620px;
}

.event-hero-mat {
  overflow: hidden;
  border: 14px solid var(--white);
  border-bottom-width: 32px;
  border-radius: 6px;
  box-shadow: 0 24px 50px -32px rgba(10, 30, 80, 0.66);
}

.event-hero-mat .event-hero-photo {
  aspect-ratio: 4 / 3;
}

.event-hero--route-matted .event-hero-caption,
.event-hero--route-collage .event-hero-caption {
  min-height: auto;
  border-radius: 20px;
  padding: 22px 18px 26px;
}

.event-hero--route-duotone {
  min-height: 100vh;
}

.event-hero--home.event-hero--route-duotone {
  min-height: 620px;
}

.event-hero--route-duotone .event-hero-copy {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
}

.event-hero--route-duotone .display {
  font-size: clamp(60px, 16vw, 108px);
  letter-spacing: 0;
}

.event-hero--route-collage {
  display: grid;
  align-content: center;
  min-height: 100vh;
  padding: 22px;
  gap: 16px;
}

.event-hero--home.event-hero--route-collage {
  min-height: 620px;
}

.event-hero-collage {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: repeat(2, minmax(130px, 1fr));
  gap: 10px;
  min-height: min(58vh, 520px);
}

.event-hero--home .event-hero-collage {
  min-height: 360px;
}

.event-hero-collage span {
  overflow: hidden;
  border-radius: 18px;
  background: var(--template-ground);
}

.event-hero-collage span:first-child {
  grid-row: 1 / span 2;
}

/* Every guest-home design uses one compact hero boundary. Legacy portrait
   layouts are recomposed inside it so their content is not stretched or clipped. */
.event-hero--home:is(
  .event-hero--route-photography,
  .event-hero--route-split,
  .event-hero--route-minimal,
  .event-hero--route-matted,
  .event-hero--route-duotone,
  .event-hero--route-collage
) {
  height: clamp(360px, 48vw, 440px);
  min-height: 360px;
  max-height: 440px;
}

.event-hero--home:not(.event-hero--route-july26) .event-hero-copy .display {
  font-size: clamp(32px, 5vw, 54px);
  line-height: 0.96;
}

.event-hero--home.event-hero--route-split {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: minmax(0, 1fr);
}

.event-hero--home.event-hero--route-split :is(.event-hero-media, .event-hero-panel) {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.event-hero--home.event-hero--route-split .event-hero-panel {
  padding: 28px 22px;
}

.event-hero--home.event-hero--route-minimal {
  align-content: center;
  padding: 28px;
}

.event-hero--home.event-hero--route-minimal .event-hero-minimal-mark {
  margin-bottom: 14px;
  padding: 12px 18px;
  font-size: 34px;
}

.event-hero--home:is(.event-hero--route-matted, .event-hero--route-collage) {
  grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr);
  grid-template-rows: minmax(0, 1fr);
  align-content: stretch;
  align-items: center;
  gap: 18px;
  padding: 20px;
}

.event-hero--home.event-hero--route-matted .event-hero-mat,
.event-hero--home.event-hero--route-collage .event-hero-collage {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.event-hero--home.event-hero--route-matted .event-hero-mat .event-hero-photo {
  height: 100%;
  aspect-ratio: auto;
}

.event-hero--home.event-hero--route-collage .event-hero-collage {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.event-hero--home:is(.event-hero--route-matted, .event-hero--route-collage) .event-hero-caption {
  width: 100%;
  min-height: 0;
  padding: 18px 14px;
}

@media (max-width: 520px) {
  .event-hero--home:is(
    .event-hero--route-photography,
    .event-hero--route-split,
    .event-hero--route-minimal,
    .event-hero--route-matted,
    .event-hero--route-duotone,
    .event-hero--route-collage
  ) {
    height: 288px;
    min-height: 288px;
    max-height: 288px;
  }

  .event-hero--home:not(.event-hero--route-july26) .event-hero-copy .display {
    margin-top: 8px;
    font-size: 28px;
    line-height: 0.94;
  }

  .event-hero--home:not(.event-hero--route-july26) .event-hero-copy .overline {
    font-size: 9px;
  }

  .event-hero--home:not(.event-hero--route-july26) .event-hero-copy .rule-date {
    gap: 6px;
    margin-top: 10px;
    font-size: 8px;
  }

  .event-hero--home:not(.event-hero--route-july26) .event-hero-copy .rule-date::before,
  .event-hero--home:not(.event-hero--route-july26) .event-hero-copy .rule-date::after {
    width: 16px;
  }

  .event-hero--home:not(.event-hero--route-july26) .event-hero-copy .hero-place {
    margin-top: 6px;
    font-size: 10px;
  }

  .event-hero--home.event-hero--route-split .event-hero-panel {
    padding: 18px 12px;
  }

  .event-hero--home.event-hero--route-minimal {
    padding: 18px;
  }

  .event-hero--home.event-hero--route-minimal .event-hero-minimal-mark {
    margin-bottom: 8px;
    padding: 9px 13px;
    font-size: 26px;
  }

  .event-hero--home:is(.event-hero--route-matted, .event-hero--route-collage) {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
    gap: 10px;
    padding: 12px;
  }

  .event-hero--home.event-hero--route-matted .event-hero-mat {
    border-width: 7px;
    border-bottom-width: 16px;
  }

  .event-hero--home:is(.event-hero--route-matted, .event-hero--route-collage) .event-hero-caption {
    padding: 10px 8px;
  }

  .event-hero--home.event-hero--route-collage .event-hero-collage {
    gap: 5px;
  }

  .event-hero--home.event-hero--route-collage .event-hero-collage span {
    border-radius: 8px;
  }
}

/* July 2026 collection: the supplied 393 x 852 designs are isolated to welcome and guest-home hero surfaces. */
.event-hero--route-july26 {
  display: block;
  padding: 0;
  min-width: 0;
  isolation: isolate;
}

.event-hero--welcome.event-hero--route-july26 {
  height: 100vh;
  min-height: 100vh;
}

.event-hero--home.event-hero--route-july26 {
  height: clamp(360px, 48vw, 440px);
  min-height: 360px;
  max-height: 440px;
}

.july26-hero-shell,
.july26-welcome-scale-frame,
.july26-reference-stage {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

.july26-hero-shell {
  position: relative;
  overflow: hidden;
  background: var(--template-ground);
}

.event-hero--welcome.event-hero--route-july26[data-july26-scale-mode] .july26-hero-shell {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  overscroll-behavior: contain;
  box-sizing: border-box;
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

.event-hero--welcome.event-hero--route-july26[data-july26-scale-mode] .july26-welcome-scale-frame {
  position: relative;
  flex: 0 0 auto;
  width: var(--july26-welcome-width);
  height: var(--july26-welcome-height);
}

.event-hero--welcome.event-hero--route-july26[data-july26-scale-mode] .july26-reference-stage {
  width: 393px;
  height: var(--july26-welcome-layout-height);
  transform: scale(var(--july26-welcome-scale));
  transform-origin: top left;
}

.july26-reference-stage {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-sizing: border-box;
}

.july26-reference-stage *,
.july26-reference-stage *::before,
.july26-reference-stage *::after {
  box-sizing: border-box;
}

.event-hero--route-july26 .guest-welcome-button {
  min-width: 0;
}

.july26-reference-stage .july26-source-photo {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.july26-reference-stage .btn {
  appearance: none;
  cursor: pointer;
  flex: 0 0 auto;
}

.event-hero--route-july26 .t-afterglow{background:var(--template-background-override,#1A1030);display:flex;flex-direction:column;align-items:center;text-align:center;padding:104px 32px 44px}
.event-hero--route-july26 .t-afterglow::before,.event-hero--route-july26 .t-afterglow::after{content:'';position:absolute;width:300px;height:300px;border-radius:999px;pointer-events:none}
.event-hero--route-july26 .t-afterglow::before{top:-120px;left:-120px;background:radial-gradient(circle,rgba(255,95,162,.22),transparent 70%)}
.event-hero--route-july26 .t-afterglow::after{bottom:-120px;right:-120px;background:radial-gradient(circle,rgba(255,95,162,.16),transparent 70%)}
.event-hero--route-july26 .t-afterglow .card{width:300px;height:360px;border-radius:16px;border:2px solid #FF5FA2;box-shadow:0 0 24px rgba(255,95,162,.55),inset 0 0 18px rgba(255,95,162,.3);overflow:hidden}
.event-hero--route-july26 .t-afterglow .card img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-afterglow .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;text-transform:uppercase;color:var(--july26-body-text,rgba(255,255,255,.7));margin:40px 0 0}
.event-hero--route-july26 .t-afterglow h1{font:400 60px / 1.1 var(--july26-display-font,'Pinyon Script');font-weight:400;color:var(--july26-heading-text,#FF5FA2);margin:8px 0 0;text-shadow:0 0 22px rgba(255,95,162,.75)}
.event-hero--route-july26 .t-afterglow .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;text-transform:uppercase;color:var(--july26-body-text,rgba(255,255,255,.7));margin:22px 0 0}
.event-hero--route-july26 .t-afterglow .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(255,255,255,.55));margin:8px 0 0}
.event-hero--route-july26 .t-afterglow .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border-radius:999px;border:1.5px solid var(--template-button,#FF5FA2);color:var(--template-button-text,#FF5FA2);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 0 18px rgba(255,95,162,.4)}
.event-hero--route-july26 .t-archway{background:var(--template-background-override,#FBF8F3);display:flex;flex-direction:column;align-items:center;text-align:center;padding:112px 32px 44px}
.event-hero--route-july26 .t-archway .wrap{position:relative}
.event-hero--route-july26 .t-archway .wrap::before{content:'';position:absolute;inset:-12px;border:1px solid rgba(184,146,78,.35);border-radius:154px 154px 10px 10px}
.event-hero--route-july26 .t-archway .mount{width:272px;height:400px;padding:6px;background:#fff;border:1px solid rgba(10,30,80,.18);border-radius:142px 142px 8px 8px;box-shadow:0 22px 46px -26px rgba(10,30,80,.4)}
.event-hero--route-july26 .t-archway .mount img{width:100%;height:100%;object-fit:cover;display:block;border-radius:136px 136px 4px 4px}
.event-hero--route-july26 .t-archway .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,#B8924E);margin:40px 0 0}
.event-hero--route-july26 .t-archway h1{font:500 46px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#0A1E50);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-archway .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#0A1E50);margin:20px 0 0}
.event-hero--route-july26 .t-archway .dia{width:6px;height:6px;background:#B8924E;transform:rotate(45deg);margin:12px 0 0}
.event-hero--route-july26 .t-archway .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#66707F);margin:12px 0 0}
.event-hero--route-july26 .t-archway .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#0A1E50);color:var(--template-button-text,#0A1E50);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:3px}
.event-hero--route-july26 .t-bouquet{background:var(--template-background-override,#F6E9E4);display:flex;flex-direction:column;align-items:center;text-align:center;padding:116px 32px 44px}
.event-hero--route-july26 .t-bouquet .ring{width:244px;height:244px;border-radius:999px;padding:6px;background:#fff;box-shadow:0 20px 42px -26px rgba(201,112,107,.5)}
.event-hero--route-july26 .t-bouquet .ring img{width:100%;height:100%;border-radius:999px;object-fit:cover;display:block}
.event-hero--route-july26 .t-bouquet svg{margin-top:10px}
.event-hero--route-july26 .t-bouquet .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;text-transform:uppercase;color:var(--july26-body-text,#C9706B);margin:16px 0 0}
.event-hero--route-july26 .t-bouquet h1{font:500 46px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#4A3B38);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-bouquet .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#4A3B38);margin:18px 0 0}
.event-hero--route-july26 .t-bouquet .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#8A6E68);margin:6px 0 0}
.event-hero--route-july26 .t-bouquet .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:54px;border-radius:999px;background:var(--template-button,#C9706B);color:var(--template-button-text,#FFF6F2);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 14px 28px -14px rgba(201,112,107,.6)}
.event-hero--route-july26 .t-broadsheet{background:var(--template-background-override,#FBF8F3);display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 32px 44px;color:#0A1E50}
.event-hero--route-july26 .t-broadsheet .dr{width:100%;height:6px;border-top:2px solid #0A1E50;border-bottom:1px solid #0A1E50}
.event-hero--route-july26 .t-broadsheet h1{font:600 40px / 1.05 var(--july26-display-font,'Cormorant Garamond');margin:16px 0 0}
.event-hero--route-july26 .t-broadsheet .deck{font:800 9px 'Hanken Grotesk';letter-spacing:.22em;text-transform:uppercase;margin:12px 0 16px;color:rgba(10,30,80,.75)}
.event-hero--route-july26 .t-broadsheet .photo{width:329px;height:300px;border:1px solid rgba(10,30,80,.5);padding:4px;margin-top:22px}
.event-hero--route-july26 .t-broadsheet .photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-broadsheet .capline{font:600 10px 'Hanken Grotesk';letter-spacing:.16em;text-transform:uppercase;color:rgba(10,30,80,.6);margin:10px 0 0}
.event-hero--route-july26 .t-broadsheet .cols{display:flex;align-items:center;gap:18px;margin-top:28px}
.event-hero--route-july26 .t-broadsheet .cols::before,.event-hero--route-july26 .t-broadsheet .cols::after{content:'';width:1px;height:74px;background:rgba(10,30,80,.35)}
.event-hero--route-july26 .t-broadsheet .colin .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.18em;text-transform:uppercase;margin:0}
.event-hero--route-july26 .t-broadsheet .colin .stand{font:500 20px/1.3 'Cormorant Garamond';font-style:italic;margin:8px 0 0;max-width:220px}
.event-hero--route-july26 .t-broadsheet .venue{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.16em;text-transform:uppercase;margin:16px 0 0;color:var(--july26-body-text,rgba(10,30,80,.75))}
.event-hero--route-july26 .t-broadsheet .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:232px;height:52px;border:1px solid var(--template-button,#0A1E50);color:var(--template-button-text,#0A1E50);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-cameo{background:var(--template-background-override,#F2EAD9);display:flex;flex-direction:column;align-items:center;text-align:center;padding:116px 32px 44px}
.event-hero--route-july26 .t-cameo .wrap{position:relative}
.event-hero--route-july26 .t-cameo .wrap::before{content:'';position:absolute;inset:-12px;border:1px solid rgba(184,146,78,.5);border-radius:50%}
.event-hero--route-july26 .t-cameo .ring{width:240px;height:320px;border-radius:50%;padding:6px;background:#fff;box-shadow:0 22px 44px -26px rgba(58,51,32,.45)}
.event-hero--route-july26 .t-cameo .ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.event-hero--route-july26 .t-cameo .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,#B8924E);margin:42px 0 0}
.event-hero--route-july26 .t-cameo h1{font:500 44px / 1.1 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#3A3320);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-cameo .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#3A3320);margin:20px 0 0}
.event-hero--route-july26 .t-cameo .orn{width:10px;height:6px;border-radius:50%;border:1px solid #B8924E;margin:12px 0 0}
.event-hero--route-july26 .t-cameo .venue{font:500 18px var(--july26-body-font,'Cormorant Garamond');color:var(--july26-body-text,#8A7B5E);margin:12px 0 0}
.event-hero--route-july26 .t-cameo .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border-radius:999px;border:1px solid var(--template-button,#B8924E);color:var(--template-button-text,#8A6B36);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-candlelight{background:var(--template-background-override,#0A1E50);display:flex;flex-direction:column;align-items:center;text-align:center;padding:150px 32px 44px}
.event-hero--route-july26 .t-candlelight::before{content:'';position:absolute;left:50%;top:310px;width:640px;height:720px;transform:translate(-50%,-50%);background:radial-gradient(ellipse 320px 360px at center,rgba(245,209,138,.28),transparent 70%);pointer-events:none}
.event-hero--route-july26 .t-candlelight .ring{width:236px;height:236px;border-radius:999px;border:5px solid rgba(245,230,200,.9);box-shadow:0 0 44px rgba(245,209,138,.5);overflow:hidden;position:relative}
.event-hero--route-july26 .t-candlelight .ring img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-candlelight .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,rgba(245,230,200,.65));margin:44px 0 0;position:relative}
.event-hero--route-july26 .t-candlelight h1{font:400 58px / 1.15 var(--july26-display-font,'Pinyon Script');font-weight:400;color:var(--july26-heading-text,#F5E6C8);margin:6px 0 0;position:relative;max-width:340px}
.event-hero--route-july26 .t-candlelight .flames{display:flex;gap:10px;margin-top:24px;position:relative}
.event-hero--route-july26 .t-candlelight .flames span{width:5px;height:5px;border-radius:999px;background:rgba(245,230,200,.8)}
.event-hero--route-july26 .t-candlelight .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,#F5E6C8);margin:18px 0 0;position:relative}
.event-hero--route-july26 .t-candlelight .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(245,230,200,.65));margin:8px 0 0;position:relative}
.event-hero--route-july26 .t-candlelight .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border-radius:999px;border:1px solid var(--template-button,rgba(245,230,200,.85));color:var(--template-button-text,#F5E6C8);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;position:relative}
.event-hero--route-july26 .t-champagne{background:var(--template-background-override,linear-gradient(170deg,#FBF4EC 0%,#F4E4D7 55%,#EED8CB 100%));display:flex;flex-direction:column;align-items:center;text-align:center;padding:110px 32px 44px}
.event-hero--route-july26 .t-champagne .ring{width:248px;height:248px;border-radius:999px;padding:6px;background:#fff;box-shadow:0 24px 50px -28px rgba(148,108,86,.55)}
.event-hero--route-july26 .t-champagne .ring img{width:100%;height:100%;border-radius:999px;object-fit:cover;display:block}
.event-hero--route-july26 .t-champagne .script{font:400 46px/1.15 var(--july26-body-font,'Pinyon Script');color:var(--july26-body-text,#A87456);margin:36px 0 0}
.event-hero--route-july26 .t-champagne h1{font:500 26px / 1.25 var(--july26-display-font,'Cormorant Garamond');letter-spacing:.12em;text-transform:uppercase;color:var(--july26-heading-text,#5A4436);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-champagne .meta{display:flex;align-items:center;gap:12px;margin-top:26px}
.event-hero--route-july26 .t-champagne .meta::before,.event-hero--route-july26 .t-champagne .meta::after{content:'';width:36px;height:1px;background:rgba(168,116,86,.45)}
.event-hero--route-july26 .t-champagne .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.22em;text-transform:uppercase;color:var(--july26-body-text,#5A4436);margin:0}
.event-hero--route-july26 .t-champagne .venue{font:500 18px var(--july26-body-font,'Cormorant Garamond');color:var(--july26-body-text,#8A6B52);margin:10px 0 0}
.event-hero--route-july26 .t-champagne .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:232px;height:54px;border-radius:999px;background:var(--template-button,#A87456);color:var(--template-button-text,#FFF9F3);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 14px 28px -14px rgba(148,108,86,.6)}
.event-hero--route-july26 .t-checkmate{background:var(--template-background-override,conic-gradient(#0A1E50 90deg,#FBF8F3 90deg 180deg,#0A1E50 180deg 270deg,#FBF8F3 270deg));background-size:88px 88px;display:flex;align-items:center;justify-content:center}
.event-hero--route-july26 .t-checkmate .card{width:316px;background:#fff;border-radius:20px;padding:26px;box-shadow:0 40px 80px -32px rgba(10,30,80,.65);text-align:center;display:flex;flex-direction:column;align-items:center}
.event-hero--route-july26 .t-checkmate .photo{width:264px;height:230px;border-radius:12px;overflow:hidden}
.event-hero--route-july26 .t-checkmate .photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-checkmate .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.22em;text-transform:uppercase;color:var(--july26-body-text,#FB5A57);margin:22px 0 0}
.event-hero--route-july26 .t-checkmate h1{font:500 40px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#0A1E50);margin:8px 0 0}
.event-hero--route-july26 .t-checkmate .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.18em;text-transform:uppercase;color:var(--july26-body-text,#0A1E50);margin:16px 0 0}
.event-hero--route-july26 .t-checkmate .venue{font:400 14px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#33436B);margin:5px 0 0}
.event-hero--route-july26 .t-checkmate .btn{margin-top:22px;display:flex;align-items:center;justify-content:center;width:100%;height:52px;border-radius:10px;background:var(--template-button,#0A1E50);color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-crescent{background:var(--template-background-override,#FDF3E3);display:flex;flex-direction:column;align-items:center;text-align:center}
.event-hero--route-july26 .t-crescent .hem{width:140%;height:400px;flex:none;margin-left:-20%;border-radius:0 0 50% 50%;overflow:hidden}
.event-hero--route-july26 .t-crescent .hem img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-crescent .dot{width:12px;height:12px;border-radius:999px;background:#C97F2E;margin-top:18px}
.event-hero--route-july26 .t-crescent .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;text-transform:uppercase;color:var(--july26-body-text,#C97F2E);margin:26px 0 0}
.event-hero--route-july26 .t-crescent h1{font:500 44px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#4A3B28);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .t-crescent .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#4A3B28);margin:20px 0 0}
.event-hero--route-july26 .t-crescent .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#8A7458);margin:6px 0 0}
.event-hero--route-july26 .t-crescent .btn{margin-top:auto;margin-bottom:44px;display:flex;align-items:center;justify-content:center;width:224px;height:54px;border-radius:999px;background:var(--template-button,#C97F2E);color:var(--template-button-text,#FFF9EE);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 14px 28px -14px rgba(201,127,46,.55)}
.event-hero--route-july26 .t-darkroom{background:var(--template-background-override,#23203A);display:flex;flex-direction:column;align-items:center;text-align:center;padding:96px 32px 44px}
.event-hero--route-july26 .t-darkroom .strip{width:300px;background:#141414;box-shadow:0 26px 52px -26px rgba(0,0,0,.7);display:flex;flex-direction:column;gap:14px;padding:16px 0;position:relative}
.event-hero--route-july26 .t-darkroom .strip::before,.event-hero--route-july26 .t-darkroom .strip::after{content:'';position:absolute;top:0;bottom:0;width:18px;background:repeating-linear-gradient(180deg,transparent 0 5px,rgba(255,255,255,.55) 5px 15px,transparent 15px 24px);background-size:10px 24px;background-position:center;background-repeat:repeat-y}
.event-hero--route-july26 .t-darkroom .strip::before{left:5px}.t-darkroom .strip::after{right:5px}
.event-hero--route-july26 .t-darkroom .fr{width:240px;height:200px;margin:0 auto;position:relative}
.event-hero--route-july26 .t-darkroom .fr img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-darkroom .fr span{position:absolute;right:-2px;bottom:4px;font:600 10px 'Hanken Grotesk';letter-spacing:.18em;color:rgba(255,166,64,.85)}
.event-hero--route-july26 .t-darkroom .f2{opacity:.45}
.event-hero--route-july26 .t-darkroom .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,#FF8A86);margin:40px 0 0}
.event-hero--route-july26 .t-darkroom h1{font:500 42px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#fff);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-darkroom .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,rgba(255,255,255,.8));margin:18px 0 0}
.event-hero--route-july26 .t-darkroom .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(255,255,255,.6));margin:6px 0 0}
.event-hero--route-july26 .t-darkroom .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1.5px solid var(--template-button,rgba(255,255,255,.85));color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:3px}
.event-hero--route-july26 .t-deco{background:var(--template-background-override,#0A1E50);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 48px}
.event-hero--route-july26 .t-deco .fa,.event-hero--route-july26 .t-deco .fb{position:absolute;pointer-events:none}
.event-hero--route-july26 .t-deco .fa{inset:26px;border:1px solid #C8A96A}
.event-hero--route-july26 .t-deco .fb{inset:38px;border:1px solid rgba(200,169,106,.55)}
.event-hero--route-july26 .t-deco .stud{position:absolute;width:8px;height:8px;background:#C8A96A}
.event-hero--route-july26 .t-deco .s1{top:22px;left:22px}.t-deco .s2{top:22px;right:22px}.t-deco .s3{bottom:22px;left:22px}.t-deco .s4{bottom:22px;right:22px}
.event-hero--route-july26 .t-deco .fan{position:absolute;top:52px;opacity:.85}
.event-hero--route-july26 .t-deco .fl{left:52px}.t-deco .fr2{right:52px;transform:scaleX(-1)}
.event-hero--route-july26 .t-deco .div{display:flex;align-items:center;gap:14px}
.event-hero--route-july26 .t-deco .div::before,.event-hero--route-july26 .t-deco .div::after{content:'';width:40px;height:1px;background:#C8A96A}
.event-hero--route-july26 .t-deco .div i{width:12px;height:12px;background:#C8A96A;transform:rotate(45deg)}
.event-hero--route-july26 .t-deco .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.3em;text-transform:uppercase;color:var(--july26-body-text,#C8A96A);margin:28px 0 0}
.event-hero--route-july26 .t-deco h1{font:500 48px / 1.1 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#F5EFE2);margin:12px 0 0;max-width:270px}
.event-hero--route-july26 .t-deco .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.22em;text-transform:uppercase;color:var(--july26-body-text,#C8A96A);margin:26px 0 0}
.event-hero--route-july26 .t-deco .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(245,239,226,.7));margin:8px 0 26px}
.event-hero--route-july26 .t-deco .btn{position:absolute;bottom:64px;left:calc(50% - 112px);display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#C8A96A);color:var(--template-button-text,#C8A96A);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-eucalypt{background:var(--template-background-override,#fff);display:flex;flex-direction:column;align-items:center;text-align:center;padding:132px 32px 44px}
.event-hero--route-july26 .t-eucalypt .sprig{position:absolute;opacity:.9}
.event-hero--route-july26 .t-eucalypt .s1{top:-20px;left:-24px}
.event-hero--route-july26 .t-eucalypt .s2{bottom:-20px;right:-24px;transform:rotate(180deg)}
.event-hero--route-july26 .t-eucalypt .mount{width:260px;height:360px;padding:5px;background:#fff;border:1px solid #C8A96A;border-radius:135px 135px 8px 8px;box-shadow:0 20px 44px -26px rgba(63,74,60,.4)}
.event-hero--route-july26 .t-eucalypt .mount img{width:100%;height:100%;object-fit:cover;display:block;border-radius:130px 130px 4px 4px}
.event-hero--route-july26 .t-eucalypt .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,#7E967F);margin:38px 0 0}
.event-hero--route-july26 .t-eucalypt h1{font:500 46px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#3F4A3C);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-eucalypt .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#3F4A3C);margin:20px 0 0}
.event-hero--route-july26 .t-eucalypt .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#71806E);margin:6px 0 0}
.event-hero--route-july26 .t-eucalypt .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#3F4A3C);color:var(--template-button-text,#3F4A3C);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:3px}
.event-hero--route-july26 .t-evermore{background:var(--template-background-override,#FBF8F3);display:flex;flex-direction:column;align-items:center;text-align:center;padding:128px 32px 44px}
.event-hero--route-july26 .t-evermore .orn{position:absolute;left:28px;right:28px;height:4px}
.event-hero--route-july26 .t-evermore .o1{top:64px}.t-evermore .o2{bottom:64px}
.event-hero--route-july26 .t-evermore .orn::before,.event-hero--route-july26 .t-evermore .orn::after{content:'';position:absolute;left:0;right:0;height:1px;background:#C8A96A}
.event-hero--route-july26 .t-evermore .orn::after{top:3px;opacity:.5}
.event-hero--route-july26 .t-evermore .orn i{position:absolute;left:50%;top:-2px;width:7px;height:7px;background:#C8A96A;transform:translateX(-50%) rotate(45deg)}
.event-hero--route-july26 .t-evermore .mat{width:288px;height:330px;padding:6px;background:#fff;border:1px solid #C8A96A;box-shadow:0 20px 44px -26px rgba(58,51,32,.45)}
.event-hero--route-july26 .t-evermore .mat img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-evermore .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.3em;text-transform:uppercase;color:var(--july26-body-text,#B8924E);margin:40px 0 0}
.event-hero--route-july26 .t-evermore h1{font:500 30px / 1.3 var(--july26-display-font,'Cormorant Garamond');letter-spacing:.14em;text-transform:uppercase;color:var(--july26-heading-text,#3A3320);margin:10px 0 0}
.event-hero--route-july26 .t-evermore h1 em{font:500 44px 'Cormorant Garamond';font-style:italic;text-transform:none;letter-spacing:0;color:#C8A96A;display:block;line-height:.9;margin:2px 0}
.event-hero--route-july26 .t-evermore .date{font:600 12px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;color:var(--july26-body-text,#3A3320);margin:22px 0 0}
.event-hero--route-july26 .t-evermore .venue{font:500 18px var(--july26-body-font,'Cormorant Garamond');color:var(--july26-body-text,#6B6350);margin:8px 0 0}
.event-hero--route-july26 .t-evermore .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#B8924E);color:var(--template-button-text,#8A6B36);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--welcome.event-hero--route-july26 .t-evermore .o2{bottom:114px}
.event-hero--route-july26 .t-gildstone{background:var(--template-background-override,linear-gradient(160deg,#F5F2EC 0%,#EFEBE4 40%,#E5DFD4 75%,#EFEBE4 100%));display:flex;flex-direction:column;align-items:center;text-align:center;padding:148px 32px 44px}
.event-hero--route-july26 .t-gildstone .hair{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(184,146,78,.6),transparent)}
.event-hero--route-july26 .t-gildstone .h1{top:84px}.t-gildstone .h2{bottom:84px}
.event-hero--route-july26 .t-gildstone .mat{width:296px;height:340px;padding:6px;background:#fff;border:1px solid #C8A96A;box-shadow:0 20px 44px -26px rgba(58,51,32,.5)}
.event-hero--route-july26 .t-gildstone .mat img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-gildstone .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.3em;text-transform:uppercase;color:var(--july26-body-text,#B8924E);margin:44px 0 0}
.event-hero--route-july26 .t-gildstone h1{font:500 42px / 1.1 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#3A3320);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-gildstone .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.22em;text-transform:uppercase;color:var(--july26-body-text,#3A3320);margin:20px 0 0}
.event-hero--route-july26 .t-gildstone .venue{font:500 18px var(--july26-body-font,'Cormorant Garamond');color:var(--july26-body-text,#6B6350);margin:8px 0 0}
.event-hero--route-july26 .t-gildstone .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#B8924E);color:var(--template-button-text,#8A6B36);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--welcome.event-hero--route-july26 .t-gildstone .h2{bottom:114px}
.event-hero--route-july26 .t-haze{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 32px 44px}
.event-hero--route-july26 .t-haze .bg,.event-hero--route-july26 .t-haze .wash{position:absolute;inset:0}
.event-hero--route-july26 .t-haze .bg img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-haze .wash{background:linear-gradient(180deg,rgba(200,169,106,.35),rgba(107,78,34,.75))}
.event-hero--route-july26 .t-haze .frame{position:absolute;inset:18px;border:1px solid rgba(255,255,255,.65);pointer-events:none}
.event-hero--route-july26 .t-haze .kicker{position:relative;font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,#FFF9EE);margin:560px 0 0}
.event-hero--route-july26 .t-haze h1{position:relative;font:500 46px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#FFF9EE);margin:12px 0 0;max-width:320px;text-shadow:0 2px 24px rgba(60,40,10,.5)}
.event-hero--route-july26 .t-haze .date{position:relative;font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#FFF9EE);margin:18px 0 0}
.event-hero--route-july26 .t-haze .venue{position:relative;font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(255,249,238,.8));margin:6px 0 0}
.event-hero--route-july26 .t-haze .btn{position:relative;margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,rgba(255,249,238,.9));color:var(--template-button-text,#FFF9EE);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:2px}
.event-hero--route-july26 .t-laurel{background:var(--template-background-override,#E7EAF3);display:flex;flex-direction:column;align-items:center;text-align:center;padding:118px 32px 44px}
.event-hero--route-july26 .t-laurel .crest{width:240px;height:240px;border-radius:999px;padding:6px;background:#fff;box-shadow:0 0 0 1px rgba(74,94,143,.0),0 20px 44px -26px rgba(32,49,92,.5);position:relative}
.event-hero--route-july26 .t-laurel .crest::after{content:'';position:absolute;inset:-8px;border-radius:999px;border:1px solid rgba(74,94,143,.4)}
.event-hero--route-july26 .t-laurel .crest img{width:100%;height:100%;border-radius:999px;object-fit:cover;display:block}
.event-hero--route-july26 .t-laurel svg{margin-top:22px}
.event-hero--route-july26 .t-laurel .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,#4A5E8F);margin:26px 0 0}
.event-hero--route-july26 .t-laurel h1{font:500 44px / 1.1 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#20315C);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-laurel .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#20315C);margin:20px 0 0}
.event-hero--route-july26 .t-laurel .venue{font:500 18px var(--july26-body-font,'Cormorant Garamond');color:var(--july26-body-text,#66759E);margin:8px 0 0}
.event-hero--route-july26 .t-laurel .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#4A5E8F);color:var(--template-button-text,#4A5E8F);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:4px}
.event-hero--route-july26 .t-masthead{display:flex;flex-direction:column;align-items:center;text-align:center;padding:72px 24px 44px}
.event-hero--route-july26 .t-masthead .bg,.event-hero--route-july26 .t-masthead .scrim{position:absolute;inset:0}
.event-hero--route-july26 .t-masthead .bg img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-masthead .scrim{background:linear-gradient(180deg,rgba(10,30,80,.35) 0%,rgba(10,30,80,.1) 35%,rgba(10,30,80,.85) 100%)}
.event-hero--route-july26 .t-masthead .kicker,.event-hero--route-july26 .t-masthead h1,.event-hero--route-july26 .t-masthead .rule,.event-hero--route-july26 .t-masthead .date,.event-hero--route-july26 .t-masthead .venue,.event-hero--route-july26 .t-masthead .btn{position:relative;z-index:2}
.event-hero--route-july26 .t-masthead .kicker{font:700 12px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,rgba(255,255,255,.85));margin:0}
.event-hero--route-july26 .t-masthead h1{font:800 64px / 0.95 var(--july26-display-font,'Hanken Grotesk');letter-spacing:.04em;text-transform:uppercase;color:var(--july26-heading-text,#fff);margin:14px 0 0;max-width:345px;text-shadow:0 4px 30px rgba(10,30,80,.4)}
.event-hero--route-july26 .t-masthead .rule{width:56px;height:2px;background:#fff;margin:26px 0 0}
.event-hero--route-july26 .t-masthead .date{font:600 12px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.18em;text-transform:uppercase;color:var(--july26-body-text,#fff);margin-top:auto}
.event-hero--route-july26 .t-masthead .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(255,255,255,.75));margin:8px 0 0}
.event-hero--route-july26 .t-masthead .btn{margin-top:24px;display:flex;align-items:center;justify-content:center;width:232px;height:54px;background:var(--template-button,#FB5A57);color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:4px;box-shadow:0 16px 34px -14px rgba(251,90,87,.7)}
.event-hero--route-july26 .t-medallion{background:var(--template-background-override,#E7EAF3);display:flex;flex-direction:column;align-items:center;text-align:center;padding:104px 32px 44px}
.event-hero--route-july26 .t-medallion .outer{width:316px;height:316px;border-radius:999px;border:1px solid rgba(74,94,143,.5);display:flex;align-items:center;justify-content:center;position:relative}
.event-hero--route-july26 .t-medallion .outer i{position:absolute;background:rgba(74,94,143,.6)}
.event-hero--route-july26 .t-medallion .tn{top:-5px;left:50%;width:1px;height:10px;transform:translateX(-50%)}
.event-hero--route-july26 .t-medallion .ts{bottom:-5px;left:50%;width:1px;height:10px;transform:translateX(-50%)}
.event-hero--route-july26 .t-medallion .te{right:-5px;top:50%;height:1px;width:10px;transform:translateY(-50%)}
.event-hero--route-july26 .t-medallion .tw{left:-5px;top:50%;height:1px;width:10px;transform:translateY(-50%)}
.event-hero--route-july26 .t-medallion .ring{width:252px;height:252px;border-radius:999px;padding:6px;background:#fff;box-shadow:0 22px 44px -26px rgba(32,49,92,.5)}
.event-hero--route-july26 .t-medallion .ring img{width:100%;height:100%;border-radius:999px;object-fit:cover;display:block}
.event-hero--route-july26 .t-medallion .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,#4A5E8F);margin:44px 0 0}
.event-hero--route-july26 .t-medallion h1{font:500 46px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#20315C);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-medallion .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#20315C);margin:20px 0 0}
.event-hero--route-july26 .t-medallion .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#66759E);margin:6px 0 0}
.event-hero--route-july26 .t-medallion .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border-radius:6px;background:var(--template-button,#4A5E8F);color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-mod{background:var(--template-background-override,#FBF8F3);display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;padding:44px 32px}
.event-hero--route-july26 .t-mod .grid{position:absolute;display:grid;grid-template-columns:repeat(3,34px);grid-auto-rows:34px}
.event-hero--route-july26 .t-mod .g1{top:-10px;left:-10px}
.event-hero--route-july26 .t-mod .g2{bottom:-10px;right:-10px;transform:rotate(180deg)}
.event-hero--route-july26 .t-mod .grid i{display:block}
.event-hero--route-july26 .t-mod .c{background:#FB5A57}.t-mod .n{background:#0A1E50}.t-mod .g{background:#C8A96A}
.event-hero--route-july26 .t-mod .kicker{font:600 12px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;text-transform:uppercase;color:var(--july26-body-text,#FB5A57);margin:0}
.event-hero--route-july26 .t-mod h1{font:500 54px / 1.05 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#0A1E50);margin:14px 0 0;max-width:330px}
.event-hero--route-july26 .t-mod .rule{width:56px;height:3px;background:#FB5A57;margin:28px 0 0}
.event-hero--route-july26 .t-mod .date{font:600 12px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.18em;text-transform:uppercase;color:var(--july26-body-text,#0A1E50);margin:24px 0 0}
.event-hero--route-july26 .t-mod .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#33436B);margin:8px 0 0}
.event-hero--route-july26 .t-mod .btn{position:absolute;bottom:44px;left:calc(50% - 112px);display:flex;align-items:center;justify-content:center;width:224px;height:54px;border-radius:4px;background:var(--template-button,#FB5A57);color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 14px 30px -14px rgba(251,90,87,.6)}
.event-hero--route-july26 .t-panorama{background:var(--template-background-override,#FBF8F3);display:flex;flex-direction:column}
.event-hero--route-july26 .t-panorama .photo{position:relative;height:470px;flex:none}
.event-hero--route-july26 .t-panorama .photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-panorama .photo::after{content:'';position:absolute;inset:16px;border:1px solid rgba(251,248,243,.5);pointer-events:none}
.event-hero--route-july26 .t-panorama .panel{flex:1;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:36px 28px 44px}
.event-hero--route-july26 .t-panorama .rule{width:44px;height:3px;background:#FB5A57}
.event-hero--route-july26 .t-panorama .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.22em;text-transform:uppercase;color:var(--july26-body-text,#FB5A57);margin:16px 0 0}
.event-hero--route-july26 .t-panorama h1{font:500 48px / 1.05 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#0A1E50);margin:10px 0 0;max-width:300px}
.event-hero--route-july26 .t-panorama .date{font:600 12px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.18em;text-transform:uppercase;color:var(--july26-body-text,#0A1E50);margin:18px 0 0}
.event-hero--route-july26 .t-panorama .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#33436B);margin:6px 0 0}
.event-hero--route-july26 .t-panorama .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:210px;height:52px;background:var(--template-button,#0A1E50);color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-picnic{background:var(--template-background-override,#E7EEE3);background-image:repeating-linear-gradient(0deg,rgba(110,138,105,.28) 0 36px,transparent 36px 72px),repeating-linear-gradient(90deg,rgba(110,138,105,.28) 0 36px,transparent 36px 72px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:44px 32px}
.event-hero--route-july26 .t-picnic .card{position:relative;width:300px;background:#fff;border-radius:6px;padding:52px 28px;box-shadow:0 26px 52px -28px rgba(63,74,60,.5)}
.event-hero--route-july26 .t-picnic .card::before{content:'';position:absolute;inset:10px;border:1px solid rgba(110,138,105,.4);border-radius:3px;pointer-events:none}
.event-hero--route-july26 .t-picnic .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;text-transform:uppercase;color:var(--july26-body-text,#6E8A69);margin:0}
.event-hero--route-july26 .t-picnic h1{font:500 42px / 1.1 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#3F4A3C);margin:12px 0 0}
.event-hero--route-july26 .t-picnic .rule{width:44px;height:1px;background:rgba(110,138,105,.6);margin:24px auto 0}
.event-hero--route-july26 .t-picnic .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#3F4A3C);margin:22px 0 0}
.event-hero--route-july26 .t-picnic .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#71806E);margin:8px 0 0}
.event-hero--route-july26 .t-picnic .btn{position:absolute;bottom:44px;left:calc(50% - 112px);display:flex;align-items:center;justify-content:center;width:224px;height:52px;border-radius:999px;background:var(--template-button,#6E8A69);color:var(--template-button-text,#F3F7F1);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 14px 28px -14px rgba(110,138,105,.6)}
.event-hero--route-july26 .t-regency{background:var(--template-background-override,#43285A);display:flex;flex-direction:column;align-items:center;text-align:center;padding:140px 40px 64px}
.event-hero--route-july26 .t-regency .fa,.event-hero--route-july26 .t-regency .fb{position:absolute;pointer-events:none}
.event-hero--route-july26 .t-regency .fa{inset:22px;border:1px solid #C8A96A}
.event-hero--route-july26 .t-regency .fb{inset:29px 15px 15px 29px;border:1px solid rgba(200,169,106,.5)}
.event-hero--route-july26 .t-regency .mat{width:264px;height:320px;padding:5px;background:#fff;border:1px solid #C8A96A;box-shadow:0 22px 46px -26px rgba(0,0,0,.55)}
.event-hero--route-july26 .t-regency .mat img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-regency .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,#C8A96A);margin:40px 0 0}
.event-hero--route-july26 .t-regency h1{font:500 42px / 1.1 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#F3EDF7);margin:10px 0 0;max-width:300px}
.event-hero--route-july26 .t-regency .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#C8A96A);margin:20px 0 0}
.event-hero--route-july26 .t-regency .venue{font:500 18px var(--july26-body-font,'Cormorant Garamond');font-style:italic;color:var(--july26-body-text,rgba(243,237,247,.75));margin:8px 0 0}
.event-hero--route-july26 .t-regency .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#C8A96A);color:var(--template-button-text,#C8A96A);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-riviera{background:var(--template-background-override,#FFFDF8);display:flex;flex-direction:column;align-items:center;text-align:center}
.event-hero--route-july26 .t-riviera .awning{width:100%;height:120px;flex:none;background:repeating-linear-gradient(90deg,#2E6E8E 0 30px,#FFFDF8 30px 60px);border-bottom:2px solid #2E6E8E}
.event-hero--route-july26 .t-riviera .photo{width:300px;height:330px;border-radius:14px;border:4px solid #fff;box-shadow:0 20px 40px -24px rgba(31,74,96,.45);overflow:hidden;margin-top:56px}
.event-hero--route-july26 .t-riviera .photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-riviera .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,#2E6E8E);margin:40px 0 0}
.event-hero--route-july26 .t-riviera h1{font:500 44px / 1.08 var(--july26-display-font,'Cormorant Garamond');font-style:italic;color:var(--july26-heading-text,#1F4A60);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-riviera .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#1F4A60);margin:20px 0 0}
.event-hero--route-july26 .t-riviera .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#5E7E90);margin:6px 0 0}
.event-hero--route-july26 .t-riviera .btn{margin-top:auto;margin-bottom:44px;display:flex;align-items:center;justify-content:center;width:220px;height:52px;border-radius:8px;background:var(--template-button,#2E6E8E);color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-rodeo{background:var(--template-background-override,#C96A2F);display:flex;flex-direction:column;align-items:center;text-align:center;padding:128px 40px 44px}
.event-hero--route-july26 .t-rodeo .r1,.event-hero--route-july26 .t-rodeo .r2{position:absolute;pointer-events:none}
.event-hero--route-july26 .t-rodeo .r1{inset:20px;border:2px dashed rgba(251,242,228,.75);border-radius:6px}
.event-hero--route-july26 .t-rodeo .r2{inset:28px;border:2px dashed rgba(251,242,228,.4);border-radius:4px}
.event-hero--route-july26 .t-rodeo .mat{width:272px;height:310px;padding:7px;background:#FBF2E4;box-shadow:0 20px 42px -24px rgba(90,40,10,.6)}
.event-hero--route-july26 .t-rodeo .mat img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.35) saturate(.9)}
.event-hero--route-july26 .t-rodeo .stars{font-size:14px;color:#F7D9A8;letter-spacing:14px;margin:26px 0 0;text-indent:14px}
.event-hero--route-july26 .t-rodeo .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,#F7D9A8);margin:14px 0 0}
.event-hero--route-july26 .t-rodeo h1{font:400 34px / 1.2 var(--july26-display-font,'Rye');color:var(--july26-heading-text,#FBF2E4);margin:12px 0 0;max-width:300px}
.event-hero--route-july26 .t-rodeo .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#FBF2E4);margin:20px 0 0}
.event-hero--route-july26 .t-rodeo .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(251,242,228,.75));margin:6px 0 0}
.event-hero--route-july26 .t-rodeo .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border-radius:4px;background:var(--template-button,#FBF2E4);color:var(--template-button-text,#8A4318);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-salon{background:var(--template-background-override,#6E3B3B);display:flex;flex-direction:column;align-items:center;text-align:center;padding:96px 32px 44px}
.event-hero--route-july26 .t-salon .nail{width:8px;height:8px;border-radius:999px;background:#E8C87E;position:relative}
.event-hero--route-july26 .t-salon .wire{position:absolute;top:100px;left:50%;width:200px;height:1px;background:rgba(232,200,126,.55);transform-origin:left center}
.event-hero--route-july26 .t-salon .w1{transform:translateX(-2px) rotate(24deg)}
.event-hero--route-july26 .t-salon .w2{transform:translateX(2px) rotate(156deg)}
.event-hero--route-july26 .t-salon .frame{margin-top:28px;padding:10px;background:linear-gradient(135deg,#D9B36A,#B8924E 40%,#E8C87E 70%,#A67F3C);box-shadow:0 26px 54px -26px rgba(0,0,0,.6)}
.event-hero--route-july26 .t-salon .frame .in{padding:5px;background:#6E3B3B}
.event-hero--route-july26 .t-salon .frame img{width:272px;height:330px;object-fit:cover;display:block}
.event-hero--route-july26 .t-salon .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.28em;text-transform:uppercase;color:var(--july26-body-text,#E8C87E);margin:40px 0 0}
.event-hero--route-july26 .t-salon h1{font:500 40px / 1.12 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#F7EFE3);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-salon .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#E8C87E);margin:20px 0 0}
.event-hero--route-july26 .t-salon .venue{font:500 18px var(--july26-body-font,'Cormorant Garamond');font-style:italic;color:var(--july26-body-text,rgba(247,239,227,.75));margin:8px 0 0}
.event-hero--route-july26 .t-salon .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#E8C87E);color:var(--template-button-text,#E8C87E);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-sash{display:flex;flex-direction:column;align-items:center}
.event-hero--route-july26 .t-sash .bg,.event-hero--route-july26 .t-sash .scrim{position:absolute;inset:0}
.event-hero--route-july26 .t-sash .bg img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-sash .scrim{background:linear-gradient(180deg,transparent 55%,rgba(10,30,80,.75) 100%)}
.event-hero--route-july26 .t-sash .sash{position:absolute;top:330px;left:-20%;width:140%;padding:34px 0;background:rgba(10,30,80,.96);transform:rotate(-6deg);box-shadow:0 24px 48px -20px rgba(10,30,80,.6);text-align:center}
.event-hero--route-july26 .t-sash .sash::before,.event-hero--route-july26 .t-sash .sash::after{content:'';position:absolute;left:0;right:0;height:1px;background:rgba(255,138,134,.6)}
.event-hero--route-july26 .t-sash .sash::before{top:8px}.t-sash .sash::after{bottom:8px}
.event-hero--route-july26 .t-sash .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,#FF8A86);margin:0}
.event-hero--route-july26 .t-sash h1{font:500 44px / 1.06 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#fff);margin:8px 0 0}
.event-hero--route-july26 .t-sash .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,rgba(255,255,255,.8));margin:12px 0 0}
.event-hero--route-july26 .t-sash .venue{position:absolute;bottom:128px;left:24px;right:24px;font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(255,255,255,.8));text-align:center}
.event-hero--route-july26 .t-sash .btn{position:absolute;bottom:44px;left:calc(50% - 112px);display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1.5px solid #fff;color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:3px}
.event-hero--route-july26 .t-scallop{background:var(--template-background-override,#F6E9E4);display:flex;flex-direction:column;align-items:center;text-align:center}
.event-hero--route-july26 .t-scallop .photo{width:100%;height:380px;flex:none;position:relative}
.event-hero--route-july26 .t-scallop .photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-scallop .photo::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:28px;background:radial-gradient(circle 28px at 28px 28px,#F6E9E4 27px,transparent 28px);background-size:56px 28px;background-position:0 0;background-repeat:repeat-x}
.event-hero--route-july26 .t-scallop .dots{display:flex;gap:12px;margin-top:26px}
.event-hero--route-july26 .t-scallop .dots span{width:6px;height:6px;border-radius:999px;background:#C9706B}
.event-hero--route-july26 .t-scallop .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;text-transform:uppercase;color:var(--july26-body-text,#C9706B);margin:22px 0 0}
.event-hero--route-july26 .t-scallop h1{font:500 44px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#4A3B38);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .t-scallop .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#4A3B38);margin:20px 0 0}
.event-hero--route-july26 .t-scallop .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#8A6E68);margin:6px 0 0}
.event-hero--route-july26 .t-scallop .btn{margin-top:auto;margin-bottom:44px;display:flex;align-items:center;justify-content:center;width:224px;height:54px;border-radius:999px;background:var(--template-button,#C9706B);color:var(--template-button-text,#FFF6F2);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 14px 28px -14px rgba(201,112,107,.6)}
.event-hero--route-july26 .t-sketchbook{background:var(--template-background-override,#FBF8F3);display:flex;flex-direction:column;align-items:center;text-align:center;padding:140px 32px 44px}
.event-hero--route-july26 .t-sketchbook .bot{position:absolute;opacity:.75}
.event-hero--route-july26 .t-sketchbook .b1{top:-24px;left:-20px}
.event-hero--route-july26 .t-sketchbook .b2{bottom:-24px;right:-20px;transform:rotate(180deg)}
.event-hero--route-july26 .t-sketchbook .mat{width:264px;height:310px;padding:8px;background:#fff;transform:rotate(-2deg);box-shadow:0 20px 42px -24px rgba(58,51,32,.45)}
.event-hero--route-july26 .t-sketchbook .mat img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-sketchbook .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,#8A7A56);margin:42px 0 0}
.event-hero--route-july26 .t-sketchbook h1{font:500 46px / 1.08 var(--july26-display-font,'Cormorant Garamond');font-style:italic;color:var(--july26-heading-text,#2E2B22);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-sketchbook .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#2E2B22);margin:20px 0 0}
.event-hero--route-july26 .t-sketchbook .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#6B6350);margin:6px 0 0}
.event-hero--route-july26 .t-sketchbook .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#8A7A56);color:var(--template-button-text,#8A7A56);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:3px}
.event-hero--route-july26 .t-sonnet{background:var(--template-background-override,#FFFDF8);display:flex;flex-direction:column;align-items:center;text-align:center;padding:96px 32px 44px}
.event-hero--route-july26 .t-sonnet .f1,.event-hero--route-july26 .t-sonnet .f2{position:absolute;pointer-events:none}
.event-hero--route-july26 .t-sonnet .f1{inset:20px;border:1px solid rgba(58,51,32,.18)}
.event-hero--route-july26 .t-sonnet .f2{inset:27px;border:1px solid rgba(58,51,32,.12)}
.event-hero--route-july26 .t-sonnet .mount{width:236px;height:324px;border-radius:118px;padding:5px;background:#fff;border:1px solid rgba(58,51,32,.22);box-shadow:0 18px 40px -24px rgba(58,51,32,.45)}
.event-hero--route-july26 .t-sonnet .mount img{width:100%;height:100%;border-radius:113px;object-fit:cover;display:block}
.event-hero--route-july26 .t-sonnet .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.3em;text-transform:uppercase;color:var(--july26-body-text,#8A7A56);margin:32px 0 0}
.event-hero--route-july26 .t-sonnet h1{font:600 46px / 1.08 var(--july26-display-font,'Cormorant Garamond');font-style:italic;color:var(--july26-heading-text,#2E2B22);margin:14px 0 0;max-width:320px}
.event-hero--route-july26 .t-sonnet .rule{width:120px;height:1px;background:linear-gradient(90deg,transparent,#C8A96A,transparent);margin:24px 0 0;position:relative}
.event-hero--route-july26 .t-sonnet .rule::after{content:'';position:absolute;left:50%;top:-3px;width:6px;height:6px;transform:translateX(-50%) rotate(45deg);background:#C8A96A}
.event-hero--route-july26 .t-sonnet .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.24em;text-transform:uppercase;color:var(--july26-body-text,#2E2B22);margin:24px 0 0}
.event-hero--route-july26 .t-sonnet .venue{font:500 19px var(--july26-body-font,'Cormorant Garamond');color:var(--july26-body-text,#6B6350);margin:8px 0 0}
.event-hero--route-july26 .t-sonnet .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border:1px solid var(--template-button,#8A7A56);color:var(--template-button-text,#8A7A56);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:2px}
.event-hero--route-july26 .t-spine{background:var(--template-background-override,#FBF8F3);display:flex}
.event-hero--route-july26 .t-spine .spine{width:64px;flex:none;background:#2C4636;position:relative;display:flex;align-items:center;justify-content:center}
.event-hero--route-july26 .t-spine .spine::before,.event-hero--route-july26 .t-spine .spine::after{content:'';position:absolute;top:0;bottom:0;width:1px;background:rgba(231,185,143,.5)}
.event-hero--route-july26 .t-spine .spine::before{left:12px}.t-spine .spine::after{right:12px}
.event-hero--route-july26 .t-spine .sp{writing-mode:vertical-rl;font:500 15px 'Cormorant Garamond';letter-spacing:.18em;text-transform:uppercase;color:#E7B98F}
.event-hero--route-july26 .t-spine .page{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 24px 44px}
.event-hero--route-july26 .t-spine .photo{width:265px;height:390px}
.event-hero--route-july26 .t-spine .photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-spine .band{width:265px;height:44px;background:#E7EEE3;display:flex;align-items:center;justify-content:center;font:600 11px 'Hanken Grotesk';letter-spacing:.2em;text-transform:uppercase;color:#2C4636}
.event-hero--route-july26 .t-spine .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#7E967F);margin:34px 0 0}
.event-hero--route-july26 .t-spine h1{font:500 42px / 1.1 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#3F4A3C);margin:8px 0 0;max-width:280px}
.event-hero--route-july26 .t-spine .venue{font:400 14px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#71806E);margin:14px 0 0}
.event-hero--route-july26 .t-spine .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:210px;height:52px;border-radius:4px;background:var(--template-button,#2C4636);color:var(--template-button-text,#E7EEE3);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-starlit{background:var(--template-background-override,#0A1E50);background-image:radial-gradient(1.5px 1.5px at 40px 90px,rgba(255,255,255,.9) 50%,transparent 51%),radial-gradient(1px 1px at 120px 40px,rgba(255,255,255,.6) 50%,transparent 51%),radial-gradient(2px 2px at 330px 70px,rgba(255,255,255,.8) 50%,transparent 51%),radial-gradient(1px 1px at 250px 130px,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 60px 300px,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(1px 1px at 350px 260px,rgba(255,255,255,.6) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 300px 400px,rgba(255,255,255,.75) 50%,transparent 51%),radial-gradient(1px 1px at 80px 470px,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(2px 2px at 200px 540px,rgba(255,255,255,.65) 50%,transparent 51%),radial-gradient(1px 1px at 340px 600px,rgba(255,255,255,.55) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 50px 660px,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(1px 1px at 160px 750px,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 310px 780px,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(1px 1px at 230px 30px,rgba(255,255,255,.45) 50%,transparent 51%),radial-gradient(1px 1px at 20px 200px,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1px 1px at 370px 180px,rgba(255,255,255,.45) 50%,transparent 51%),radial-gradient(1px 1px at 140px 620px,rgba(255,255,255,.45) 50%,transparent 51%),radial-gradient(1px 1px at 280px 690px,rgba(255,255,255,.5) 50%,transparent 51%);display:flex;flex-direction:column;align-items:center;text-align:center;padding:170px 32px 44px}
.event-hero--route-july26 .t-starlit .moon{width:150px;height:150px;border-radius:999px;border:1px solid rgba(255,255,255,.7);position:relative;overflow:hidden}
.event-hero--route-july26 .t-starlit .moon::before{content:'';position:absolute;inset:15px;border-radius:999px;background:rgba(255,255,255,.9)}
.event-hero--route-july26 .t-starlit .moon::after{content:'';position:absolute;top:-6px;right:-14px;width:130px;height:130px;border-radius:999px;background:#0A1E50}
.event-hero--route-july26 .t-starlit .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.3em;text-transform:uppercase;color:var(--july26-body-text,#FF8A86);margin:64px 0 0}
.event-hero--route-july26 .t-starlit h1{font:500 48px / 1.1 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#fff);margin:12px 0 0;max-width:320px}
.event-hero--route-july26 .t-starlit .hair{width:40px;height:1px;background:rgba(255,255,255,.5);margin:28px 0 0}
.event-hero--route-july26 .t-starlit .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.22em;text-transform:uppercase;color:var(--july26-body-text,#fff);margin:24px 0 0}
.event-hero--route-july26 .t-starlit .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,rgba(255,255,255,.65));margin:8px 0 0}
.event-hero--route-july26 .t-starlit .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border-radius:999px;border:1px solid var(--template-button,rgba(255,255,255,.85));color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-sunweave{background:var(--template-background-override,#FBF2E4);display:flex;flex-direction:column;align-items:center;text-align:center}
.event-hero--route-july26 .t-sunweave .band{width:100%;height:56px;flex:none;background:repeating-linear-gradient(90deg,#D64A7E 0 24px,#E8A93C 24px 48px,#C96A2F 48px 72px,#8F3A6E 72px 96px),repeating-linear-gradient(90deg,#8F3A6E 0 24px,#C96A2F 24px 48px,#E8A93C 48px 72px,#D64A7E 72px 96px);background-size:96px 28px,96px 28px;background-position:0 0,12px 28px;background-repeat:repeat-x}
.event-hero--route-july26 .t-sunweave .bb{transform:scaleY(-1);margin-top:auto}
.event-hero--route-july26 .t-sunweave .photo{width:329px;height:260px;border-radius:6px;overflow:hidden;margin-top:64px;box-shadow:0 18px 38px -22px rgba(143,58,110,.45)}
.event-hero--route-july26 .t-sunweave .photo img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .t-sunweave .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,#C96A2F);margin:36px 0 0}
.event-hero--route-july26 .t-sunweave h1{font:500 46px / 1.06 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#8F3A6E);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .t-sunweave .meta{display:flex;align-items:center;gap:12px;margin-top:22px}
.event-hero--route-july26 .t-sunweave .meta::before,.event-hero--route-july26 .t-sunweave .meta::after{content:'';width:36px;height:1px;background:rgba(143,58,110,.45)}
.event-hero--route-july26 .t-sunweave .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#8F3A6E);margin:0}
.event-hero--route-july26 .t-sunweave .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#A5713F);margin:8px 0 0}
.event-hero--route-july26 .t-sunweave .btn{margin:26px 0 44px;display:flex;align-items:center;justify-content:center;width:224px;height:52px;border-radius:6px;background:var(--template-button,#C96A2F);color:var(--template-button-text,#FFF6E8);font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.event-hero--route-july26 .t-taped{background:var(--template-background-override,#F4EEE4);display:flex;flex-direction:column;align-items:center;text-align:center;padding:120px 32px 44px}
.event-hero--route-july26 .t-taped .pol{position:relative;width:280px;background:#fff;padding:8px 8px 44px;transform:rotate(-2.5deg);box-shadow:0 22px 44px -24px rgba(10,30,80,.45)}
.event-hero--route-july26 .t-taped .pol img{width:100%;height:296px;object-fit:cover;display:block}
.event-hero--route-july26 .t-taped .tape{position:absolute;top:-14px;left:50%;width:96px;height:30px;transform:translateX(-50%) rotate(3deg);background:rgba(200,169,106,.45)}
.event-hero--route-july26 .t-taped .cap{font:400 24px 'Pinyon Script';color:#7A85A0;margin:10px 0 0}
.event-hero--route-july26 .t-taped .kicker{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.26em;text-transform:uppercase;color:var(--july26-body-text,#B8924E);margin:44px 0 0}
.event-hero--route-july26 .t-taped h1{font:500 44px / 1.08 var(--july26-display-font,'Cormorant Garamond');color:var(--july26-heading-text,#0A1E50);margin:10px 0 0;max-width:320px}
.event-hero--route-july26 .t-taped .date{font:600 11px var(--july26-body-font,'Hanken Grotesk');letter-spacing:.2em;text-transform:uppercase;color:var(--july26-body-text,#0A1E50);margin:20px 0 0}
.event-hero--route-july26 .t-taped .venue{font:400 15px var(--july26-body-font,'Hanken Grotesk');color:var(--july26-body-text,#66707F);margin:6px 0 0}
.event-hero--route-july26 .t-taped .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;width:216px;height:52px;background:var(--template-button,#0A1E50);color:#fff;font:700 13px var(--july26-button-font,'Hanken Grotesk');letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:3px}

/* The editor owns CTA colour while each supplied design retains its shape and placement. */
.event-hero--route-july26 .july26-reference-stage [data-field="title"] {
  color: var(--july26-heading-text, var(--template-title));
}

/* Scale the editable names without relying on CSS multiplication, which is not
   consistently supported by Chromium and WebKit inside font declarations. */
.event-hero :is([data-field="title"], [data-editor-field="title"]) {
  transform: scale(var(--welcome-heading-scale, 1));
  transform-origin: center;
}

/* Direct welcome-line edits override only that selected element. */
.event-hero--custom-welcome-line-font :is([data-field="welcome-line"], [data-editor-field="welcome-line"]) {
  font-family: var(--welcome-line-font) !important;
}

.event-hero--custom-welcome-line-colour :is([data-field="welcome-line"], [data-editor-field="welcome-line"]) {
  color: var(--welcome-line-text) !important;
}

.event-hero.event-hero--button-filled .guest-welcome-button {
  background: var(--template-button);
  color: var(--guest-button-text);
}

.event-hero--route-july26.event-hero--button-outline .july26-reference-stage .guest-welcome-button {
  border-color: var(--template-button);
  background: transparent;
  color: var(--template-button-text);
}

.event-hero--route-july26.event-hero--button-filled .july26-reference-stage .guest-welcome-button {
  border-color: var(--template-button);
  background: var(--template-button);
  color: var(--template-button-text);
}

/* Short phone viewports keep the supplied artwork full width by tightening space,
   never by stretching its type, controls, or photographs. */
.event-hero--welcome.event-hero--route-july26[data-july26-compact] :is(.t-archway,.t-cameo,.t-darkroom,.t-eucalypt,.t-evermore,.t-gildstone,.t-regency,.t-rodeo,.t-salon,.t-sketchbook,.t-sonnet,.t-taped){padding-bottom:30px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-archway{padding-top:72px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-archway .mount{width:220px;height:324px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-archway .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-archway .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-archway .venue{margin-top:6px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-cameo{padding-top:70px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-cameo .ring{width:190px;height:254px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-cameo .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-cameo .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-cameo .venue{margin-top:6px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-darkroom{padding-top:54px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-darkroom .strip{width:238px;gap:10px;padding-block:10px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-darkroom .fr{width:190px;height:158px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-darkroom .kicker{margin-top:20px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-darkroom .date{margin-top:10px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-eucalypt{padding-top:72px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-eucalypt .mount{width:206px;height:285px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-eucalypt .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-eucalypt .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-eucalypt .venue{margin-top:4px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-evermore{padding-top:72px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-evermore .o1{top:36px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-evermore .o2{bottom:93px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-evermore .mat{width:228px;height:262px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-evermore .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-evermore .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-evermore .venue{margin-top:4px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-gildstone{padding-top:76px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-gildstone .h1{top:36px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-gildstone .h2{bottom:93px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-gildstone .mat{width:228px;height:262px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-gildstone .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-gildstone .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-gildstone .venue{margin-top:4px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-haze{padding-bottom:30px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-haze .kicker{margin-top:415px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-panorama .photo{height:310px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-panorama .panel{padding:24px 28px 30px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-panorama .kicker{margin-top:10px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-panorama .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-regency{padding-top:78px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-regency .mat{width:210px;height:255px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-regency .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-regency .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-regency .venue{margin-top:4px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-rodeo{padding-top:72px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-rodeo .mat{width:220px;height:251px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-rodeo .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-salon{padding-top:52px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-salon .frame{margin-top:16px;padding:8px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-salon .frame img{width:218px;height:264px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-salon .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-salon .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-salon .venue{margin-top:4px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sketchbook{padding-top:76px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sketchbook .mat{width:212px;height:249px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sketchbook .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sketchbook .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sketchbook .venue{margin-top:4px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sonnet{padding-top:58px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sonnet .mount{width:190px;height:261px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sonnet .kicker{margin-top:20px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sonnet .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-sonnet .venue{margin-top:4px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-taped{padding-top:70px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-taped .pol{width:220px;padding:6px 6px 34px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-taped .pol img{height:233px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-taped .kicker{margin-top:24px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-taped .date{margin-top:12px}
.event-hero--welcome.event-hero--route-july26[data-july26-compact] .t-taped .venue{margin-top:4px}

/* Wide guest-home adaptations follow the composition notes supplied with each reference. */
.event-hero--home.event-hero--route-july26 .july26-reference-stage {
  display: block;
  padding: 0;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .july26-reference-stage > :is(.kicker, .script),
.event-hero--home.event-hero--route-july26 .july26-reference-stage > h1,
.event-hero--home.event-hero--route-july26 .july26-reference-stage > :is(.date, .meta, .venue, .rule, .dia, .orn, .flames, .hair, .stars, .dots) {
  position: absolute;
  z-index: 4;
  left: 50%;
  width: 44%;
  max-width: none;
  margin: 0;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .july26-reference-stage > :is(.kicker, .script) {
  top: 24%;
}

.event-hero--home.event-hero--route-july26 .july26-reference-stage > h1 {
  top: 33%;
  font-size: 42px;
  line-height: 1.04;
}

.event-hero--home.event-hero--route-july26 .july26-reference-stage > :is(.date, .meta) {
  top: 64%;
}

.event-hero--home.event-hero--route-july26 .july26-reference-stage > .venue {
  top: 72%;
}

.event-hero--home.event-hero--route-july26 :is(.t-afterglow .card, .t-cameo .wrap, .t-eucalypt .mount, .t-evermore .mat, .t-gildstone .mat, .t-regency .mat, .t-rodeo .mat, .t-salon .frame, .t-sketchbook .mat, .t-sonnet .mount, .t-taped .pol) {
  position: absolute;
  z-index: 2;
  left: 6%;
  top: 10%;
  width: 36%;
  height: 80%;
  max-width: 330px;
  margin: 0;
  transform: none;
}

.event-hero--home.event-hero--route-july26 :is(.t-bouquet .ring, .t-candlelight .ring, .t-champagne .ring, .t-laurel .crest, .t-medallion .outer) {
  position: absolute;
  z-index: 2;
  left: 7%;
  top: 50%;
  width: 34%;
  height: auto;
  max-width: 300px;
  aspect-ratio: 1;
  margin: 0;
  transform: translateY(-50%);
}

.event-hero--home.event-hero--route-july26 .t-cameo .ring,
.event-hero--home.event-hero--route-july26 .t-salon .frame img,
.event-hero--home.event-hero--route-july26 .t-taped .pol img {
  width: 100%;
  height: 100%;
}

.event-hero--home.event-hero--route-july26 .t-salon > .frame {
  height: auto;
  aspect-ratio: 151 / 180;
}

.event-hero--home.event-hero--route-july26 .t-salon .frame > .in {
  position: absolute;
  inset: 10px;
  width: auto;
  height: auto;
}

.event-hero--home.event-hero--route-july26 .t-archway .wrap {
  position: absolute;
  z-index: 2;
  left: 6%;
  top: 10%;
  width: 36%;
  height: 80%;
}

.event-hero--home.event-hero--route-july26 .t-archway .mount {
  width: 100%;
  height: 100%;
}

.event-hero--home.event-hero--route-july26 .t-archway > .dia {
  left: calc(72% - 3px);
  top: 68%;
  width: 6px;
  height: 6px;
  pointer-events: none;
}

.event-hero--home.event-hero--route-july26 .t-medallion .ring {
  width: 80%;
  height: 80%;
}

.event-hero--home.event-hero--route-july26 :is(.t-bouquet > svg, .t-laurel > svg, .t-eucalypt .sprig, .t-sketchbook .bot, .t-salon .nail, .t-salon .wire) {
  opacity: .55;
}

.event-hero--home.event-hero--route-july26 .t-bouquet > svg {
  position: absolute;
  z-index: 3;
  left: 30%;
  bottom: -6%;
  width: 150px;
  height: 132px;
}

.event-hero--home.event-hero--route-july26 .t-laurel > svg {
  position: absolute;
  left: 8%;
  bottom: 3%;
  width: 32%;
  height: auto;
}

.event-hero--home.event-hero--route-july26 .t-candlelight .flames,
.event-hero--home.event-hero--route-july26 .t-sonnet .rule,
.event-hero--home.event-hero--route-july26 .t-cameo .orn {
  top: 61%;
}

.event-hero--home.event-hero--route-july26 .t-evermore h1 em {
  display: inline;
  font-size: inherit;
  line-height: inherit;
  margin: 0 .12em;
}

/* Split and graphic layouts retain their defining geometry. */
.event-hero--home.event-hero--route-july26 :is(.t-panorama, .t-crescent, .t-riviera, .t-scallop, .t-sunweave) > .photo,
.event-hero--home.event-hero--route-july26 .t-crescent > .hem {
  position: absolute;
  z-index: 1;
  inset: 0 auto 0 0;
  width: 46%;
  height: 100%;
  margin: 0;
  border-radius: 0;
}

.event-hero--home.event-hero--route-july26 .t-panorama > .panel {
  position: absolute;
  inset: 0 0 0 46%;
  width: 54%;
  height: 100%;
  padding: 82px 48px 34px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-panorama .panel :is(.rule, .kicker, h1, .date, .venue) {
  margin-inline: 0;
  max-width: 100%;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-panorama .panel h1 {
  font-size: 46px;
}

.event-hero--home.event-hero--route-july26 .t-crescent > .hem {
  border-radius: 0 50% 50% 0;
}

.event-hero--home.event-hero--route-july26 .t-scallop > .photo {
  clip-path: polygon(0 0, 92% 0, 100% 10%, 92% 20%, 100% 30%, 92% 40%, 100% 50%, 92% 60%, 100% 70%, 92% 80%, 100% 90%, 92% 100%, 0 100%);
}

.event-hero--home.event-hero--route-july26 .t-riviera > .awning {
  z-index: 5;
  height: 42px;
}

.event-hero--home.event-hero--route-july26 .t-riviera > .photo {
  top: 42px;
  height: calc(100% - 42px);
}

.event-hero--home.event-hero--route-july26 .t-sunweave > .band {
  z-index: 5;
  width: 100%;
  height: 22px;
}

.event-hero--home.event-hero--route-july26 .t-sunweave > .band.bb {
  top: auto;
  bottom: 0;
}

.event-hero--home.event-hero--route-july26 .t-checkmate > .card {
  position: absolute;
  inset: 8%;
  width: 84%;
  height: 84%;
  padding: 0 5% 0 44%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-checkmate .photo {
  position: absolute;
  inset: 0 auto 0 0;
  width: 39%;
  height: 100%;
  margin: 0;
}

.event-hero--home.event-hero--route-july26 .t-checkmate .card :is(.kicker, h1, .date, .venue) {
  margin: 5px 0 0;
  max-width: 100%;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-checkmate .card h1 {
  font-size: 44px;
}

.event-hero--home.event-hero--route-july26 .t-darkroom > .strip {
  position: absolute;
  z-index: 2;
  left: 4%;
  top: 12%;
  width: 56%;
  height: 76%;
  padding: 22px 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  transform: none;
}

.event-hero--home.event-hero--route-july26 .t-darkroom .fr {
  width: 100%;
  height: 100%;
  margin: 0;
}

.event-hero--home.event-hero--route-july26 .t-darkroom > :is(.kicker, h1, .date, .venue) {
  left: 64%;
  width: 31%;
}

.event-hero--home.event-hero--route-july26 .t-darkroom > h1 {
  font-size: 40px;
}

.event-hero--home.event-hero--route-july26 .t-broadsheet {
  padding: 22px 4%;
  display: block;
}

.event-hero--home.event-hero--route-july26 .t-broadsheet > h1 {
  position: absolute;
  left: 5%;
  top: 20%;
  width: 47%;
  margin: 0;
  font-size: 50px;
  line-height: .9;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-broadsheet > .deck {
  position: absolute;
  left: 5%;
  top: 54%;
  width: 45%;
  margin: 0;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-broadsheet > .photo {
  position: absolute;
  right: 4%;
  top: 14%;
  width: 42%;
  height: 66%;
  margin: 0;
}

.event-hero--home.event-hero--route-july26 .t-broadsheet > :is(.capline, .cols) {
  display: none;
}

.event-hero--home.event-hero--route-july26 .t-broadsheet > .kicker,
.event-hero--home.event-hero--route-july26 .t-broadsheet > .venue {
  position: absolute;
  left: 5%;
  top: 70%;
  width: 44%;
  margin: 0;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-broadsheet > .venue {
  top: 78%;
}

.event-hero--home.event-hero--route-july26 .t-spine > .spine {
  width: 64px;
  height: 100%;
}

.event-hero--home.event-hero--route-july26 .july26-reference-stage.t-spine {
  display: flex;
}

.event-hero--home.event-hero--route-july26 .t-spine > .page {
  position: relative;
  width: calc(100% - 64px);
  height: 100%;
  padding: 0;
}

.event-hero--home.event-hero--route-july26 .t-spine .photo {
  position: absolute;
  left: 0;
  top: 0;
  width: 46%;
  height: 100%;
  margin: 0;
}

.event-hero--home.event-hero--route-july26 .t-spine .band {
  left: 46%;
  top: 0;
  right: 0;
  width: auto;
}

.event-hero--home.event-hero--route-july26 .t-spine .page > :is(.kicker, h1, .venue) {
  position: absolute;
  left: 52%;
  width: 42%;
  margin: 0;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-spine .page > .kicker { top: 28%; }
.event-hero--home.event-hero--route-july26 .t-spine .page > h1 { top: 38%; font-size: 42px; }
.event-hero--home.event-hero--route-july26 .t-spine .page > .venue { top: 72%; }

.event-hero--home.event-hero--route-july26 :is(.t-haze, .t-masthead, .t-sash) > :is(.bg, .scrim, .wash) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.event-hero--home.event-hero--route-july26 .t-haze > :is(.kicker, h1, .date, .venue),
.event-hero--home.event-hero--route-july26 .t-masthead > :is(.kicker, h1, .date, .venue, .rule) {
  left: 7%;
  width: 48%;
  color: inherit;
}

.event-hero--home.event-hero--route-july26 .t-masthead > :is(.kicker, h1, .date, .venue) {
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-masthead > .rule {
  width: 56px;
}

.event-hero--home.event-hero--route-july26 .t-masthead > h1,
.event-hero--home.event-hero--route-july26 .t-haze > h1 {
  font-size: 52px;
}

.event-hero--home.event-hero--route-july26 .t-sash > .sash {
  position: absolute;
  z-index: 3;
  left: 8%;
  top: 25%;
  width: 62%;
  padding: 24px 42px;
  transform: rotate(-3deg);
}

.event-hero--home.event-hero--route-july26 .t-sash .sash :is(.kicker, h1, .date) {
  margin: 3px 0;
  max-width: none;
  text-align: left;
}

.event-hero--home.event-hero--route-july26 .t-sash .sash h1 {
  font-size: 42px;
}

.event-hero--home.event-hero--route-july26 .t-sash > .venue {
  left: auto;
  right: 6%;
  top: auto;
  bottom: 8%;
  width: 42%;
  text-align: right;
}

.event-hero--home.event-hero--route-july26 :is(.t-mod, .t-deco, .t-starlit, .t-picnic) > :is(.kicker, h1, .date, .venue, .rule, .hair) {
  left: 25%;
  width: 50%;
  text-align: center;
}

.event-hero--home.event-hero--route-july26 :is(.t-mod, .t-deco, .t-starlit, .t-picnic) > h1,
.event-hero--home.event-hero--route-july26 .t-picnic .card h1 {
  font-size: 48px;
}

.event-hero--home.event-hero--route-july26 .t-starlit > .moon {
  position: absolute;
  z-index: 2;
  left: 4%;
  top: 50%;
  width: clamp(72px, 15%, 135px);
  height: auto;
  aspect-ratio: 1;
  margin: 0;
  transform: translateY(-50%);
}

.event-hero--home.event-hero--route-july26 .t-starlit > .moon::before {
  inset: 10%;
}

.event-hero--home.event-hero--route-july26 .t-starlit > .moon::after {
  top: -4%;
  right: -9%;
  width: 87%;
  height: 87%;
}

.event-hero--home.event-hero--route-july26 .t-starlit > h1 {
  font-size: clamp(25px, 5.4vw, 48px);
}

.event-hero--home.event-hero--route-july26 .t-starlit > .hair {
  left: calc(50% - 20px);
  top: 56%;
  width: 40px;
}

.event-hero--home.event-hero--route-july26 .t-picnic > .card {
  position: absolute;
  left: 17%;
  top: 14%;
  width: 66%;
  height: 72%;
  padding: 50px 42px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.event-hero--home.event-hero--route-july26 .t-picnic .card :is(.kicker, h1, .rule, .date, .venue) {
  margin: 5px 0;
  max-width: 100%;
}

@media (max-width: 520px) {
  .event-hero--welcome.event-hero--route-july26 {
    height: 100dvh;
    min-height: 100dvh;
  }

  .event-hero--home.event-hero--route-july26 {
    height: 288px;
    min-height: 288px;
    max-height: 288px;
  }

  .event-hero--home.event-hero--route-july26 .july26-reference-stage > :is(.kicker, .script) {
    left: 48%;
    top: 20%;
    width: 48%;
    font-size: 8px;
  }

  .event-hero--home.event-hero--route-july26 .july26-reference-stage > h1 {
    left: 48%;
    top: 31%;
    width: 48%;
    font-size: 27px;
    line-height: 1;
  }

  .event-hero--home.event-hero--route-july26 .july26-reference-stage > :is(.date, .meta) {
    left: 48%;
    top: 65%;
    width: 48%;
    font-size: 8px;
  }

  .event-hero--home.event-hero--route-july26 .july26-reference-stage > .venue {
    left: 48%;
    top: 75%;
    width: 48%;
    font-size: 11px;
  }

  .event-hero--home.event-hero--route-july26 .t-masthead > :is(.kicker, h1, .date, .venue) {
    left: 7%;
    width: 48%;
  }

  .event-hero--home.event-hero--route-july26 :is(.t-afterglow .card, .t-cameo .wrap, .t-eucalypt .mount, .t-evermore .mat, .t-gildstone .mat, .t-regency .mat, .t-rodeo .mat, .t-salon .frame, .t-sketchbook .mat, .t-sonnet .mount, .t-taped .pol, .t-archway .wrap) {
    left: 4%;
    top: 10%;
    width: 39%;
    height: 80%;
  }

  .event-hero--home.event-hero--route-july26 .t-archway > .dia {
    top: 70%;
  }

  .event-hero--home.event-hero--route-july26 .t-salon > .frame {
    height: auto;
  }

  .event-hero--home.event-hero--route-july26 :is(.t-bouquet .ring, .t-candlelight .ring, .t-champagne .ring, .t-laurel .crest, .t-medallion .outer) {
    left: 4%;
    width: 39%;
  }

  .event-hero--home.event-hero--route-july26 :is(.t-evermore .o1, .t-gildstone .h1) {
    top: 8%;
  }

  .event-hero--home.event-hero--route-july26 :is(.t-evermore .o2, .t-gildstone .h2) {
    top: auto;
    bottom: 8%;
  }

  .event-hero--home.event-hero--route-july26 .t-bouquet > svg,
  .event-hero--home.event-hero--route-july26 .t-laurel > svg {
    display: none;
  }

  .event-hero--home.event-hero--route-july26 .t-panorama > .panel {
    padding: 52px 16px 20px;
  }

  .event-hero--home.event-hero--route-july26 .t-panorama .panel h1,
  .event-hero--home.event-hero--route-july26 .t-checkmate .card h1,
  .event-hero--home.event-hero--route-july26 .t-darkroom > h1,
  .event-hero--home.event-hero--route-july26 .t-spine .page > h1,
  .event-hero--home.event-hero--route-july26 .t-sash .sash h1,
  .event-hero--home.event-hero--route-july26 :is(.t-mod, .t-deco, .t-starlit, .t-picnic) > h1,
  .event-hero--home.event-hero--route-july26 .t-picnic .card h1 {
    font-size: 25px;
  }

  .event-hero--home.event-hero--route-july26 .t-checkmate > .card {
    inset: 8% 5%;
    width: 90%;
    padding-left: 45%;
  }

  .event-hero--home.event-hero--route-july26 .t-darkroom > .strip {
    left: 3%;
    width: 58%;
    grid-template-columns: 1fr;
  }

  .event-hero--home.event-hero--route-july26 .t-darkroom .fr.f2 {
    display: none;
  }

  .event-hero--home.event-hero--route-july26 .t-darkroom > :is(.kicker, h1, .date, .venue) {
    left: 65%;
    width: 32%;
  }

  .event-hero--home.event-hero--route-july26 .t-broadsheet > h1 {
    font-size: 30px;
  }

  .event-hero--home.event-hero--route-july26 .t-broadsheet > .photo {
    top: 17%;
    height: 58%;
  }

  .event-hero--home.event-hero--route-july26 .t-spine > .spine {
    width: 36px;
  }

  .event-hero--home.event-hero--route-july26 .t-spine > .page {
    width: calc(100% - 36px);
  }

  .event-hero--home.event-hero--route-july26 .t-masthead > h1,
  .event-hero--home.event-hero--route-july26 .t-haze > h1 {
    font-size: 32px;
  }

  .event-hero--home.event-hero--route-july26 .t-sash > .sash {
    left: 4%;
    width: 78%;
    padding: 16px 20px;
  }

  .event-hero--home.event-hero--route-july26 .t-picnic > .card {
    left: 10%;
    width: 80%;
    padding: 28px 22px;
  }

  .event-hero--home.event-hero--route-july26 .t-mod > :is(.kicker, .date, .venue) {
    left: 25%;
    width: 50%;
    text-align: center;
  }

  .event-hero--home.event-hero--route-july26 .t-starlit > :is(.kicker, h1, .date, .venue) {
    left: 37%;
    width: 56%;
    text-align: center;
  }

  .event-hero--home.event-hero--route-july26 .t-starlit > .moon {
    left: 2%;
    width: 24%;
    max-width: 96px;
  }

  .event-hero--home.event-hero--route-july26 .t-starlit > .hair {
    left: calc(65% - 20px);
    top: 56%;
    width: 40px;
  }
}

/* Chooser previews use the complete supplied 393 x 852 renders. */
.welcome-base-choice .template-choice-preview.template-choice-preview--july26 {
  aspect-ratio: 393 / 852;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  background-color: var(--paper);
}


.guest-main {
  width: min(100%, 900px);
  margin: 0 auto;
}

.hero {
  position: relative;
  min-height: 620px;
  height: 70vh;
  overflow: hidden;
  background: var(--ink);
}

.hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(
    180deg,
    rgba(10, 30, 80, 0.08) 0%,
    rgba(10, 30, 80, 0.08) 30%,
    rgba(10, 30, 80, 0.78) 100%
  );
}

.hero-copy {
  position: absolute;
  z-index: 2;
  right: 20px;
  bottom: 30px;
  left: 20px;
  text-align: center;
  color: var(--guest-hero-text);
}

.overline {
  color: var(--coral);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.hero .overline {
  color: var(--guest-hero-muted);
}

.display {
  margin: 10px 0 0;
  font-family: var(--guest-display-font);
  font-size: clamp(48px, 10vw, 78px);
  font-weight: 500;
  line-height: 0.98;
}

.display em {
  color: var(--guest-soft-accent);
  font-style: italic;
}

.rule-date {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 18px;
  color: var(--guest-hero-text);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.rule-date::before,
.rule-date::after {
  width: 34px;
  height: 1px;
  background: var(--guest-hero-muted);
  content: "";
}

.hero-place {
  margin-top: 8px;
  color: var(--guest-hero-muted);
  font-size: 14px;
}

.content-pad {
  padding: 22px 20px 0;
}

.section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.section-title {
  margin: 4px 0 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(34px, 8vw, 48px);
  font-weight: 500;
  line-height: 1.04;
}

.guest-shell .section-title {
  color: var(--guest-heading-text);
  font-family: var(--guest-display-font);
}

.guest-shell .nav-button.is-active,
.guest-shell .mobile-tabs button.is-active {
  color: var(--guest-button-bg);
}

.guest-shell .button {
  font-family: var(--guest-button-font);
}

.guest-shell .button.primary {
  background: var(--guest-button-bg);
  color: var(--guest-button-text);
}

.guest-shell .button.secondary {
  border-color: var(--guest-button-bg);
  color: var(--guest-button-bg);
}

.guest-shell .overline {
  color: var(--guest-button-bg);
}

.muted {
  color: var(--ink-50);
}

.card {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 1px 0 var(--line);
}

.card.host-timetable-card {
  border-color: rgba(10, 30, 80, 0.12);
  background: var(--ink);
}

.rsvp-card {
  display: grid;
  gap: 16px;
  padding: 24px;
}

.rsvp-card h2,
.card-title {
  margin: 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 500;
}

.guest-shell .card-title,
.guest-shell .rsvp-card h2 {
  color: var(--guest-heading-text);
  font-family: var(--guest-display-font);
}

.guest-shell .hero .overline {
  color: var(--guest-hero-muted);
}

.rsvp-card p,
.copy {
  margin: 5px 0 0;
  color: var(--ink-50);
  font-size: 14px;
  line-height: 1.55;
}

.guest-shell .rsvp-card p,
.guest-shell .copy,
.guest-shell .muted {
  color: var(--guest-body-muted);
}

.rsvp-card > div:not(.confirmed) {
  display: grid;
  place-items: center;
}

.rsvp-card h2 + p {
  margin-top: -10px;
  max-width: 34ch;
}

.rsvp-cta {
  width: 100%;
}

.guest-key-actions {
  overflow: hidden;
  padding: 0;
}

.guest-key-actions-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px 13px;
}

.guest-key-actions-head > div {
  min-width: 0;
}

.guest-key-actions-head .overline {
  margin-bottom: 4px;
}

.guest-key-actions-head strong {
  display: block;
  color: var(--guest-heading-text);
  font-family: var(--guest-display-font);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.1;
}

.guest-key-actions-hide {
  flex: none;
  border: 0;
  background: transparent;
  color: var(--guest-button-bg);
  padding: 8px;
  font-size: 12px;
  font-weight: 800;
}

.guest-key-action-list {
  border-top: 1px solid var(--line);
}

.guest-key-action-row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto 20px;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 66px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  padding: 9px 12px 9px 14px;
  text-align: left;
}

.guest-key-action-row:last-child {
  border-bottom: 0;
}

.guest-key-action-row:hover,
.guest-key-action-row:focus-visible {
  background: color-mix(in srgb, var(--guest-tint) 34%, var(--white));
  outline: none;
}

.guest-key-action-icon,
.guest-key-actions-success {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: var(--guest-tint);
  color: var(--guest-button-bg);
}

.guest-key-action-row.is-complete .guest-key-action-icon,
.guest-key-action-row.is-skipped .guest-key-action-icon,
.guest-key-actions-success {
  background: #ecf1ea;
  color: var(--sage);
}

.guest-key-action-row.is-blocked .guest-key-action-icon {
  background: var(--ivory);
  color: var(--ink-50);
}

.guest-key-action-icon .icon,
.guest-key-actions-success .icon {
  width: 18px;
  height: 18px;
}

.guest-key-action-copy {
  min-width: 0;
}

.guest-key-action-copy strong,
.guest-key-action-copy small {
  display: block;
}

.guest-key-action-copy strong {
  color: var(--guest-heading-text);
  font-family: var(--guest-display-font);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.guest-key-action-copy small {
  margin-top: 3px;
  color: var(--guest-body-muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.25;
}

.guest-key-action-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  border-radius: 999px;
  background: var(--guest-tint);
  color: var(--guest-button-bg);
  padding: 5px 8px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.guest-key-action-row.is-complete .guest-key-action-status {
  width: 26px;
  padding: 0;
  background: #ecf1ea;
  color: var(--sage);
}

.guest-key-action-row.is-skipped .guest-key-action-status,
.guest-key-action-row.is-blocked .guest-key-action-status {
  background: var(--ivory);
  color: var(--ink-50);
}

.guest-key-action-status .icon,
.guest-key-action-arrow .icon {
  width: 14px;
  height: 14px;
}

.guest-key-action-arrow {
  display: grid;
  place-items: center;
  color: var(--ink-50);
}

.guest-key-actions-all-set {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 68px;
  border: 0;
  background: var(--white);
  color: var(--ink);
  padding: 12px 14px;
  text-align: left;
}

.guest-key-actions-all-set > span:nth-child(2) {
  min-width: 0;
}

.guest-key-actions-all-set strong,
.guest-key-actions-all-set small {
  display: block;
}

.guest-key-actions-all-set strong {
  color: var(--guest-heading-text);
  font-family: var(--guest-display-font);
  font-size: 20px;
  font-weight: 600;
}

.guest-key-actions-all-set small {
  margin-top: 2px;
  color: var(--guest-body-muted);
  font-size: 11px;
  font-weight: 600;
}

.guest-key-actions-review {
  color: var(--guest-button-bg);
  font-size: 11px;
  font-weight: 800;
}

.guest-plan-visit {
  margin-top: 18px;
}

.guest-plan-visit > .overline {
  margin: 0 0 9px 2px;
  color: var(--ink-50);
}

.guest-plan-visit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.guest-plan-visit-grid.is-single {
  grid-template-columns: minmax(0, 1fr);
}

.guest-plan-visit-link {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 7px;
  min-width: 0;
  min-height: 54px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
  color: var(--ink);
  padding: 9px 10px;
  text-align: left;
  box-shadow: 0 1px 0 var(--line);
}

.guest-plan-visit-link:hover,
.guest-plan-visit-link:focus-visible {
  border-color: color-mix(in srgb, var(--guest-button-bg) 28%, var(--line));
  outline: none;
}

.guest-plan-visit-link .icon:first-child {
  color: var(--guest-button-bg);
}

.guest-plan-visit-link .icon:last-child {
  color: var(--ink-50);
}

.guest-plan-visit-link span {
  min-width: 0;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.host-welcome-message {
  margin-top: 16px;
  padding: 22px 24px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 253, 250, 0.98)),
    var(--white);
}

.host-welcome-message .overline {
  color: var(--guest-button-bg);
}

.host-welcome-copy {
  margin-top: 10px;
  color: var(--ink);
  font-family: var(--guest-handwritten-font);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.45;
}

.host-welcome-copy p {
  margin: 0;
}

.host-welcome-copy p + p {
  margin-top: 8px;
}

.host-welcome-signature {
  margin-top: 12px;
  color: var(--guest-button-bg);
  font-family: var(--guest-handwritten-font);
  font-size: 18px;
  font-weight: 700;
}

.confirmed {
  display: grid;
  gap: 14px;
}

.confirmed-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.confirmed-head .overline {
  min-width: 0;
  color: var(--guest-button-bg);
}

.confirmed-copy h2 {
  max-width: none;
  font-size: 32px;
  line-height: 1.05;
}

.rsvp-card .confirmed-copy h2 + p {
  margin-top: 8px;
  font-size: 15px;
}

.confirmed-edit {
  min-height: 42px;
  border-radius: 14px;
  padding: 0 18px;
  font-size: 14px;
}

.heart-badge,
.avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--guest-tint);
  color: var(--guest-button-bg);
  font-weight: 700;
}

.heart-badge {
  width: 44px;
  height: 44px;
  font-size: 22px;
}

.avatar {
  width: 34px;
  height: 34px;
  flex: none;
  font-size: 13px;
}

.stats-grid,
.quick-grid,
.album-grid,
.table-grid {
  display: grid;
  gap: 12px;
}

.explore-button-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.explore-button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 72px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  color: var(--ink);
  padding: 10px 12px;
  text-align: left;
  box-shadow: 0 1px 0 var(--line);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.explore-button:hover {
  border-color: color-mix(in srgb, var(--guest-button-bg) 28%, var(--line));
  box-shadow: 0 4px 14px rgba(10, 30, 80, 0.06);
  transform: translateY(-1px);
}

.explore-button-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--guest-tint);
  color: var(--guest-button-bg);
}

.tile-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--guest-tint);
  color: var(--guest-button-bg);
}

.explore-button-icon svg {
  width: 20px;
  height: 20px;
}

.explore-button-copy {
  min-width: 0;
}

.explore-button-copy strong,
.explore-button-copy small {
  display: block;
}

.explore-button-copy strong {
  font-family: var(--guest-display-font);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.explore-button-copy small {
  margin-top: 3px;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.25;
}

.explore-button-arrow {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  color: var(--ink-50);
}

.explore-button-arrow svg {
  width: 17px;
  height: 17px;
}

.schedule {
  margin-top: 22px;
  border-radius: 20px;
  background: var(--ink);
  color: var(--white);
  padding: 22px;
}

.schedule .overline {
  color: rgba(255, 255, 255, 0.62);
}

.schedule-row {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  padding: 14px 0;
}

.schedule-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.schedule-time {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 24px;
}

.schedule strong {
  display: block;
  font-size: 14px;
}

.schedule span {
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
}

.chip-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.chip {
  flex: none;
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  padding: 0 15px;
  font-size: 12px;
  font-weight: 700;
}

.chip.is-active {
  border-color: var(--coral);
  background: var(--coral);
  color: var(--white);
}

.masonry {
  columns: 170px;
  column-gap: 12px;
  margin-top: 18px;
}

.photo-card {
  position: relative;
  display: block;
  break-inside: avoid;
  height: var(--h);
  margin-bottom: 12px;
  overflow: hidden;
  border-radius: 14px;
  background: var(--bg);
  border: 0;
  width: 100%;
  padding: 0;
  text-align: left;
}

.photo-card-open {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.photo-card img,
.photo-card video,
.feed-media img,
.feed-media video,
.thumb img,
.thumb video,
.album-tile img,
.album-tile video,
.curate-card img,
.curate-card video,
.host-media-tile img,
.host-media-tile video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.guest-topbar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
}

.video-thumbnail {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--bg, linear-gradient(135deg, #e9dde2, #d7ddcf));
}

.video-thumbnail video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

.feed-media .video-thumbnail video {
  object-fit: contain;
}

.video-preview-play {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  display: grid;
  width: clamp(48px, 16%, 72px);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  background: rgba(10, 30, 80, 0.76);
  color: var(--white);
  box-shadow: 0 14px 30px -18px rgba(4, 14, 42, 0.9);
  transform: translate(-50%, -50%);
  pointer-events: none;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.video-preview-play .icon {
  width: 42%;
  height: 42%;
  margin-left: 4%;
  fill: currentColor;
  stroke-width: 1.5;
}

.album-preview-thumb .video-preview-play {
  width: 24px;
}

.photo-card-open::after {
  position: absolute;
  inset: 45% 0 0;
  content: "";
  background: linear-gradient(180deg, rgba(10, 30, 80, 0), rgba(10, 30, 80, 0.55));
}

.photo-meta {
  position: absolute;
  z-index: 2;
  right: 10px;
  bottom: 10px;
  left: 10px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--white);
  font-size: 11px;
  font-weight: 700;
}

.icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: rgba(10, 30, 80, 0.44);
  color: var(--white);
  backdrop-filter: blur(6px);
}

.like-button {
  position: absolute;
  z-index: 3;
  top: 8px;
  right: 8px;
  width: 34px;
  height: 34px;
  font-size: 18px;
}

.like-button.is-liked {
  color: var(--coral);
  animation: pop 260ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.feed-list {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 14px;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-bottom: 14px;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.feed-list::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.feed-section {
  display: flex;
  flex-direction: column;
  height: calc(100dvh - 82px);
  min-height: 0;
  overflow: hidden;
}

.feed-section .section-head,
.feed-section .feed-controls {
  flex: 0 0 auto;
}

.feed-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  margin: 10px 0 16px;
}

@media (min-width: 560px) {
  .feed-controls {
    grid-template-columns: minmax(220px, 1fr) auto auto;
    align-items: end;
  }
}

.feed-filter-control {
  display: block;
  width: 100%;
  margin: 0;
}

.photo-filter-control {
  display: block;
  width: 100%;
  margin: 10px 0 16px;
}

.feed-filter-select,
.photo-filter-select {
  box-shadow: 0 1px 0 rgba(235, 227, 213, 0.72);
}

.feed-auto-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  padding: 0 14px;
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 1px 0 rgba(235, 227, 213, 0.72);
}

.feed-auto-toggle .icon {
  width: 18px;
  height: 18px;
  color: var(--ink-50);
}

.feed-auto-toggle span {
  flex: 1;
  text-align: left;
}

.feed-auto-toggle strong {
  border-radius: 999px;
  background: var(--ivory);
  color: var(--ink-50);
  padding: 5px 10px;
  font-size: 11px;
  text-transform: uppercase;
}

.feed-auto-toggle.is-on {
  border-color: rgba(10, 30, 80, 0.2);
}

.feed-auto-toggle.is-on strong {
  background: var(--coral-tint);
  color: var(--coral);
}

.feed-card {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  overflow: hidden;
}

.feed-head,
.note-meta,
.row-flex {
  display: flex;
  align-items: center;
  gap: 10px;
}

.feed-head {
  padding: 12px 14px;
}

.feed-head > div {
  flex: 1;
}

.feed-media {
  position: relative;
  display: grid;
  place-items: center;
  height: clamp(280px, 68vh, 640px);
  background: var(--bg);
  overflow: hidden;
}

.feed-media img,
.feed-media video {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.media-open-button {
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.feed-media.media-open-button {
  display: grid;
}

.feed-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
}

body.is-feed-fullscreen {
  overflow: hidden;
  background: var(--paper);
  scrollbar-width: none;
  -ms-overflow-style: none;
}

html:has(body.is-feed-fullscreen),
body.is-feed-fullscreen,
body.is-feed-fullscreen .app-frame,
body.is-feed-fullscreen #app {
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 100%;
  overflow: hidden;
  background: var(--paper);
}

body.is-feed-fullscreen::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

body.is-feed-fullscreen .mobile-tabs,
body.is-feed-fullscreen .mobile-brand-bar,
body.is-feed-fullscreen .guest-upload-shortcut,
body.is-feed-fullscreen .guest-mobile-drawer,
body.is-feed-fullscreen .guest-drawer-backdrop,
body.is-feed-fullscreen .host-preview-return-pill,
body.is-feed-fullscreen .guest-topbar {
  display: none !important;
}

body.is-feed-fullscreen .guest-shell {
  width: 100%;
  max-width: none;
  height: 100dvh;
  min-height: 100dvh;
  padding-bottom: 0;
  background: var(--paper);
}

body.is-feed-fullscreen .guest-main {
  width: 100%;
  max-width: none;
  height: 100dvh;
  min-height: 100dvh;
  margin: 0;
  overflow: hidden;
}

body.is-feed-fullscreen .feed-section--fullscreen {
  position: relative;
  width: 100vw;
  height: 100dvh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  background: var(--paper);
}

.feed-list--fullscreen {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  gap: 0;
  padding: 0;
  overflow-y: auto;
  scroll-snap-type: none;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.feed-list--fullscreen::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.feed-card--fullscreen {
  display: grid;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  min-height: 100dvh;
  flex: 0 0 100dvh;
  margin: 0;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: var(--paper);
  box-shadow: none;
}

.feed-media--fullscreen {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  background: var(--paper);
}

.feed-media--fullscreen img,
.feed-media--fullscreen video {
  object-fit: contain !important;
}

.feed-fullscreen-close {
  position: fixed;
  z-index: 120;
  top: max(12px, env(safe-area-inset-top));
  right: max(12px, env(safe-area-inset-right));
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink);
  box-shadow: 0 12px 28px -18px rgba(10, 30, 80, 0.72);
  cursor: pointer;
}

.feed-fullscreen-close .icon {
  width: 20px;
  height: 20px;
}

.feed-empty {
  margin: auto;
  color: var(--muted);
}

.live-dot {
  display: inline-flex;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--coral);
  box-shadow: 0 0 0 0 rgba(251, 90, 87, 0.5);
  animation: pulse 1.8s infinite;
}

.album-hero {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  background: var(--ink);
  color: var(--white);
  text-align: center;
}

.album-hero img {
  width: 100%;
  height: 290px;
  object-fit: cover;
  opacity: 0.45;
}

.album-hero-copy {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  padding: 24px;
}

.album-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.album-tile,
.thumb {
  overflow: hidden;
  border-radius: 12px;
  background: var(--bg);
}

.album-tile {
  aspect-ratio: 1;
}

.guest-album-list {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.guest-album-card {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 14px;
  width: 100%;
  border: 1px solid var(--line);
  padding: 12px;
  text-align: left;
}

.guest-album-cover {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 12px;
  background: var(--bg, var(--ivory));
  color: var(--coral);
}

.guest-album-cover img,
.guest-album-cover video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.guest-album-card strong,
.guest-album-card small,
.guest-album-card em {
  display: block;
}

.guest-album-card strong {
  margin-top: 6px;
  color: var(--ink);
  font-family: var(--guest-display-font);
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
}

.guest-album-card small {
  margin-top: 5px;
  color: var(--ink-50);
  font-size: 13px;
  line-height: 1.35;
}

.guest-album-card em {
  margin-top: 8px;
  color: var(--guest-button-bg);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.empty-album-card {
  display: grid;
  gap: 10px;
  margin: 16px 0;
  padding: 22px;
  text-align: center;
}

.empty-album-card .tile-icon {
  margin: 0 auto;
}

.empty-album-card h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--guest-display-font);
  font-size: 26px;
  font-weight: 500;
}

.lightbox-backdrop {
  align-items: center;
  padding: 18px;
  background: rgba(10, 30, 80, 0.76);
}

.lightbox-sheet {
  position: relative;
  width: min(100%, 860px);
  max-height: min(92vh, 820px);
  overflow: hidden;
  border: 1px solid rgba(255, 253, 250, 0.18);
  border-radius: 24px;
  background: var(--ink);
  box-shadow: 0 28px 70px -28px rgba(10, 30, 80, 0.95);
}

.lightbox-close {
  position: absolute;
  z-index: 2;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 253, 250, 0.28);
  background: rgba(10, 30, 80, 0.58);
}

.lightbox-image-frame {
  display: grid;
  place-items: center;
  height: min(70vh, 680px);
  background: #07173d;
}

.lightbox-image-frame img,
.lightbox-image-frame video {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.lightbox-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px 18px;
  color: var(--white);
}

.lightbox-footer strong,
.lightbox-footer span {
  display: block;
}

.lightbox-footer > div > strong {
  font-size: 16px;
}

.lightbox-footer > div > span {
  margin-top: 3px;
  color: rgba(255, 253, 250, 0.72);
  font-size: 14px;
}

.lightbox-like {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 78px;
  min-height: 48px;
  border: 1px solid rgba(255, 253, 250, 0.24);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.12);
  color: var(--white);
  font-size: 18px;
  font-weight: 800;
  backdrop-filter: blur(8px);
}

.lightbox-like.is-liked {
  border-color: rgba(251, 90, 87, 0.55);
  background: var(--coral);
  color: var(--white);
  animation: pop 260ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.lightbox-review-actions {
  display: inline-flex;
  gap: 10px;
}

.lightbox-review-button {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border: 1px solid rgba(255, 253, 250, 0.24);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.12);
  color: var(--white);
  backdrop-filter: blur(8px);
}

.lightbox-review-button.is-approve.is-active,
.lightbox-review-button.is-approve:hover {
  border-color: rgba(110, 147, 109, 0.7);
  background: var(--sage);
}

.lightbox-review-button.is-decline.is-active,
.lightbox-review-button.is-decline:hover {
  border-color: rgba(251, 90, 87, 0.7);
  background: var(--coral);
}

.lightbox-review-button.is-album.is-active,
.lightbox-review-button.is-album:hover {
  border-color: rgba(200, 169, 106, 0.7);
  background: var(--gold);
}

.guestbook-form {
  padding: 16px;
}

.guestbook-form textarea,
.field,
.search-field {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  color: var(--ink);
  outline: none;
}

.guestbook-form textarea {
  min-height: 92px;
  resize: vertical;
  border: 0;
  padding: 0;
  line-height: 1.5;
}

.guestbook-form textarea:focus,
.field:focus,
.search-field:focus {
  border-color: var(--ink);
  box-shadow: inset 0 -2px 0 var(--coral);
}

.form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--ivory);
  padding-top: 12px;
}

.guestbook-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.guestbook-attach-button {
  min-height: 48px;
  padding-inline: 16px;
}

.guestbook-voice-draft {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(244, 238, 228, 0.56);
  margin: 14px 0;
  padding: 10px;
}

.guestbook-voice-draft.is-recording {
  background: var(--coral-tint);
}

.voice-recording-status {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  font-weight: 800;
}

.voice-recording-status div {
  display: grid;
  gap: 2px;
}

.voice-recording-status span:last-child {
  color: var(--ink-50);
  font-size: 13px;
}

.voice-recording-dot {
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: var(--coral);
  box-shadow: 0 0 0 8px rgba(251, 90, 87, 0.14);
  animation: voicePulse 1.4s ease-in-out infinite;
}

.guestbook-voice-actions {
  display: flex;
  gap: 8px;
}

.voice-note-player {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  border: 1px solid rgba(10, 30, 80, 0.12);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.9);
  color: var(--ink);
  padding: 6px 8px 6px 6px;
  box-shadow: 0 12px 28px -24px rgba(10, 30, 80, 0.45);
}

.voice-note-player.is-playing {
  border-color: rgba(251, 90, 87, 0.42);
  background: var(--coral-tint);
}

.voice-note-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
}

.voice-note-copy {
  display: grid;
  min-width: 72px;
  line-height: 1.05;
}

.voice-note-copy strong {
  font-size: 13px;
  font-weight: 900;
}

.voice-note-copy span {
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 800;
}

.voice-note-controls {
  display: inline-flex;
  gap: 4px;
}

.voice-control {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 999px;
  background: rgba(10, 30, 80, 0.08);
  color: var(--ink);
  padding: 0;
}

.voice-control:hover,
.voice-control:focus-visible {
  background: var(--ink);
  color: var(--white);
}

.voice-control .icon,
.voice-note-icon .icon {
  width: 16px;
  height: 16px;
}

@keyframes voicePulse {
  0%,
  100% {
    transform: scale(0.86);
    opacity: 0.72;
  }

  50% {
    transform: scale(1);
    opacity: 1;
  }
}

.guestbook-attachment-preview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.guestbook-attachment {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 14px;
  background: var(--ivory);
}

.guestbook-attachment img,
.guestbook-attachment video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.attachment-remove {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 30px;
  height: 30px;
  color: var(--white);
  background: rgba(10, 30, 80, 0.72);
  border-color: rgba(255, 253, 250, 0.48);
}

.note-wall {
  columns: 230px;
  column-gap: 14px;
  margin-top: 20px;
}

.note {
  break-inside: avoid;
  margin-bottom: 14px;
  padding: 18px;
  transform: rotate(var(--rot));
}

.note-photo {
  height: 132px;
  overflow: hidden;
  margin: -4px -4px 14px;
  border-radius: 12px;
  background: var(--ivory);
}

.note-photo img,
.note-photo video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.note-photo .note-media-item {
  width: 100%;
  height: 100%;
}

.note-voice {
  margin: 0 0 14px;
}

.note-media-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: -4px -4px 14px;
}

.note-media-item {
  display: block;
  min-height: 0;
  aspect-ratio: 1;
  overflow: hidden;
  border: 0;
  border-radius: 12px;
  background: var(--bg, var(--ivory));
  padding: 0;
}

.note-media-item img,
.note-media-item video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.note blockquote {
  margin: 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 20px;
  line-height: 1.4;
}

.guest-shell .note blockquote {
  font-family: var(--guest-display-font);
}

.info-page,
.song-section {
  display: grid;
  gap: 14px;
}

.info-card {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 18px;
}

.info-card h3,
.song-row h3 {
  margin: 4px 0 2px;
  color: var(--ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 500;
  line-height: 1.05;
}

.guest-shell .info-card h3,
.guest-shell .song-row h3 {
  color: var(--guest-heading-text);
  font-family: var(--guest-display-font);
}

.info-card p,
.song-row p,
.copy-block p {
  margin: 6px 0 0;
  color: var(--ink-50);
  font-size: 14px;
  line-height: 1.45;
}

.guest-shell .info-card p,
.guest-shell .song-row p,
.guest-shell .copy-block p {
  color: var(--guest-body-muted);
}

.copy-block p:first-child {
  margin-top: 4px;
}

.rich-copy-block strong {
  font-weight: 700;
}

.rich-copy-block em {
  font-style: italic;
}

.rich-copy-block u {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.map-button {
  min-height: 42px;
  border-radius: 999px;
  padding-inline: 14px;
}

.song-request-form {
  display: grid;
  gap: 14px;
}

.song-submit-identity {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 12px;
}

.song-submit-identity > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.song-submit-identity small {
  color: var(--ink-50);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.song-submit-identity strong {
  overflow: hidden;
  color: var(--ink);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.song-anonymous-option {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--ivory);
  padding: 8px 12px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}

.song-anonymous-option input {
  width: 15px;
  height: 15px;
  accent-color: var(--coral);
}

@media (max-width: 520px) {
  .song-submit-identity {
    align-items: stretch;
    flex-direction: column;
  }

  .song-submit-identity .song-anonymous-option {
    align-self: flex-start;
  }
}

.song-input-grid,
.editor-grid {
  display: grid;
  gap: 12px;
}

.song-list {
  display: grid;
  gap: 10px;
  margin-top: 4px;
}

.song-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px;
}

.song-row > div {
  min-width: 0;
}

.song-row .song-requester {
  position: static;
  grid-column: 2;
  justify-self: start;
  text-align: center;
}

.song-requested-by {
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

.song-list.is-compact {
  gap: 0;
}

.song-list.is-compact .song-row {
  border-top: 1px solid var(--ivory);
  grid-template-columns: 48px minmax(0, 1fr);
  padding: 13px 0;
}

.song-list.is-compact .song-row:first-child {
  border-top: 0;
}

.dj-link {
  flex-wrap: wrap;
  margin-top: 4px;
}

.dj-link span {
  min-width: min(100%, 260px);
  flex: 1 1 280px;
  overflow-wrap: anywhere;
}

.dj-link .button {
  min-height: 42px;
  padding-inline: 14px;
}

.share-song-cta {
  align-content: start;
}

.meal-page,
.meal-person-list,
.meal-choice-grid,
.meal-menu-list,
.meal-course-editor-list,
.meal-dish-editor-list,
.meal-submission-list,
.meal-person-summary-list {
  display: grid;
  gap: 14px;
}

.meal-dish-editor-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.meal-summary-card,
.meal-person-head,
.meal-submission-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}

.meal-summary-card {
  padding: 18px;
}

.meal-menu-button {
  background: var(--guest-button-bg);
  color: var(--guest-button-text);
  border-color: var(--guest-button-bg);
  box-shadow: 0 10px 24px rgba(10, 30, 80, 0.12);
}

.meal-menu-button:hover {
  background: var(--guest-button-bg);
  color: var(--guest-button-text);
}

.meal-summary-card strong,
.meal-submission-head strong,
.meal-person-summary strong {
  color: var(--ink);
  font-weight: 800;
}

.meal-summary-card p,
.meal-submission-head small {
  display: block;
  margin: 4px 0 0;
  color: var(--ink-50);
}

.meal-person-card {
  padding: 16px;
}

.meal-person-head {
  margin-bottom: 14px;
}

.meal-choice-select {
  border-radius: 16px;
}

.meal-dietary-fieldset {
  min-width: 0;
  margin: 16px 0 0;
  border: 0;
  border-top: 1px solid var(--line);
  padding: 16px 0 0;
}

.meal-dietary-fieldset > legend {
  padding: 0 8px 0 0;
}

.meal-dietary-toggle {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  width: min(100%, 240px);
  margin-top: 10px;
}

.meal-dietary-toggle label {
  position: relative;
  min-width: 0;
}

.meal-dietary-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.meal-dietary-toggle span {
  display: grid;
  place-items: center;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
  color: var(--ink-80);
  font-weight: 800;
  cursor: pointer;
}

.meal-dietary-toggle input:checked + span {
  border-color: var(--guest-button-bg);
  background: var(--guest-button-bg);
  color: var(--guest-button-text);
}

.meal-dietary-toggle input:focus-visible + span {
  outline: 3px solid color-mix(in srgb, var(--guest-button-bg) 24%, transparent);
  outline-offset: 2px;
}

.meal-dietary-details {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.meal-dietary-details[hidden] {
  display: none;
}

.meal-dietary-details textarea {
  min-height: 104px;
  resize: vertical;
}

.meal-dietary-details small {
  color: var(--ink-50);
  font-size: 12px;
  line-height: 1.45;
}

.meal-menu-modal {
  max-width: 620px;
}

.meal-review-modal {
  width: min(100%, 620px);
}

.meal-review-modal > .copy {
  margin: 8px 0 0;
  color: var(--ink-50);
}

.meal-review-list {
  display: grid;
  gap: 12px;
  max-height: min(48vh, 480px);
  margin-top: 20px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.meal-review-person {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 16px;
}

.meal-review-person h3 {
  margin: 0 0 12px;
  color: var(--ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 28px;
  font-weight: 600;
}

.meal-review-choices {
  display: grid;
  gap: 9px;
  margin: 0;
}

.meal-review-choice {
  display: grid;
  grid-template-columns: minmax(90px, 0.7fr) minmax(0, 1.3fr);
  gap: 12px;
  align-items: baseline;
}

.meal-review-choice dt,
.meal-review-choice dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.meal-review-choice dt {
  color: var(--ink-50);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.meal-review-choice dd {
  color: var(--ink);
  font-weight: 700;
}

.meal-review-actions {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

.meal-review-actions .button {
  width: 100%;
}

.meal-menu-course {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.meal-menu-course:first-child {
  border-top: 0;
  padding-top: 0;
}

.meal-menu-course h3 {
  margin: 0 0 12px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 30px;
  font-weight: 500;
  color: var(--ink);
}

.meal-menu-dish {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 12px 0;
}

.meal-menu-dish + .meal-menu-dish {
  border-top: 1px solid var(--ivory);
}

.meal-menu-dish strong {
  color: var(--ink);
}

.meal-menu-dish p {
  margin: 5px 0 0;
  color: var(--ink-50);
  font-size: 14px;
  line-height: 1.45;
}

.dietary-badges {
  display: flex;
  gap: 6px;
}

.dietary-badge {
  display: inline-grid;
  place-items: center;
  min-width: 30px;
  height: 28px;
  border-radius: 999px;
  background: #edf4eb;
  color: var(--sage);
  font-size: 11px;
  font-weight: 900;
}

.dietary-badge.is-vegan {
  background: #e4f3f1;
  color: #2f8c8a;
}

.meal-course-editor {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
  padding: 14px;
}

.meal-editor-head {
  align-items: flex-start;
}

.course-remove-icon-button {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--coral);
  cursor: pointer;
}

.course-remove-icon-button:disabled {
  opacity: 0.38;
  cursor: not-allowed;
}

.meal-course-switcher {
  display: grid;
  min-width: 0;
  gap: 8px;
  margin: 18px 0 20px;
}

.meal-course-filters {
  display: flex;
  max-width: 100%;
  min-width: 0;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 0 4px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.meal-course-filters::-webkit-scrollbar {
  display: none;
}

.meal-course-filter {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink-50);
  padding: 7px 14px;
  font-family: "Hanken Grotesk", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.meal-course-filter span {
  margin-left: 4px;
  color: inherit;
  opacity: 0.78;
}

.meal-course-filter:hover,
.meal-course-filter.is-active {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--white);
}

.meal-host-grid {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.meal-course-editor-head {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 12px;
}

.meal-course-editor-head label,
.meal-dish-editor label,
.meal-dish-editor-head label {
  display: grid;
  gap: 8px;
  min-width: 0;
  width: 100%;
}

.meal-course-editor .field,
.meal-dish-editor .field {
  width: 100%;
}

.meal-course-actions,
.meal-dish-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.meal-dish-options {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  padding: 6px 8px;
}

.meal-dish-options .soft-check {
  border: 0;
  background: transparent;
  padding: 8px 10px;
}

.meal-dish-options .soft-check:first-child {
  justify-self: start;
}

.meal-dish-options .soft-check:last-child {
  justify-self: end;
}

.meal-course-actions {
  justify-content: flex-end;
  margin-bottom: 10px;
}

.meal-course-actions .button,
.meal-course-actions .table-remove-button {
  min-height: 44px;
  white-space: nowrap;
}

.meal-submission-panel-head {
  flex-wrap: wrap;
  align-items: flex-start;
  margin-bottom: 12px;
}

.meal-report-button {
  flex: 1 1 220px;
}

.meal-submission-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}

.meal-submission-summary span {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  padding: 12px;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.meal-submission-summary strong {
  display: block;
  margin-bottom: 2px;
  color: var(--ink);
  font-family: "Questrial", "Hanken Grotesk", system-ui, sans-serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 0.95;
}

.meal-dish-editor {
  display: grid;
  min-width: 0;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 12px;
}

.meal-dish-editor-head {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 10px;
}

.meal-empty-note {
  margin: 0;
  border: 1px dashed var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 14px;
  text-align: center;
}

.meal-description-field {
  min-height: 84px;
}

.soft-check {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  padding: 10px 12px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}

.soft-check input {
  width: 17px;
  height: 17px;
  accent-color: var(--sage);
}

.meal-submission-row {
  border-top: 1px solid var(--line);
  padding: 14px 0;
}

.meal-submission-row:first-child {
  border-top: 0;
}

.meal-submission-head {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.meal-submission-head .status-pill {
  position: static;
  justify-self: end;
  background: var(--ivory);
  color: var(--ink-50);
}

.meal-submission-head .status-pill.is-confirmed {
  background: #edf4eb;
  color: var(--sage);
}

.meal-person-summary-list {
  margin-top: 12px;
}

.meal-person-summary {
  display: grid;
  gap: 4px;
  border-radius: 14px;
  background: var(--paper);
  padding: 12px;
}

.meal-person-summary span {
  color: var(--ink-80);
  font-size: 13px;
  line-height: 1.35;
}

.meal-remove-button {
  width: 100%;
  margin-top: 12px;
  color: var(--coral);
}

@media (max-width: 620px) {
  .meal-course-switcher {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    max-width: 100%;
    margin-top: 20px;
    overflow: hidden;
  }

  .meal-course-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: 100%;
    overflow: visible;
    padding: 2px 0 4px;
  }

  .meal-course-filter {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }

  .meal-dish-editor-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .meal-dish-editor {
    gap: 8px;
    padding: 10px;
  }

  .meal-dish-editor-head {
    gap: 8px;
  }

  .meal-dish-editor .field {
    min-height: 42px;
  }

  .meal-dish-editor .meal-description-field {
    min-height: 68px;
    padding-block: 10px;
  }

  .meal-dish-options {
    padding: 5px 7px;
  }

  .meal-dish-editor .soft-check {
    padding: 7px 8px;
  }

  .meal-course-actions {
    justify-content: stretch;
  }

  .meal-course-actions .button,
  .meal-dish-editor-head .table-remove-button {
    width: 100%;
  }
}

.host-editor-card label {
  display: block;
}

@media (max-width: 350px) {
  .meal-course-filters {
    grid-template-columns: minmax(0, 1fr);
  }
}

.rich-text-control {
  min-width: 0;
}

.rich-text-toolbar {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  border: 1px solid var(--line);
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  background: var(--ivory);
  padding: 5px 7px;
}

.rich-text-tool {
  display: inline-grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 8px;
  background: var(--white);
  color: var(--ink);
  padding: 0;
  font-family: Georgia, serif;
  font-size: 16px;
  line-height: 1;
}

.rich-text-tool:hover,
.rich-text-tool:focus-visible {
  border-color: var(--ink);
  outline: none;
}

.rich-text-field {
  overflow: auto;
  max-height: 240px;
  border-radius: 0 0 12px 12px;
  white-space: pre-wrap;
}

.rich-text-field:empty::before {
  color: var(--ink-50);
  content: attr(data-placeholder);
  font-style: italic;
  opacity: 0.62;
  pointer-events: none;
}

.rich-text-field:focus {
  border-color: var(--ink);
  outline: 2px solid rgba(10, 30, 80, 0.08);
  outline-offset: -1px;
}

.multiline-field {
  min-height: 112px;
  padding: 12px 14px;
  resize: vertical;
  line-height: 1.45;
}

.welcome-message-field {
  min-height: 150px;
}

@media (min-width: 760px) {
  #travelTransport,
  #travelAccommodation {
    min-height: 190px;
    max-height: 320px;
  }
}

.mobile-tabs {
  position: fixed;
  z-index: 22;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-around;
  min-height: calc(78px + env(safe-area-inset-bottom));
  height: auto;
  border-top: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.94);
  padding: 8px 12px max(8px, env(safe-area-inset-bottom));
  box-sizing: border-box;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.mobile-tabs button {
  position: relative;
  display: grid;
  place-items: center;
  gap: 4px;
  flex: 1 1 0;
  min-width: 38px;
  min-height: 54px;
  border: 0;
  background: transparent;
  color: var(--ink-50);
  font-size: 9px;
  font-weight: 700;
}

.mobile-tabs button.is-active {
  color: var(--coral);
}

.mobile-tabs button.is-locked {
  opacity: 0.68;
}

.nav-lock {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: currentColor;
}

.nav-lock .icon {
  width: 14px;
  height: 14px;
}

.mobile-tabs .nav-lock {
  position: absolute;
  top: 8px;
  right: calc(50% - 18px);
  width: 14px;
  height: 14px;
}

.host-shell {
  min-height: 100vh;
  padding-bottom: calc(24px + env(safe-area-inset-bottom));
}

.host-layout {
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: 24px 20px 0;
}

.host-rail {
  display: none;
}

.host-content {
  min-width: 0;
}

.host-header {
  display: grid;
  gap: 10px;
  margin-bottom: 22px;
}

.host-header-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 14px;
}

.host-header-title {
  min-width: 0;
}

.host-header-primary,
.host-header-secondary,
.host-header-shortcuts,
.host-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.host-header-primary .button {
  min-width: max-content;
}

.host-header-secondary {
  justify-content: flex-start;
}

.host-header-secondary .button {
  min-height: 42px;
}

.host-header--overview {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.host-header--overview .host-header-main {
  display: contents;
}

.host-header--overview .host-header-title {
  grid-column: 1 / -1;
  grid-row: 1;
  width: 100%;
}

.host-header--overview .host-header-title > .overline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.host-dashboard-overline-separator {
  color: var(--gold);
  font-size: 8px;
  letter-spacing: 0;
}

.host-dashboard-countdown {
  color: var(--ink-50);
  letter-spacing: 0.14em;
  white-space: nowrap;
}

.host-header--overview .host-header-secondary {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
  margin: 0;
}

.host-header--overview .host-header-primary {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  margin: 0;
}

.host-header--overview .host-header-shortcuts {
  grid-column: 1 / -1;
  grid-row: 3;
  display: grid;
  align-items: stretch;
  justify-content: stretch;
  width: 100%;
  gap: 10px;
}

.host-header--overview .host-header-shortcut-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: 10px;
}

.host-header--overview .host-header-shortcut-row .button {
  width: 100%;
  min-width: 0;
  min-height: 42px;
}

.logo-lockup {
  height: 30px;
  margin-bottom: 22px;
}

.stats-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stat-card {
  position: relative;
  padding: 18px;
  text-align: center;
}

.stat-card .stat-number {
  color: var(--ink-50);
  font-family: "Questrial", "Hanken Grotesk", system-ui, sans-serif;
  font-size: 32px;
  font-weight: 400;
  line-height: 1;
}

.stat-number {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 63px;
  font-weight: 500;
  line-height: 0.95;
}

.stat-label {
  margin-top: 0;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.stat-card.is-clickable {
  width: 100%;
  border: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
}

.stat-card.is-clickable:hover,
.stat-card.is-clickable:focus-visible {
  border-color: rgba(10, 30, 80, 0.25);
  box-shadow: 0 14px 30px -24px rgba(10, 30, 80, 0.55);
  outline: none;
}

.locked-feature-panel,
.plan-usage-card {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.locked-feature-panel {
  justify-items: center;
  text-align: center;
}

.locked-feature-panel h2 {
  max-width: 360px;
  margin: 0;
  color: var(--ink);
  font-size: clamp(24px, 7vw, 36px);
  line-height: 1.05;
}

.locked-feature-icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--coral-tint);
  color: var(--coral);
}

.locked-feature-icon .icon {
  width: 24px;
  height: 24px;
}

.plan-usage-card {
  align-items: center;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px 18px;
}

.plan-usage-card h2 {
  margin: 2px 0 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.1;
}

.plan-usage-card p {
  margin: 4px 0 0;
  color: var(--ink-50);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
}

.plan-usage-card.is-warning {
  border-color: rgba(210, 166, 95, 0.5);
  background: rgba(244, 238, 226, 0.85);
}

.plan-usage-card.is-limit {
  border-color: rgba(255, 88, 88, 0.34);
  background: var(--coral-tint);
}

.plan-usage-card--media {
  margin-bottom: 18px;
}

.upload-usage-meter {
  grid-column: 1 / -1;
  overflow: hidden;
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: var(--ivory);
}

.upload-usage-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--coral), var(--gold));
}

.upload-usage-unlimited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  border-radius: 999px;
  background: var(--ivory);
  color: var(--ink);
  padding: 10px 14px;
  font-weight: 800;
}

.plan-upgrade-button {
  width: auto;
  min-height: 38px;
  border-radius: 999px;
  padding: 0 14px;
  white-space: nowrap;
}

.plan-usage-card--settings .plan-upgrade-button,
.plan-usage-card--overview .plan-upgrade-button {
  grid-column: 1 / -1;
  justify-self: stretch;
  width: 100%;
}

.plan-capacity-list {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
}

.plan-capacity-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 12px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.7);
  padding: 10px 12px;
}

.plan-capacity-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.plan-capacity-copy strong {
  color: var(--ink);
  font-size: 13px;
}

.plan-capacity-copy span {
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 700;
}

.plan-capacity-row .upload-usage-meter {
  grid-column: 1 / -1;
}

.plan-capacity-row .upload-usage-unlimited {
  padding: 7px 10px;
  font-size: 12px;
}

.plan-usage-card--guests {
  margin-bottom: 16px;
}

.host-access-page,
.event-access-unavailable {
  display: grid;
  place-items: center;
  min-height: calc(100dvh - 84px);
  padding: 30px;
}

.host-access-panel,
.event-access-unavailable .panel {
  display: grid;
  justify-items: start;
  gap: 14px;
  width: min(100%, 680px);
  text-align: left;
}

.host-access-panel h1,
.event-access-unavailable h1 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(34px, 6vw, 54px);
  font-weight: 400;
  line-height: 1;
}

.host-access-panel p,
.event-access-unavailable p {
  max-width: 58ch;
  margin: 0;
  color: var(--ink-50);
  line-height: 1.6;
}

.host-recovery-downloads {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.host-recovery-downloads .overline {
  grid-column: 1 / -1;
}

.host-recovery-downloads .button {
  width: 100%;
}

@media (max-width: 620px) {
  .plan-capacity-list {
    grid-template-columns: 1fr;
  }

  .plan-usage-card .plan-capacity-list {
    grid-column: 1 / -1;
  }

  .host-access-page,
  .event-access-unavailable {
    place-items: start stretch;
    min-height: calc(100dvh - 72px);
    padding: 22px 16px;
  }

  .host-recovery-downloads {
    grid-template-columns: 1fr;
  }
}

.dashboard-grid {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.overview-guestbook-card {
  grid-column: 1 / -1;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.overview-guestbook-entry {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.overview-media-approval-card {
  display: grid;
  gap: 16px;
}

.overview-media-approval-heading {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.overview-media-approval-heading > div {
  min-width: 0;
}

.overview-media-approval-heading .card-title {
  margin-top: 5px;
}

.overview-media-approval-heading .muted {
  margin: 3px 0 0;
}

.overview-media-approval-action {
  flex: 0 0 auto;
  white-space: nowrap;
}

.overview-media-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.overview-media-type-summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--ivory);
  padding: 12px;
}

.overview-media-type-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  background: var(--coral-tint);
  color: var(--coral);
}

.overview-media-type-icon .icon {
  width: 19px;
  height: 19px;
}

.overview-media-type-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.overview-media-type-copy strong {
  font-size: 14px;
}

.overview-media-type-copy span {
  color: var(--ink-50);
  font-size: 12px;
}

.overview-media-type-percentage {
  color: var(--ink-80);
  font-size: 16px;
}

.overview-media-type-progress {
  grid-column: 2 / -1;
  height: 7px;
}

@media (max-width: 620px) {
  .overview-media-approval-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .overview-media-approval-action {
    width: 100%;
  }

  .overview-media-type-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.overview-seating-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.overview-seating-action {
  margin-top: auto;
}

.overview-unseated-summary {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}

.overview-unseated-list {
  display: flex;
  max-height: 294px;
  flex-wrap: wrap;
  gap: 7px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(124, 137, 166, 0.38) transparent;
}

.overview-unseated-chip {
  display: inline-flex;
  min-width: 0;
  min-height: 36px;
  align-items: center;
  gap: 7px;
  border-radius: 999px;
  background: var(--ivory);
  padding: 6px 7px 6px 11px;
  color: var(--ink-80);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
}

.overview-unseated-chip > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.overview-unseated-chip strong {
  display: inline-grid;
  min-width: 24px;
  height: 24px;
  flex: 0 0 24px;
  place-items: center;
  border-radius: 999px;
  background: var(--white);
  color: var(--coral);
  font-size: 11px;
  box-shadow: inset 0 0 0 1px var(--line);
}

.overview-seating-complete {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 14px 0 0;
  color: var(--sage);
  font-size: 12px;
  font-weight: 700;
}

.overview-seating-complete .icon {
  width: 15px;
  height: 15px;
}

.panel {
  padding: 18px;
}

.progress-track {
  overflow: hidden;
  height: 10px;
  border-radius: 999px;
  background: var(--ivory);
}

.progress-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--coral), var(--gold));
}

.quick-grid {
  margin-top: 14px;
}

.quick-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  padding: 0 14px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  text-align: left;
}

.thumb-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.thumb {
  aspect-ratio: 1;
}

button.thumb {
  position: relative;
  border: 0;
  padding: 0;
  color: inherit;
  cursor: pointer;
}

button.thumb:hover,
button.thumb:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 2px;
}

.timetable-preview {
  display: grid;
}

.timetable-preview div {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  align-items: baseline;
  gap: 12px;
  border-top: 1px solid var(--ivory);
  padding: 16px 0;
}

.timetable-preview div:first-child {
  border-top: 0;
  padding-top: 0;
}

.timetable-preview strong {
  display: block;
  color: var(--ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.timetable-preview span {
  display: block;
  color: var(--ink-80);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  min-width: 0;
}

.timetable-preview b,
.timetable-preview em {
  display: block;
  font-style: normal;
}

.timetable-preview b {
  font-weight: 800;
}

.timetable-preview em {
  margin-top: 2px;
  font-weight: 500;
}

.host-timetable-card .timetable-preview div {
  border-top-color: rgba(255, 255, 255, 0.16);
}

.host-timetable-card .timetable-preview strong {
  color: var(--white);
}

.host-timetable-card .timetable-preview span {
  color: rgba(255, 255, 255, 0.82);
}

.host-timetable-card .timetable-preview b {
  color: var(--white);
}

.overview-empty-state {
  display: grid;
  align-content: center;
  gap: 8px;
  min-height: 118px;
  color: var(--ink-80);
}

.overview-empty-state h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--body);
  font-size: 18px;
  font-weight: 800;
  line-height: 1.2;
}

.overview-empty-state p {
  margin: 0;
  color: var(--ink-50);
  font-size: 14px;
  line-height: 1.45;
}

.overview-empty-state .button {
  width: 100%;
  margin-top: 6px;
}

.overview-recent-uploads-card {
  display: flex;
  flex-direction: column;
}

.overview-recent-uploads-card > .overview-empty-state {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: stretch;
}

.overview-recent-uploads-card > .overview-empty-state .button {
  margin-top: auto;
}

.overview-empty-state--dark {
  min-height: 160px;
  color: rgba(255, 255, 255, 0.78);
}

.overview-empty-state--dark h3 {
  color: var(--white);
}

.overview-empty-state--dark p {
  color: rgba(255, 255, 255, 0.72);
}

.share-grid {
  display: grid;
  gap: 14px;
  min-width: 0;
  max-width: 100%;
}

.host-share-grid {
  width: 100%;
  grid-template-columns: minmax(0, 1fr);
}

.share-grid > *,
.share-grid .panel,
.invite-message-editor,
.personal-invite-finder,
.personal-invite-results,
.qr-wrap {
  min-width: 0;
  max-width: 100%;
}

.share-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
  padding: 12px 14px;
  color: var(--ink-80);
  font-size: 13px;
  min-width: 0;
  max-width: 100%;
}

.share-link > span {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.share-link > .button {
  flex: 0 0 auto;
}

.shared-link-landing-control {
  display: grid;
  gap: 8px;
  min-width: 0;
  margin-top: 16px;
}

.shared-link-landing-control small {
  color: var(--ink-50);
  font-size: 12px;
  line-height: 1.45;
}

.share-action-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  min-width: 0;
  margin-top: 14px;
}

.share-action-row .button {
  min-width: 0;
  padding-inline: 12px;
  white-space: normal;
}

.invite-share-sheet {
  max-width: 520px;
}

.invite-link-preview {
  margin-top: 16px;
}

.invite-link-preview span {
  overflow-wrap: anywhere;
}

.invite-share-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.invite-share-actions .button {
  min-height: 44px;
  padding-inline: 12px;
}

.personal-link-sample {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.invite-message-editor {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.invite-message-field {
  min-height: 120px;
  resize: vertical;
}

.personal-invite-finder {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.personal-invite-results {
  display: grid;
  gap: 8px;
}

.personal-invite-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 10px;
}

.personal-invite-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.personal-invite-copy strong,
.personal-invite-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.personal-invite-copy strong {
  color: var(--ink);
  font-weight: 800;
}

.personal-invite-copy small {
  color: var(--ink-50);
  font-weight: 700;
}

.personal-invite-empty {
  border: 1px dashed var(--line);
  border-radius: 16px;
  color: var(--ink-50);
  padding: 14px;
  text-align: center;
  font-weight: 700;
}

.personal-invite-action {
  min-height: 36px;
  padding-inline: 12px;
}

.qr-wrap {
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: var(--paper);
  padding: 16px;
}

.qr {
  display: block;
  width: min(100%, 236px);
  aspect-ratio: 1;
  object-fit: contain;
  border: 12px solid var(--qr-background, var(--white));
  border-radius: 12px;
  background: var(--qr-background, var(--white));
  box-shadow: 0 16px 34px -28px rgba(8, 28, 74, 0.55);
}

.qr-wrap .qr {
  max-width: 100%;
}

.guest-phone-fields {
  display: grid;
  grid-template-columns: minmax(230px, 1.2fr) minmax(0, 1fr);
  gap: 12px;
  min-width: 0;
}

.guest-phone-fields > label {
  min-width: 0;
}

.guest-phone-fields .settings-select,
.guest-phone-fields .field {
  width: 100%;
  max-width: 100%;
}

.guest-phone-fields .settings-select {
  padding-right: 54px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.form-error {
  margin: 14px 0 0;
  border-radius: 12px;
  background: var(--coral-tint);
  color: var(--coral-deep);
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 700;
}

@media (max-width: 620px) {
  .guest-phone-fields {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
}

.qr-colour-control {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.qr-colour-control .copy {
  margin-top: 4px;
}

.qr-colour-input-row {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: end;
  gap: 12px;
}

.qr-colour-picker {
  position: relative;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  cursor: pointer;
}

.qr-colour-picker input[type="color"] {
  width: 76px;
  height: 76px;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
}

.qr-hex-field {
  min-width: 0;
}

.qr-colour-feedback {
  margin: 0;
  color: var(--ink-50);
  font-size: 13px;
  font-weight: 700;
}

.qr-colour-feedback.is-valid {
  color: var(--sage);
}

.qr-colour-feedback.is-error {
  color: var(--coral);
}

.qr-colour-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.qr-colour-actions .button {
  min-width: 0;
  padding-inline: 12px;
  white-space: normal;
}

.qr-colour-actions .button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

@media (max-width: 420px) {
  .qr-colour-actions {
    grid-template-columns: 1fr;
  }
}

.theme-swatches {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 10px;
}

.swatch {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  padding: 0 12px 0 8px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 1px 0 rgba(235, 227, 213, 0.72);
}

.swatch-dot {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--swatch) 0 58%, var(--swatch-soft, var(--swatch)) 58% 100%);
  box-shadow: inset 0 0 0 1px rgba(10, 30, 80, 0.1);
}

.swatch.is-active {
  border-color: var(--ink);
  box-shadow: 0 0 0 3px var(--coral-tint), 0 1px 0 rgba(235, 227, 213, 0.72);
}

.settings-list {
  display: grid;
  gap: 10px;
}

.settings-section-list {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.settings-section {
  display: grid;
  gap: 12px;
}

.settings-section-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  min-height: 66px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  color: var(--ink);
  padding: 14px 16px;
  text-align: left;
  box-shadow: 0 1px 0 rgba(235, 227, 213, 0.72);
}

.settings-section-toggle:hover {
  transform: translateY(-1px);
}

.settings-section-heading {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.settings-section-heading strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 600;
  line-height: 1;
}

.settings-section-heading span {
  color: var(--ink-50);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.settings-section-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  border-radius: 999px;
  background: var(--ivory);
  color: var(--ink-80);
  padding: 8px 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.settings-section-meta .icon {
  width: 16px;
  height: 16px;
  transition: transform 180ms ease;
}

.settings-section.is-expanded .settings-section-meta .icon {
  transform: rotate(180deg);
}

.settings-section-content {
  margin-bottom: 6px;
}

.settings-section-content--full > * {
  grid-column: 1 / -1;
}

.settings-section-content > .host-account-bar {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.host-editor-page {
  display: grid;
  gap: 14px;
}

.host-editor-page > .host-editor-card {
  width: 100%;
}

.settings-link-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  width: 100%;
  border: 1px solid var(--line);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.settings-link-card:hover,
.settings-link-card:focus-visible {
  border-color: rgba(10, 30, 80, 0.25);
  box-shadow: 0 14px 30px -24px rgba(10, 30, 80, 0.55);
  outline: none;
}

.settings-link-card > span:nth-child(2) {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.settings-link-card strong {
  color: var(--ink);
  font-size: 18px;
  font-weight: 800;
}

.settings-link-card small {
  color: var(--ink-50);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.settings-link-card > .icon:last-child {
  width: 20px;
  height: 20px;
  color: var(--ink);
}

.gift-registry-editor .copy {
  margin-top: 8px;
}

.gift-message-field {
  min-height: 148px;
}

.gift-preview-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--ivory);
  padding: 16px;
  margin-top: 14px;
}

.gift-preview-card h3 {
  margin: 6px 0 8px;
  color: var(--ink);
  font-family: var(--display);
  font-size: 28px;
  line-height: 1.05;
}

.gift-preview-card small {
  display: block;
  margin-top: 10px;
  color: var(--ink-50);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.gift-registry-card .gift-registry-button,
.gift-preview-card .gift-registry-button {
  width: fit-content;
  margin-top: 12px;
}

.settings-select-grid {
  display: grid;
  gap: 12px;
}

.host-account-summary {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--ivory);
  padding: 14px;
}

.host-account-pill {
  justify-self: start;
  border-radius: 999px;
  background: #ecf1ea;
  color: var(--sage);
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.host-account-summary strong,
.host-account-summary small {
  display: block;
}

.host-account-summary small {
  color: var(--ink-50);
  font-weight: 700;
}

.account-login-card {
  display: grid;
  gap: 0;
}

.account-login-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 20px;
  border-top: 1px solid var(--line);
}

.account-login-section {
  display: grid;
  align-content: start;
  gap: 14px;
  min-width: 0;
  padding: 20px 22px 0 0;
}

.account-login-section + .account-login-section {
  border-left: 1px solid var(--line);
  padding-right: 0;
  padding-left: 22px;
}

.account-login-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}

.account-login-heading h3,
.account-login-heading p {
  margin: 0;
}

.account-login-heading h3 {
  color: var(--ink);
  font-size: 18px;
}

.account-login-heading p {
  margin-top: 4px;
  color: var(--ink-50);
  font-size: 14px;
  line-height: 1.45;
}

.account-login-heading strong {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.account-login-section .button {
  width: 100%;
  margin-top: auto;
}

.account-security-feedback {
  margin: 0;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

.account-security-feedback.is-error {
  background: var(--coral-tint);
  color: var(--coral-deep);
}

.account-security-feedback.is-success {
  background: #ecf1ea;
  color: var(--sage);
}

@media (max-width: 760px) {
  .account-login-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .account-login-section {
    padding: 18px 0 0;
  }

  .account-login-section + .account-login-section {
    margin-top: 20px;
    border-top: 1px solid var(--line);
    border-left: 0;
    padding: 20px 0 0;
  }
}

.settings-select {
  width: 100%;
  min-height: 46px;
  appearance: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  background:
    linear-gradient(45deg, transparent 50%, var(--ink) 50%) calc(100% - 25px) 20px / 7px 7px no-repeat,
    linear-gradient(135deg, var(--ink) 50%, transparent 50%) calc(100% - 20px) 20px / 7px 7px no-repeat,
    linear-gradient(90deg, transparent calc(100% - 54px), #e7eaf3 calc(100% - 54px)),
    var(--white);
  color: var(--ink);
  padding: 0 66px 0 16px;
  font-size: 14px;
  font-weight: 700;
  outline: none;
}

.settings-select:focus-visible {
  border-color: rgba(10, 30, 80, 0.42);
  box-shadow: 0 0 0 4px var(--coral-tint);
}

.preview-select-field {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.preview-select {
  position: relative;
  min-width: 0;
}

.preview-select-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background:
    linear-gradient(90deg, transparent calc(100% - 54px), #e7eaf3 calc(100% - 54px)),
    var(--white);
  color: var(--ink);
  padding: 0 16px;
  font-size: 14px;
  font-weight: 800;
  outline: none;
}

.preview-select-trigger > span {
  min-width: 0;
  overflow: hidden;
}

.preview-select-trigger .icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: var(--ink);
  transition: transform 180ms ease;
}

.preview-select.is-open .preview-select-trigger .icon {
  transform: rotate(180deg);
}

.preview-select-trigger:focus-visible,
.preview-select.is-open .preview-select-trigger {
  border-color: rgba(10, 30, 80, 0.42);
  box-shadow: 0 0 0 4px var(--coral-tint);
}

.preview-select-menu {
  position: absolute;
  z-index: 65;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  display: grid;
  gap: 4px;
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 8px;
  box-shadow: 0 22px 48px -28px rgba(10, 30, 80, 0.48), 0 1px 0 var(--line);
}

.preview-select-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 40px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--ink);
  padding: 8px 10px;
  text-align: left;
}

.preview-select-option:hover,
.preview-select-option:focus-visible {
  background: var(--paper);
  outline: none;
}

.preview-select-option.is-selected {
  background: var(--coral-tint);
  color: var(--coral);
}

.preview-select-option .icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
}

.font-preview-label,
.colour-option-label {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: 9px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.font-preview-label {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
}

.colour-dot {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border: 1px solid rgba(10, 30, 80, 0.14);
  border-radius: 999px;
  background: var(--dot);
  box-shadow: inset 0 0 0 2px rgba(255, 253, 249, 0.42);
}

.colour-dot.is-template {
  background: conic-gradient(from 45deg, var(--ink) 0 25%, var(--coral) 0 50%, var(--gold) 0 75%, var(--ivory) 0);
}

.guest-theme-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(10, 30, 80, 0.92), rgba(10, 30, 80, 0.74));
  color: var(--guest-hero-text);
  padding: 16px;
}

.guest-theme-preview span,
.guest-theme-preview small {
  display: block;
  color: var(--guest-hero-muted);
  font-family: var(--guest-body-font);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.guest-theme-preview strong {
  display: block;
  margin-top: 4px;
  color: var(--template-title, var(--guest-hero-text));
  font-family: var(--guest-display-font);
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
}

.guest-theme-preview small {
  margin-top: 5px;
  letter-spacing: 0;
  text-transform: none;
}

.guest-theme-preview .button.primary {
  background: var(--guest-button-bg);
  color: var(--guest-button-text);
}

.guest-design-panel {
  grid-column: 1 / -1;
}

.welcome-editor-panel {
  overflow: visible;
}

.welcome-base-selector {
  display: grid;
  gap: 14px;
  margin-top: 20px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--ivory) 62%, var(--white));
  padding: 14px;
}

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

.welcome-base-choice {
  height: 100%;
}

.welcome-base-choice .template-choice-preview {
  aspect-ratio: 9 / 16;
}

.welcome-base-choice--split-photo-bottom {
  --template-preview-image: url("/assets/templates/july26/stock-06-640.webp");
}

.welcome-base-choice--editorial-duotone {
  --template-preview-image: url("/assets/templates/july26/stock-03-640.webp");
}

.welcome-base-choice .template-choice-preview--matted > i {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
}

@media (max-width: 759px) {
  .welcome-base-choice .template-preview-text {
    gap: 2px;
    max-width: 110px;
  }

  .welcome-base-choice .template-preview-text small,
  .welcome-base-choice .template-preview-text em {
    font-size: 6px;
  }

  .welcome-base-choice .template-preview-text strong {
    font-size: 14px;
  }

  .welcome-base-choice .template-preview-location {
    font-size: 7px;
  }

  .welcome-base-choice .template-preview-cta {
    margin-top: 3px;
    padding: 4px 7px;
    font-size: 6px;
  }
}

.welcome-editor-layout {
  display: grid;
  gap: 18px;
  margin-top: 18px;
}

.welcome-editor-controls {
  display: grid;
  gap: 14px;
}

.welcome-editor-section {
  display: grid;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 14px;
}

.welcome-editor-section-heading,
.welcome-editor-preview-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.welcome-editor-section-heading > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.welcome-editor-section-heading strong,
.welcome-editor-preview-label strong {
  color: var(--ink);
  font-size: 15px;
}

.welcome-editor-section-heading small {
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.welcome-editor-step {
  display: inline-grid;
  place-items: center;
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  background: var(--coral-tint);
  color: var(--coral);
  padding: 0 8px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}

.welcome-editor-section .welcome-copy-settings,
.welcome-editor-section .collage-image-settings {
  margin-top: 0;
}

.welcome-cover-button {
  width: 100%;
}

.welcome-editor-swatches {
  margin-top: 8px;
}

.welcome-background-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.welcome-background-option {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  color: var(--ink);
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 800;
  text-align: left;
}

.welcome-background-option.is-active {
  border-color: var(--coral);
  box-shadow: 0 0 0 2px var(--coral-tint);
}

.welcome-size-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 8px;
}

.welcome-editor-preview-column {
  order: -1;
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
}

.welcome-editor-preview-column .guest-design-preview {
  grid-template-columns: 1fr;
  margin-top: 0;
}

.welcome-editor-preview-column .guest-design-preview-actions {
  margin-top: 0;
}

.guest-design-controls {
  display: grid;
  gap: 16px;
  margin-top: 18px;
}

.welcome-copy-settings {
  display: grid;
  gap: 14px;
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--ivory) 58%, var(--white));
  padding: 14px;
}

.welcome-copy-settings .copy {
  margin-top: 6px;
}

.welcome-copy-grid {
  display: grid;
  gap: 12px;
}

.welcome-copy-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.guest-design-preview {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--paper);
  padding: 12px;
}

.guest-design-preview-template {
  border-radius: 16px;
}

.guest-design-preview-template {
  display: grid;
  overflow: hidden;
  background: var(--white);
}

.welcome-page-preview-frame {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 393 / 852;
  border: 0;
  border-radius: 16px;
  background: var(--template-ground, var(--paper));
}

.guest-design-preview-template .template-choice-preview {
  width: 100%;
  min-height: 360px;
  border-radius: 16px;
}

.guest-design-preview-template .template-preview-text {
  max-width: 220px;
  gap: 6px;
}

.guest-design-preview-template .template-preview-text small,
.guest-design-preview-template .template-preview-text em {
  font-size: 10px;
}

.guest-design-preview-template .template-preview-text strong {
  font-size: 34px;
  transform: scale(var(--welcome-heading-scale, 1));
  transform-origin: center;
}

.shared-access-warning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px;
  border: 1px solid rgba(255, 91, 95, 0.28);
  border-radius: 12px;
  background: var(--blush);
  padding: 12px 14px;
  color: var(--ink-80);
}

.shared-access-warning svg {
  width: 20px;
  flex: 0 0 20px;
  color: var(--coral);
}

.shared-access-warning p {
  margin: 0;
  line-height: 1.5;
}

.shared-access-permission-panel {
  display: grid;
  margin: 16px 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
  overflow: hidden;
}

.shared-access-permission-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  padding: 14px;
}

.shared-access-permission-row + .shared-access-permission-row {
  border-top: 1px solid var(--line);
}

.shared-access-permission-row > div {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.shared-access-permission-row strong,
.shared-access-permission-row span {
  line-height: 1.4;
}

.shared-access-permission-row > div > span {
  color: var(--ink-50);
  font-size: 12px;
}

.shared-access-permission-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
}

.shared-access-permission-icon svg {
  width: 18px;
  height: 18px;
}

.shared-access-permission-row--allowed .shared-access-permission-icon {
  background: rgba(110, 147, 109, 0.14);
  color: var(--sage);
}

.shared-access-permission-row--restricted .shared-access-permission-icon {
  background: var(--coral-tint);
  color: var(--coral);
}

.shared-access-host-panel {
  display: grid;
  gap: 12px;
  margin-top: 22px;
  border-top: 1px solid var(--line);
  padding-top: 20px;
}

.shared-access-host-heading,
.shared-access-session-row,
.shared-access-host-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.shared-access-host-heading h3 {
  margin: 4px 0 0;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 500;
}

.shared-access-status {
  border-radius: 999px;
  background: var(--paper);
  padding: 7px 10px;
  color: var(--ink-50);
  font-size: 11px;
  font-weight: 800;
}

.shared-access-status.is-enabled {
  background: #eaf3e8;
  color: #4d7446;
}

.shared-access-pin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.shared-access-host-actions {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.shared-access-session-row {
  border-radius: 12px;
  background: var(--paper);
  padding: 10px 12px;
}

.shared-access-feedback {
  margin: 10px 0 0;
  color: var(--ink-50);
  font-size: 13px;
  line-height: 1.45;
}

.shared-access-feedback.is-error {
  color: #a23a3d;
}

.guest-design-preview-template .template-preview-location {
  font-size: 11px;
}

.guest-design-preview-template .template-preview-cta {
  padding: 8px 14px;
  font-size: 10px;
}


.guest-design-preview-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 10px;
  margin-top: 14px;
}

@media (min-width: 780px) {
  .guest-design-preview {
    grid-template-columns: minmax(180px, 0.72fr) minmax(0, 1fr);
    align-items: stretch;
  }

  .guest-design-preview-template .template-choice-preview {
    height: 100%;
  }
}

.collage-image-settings {
  display: grid;
  gap: 14px;
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--ivory) 62%, var(--white));
  padding: 14px;
}

.collage-image-settings .copy {
  margin-top: 6px;
}

.collage-image-grid {
  display: grid;
  gap: 10px;
}

.collage-image-slot {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 10px;
}

.collage-image-preview {
  display: grid;
  place-items: center;
  width: 72px;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 14px;
  background: var(--coral-tint);
  color: var(--coral);
}

.collage-image-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.collage-image-preview .icon {
  width: 24px;
  height: 24px;
}

.collage-image-slot-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.collage-image-slot-copy strong {
  color: var(--ink);
  font-size: 15px;
}

.collage-image-slot-copy small {
  color: var(--ink-50);
  font-weight: 700;
}

.collage-image-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 8px;
}

.collage-image-actions .button {
  min-height: 40px;
  padding: 0 12px;
}

.button.is-compact-danger {
  background: var(--coral-tint);
  color: var(--coral);
}

.welcome-template-panel {
  grid-column: 1 / -1;
}

.template-route-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.template-route-group {
  display: grid;
  gap: 10px;
}

.template-route-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  min-height: 58px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: color-mix(in srgb, var(--ivory) 62%, var(--white));
  color: var(--ink);
  padding: 12px 14px;
  text-align: left;
  box-shadow: 0 1px 0 rgba(235, 227, 213, 0.72);
}

.template-route-toggle:hover {
  transform: translateY(-1px);
}

.template-route-heading {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.template-route-heading strong {
  color: var(--ink);
  font-size: 14px;
}

.template-route-heading span {
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 700;
}

.template-route-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
}

.template-route-selected {
  border-radius: 999px;
  background: var(--guest-tint);
  color: var(--guest-button-bg);
  padding: 5px 8px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.template-route-meta .icon {
  width: 18px;
  height: 18px;
  color: var(--ink-50);
  transition: transform 180ms ease;
}

.template-route-group.is-expanded .template-route-meta .icon {
  transform: rotate(180deg);
}

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

.template-choice {
  display: grid;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  color: var(--ink);
  min-width: 0;
  padding: 8px;
  text-align: left;
  box-shadow: 0 1px 0 var(--line);
}

.template-choice.is-active {
  border-color: var(--template-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--template-accent) 22%, transparent), 0 1px 0 var(--line);
}

.template-choice-preview {
  position: relative;
  overflow: hidden;
  display: grid;
  aspect-ratio: 3 / 4;
  min-height: 0;
  border-radius: 12px;
  background: var(--template-ground);
}

.template-choice-preview > i {
  background: linear-gradient(180deg, rgba(5, 17, 45, 0.36), color-mix(in srgb, var(--template-overlay) 82%, rgba(5, 17, 45, 0.48))), var(--template-preview-image, url("assets/wedding-hero.png")) center / cover;
}

.template-preview-text {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 4px;
  width: 100%;
  min-width: 0;
  max-width: 132px;
  margin: 0 auto;
  color: var(--template-title);
  text-align: center;
}

.template-preview-text small,
.template-preview-text em {
  color: var(--template-muted);
  font-family: var(--guest-body-font);
  font-size: 7px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.1;
  text-transform: uppercase;
}

.template-preview-text strong {
  color: var(--template-title);
  font-family: var(--guest-display-font);
  font-size: 18px;
  font-weight: 600;
  line-height: 0.96;
  overflow-wrap: anywhere;
}

.template-preview-location {
  color: var(--template-muted);
  font-family: var(--guest-body-font);
  font-size: 8px;
  font-weight: 700;
  line-height: 1.18;
}

.template-preview-cta {
  justify-self: center;
  margin-top: 5px;
  border-radius: 999px;
  background: var(--template-button);
  color: #fff;
  padding: 5px 9px;
  font-family: var(--guest-button-font);
  font-size: 7px;
  font-weight: 900;
  line-height: 1;
}

.template-choice-preview--photography,
.template-choice-preview--duotone {
  place-items: end center;
  padding: 12px 8px;
}

.template-choice-preview--photography > i,
.template-choice-preview--duotone > i {
  position: absolute;
  inset: 0;
}

.template-choice-preview--photography .template-preview-text,
.template-choice-preview--duotone .template-preview-text {
  color: var(--template-photo-title);
  text-shadow: 0 1px 5px rgba(5, 17, 45, 0.9), 0 6px 16px rgba(5, 17, 45, 0.72);
}

.template-choice-preview--photography .template-preview-text small,
.template-choice-preview--photography .template-preview-text em,
.template-choice-preview--photography .template-preview-location,
.template-choice-preview--duotone .template-preview-text small,
.template-choice-preview--duotone .template-preview-text em,
.template-choice-preview--duotone .template-preview-location {
  color: var(--template-photo-muted);
}

.template-choice-preview--photography .template-preview-text strong,
.template-choice-preview--duotone .template-preview-text strong {
  color: var(--template-photo-title);
}

.template-choice-preview .template-preview-text strong > em {
  color: var(--template-button);
  font-family: inherit;
  font-size: inherit;
  font-style: italic;
  font-weight: inherit;
  letter-spacing: 0;
  line-height: inherit;
  text-transform: none;
}

.template-choice-preview--split {
  grid-template-rows: 1fr 0.78fr;
}

.template-choice-preview--split.template-choice-preview--text-top {
  grid-template-rows: 0.78fr 1fr;
}

.template-choice-preview--split.template-choice-preview--text-top > i {
  order: 2;
}

.template-choice-preview--split .template-preview-text {
  align-self: center;
  padding: 8px;
}

.template-choice-preview--minimal {
  place-items: center;
  padding: 12px 8px;
}

.template-choice-preview--minimal > i {
  position: absolute;
  width: 42px;
  height: 42px;
  border: 1px solid var(--template-accent);
  border-radius: 999px;
  background: transparent;
  opacity: 0.34;
}

.template-choice-preview--matted {
  align-content: center;
  padding: 12px 9px;
  gap: 8px;
}

.template-choice-preview--matted > i {
  height: 64px;
  border: 8px solid var(--white);
  box-shadow: 0 8px 18px -12px rgba(10, 30, 80, 0.7);
}

.template-choice-preview--matted .template-preview-text {
  text-align: left;
}

.template-choice-preview--collage {
  grid-template-columns: 1.2fr 0.8fr;
  grid-template-rows: 1fr 1fr auto;
  gap: 4px;
  padding: 8px;
}

.template-choice-preview--collage > i {
  grid-column: 1;
  grid-row: 1 / span 2;
  border-radius: 8px;
}

.template-choice-preview--collage > i:nth-of-type(2) {
  grid-column: 2;
  grid-row: 1;
  --template-preview-image: url("/assets/templates/july26/stock-02-640.webp");
}

.template-choice-preview--collage > i:nth-of-type(3) {
  grid-column: 2;
  grid-row: 2;
  --template-preview-image: url("/assets/templates/july26/stock-08-640.webp");
}

.template-choice-preview--collage .template-preview-text {
  grid-column: 1 / -1;
  grid-template-columns: 1fr;
  text-align: center;
}

.template-palette {
  display: flex;
  gap: 5px;
  margin-bottom: 8px;
}

.template-palette i {
  display: block;
  width: 14px;
  height: 14px;
  border: 1px solid rgba(10, 30, 80, 0.12);
  border-radius: 999px;
  background: var(--dot);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.template-choice-copy strong,
.template-choice-copy small,
.template-choice-copy > span:not(.template-palette) {
  display: block;
}

.template-choice-copy strong {
  color: var(--ink);
  font-size: 12px;
}

.template-choice-copy small,
.template-choice-copy > span:not(.template-palette) {
  margin-top: 2px;
  color: var(--ink-50);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
}

@media (min-width: 760px) {
  .template-card-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
  }

  .template-choice {
    padding: 10px;
  }

  .template-choice-preview {
    border-radius: 14px;
  }

  .template-preview-text {
    max-width: 150px;
  }

  .template-preview-text small,
  .template-preview-text em {
    font-size: 8px;
  }

  .template-preview-text strong {
    font-size: 21px;
  }

  .template-preview-location {
    font-size: 9px;
  }

  .template-preview-cta {
    padding: 6px 11px;
    font-size: 8px;
  }

  .template-choice-copy strong {
    font-size: 13px;
  }
}

.settings-group-label {
  margin: 8px 0 0 2px;
  color: var(--ink-50);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.settings-list .settings-group-label:first-child {
  margin-top: 0;
}

.settings-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  min-height: 68px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
  color: var(--ink);
  padding: 12px 14px;
  text-align: left;
  box-shadow: 0 1px 0 var(--line);
}

.settings-toggle strong,
.settings-toggle small {
  display: block;
}

.settings-toggle.is-disabled,
.settings-toggle:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.key-action-fixed {
  cursor: default;
}

.key-action-required {
  flex: none;
  border-radius: 999px;
  background: var(--ivory);
  color: var(--ink-50);
  padding: 7px 9px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.settings-toggle small {
  margin-top: 3px;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

.toggle-switch {
  position: relative;
  flex: none;
  width: 50px;
  height: 30px;
  border-radius: 999px;
  background: var(--ivory);
  box-shadow: inset 0 0 0 1px var(--line);
  transition: background 180ms ease;
}

.toggle-switch i {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: var(--white);
  box-shadow: 0 4px 10px -5px rgba(10, 30, 80, 0.6);
  transition: transform 180ms ease;
}

.toggle-switch.is-on {
  background: var(--ink);
}

.toggle-switch.is-on i {
  transform: translateX(20px);
}

.guest-table {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.guest-status-filters {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  overflow-x: auto;
  padding: 2px 0;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.guest-status-filters::-webkit-scrollbar {
  display: none;
}

.guest-status-filter {
  flex: 0 0 auto;
  min-height: 32px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink-50);
  padding: 5px 12px;
  font-family: "Hanken Grotesk", system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.guest-status-filter:hover,
.guest-status-filter.is-active {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--white);
}

.guest-empty {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 18px;
}

.guest-empty strong {
  color: var(--ink);
}

.guest-empty p {
  margin: 3px 0 0;
}

[data-guest-row].is-hidden,
[data-guest-empty].is-hidden,
[data-personal-invite-row].is-hidden,
[data-personal-invite-empty].is-hidden {
  display: none;
}

.guest-row {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 12px;
  min-height: 86px;
  padding: 12px 146px 12px 14px;
}

.guest-row-copy {
  min-width: 0;
}

.guest-party-summary {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.guest-row-actions {
  position: absolute;
  top: 12px;
  right: 12px;
  bottom: 12px;
  display: grid;
  align-content: space-between;
  justify-items: end;
}

.guest-row-actions .status-pill {
  position: static;
}

.guest-row-button-group {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.guest-edit-button {
  display: inline-grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  box-shadow: 0 1px 0 rgba(235, 227, 213, 0.72);
}

.guest-edit-button .icon {
  width: 14px;
  height: 14px;
}

.guest-edit-button:hover {
  border-color: rgba(10, 30, 80, 0.24);
  transform: translateY(-1px);
}

.guest-invite-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 30px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
  padding: 0 10px;
  font-size: 10px;
  font-weight: 800;
  box-shadow: 0 1px 0 rgba(235, 227, 213, 0.72);
  white-space: nowrap;
}

.guest-invite-button .icon {
  width: 13px;
  height: 13px;
}

.guest-invite-button:hover {
  border-color: rgba(10, 30, 80, 0.24);
  transform: translateY(-1px);
}

.status-pill {
  position: absolute;
  top: 16px;
  right: 14px;
  border-radius: 999px;
  background: var(--status-bg);
  color: var(--status);
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  white-space: nowrap;
}

.search-field,
.field {
  min-height: 46px;
  padding: 0 14px;
}

.field:disabled {
  background: var(--ivory);
  color: var(--ink-50);
}

@media (min-width: 760px) {
  .welcome-base-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1040px) {
  .welcome-editor-layout {
    grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
    align-items: start;
  }

  .welcome-editor-preview-column {
    order: 0;
    position: sticky;
    top: 24px;
  }
}

.host-shell .field::placeholder,
.host-shell .search-field::placeholder {
  color: var(--ink-50);
  font-style: italic;
  opacity: 0.62;
}

.multiline-field {
  min-height: 112px;
  padding: 12px 14px;
}

.media-toolbar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin: 0 0 18px;
}

.media-toolbar .copy {
  margin: 0;
}

.sort-control {
  display: grid;
  gap: 7px;
}

.sort-control select {
  width: 100%;
  min-height: 46px;
  appearance: none;
  border: 1px solid rgba(235, 227, 213, 0.95);
  border-radius: 999px;
  background:
    linear-gradient(45deg, transparent 50%, var(--ink) 50%) calc(100% - 25px) 20px / 7px 7px no-repeat,
    linear-gradient(135deg, var(--ink) 50%, transparent 50%) calc(100% - 20px) 20px / 7px 7px no-repeat,
    linear-gradient(90deg, transparent calc(100% - 54px), #e7eaf3 calc(100% - 54px)),
    var(--white);
  color: var(--ink);
  box-shadow: 0 1px 0 var(--line), 0 14px 30px -24px rgba(10, 30, 80, 0.28);
  padding: 0 66px 0 18px;
  font-size: 14px;
  font-weight: 700;
  outline: none;
}

.sort-control select:focus-visible {
  border-color: rgba(251, 90, 87, 0.54);
  box-shadow: 0 0 0 4px var(--coral-tint), 0 1px 0 var(--line);
}

.table-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.table-card {
  position: relative;
  min-height: 168px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 16px;
  text-align: left;
  box-shadow: 0 1px 0 var(--line);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.table-card.is-droppable,
.table-card.is-drag-over,
body.is-dragging-seat .table-card {
  border-color: rgba(251, 90, 87, 0.5);
  box-shadow: 0 0 0 4px var(--coral-tint), 0 1px 0 var(--line);
}

.table-card.is-drag-over {
  transform: translateY(-2px);
}

.table-delete-button {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.88);
  color: var(--ink-50);
  box-shadow: 0 10px 22px -18px rgba(10, 30, 80, 0.7);
}

.table-delete-button:hover,
.table-delete-button:focus-visible {
  border-color: rgba(251, 90, 87, 0.42);
  background: var(--coral-tint);
  color: var(--coral);
}

.table-delete-button .icon {
  width: 15px;
  height: 15px;
}

.table-name-row {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
}

.table-name-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.table-name-edit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink-50);
}

.table-name-edit-button:hover,
.table-name-edit-button:focus-visible {
  color: var(--coral);
  border-color: rgba(251, 90, 87, 0.38);
  background: var(--coral-tint);
}

.table-name-edit-button .icon {
  width: 14px;
  height: 14px;
}

.table-details-edit {
  display: grid;
  gap: 10px;
  margin-top: 2px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--ivory);
}

.table-edit-field {
  display: grid;
  gap: 5px;
}

.table-edit-field > span {
  color: var(--ink-50);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.table-name-input,
.table-capacity-input {
  min-width: 0;
  width: 100%;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  padding: 0 12px;
  font-size: 15px;
  font-weight: 800;
  outline: none;
}

.table-name-input:focus,
.table-capacity-input:focus {
  border-color: rgba(251, 90, 87, 0.54);
  box-shadow: 0 0 0 3px var(--coral-tint);
}

.table-capacity-stepper {
  display: grid;
  grid-template-columns: 30px minmax(36px, 1fr) 30px;
  align-items: center;
  gap: 5px;
}

.table-capacity-stepper button {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
}

.table-capacity-stepper button:hover,
.table-capacity-stepper button:focus-visible {
  border-color: rgba(251, 90, 87, 0.4);
  color: var(--coral);
}

.table-capacity-stepper .icon {
  width: 14px;
  height: 14px;
}

.table-capacity-input {
  height: 32px;
  padding: 0 6px;
  text-align: center;
  font-family: "Questrial", "Hanken Grotesk", system-ui, sans-serif;
  font-size: 17px;
  font-weight: 400;
  appearance: textfield;
}

.table-capacity-input::-webkit-inner-spin-button,
.table-capacity-input::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

.table-edit-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.table-edit-cancel,
.table-edit-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.table-edit-cancel {
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
}

.table-edit-save {
  gap: 5px;
  border: 0;
  background: var(--ink);
  color: var(--white);
}

.table-edit-save .icon {
  width: 14px;
  height: 14px;
}

.table-circle {
  display: grid;
  place-items: center;
  width: 70px;
  height: 70px;
  margin: 0 auto 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-family: "Questrial", "Hanken Grotesk", system-ui, sans-serif;
  font-size: 28px;
  font-weight: 400;
}

@media (max-width: 620px) {
  .host-shell .table-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .host-shell .table-card {
    min-height: 132px;
    border-radius: 14px;
    padding: 11px 9px;
  }

  .host-shell .table-card:has(.table-details-edit) {
    grid-column: 1 / -1;
    min-height: 0;
  }

  .host-shell .table-circle {
    width: 46px;
    height: 46px;
    margin-bottom: 7px;
    font-size: 20px;
  }

  .host-shell .table-delete-button {
    top: 8px;
    right: 8px;
    width: 30px;
    height: 30px;
  }

  .host-shell .table-name-row {
    min-height: 26px;
    gap: 4px;
  }

  .host-shell .table-name-row strong {
    font-size: 13px;
    line-height: 1.2;
  }

  .host-shell .table-name-edit-button {
    width: 26px;
    height: 26px;
  }

  .host-shell .table-card > .muted {
    font-size: 11px;
    line-height: 1.25;
  }

  .host-shell .table-card > .progress-track {
    margin-top: 7px !important;
  }
}

.unseated-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.guest-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--ivory);
  padding: 8px 8px 8px 13px;
  color: var(--ink-80);
  font-size: 12px;
  font-weight: 700;
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.guest-chip:active {
  cursor: grabbing;
}

.guest-chip strong {
  display: inline-grid;
  min-width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 999px;
  background: var(--white);
  color: var(--coral);
  font-size: 12px;
  box-shadow: inset 0 0 0 1px var(--line);
}

.guest-chip.is-selected {
  border-color: rgba(251, 90, 87, 0.5);
  background: var(--coral-tint);
  color: var(--coral);
  box-shadow: 0 0 0 3px rgba(253, 235, 234, 0.8);
}

.seat-drag-ghost {
  position: fixed;
  z-index: 100;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
  padding: 10px 10px 10px 15px;
  font-size: 12px;
  font-weight: 800;
  pointer-events: none;
  transform: translate(-50%, -50%);
  box-shadow: 0 18px 34px -16px rgba(10, 30, 80, 0.65);
}

.seat-drag-ghost strong {
  display: inline-grid;
  min-width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 999px;
  background: var(--coral);
  color: var(--white);
}

.table-sheet-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.table-sheet-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
  padding: 12px;
  box-shadow: 0 1px 0 var(--line);
}

.table-sheet-row strong,
.table-sheet-row span {
  display: block;
}

.table-sheet-row span {
  margin-top: 2px;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 700;
}

.table-remove-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--coral-tint);
  color: var(--coral);
  padding: 0 12px;
  font-size: 12px;
  font-weight: 800;
}

.table-remove-button .icon {
  width: 14px;
  height: 14px;
}

.table-empty {
  border: 1px dashed var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.55);
  color: var(--ink-50);
  padding: 18px;
  text-align: center;
}

.modal-sheet.timetable-modal {
  width: min(100%, 720px);
  min-width: 0;
  max-width: 100vw;
  overflow-x: hidden;
}

.timetable-editor-list {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.timetable-editor-row {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 14px;
  padding-top: 58px;
  box-shadow: 0 1px 0 var(--line);
}

.timetable-editor-row label,
.timetable-editor-row .timetable-field {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.timetable-editor-row > * {
  min-width: 0;
  max-width: 100%;
}

.timetable-editor-row input[type="time"] {
  display: block;
  inline-size: 100%;
  min-inline-size: 0;
  max-inline-size: 100%;
}

.timeslot-drag-handle {
  position: absolute;
  top: 18px;
  left: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink-50);
  cursor: grab;
}

.timeslot-drag-handle:active {
  cursor: grabbing;
}

.timeslot-drag-handle .icon {
  width: 17px;
  height: 17px;
}

.timetable-editor-row.is-dragging {
  opacity: 0.55;
}

.timetable-editor-row.is-drag-over {
  border-color: rgba(10, 30, 80, 0.45);
  box-shadow: 0 0 0 4px #e7eaf3, 0 1px 0 var(--line);
}

.timetable-editor-row .table-remove-button {
  position: absolute;
  top: 18px;
  right: 18px;
  width: max-content;
}

.timetable-editor-row .table-remove-button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.curation-grid {
  columns: 180px;
  column-gap: 12px;
}

.host-media-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.host-media-grid > .empty-album-card {
  grid-column: 1 / -1;
  display: grid;
  justify-items: start;
  gap: 12px;
  margin: 8px 0 0;
}

.album-manager {
  margin-bottom: 16px;
  padding: 18px;
}

.album-manager-grid {
  display: grid;
  gap: 12px;
}

.album-description-field {
  display: block;
}

.album-description-field .multiline-field {
  min-height: 84px;
}

.album-manager-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 14px;
}

.organise-albums-button {
  width: 100%;
}

.host-media-filter-grid,
.host-media-bulk-bar,
.host-media-delete-bar {
  display: grid;
  gap: 10px;
}

.host-media-filter-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}

.host-media-filter-grid label {
  min-width: 0;
}

.host-media-filter-grid .settings-select {
  min-height: 44px;
  padding-left: 14px;
  font-size: 13px;
}

.host-media-bulk-bar,
.host-media-delete-bar {
  grid-template-columns: 1fr;
  align-items: end;
  margin: 0 0 14px;
  padding: 14px;
}

.host-media-bulk-bar strong,
.host-media-delete-bar strong {
  color: var(--ink);
  font-size: 14px;
}

.host-media-delete-bar {
  border-color: rgba(255, 91, 91, 0.24);
  background: linear-gradient(180deg, var(--white), var(--coral-tint));
}

.host-media-delete-bar .copy {
  margin: 0;
  font-size: 13px;
}

.danger-action-button {
  background: var(--coral);
}

.album-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.album-overview-card {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  padding: 16px;
  text-align: left;
}

.album-overview-select {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 76px;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  text-align: left;
}

.album-overview-select:focus-visible {
  border-radius: 14px;
  outline: 2px solid var(--ink);
  outline-offset: 5px;
}

.album-download-button {
  width: 100%;
  min-height: 40px;
  border-radius: 14px;
  font-size: 12px;
}

.album-download-button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}

.album-overview-card.is-active {
  border-color: rgba(10, 30, 80, 0.32);
  box-shadow: 0 0 0 3px rgba(10, 30, 80, 0.06);
}

.album-overview-copy {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.album-overview-card strong,
.album-overview-card small,
.album-overview-card em {
  display: block;
}

.album-overview-card small,
.album-overview-card em {
  color: var(--ink-50);
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
}

.album-preview-strip {
  display: grid;
  grid-template-columns: repeat(2, 34px);
  grid-template-rows: repeat(2, 34px);
  gap: 4px;
  justify-content: end;
}

.album-preview-thumb {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  overflow: hidden;
  border-radius: 9px;
  background: var(--bg, var(--ivory));
  color: var(--ink-50);
}

.album-preview-thumb img,
.album-preview-thumb video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.album-preview-thumb .icon {
  width: 15px;
  height: 15px;
}

.danger-button {
  color: var(--coral);
}

.host-media-item {
  position: relative;
  display: grid;
  gap: 7px;
  min-width: 0;
}

.host-media-item.is-selected .host-media-tile {
  box-shadow: 0 0 0 3px rgba(110, 147, 109, 0.26);
}

.host-media-item.is-delete-selected .host-media-tile {
  box-shadow: 0 0 0 3px rgba(255, 91, 91, 0.24);
}

.host-media-select-button,
.host-media-delete-button {
  position: absolute;
  z-index: 4;
  top: 8px;
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid rgba(255, 253, 250, 0.75);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.86);
  color: rgba(10, 30, 80, 0.32);
  box-shadow: 0 10px 20px -14px rgba(10, 30, 80, 0.8);
}

.host-media-select-button {
  left: 8px;
}

.host-media-delete-button {
  right: 8px;
  color: rgba(255, 91, 91, 0.72);
}

.host-media-select-button .icon,
.host-media-delete-button .icon {
  width: 17px;
  height: 17px;
  stroke-width: 2.8;
}

.host-media-select-button.is-selected {
  border-color: rgba(255, 253, 250, 0.72);
  background: var(--sage);
  color: var(--white);
  box-shadow: 0 12px 22px -12px rgba(45, 80, 48, 0.8), inset 0 0 0 1px rgba(255, 253, 250, 0.48);
}

.host-media-delete-button.is-selected {
  border-color: rgba(255, 253, 250, 0.72);
  background: var(--coral);
  color: var(--white);
  box-shadow: 0 12px 22px -12px rgba(148, 39, 39, 0.8), inset 0 0 0 1px rgba(255, 253, 250, 0.48);
}

.host-media-tile {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  border: 0;
  border-radius: 12px;
  background: var(--bg);
  padding: 0;
  width: 100%;
}

.host-media-tile::after {
  position: absolute;
  inset: 48% 0 0;
  content: "";
  background: linear-gradient(180deg, rgba(10, 30, 80, 0), rgba(10, 30, 80, 0.58));
}

.host-media-placeholder {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-content: center;
  gap: 8px;
  color: var(--ink);
  background: linear-gradient(135deg, var(--coral-tint), var(--ivory));
  font-size: 13px;
  font-weight: 800;
}

.host-media-placeholder .icon {
  width: 30px;
  height: 30px;
  margin: 0 auto;
  color: var(--coral);
}

.media-status-label {
  position: absolute;
  z-index: 2;
  right: 8px;
  bottom: 8px;
  left: 8px;
  color: var(--white);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-align: left;
  text-transform: uppercase;
}

.album-membership-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink-50);
  padding: 0 10px;
  font-size: 11px;
  font-weight: 800;
}

.album-membership-button.is-in-album {
  border-color: rgba(124, 154, 119, 0.4);
  background: #ecf1ea;
  color: var(--sage);
}

.curate-card {
  position: relative;
  display: block;
  width: 100%;
  height: var(--h);
  margin-bottom: 12px;
  break-inside: avoid;
  overflow: hidden;
  border: 0;
  border-radius: 14px;
  background: var(--bg);
  padding: 0;
}

.curate-mark {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: rgba(10, 30, 80, 0.54);
  color: var(--white);
}

.curate-card.is-curated .curate-mark {
  background: var(--coral);
}

.modal-backdrop {
  position: fixed;
  z-index: 50;
  inset: 0 0 auto;
  height: var(--app-stable-height, 100vh);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: end;
  overflow-x: hidden;
  background: rgba(10, 30, 80, 0.42);
}

.modal-sheet {
  width: min(100%, 520px);
  min-width: 0;
  max-width: 100%;
  max-height: var(--app-modal-max-height, 92vh);
  overflow-y: auto;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  margin: 0 auto;
  border-radius: 24px 24px 0 0;
  background: var(--paper);
  padding: 24px 20px calc(24px + env(safe-area-inset-bottom));
  box-shadow: 0 -24px 48px -28px rgba(10, 30, 80, 0.7);
}

.modal-sheet label {
  display: block;
  margin-top: 16px;
}

.guest-member-fields {
  min-width: 0;
  margin: 18px 0 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 14px;
}

.guest-member-fields legend {
  padding: 0 6px;
}

.guest-member-fields > .muted {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.45;
}

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

.guest-member-field,
.guest-member-field .field {
  min-width: 0;
}

.guest-member-field {
  margin-top: 0 !important;
}

.rsvp-member-list {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.rsvp-member-card {
  display: grid;
  gap: 14px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 14px;
}

.rsvp-member-card label {
  min-width: 0;
  margin-top: 0;
}

.rsvp-member-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
}

.rsvp-member-heading .avatar {
  width: 36px;
  height: 36px;
}

@media (max-width: 620px) {
  .guest-member-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .guest-member-fields,
  .rsvp-member-card {
    padding: 12px;
  }
}

.modal-action-stack {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

.modal-action-stack .button {
  width: 100%;
}

.calendar-modal {
  width: min(100%, 560px);
}

.calendar-event-summary {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  color: var(--ink);
}

.calendar-event-summary strong {
  font-size: 19px;
}

.calendar-event-summary span {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: var(--ink-50);
  line-height: 1.45;
}

.calendar-event-summary svg,
.calendar-choice-button svg,
.calendar-confirmation-icon svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

.calendar-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.calendar-choice-button {
  min-width: 0;
  min-height: 92px;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  line-height: 1.25;
}

.calendar-modal-back,
.calendar-confirmation-modal .button {
  width: 100%;
  margin-top: 12px;
}

.calendar-confirmation-modal {
  text-align: center;
}

.calendar-confirmation-modal p {
  margin: 12px 0 18px;
  color: var(--ink-50);
  line-height: 1.55;
}

.calendar-confirmation-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--blush);
  color: var(--coral);
}

@media (max-width: 480px) {
  .calendar-choice-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .calendar-choice-button {
    min-height: 62px;
    flex-direction: row;
  }
}

.host-media-mobile-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 0.9fr);
  gap: 7px;
  margin: 0 0 8px;
}

.host-media-tool-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
  color: var(--ink);
  padding: 8px 7px;
  box-shadow: 0 1px 0 var(--line);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.host-media-tool-button.is-active {
  border-color: rgba(110, 147, 109, 0.42);
  background: rgba(225, 237, 223, 0.9);
  color: #355f3a;
}

.host-media-tool-button .icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
}

.host-media-tool-button strong {
  display: grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 999px;
  background: var(--ivory);
  font-size: 11px;
}

.host-media-tool-button.is-active strong {
  background: var(--white);
}

.host-media-desktop-filters,
.host-media-albums-header {
  display: none;
}

.host-media-results-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 700;
}

.host-media-results-line span {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.host-media-results-line button {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: var(--coral);
  padding: 3px 0;
  font-size: 12px;
  font-weight: 800;
}

.host-media-selection-bar {
  position: fixed;
  z-index: 38;
  right: 14px;
  bottom: calc(78px + env(safe-area-inset-bottom));
  left: 14px;
  display: grid;
  grid-template-columns: auto repeat(5, minmax(38px, 1fr));
  align-items: center;
  gap: 4px;
  min-height: 58px;
  border: 1px solid rgba(10, 30, 80, 0.2);
  border-radius: 18px;
  background: rgba(255, 253, 250, 0.96);
  padding: 7px;
  box-shadow: 0 18px 44px -20px rgba(10, 30, 80, 0.72);
  backdrop-filter: blur(16px);
}

.host-media-selection-bar strong {
  display: grid;
  min-width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 12px;
  background: var(--ink);
  color: var(--white);
  font-size: 13px;
}

.host-media-selection-bar strong span {
  display: none;
}

.host-media-selection-bar button {
  display: grid;
  min-width: 0;
  height: 40px;
  place-items: center;
  border: 0;
  border-radius: 12px;
  background: var(--ivory);
  color: var(--ink);
  padding: 0;
}

.host-media-selection-bar button.is-danger {
  background: var(--coral-tint);
  color: var(--coral);
}

.host-media-selection-bar button.is-clear {
  background: transparent;
  color: var(--ink-50);
}

.host-media-selection-bar button span {
  display: none;
}

.host-media-selection-bar .icon {
  width: 18px;
  height: 18px;
}

.host-media-page.has-selection .host-media-grid {
  padding-bottom: 84px;
}

.host-media-sheet {
  display: grid;
  gap: 18px;
  width: min(100%, 560px);
  max-height: min(82vh, 720px);
}

.host-media-sheet .section-head {
  margin: 0;
}

.host-media-sheet .section-head h2,
.host-media-action-sheet h2 {
  margin: 3px 0 0;
  color: var(--ink);
  font-family: var(--display);
  font-size: 32px;
  font-weight: 500;
}

.host-media-sheet .host-media-filter-grid {
  grid-template-columns: 1fr;
}

.host-media-sheet-actions {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 10px;
}

.host-media-action-sheet > .button {
  width: 100%;
}

.plan-usage-card--media {
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
  margin: 0 0 10px;
  padding: 10px 14px;
}

.plan-usage-card--media .overline {
  font-size: 9px;
}

.plan-usage-card--media h2 {
  font-size: 15px;
}

.plan-usage-card--media p {
  font-size: 12px;
}

.plan-usage-card--media .upload-usage-meter {
  grid-column: 1;
  height: 5px;
}

.media-upload-result-modal {
  width: min(100%, 540px);
}

.media-upload-progress-backdrop {
  cursor: wait;
}

.media-upload-progress-modal {
  width: min(100%, 540px);
}

.media-upload-progress-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 18px;
  border-radius: 999px;
  background: var(--coral-tint, #fdebea);
  color: var(--coral);
}

.media-upload-progress-icon svg {
  width: 25px;
  height: 25px;
}

.media-upload-progress-modal .copy {
  margin: 10px 0 0;
}

.media-upload-progress-track {
  overflow: hidden;
  height: 12px;
  margin-top: 24px;
  border-radius: 999px;
  background: var(--ivory);
}

.media-upload-progress-track span {
  display: block;
  height: 100%;
  min-width: 2px;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--coral), var(--gold));
  transition: width 160ms ease;
}

.media-upload-progress-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  margin-top: 10px;
  color: var(--ink-50);
}

.media-upload-progress-meta span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.media-upload-progress-meta strong {
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.media-upload-progress-note {
  margin: 24px 0 0;
  color: var(--ink-50);
  font-size: 13px;
  line-height: 1.45;
}

.media-upload-result-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 18px;
  border-radius: 999px;
}

.media-upload-result-icon.is-success {
  background: #e7efe5;
  color: #52734e;
}

.media-upload-result-icon.is-error {
  background: var(--coral-tint, #fdebea);
  color: var(--coral);
}

.media-upload-result-icon svg {
  width: 25px;
  height: 25px;
}

.media-upload-result-copy {
  display: grid;
  gap: 8px;
  margin-top: 16px;
  color: var(--ink-70, var(--ink-50));
}

.media-upload-result-copy p,
.media-upload-failure p,
.media-upload-contact,
.media-upload-extra {
  margin: 0;
}

.media-upload-failures {
  display: grid;
  gap: 10px;
  margin-top: 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  padding: 16px;
}

.media-upload-failure {
  display: grid;
  gap: 2px;
}

.media-upload-failure + .media-upload-failure {
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.media-upload-failure span {
  overflow-wrap: anywhere;
  color: var(--ink);
  font-weight: 700;
}

.media-upload-failure p,
.media-upload-extra,
.media-upload-contact {
  color: var(--ink-50);
  line-height: 1.45;
}

.media-upload-contact {
  margin-top: 16px;
}

.danger-primary {
  background: var(--coral);
}

.guest-lookup-sheet {
  width: min(100%, 560px);
}

.guest-lookup-results {
  display: grid;
  gap: 8px;
  max-height: 310px;
  overflow-y: auto;
  margin-top: 14px;
  padding-right: 2px;
}

.guest-lookup-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 64px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--white);
  color: var(--ink);
  padding: 10px 12px;
  text-align: left;
}

.guest-lookup-row strong,
.guest-lookup-row small {
  display: block;
}

.guest-lookup-row small {
  margin-top: 2px;
  color: var(--ink-50);
  font-size: 13px;
  font-weight: 700;
}

.guest-lookup-row:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 2px;
}

.guest-lookup-row:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

.shared-access-pin-input {
  text-align: center;
  font-size: 24px;
}

.shared-guest-identity {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
  padding: 10px 12px;
}

.shared-guest-identity > span:first-child {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: var(--blush);
  color: var(--coral);
}

.shared-guest-identity > span:nth-child(2) {
  display: grid;
  min-width: 0;
}

.shared-guest-identity small {
  color: var(--ink-50);
  font-size: 11px;
}

.shared-guest-identity button {
  border: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 540px) {
  .shared-access-pin-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .shared-access-host-heading,
  .shared-access-session-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .shared-guest-identity {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .shared-guest-identity button {
    grid-column: 2;
    justify-self: start;
  }
}

.guest-lookup-empty {
  border: 1px dashed var(--line);
  border-radius: 16px;
  color: var(--ink-50);
  padding: 18px;
  text-align: center;
}

.guest-seating-result {
  width: min(100%, 520px);
}

.guest-seating-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 20px;
  margin: 20px 0;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  padding: 16px;
}

.guest-seating-summary span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.guest-seating-summary small {
  color: var(--ink-50);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.guest-seating-summary strong {
  overflow-wrap: anywhere;
  color: var(--ink);
}

.guest-seating-table {
  grid-column: 1 / -1;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.guest-seating-table strong {
  font-family: var(--display);
  font-size: clamp(28px, 7vw, 40px);
  font-weight: 500;
}

.field-label {
  display: block;
  margin-bottom: 8px;
  color: var(--ink-50);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.field-optional {
  color: var(--coral);
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}


.field-with-inline-help {
  position: relative;
  display: block;
  min-width: 0;
}

.field-with-inline-help > .field {
  padding-right: 54px;
}

.field-inline-help {
  position: absolute;
  top: 50%;
  right: 9px;
  z-index: 8;
  transform: translateY(-50%);
}

.field-inline-help summary {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--ivory);
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}

.field-inline-help summary::-webkit-details-marker {
  display: none;
}

.field-inline-help summary .icon {
  width: 16px;
  height: 16px;
}

.field-inline-help summary:hover,
.field-inline-help summary:focus-visible,
.field-inline-help[open] summary {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--white);
  outline: none;
}

.field-inline-help-popover {
  position: absolute;
  right: 0;
  bottom: calc(100% + 10px);
  display: none;
  width: min(270px, calc(100vw - 64px));
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--ink);
  box-shadow: 0 12px 28px rgba(8, 34, 81, 0.18);
  color: var(--white);
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
}

.field-inline-help:hover .field-inline-help-popover,
.field-inline-help:focus-within .field-inline-help-popover,
.field-inline-help[open] .field-inline-help-popover {
  display: block;
}
.choice-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.choice {
  min-height: 50px;
  border: 1.5px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}

.choice.is-active {
  border-color: var(--coral);
  background: var(--coral-tint);
  color: var(--coral);
}

.stepper {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
  padding: 8px 14px;
}

.stepper button {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
}

.stepper strong {
  min-width: 18px;
  text-align: center;
  font-size: 20px;
}

.toast {
  position: fixed;
  z-index: 80;
  right: 20px;
  bottom: 94px;
  left: 20px;
  max-width: max-content;
  margin: 0 auto;
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
  padding: 12px 18px;
  font-size: 13px;
  font-weight: 700;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity 220ms ease, transform 220ms ease;
}

.toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes pop {
  0% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.18);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes pulse {
  70% {
    box-shadow: 0 0 0 8px rgba(251, 90, 87, 0);
  }
}

@keyframes eventHeroTextReveal {
  0% {
    opacity: 0;
    transform: translateY(14px);
    filter: blur(3px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

@keyframes eventHeroButtonReveal {
  0% {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

@media (min-width: 760px) {
  .guest-shell {
    padding-bottom: 24px;
  }

  .content-pad {
    padding-inline: 32px;
  }

  .rsvp-cta {
    width: max-content;
    min-width: 180px;
  }

  .media-toolbar {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 12px;
  }

  .organise-albums-button {
    width: max-content;
    min-width: 240px;
  }

  .host-media-filter-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .host-media-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
  }

  .timetable-editor-row {
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr) minmax(0, 1.35fr);
    align-items: end;
  }

  .stats-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .explore-button-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-grid,
  .share-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  }

  .host-share-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .meal-host-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .album-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .modal-backdrop {
    align-items: center;
  }

  .modal-sheet {
    border-radius: 24px;
  }
}

@media (min-width: 1100px) {
  .topbar {
    display: flex;
  }

  .guest-shell {
    padding-bottom: 0;
  }

  .guest-shell > .mobile-brand-bar {
    display: none;
  }

  .guest-shell > .mobile-tabs {
    display: none;
  }

  .guest-mobile-drawer {
    display: none;
  }

  .host-preview-return-pill {
    top: 82px;
    left: max(18px, env(safe-area-inset-left));
  }

  .guest-upload-shortcut {
    display: none;
  }
}

@media (min-width: 980px) {
  .host-shell {
    padding-bottom: 0;
  }

  .host-shell > .mobile-tabs {
    display: none;
  }

  .host-shell > .mobile-brand-bar {
    display: none;
  }

  .host-mobile-drawer {
    display: none;
  }

  .host-header--overview .host-header-shortcuts {
    display: none;
  }

  .share-song-cta {
    display: none;
  }

  .host-media-mobile-tools {
    display: none;
  }

  .host-media-desktop-filters {
    display: grid;
    margin-bottom: 8px;
  }

  .host-media-albums-header {
    display: inline-flex;
  }

  .host-media-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
  }

  .host-media-selection-bar {
    position: static;
    grid-template-columns: auto repeat(4, minmax(92px, auto)) 42px;
    justify-content: start;
    width: 100%;
    min-height: 54px;
    margin-top: 12px;
    border-radius: 14px;
    padding: 6px 8px;
    box-shadow: 0 12px 28px -24px rgba(10, 30, 80, 0.7);
  }

  .host-media-selection-bar strong {
    grid-auto-flow: column;
    gap: 4px;
    width: auto;
    padding-inline: 12px;
  }

  .host-media-selection-bar strong span,
  .host-media-selection-bar button span {
    display: inline;
  }

  .host-media-selection-bar button {
    grid-auto-flow: column;
    justify-content: center;
    gap: 7px;
    padding-inline: 12px;
    font-size: 12px;
    font-weight: 800;
  }

  .host-media-page.has-selection .host-media-grid {
    padding-bottom: 0;
  }

  .plan-usage-card--media {
    grid-template-columns: minmax(0, 1fr) minmax(180px, 0.55fr);
    padding-block: 9px;
  }

  .plan-usage-card--media .upload-usage-meter {
    grid-column: 2;
  }

  .host-layout {
    display: grid;
    grid-template-columns: 196px minmax(0, 1fr);
    gap: 24px;
    padding: 34px 32px 48px;
  }

  .host-rail {
    position: sticky;
    top: 28px;
    display: block;
    align-self: start;
    min-height: calc(100vh - 56px);
    border-right: 1px solid var(--line);
    padding: 12px 16px 0 0;
  }

  .rail-nav {
    display: grid;
    gap: 6px;
  }

  .rail-nav button {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--ink);
    padding: 0 12px;
    font-weight: 700;
    text-align: left;
  }

  .rail-nav button.is-locked {
    color: var(--ink-50);
  }

  .rail-nav .nav-lock {
    margin-left: auto;
  }

  .rail-nav button.is-active {
    background: var(--coral-tint);
    color: var(--coral);
  }

  .rail-upgrade-button {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    margin-top: 12px;
    border: 1px solid rgba(255, 88, 88, 0.22);
    border-radius: 999px;
    background: var(--coral-tint);
    color: var(--coral);
    padding: 0 12px;
    font-weight: 800;
    text-align: left;
  }

  .rail-upgrade-button:hover,
  .rail-upgrade-button:focus-visible {
    border-color: rgba(255, 88, 88, 0.4);
    outline: none;
  }

  .plan-usage-card {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 220px) auto;
  }

  .plan-usage-card .upload-usage-meter {
    grid-column: auto;
  }

  .plan-usage-card--settings {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 220px) auto;
  }

  .plan-usage-card--media {
    grid-template-columns: minmax(0, 1fr) minmax(180px, 0.55fr);
  }

  .plan-usage-card--media .upload-usage-meter {
    grid-column: 2;
  }

  .plan-upgrade-button {
    width: auto;
  }

  .host-content {
    padding-top: 36px;
  }
}

@media (min-width: 1280px) {
  .host-media-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .event-hero--home.event-hero--route-photography,
  .event-hero--home.event-hero--route-duotone {
    height: 288px;
    min-height: 288px;
    max-height: 288px;
  }

  .info-card .map-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .info-card .map-button {
    min-width: 0;
    min-height: 38px;
    padding-inline: 8px;
    font-size: 12px;
    gap: 5px;
    white-space: nowrap;
  }

  .info-card .map-button svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
  }

  .host-header--overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .host-header--overview .host-header-primary,
  .host-header--overview .host-header-secondary,
  .host-header--overview .host-header-shortcuts {
    width: 100%;
  }

  .host-header--overview .host-header-primary .button,
  .host-header--overview .host-header-secondary .button,
  .host-header--overview .host-header-shortcuts .button {
    width: 100%;
    min-width: 0;
    height: 44px;
    min-height: 44px;
    max-width: none;
    padding-inline: 10px;
  }

  .host-header--overview .host-header-shortcuts .button {
    gap: 6px;
    padding-inline: 6px;
    font-size: 12px;
  }

  .plan-usage-card--overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .plan-usage-card--overview .plan-usage-copy,
  .plan-usage-card--overview .upload-usage-meter {
    grid-column: 1 / -1;
  }

  .plan-usage-card--overview:has(.upload-usage-unlimited) .plan-upgrade-button {
    grid-column: 1 / -1;
    grid-row: auto;
    justify-self: stretch;
  }

  .plan-usage-card--overview .upload-usage-unlimited {
    grid-column: 2;
    grid-row: 2;
    justify-self: end;
  }

  .plan-usage-card--overview:not(:has(.plan-upgrade-button)) .upload-usage-unlimited {
    grid-column: 1 / -1;
  }

  .host-header-main {
    align-items: start;
    gap: 10px;
  }

  .host-header-primary {
    align-items: flex-start;
  }

  .host-header-primary .button {
    min-width: 0;
    max-width: 148px;
    min-height: 44px;
    padding-inline: 12px;
    line-height: 1.12;
    text-align: center;
    white-space: normal;
  }

  .host-header-main:has(.host-account-bar) {
    grid-template-columns: 1fr;
  }

  .host-header-primary:has(.host-account-bar) {
    justify-content: stretch;
  }

  .host-header-primary .host-account-bar {
    width: 100%;
  }

  .settings-section-toggle {
    align-items: center;
    padding: 14px;
  }

  .settings-section-heading strong {
    font-size: 24px;
  }

  .settings-section-meta {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    gap: 0;
    justify-content: center;
    padding: 0;
    letter-spacing: 0;
    line-height: 0;
  }

  .settings-section-meta-label {
    display: none;
  }

  .album-overview-grid {
    grid-template-columns: 1fr;
  }

  .album-manager-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .album-manager-actions > .muted {
    grid-column: 1 / -1;
    min-width: 0;
  }

  .album-manager-actions > .button {
    width: 100%;
    min-width: 0;
    gap: 6px;
    padding-inline: 8px;
    font-size: 13px;
  }

  .album-manager-actions > .button .icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
  }

  body:has(.event-hero--welcome),
  .app-frame:has(.event-hero--welcome) {
    height: 100svh;
    height: 100dvh;
    overflow: hidden;
  }

  body:has(.event-hero--welcome) .app-frame {
    position: fixed;
    inset: 0;
    width: 100%;
    min-height: 0;
  }

  .event-hero--welcome {
    height: 100svh;
    height: 100dvh;
    min-height: 100svh;
    min-height: 100dvh;
    max-height: 100svh;
    max-height: 100dvh;
  }

  .event-hero--welcome.event-hero--route-photography .event-hero-photo,
  .event-hero--welcome.event-hero--route-duotone .event-hero-photo {
    min-height: 100svh;
  }

  .event-hero--welcome .event-hero-copy {
    right: 20px;
    bottom: max(28px, env(safe-area-inset-bottom));
    left: 20px;
  }

  .event-hero--welcome .event-hero-copy .display {
    margin-top: 10px;
    font-size: clamp(38px, 12vw, 58px);
  }

  .event-hero--welcome .event-hero-copy .rule-date {
    margin-top: 14px;
  }

  .event-hero--welcome .guest-welcome-button {
    margin-top: 20px;
    min-height: 52px;
  }

  .event-hero--welcome.event-hero--route-split {
    grid-template-rows: minmax(0, 46%) minmax(0, 54%);
  }

  .event-hero--welcome.event-hero--route-split .event-hero-media,
  .event-hero--welcome.event-hero--route-split .event-hero-panel {
    min-height: 0;
  }

  .event-hero--welcome.event-hero--route-split .event-hero-panel,
  .event-hero--welcome.event-hero--route-matted .event-hero-caption,
  .event-hero--welcome.event-hero--route-collage .event-hero-caption {
    padding: 18px 18px 20px;
  }

  .event-hero--welcome.event-hero--route-minimal {
    padding: 72px 22px 28px;
  }

  .event-hero--welcome .event-hero-minimal-mark {
    margin-bottom: 18px;
    padding: 14px 18px;
    font-size: 34px;
  }

  .event-hero--welcome.event-hero--route-matted {
    grid-template-rows: minmax(0, 44%) auto;
    align-content: center;
    gap: 12px;
    padding: 70px 18px 18px;
  }

  .event-hero--welcome .event-hero-mat {
    border-width: 10px;
    border-bottom-width: 20px;
    min-height: 0;
  }

  .event-hero--welcome.event-hero--route-collage {
    grid-template-rows: minmax(0, 48%) auto;
    align-content: center;
    gap: 12px;
    padding: 70px 16px 18px;
  }

  .event-hero--welcome .event-hero-collage {
    min-height: 0;
    height: 100%;
    gap: 8px;
  }

  .hero {
    min-height: 560px;
  }

  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guest-row {
    grid-template-columns: auto 1fr;
    min-height: 92px;
    padding: 12px 124px 12px 12px;
  }

  .guest-row .status-pill {
    width: max-content;
  }

  .guest-row-actions {
    top: 12px;
    right: 10px;
    bottom: 12px;
  }

  .guest-invite-button {
    padding-inline: 8px;
  }

  .invite-share-actions {
    grid-template-columns: 1fr;
  }

  .personal-invite-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .personal-invite-action {
    grid-column: 2;
    justify-self: start;
    margin-top: 2px;
  }
}

body.site-surface {
  background: #fffaf3;
}

.site-shell {
  min-height: 100vh;
  color: var(--ink);
  background: #fffaf3;
  font-family: "Hanken Grotesk", system-ui, sans-serif;
}

.site-nav {
  position: sticky;
  top: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid rgba(234, 223, 206, 0.82);
  background: rgba(255, 250, 243, 0.92);
  padding: 16px 20px;
  backdrop-filter: blur(16px);
}

.site-brand img,
.site-footer img,
.site-auth-logo img {
  width: 148px;
  height: auto;
}

.site-menu-button {
  justify-self: end;
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--ink);
}

.site-nav-links,
.site-nav-actions {
  display: none;
}

.site-nav.is-open .site-nav-links,
.site-nav.is-open .site-nav-actions {
  grid-column: 1 / -1;
  display: grid;
  gap: 10px;
}

.site-nav a,
.site-footer a,
.site-inline-link,
.site-blog-card a {
  color: var(--ink);
  font-weight: 800;
  text-decoration: none;
}

.site-nav-links a {
  border-radius: 999px;
  padding: 10px 12px;
}

.site-nav-links a.is-active {
  background: var(--coral-tint);
  color: var(--coral);
}

.site-cta,
.site-footer-cta,
.site-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  border: 1.5px solid transparent;
  border-radius: 999px;
  padding: 0 22px;
  font-weight: 900;
  text-decoration: none;
}

.site-cta,
.site-footer-cta,
.site-button-primary {
  background: var(--coral);
  color: #fff;
}

.site-button-secondary {
  background: var(--white);
  border-color: var(--line);
  color: var(--ink);
}

.site-main {
  overflow: hidden;
}

.site-hero,
.site-section,
.site-page-header,
.site-auth-shell,
.site-checkout-shell,
.site-footer {
  width: min(1120px, calc(100% - 32px));
  margin-inline: auto;
}

.site-hero {
  display: grid;
  gap: 28px;
  padding: 42px 0 34px;
}

.site-hero-copy h1,
.site-page-header h1,
.site-section h2,
.site-auth-card h1,
.site-checkout-card h1 {
  margin: 0;
  color: var(--ink);
  font-family: "Hanken Grotesk", system-ui, sans-serif;
  font-size: clamp(42px, 10vw, 86px);
  font-weight: 900;
  line-height: 0.9;
  letter-spacing: 0;
}

.site-section h2,
.site-auth-card h1,
.site-checkout-card h1 {
  font-size: clamp(34px, 7vw, 58px);
}

.site-hero-copy p,
.site-page-header p,
.site-section-head p,
.site-section p,
.site-auth-card p,
.site-checkout-card p,
.site-footer p {
  color: var(--ink-50);
  font-size: 18px;
  line-height: 1.5;
}

.site-kicker {
  margin-bottom: 12px;
  color: var(--coral);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.site-hero-actions,
.site-auth-grid {
  display: grid;
  gap: 12px;
}

.site-hero-media {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  border-radius: 28px;
  background: var(--ink);
  box-shadow: var(--shadow);
}

.site-hero-media video,
.site-auth-visual video,
.site-story-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site-hero-card {
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  display: grid;
  gap: 4px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 20px;
  background: rgba(10, 30, 80, 0.72);
  color: #fff;
  padding: 18px;
  backdrop-filter: blur(10px);
}

.site-hero-card strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 34px;
  font-weight: 500;
}

.site-section {
  padding: 48px 0;
}

.site-section-head,
.site-page-header {
  max-width: 760px;
}

.site-page-header {
  padding: 56px 0 20px;
}

.site-card-grid,
.site-plan-grid {
  display: grid;
  gap: 16px;
}

.site-card,
.site-plan-card,
.site-template-card,
.site-auth-card,
.site-checkout-card,
.site-deep-card-stack article,
.site-step,
.site-testimonials blockquote {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--white);
  padding: 24px;
  box-shadow: 0 16px 38px -26px rgba(10, 30, 80, 0.24);
}

.site-icon {
  display: inline-grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: var(--coral-tint);
  color: var(--coral);
}

.site-card h3,
.site-plan-card h3,
.site-template-card h3,
.site-step h3 {
  margin: 18px 0 8px;
  color: var(--ink);
  font-size: 24px;
}

.site-card p,
.site-plan-card p,
.site-template-card p,
.site-step p {
  margin: 0;
}

.site-split-section {
  display: grid;
  gap: 22px;
  align-items: center;
}

.site-deep-card-stack,
.site-step-list,
.site-template-groups,
.site-testimonials {
  display: grid;
  gap: 16px;
}

.site-template-groups {
  gap: 34px;
}

.site-template-strip {
  display: grid;
  gap: 16px;
  margin-top: 20px;
}

.site-template-preview {
  position: relative;
  display: grid;
  align-content: end;
  min-height: 190px;
  overflow: hidden;
  border-radius: 18px;
  background: var(--template-ground);
  color: var(--template-title);
  padding: 18px;
}

.site-template-preview::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--template-overlay);
}

.site-template-preview img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site-template-preview span,
.site-template-preview strong {
  position: relative;
  z-index: 1;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.32);
}

.site-template-preview span {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.site-template-preview strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 30px;
  font-weight: 500;
}

.site-template-preview-minimal img {
  display: none;
}

.site-template-preview-minimal::after,
.site-template-preview-matted::after {
  opacity: 0.08;
}

.site-template-preview-minimal span,
.site-template-preview-minimal strong,
.site-template-preview-matted span,
.site-template-preview-matted strong {
  color: var(--template-title);
  text-shadow: none;
}

.site-inline-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 18px;
}

.site-testimonials p {
  color: var(--ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 28px;
  line-height: 1.15;
}

.site-testimonials cite {
  color: var(--ink-50);
  font-style: normal;
  font-weight: 800;
}

.site-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
}

.site-step > span {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  font-weight: 900;
}

.site-pricing-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 16px;
}

.site-pricing-toolbar label {
  display: grid;
  gap: 8px;
  min-width: 170px;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.site-plan-card {
  position: relative;
  display: grid;
  gap: 10px;
}

.site-plan-card strong,
.site-order-summary strong {
  color: var(--ink);
  font-size: 42px;
  line-height: 1;
}

.site-plan-card.is-popular,
.site-plan-card.is-selected {
  border-color: var(--coral);
  box-shadow: 0 18px 40px -24px rgba(251, 90, 87, 0.48);
}

.site-plan-badge {
  justify-self: start;
  border-radius: 999px;
  background: var(--coral);
  color: #fff;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 900;
}

.site-plan-continue {
  width: 100%;
  margin-top: 18px;
}

.site-auth-shell,
.site-checkout-shell {
  display: grid;
  gap: 20px;
  align-items: stretch;
  min-height: 100vh;
  padding: 28px 0;
}

.site-auth-card,
.site-checkout-card {
  align-self: center;
}

.site-auth-card .field,
.site-checkout-card .field {
  width: 100%;
  margin-top: 12px;
}

.site-auth-submit {
  width: 100%;
  margin-top: 14px;
}

.site-auth-alt {
  text-align: center;
}

.site-auth-alt a {
  color: var(--coral);
  font-weight: 900;
}

.site-auth-error {
  border-radius: 16px;
  background: var(--coral-tint);
  color: var(--coral);
  padding: 12px 14px;
  font-weight: 800;
}

.site-auth-visual {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  border-radius: 28px;
  background: var(--ink);
}

.site-auth-visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 24px;
}

.site-auth-visual > div {
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  display: grid;
  gap: 4px;
  border-radius: 18px;
  background: rgba(10, 30, 80, 0.78);
  color: #fff;
  padding: 18px;
}

.site-auth-visual strong {
  font-size: 22px;
}

.site-order-summary {
  display: grid;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--ivory);
  margin: 20px 0 8px;
  padding: 18px;
}

.site-story-image {
  min-height: 420px;
  border-radius: 28px;
  box-shadow: var(--shadow);
}

.site-footer {
  display: grid;
  gap: 18px;
  border-top: 1px solid var(--line);
  padding: 36px 0 44px;
}

.site-footer nav {
  display: grid;
  gap: 10px;
}

.host-account-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 253, 250, 0.82);
  margin-bottom: 18px;
  padding: 8px 10px 8px 14px;
  color: var(--ink-50);
  font-size: 12px;
  font-weight: 800;
}

.host-header-primary .host-account-bar {
  width: min(100%, 360px);
  margin-bottom: 0;
}

.host-account-bar span,
.host-account-bar button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.host-account-bar span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.host-account-bar button {
  flex: none;
  border: 0;
  border-radius: 999px;
  background: var(--coral-tint);
  color: var(--coral);
  padding: 8px 12px;
  font-weight: 900;
}

.host-account-bar .icon {
  width: 15px;
  height: 15px;
}

@media (min-width: 760px) {
  .site-nav {
    grid-template-columns: auto 1fr auto;
    padding-inline: 36px;
  }

  .site-menu-button {
    display: none;
  }

  .site-nav-links,
  .site-nav-actions,
  .site-nav.is-open .site-nav-links,
  .site-nav.is-open .site-nav-actions {
    grid-column: auto;
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .site-nav-links {
    justify-content: center;
  }

  .site-hero {
    grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1fr);
    align-items: center;
    min-height: calc(100vh - 84px);
    padding-top: 28px;
  }

  .site-hero-actions,
  .site-auth-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-plan-grid,
  .site-template-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .site-split-section,
  .site-auth-shell,
  .site-checkout-shell {
    grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1fr);
  }

  .site-testimonials {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .site-footer {
    grid-template-columns: 1fr auto auto;
    align-items: start;
  }

  .site-footer nav {
    grid-template-columns: repeat(3, auto);
  }
}

@media (max-width: 520px) {
  .site-hero-copy h1,
  .site-page-header h1 {
    font-size: 50px;
  }

  .site-hero,
  .site-section,
  .site-page-header,
  .site-auth-shell,
  .site-checkout-shell,
  .site-footer {
    width: min(100% - 24px, 1120px);
  }

  .site-card,
  .site-plan-card,
  .site-template-card,
  .site-auth-card,
  .site-checkout-card {
    padding: 20px;
  }

  .host-account-bar {
    align-items: flex-start;
    border-radius: 18px;
    flex-direction: column;
  }

  .host-header-primary .host-account-bar {
    align-items: center;
    border-radius: 999px;
    flex-direction: row;
  }

  .form-actions,
  .guestbook-voice-draft {
    align-items: stretch;
    flex-direction: column;
  }

  .guestbook-actions,
  .guestbook-voice-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .guestbook-actions .button.primary {
    grid-column: 1 / -1;
  }

  .voice-note-player {
    width: 100%;
  }

  .voice-note-copy {
    flex: 1;
  }
}

/* Supplied collection 2026-07-23: ten responsive welcome designs. */
.event-hero--route-july26 .july26-reference-stage-v2 {
  container-type: size;
}

.event-hero--route-july26 .july26-reference-stage-v2 > .july26-v2-welcome,
.event-hero--route-july26 .july26-reference-stage-v2 > .july26-v2-home {
  width: 100%;
  height: 100%;
}

.event-hero--welcome.event-hero--route-july26 .july26-reference-stage-v2 > .july26-v2-home,
.event-hero--home.event-hero--route-july26 .july26-reference-stage-v2 > .july26-v2-welcome {
  display: none;
}

.event-hero--home.event-hero--route-july26 .july26-reference-stage-v2 > .july26-v2-home {
  display: block;
}

.event-hero--route-july26 .july26-reference-stage.t-fresco .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,#F1E6D6)}
.event-hero--route-july26 .july26-reference-stage.t-fresco .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,#F1E6D6)}
.event-hero--route-july26 .july26-reference-stage.t-fresco .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-fresco .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-fresco .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-fresco .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-fresco .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-fresco .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-fresco .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco{padding:clamp(48px,9cqh,84px) 28px 40px;background-image:radial-gradient(circle 300px at 15% 20%,rgba(201,106,47,.07),transparent 70%),radial-gradient(circle 340px at 85% 75%,rgba(201,106,47,.06),transparent 70%)}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .sunwrap{position:relative;display:flex;justify-content:center}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .sunwrap::before{content:'';position:absolute;top:-26px;left:50%;transform:translateX(-50%);width:clamp(280px,42cqh,330px);height:clamp(280px,42cqh,330px);border-radius:999px;background:var(--template-accent,#C96A2F);opacity:.25}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .arch{position:relative;width:min(250px,72%);height:clamp(260px,38cqh,330px);border-radius:130px 130px 8px 8px;overflow:hidden;border:6px solid #FBF4E8;box-shadow:0 22px 44px -26px rgba(163,74,36,.45)}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .arch img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .sprig{margin-top:clamp(12px,2.2cqh,20px)}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .k{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#C96A2F);margin:clamp(10px,2cqh,18px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco h1{font:500 calc(clamp(36px,5.4cqh,46px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#A34A24);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .d{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#A34A24);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .v{font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#6E5B42);margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-fresco .tw-fresco .guest-welcome-button{border-radius:6px;background:var(--template-button,#C96A2F);color:var(--template-button-text,#FBF4E8)}
.event-hero--route-july26 .july26-reference-stage.t-fresco .th-fresco .tx::before{content:'';position:absolute;bottom:-80px;left:-80px;width:220px;height:220px;border-radius:999px;background:var(--template-accent,#C96A2F);opacity:.2}
.event-hero--route-july26 .july26-reference-stage.t-fresco .th-fresco .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#C96A2F);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-fresco .th-fresco .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#A34A24);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-fresco .th-fresco .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#A34A24);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-fresco .th-fresco .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#6E5B42);margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-lanterns .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,linear-gradient(180deg,#1C3A44,#0F2228))}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,linear-gradient(180deg,#1C3A44,#0F2228))}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-lanterns .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-lanterns .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-lanterns .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns{padding:0 28px 40px}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns .string{flex:none;margin:0 -28px;width:calc(100% + 56px);height:clamp(180px,28cqh,240px)}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns .ff,.event-hero--route-july26 .july26-reference-stage.t-lanterns .th-lanterns .ff{position:absolute;border-radius:999px;background:#E8C87E;box-shadow:0 0 8px 2px rgba(232,200,126,.5);pointer-events:none}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns .k{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#E8A93C);margin:clamp(18px,3.4cqh,34px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns h1{font:500 calc(clamp(38px,5.6cqh,48px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);font-style:italic;color:var(--template-title,#F1EFE2);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns .hair{width:44px;height:1px;background:rgba(241,239,226,.45);margin:clamp(16px,3cqh,26px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns .d{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#F1EFE2);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns .v{font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,rgba(241,239,226,.75));margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .tw-lanterns .guest-welcome-button{border-radius:999px;background:var(--template-button,#E4574F);color:var(--template-button-text,#FFF4EC);box-shadow:0 14px 30px -14px rgba(228,87,79,.55)}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .th-lanterns .band{background:var(--template-ground,linear-gradient(180deg,#1C3A44,#0F2228))}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .th-lanterns .hstring{position:absolute;top:0;left:0;width:100%;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .th-lanterns .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#E8A93C);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .th-lanterns .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);font-style:italic;color:var(--template-title,#F1EFE2);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .th-lanterns .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#F1EFE2);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-lanterns .th-lanterns .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,rgba(241,239,226,.75));margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-mirrorball .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,linear-gradient(180deg,#2A1B4A,#0F0B22))}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,linear-gradient(180deg,#2A1B4A,#0F0B22))}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-mirrorball .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-mirrorball .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball{padding:0 28px 40px}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .ball{flex:none;margin-top:0}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .g{pointer-events:none}

.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .ring{width:min(230px,64%);height:clamp(180px,26cqh,230px);border-radius:999px;overflow:hidden;border:3px solid rgba(201,203,232,.7);box-shadow:0 0 34px rgba(201,203,232,.3);margin-top:clamp(14px,2.6cqh,24px)}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .ring{aspect-ratio:auto}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .ring img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .k{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#B9A7E8);margin:clamp(22px,4cqh,40px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball h1{font:500 calc(clamp(38px,5.6cqh,48px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#fff);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .hair{width:44px;height:1px;background:rgba(201,203,232,.5);margin:clamp(16px,3cqh,26px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .d{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#fff);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .v{font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,rgba(255,255,255,.78));margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .tw-mirrorball .guest-welcome-button{border-radius:999px;background:var(--template-button,#C9CBE8);color:var(--template-button-text,#1E1440);box-shadow:0 0 26px rgba(201,203,232,.35)}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .th-mirrorball .band{display:flex;align-items:flex-start;justify-content:center}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .th-mirrorball .band .ball{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:2}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .th-mirrorball .band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,27,74,.55),rgba(15,11,34,.35))}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .th-mirrorball .band>img{position:relative}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .th-mirrorball .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#B9A7E8);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .th-mirrorball .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#fff);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .th-mirrorball .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#fff);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-mirrorball .th-mirrorball .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,rgba(255,255,255,.78));margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-origami .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,#FBF6EC)}
.event-hero--route-july26 .july26-reference-stage.t-origami .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,#FBF6EC)}
.event-hero--route-july26 .july26-reference-stage.t-origami .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-origami .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-origami .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-origami .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-origami .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-origami .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-origami .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-origami .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami{padding:0 28px 40px}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami .facets{flex:none;margin:0 -28px;width:calc(100% + 56px)}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami .hex{width:min(280px,80%);height:clamp(230px,32cqh,300px);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);margin-top:clamp(24px,4.4cqh,44px)}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami .hex img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami .k{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#C97F2E);margin:clamp(18px,3.4cqh,34px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami h1{font:500 calc(clamp(36px,5.4cqh,46px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#2E2B22);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami .d{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#2E2B22);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami .v{font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#6E6659);margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-origami .tw-origami .guest-welcome-button{background:var(--template-button,#2E2B22);color:var(--template-button-text,#FBF6EC)}
.event-hero--route-july26 .july26-reference-stage.t-origami .th-origami .facets{position:absolute;left:0;right:0;bottom:0;transform:scaleY(-1);opacity:.9}
.event-hero--route-july26 .july26-reference-stage.t-origami .th-origami .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#C97F2E);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-origami .th-origami .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#2E2B22);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-origami .th-origami .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#2E2B22);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-origami .th-origami .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#6E6659);margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-photobooth .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,#DCE9EE)}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,#DCE9EE)}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-photobooth .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-photobooth .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-photobooth .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth{padding:clamp(36px,7cqh,64px) 28px 40px}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth .strip{background:#fff;padding:10px;display:flex;flex-direction:column;gap:10px;transform:rotate(2deg);box-shadow:0 24px 48px -26px rgba(31,42,51,.5)}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth .fr{width:150px;height:clamp(96px,14cqh,128px);overflow:hidden;background:#EEE}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth .fr img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth .k{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#2E6E8E);margin:clamp(18px,3.4cqh,32px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth h1{font:800 calc(clamp(30px,4.6cqh,40px)*var(--welcome-heading-scale,1))/1.06 var(--july26-display-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#1F2A33);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth .d{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#1F2A33);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth .v{font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#48697B);margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .tw-photobooth .guest-welcome-button{border-radius:8px;background:var(--template-button,#2E6E8E);color:var(--template-button-text,#fff)}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .hstrip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .hstrip .inner{background:#fff;padding:8px;display:flex;gap:8px;box-shadow:0 18px 36px -20px rgba(31,42,51,.5);transform:rotate(-1.5deg)}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .hstrip .fr{width:104px;height:104px;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .hstrip .fr img{width:100%;height:100%;object-fit:cover;display:block}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .hstrip .fr{width:108px;height:108px}}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#2E6E8E);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .ht{font:800 clamp(22px,3.8cqw,34px)/1.06 var(--july26-display-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#1F2A33);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#1F2A33);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-photobooth .th-photobooth .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#48697B);margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-quilt .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,#FBF4EC)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,#FBF4EC)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-quilt .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-quilt .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-quilt .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-quilt .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-quilt .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt{padding:clamp(44px,8.6cqh,76px) 28px 40px}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .grid{width:min(330px,88%);height:clamp(210px,32cqh,320px);display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:10px}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .pt{border:2px dashed rgba(74,59,56,.25)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .gm{background-color:#F6E9E4;background-image:repeating-linear-gradient(0deg,rgba(201,112,107,.3) 0 8px,transparent 8px 16px),repeating-linear-gradient(90deg,rgba(201,112,107,.3) 0 8px,transparent 8px 16px)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .dt{background-color:#FBF0DC;background-image:radial-gradient(circle 3px at 8px 8px,#C8A96A 3px,transparent 4px);background-size:20px 20px}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .st{background-color:#EEF2E8;background-image:repeating-linear-gradient(45deg,rgba(168,191,168,.55) 0 7px,transparent 7px 14px)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .gm2{background-color:#EDF0F5;background-image:repeating-linear-gradient(0deg,rgba(74,94,143,.28) 0 8px,transparent 8px 16px),repeating-linear-gradient(90deg,rgba(74,94,143,.28) 0 8px,transparent 8px 16px)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .pc{overflow:hidden;padding:0;border:2px solid #fff;box-shadow:0 6px 14px -8px rgba(74,59,56,.35)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .pc img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .k{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#C9706B);margin:clamp(18px,3.4cqh,32px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt h1{font:500 calc(clamp(36px,5.4cqh,46px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#4A3B38);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .d{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#4A3B38);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .v{font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#6E514B);margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-quilt .tw-quilt .guest-welcome-button{border-radius:999px;background:var(--template-button,#C9706B);color:var(--template-button-text,#FFF6F2)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .strip{position:absolute;left:0;right:0;bottom:0;height:22px;display:flex;gap:6px;padding:4px;background:rgba(251,244,236,.9)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .strip i{flex:1;border:1.5px dashed rgba(74,59,56,.3)}
.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .strip .a{background:#F6E9E4}.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .strip .b{background:#FBF0DC}.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .strip .c{background:#EEF2E8}.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .strip .e{background:#EDF0F5}
.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#C9706B);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#4A3B38);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#4A3B38);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-quilt .th-quilt .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#6E514B);margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,#FDF6EE)}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,#FDF6EE)}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap{padding:clamp(44px,8.6cqh,80px) 0 40px}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .k,.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap h1,.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .d,.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .v{padding-left:28px;padding-right:28px}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .wrap{position:relative;width:100%;display:flex;justify-content:center;align-items:center}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .wrap .band{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:44px;background:var(--template-accent,#E4574F);flex:none;overflow:visible}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .wrap .band::after{content:'';position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:8px;background:rgba(255,255,255,.25)}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .frame{position:relative;width:min(250px,70%);height:clamp(210px,30cqh,280px);border-radius:10px;overflow:hidden;border:6px solid #fff;box-shadow:0 20px 42px -24px rgba(10,30,80,.4)}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .frame img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .bow{position:absolute;top:calc(0% - 4px);left:50%;transform:translate(-50%,-55%)}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .k{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#E4574F);margin:clamp(20px,3.6cqh,34px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap h1{font:500 calc(clamp(36px,5.4cqh,46px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#0A1E50);margin:10px 0 0;max-width:345px}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .d{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#0A1E50);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .v{font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#66707F);margin:6px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .tw-ribbonwrap .guest-welcome-button{border-radius:999px;background:var(--template-button,#E4574F);color:var(--template-button-text,#FFF6F0);box-shadow:0 14px 28px -14px rgba(228,87,79,.55)}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .th-ribbonwrap .band::after{content:'';position:absolute;left:0;right:0;bottom:14px;height:26px;background:var(--template-accent,#E4574F)}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .th-ribbonwrap .hbow{position:absolute;bottom:-4px;left:24px;z-index:2}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .th-ribbonwrap .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#E4574F);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .th-ribbonwrap .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#0A1E50);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .th-ribbonwrap .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#0A1E50);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-ribbonwrap .th-ribbonwrap .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#66707F);margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-sealed .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,#FFFDF6)}
.event-hero--route-july26 .july26-reference-stage.t-sealed .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,#FFFDF6)}
.event-hero--route-july26 .july26-reference-stage.t-sealed .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-sealed .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-sealed .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-sealed .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-sealed .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-sealed .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-sealed .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed{padding:clamp(36px,7cqh,64px) 28px 40px}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed::after{content:'';position:absolute;inset:16px;border:1px solid rgba(200,169,106,.5);pointer-events:none}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .rib{position:relative;display:flex;flex-direction:column;align-items:center}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .rib::before{content:'';position:absolute;top:-500px;bottom:52px;width:44px;background:#A64250;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),50% 100%,0 calc(100% - 12px))}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .seal{position:relative;filter:drop-shadow(0 8px 16px rgba(142,47,60,.4))}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .k{position:relative;font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#8E2F3C);margin:clamp(16px,3cqh,28px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed h1{position:relative;font:500 calc(clamp(36px,5.2cqh,44px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#2E2B22);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .plate{position:relative;width:min(250px,72%);height:clamp(190px,28cqh,260px);padding:5px;background:#fff;border:1px solid #C8A96A;margin-top:clamp(16px,3cqh,28px);box-shadow:0 18px 38px -24px rgba(46,43,34,.4)}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .plate img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .d{position:relative;font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#2E2B22);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .v{position:relative;font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#6E6659);margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-sealed .tw-sealed .guest-welcome-button{position:relative;background:var(--template-button,#8E2F3C);color:var(--template-button-text,#FFFDF6)}
.event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .tx::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:rgba(200,169,106,.0)}
.event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .sealrow{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .sealrow .rule{width:56px;height:1px;background:#C8A96A}
.event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#8E2F3C);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#2E2B22);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#2E2B22);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#6E6659);margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-terrazzo .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,#FAF7F1)}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,#FAF7F1)}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-terrazzo .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-terrazzo .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo{padding:clamp(44px,9cqh,80px) 28px 40px}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo .chips,.event-hero--route-july26 .july26-reference-stage.t-terrazzo .th-terrazzo .chips{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo .frame{position:relative;width:min(300px,84%);height:clamp(220px,34cqh,320px);border-radius:24px;overflow:hidden;box-shadow:0 22px 44px -26px rgba(10,30,80,.4)}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo .frame img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo .k{position:relative;font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#FB5A57);margin:clamp(18px,3.4cqh,32px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo h1{position:relative;font:500 calc(clamp(36px,5.4cqh,46px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#0A1E50);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo .d{position:relative;font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#0A1E50);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo .v{position:relative;font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#66707F);margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .tw-terrazzo .guest-welcome-button{position:relative;border-radius:999px;background:var(--template-button,#FB5A57);color:var(--template-button-text,#fff);box-shadow:0 14px 28px -14px rgba(251,90,87,.55)}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .th-terrazzo .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#FB5A57);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .th-terrazzo .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#0A1E50);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .th-terrazzo .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#0A1E50);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-terrazzo .th-terrazzo .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,#66707F);margin:5px 0 0}

.event-hero--route-july26 .july26-reference-stage.t-vitrail .july26-v2-welcome{position:relative;width:100%;height:100%;min-height:620px;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--template-ground,#101A3C)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .july26-v2-home{display:none;position:relative;width:100%;height:100%;overflow:hidden;background:var(--template-ground,#101A3C)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .guest-welcome-button{margin-top:auto;display:flex;align-items:center;justify-content:center;min-height:48px;width:min(240px,calc(100% - 48px));text-decoration:none;text-transform:uppercase;font:700 13px var(--july26-button-font,'Hanken Grotesk',sans-serif)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .hlay{display:flex;flex-direction:column;height:100%}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .band{position:relative;flex:0 0 46%;overflow:hidden}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .band>img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tx{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 24px;min-width:0}
@container (min-width:640px){.event-hero--route-july26 .july26-reference-stage.t-vitrail .hlay{flex-direction:row-reverse}.event-hero--route-july26 .july26-reference-stage.t-vitrail .band{flex:0 0 42%}.event-hero--route-july26 .july26-reference-stage.t-vitrail .tx{align-items:flex-start;text-align:left;padding:0 56px}}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail{padding:clamp(40px,8cqh,72px) 28px 40px}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .win{width:min(300px,84%);height:clamp(300px,44cqh,410px);background:var(--template-accent,#C8A96A);border-radius:150px 150px 10px 10px;padding:5px;display:grid;grid-template-columns:60px 1fr 60px;grid-template-rows:1fr 1fr;gap:5px;overflow:hidden;box-shadow:0 26px 52px -28px rgba(0,0,0,.6)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .win .ph{grid-column:2;grid-row:1/3;overflow:hidden;border-radius:118px 118px 4px 4px}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .win .ph img{width:100%;height:100%;object-fit:cover;display:block}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .p1{grid-column:1;grid-row:1;background:rgba(214,74,126,.45)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .p2{grid-column:3;grid-row:1;background:rgba(232,169,60,.5)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .p3{grid-column:1;grid-row:2;background:rgba(46,110,142,.5)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .p4{grid-column:3;grid-row:2;background:rgba(143,110,212,.45)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .k{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#C8A96A);margin:clamp(20px,3.6cqh,36px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail h1{font:500 calc(clamp(36px,5.4cqh,46px)*var(--welcome-heading-scale,1))/1.08 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#F5EFE2);margin:10px 0 0;max-width:330px}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .d{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#F5EFE2);margin:clamp(14px,2.6cqh,24px) 0 0}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .v{font:400 15px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,rgba(245,239,226,.78));margin:6px 0 0;max-width:320px}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .tw-vitrail .guest-welcome-button{border:1px solid var(--template-button,#C8A96A);color:var(--template-button,#C8A96A)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .lead{position:absolute;left:0;right:0;bottom:0;height:26px;display:flex;gap:4px;background:var(--template-accent,#C8A96A);padding:4px}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .lead i{flex:1}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .lead .g1{background:rgba(214,74,126,.75)}.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .lead .g2{background:rgba(232,169,60,.8)}.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .lead .g3{background:rgba(46,110,142,.8)}.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .lead .g4{background:rgba(143,110,212,.75)}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .hk{font:700 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-accent,#C8A96A);margin:0}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .ht{font:500 clamp(26px,4.6cqw,40px)/1.1 var(--july26-display-font,'Cormorant Garamond',serif);color:var(--template-title,#F5EFE2);margin:8px 0 0;max-width:520px}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .hm{font:600 12px var(--july26-body-font,'Hanken Grotesk',sans-serif);text-transform:uppercase;color:var(--template-title,#F5EFE2);margin:14px 0 0}
.event-hero--route-july26 .july26-reference-stage.t-vitrail .th-vitrail .hv{font:400 14px var(--july26-body-font,'Hanken Grotesk',sans-serif);color:var(--template-muted,rgba(245,239,226,.78));margin:5px 0 0}

@container (max-width: 639px) {
  .event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .band {
    flex-basis: 42%;
  }

  .event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .tx {
    padding-block: 8px;
  }

  .event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .sealrow {
    gap: 10px;
    margin-bottom: 5px;
  }

  .event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .sealrow .seal {
    width: 38px;
    height: 38px;
  }

  .event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .hm {
    margin-top: 7px;
  }

  .event-hero--route-july26 .july26-reference-stage.t-sealed .th-sealed .hv {
    margin-top: 3px;
  }
}

/* Apply the compact guest-home composition after the imported source rules. */
.event-hero--welcome.event-hero--route-july26 .july26-reference-stage-v2 > .july26-v2-home,
.event-hero--home.event-hero--route-july26 .july26-reference-stage-v2 > .july26-v2-welcome {
  display: none;
}

.event-hero--home.event-hero--route-july26 .july26-reference-stage-v2 > .july26-v2-home {
  display: block;
}
