:root {
  --velu-shell-nav-height: 72px;
  --velu-shell-mobile-nav-height: 72px;
}

html:not(.corefront-session):not(.hero-training-open) body {
  min-height: 100dvh;
}

html:not(.corefront-session):not(.hero-training-open) .app-shell {
  width: min(1480px, calc(100% - 40px));
  padding-bottom: 32px;
}

html:not(.corefront-session):not(.hero-training-open) .site-header {
  top: 10px;
  min-height: var(--velu-shell-nav-height);
  border-radius: 22px;
  grid-template-columns: minmax(260px, 1fr) auto auto;
  box-shadow: 0 18px 60px rgba(0, 0, 0, .22);
}

html:not(.corefront-session):not(.hero-training-open) .main-nav {
  align-items: center;
  padding: 5px;
  border: 1px solid rgba(148, 163, 184, .13);
  border-radius: 14px;
  background: rgba(4, 10, 18, .44);
}

html:not(.corefront-session):not(.hero-training-open) .main-nav a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  border-radius: 10px;
  font-weight: 700;
}

html:not(.corefront-session):not(.hero-training-open) .hero {
  min-height: 570px;
  gap: clamp(28px, 5vw, 72px);
}

html:not(.corefront-session):not(.hero-training-open) .hero-copy h1 {
  font-size: clamp(46px, 5.5vw, 82px);
}

html:not(.corefront-session):not(.hero-training-open) .hero-visual {
  min-height: 430px;
}

.velu-platform-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 22px;
}

.velu-platform-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid rgba(88, 230, 176, .18);
  border-radius: 999px;
  color: #dffcf1;
  background: rgba(88, 230, 176, .08);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .035em;
}

.velu-platform-chip::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 14px rgba(88, 230, 176, .8);
}

html:not(.corefront-session):not(.hero-training-open) #games-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

html:not(.corefront-session):not(.hero-training-open) .game-card {
  position: relative;
  min-height: 310px;
  display: grid;
  grid-template-columns: minmax(180px, .72fr) minmax(0, 1.28fr);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

html:not(.corefront-session):not(.hero-training-open) .game-card:hover {
  transform: translateY(-3px);
  border-color: rgba(88, 230, 176, .32);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .24);
}

html:not(.corefront-session):not(.hero-training-open) .game-content,
html:not(.corefront-session):not(.hero-training-open) .hero-training-game-card .game-card-body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(24px, 3vw, 38px);
}

.velu-admin-factory-card {
  grid-column: 1 / -1;
  border-color: rgba(88, 230, 176, .24);
  background: radial-gradient(circle at 10% 0%, rgba(88, 230, 176, .12), transparent 28%), var(--panel);
}

.velu-admin-factory-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.velu-admin-factory-status {
  display: inline-flex;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(101, 169, 255, .11);
  color: #cfe5ff;
  font-size: 12px;
  font-weight: 800;
}

.velu-mobile-nav {
  display: none;
}

html.corefront-session .velu-mobile-nav,
html.hero-training-open .velu-mobile-nav {
  display: none !important;
}

@media (max-width: 1180px) {
  html:not(.corefront-session):not(.hero-training-open) #games-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  html:not(.corefront-session):not(.hero-training-open) body {
    padding-bottom: calc(var(--velu-shell-mobile-nav-height) + env(safe-area-inset-bottom) + 12px);
  }

  html:not(.corefront-session):not(.hero-training-open) .app-shell {
    width: min(100% - 18px, 1480px);
  }

  html:not(.corefront-session):not(.hero-training-open) .site-header {
    position: sticky;
    top: 6px;
    min-height: 58px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 16px;
  }

  html:not(.corefront-session):not(.hero-training-open) .site-header .main-nav {
    display: none;
  }

  html:not(.corefront-session):not(.hero-training-open) .hero {
    min-height: auto;
    padding-top: 44px;
    gap: 28px;
  }

  html:not(.corefront-session):not(.hero-training-open) .hero-copy h1 {
    font-size: clamp(42px, 13vw, 64px);
  }

  html:not(.corefront-session):not(.hero-training-open) .section {
    padding: 58px 6px 12px;
    scroll-margin-top: 78px;
  }

  html:not(.corefront-session):not(.hero-training-open) .game-card {
    min-height: 0;
    grid-template-columns: 104px minmax(0, 1fr);
    border-radius: 18px;
  }

  html:not(.corefront-session):not(.hero-training-open) .game-content,
  html:not(.corefront-session):not(.hero-training-open) .hero-training-game-card .game-card-body {
    padding: 18px;
  }

  .velu-mobile-nav {
    position: fixed;
    z-index: 1000;
    left: 10px;
    right: 10px;
    bottom: max(8px, env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    min-height: var(--velu-shell-mobile-nav-height);
    padding: 7px;
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 20px;
    background: rgba(6, 11, 18, .92);
    backdrop-filter: blur(22px);
    box-shadow: 0 20px 70px rgba(0, 0, 0, .42);
  }

  .velu-mobile-nav[hidden] { display: none !important; }

  .velu-mobile-nav a {
    display: grid;
    place-items: center;
    gap: 2px;
    min-width: 0;
    padding: 6px 4px;
    border-radius: 14px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 750;
    text-decoration: none;
  }

  .velu-mobile-nav a::before { font-size: 19px; line-height: 1; }
  .velu-mobile-nav a[data-target="home"]::before { content: "⌂"; }
  .velu-mobile-nav a[data-target="games"]::before { content: "▦"; }
  .velu-mobile-nav a[data-target="account"]::before { content: "●"; }
  .velu-mobile-nav a[data-target="admin"]::before { content: "⚙"; }

  .velu-mobile-nav a.is-active {
    color: #f2fff9;
    background: rgba(88, 230, 176, .12);
  }
}
