/* ruslab pages — landing, hero, feature cards, live status */

/* ---------- Minimal entry page (unauthenticated landing) ----------
   Server name + one big connect CTA + live status. Auth lives in the topbar. */
.entry {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 56px - 78px); /* viewport minus topbar minus footer */
  padding: 24px;
  text-align: center;
  gap: 28px;
}
.entry-title {
  font: 800 clamp(36px, 5vw, 56px)/1.1 var(--rus-font-display);
  letter-spacing: -0.03em;
  color: var(--rus-fg);
  margin: 0;
}
.entry-title .accent {
  background: var(--rus-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.entry-sub {
  margin: -16px 0 0;
  font: 500 14px/1 var(--rus-font-sans);
  color: var(--rus-fg-faint);
  letter-spacing: 0.02em;
}

/* Big hero CTA — the only thing that converts visitors into players. */
.btn-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 18px 36px;
  border-radius: 999px;
  border: none;
  background: var(--rus-grad);
  color: #04231A;
  font: 700 18px/1 var(--rus-font-display);
  letter-spacing: -0.01em;
  cursor: pointer;
  box-shadow:
    0 10px 32px -10px rgba(52, 211, 153, 0.55),
    0 0 0 1px rgba(255, 255, 255, .04) inset;
  transition: transform .18s var(--rus-ease), box-shadow .18s var(--rus-ease);
}
.btn-cta:hover {
  transform: translateY(-2px);
  box-shadow:
    0 16px 48px -12px rgba(52, 211, 153, 0.65),
    0 0 0 1px rgba(255, 255, 255, .06) inset;
}
.btn-cta:active { transform: translateY(0); }
.btn-cta .arrow { transition: transform .18s var(--rus-ease); }
.btn-cta:hover .arrow { transform: translateX(4px); }

@media (max-width: 480px) {
  .btn-cta { padding: 16px 28px; font-size: 17px; }
  .entry { gap: 24px; }
}

/* ---------- Login / register ---------- */

/* ---------- Live server status pill ---------- */
.live-status {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--rus-bg-elev);
  border: 1px solid var(--rus-border);
  font: 500 13px/1 var(--rus-font-mono);
  color: var(--rus-fg-mute);
  box-shadow: var(--rus-shadow);
  margin: 16px auto 0;
}
.live-status .pulse {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--rus-success);
  position: relative;
  transition: background var(--rus-t-base) var(--rus-ease);
}
.live-status .pulse::after {
  content: "";
  position: absolute; inset: -4px;
  border-radius: 50%;
  background: var(--rus-success);
  opacity: .35;
  animation: pulse 2s var(--rus-ease-out) infinite;
  transition: background var(--rus-t-base) var(--rus-ease);
}
.live-status[data-status="offline"] .pulse,
.live-status[data-status="offline"] .pulse::after {
  background: var(--rus-danger);
  animation: none;
}
.live-status[data-status="unknown"] .pulse,
.live-status[data-status="unknown"] .pulse::after {
  background: var(--rus-fg-faint);
  animation: none;
}
.live-status[data-status="offline"] {
  color: var(--rus-danger);
  border-color: rgba(239, 68, 68, .25);
}
@keyframes pulse {
  0%   { transform: scale(.6); opacity: .45; }
  80%  { transform: scale(1.8); opacity: 0; }
  100% { transform: scale(1.8); opacity: 0; }
}

/* ---------- Login / register ---------- */
.auth-page {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 24px 16px;
}
.auth-card {
  width: 100%;
  max-width: 400px;
  padding: 32px;
}
.auth-brand {
  display: inline-flex; align-items: center; gap: 8px;
  margin-bottom: 24px;
}
.auth-card h1 {
  font: 700 26px/32px var(--rus-font-sans);
  margin-bottom: 6px;
  letter-spacing: -0.015em;
}
.auth-card .auth-subtitle {
  color: var(--rus-fg-mute);
  font: 400 15px/22px var(--rus-font-sans);
  margin-bottom: 24px;
}
.auth-card .auth-form .field:last-of-type { margin-bottom: 20px; }
.auth-card .auth-meta {
  margin-top: 16px;
  display: flex; flex-direction: column; gap: 8px;
  font: 500 13px/18px var(--rus-font-sans);
  color: var(--rus-fg-mute);
}
.auth-card .auth-foot {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--rus-border);
  text-align: center;
  font: 500 12px/16px var(--rus-font-sans);
  color: var(--rus-fg-faint);
}
