/**
 * Текстовые страницы и 404.
 */

.page-title {
  margin-bottom: var(--space-6);
  font-size: var(--fs-3xl);
}

@media (min-width: 768px) {
  .page-title { font-size: var(--fs-4xl); }
}

/* ── 404 ─────────────────────────────────────────────── */

.page-404 {
  padding-block: var(--space-12);
  background: var(--color-surface-subtle);
}

@media (min-width: 768px) {
  .page-404 { padding-block: var(--space-16); }
}

.page-404__label {
  margin-bottom: var(--space-3);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.page-404__title {
  margin-bottom: var(--space-4);
  font-size: var(--fs-3xl);
}

@media (min-width: 768px) {
  .page-404__title { font-size: var(--fs-5xl); }
}

.page-404__game {
  margin-top: var(--space-6);
}

.page-404__game-area {
  padding: var(--space-3);
  background: var(--color-surface-subtle);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  cursor: pointer;
  user-select: none;
}

.page-404__canvas {
  display: block;
  width: 100%;
  height: 13.75rem;
  background: var(--color-surface);
  border-radius: var(--radius);
}

@media (min-width: 768px) {
  .page-404__canvas { height: 16.25rem; }
}

.page-404__game-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-top: var(--space-3);
  font-size: var(--fs-sm);
}

.page-404__game-bar p {
  margin: 0;
}

.page-404__score {
  color: var(--color-text);
}

.page-404__cta {
  margin-top: var(--space-6);
}

/* Телефон: игра во всю ширину экрана и выше — поле выходит за отступы
   карточки и контейнера, рамка и скругления у краёв экрана не нужны */
@media (max-width: 767px) {
  .page-404__game-area {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
    padding: 0 0 var(--space-3);
    border-inline: 0;
    border-radius: 0;
  }

  .page-404__canvas {
    height: clamp(20rem, 55vh, 28rem);
    border-radius: 0;
  }

  .page-404__game-bar {
    padding-inline: var(--container-pad);
  }
}

/* Телефон: без карточки вовсе — рамка и фон вокруг игры во всю ширину
   смотрелись обрезком. Остаются заголовок, игра и кнопка на фоне страницы. */
@media (max-width: 767px) {
  .page-404 {
    padding-block: var(--space-8);
    background: var(--color-surface);
  }

  .page-404 .card {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }
}

/* Заголовок 404 — в небе игры, над городом, под ним облака холста.
   Текст настоящий (h1), клики проходят сквозь него в игру. */
.page-404__game { margin-top: 0; }

.page-404__stage {
  position: relative;
}

.page-404__sky-title {
  position: absolute;
  z-index: 1;
  top: var(--space-8);
  left: var(--space-4);
  right: var(--space-4);
  text-align: center;
  pointer-events: none;
}

.page-404__sky-title .page-404__label {
  margin-bottom: var(--space-1);
  color: var(--color-primary-dark);
}

.page-404__sky-title .page-404__title {
  margin: 0;
  line-height: var(--lh-tight);
  text-wrap: balance;
}

.page-404__canvas { height: 26rem; }

@media (max-width: 767px) {
  .page-404 { padding-block: 0 var(--space-8); }
  .page-404__game-area { border-top: 0; }
  .page-404__canvas { height: clamp(26rem, 60vh, 32rem); }
  .page-404__cta { margin-left: 0; }
}
