.sr-only {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  margin: -1px !important;
  padding: 0 !important;
  white-space: nowrap !important;
}

.sr-only:focus {
  position: static !important;
  inline-size: auto !important;
  block-size: auto !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  margin: 0 !important;
  white-space: normal !important;
}

.skip-link {
  position: fixed;
  z-index: var(--z-skip);
  inset: var(--space-3) auto auto var(--space-3);
  border: 2px solid var(--cyan);
  background: var(--paper);
  padding: var(--space-3) var(--space-4);
  color: var(--ink-950);
  font-weight: 800;
  text-decoration: none;
  transform: translateY(calc(-100% - var(--space-6)));
  transition: transform var(--duration-fast) ease;
}

.skip-link:focus {
  color: var(--ink-950);
  box-shadow: 0 0 0 0.25rem var(--ink-950), 0 0 0 0.45rem var(--cyan);
  transform: none;
}

[aria-busy="true"] {
  cursor: progress;
}

[aria-current="page"] {
  font-weight: 750;
}

@media (pointer: coarse) {
  :where(a, button, input, select) {
    min-block-size: 2.75rem;
  }

  .brand,
  .game-card__title-link,
  .arrow-link {
    min-block-size: auto;
  }
}

@media (prefers-contrast: more) {
  :root {
    --line-faint: rgb(220 250 252 / 28%);
    --line: rgb(220 250 252 / 48%);
    --line-strong: rgb(220 250 252 / 72%);
    --muted: #bbced2;
    --muted-strong: #d4e2e4;
  }

  .button,
  .game-card,
  input,
  select,
  textarea {
    border-width: 2px;
  }

  body::before,
  .featured-stage__viewport::after {
    display: none;
  }
}

@media (forced-colors: active) {
  :root {
    forced-color-adjust: none;
    --ink-950: Canvas;
    --ink-900: Canvas;
    --surface: Canvas;
    --surface-solid: Canvas;
    --surface-raised: Canvas;
    --paper: CanvasText;
    --paper-soft: CanvasText;
    --muted: CanvasText;
    --muted-strong: CanvasText;
    --cyan: LinkText;
    --cyan-bright: LinkText;
    --line: CanvasText;
    --line-strong: CanvasText;
  }

  :where(a, button, input, select, textarea):focus-visible {
    outline: 3px solid Highlight;
    outline-offset: 3px;
    box-shadow: none;
  }

  .live-dot,
  .signal-loader__core::after {
    background: Highlight;
  }
}

@media print {
  :root {
    color-scheme: light;
  }

  body {
    background: white;
    color: black;
  }

  body::before,
  body::after,
  .site-header,
  .site-footer,
  .particle-field,
  .hero__grid,
  .motion-toggle,
  .contact-hero__art {
    display: none !important;
  }

  a {
    color: black;
    text-decoration: underline;
  }

  .legal-copy,
  .page-hero {
    inline-size: 100%;
    max-inline-size: none;
    background: white;
    color: black;
  }

  .legal-copy :where(h1, h2, h3, p),
  .page-hero :where(h1, h2, h3, p) {
    color: black;
  }
}
