/* ============================================================
   base.css — 基础样式 / CSS 变量 / 重置
   全息空气投影风格：无实体背景、无阴影，只有低对比光线
   ============================================================ */
:root {
  /* 色板（深空暗色） */
  --color-bg: #04060c;
  --color-text: #dbe6f5;
  --color-text-dim: #8fa3bf;
  --color-glow: #9fd8ff;            /* 主光色：柔和青白 */
  --color-glow-soft: rgba(159, 216, 255, 0.35);
  --color-line: rgba(159, 216, 255, 0.28);

  /* 时长 */
  --duration-breathe: 4600ms;       /* 呼吸光晕周期 */
  --duration-fadein: 2400ms;        /* 音乐淡入 */
  --duration-letter: 900ms;         /* 信件淡入 */
  --duration-reveal: 900ms;         /* 文字块浮现 */
  --duration-alarm-blink: 900ms;    /* 心律名称告警闪烁周期 */

  /* 文字浮现参数（与 src/config.js 保持一致） */
  --reveal-offset: 30px;
  --reveal-blur: 8px;

  /* 字体 */
  --font-body: "PingFang SC", "Microsoft YaHei", "Noto Sans SC",
               "Segoe UI", sans-serif;
  --font-mono: "SF Mono", "Consolas", "Cascadia Mono", monospace;
}

*,
*::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);
  line-height: 1.8;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* 阶段滚动锁：开场画面与心电监护阶段禁止滑动页面 */
html.stage-locked,
html.stage-locked body {
  overflow: hidden;
  touch-action: none;
  overscroll-behavior: none;
}

::selection {
  background: var(--color-glow-soft);
  color: var(--color-text);
}

img,
canvas {
  display: block;
  max-width: 100%;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  cursor: pointer;
}

/* 保证 hidden 属性始终生效（避免被 display 规则覆盖） */
[hidden] {
  display: none !important;
}

/* 减少动效偏好 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
