/* 插图动效覆盖层（ila.js） */
.ila-host{position:relative}
.ila{position:absolute;pointer-events:none;overflow:hidden;--s:1;transition:transform .6s var(--ease,ease),filter .3s}
.ila i{position:absolute;display:block;animation-play-state:paused}
.ila-on i,.ila-on i b,.ila-on i path{animation-play-state:running}
.art:hover .ila{transform:translate(-3px,-3px)}
.good .pic .ila{transition:transform .8s var(--ease,ease)}
.good:hover .pic .ila{transform:scale(1.06)}
[data-theme=dark] .ila{filter:brightness(.85)}
.ila-s{background-repeat:no-repeat;will-change:transform}
.ila-twinkle{animation:ila-tw 2.8s ease-in-out infinite}
.ila-bob{animation:ila-bob 4.2s ease-in-out infinite}
.ila-beat{animation:ila-beat 2.4s ease-in-out infinite}
.ila-pulse{animation:ila-pulse 1.8s ease-out infinite}
.ila-drift{animation:ila-drift 6s ease-in-out infinite}
.ila-pop{animation:ila-pop 6s ease-out infinite}
@keyframes ila-tw{0%,100%{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.62) rotate(18deg);opacity:.45}}
@keyframes ila-bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(calc(var(--amp,6) * -1px * var(--s))) rotate(var(--rot,0deg))}}
@keyframes ila-beat{0%,40%,100%{transform:scale(1)}12%{transform:scale(1.18)}24%{transform:scale(.96)}32%{transform:scale(1.1)}}
@keyframes ila-pulse{0%{transform:scale(.8);opacity:0}25%{opacity:1}70%{transform:scale(1.08);opacity:.9}100%{transform:scale(1.15);opacity:0}}
@keyframes ila-drift{0%,100%{transform:translate(0,0) rotate(0)}30%{transform:translate(calc(10px * var(--s)),calc(-8px * var(--s))) rotate(-4deg)}65%{transform:translate(calc(4px * var(--s)),calc(6px * var(--s))) rotate(3deg)}}
@keyframes ila-pop{0%{transform:scale(.4);opacity:0}7%{transform:scale(1.06);opacity:1}11%,78%{transform:scale(1);opacity:1}88%,100%{transform:scale(.85);opacity:0}}
.ila-glow{border-radius:50%;animation:ila-glow 3.6s ease-in-out infinite}
.ila-g-rose{background:radial-gradient(closest-side,rgba(255,120,100,.55),rgba(255,120,100,0));mix-blend-mode:multiply}
.ila-g-warm{background:radial-gradient(closest-side,rgba(255,200,110,.6),rgba(255,200,110,0));mix-blend-mode:multiply}
.ila-g-white{background:radial-gradient(closest-side,rgba(255,250,235,.75),rgba(255,250,235,0));mix-blend-mode:screen}
.ila-flicker{animation:ila-fl 3.1s steps(1) infinite}
@keyframes ila-glow{0%,100%{opacity:.15;transform:scale(.9)}50%{opacity:.9;transform:scale(1.05)}}
@keyframes ila-fl{0%{opacity:.7}9%{opacity:.35}13%{opacity:.85}38%{opacity:.6}41%{opacity:.95}70%{opacity:.5}74%{opacity:.8}}
.ila-zz{width:0;height:0}
.ila-zz b{position:absolute;left:0;top:0;font:italic 600 calc(22px * var(--s)) Georgia,serif;color:#5a5048;opacity:0;animation:ila-z 3.3s ease-out infinite;animation-play-state:paused}
@keyframes ila-z{0%{transform:translate(0,0) scale(.6);opacity:0}20%{opacity:.85}100%{transform:translate(calc(26px * var(--s)),calc(-60px * var(--s))) scale(1.15);opacity:0}}
.ila-steam svg{width:100%;height:100%;overflow:visible}
.ila-steam path{fill:none;stroke:#8a7f75;stroke-width:2;stroke-linecap:round;stroke-dasharray:40 200;opacity:0;animation:ila-st 2.7s linear infinite;animation-play-state:paused}
@keyframes ila-st{0%{stroke-dashoffset:40;opacity:0}25%{opacity:.7}100%{stroke-dashoffset:-140;opacity:0}}
.ila-caret{background:#efe6d6;animation:ila-ca 1.1s steps(1) infinite}
@keyframes ila-ca{0%{opacity:1}50%{opacity:0}}
