/* AWE 页：12 个事件条目绕着鸽子排成钟表（位置 / 变形由 js/pages/awe.js 每帧算：表盘平面倾斜投影出的 skew + 额外 skew）
   层次：3D 画布（背景、鸽子、墨水）→ 条目 z 3 → 导航 100。整层不可选中、不挡点击（点击吸引要用） */
#awe-text {
  position: fixed; inset: 0; z-index: 3;
  display: none; opacity: 0;
  pointer-events: none;
  -webkit-user-select: none; user-select: none;
  --awe-name: 26px; --awe-small: 11px; --awe-color: #ece8e0;
}
body.page-awe #awe-text, body.pre-awe #awe-text { display: block; }
#awe-text .awe-entry { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform, opacity; }
#awe-text .awe-entry .in { transform: translate(-50%, -50%); text-align: center; white-space: nowrap; color: var(--awe-color); }
#awe-text .code { font: 400 var(--awe-small)/1.4 var(--font-label); letter-spacing: .14em; opacity: .7; }
#awe-text .name { font: 700 var(--awe-name)/1 var(--font-display); letter-spacing: -.01em; }
#awe-text .meta { font: 400 var(--awe-small)/1.5 var(--font-body); opacity: .55; margin-top: .3em; }
/* 全文（2026-10-18，#awe-text.full）：每条一个沿半径的长条，宽度由脚本按到屏幕边的距离设；标题行 + 各段全文，左对齐、可换行 */
#awe-text .body { display: none; }
#awe-text.full .awe-entry .in { text-align: left; white-space: normal; }
#awe-text.full .body { display: block; margin-top: .6em; font: 400 calc(var(--awe-body, 7.5px) * var(--fit, 1))/var(--awe-body-line, 1.3) var(--font-body);   /* --fit：这一条放不下时脚本缩小 */ color: var(--awe-color); }
#awe-text.full .body p { margin: 0 0 .35em; }
#awe-text .body .sec { font-family: var(--font-label); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; opacity: .6; }
#awe-text.no-sec .body .sec { display: none; }
#awe-text .body .redacted { display: inline-block; width: 3.5em; height: .9em; vertical-align: -0.12em; background: var(--awe-color); opacity: .85; }

/* ---------- 单条档案 + 时间轴（2026-10-18）：一次读一条 AWE，正文两栏避开中间的鸽子；底部时间轴排出全部 12 条 ----------
   层次和钟表文字一样（z 3，在 3D 画布之上、导航之下）。整层不挡点击，只有时间轴条目和链接可点 */
#awe-doc {
  position: fixed; inset: 0; z-index: 3; display: none; opacity: 0; pointer-events: none;
  -webkit-user-select: none; user-select: none; color: var(--doc-ink, #ece8e0);
  zoom: var(--unzoom, 1);   /* 抵消浏览器缩放（Ctrl + / −，2026-10-20）：线条、方点、细线、间距保持原来的物理大小（字号本来就按屏高算）；awe.js 的 layoutDoc 在这层的坐标（屏幕 × z）里排 */
  --doc-title: 64px; --doc-body: 15px; --doc-label: 11px; --doc-col: 600px; --doc-gap: 700px; --tl-title: 15px; --tl-dim: .42;
}
body.page-awe #awe-doc, body.pre-awe #awe-doc { display: block; }
#awe-doc .doc {
  position: absolute; box-sizing: border-box;
  column-count: 2; column-gap: var(--doc-gap); column-fill: auto;   /* 不写 column-width：栏宽 + 间距正好等于容器宽时，浏览器的浮点误差会算成 1 栏（栏宽由 gap 反推 = --doc-col） */
  font: 400 calc(var(--doc-body) * var(--doc-fit, 1))/var(--doc-line, 1.55) var(--font-body);   /* --doc-fit：每条按长短自动缩放，两栏写满到底 */
}
/* 档案头：机构 / 类别，下面一条细线 */
#awe-doc .doc-head {
  display: flex; justify-content: space-between; gap: 2em; padding-bottom: .7em; border-bottom: 1px solid currentColor;
  font: 500 var(--doc-label)/1.4 var(--font-label); letter-spacing: .16em; text-transform: uppercase; opacity: .7;
}
#awe-doc .doc-code { margin-top: 2.2em; font: 500 calc(var(--doc-label) * 1.25)/1 var(--font-label); letter-spacing: .2em; opacity: .75; }
#awe-doc .doc-title { margin: .25em 0 .45em; font: 700 var(--doc-title)/.95 var(--font-display); letter-spacing: -.02em; break-after: avoid; }
/* 表头：栏目名 / 内容两列，每行一条细线 */
#awe-doc .doc-meta {
  display: grid; grid-template-columns: auto 1fr; margin: 0 0 2.2em; border-top: 1px solid currentColor; break-inside: avoid;
  font: 400 var(--doc-body)/1.35 var(--font-body);
}
#awe-doc .doc-meta dt, #awe-doc .doc-meta dd { margin: 0; padding: .55em 0; border-bottom: 1px solid color-mix(in srgb, var(--doc-ink, #ece8e0) 28%, transparent); }
#awe-doc .doc-meta dt { padding-right: 2.4em; font: 500 var(--doc-label)/1.9 var(--font-label); letter-spacing: .16em; text-transform: uppercase; opacity: .6; }
/* 各段：栏目名像 FBC 档案的「SUMMARY:」——小号大写、下划线 */
#awe-doc .doc-sec { margin-bottom: var(--doc-secgap, 2em); }
#awe-doc .doc-sec:last-child { margin-bottom: 0; }   /* 最后一段不留尾巴：自动撑间距时右栏最后一行才能正好落到底 */
#awe-doc .doc-sec:last-child p:last-child { margin-bottom: 0; }
#awe-doc .doc-sec h2 {
  margin: 0 0 .7em; font: 500 var(--doc-label)/1.4 var(--font-label); letter-spacing: .18em; text-transform: uppercase;
  text-decoration: underline; text-underline-offset: .35em; break-after: avoid;
}
#awe-doc .doc-sec p { margin: 0 0 var(--doc-para, 1em); text-wrap: pretty; }
#awe-doc .redacted { display: inline-block; height: .92em; vertical-align: -0.13em; background: currentColor; }
/* 时间轴：上面是按真实年份比例的刻度尺（SVG），每条 AWE 一个方点，引线拉到下面等距排开的标题 */
#awe-doc .timeline { position: absolute; height: auto; }
#awe-doc .tl-svg { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; }
#awe-doc .tl-axis { stroke: var(--doc-ink, #ece8e0); stroke-width: 1; opacity: .55; }
#awe-doc .tl-year { fill: var(--doc-ink, #ece8e0); opacity: .6; text-anchor: middle; font: 500 calc(var(--doc-label) * .95) var(--font-label); letter-spacing: .14em; }
#awe-doc .tl-lead { fill: none; stroke: var(--doc-ink, #ece8e0); stroke-width: 1; opacity: calc(var(--tl-dim) * .6); }
#awe-doc .tl-lead.on { opacity: 1; }
#awe-doc .tl-mark { fill: var(--doc-bg, #091015); stroke: var(--doc-ink, #ece8e0); stroke-width: 1; opacity: .8; }
#awe-doc .tl-mark.on { fill: var(--doc-ink, #ece8e0); opacity: 1; }
#awe-doc .tl-items { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.2em; margin-top: 64px; }
#awe-doc .tl-item {
  pointer-events: auto; cursor: pointer; display: flex; flex-direction: column; gap: .35em; align-items: flex-start;
  padding: .55em 0 0; border: 0; border-top: 1px solid transparent; background: none; color: inherit; text-align: left;
  opacity: var(--tl-dim); transition: opacity .2s, border-color .2s;
}
#awe-doc .tl-item:hover { opacity: .8; }
/* 焦点框（2026-10-21）：鼠标点过的不显示（awe.js 点完就 blur）；只用键盘 Tab 过来时，用这条的高亮色画一道细框，不用浏览器默认的橙色 */
#awe-doc .tl-item:focus { outline: none; }
#awe-doc .tl-item:focus-visible { outline: 1px solid var(--tl-hi, #ece8e0); outline-offset: 6px; }
#awe-doc .tl-item.on { opacity: 1; border-top-color: currentColor; cursor: default; }
#awe-doc .tl-date, #awe-doc .tl-code { font: 500 var(--doc-label)/1.2 var(--font-label); letter-spacing: .14em; text-transform: uppercase; }
#awe-doc .tl-code { opacity: .7; }
#awe-doc .tl-name { font: 700 var(--tl-title)/1.05 var(--font-display); letter-spacing: -.01em; }
/* 时间轴 cluster（2026-10-18）：不连线，标题左边贴着自己的点、就近往上叠；日期平时藏着，悬停时显示在点的正下方 */
#awe-doc .timeline.cluster .tl-items { position: absolute; inset: 0; margin: 0; display: block; }
#awe-doc .timeline.cluster .tl-item { position: absolute; padding: 0; border-top: 0; white-space: nowrap; gap: .25em; }
#awe-doc .timeline.cluster .tl-date { display: none; }
#awe-doc .tl-date-pop {
  position: absolute; transform: translateX(-50%); padding: .15em .5em; background: var(--doc-bg, #091015);
  font: 500 var(--doc-label)/1.3 var(--font-label); letter-spacing: .14em; white-space: nowrap;
  opacity: 0; transition: opacity .15s; pointer-events: none;
}
#awe-doc .tl-date-pop.show { opacity: 1; }
/* spread 居中对齐：标题里的编号 / 名字也居中，正对着点 */
#awe-doc .timeline.center .tl-item { align-items: center; text-align: center; }
/* 时间轴两种颜色（2026-10-18，.timeline.colors）：选中 / 悬停 = 高亮色，其余（标题、轴线、刻度、年份、点）= 正常色；
   不再用透明度区分，透明度留给脚本做微弱闪烁（所以这里不能给 opacity 加过渡） */
#awe-doc .timeline.colors .tl-item { opacity: 1; color: var(--tl-normal); transition: color .2s; }
#awe-doc .timeline.colors .tl-item:hover, #awe-doc .timeline.colors .tl-item.on { color: var(--tl-hi); }
#awe-doc .timeline.colors .tl-code { opacity: 1; }
#awe-doc .timeline.colors .tl-axis { stroke: var(--tl-hi); opacity: 1; }   /* 轴线用高亮色（用户 2026-10-18）；tlGlow 开着时脚本改成按离选中点远近渐变（inline stroke: url(#tl-glow)）。竖直小刻度 2026-10-21 用户删掉 */
#awe-doc .timeline.colors .tl-year { fill: var(--tl-hi); opacity: 1; }   /* 年份数字和高亮同色（用户 2026-10-20；原来用正常色） */
#awe-doc .timeline.colors .tl-mark { stroke: var(--tl-normal); opacity: 1; }
#awe-doc .timeline.colors .tl-mark.on { stroke: var(--tl-hi); fill: var(--tl-hi); }
#awe-doc .timeline.colors .tl-date-pop { color: var(--tl-hi); }

/* 门构图（2026-10-21，#awe-doc.door）：文字放在门和导航卡片之间。档案头（机构 / 编号 / 标题 / 表头）横跨在上，正文两栏并排；
   颜色跟这一条的配色走（--doc-ink = 高亮色，awe.js 的 applyInk；背景纯黑 --doc-bg） */
#awe-doc.door .doc-head, #awe-doc.door .doc-code, #awe-doc.door .doc-title, #awe-doc.door .doc-meta { column-span: all; }
/* 表头排成一行：日期 / 地点 / DLC 三对左右并排 */
#awe-doc.door .doc-meta { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: max-content; justify-content: start; }
#awe-doc.door .doc-meta dd { padding-right: 3.2em; }
