/* Victory — global front polish */

/* App shell */
.vt-page,
.auth-page-root {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}

.vt-page::before,
.auth-page-root::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 45% at 50% -8%, rgba(14, 165, 233, 0.14), transparent 58%),
    radial-gradient(ellipse 45% 35% at 100% 20%, rgba(37, 99, 235, 0.08), transparent 50%),
    radial-gradient(ellipse 40% 30% at 0% 85%, rgba(34, 211, 238, 0.06), transparent 45%),
    var(--vds-bg, #050a14);
}

.vt-page > main,
.vt-page > .lobby-layout,
.vt-page > .cosmetics-wrap,
.vt-page > .account-layout-wrap,
.vt-page > .premium-layout-wrap,
.vt-page > .prm,
.vt-page > .page {
  flex: 1;
}

#site-footer-mount,
.site-footer {
  margin-top: auto;
}

.site-header {
  position: sticky;
  box-shadow: 0 1px 0 rgba(125, 211, 252, 0.06), 0 8px 32px rgba(0, 0, 0, 0.22);
}

/* Shared page heroes */
.vds-page-hero,
.lobby-hero,
.cosmetics-hero,
.account-hero,
.premium-hero,
.prm-hero {
  position: relative;
  overflow: hidden;
}

.vds-page-hero::before,
.lobby-hero::before,
.cosmetics-hero::before,
.account-hero::before,
.premium-hero::before,
.prm-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--vds-gradient-brand);
  z-index: 2;
}

.prm-hero::before {
  background: linear-gradient(90deg, #f59e0b, #fbbf24, #fde68a);
}

.lobby-hero > *,
.cosmetics-hero > *,
.account-hero > *,
.premium-hero > *,
.prm-hero > * {
  position: relative;
  z-index: 1;
}

/* Glass cards — subtle inner highlight */
.vds-glass {
  box-shadow:
    var(--vds-shadow-md),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

/* Nav active pill polish */
.site-nav a.active {
  box-shadow: 0 4px 16px rgba(14, 165, 233, 0.25);
}

/* User menu trigger */
.site-user-trigger {
  transition:
    border-color var(--vds-duration-fast),
    box-shadow var(--vds-duration-fast),
    background var(--vds-duration-fast);
}

.site-user-trigger:hover {
  border-color: var(--vds-border-strong);
  box-shadow: 0 0 0 1px rgba(14, 165, 233, 0.12);
  background: rgba(14, 165, 233, 0.08);
}

/* Lobby cards — status accent strip */
.lobby-card::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--vds-border);
  z-index: 3;
  pointer-events: none;
}

.lobby-card--open::after {
  background: linear-gradient(180deg, var(--vds-success), rgba(52, 211, 153, 0.35));
}

.lobby-card--busy::after {
  background: linear-gradient(180deg, var(--vds-danger), rgba(248, 113, 113, 0.35));
}

/* Cosmetics cards hover */
.cosmetics-page .card {
  transition:
    transform var(--vds-duration) var(--vds-ease-spring),
    border-color var(--vds-duration),
    box-shadow var(--vds-duration);
}

.cosmetics-page .card:hover {
  box-shadow: var(--vds-shadow-glow);
}

/* Footer polish */
.site-footer {
  background: linear-gradient(180deg, rgba(5, 10, 20, 0.4), rgba(5, 10, 20, 0.85));
  backdrop-filter: blur(12px);
}

@media (prefers-reduced-motion: reduce) {
  .site-premium-cta,
  .site-premium-cta svg,
  .site-premium-cta__shine {
    animation: none !important;
  }
}
