#backstab-effect-layer{position:fixed;inset:0;z-index:2147482500;display:grid;place-items:center;overflow:hidden;pointer-events:none;font-family:Inter,"Segoe UI",Arial,sans-serif;perspective:1200px}
.backstab-vignette{position:absolute;inset:0;opacity:0;background:radial-gradient(circle at 50% 48%,transparent 0 15%,rgba(72,0,3,.2) 36%,rgba(5,0,2,.92) 100%),repeating-linear-gradient(105deg,transparent 0 34px,rgba(177,12,22,.025) 35px 36px);animation:backstab-vignette 3s ease-out forwards}
.backstab-stage{position:relative;width:min(900px,92vw);height:min(500px,60vh);display:grid;place-items:center;filter:drop-shadow(0 22px 30px rgba(0,0,0,.78))}
/* Blade points LEFT, so it attacks from RIGHT to LEFT. At 50% translation the
   physical point, rather than the handle, lands exactly at screen centre. */
.backstab-dagger{position:relative;z-index:3;width:min(400px,60vw);height:110px;opacity:0;transform-origin:72% 50%;transform:translate3d(115vw,-24vh,0) rotate(11deg) rotateY(-8deg);animation:backstab-strike 3s cubic-bezier(.18,.76,.12,1) forwards;will-change:transform,opacity,filter}
.backstab-blade{position:absolute;left:0;top:31px;width:73%;height:48px;clip-path:polygon(0 50%,19% 2%,94% 2%,100% 20%,96% 50%,100% 80%,94% 98%,19% 98%);border-radius:2px;background:linear-gradient(166deg,transparent 0 46%,rgba(255,255,255,.66) 47% 49%,transparent 50%),linear-gradient(180deg,#171b20 0%,#727c85 21%,#eef3f6 43%,#7d8790 51%,#252b31 74%,#090b0e 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 0 18px rgba(196,13,24,.2)}
.backstab-blade:before{content:"";position:absolute;left:3%;top:47%;width:91%;height:2px;background:linear-gradient(90deg,rgba(255,255,255,.9),rgba(255,255,255,.18) 45%,transparent);transform-origin:left center;transform:rotate(-6.5deg)}
.backstab-blade:after{content:"";position:absolute;left:17%;right:8%;bottom:5px;height:3px;background:linear-gradient(90deg,rgba(164,4,12,.62),rgba(74,0,5,.15));filter:blur(.3px)}
.backstab-guard{position:absolute;left:70.5%;top:13px;width:17px;height:84px;border-radius:45% 4px 4px 45%;background:linear-gradient(90deg,#070809,#8c9297 42%,#272a2d 62%,#08090a);box-shadow:0 0 0 1px #030303,inset 2px 0 rgba(255,255,255,.2),0 5px 8px rgba(0,0,0,.6)}
.backstab-guard:before,.backstab-guard:after{content:"";position:absolute;left:-13px;width:39px;height:10px;border-radius:50%;background:linear-gradient(90deg,#111,#70767b,#0a0b0c)}
.backstab-guard:before{top:-2px;transform:rotate(-18deg)}.backstab-guard:after{bottom:-2px;transform:rotate(18deg)}
.backstab-grip{position:absolute;left:73%;top:33px;width:21%;height:44px;border-radius:3px 7px 7px 3px;background:repeating-linear-gradient(112deg,#070707 0 7px,#292929 7px 12px);box-shadow:inset 0 0 0 1px #000,inset 0 8px 10px rgba(255,255,255,.035),0 5px 8px rgba(0,0,0,.5)}
.backstab-pommel{position:absolute;left:92.5%;top:28px;width:48px;height:54px;clip-path:polygon(0 18%,56% 0,100% 50%,56% 100%,0 82%,15% 50%);background:linear-gradient(90deg,#111315,#747b80 50%,#0a0b0c);box-shadow:inset 0 0 0 1px #050505}
.backstab-flag{position:absolute;left:80%;top:75px;width:124px;height:57px;overflow:hidden;transform-origin:8px 2px;transform:skewX(7deg) rotate(-5deg);clip-path:polygon(0 0,100% 7%,88% 50%,100% 93%,0 100%);filter:drop-shadow(0 6px 5px rgba(0,0,0,.45));animation:backstab-flag-wave .26s ease-in-out .62s 7 alternate}
.backstab-flag span{display:block;width:100%;height:33.333%}.backstab-flag span:nth-child(1){background:#fff}.backstab-flag span:nth-child(2){background:#00966e}.backstab-flag span:nth-child(3){background:#d62612}
.backstab-character{position:absolute;z-index:2;top:50%;display:grid;justify-items:center;gap:9px;opacity:0;will-change:transform,opacity,filter}.backstab-character b{max-width:170px;overflow:hidden;text-overflow:ellipsis;color:#ddd;font-size:11px;letter-spacing:.15em;text-shadow:0 2px 5px #000;white-space:nowrap}.backstab-avatar{position:relative;width:clamp(92px,10vw,150px);aspect-ratio:1;overflow:hidden;border:4px solid #2b3036;border-radius:50%;background:#0b0d10;box-shadow:0 0 0 2px #070708,0 18px 30px rgba(0,0,0,.7),inset 0 0 24px rgba(255,255,255,.06)}.backstab-avatar img{width:100%;height:100%;object-fit:cover}.backstab-avatar>span{display:grid;width:100%;height:100%;place-items:center;color:#ddd;font-size:30px;font-weight:900}.backstab-attacker{left:calc(50% + min(31vw,300px));transform:translate(70vw,-50%);animation:backstab-attacker 3s cubic-bezier(.18,.76,.12,1) forwards}.backstab-attacker .backstab-avatar{border-color:#00966e;box-shadow:0 0 0 3px #fff,0 0 0 6px #d62612,0 18px 30px rgba(0,0,0,.72)}.backstab-arm{position:absolute;z-index:-1;left:-62px;top:48%;width:82px;height:24px;border-radius:60% 12px 12px 60%;background:linear-gradient(180deg,#34393f,#101317);transform:rotate(-5deg);transform-origin:right center;box-shadow:0 5px 10px rgba(0,0,0,.55)}.backstab-victim{left:50%;transform:translate(-50%,-50%);animation:backstab-victim 3s cubic-bezier(.2,.72,.2,1) forwards}.backstab-victim .backstab-avatar{border-color:#8c1821}.backstab-victim:after{content:"";position:absolute;inset:4px auto auto 8px;width:26px;height:26px;border-top:3px solid #ff3844;transform:rotate(-36deg);opacity:0;animation:backstab-wound 3s ease-out forwards}
/* Contact flash and diagonal cut share the blade-tip impact coordinates. */
.backstab-stage:before{content:"";position:absolute;z-index:5;left:50%;top:50%;width:clamp(86px,10vw,150px);aspect-ratio:1;border:2px solid rgba(255,226,205,.95);border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.1);box-shadow:0 0 20px #fff,0 0 55px rgba(224,18,30,.95),inset 0 0 28px rgba(224,18,30,.72);animation:backstab-contact 3s ease-out forwards}
.backstab-stage:after{content:"";position:absolute;z-index:4;left:50%;top:50%;width:min(370px,55vw);height:7px;opacity:0;transform:translate(-50%,-50%) rotate(-31deg) scaleX(.08);background:linear-gradient(90deg,transparent,#5b0006 11%,#ff3541 50%,#5b0006 89%,transparent);filter:drop-shadow(0 0 8px rgba(255,22,35,.9));animation:backstab-cut 3s ease-out forwards}
.backstab-caption{position:absolute;z-index:7;left:50%;bottom:10vh;display:flex;flex-direction:column;align-items:center;gap:6px;width:min(900px,92vw);text-align:center;opacity:0;transform:translateX(-50%) translateY(18px);animation:backstab-caption 3s ease-out forwards}
.backstab-caption strong{font-size:clamp(30px,5vw,64px);letter-spacing:.12em;color:#f4f4f4;text-shadow:0 3px 0 #000,0 0 22px rgba(180,0,0,.82)}.backstab-caption span{max-width:min(760px,86vw);font-size:clamp(13px,1.7vw,20px);color:#d7d7d7;text-shadow:0 2px 4px #000}.backstab-caption em{font-size:12px;letter-spacing:.22em;color:#9da3aa;font-style:normal}
.is-failure .backstab-dagger{animation-name:backstab-fail}.is-failure .backstab-caption strong{color:#ffbbb7}.is-failure .backstab-stage:after{animation-name:backstab-cut-fail}
.backstab-smoke{position:absolute;z-index:2;left:50%;top:50%;width:130px;height:130px;border-radius:50%;opacity:0;background:radial-gradient(circle,rgba(62,55,55,.5),rgba(18,15,16,.22) 44%,transparent 72%);filter:blur(5px);animation:backstab-smoke 1.15s ease-out .93s forwards}.smoke-a{margin:-45px 0 0 -105px}.smoke-b{margin:-90px 0 0 -22px;scale:.78}.smoke-c{margin:-18px 0 0 35px;scale:.62}
.is-victim .backstab-vignette{background:radial-gradient(circle at 50% 48%,transparent 0 12%,rgba(100,0,5,.34) 43%,rgba(8,0,1,.96) 100%)}.is-victim .backstab-stage{filter:drop-shadow(0 22px 34px rgba(0,0,0,.85)) saturate(1.16)}.is-leaving{opacity:0;transition:opacity .42s ease}.backstab-impact body{animation:backstab-body-jolt .34s cubic-bezier(.36,.07,.19,.97) .92s 1}
.backstab-cooldown-badge{position:fixed;right:18px;bottom:18px;z-index:2147482000;display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid rgba(214,38,18,.58);border-radius:10px;background:rgba(10,10,12,.88);box-shadow:0 8px 24px rgba(0,0,0,.45),inset 0 0 16px rgba(214,38,18,.08);backdrop-filter:blur(6px);pointer-events:none}.backstab-cooldown-icon{font-size:19px;filter:drop-shadow(0 0 5px rgba(214,38,18,.45))}.backstab-cooldown-badge>span:last-child{display:flex;align-items:baseline;gap:7px}.backstab-cooldown-badge b{font-size:10px;letter-spacing:.12em;color:#d5d5d5}.backstab-cooldown-badge em{font-size:12px;color:#ff8a7c;font-style:normal;font-weight:700}.backstab-betrayal-mark{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;font-size:11px;line-height:1;transform:rotate(-18deg);filter:drop-shadow(0 0 4px rgba(214,38,18,.6));animation:backstab-mark-pulse 1.8s ease-in-out infinite}.pl-entry.backstab-marked{box-shadow:inset 0 -1px 0 rgba(214,38,18,.38)}
.backstab-chat-message .shadow-broker-transmission,.backstab-chat-message.chat-message-main,.backstab-chat-message.gm-chat-message-main{border-color:rgba(0,150,110,.62)!important;box-shadow:inset 0 -2px 0 rgba(214,38,18,.3),0 0 16px rgba(0,150,110,.09)}.backstab-chat-flag{display:inline-grid;grid-template-rows:repeat(3,1fr);width:38px;height:25px;margin:7px 10px 5px;border:1px solid rgba(255,255,255,.48);border-radius:2px;overflow:hidden;vertical-align:middle;box-shadow:0 4px 10px rgba(0,0,0,.48)}.backstab-chat-flag i:nth-child(1){background:#fff}.backstab-chat-flag i:nth-child(2){background:#00966e}.backstab-chat-flag i:nth-child(3){background:#d62612}
@keyframes backstab-strike{0%{opacity:0;transform:translate3d(115vw,-24vh,0) rotate(11deg) rotateY(-8deg);filter:blur(7px)}17%{opacity:1}30%{transform:translate3d(45vw,-7vh,0) rotate(5deg) rotateY(-5deg);filter:blur(1px)}39%{transform:translate3d(15vw,1vh,0) rotate(1deg) rotateY(-2deg);filter:blur(0)}42%{transform:translate3d(17vw,1vh,0) rotate(1deg) rotateY(-2deg)}46%{transform:translate3d(50%,0,0) rotate(0) rotateY(0)}52%{transform:translate3d(43%,0,0) rotate(-1deg)}64%{transform:translate3d(47%,0,0) rotate(0)}78%{opacity:1;transform:translate3d(44%,0,0) rotate(-1deg)}100%{opacity:0;transform:translate3d(38vw,7vh,0) rotate(8deg) rotateY(-10deg);filter:blur(2px)}}
@keyframes backstab-fail{0%{opacity:0;transform:translate3d(115vw,-24vh,0) rotate(11deg);filter:blur(7px)}18%{opacity:1}31%{transform:translate3d(39vw,-6vh,0) rotate(4deg);filter:blur(1px)}38%{transform:translate3d(18vw,1vh,0) rotate(0);filter:blur(0)}45%{transform:translate3d(18vw,1vh,0) rotate(178deg)}50%{transform:translate3d(-50%,0,0) rotate(180deg)}58%{transform:translate3d(-43%,0,0) rotate(181deg)}77%{opacity:1;transform:translate3d(-46%,0,0) rotate(180deg)}100%{opacity:0;transform:translate3d(-38vw,7vh,0) rotate(172deg);filter:blur(2px)}}
@keyframes backstab-attacker{0%{opacity:0;transform:translate(70vw,-50%) scale(.86);filter:blur(7px)}20%{opacity:1}38%{transform:translate(7vw,-50%) scale(1);filter:blur(0)}46%,76%{opacity:1;transform:translate(0,-50%) scale(1)}100%{opacity:0;transform:translate(18vw,-48%) scale(.94);filter:blur(2px)}}
@keyframes backstab-victim{0%,18%{opacity:0;transform:translate(-50%,-50%) scale(.82)}30%,45%{opacity:1;transform:translate(-50%,-50%) scale(1)}49%{opacity:1;transform:translate(-58%,-48%) rotate(-5deg) scale(.96)}62%{opacity:1;transform:translate(-70%,-20%) rotate(-32deg) scale(.93);filter:grayscale(.3)}82%{opacity:.82;transform:translate(-86%,38%) rotate(-76deg) scale(.88);filter:grayscale(.8) brightness(.62)}100%{opacity:0;transform:translate(-96%,72%) rotate(-92deg) scale(.82);filter:grayscale(1) brightness(.4)}}
@keyframes backstab-wound{0%,45%{opacity:0;transform:rotate(-36deg) scale(.2)}50%,70%{opacity:1;transform:rotate(-36deg) scale(1)}100%{opacity:0;transform:rotate(-36deg) scale(1.4)}}
@keyframes backstab-contact{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.1)}46%{opacity:1;transform:translate(-50%,-50%) scale(.28)}52%{opacity:.86;transform:translate(-50%,-50%) scale(1)}64%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.45)}}
@keyframes backstab-cut{0%,44%{opacity:0;transform:translate(-50%,-50%) rotate(-31deg) scaleX(.08)}49%{opacity:1;transform:translate(-50%,-50%) rotate(-31deg) scaleX(1)}68%{opacity:.66;transform:translate(-50%,-50%) rotate(-31deg) scaleX(1.06)}100%{opacity:0;transform:translate(-50%,-50%) rotate(-31deg) scaleX(1.06)}}
@keyframes backstab-cut-fail{0%,46%{opacity:0;transform:translate(-50%,-50%) rotate(31deg) scaleX(.08)}51%{opacity:1;transform:translate(-50%,-50%) rotate(31deg) scaleX(1)}68%{opacity:.66;transform:translate(-50%,-50%) rotate(31deg) scaleX(1.06)}100%{opacity:0;transform:translate(-50%,-50%) rotate(31deg) scaleX(1.06)}}
@keyframes backstab-vignette{0%,28%{opacity:0}42%{opacity:1}70%{opacity:.64}100%{opacity:0}}@keyframes backstab-caption{0%,43%{opacity:0;transform:translateX(-50%) translateY(18px) scale(.96)}54%,84%{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}100%{opacity:0;transform:translateX(-50%) translateY(-8px) scale(.99)}}@keyframes backstab-smoke{0%{opacity:0;transform:scale(.4)}20%{opacity:.76}100%{opacity:0;transform:translateY(-54px) scale(1.55)}}@keyframes backstab-flag-wave{from{transform:skewX(7deg) rotate(-5deg) scaleY(1)}to{transform:skewX(-7deg) rotate(2deg) scaleY(.88)}}@keyframes backstab-body-jolt{0%,100%{transform:translate(0,0)}18%{transform:translate(7px,-2px)}38%{transform:translate(-8px,3px)}60%{transform:translate(5px,-1px)}80%{transform:translate(-2px,1px)}}@keyframes backstab-mark-pulse{0%,100%{opacity:.72;transform:rotate(-18deg) scale(.94)}50%{opacity:1;transform:rotate(-18deg) scale(1.12)}}
@media(prefers-reduced-motion:reduce){.backstab-dagger,.backstab-character,.backstab-victim:after,.backstab-vignette,.backstab-caption,.backstab-smoke,.backstab-flag,.backstab-stage:before,.backstab-stage:after,.backstab-impact body,.backstab-betrayal-mark{animation-duration:.01ms!important;animation-delay:0ms!important}}
