/* r15j base — tokens, reset, typography shell */
:root {
  --canvas: #020001;
  --text: #F4F5F7;
  --muted: #9AA3B2;
  --crimson: #E03E3E;
  --crimson-hot: #F43F5E;
  --font-display: "Syne", system-ui, sans-serif;
  --font-sans: "Space Grotesk", system-ui, sans-serif;
  /* Hero stack rhythm @ ~1280×800 */
  --air-wm-chill: 50px;
  --air-chill-glass: 58px;
  --air-glass-actions: 36px;
  --rbox-radius: 26px;
  --rbox-pad-y: 15px;
  --rbox-pad-x: 28px;
  --rbox-max: min(720px, 94vw);
  --rbox-body: #f0f1f3;
}

@media (max-width: 767px) {
  :root {
    --air-wm-chill: 40px;
    --air-chill-glass: 44px;
    --air-glass-actions: 28px;
  }
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
}

html, body {
  min-height: 100%;
  background: var(--canvas);
  color: var(--text);
  font-family: var(--font-sans);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  overflow-x: hidden;
  overflow-y: auto;
  position: relative;
}

a { color: inherit; }

:focus-visible {
  outline: 2px solid rgba(224, 62, 62, 0.85);
  outline-offset: 3px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

.decoy {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  pointer-events: none;
}
