/* =========================================================
   全站交互反馈层
   只做反馈，不改布局与配色；文字不使用 scale / filter，
   避免中文在 Windows 上被重新栅格化后发虚。
   ========================================================= */
:root{
  --motion-hover:200ms;
  --motion-press:60ms;
  --motion-release:450ms;
  --motion-ease:cubic-bezier(.16,1,.3,1);
  --motion-spring:linear(0,.2459,.6526,.9468,1.0764,1.0915,1.0585,1.0219,.9993,.9914,.9921,.9957,.9988,1.0004,1);
  --motion-shadow:0 10px 24px -18px rgba(38,34,26,.55);
}

/* 滚动入场：用 translate，避免整段文字被 transform 重新采样 */
html.js .rv{
  transform:none;
  translate:0 14px;
  transition:opacity .8s var(--motion-ease),translate .8s var(--motion-ease);
}
html.js .rv.in{transform:none;translate:0 0}

/* 按钮：抬起 1px，按下 1px；不做 scale，不用 filter */
.btn{
  transform:none;
  translate:0 0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),
    0 2px 0 color-mix(in srgb,var(--action) 55%,var(--ink)),
    0 6px 14px -8px rgba(0,0,0,.35);
  transition:translate var(--motion-release) var(--motion-spring),
    background-color .2s,color .2s,border-color .2s,box-shadow .2s;
}
.btn:hover{
  translate:0 -1px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),
    0 3px 0 color-mix(in srgb,var(--action) 55%,var(--ink)),
    0 9px 18px -8px rgba(0,0,0,.4);
}
.btn:active{
  transform:none;
  translate:0 1px;
  transition:translate var(--motion-press) ease-out,background-color .12s;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.18);
}
.btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--action) 22%,transparent),
    inset 0 1px 0 rgba(255,255,255,.18),
    0 2px 0 color-mix(in srgb,var(--action) 55%,var(--ink)),
    0 6px 14px -8px rgba(0,0,0,.35);
}
.btn.ghost{box-shadow:var(--elev-1)}
.btn.ghost:hover{box-shadow:var(--elev-2)}

/* 导航下划线：只动 1px 伪元素 */
.nav-links a.txt{position:relative;background:none}
.nav-links a.txt::after{
  content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;
  background:currentColor;opacity:.6;
  transition:width var(--motion-hover) var(--motion-ease);
}
.nav-links a.txt:hover::after,
.nav-links a.txt.on::after{width:100%}

/* 文字链：焦点可见，悬停仍走原有颜色/下划线 */
.ink-link:focus-visible,
.hero-link:focus-visible,
a.plink:focus-visible{
  outline:2px solid var(--ink);outline-offset:3px;border-radius:1px;
}

/* 卡片：只抬起 2px，阴影很轻 */
.poem-item,.member{
  transition:translate var(--motion-hover) var(--motion-ease),
    box-shadow var(--motion-hover) var(--motion-ease),
    background-color var(--motion-hover) var(--motion-ease),
    border-color var(--motion-hover) var(--motion-ease);
}
.poem-item:hover,.member:hover{
  translate:0 -2px;
  box-shadow:var(--elev-2);
}
.member:hover{border-color:color-mix(in srgb,var(--seal) 32%,transparent)}

.archive-row,.lib-item summary{
  transition:background-color var(--motion-hover) var(--motion-ease),
    color var(--motion-hover) var(--motion-ease);
}
.archive-row:hover{background:color-mix(in srgb,var(--surface) 40%,transparent)}
.lib-item summary:hover{background:color-mix(in srgb,var(--surface) 45%,transparent)}
.lib-item summary:hover .t{color:var(--seal)}

/* 标签 / 概念：按下时只位移，不缩放 */
.chip,.tagpill{
  transform:none;
  translate:0 0;
  transition:translate var(--motion-release) var(--motion-spring),
    background-color .2s,border-color .2s,color .2s;
}
.chip:hover,.tagpill:hover{translate:0 -1px}
.chip:active,.tagpill:active{translate:0 1px;transition:translate var(--motion-press) ease-out}
.chip:focus-visible,.tagpill:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--action) 22%,transparent),0 1px 0 var(--line-soft);
}

/* 主题切换：图标轻微转动，文字不动 */
.theme-toggle{transition:color .2s,border-color .2s,background-color .2s}
.theme-toggle svg{transition:transform .4s var(--motion-ease)}
.theme-toggle:hover svg{transform:rotate(-12deg)}

/* 登录/注册弹窗：淡入 + 轻微上移，不做模糊 */
.zz-authbox{animation:zz-backdrop-in .22s ease both}
.zz-authpanel{animation:zz-panel-in .34s var(--motion-ease) both}
@keyframes zz-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes zz-panel-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}

@media (prefers-reduced-motion:reduce){
  .btn,.chip,.tagpill,.poem-item,.member,.archive-row,.lib-item summary{translate:none!important}
  .nav-links a.txt::after{transition:none}
}

/* 诗文卡标题：悬停时 1px 下划线展开（主题板 Editorial 配方） */
.poem-item .pi-title a{position:relative;display:inline-block}
.poem-item .pi-title a::after{
  content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;
  background:currentColor;opacity:.6;transition:width .35s var(--motion-ease);
}
.poem-item:hover .pi-title a::after,
.poem-item:focus-within .pi-title a::after{width:100%}
