/* ==========================================================================
   YYKK ORBITAL ARCHIVE · fusion 设计系统 / 方向层（组件处理 + 动效）
   来源：YYKK_UI_VISUAL_DIRECTIONS_20260720 · 03-calibration-fusion/direction.css
   已剥离组件实验室特有的装饰（巨型描边 03、EDITORIAL 标记带、lab-section
   周期背景、icon-sample 装饰角标、移动端媒体查询等），保留：
   - 通用组件的 fusion 处理（按钮状态轨 / 输入框状态环 / 选项下划轨等）
   - 工具轨道 tool-rail 全部样式
   - 3 秒明暗切换四幕（cover / scan / axis / assembly）全部 CSS 编排
   - 16 图标逐 path 校准动效
   变量一律来自 tokens.css；基础组件样式来自 base.css。
   ========================================================================== */

/* ========== 1. 通用组件 fusion 处理 =======================================
   以下规则只作用于 base.css 已有的通用组件类，不依赖任何 lab-* 结构。 */

/* 按钮：左侧 4px 状态轨，激活/主按钮转纯黑轨 */
body[data-direction="fusion"] .ui-button { position:relative; }
body[data-direction="fusion"] .ui-button::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--gray-2); }
body[data-direction="fusion"] .ui-button.is-primary::before,
body[data-direction="fusion"] .ui-button.is-active::before { background:var(--black); }

/* 图标工具条：激活位叠加缺口圆环标记 */
body[data-direction="fusion"] .icon-toolbar button.is-active::after { content:""; position:absolute; inset:8px; border:1px solid var(--black); border-radius:50%; border-left-color:transparent; }

/* 输入框：左侧状态环（缺口圆），焦点/有效/错误以顶部色段表达 */
body[data-direction="fusion"] .field { padding:18px 18px 14px 64px; border:1px solid var(--line-strong); }
body[data-direction="fusion"] .field::before {
  content:""; position:absolute; left:16px; top:28px; width:26px; height:26px; border:1px solid var(--line-strong); border-radius:50%; border-bottom-color:transparent;
}
body[data-direction="fusion"] .field.is-focus::before { border-top:5px solid var(--yellow); }
body[data-direction="fusion"] .field.is-valid::before { border-top:5px solid var(--cyan); }
body[data-direction="fusion"] .field.is-error::before { border-top:5px solid var(--red); }

/* 选项卡 / 分段控件：激活项底部 3px 短轨 */
body[data-direction="fusion"] .ui-tabs button.is-active,
body[data-direction="fusion"] .segment-control button.is-active { position:relative; }
body[data-direction="fusion"] .ui-tabs button.is-active::after,
body[data-direction="fusion"] .segment-control button.is-active::after { content:""; position:absolute; inset:auto 10px 5px; height:3px; background:var(--black); }

/* 树与目录行：选中/悬停以左侧粗轨表达 */
body[data-direction="fusion"] .tree-item.is-selected { border-left:8px solid var(--black); }
body[data-direction="fusion"] .catalog-row:hover { border-left:6px solid var(--yellow); }

/* 状态标记：信号方块旋转 45 度 */
body[data-direction="fusion"] .status-mark { position:relative; padding-left:30px; }
body[data-direction="fusion"] .status-mark i { position:absolute; left:10px; transform:rotate(45deg); }

/* 步进进度：每第 3 格用深一档的黄，形成读数节奏 */
body[data-direction="fusion"] .step-progress i.is-filled:nth-child(3n) { background:var(--yellow-2); }

/* 页内锚点：为 64px 顶栏预留滚动余量 */
body[data-direction="fusion"] [data-section] { scroll-margin-top:64px; }

/* 主内容区为轨道让出 60px；页面主容器挂 .site-main（兼容旧 .lab-main） */
body[data-direction="fusion"] .site-main,
body[data-direction="fusion"] .lab-main { margin-left:var(--rail-collapsed); }

/* ========== 2. 工具轨道 tool-rail =========================================
   固定专业工具轨道：60px 图标坐标永不移动，悬停/聚焦向右展开至 180px。 */
body[data-direction="fusion"] .tool-rail {
  position:fixed; z-index:70; inset:64px auto 0 0; width:var(--rail-collapsed);
  display:flex; align-content:initial; flex-direction:column; padding:14px 0 10px; overflow:hidden;
  color:var(--rail-fg); background:var(--rail-bg); border-right:1px solid var(--rail-muted); isolation:isolate;
  transition:width 300ms cubic-bezier(.16,1,.3,1);
}
body[data-direction="fusion"] .tool-rail[data-state="expanded"] { width:var(--rail-expanded); }
.tool-rail__nav { display:grid; gap:4px; }
.tool-rail__item {
  position:relative; width:100%; height:36px; min-height:0; display:grid;
  grid-template-columns:60px 120px; place-content:initial; align-items:center; gap:0;
  border:0; color:var(--rail-muted); background:transparent; text-align:left; letter-spacing:0;
  transition:color 200ms ease,background-color 200ms ease,opacity 220ms ease,transform 320ms cubic-bezier(.16,1,.3,1);
}
.tool-rail__item:first-child { border-top:0; }
.tool-rail__item:hover { color:var(--rail-fg); background:var(--rail-hover); }
.tool-rail__item.is-active { color:var(--rail-fg); background:var(--rail-active); }
.tool-rail__item.is-active::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--rail-line); }
.tool-rail__item svg,
.tool-rail__tool svg,
.tool-rail__cta svg { justify-self:center; width:22px; height:22px; flex:none; }
.tool-rail__item > span,
.tool-rail__tool > span {
  min-width:0; overflow:hidden; white-space:nowrap; opacity:0; transform:translateX(-8px);
  font:500 9px/1 var(--sans); letter-spacing:.08em;
  transition:opacity 200ms ease,transform 300ms cubic-bezier(.16,1,.3,1);
}
.tool-rail__item b { display:inline-block; width:27px; font:500 8px/1 var(--mono); }
.tool-rail[data-state="expanded"] :is(.tool-rail__item,.tool-rail__tool) > span { opacity:1; transform:translateX(0); }

.tool-rail__tools { margin-top:auto; display:grid; gap:2px; padding:6px 0 0; background:var(--rail-tools-bg); }
.tool-rail__tool {
  position:relative; width:100%; height:36px; display:grid; grid-template-columns:60px 1fr 31px;
  align-items:center; padding:0; border:0; color:var(--rail-muted); background:transparent; text-align:left; cursor:pointer;
  transition:color 200ms ease,background-color 200ms ease,opacity 220ms ease,transform 320ms cubic-bezier(.16,1,.3,1);
}
.tool-rail__tool:hover { color:var(--rail-fg); background:var(--rail-hover); }
.tool-rail__tool.is-enabled { color:var(--rail-fg); }
.tool-rail__tool.is-enabled::before { content:""; position:absolute; left:11px; top:9px; width:4px; height:4px; background:var(--rail-line); }
.tool-rail__tool :is(kbd,small) { opacity:0; font:500 7px/1 var(--mono); }
.tool-rail[data-state="expanded"] .tool-rail__tool :is(kbd,small) { opacity:1; transition:opacity 180ms ease 100ms; }
.tool-rail__cta {
  width:36px; height:78px; margin:6px 12px; display:grid; grid-template-columns:36px 120px; align-items:center;
  overflow:hidden; color:var(--rail-bg); background:var(--rail-cta-bg); transition:width 300ms cubic-bezier(.16,1,.3,1),height 300ms cubic-bezier(.16,1,.3,1),margin 300ms cubic-bezier(.16,1,.3,1),opacity 220ms ease,transform 320ms cubic-bezier(.16,1,.3,1);
}
.tool-rail__cta > span { white-space:nowrap; opacity:0; font:700 9px/1 var(--sans); letter-spacing:.12em; transition:opacity 180ms ease; }
.tool-rail__cta:hover { color:var(--rail-fg); background:var(--rail-active); }
body[data-direction="fusion"] .tool-rail .tool-rail__cta { place-content:normal; justify-content:normal; align-content:normal; color:var(--rail-bg); border:0; }
body[data-direction="fusion"] .tool-rail .tool-rail__cta:hover { color:var(--rail-fg); }
.tool-rail[data-state="expanded"] .tool-rail__cta { width:156px; height:32px; margin:6px 12px; grid-template-columns:36px 1fr; }
.tool-rail[data-state="expanded"] .tool-rail__cta > span { opacity:1; transition-delay:90ms; }
/* V1.1：toggle 已移除（轨道悬停自动展开）；「老版网站」为纯 <a>，第三列加宽容纳 LEGACY SITE */
.tool-rail__tool--legacy { grid-template-columns:60px 1fr 62px; text-decoration:none; }
body[data-direction="fusion"] .tool-rail :is(.tool-rail__item,.tool-rail__tool) > span { color:var(--rail-text-muted); }
body[data-direction="fusion"] .tool-rail .tool-rail__item b { color:var(--rail-text-muted); }
body[data-direction="fusion"] .tool-rail .tool-rail__tool :is(kbd,small) { color:var(--rail-text-muted); }
body[data-direction="fusion"] .tool-rail :is(.tool-rail__item,.tool-rail__tool) > svg { color:var(--rail-muted); }
body[data-direction="fusion"] .tool-rail :is(.tool-rail__item:hover,.tool-rail__item.is-active,.tool-rail__tool:hover,.tool-rail__tool.is-enabled) > span { color:var(--rail-fg); }
body[data-direction="fusion"] .tool-rail .tool-rail__item:is(:hover,.is-active) b { color:var(--rail-fg); }
body[data-direction="fusion"] .tool-rail .tool-rail__tool:is(:hover,.is-enabled) :is(kbd,small) { color:var(--rail-fg); }
body[data-direction="fusion"] .tool-rail :is(.tool-rail__item:hover,.tool-rail__item.is-active,.tool-rail__tool:hover,.tool-rail__tool.is-enabled) > svg { color:var(--rail-fg); }
body[data-direction="fusion"] .tool-rail .tool-rail__item {
  min-height:36px; gap:0; border:0; color:var(--rail-muted); background:var(--rail-bg);
}
body[data-direction="fusion"] .tool-rail .tool-rail__item:hover { color:var(--rail-fg); background:var(--rail-hover); }
body[data-direction="fusion"] .tool-rail .tool-rail__item.is-active { color:var(--rail-fg); background:var(--rail-active); }
body[data-direction="fusion"] .tool-rail .tool-rail__cta { min-height:78px; }
body[data-direction="fusion"] .tool-rail[data-state="expanded"] .tool-rail__cta { min-height:32px; }
body[data-direction="fusion"] .tool-rail :is(button,a):focus-visible { outline:2px solid var(--rail-line); outline-offset:-3px; }

/* 轨道位于页面覆盖层之上，并沿自己的纵轴独立校准 */
.tool-rail__nav,
.tool-rail__tools { position:relative; z-index:1; }
body.is-tone-transitioning .tool-rail { z-index:1001; }
body[data-direction="fusion"] .tool-rail::after {
  content:""; position:absolute; z-index:2; inset:0; pointer-events:none;
  background:var(--rail-target-bg,var(--rail-bg)); border-bottom:1px solid var(--rail-line); opacity:0;
  transform:scaleY(0); transform-origin:top;
}
body.is-tone-transitioning .tool-rail::after { opacity:1; transform:scaleY(0); }
body[data-tone-phase="covering"] .tool-rail::after,
body[data-tone-phase="covered"] .tool-rail::after {
  opacity:1; transform:scaleY(1); transition:transform 620ms cubic-bezier(.72,0,.18,1);
}
body.tone-frame-ready .tool-rail::after { opacity:0; transform:scaleY(1); transition:opacity 120ms linear; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-frame-ready) :is(.tool-rail__item,.tool-rail__tool,.tool-rail__cta) {
  opacity:0; transform:translateY(-7px); transition:none;
}
body.is-tone-transitioning.tone-theme-painted.tone-frame-ready :is(.tool-rail__item,.tool-rail__tool,.tool-rail__cta) {
  opacity:1; transform:translateY(0);
  transition:opacity 220ms ease,transform 320ms cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--rail-stagger,0) * 35ms);
}
.tool-rail__item:nth-child(1) { --rail-stagger:0; }
.tool-rail__item:nth-child(2) { --rail-stagger:1; }
.tool-rail__item:nth-child(3) { --rail-stagger:2; }
.tool-rail__item:nth-child(4) { --rail-stagger:3; }
.tool-rail__item:nth-child(5) { --rail-stagger:4; }
.tool-rail__item:nth-child(6) { --rail-stagger:5; }
.tool-rail__tools > :nth-child(1) { --rail-stagger:6; }
.tool-rail__tools > :nth-child(2) { --rail-stagger:7; }

/* ========== 3. 明暗切换四幕覆盖层 =========================================
   3 秒分层校准：扫描（scan）、轴向汇聚（axis）、磁吸装配（assembly）。
   时序由 tone-model.js 的 TONE_SEQUENCE 驱动，CSS 只响应 body 上的
   is-tone-transitioning / tone-*-ready / data-tone-phase 状态。          */
.tone-transition { position:fixed; inset:0; z-index:999; visibility:hidden; pointer-events:none; --tone-source-bg:#191919; --tone-target-bg:#fff; }
.tone-transition__bed { position:absolute; inset:0; }
.tone-transition__bed.is-source { display:none; background:var(--tone-source-bg); }
.tone-transition__bed.is-target { overflow:hidden; background:var(--tone-target-bg); transform:scaleX(0); transform-origin:right; }
.tone-transition__line { position:absolute; inset:0 auto 0 0; z-index:2; width:1px; transform:translateX(-100%); }
.tone-transition__line.is-magenta { background:#FF1AAC; }
.tone-transition__line.is-cyan { left:2px; background:#00FFA2; }
.tone-transition__status { position:fixed; z-index:3; top:72px; right:0; display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; width:0; height:34px; padding:0; overflow:hidden; white-space:nowrap; color:#191919; background:#FFFA00; font:9px/1 var(--mono); letter-spacing:.13em; }
.tone-transition__status b { font-size:10px; }
.tone-transition__status i { padding-left:10px; border-left:1px solid #191919; font-style:normal; }
body.is-tone-transitioning .tone-transition { visibility:visible; }
body.is-tone-transitioning .tone-transition__status { width:390px; padding:0 14px; transition:width 180ms steps(6,end),padding 180ms steps(6,end); }
body[data-tone-phase="covering"] .tone-transition__bed.is-target,
body[data-tone-phase="covered"] .tone-transition__bed.is-target { transform:scaleX(1); transition:transform 620ms cubic-bezier(.72,0,.18,1); }
body.tone-color-ready[data-tone-phase="framing"] .tone-transition__bed.is-target,
body[data-tone-phase="scan"] .tone-transition__bed.is-target,
body[data-tone-phase="axis"] .tone-transition__bed.is-target,
body[data-tone-phase="assembly"] .tone-transition__bed.is-target,
body[data-tone-phase="data"] .tone-transition__bed.is-target,
body[data-tone-phase="stable"] .tone-transition__bed.is-target { visibility:hidden; transform:scaleX(1); }
body[data-direction="fusion"].tone-color-latch,
body[data-direction="fusion"].tone-color-latch * { transition:none!important; }

/* ========== 4. 动效分组（四幕的页面侧编排） ================================
   页面元素以 data-motion="scan|axis|assembly" + motion-mask 参与校准；
   data-tone-group="frame" 标记页框（顶栏等）随 framing 阶段先行就位。 */
.motion-mask { position:relative; }
[data-motion="scan"].motion-mask::after,
[data-motion="assembly"].motion-mask::after { content:""; position:absolute; z-index:8; left:0; right:0; top:100%; height:2px; pointer-events:none; background:linear-gradient(90deg,#FF1AAC 0 50%,#00FFA2 50%); opacity:0; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-frame-ready) [data-tone-group="frame"] { opacity:0; transform:translateY(12px); }
body.is-tone-transitioning [data-tone-group="frame"] { transition:opacity 300ms ease,transform 420ms cubic-bezier(.16,1,.3,1); }

body.is-tone-transitioning.tone-theme-painted:not(.tone-scan-ready) [data-motion="scan"].motion-mask { clip-path:inset(100% 0 0); }
body.is-tone-transitioning [data-motion="scan"].motion-mask { transition:clip-path 620ms cubic-bezier(.72,0,.18,1); }
body.tone-scan-ready [data-motion="scan"].motion-mask::after { top:0; opacity:1; transition:top 620ms cubic-bezier(.72,0,.18,1),opacity 80ms linear 540ms; }

body.is-tone-transitioning.tone-theme-painted:not(.tone-axis-ready) [data-motion="axis"][data-motion-side="left"] { opacity:0; transform:translateX(-42px); clip-path:inset(0 100% 0 0); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-axis-ready) [data-motion="axis"][data-motion-side="right"] { opacity:0; transform:translateX(42px); clip-path:inset(0 0 0 100%); }
body.is-tone-transitioning [data-motion="axis"] { transition:opacity 360ms ease,transform 560ms cubic-bezier(.16,1,.3,1),clip-path 520ms cubic-bezier(.16,1,.3,1); }

body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) :is(.tone-control,.ui-button,.icon-toolbar button,.ui-tabs button,.segment-control button,.square-switch,.field) { opacity:0; clip-path:inset(46% 48%); }
body.is-tone-transitioning :is(.tone-control,.ui-button,.icon-toolbar button,.ui-tabs button,.segment-control button,.square-switch,.field) { transition:opacity 260ms ease,transform 520ms cubic-bezier(.16,1,.3,1),clip-path 480ms cubic-bezier(.76,0,.24,1),background-color 180ms steps(2,end),border-color 180ms steps(2,end); }
body.tone-assembly-ready [data-motion="assembly"].motion-mask::after { top:0; opacity:1; transition:top 520ms cubic-bezier(.72,0,.18,1),opacity 80ms linear 440ms; }
body.tone-assembly-ready :is(.ui-button,.icon-toolbar button,.ui-tabs button,.segment-control button,.square-switch,.field):nth-child(2n) { transition-delay:65ms; }
body.tone-assembly-ready :is(.ui-button,.icon-toolbar button,.ui-tabs button,.segment-control button,.square-switch,.field):nth-child(3n) { transition-delay:130ms; }
body.tone-assembly-ready :is(.ui-button,.icon-toolbar button) svg { transition:none; }

body.is-tone-transitioning.tone-theme-painted:not(.tone-data-ready) :is(.data-tools,.tree-item,.catalog-row) { opacity:0; transform:translateY(14px); clip-path:inset(100% 0 0); }
body.is-tone-transitioning :is(.data-tools,.tree-item,.catalog-row) { transition:opacity 260ms ease,transform 460ms cubic-bezier(.16,1,.3,1),clip-path 420ms cubic-bezier(.72,0,.18,1); }
body.tone-data-ready :is(.catalog-row,.tree-item,.field):nth-child(2n) { transition-delay:60ms; }
body.tone-data-ready :is(.catalog-row,.tree-item,.field):nth-child(3n) { transition-delay:120ms; }
body.tone-stable .tone-transition__status { width:180px; transition:width 120ms steps(4,end); }

/* ========== 5. 图标逐 path 校准动效 =======================================
   icon-motion.js 将 <use> 水合为内联 path（.icon-motion .icon-part），
   装配阶段各部件按 dashoffset / 位移 / 旋转归位，几何来自 icons.svg。 */
/* 光学尺寸为可选能力：容器挂 data-icon-optical 才启用，避免影响轨道 22px 几何 */
body[data-direction="fusion"] .icon-sample svg,
body[data-direction="fusion"] [data-icon-optical] svg { width:var(--icon-optical-size); height:var(--icon-optical-size); overflow:visible; }
.icon-motion .icon-part { transform-box:fill-box; transform-origin:center; vector-effect:non-scaling-stroke; stroke-linecap:square; stroke-linejoin:miter; stroke-dasharray:72; stroke-dashoffset:0; transition:stroke-dashoffset 460ms cubic-bezier(.16,1,.3,1),opacity 240ms ease,transform 480ms cubic-bezier(.16,1,.3,1); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) .icon-motion .icon-part { opacity:0; stroke-dashoffset:72; }
body.tone-assembly-ready .icon-motion .icon-detail { transition-delay:90ms; }
body.tone-assembly-ready .icon-motion .icon-signal { transition-delay:170ms; }

body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="search"] .icon-frame { transform:translateX(-3px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="search"] .icon-detail { transform:rotate(90deg); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="search"] .icon-signal { transform:translate(-4px,-4px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="close"] .part-a { transform:translate(-4px,-4px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="close"] .part-b { transform:translate(4px,-4px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="folder"] .icon-frame { transform:scaleX(.25); transform-origin:left center; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="folder"] .icon-detail { transform:translateX(-5px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="document"] .icon-detail { transform:rotate(-90deg); transform-origin:left bottom; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="document"] .icon-signal { transform:translateY(5px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="external"] .icon-detail { transform:scale(.35); transform-origin:left bottom; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="external"] .icon-signal { transform:translate(-6px,6px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="filter"] .icon-frame { transform:scaleX(.35); transform-origin:center; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="filter"] .icon-detail { transform:scaleX(.1); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="sort"] .part-a { transform:translateY(6px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="sort"] .part-b { transform:translateY(-6px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="chevron"] .part-a { transform:translate(-5px,3px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="chevron"] .part-b { transform:translate(-5px,-3px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="copy"] .part-a { transform:translate(4px,4px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="copy"] .part-b { transform:translate(-4px,-4px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="send"] .icon-frame { transform:scaleX(.35); transform-origin:left center; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="send"] .icon-signal { transform:translateX(-7px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="check"] .icon-signal { stroke-dashoffset:96; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="check"] .part-a { transform:translate(3px,3px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="check"] .part-b { transform:translate(-3px,-3px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="state"] .icon-frame { transform:rotate(-8deg); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="state"] .icon-detail { transform:rotate(8deg); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="state"] .icon-signal { transform:scale(.2); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="grid"] .part-a { transform:translate(3px,3px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="grid"] .part-b { transform:translate(-3px,3px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="list"] .icon-detail { transform:translateX(-5px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="list"] .icon-signal { transform:scaleX(.08); transform-origin:left center; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="command"] .icon-signal { transform:translateX(-5px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="command"] .icon-detail { transform:scaleX(.1); transform-origin:left; }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="download"] .icon-signal { transform:translateY(-7px); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="download"] .icon-frame { transform:scaleX(.15); }
body.is-tone-transitioning.tone-theme-painted:not(.tone-assembly-ready) [data-icon="download"] .icon-detail { transform:translateY(5px); }

/* ========== 6. 无障碍：减弱动效 ==========================================
   仅桌面端；prefers-reduced-motion 下跳过全部校准编排，直接呈现终态。 */
@media (prefers-reduced-motion:reduce) {
  body[data-direction="fusion"] * { scroll-behavior:auto; }
  .tone-transition { display:none !important; }
  body.is-tone-transitioning * { opacity:1 !important; transform:none !important; clip-path:none !important; transition:none !important; }
  .motion-mask::after { display:none !important; }
  .tool-rail, .tool-rail * { transition:none !important; }
  .tool-rail::after { display:none !important; }
}

/* ========== 7. 页头直接搜索（V1.1 工位 2） ===================================
   SEARCH 按钮 → 常驻输入框 + 锚定在输入框下方的下拉面板（非全屏弹窗）。
   fusion 契约：零圆角、1.5px 描边、聚焦黄色描边、mono 微缩字、禁阴影。 */
.site-head__find { position:relative; display:flex; align-items:center; }
.site-head__find input {
  width:240px; height:34px; padding:0 12px;
  border:1.5px solid var(--line-strong); border-radius:0;
  background:transparent; color:var(--fg); outline:0;
  font:11px/1 var(--mono); letter-spacing:.06em;
  transition:border-color 180ms ease;
}
.site-head__find input::placeholder { color:var(--muted); }
.site-head__find input:focus { border-color:var(--yellow); }
.site-head__find kbd {
  margin-left:8px; padding:2px 4px;
  border:1px solid var(--line-strong); color:var(--muted); font:7px/1 var(--mono);
}
.head-search-panel {
  position:absolute; z-index:120; top:calc(100% + 6px); right:0;
  width:min(420px, 92vw); margin:0; padding:0; list-style:none;
  max-height:56vh; overflow-y:auto;
  border:1.5px solid var(--line-strong); background:var(--bg); color:var(--fg);
}
.head-search-panel[hidden] { display:none; }
.head-search-panel a {
  display:grid; grid-template-columns:1fr auto; gap:3px 14px;
  padding:10px 14px; border-bottom:1px solid var(--line);
  color:inherit; text-decoration:none;
}
.head-search-panel a:hover,
.head-search-panel a.is-active { background:var(--yellow); color:#000; }
.head-search-panel a:hover *,
.head-search-panel a.is-active * { color:#000 !important; }
.hs-title { font:700 12px/1.4 var(--sans); }
.hs-date { color:var(--muted); font:8px/1 var(--mono); letter-spacing:.12em; align-self:start; padding-top:3px; white-space:nowrap; }
.hs-path { grid-column:1 / -1; color:var(--muted); font:8px/1.5 var(--mono); letter-spacing:.1em; }
.head-search-panel mark { background:var(--yellow); color:#000; padding:0 1px; }
.head-search-panel a:hover mark,
.head-search-panel a.is-active mark { background:#000; color:var(--yellow); }
.head-search-panel .hs-empty { padding:12px 14px; color:var(--muted); font:8px/1 var(--mono); letter-spacing:.18em; }

/* ===== 搜索面板状态条（V1.2 追加）：LOADING / ERROR+RETRY / NO RESULT ===== */
.head-search-panel .hs-state {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 14px; color:var(--muted);
  font:8px/1 var(--mono); letter-spacing:.18em;
}
.head-search-panel .hs-state--loading::after {
  content:''; flex:none; width:8px; height:8px;
  border:1.5px solid var(--yellow); border-right-color:transparent;
  animation:hs-index-spin 900ms linear infinite;
}
@keyframes hs-index-spin { to { transform:rotate(360deg); } }
.head-search-panel .hs-state--error { color:var(--yellow); }
.head-search-panel .hs-retry {
  flex:none; margin:0; padding:4px 10px; cursor:pointer;
  border:1.5px solid var(--yellow); border-radius:0; background:transparent;
  color:var(--yellow); font:8px/1 var(--mono); letter-spacing:.18em;
  transition:background 150ms ease, color 150ms ease;
}
.head-search-panel .hs-retry:hover,
.head-search-panel .hs-retry:focus-visible { background:var(--yellow); color:#000; outline:0; }
