/* ============================================================
   tokens.css · 唯一颜色/尺寸真源（架构文档 §12.2）
   硬禁令：
   1. 除本文件外，任何 CSS/JS 文件不得出现十六进制色值、rgb()、hsl()
      （rgba(255,255,255,x) 纯白半透明可豁免，但优先用 --white-glass）
   2. 任何文件不得出现裸 z-index 数字，必须引用 --z-*
   3. 禁止任何紫色与任何紫到粉渐变；粉色只用 --pink，
      且只用于异地连线、爱心、高亮点缀三处
   ============================================================ */

:root {
  /* ── 配色（沿用见面倒计时，禁止改动、禁止在别处硬编码） ── */
  --blue-50:#F0F8FF;  --blue-100:#E3F0FC; --blue-200:#C9E4FB;
  --blue-300:#A8D4F7; --blue-500:#5AA3E8; --blue-600:#3B86D8;
  --ink:#24405F;      --ink-soft:#5B7A99;
  --white:#FFFFFF;
  --pink:#F8A5C2;     --warm-yellow:#FFE9A8;
  --white-glass:rgba(255,255,255,.82);
  --bg-gradient:linear-gradient(180deg,#BFE0FB 0%,#DCEFFE 48%,#F4FAFF 100%);

  /* ── 圆角 / 阴影 ── */
  --r-card:28px; --r-chip:16px; --r-pill:999px;
  --shadow-card:0 24px 70px -20px rgba(59,134,216,.42);
  --shadow-pin:0 6px 18px -6px rgba(36,64,95,.35);
  --blur-glass:blur(16px);

  /* ── 间距 / 热区 ── */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
  --hit:44px;                                  /* iOS HIG 最小热区，所有可点元素的 min-height/min-width */
  --safe-b:env(safe-area-inset-bottom,0px);
  --safe-t:env(safe-area-inset-top,0px);

  /* ── 层级（集中管理，禁止在别处写 z-index 数字） ── */
  --z-map:0; --z-map-tone:1; --z-map-veil:2; --z-hearts:3;
  --z-header:30; --z-drawer:40; --z-fab:45;
  --z-sheet:60; --z-viewer:80; --z-modal:90; --z-toast:95;

  /* ── 动效 ── */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --d-fast:180ms; --d-base:280ms; --d-fly:800ms; --d-arc:3s;

  /* ── 抽屉档位（JS 与 CSS 共享，改一处即可） ── */
  --drawer-collapsed:72px; --drawer-half:46vh; --drawer-full:88vh;
}

/* 减弱动态效果：动画时长归零（微信内核与 iOS Safari 均支持该查询） */
@media (prefers-reduced-motion: reduce){
  :root{ --d-fast:0ms; --d-base:0ms; --d-fly:1ms; --d-arc:0s; }
}
