/* Valtiel: explosive approach, a large moving silhouette, then a double cross-cut. */
.v3-valtiel-ambush-stage { position:fixed; z-index:10060; inset:0; overflow:hidden; pointer-events:none; --valtiel-vfx-blood:#d21f2c; --valtiel-vfx-rune:#ff8a20; --valtiel-vfx-flare:#ffd9a0; }
.v3-card.v3-valtiel-ambush-vanish { animation:valtielAmbushVanish .2s ease-in both!important; pointer-events:none; }
.v3-card.v3-valtiel-ambush-return { animation:valtielAmbushReturn .24s ease-out both!important; }
.valtiel-ambush-departure { position:absolute; left:var(--ambush-source-x); top:var(--ambush-source-y); width:100px; height:140px; margin:-70px -50px; border-radius:50%; background:radial-gradient(ellipse,var(--valtiel-vfx-blood),transparent 68%); animation:valtielAmbushDeparture .4s ease-out both; }
.valtiel-ambush-portal { position:absolute; left:var(--ambush-target-x); top:var(--ambush-avatar-y); width:calc(var(--ambush-avatar-width) * 1.25); height:calc(var(--ambush-avatar-height) * 1.12); translate:-50% -50%; border:2px solid var(--valtiel-vfx-rune); border-radius:50%; background:radial-gradient(ellipse,#16000de8 15%,color-mix(in srgb,var(--valtiel-vfx-blood) 55%,transparent) 55%,transparent 72%); box-shadow:0 0 16px var(--valtiel-vfx-blood),inset 0 0 18px var(--valtiel-vfx-rune); animation:valtielAmbushPortal var(--ambush-duration) ease-out both; }
.valtiel-ambush-avatar { position:absolute; left:var(--ambush-target-x); top:var(--ambush-avatar-y); width:var(--ambush-avatar-width); height:var(--ambush-avatar-height); translate:-50% -50%; filter:drop-shadow(0 0 8px var(--valtiel-vfx-blood)); animation:valtielAmbushAvatar var(--ambush-duration) ease-out both; }
.valtiel-ambush-avatar img,.valtiel-ambush-echo img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 20%; border-radius:38% 38% 18% 18%; mask-image:radial-gradient(ellipse at 50% 35%,#000 28%,transparent 74%); }
.valtiel-ambush-avatar>b { position:absolute; inset:0; border-radius:38% 38% 18% 18%; background:linear-gradient(0deg,color-mix(in srgb,var(--valtiel-vfx-blood) 55%,transparent),transparent 55%); }
.valtiel-ambush-dagger { position:absolute; left:var(--ambush-target-x); top:var(--ambush-strike-y); width:128px; height:42px; margin:-21px -64px; --knife-side:1; animation:valtielAmbushCross .42s cubic-bezier(.16,.75,.2,1) var(--ambush-swing-at) both; }
.valtiel-ambush-dagger.is-right { --knife-side:-1; animation-delay:calc(var(--ambush-swing-at) + 110ms); }
.valtiel-ambush-blade { position:absolute; inset:0; transform:scale(var(--ambush-blade-scale)); filter:drop-shadow(0 0 5px var(--valtiel-vfx-rune)) drop-shadow(0 0 9px var(--valtiel-vfx-blood)); }
.valtiel-ambush-dash { position:absolute; left:var(--ambush-source-x); top:var(--ambush-source-y); width:var(--ambush-dash-length); height:40px; margin-top:-20px; transform-origin:0 50%; rotate:var(--ambush-dash-angle); background:linear-gradient(90deg,transparent,var(--valtiel-vfx-blood) 40%,var(--valtiel-vfx-rune) 82%,var(--valtiel-vfx-flare)); clip-path:polygon(0 45%,85% 10%,100% 50%,85% 90%,0 55%); filter:drop-shadow(0 0 12px var(--valtiel-vfx-blood)); animation:valtielAmbushDash .34s ease-out .08s both; }
.valtiel-ambush-echo { position:absolute; left:var(--ambush-target-x); top:var(--ambush-avatar-y); width:var(--ambush-avatar-width); height:var(--ambush-avatar-height); translate:-50% -50%; filter:sepia(1) saturate(3) drop-shadow(0 0 9px var(--valtiel-vfx-blood)); animation:valtielAmbushEcho .42s ease-out .12s both; }
.valtiel-ambush-echo.is-second { animation-delay:.19s; }
.valtiel-ambush-cut { position:absolute; left:var(--ambush-target-x); top:var(--ambush-strike-y); width:var(--ambush-slash-size); height:var(--ambush-slash-size); translate:-50% -50%; overflow:visible; fill:none; stroke-linecap:round; --cut-side:1; animation:valtielAmbushCut .5s ease-out var(--ambush-cut-at) both; }
.valtiel-ambush-cut.is-second { --cut-side:-1; animation-delay:var(--ambush-second-at); }
.valtiel-ambush-cut path { stroke-dasharray:320; stroke-dashoffset:320; animation:valtielAmbushCutTrace .5s cubic-bezier(.12,.8,.2,1) var(--ambush-cut-at) both; }
.valtiel-ambush-cut.is-second path { animation-delay:var(--ambush-second-at); }
.valtiel-ambush-cut .cut-haze { stroke:var(--valtiel-vfx-blood); stroke-width:24; opacity:.45; filter:blur(5px); }
.valtiel-ambush-cut .cut-edge { fill:var(--valtiel-vfx-rune); stroke:none; animation-name:valtielAmbushCutReveal; }
.valtiel-ambush-cut .cut-core { stroke:var(--valtiel-vfx-flare); stroke-width:2; }
.v3-valtiel-ambush-stage.is-empowered .cut-haze { stroke-width:36; }
.valtiel-ambush-blade>i { position:absolute; left:7px; top:8px; width:108px; height:25px; background:linear-gradient(180deg,var(--valtiel-vfx-flare),#fff 18%,var(--valtiel-vfx-rune) 39%,var(--valtiel-vfx-blood) 72%,#310008); clip-path:polygon(0 43%,15% 23%,72% 5%,100% 42%,73% 68%,17% 78%); box-shadow:inset 0 -5px 8px #420007; }
.valtiel-ambush-blade>b { position:absolute; left:19px; top:4px; width:13px; height:34px; border:4px solid var(--valtiel-vfx-rune); border-radius:50%; background:#2b0006; box-shadow:0 0 8px var(--valtiel-vfx-flare); }
.valtiel-ambush-blade>u { position:absolute; left:-35px; top:18px; width:68px; height:6px; border-radius:8px; background:linear-gradient(90deg,transparent,var(--valtiel-vfx-blood),#fff); filter:blur(2px); }
.v3-valtiel-ambush-stage.is-empowered .valtiel-ambush-portal { border-width:3px; box-shadow:0 0 28px var(--valtiel-vfx-blood),0 0 48px color-mix(in srgb,var(--valtiel-vfx-rune) 55%,transparent),inset 0 0 22px var(--valtiel-vfx-rune); }
.v3-valtiel-ambush-stage.is-empowered .valtiel-ambush-blade { filter:drop-shadow(0 0 8px var(--valtiel-vfx-flare)) drop-shadow(0 0 20px var(--valtiel-vfx-blood)); }
.v3-valtiel-ambush-impact { position:absolute; z-index:890; inset:0; overflow:hidden; pointer-events:none; border-radius:18px; background:radial-gradient(ellipse at 50% 36%,color-mix(in srgb,var(--valtiel-vfx-blood) 22%,transparent),transparent 62%); animation:valtielAmbushImpactFade .85s ease-out both; }
.v3-valtiel-ambush-impact.is-empowered { background:radial-gradient(ellipse at 50% 36%,color-mix(in srgb,var(--valtiel-vfx-blood) 52%,transparent),transparent 75%); box-shadow:inset 0 0 35px var(--valtiel-vfx-rune); animation-duration:1.2s; }
.valtiel-ambush-cracks { position:absolute; inset:0; width:100%; height:100%; overflow:visible; fill:none; stroke:var(--valtiel-vfx-flare); stroke-width:.65; filter:drop-shadow(1px 2px 1px #050109) drop-shadow(0 0 2px var(--valtiel-vfx-blood)); stroke-linejoin:round; }
.v3-valtiel-ambush-impact.is-empowered .valtiel-ambush-cracks { stroke-width:1.15; filter:drop-shadow(2px 2px 1px #050109) drop-shadow(0 0 5px var(--valtiel-vfx-rune)); }
.valtiel-ambush-shock { position:absolute; left:50%; top:37%; width:44px; height:44px; margin:-22px; border:2px solid var(--valtiel-vfx-rune); border-radius:50%; box-shadow:0 0 10px var(--valtiel-vfx-blood); animation:valtielAmbushShock .5s ease-out both; }
.is-empowered .valtiel-ambush-shock { width:68px; height:68px; margin:-34px; border-width:4px; }
.valtiel-ambush-shock.is-second { border-color:var(--valtiel-vfx-flare); animation-delay:.1s; }
.valtiel-ambush-shard { position:absolute; left:50%; top:37%; width:7px; height:15px; margin:-7px -3px; background:linear-gradient(var(--valtiel-vfx-flare),var(--valtiel-vfx-blood)); clip-path:polygon(40% 0,100% 30%,70% 100%,0 65%); animation:valtielAmbushShard .65s ease-out var(--shard-delay) both; }
.v3-card.v3-valtiel-ambush-hit .v3-face-front { animation:valtielAmbushCardDent .42s ease-out both!important; }
.v3-card.v3-valtiel-ambush-heavy-hit .v3-face-front { animation:valtielAmbushCardBreak .62s ease-out both!important; }
@keyframes valtielAmbushVanish { to { opacity:0; filter:blur(5px); } }
@keyframes valtielAmbushReturn { from { opacity:0; filter:blur(4px); } to { opacity:1; filter:none; } }
@keyframes valtielAmbushDeparture { 0% { opacity:0; transform:scale(.35); } 30% { opacity:.85; } 100% { opacity:0; transform:scale(1.6); } }
@keyframes valtielAmbushPortal { 0%,8%,100% { opacity:0; transform:scale(.2); } 20%,65% { opacity:.8; transform:scale(1); } 82% { opacity:.4; transform:scale(.9); } }
@keyframes valtielAmbushAvatar { 0%,10% { opacity:0; transform:translate(var(--ambush-entry-x),var(--ambush-entry-y)) scale(.85) skewX(-12deg); } 24% { opacity:1; transform:translate(0,0) scale(1.08) skewX(0); } 39% { opacity:1; transform:translate(12px,20px) scale(1) rotate(7deg); } 49% { opacity:.9; transform:translate(-10px,12px) scale(1.02) rotate(-6deg); } 66%,100% { opacity:0; transform:translate(30px,-28px) scale(.9); } }
@keyframes valtielAmbushDash { 0% { opacity:0; scale:.05 .25; } 35% { opacity:.9; scale:1 1; } 100% { opacity:0; scale:1 .08; } }
@keyframes valtielAmbushEcho { 0% { opacity:0; transform:translate(var(--ambush-entry-x),var(--ambush-entry-y)) scale(.9) skewX(-16deg); } 25% { opacity:.4; } 100% { opacity:0; transform:translate(-25px,-12px) scale(1.12); } }
@keyframes valtielAmbushCross { 0% { opacity:0; transform:translate(calc(var(--knife-side) * var(--ambush-sweep-x) * -1),-65px) rotate(calc(var(--knife-side) * 36deg)); } 16% { opacity:1; } 43% { opacity:1; transform:translate(0,0) rotate(calc(var(--knife-side) * 48deg)); } 72% { opacity:.85; } 100% { opacity:0; transform:translate(calc(var(--knife-side) * var(--ambush-sweep-x)),65px) rotate(calc(var(--knife-side) * 65deg)); } }
@keyframes valtielAmbushCut { 0% { opacity:0; transform:scaleX(var(--cut-side)) scale(.85); } 14%,38% { opacity:1; } 100% { opacity:0; transform:scaleX(var(--cut-side)) scale(1.08); } }
@keyframes valtielAmbushCutTrace { 0% { stroke-dashoffset:320; } 34%,100% { stroke-dashoffset:0; } }
@keyframes valtielAmbushCutReveal { 0% { clip-path:inset(0 100% 0 0); } 34%,100% { clip-path:inset(0); } }
@keyframes valtielAmbushStab { 0% { opacity:0; transform:translateY(-22px) rotate(-7deg); } 12% { opacity:1; } 41%,64% { opacity:1; transform:translateY(var(--ambush-blade-drop)) rotate(0deg); } 100% { opacity:0; transform:translateY(var(--ambush-blade-drop)) scale(.94); } }
@keyframes valtielAmbushImpactFade { 0% { opacity:0; } 8%,55% { opacity:1; } 100% { opacity:0; } }
@keyframes valtielAmbushShock { from { opacity:.85; transform:scale(.25); } to { opacity:0; transform:scale(3.8); } }
@keyframes valtielAmbushShard { 0% { opacity:0; transform:scale(.3); } 14% { opacity:1; } 100% { opacity:0; transform:translate(var(--shard-x),var(--shard-y)) rotate(var(--shard-angle)); } }
@keyframes valtielAmbushCardDent { 0%,100% { transform:none; } 22% { transform:translateY(4px) scale(.99) skewX(-.8deg); } 47% { transform:translateY(-2px) rotate(.5deg); } 70% { transform:translateY(1px); } }
@keyframes valtielAmbushCardBreak { 0%,100% { transform:none; } 18% { transform:translateY(8px) scale(.975) skewX(-1.6deg); } 35% { transform:translate(-4px,-2px) rotate(-1deg); } 53% { transform:translate(4px,3px) rotate(1deg); } 74% { transform:translate(-2px,1px); } }
@media(prefers-reduced-motion:reduce) {
    .v3-card.v3-valtiel-ambush-vanish { animation-name:valtielAmbushQuietVanish!important; }
    .v3-card.v3-valtiel-ambush-return { animation-name:valtielAmbushQuietReturn!important; }
    .valtiel-ambush-departure,.valtiel-ambush-dash,.valtiel-ambush-echo,.valtiel-ambush-cut { display:none; }
    .valtiel-ambush-avatar,.valtiel-ambush-portal { animation-name:valtielAmbushQuietAppear; }
    .valtiel-ambush-dagger { animation:valtielAmbushQuietStab .32s ease-out var(--ambush-impact-at) both; }
    .valtiel-ambush-shock { display:none; }
    .v3-card.v3-valtiel-ambush-hit .v3-face-front,.v3-card.v3-valtiel-ambush-heavy-hit .v3-face-front { animation:none!important; }
}
@keyframes valtielAmbushQuietVanish { to { opacity:0; } }
@keyframes valtielAmbushQuietReturn { from { opacity:0; } to { opacity:1; } }
@keyframes valtielAmbushQuietAppear { 0%,12%,100% { opacity:0; } 24%,75% { opacity:1; } }
@keyframes valtielAmbushQuietStab { 0%,100% { opacity:0; transform:translateX(calc(var(--knife-side) * 26px)) rotate(calc(var(--knife-side) * 48deg)); } 20%,75% { opacity:1; transform:translateX(calc(var(--knife-side) * 26px)) rotate(calc(var(--knife-side) * 48deg)); } }
