/* Flamingo Club: local light, precise edges and depth. Never tint photo or logo pixels. */
.guest-app.guest-app {
  background: radial-gradient(ellipse at 93% 12%, rgb(var(--ctm-accent-rgb) / .065), transparent 42%),
    radial-gradient(ellipse at 0 75%, rgb(var(--ctm-surface-raised-rgb) / .3), transparent 48%), var(--ctm-ink);
}
/* One action treatment, including dialogs rendered outside the app shell.
   Specificity keeps route-level stylesheet loading from changing the treatment. */
:is(.primary.primary.primary, .button.button-coral, .button.button-ivory,
    .button.header-cta, .hero-intro .button.hero-cta) {
  position: relative;
  isolation: isolate;
  color: var(--ctm-action-text);
  background: var(--ctm-action-depth);
  border: 1.5px solid var(--ctm-action-border);
  box-shadow: var(--ctm-action-shadow);
  border-radius: 10px;
  font-weight: 750;
  transition: transform 180ms var(--ctm-ease), box-shadow 180ms var(--ctm-ease), border-color 180ms;
}
:is(.primary.primary.primary, .button.button-coral, .button.button-ivory,
    .button.header-cta, .hero-intro .button.hero-cta):hover:not(:disabled, .disabled, [aria-disabled='true']) {
  color: var(--ctm-action-text);
  background: var(--ctm-action-depth);
  border-color: var(--ctm-accent-hover);
  box-shadow: var(--ctm-action-shadow-hover);
}
:is(.primary.primary.primary, .button.button-coral, .button.button-ivory,
    .button.header-cta, .hero-intro .button.hero-cta):focus-visible {
  outline: 2px solid var(--ctm-white);
  outline-offset: 5px;
}
:is(.primary.primary.primary, .button.button-coral, .button.button-ivory,
    .button.header-cta, .hero-intro .button.hero-cta):active:not(:disabled, .disabled, [aria-disabled='true']) {
  transform: translateY(1px) scale(.99);
}
:is(.primary.primary.primary, .button.button-coral, .button.button-ivory,
    .button.header-cta, .hero-intro .button.hero-cta):is(:disabled, .disabled, [aria-disabled='true']) {
  box-shadow: none;
  transform: none;
  border-color: rgb(var(--ctm-muted-rgb) / .45);
}
.primary.primary > span,
.button.header-cta svg,
.hero-intro .button.hero-cta > span { color: inherit; filter: none; }
.hero-intro .button.hero-cta { padding: 9px 18px; min-height: 52px; gap: 18px; }
.hero-intro .button.hero-cta > span { width: 24px; height: 30px; }
.guest-app .venue-card,
.guest-app .session-ticket,
.guest-app .upload-progress,
.admin-layout .admin-panel,
.admin-layout .metric,
.venue-editor {
  background: var(--ctm-panel-depth);
  border-color: rgb(var(--ctm-light-rgb) / .16);
  box-shadow: var(--ctm-panel-shadow);
}
.guest-app .session-ticket { padding: 18px; border: 1px solid var(--ctm-border); border-radius: 12px; }
.guest-app .moment-card-front,
.guest-app .confirmation-art,
.guest-app .welcome-screen,
.offer-screen .venue-hero,
.edition-stack .edition-card,
.comparison {
  border: 1px solid rgb(var(--ctm-light-rgb) / .32);
  box-shadow: 0 20px 45px rgb(var(--ctm-shadow-rgb) / .4), 0 0 20px rgb(var(--ctm-accent-rgb) / .055);
}
.guest-app .moment-stage::before { background: rgb(var(--ctm-accent-rgb) / .12); }
.guest-app .confirmation-art::before { box-shadow: 0 0 12px rgb(var(--ctm-accent-rgb) / .25); }
.guest-app .welcome-copy .kicker {
  display: inline-block;
  color: var(--ctm-white);
  background: rgb(var(--ctm-deep-rgb) / .8);
  border: 1px solid rgb(var(--ctm-light-rgb) / .2);
  border-radius: 20px;
  padding: 6px 10px;
  text-shadow: none;
}
.guest-app .session-progress progress::-webkit-progress-value,
.guest-app .upload-progress progress::-webkit-progress-value { background: var(--ctm-spectrum); }
.guest-app .session-progress progress::-moz-progress-bar,
.guest-app .upload-progress progress::-moz-progress-bar { background: var(--ctm-spectrum); }
.admin-sidebar.admin-sidebar nav button[aria-current] {
  background: linear-gradient(100deg, rgb(var(--ctm-accent-rgb) / .12), rgb(var(--ctm-accent-rgb) / .035));
  color: var(--ctm-light);
  box-shadow: inset 2px 0 var(--ctm-accent);
}
.admin-sidebar.admin-sidebar nav button[aria-current] > span,
.admin-layout .admin-panel .kicker { color: var(--ctm-light); }
.admin-layout .admin-top { border-bottom-color: var(--ctm-border); }
.admin-layout .metric { border-radius: 12px; }
.owner-login.owner-login { background: radial-gradient(ellipse at 85% 5%, rgb(var(--ctm-accent-rgb) / .075), transparent 48%), var(--ctm-ink); }
.technology-section.technology-section,
.join-section.join-section { background: radial-gradient(ellipse at 100% 85%, rgb(var(--ctm-accent-rgb) / .055), transparent 43%), var(--ctm-ink); }
.how-section.how-section { background: var(--ctm-deep); }
.apply-dialog { border-color: rgb(var(--ctm-light-rgb) / .22); box-shadow: var(--ctm-panel-shadow); }
.social-share-dialog { background: var(--ctm-panel-depth); }
.legal-page a { color: var(--ctm-light); }
@media (prefers-reduced-motion: no-preference) {
  /* A slow edge reflection; the interior stays open and labels stay still. */
  :is(.primary.primary.primary, .button.button-coral, .button.button-ivory,
      .hero-intro .button.hero-cta):not(:disabled, .disabled, [aria-disabled='true'])::before {
    content: '';
    position: absolute;
    inset: -1px;
    pointer-events: none;
    border: 1px solid var(--ctm-light);
    border-radius: inherit;
    opacity: .2;
    animation: ctm-neon-edge 5.8s ease-in-out infinite;
  }
  @keyframes ctm-neon-edge { 0%, 100% { opacity: .12; } 50% { opacity: .52; } }
}
@media (prefers-reduced-motion: reduce) {
  .button,.primary,.secondary { transition: none !important; }
}
@media (forced-colors: active) {
  :is(.primary.primary.primary, .button.button-coral, .button.button-ivory,
      .button.header-cta, .hero-intro .button.hero-cta) {
    border: 2px solid ButtonText;
    color: ButtonText;
    box-shadow: none;
  }
}
