/* 沉浸式原型共用：三層舞台、讀數字級下限、證據抽屜骨架。各方向自己的配色與材質放在各自的 css。 */
:root {
  --ink: #f6f1e7;
  --ink-dim: #c9c2d8;
  --plate: #f3ede0;
  --plate-ink: #1b1726;
  --danger: #ff4d5e;
  --focus: #ffd56b;
  --read-xl: clamp(30px, 4.2vw, 56px);
  --read-l: clamp(22px, 2.6vw, 34px);
  --read-m: clamp(17px, 1.6vw, 22px);
  --read-s: 15px; /* 字級下限：業主嫌字小，任何讀數不低於 15px */
  color-scheme: dark;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: #07060d; color: var(--ink); font: 400 17px/1.45 ui-sans-serif, system-ui, -apple-system, "PingFang TC", "Noto Sans TC", sans-serif; }
button { font: inherit; color: inherit; }
.num { font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }

.stage { position: fixed; inset: 0; overflow: hidden; touch-action: none; user-select: none; }
.stage-gl, .stage-2d { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.stage-2d { cursor: grab; }
.stage-2d:active { cursor: grabbing; }
.stage-hud { position: absolute; inset: 0; pointer-events: none; }
.stage-hud .hit { pointer-events: auto; cursor: pointer; }

.skip { position: absolute; left: -9999px; }
.skip:focus { left: 12px; top: 12px; z-index: 10; background: var(--plate); color: var(--plate-ink); padding: 8px 12px; border-radius: 6px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }

dialog.evidence { max-width: min(560px, 92vw); max-height: 86vh; overflow: auto; border: 0; border-radius: 18px; padding: 22px 24px 20px; background: var(--plate); color: var(--plate-ink); box-shadow: 0 30px 80px rgba(0,0,0,.55); }
dialog.evidence::backdrop { background: rgba(6, 4, 14, .55); backdrop-filter: none; }
.ev-head { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: start; }
.ev-kicker { grid-column: 1; margin: 0; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.ev-title { grid-column: 1; margin: 0; font-size: 22px; line-height: 1.25; }
.ev-close { grid-column: 2; grid-row: 1 / span 2; border: 0; background: transparent; font-size: 30px; line-height: 1; cursor: pointer; }
.ev-value { margin: 14px 0 4px; font-size: 34px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ev-level { display: inline-block; margin: 0 0 12px; padding: 3px 10px; border-radius: 999px; font-size: 14px; font-weight: 600; background: #e3dccb; }
.ev-level.lv-unavailable, .ev-level.lv-not-established { background: #2a2433; color: #fff; }
.ev-list { margin: 0; display: grid; gap: 8px; }
.ev-row { display: grid; grid-template-columns: minmax(110px, 30%) 1fr; gap: 10px; font-size: 15px; }
.ev-row dt { opacity: .65; } .ev-row dd { margin: 0; overflow-wrap: anywhere; }
.ev-gaps h3 { font-size: 16px; margin: 16px 0 6px; }
.ev-gaps ul, .ev-notes ul { margin: 0; padding-left: 20px; font-size: 15px; }
.ev-source { display: inline-block; margin-top: 14px; font-weight: 600; color: #3b1f8f; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
