/* ============================================================
   sitekit 自动动效 —— 由剧本情绪走势推导，请勿手改
   推导脚本：kit/motion.py
   ============================================================ */

/* ── 第一幕：让房 ── */
.act-0 {
  --m-intensity: 0.731;
  --m-drift: 1.483s;
  --m-parallax: 0.994;
  --m-glow: 0.746;
  --m-delay: 159ms;
  --m-duration: 786ms;
  --m-scale: 1.066;
  --m-shake: 1.17px;
}
/* ── 第二幕：升值与压价 ── */
.act-1 {
  --m-intensity: 0.759;
  --m-drift: 1.526s;
  --m-parallax: 1.021;
  --m-glow: 0.766;
  --m-delay: 153ms;
  --m-duration: 774ms;
  --m-scale: 1.068;
  --m-shake: 1.214px;
}
/* ── 第三幕：绝症与赌债 ── */
.act-2 {
  --m-intensity: 0.76;
  --m-drift: 1.528s;
  --m-parallax: 1.022;
  --m-glow: 0.767;
  --m-delay: 153ms;
  --m-duration: 773ms;
  --m-scale: 1.068;
  --m-shake: 1.216px;
}
/* ── 第四幕：和解与回报 ── */
.act-3 {
  --m-intensity: 0.733;
  --m-drift: 1.486s;
  --m-parallax: 0.996;
  --m-glow: 0.748;
  --m-delay: 159ms;
  --m-duration: 785ms;
  --m-scale: 1.066;
  --m-shake: 1.173px;
}

/* ── 转场关键帧 ── */
@keyframes sitekit-ignite {
  0%   { opacity: 0; filter: brightness(2.6) saturate(.4); transform: scale(1.06); }
  38%  { opacity: 1; filter: brightness(1.5) saturate(1.2); }
  100% { opacity: 1; filter: none; transform: scale(1); }
}
@keyframes sitekit-ink {
  0%   { opacity: 0; filter: blur(14px) contrast(.5); transform: translateY(14px); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes sitekit-veil {
  0%   { opacity: 0; filter: blur(10px); transform: translateY(-8px) scale(1.02); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes sitekit-cut {
  0%   { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-18px); }
  100% { opacity: 1; clip-path: inset(0 0 0 0); transform: none; }
}
@keyframes sitekit-slowfade {
  0%   { opacity: 0; letter-spacing: .42em; filter: blur(6px); }
  100% { opacity: 1; letter-spacing: normal; filter: none; }
}
@keyframes sitekit-drift {
  0%   { opacity: 0; transform: translateY(26px) rotate(-.6deg); filter: blur(4px); }
  100% { opacity: 1; transform: none; filter: none; }
}
@keyframes sitekit-bloom {
  0%   { opacity: 0; transform: scale(.94); filter: brightness(1.8); }
  60%  { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 1; transform: none; filter: none; }
}
@keyframes sitekit-rise {
  0%   { opacity: 0; transform: translateY(26px); }
  100% { opacity: 1; transform: none; }
}
@keyframes sitekit-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sitekit-blur {
  0%   { opacity: 0; filter: blur(12px); }
  100% { opacity: 1; filter: none; }
}
@keyframes sitekit-snap {
  0%   { opacity: 0; transform: translateX(-24px) skewX(6deg); }
  100% { opacity: 1; transform: none; }
}
@keyframes sitekit-spread {
  0%   { opacity: 0; letter-spacing: .5em; }
  100% { opacity: 1; letter-spacing: .06em; }
}
@keyframes sitekit-sink {
  0%   { opacity: 0; transform: translateY(-22px); }
  100% { opacity: 1; transform: none; }
}
@keyframes sitekit-pop {
  0%   { opacity: 0; transform: scale(.9); }
  100% { opacity: 1; transform: none; }
}
@keyframes sitekit-driftfield {
  0%   { transform: translate3d(0,0,0); }
  100% { transform: translate3d(var(--m-drift-x, 20px), var(--m-drift-y, -30px), 0); }
}

/* ── 过渡类（由 main.js 按 window.MOTION 加到元素上）── */
.tr-ignite    { animation: sitekit-ignite var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-ink       { animation: sitekit-ink    var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-veil      { animation: sitekit-veil   var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-cut       { animation: sitekit-cut    var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-slowfade  { animation: sitekit-slowfade var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-drift     { animation: sitekit-drift  var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-bloom     { animation: sitekit-bloom  var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-rise      { animation: sitekit-rise   var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-fade      { animation: sitekit-fade   var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-blur      { animation: sitekit-blur   var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-snap      { animation: sitekit-snap   var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-spread    { animation: sitekit-spread var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-sink      { animation: sitekit-sink   var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }
.tr-pop       { animation: sitekit-pop    var(--m-duration, 900ms) var(--ease, cubic-bezier(.2,.8,.2,1)) both; }

/* ── 减弱动效：系统开启「减少动态效果」时全部降级 ── */
@media (prefers-reduced-motion: reduce) {
  .tr-ignite, .tr-ink, .tr-veil, .tr-cut, .tr-slowfade, .tr-drift, .tr-bloom,
  .tr-rise, .tr-fade, .tr-blur, .tr-snap, .tr-spread, .tr-sink, .tr-pop {
    animation: none !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    clip-path: none !important;
  }
  * { scroll-behavior: auto !important; }
}
