@charset "UTF-8";

/* 默认正文没有隐藏状态；观察到进入视口以后，才临时附加一次入场动画。 */
@keyframes tracing-content-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
.motion-reveal {
  animation: tracing-content-in 500ms ease var(--motion-delay, 0ms) both;
}

/* 服装展区抵达后，上下两排设备接续受光，浅透明光层保留照片细节。 */
.garment-overview .overview-machine-image::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(ellipse at 50% 28%, #ffffffb3 0%, transparent 72%),
    radial-gradient(ellipse at 50% 78%, #0744e61f 0%, transparent 68%);
}
@keyframes exhibition-arrival-equipment-light {
  0%, 100% { opacity: 0; }
  38% { opacity: .2; }
}
.garment-overview.exhibition-enter .overview-machine:is(.lt, .rt) .overview-machine-image::after {
  animation: exhibition-arrival-equipment-light 500ms ease-out 140ms 1 both;
}
.garment-overview.exhibition-enter .overview-machine:is(.lb, .rb) .overview-machine-image::after {
  animation: exhibition-arrival-equipment-light 500ms ease-out 240ms 1 both;
}
/* 主动预览优先照明，自动灯层继续计时，避免同一展品叠加受光。 */
.garment-overview.exhibition-enter .overview-machine:is(.is-preview, .is-selected) .overview-machine-image::after {
  visibility: hidden;
}

/* 原生弹窗只在打开时轻轻进入，关闭仍由浏览器与现有业务处理。 */
@keyframes tracing-dialog-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
@keyframes tracing-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
dialog[open] { animation: tracing-dialog-in 240ms ease-out both; }
dialog[open]::backdrop { animation: tracing-backdrop-in 240ms ease-out both; }
/* 设备在弹窗内依次入场，保持原有展位尺寸和点击区域。 */
@keyframes tracing-dialog-equipment-in {
  from { opacity: .3; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
.garment-detail[open] .body-equipment-card { animation: tracing-dialog-equipment-in 360ms ease-out backwards; }
.garment-detail[open] .body-equipment-card:nth-child(2) { animation-delay: 60ms; }
.garment-detail[open] .body-equipment-card:nth-child(3) { animation-delay: 120ms; }
.language-switch[open] .language-options { animation: tracing-backdrop-in 180ms ease-out both; }

/* 动画作用于手机菜单内容，固定页头保持原位。 */
@keyframes tracing-menu-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 800px) {
  .site-header nav.open, .site-header nav.is-open {
    animation: tracing-menu-in 240ms ease-out both;
  }
  /* 手机按编号排列，设备按实际上下排接续受光。 */
  .garment-overview.exhibition-enter .overview-machine:is(.lt, .lb) .overview-machine-image::after {
    animation-delay: 140ms;
  }
  .garment-overview.exhibition-enter .overview-machine:is(.rt, .rb) .overview-machine-image::after {
    animation-delay: 240ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  .garment-overview .overview-machine-image::after { content: none; animation: none !important; opacity: 0; }
  .motion-reveal, dialog[open], dialog[open]::backdrop, .garment-detail[open] .body-equipment-card, .language-switch[open] .language-options,
  .site-header nav.open, .site-header nav.is-open { animation: none !important; }
}
