/* ============================================================
   base.css — 全局基础：冷档案纸面 + 细网格
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  height: 100%;
  background: var(--paper);
  color: var(--text);
  font-family: var(--font-sans);
  overscroll-behavior: none;
  -webkit-font-smoothing: antialiased;
}

body {
  min-height: 100vh;
  min-height: 100dvh;
}

a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }

/* 纸面微尘 canvas */
#starfield {
  position: fixed; inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: var(--z-bg); pointer-events: none;
  opacity: 0.55;
}

/* 档案氛围：细网格 + 浅冷雾（非星云霓虹） */
.cosmic-haze {
  position: fixed; inset: 0;
  z-index: var(--z-cosmic-haze); pointer-events: none;
  background-color: transparent;
  background-image:
    linear-gradient(rgba(20, 22, 28, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 22, 28, 0.035) 1px, transparent 1px),
    radial-gradient(ellipse 80% 55% at 50% 0%, rgba(42, 95, 143, 0.06), transparent 60%),
    radial-gradient(ellipse 50% 40% at 100% 100%, rgba(20, 22, 28, 0.04), transparent 50%);
  background-size: 48px 48px, 48px 48px, auto, auto;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition-duration: 0.15s !important;
  }
  #starfield { opacity: 0.25; }
}
