/* ============================================================
   天晟科技 · 基础层：重置 / 排版 / 焦点 / 降级动效
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: 1.7;
  letter-spacing: 0.02em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* ---- 氛围层：渐变网格 + 颗粒 ---- */
.atmosphere::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(58rem 38rem at 10% -12%, rgba(255, 138, 42, 0.16), transparent 60%),
    radial-gradient(46rem 34rem at 105% 2%, rgba(120, 96, 60, 0.20), transparent 55%);
}
.grain::after {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 1; opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- 排版 ---- */
h1, h2, h3 { line-height: 1.15; letter-spacing: -0.02em; }
h1 { font-family: var(--font-body); font-weight: 900; font-size: var(--fs-hero); }
h2 { font-weight: 900; font-size: var(--fs-3xl); }
h3 { font-weight: 700; font-size: var(--fs-xl); }

.mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.06em;
}
.accent { color: var(--color-accent); }
.muted { color: var(--color-muted); }

p { max-width: 62ch; }

a { color: inherit; }

/* 焦点可见性 */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: 2px;
}

::selection { background: var(--color-accent); color: #131110; }

/* ---- 降级动效 ---- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; }
}
