/* =======================================
   DANTE (heroId 85) – SÖTÉT APOKALIPSZIS
   =======================================
   Paletta (skin szerint, a JS írja felül inline változókkal; a spec
   --color-1 ... --color-5 sorrendje):
   Alap:     #1A3C65, #76B2FF, #8492BD, #020007, #350A18 – éjkék penge, vörös démoni aura, fekete szél.
   Űrhajós:  #44DEFF, #FA8232, #FAA055, #FCF639, #FB2F00 – plazmapenge, rakétalángok, csillagpor.
   --dn-glow: kard körüli fény, --dn-blood: vérenergia, --dn-wind: szél,
   --dn-accent: kiemelő, --dn-deep: mély árnyék, --dn-steel: penge-acél.
   --dn-hp: Dante HP-aránya 0..1.
   Állapotok: .is-awakened (Démoni Ébredés), .is-bloodlust (Vérszomj),
   .is-strike (betöltött démoni csapás). */

:root {
    --dn-1: #1A3C65; --dn-2: #76B2FF; --dn-3: #8492BD; --dn-4: #020007; --dn-5: #350A18;
    --dn-glow: #76B2FF; --dn-blood: #C4163A; --dn-wind: #020007;
    --dn-accent: #8492BD; --dn-deep: #350A18; --dn-steel: #1A3C65;
    --dn-night: #07040b;
}
.dante-sword-meter, .dante-sword-tooltip, #dante-sword-workshop, .dante-card-fx { --dn-hp: 1; }
/* Űrhajós: mélyebb űr-háttér. */
[data-dn-theme="urhajos"] { --dn-night: #080611; }

/* ---------------------------------------
   Témafüggő motívumok (inline SVG)
   --------------------------------------- */
.dn-motif { position: absolute; display: block; width: 12px; height: 12px; opacity: 0; pointer-events: none; font-style: normal; }
.dn-motif svg { display: block; width: 100%; height: 100%; overflow: visible; }
.dn-motif svg * { fill: var(--m-tint, var(--dn-blood)); }
.dn-motif svg .is-line { fill: none; stroke: var(--m-tint, var(--dn-blood)); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dn-motif svg .is-thin { stroke-width: 1.1; }
.dn-motif svg .is-hi { fill: none; stroke: #ffffffa0; stroke-width: 1.5; stroke-linecap: round; }
.dn-motif svg .is-core { fill: #fff; }
.dn-motif.is-drop { width: 9px; height: 12px; }
.dn-motif.is-drop svg path:first-child { filter: drop-shadow(0 0 3px var(--dn-blood)); }
.dn-motif.is-rune { width: 14px; height: 14px; }
.dn-motif.is-rune svg { filter: drop-shadow(0 0 3px var(--dn-glow)); }
.dn-motif.is-wisp { width: 22px; height: 11px; }
.dn-motif.is-wisp svg .is-line { stroke: color-mix(in srgb, var(--m-tint) 80%, #3a1c3f); stroke-width: 2.4; filter: drop-shadow(0 0 3px #000); }
.dn-motif.is-horn { width: 13px; height: 13px; }
.dn-motif.is-horn svg path { fill: color-mix(in srgb, var(--dn-deep) 70%, #000); stroke: var(--dn-blood); stroke-width: .8; }
.dn-motif.is-rocket { width: 9px; height: 16px; }
.dn-motif.is-rocket svg .is-body { fill: color-mix(in srgb, #fff 85%, var(--dn-1)); stroke: var(--dn-1); stroke-width: .6; }
.dn-motif.is-rocket svg .is-fin { fill: var(--dn-2); }
.dn-motif.is-rocket svg .is-window { fill: var(--dn-1); stroke: #fff; stroke-width: .5; }
.dn-motif.is-rocket svg .is-flame { fill: var(--dn-4); filter: drop-shadow(0 0 3px var(--dn-5)); animation: dnFlame .22s ease-in-out infinite alternate; transform-origin: 8px 21px; }
.dn-motif.is-star { width: 10px; height: 10px; }
.dn-motif.is-star svg path { fill: var(--dn-4); filter: drop-shadow(0 0 3px var(--dn-4)); }
.dn-motif.is-planet { width: 18px; height: 12px; }
.dn-motif.is-planet svg circle { fill: var(--dn-2); }
.dn-motif.is-planet svg .is-line { stroke: var(--dn-1); stroke-width: 1.3; }
.dn-motif.is-spark { width: 11px; height: 11px; }
.dn-motif.is-spark svg .is-line { stroke: var(--dn-1); }
.dn-motif.is-snowflake, .dn-motif.is-frostseal { width: 21px; height: 21px; }
.dn-motif.is-crystal { width: 13px; height: 23px; }
.dn-motif.is-snowflake svg path { fill: none; stroke: var(--m-tint, #bec7ff); stroke-width: 2.2; stroke-linecap: square; }
[data-dn-theme="jeg"] .dn-motif svg { filter: drop-shadow(0 0 4px #00cee0); }
[data-dn-theme="jeg"].dante-sword-meter::before { border-radius: 18px; border-color: #bec7ff99; background: conic-gradient(from 30deg, #001361, #0c80ed66, #001361 34%, #554b5e77 50%, #001361 68%, #00cee055, #001361); }
[data-dn-theme="jeg"] .dante-sword-meter__aura i:first-child { border-radius: 16px; border-style: double; border-color: #bec7ff88; }
[data-dn-theme="jeg"] .dante-sword-meter__blood i { width: 4px; height: 15px; border-radius: 0; clip-path: polygon(50% 0, 100% 25%, 65% 90%, 50% 100%, 20% 75%, 0 25%); background: linear-gradient(90deg, #0c80ed, #f1faff, #00cee0); }
[data-dn-theme="jeg"] .dante-sword-meter__bg i.is-ember { border-radius: 0; transform: rotate(45deg); background: #f1faff; box-shadow: 0 0 5px #00cee0; }
[data-dn-theme="jeg"] .dante-sword-meter__bg i.is-wind { background: linear-gradient(90deg, transparent, #bec7ff, #00cee066, transparent); height: 1px; }
[data-dn-theme="jeg"].dante-sword-tooltip, [data-dn-theme="jeg"]#dante-sword-workshop { border-color: #bec7ff99; background: radial-gradient(ellipse at 90% 0, #0c80ed38, transparent 45%), linear-gradient(135deg, #080f2b, #001361 65%, #11182c); box-shadow: 0 0 22px #00cee044, inset 0 0 30px #bec7ff0d, 0 20px 70px #000c; }
[data-dn-theme="jeg"] .dante-sword-tooltip__crest, [data-dn-theme="jeg"] .dante-sword-workshop__crest { filter: drop-shadow(0 0 8px #00cee088); }
.dante-sword-tooltip__winter { position: relative; z-index: 1; margin: 2px 0 9px; padding: 6px 8px; border-top: 1px solid #bec7ff55; border-bottom: 1px solid #00cee044; color: #dcecff; font: 500 10px/1.5 Outfit, sans-serif; letter-spacing: .3px; }
[data-dn-theme="jeg"] .dante-sword-tooltip__awake li.is-wind { background: linear-gradient(135deg, #001361, #0c80ed77); }
[data-dn-theme="jeg"] .dante-sword-meter__lust img, [data-dn-theme="jeg"] .dante-sword-meter__strike img, [data-dn-theme="jeg"] .dante-sword-tooltip__line > img, [data-dn-theme="jeg"] .dante-sword-tooltip__badges img { filter: grayscale(1) sepia(1) saturate(2.5) hue-rotate(155deg) drop-shadow(0 0 3px #00cee0); }

/* ---------------------------------------
   Kard-mérő a kártyán (mechanika-ikon)
   --------------------------------------- */
.dante-sword-meter {
    position: absolute; left: 40px; bottom: 5px; z-index: 19;
    width: 100px; height: 88px; padding: 0; border: 0;
    background: transparent; color: #fff; cursor: pointer; isolation: isolate;
    filter: drop-shadow(0 7px 9px #000d);
}
.dante-sword-meter[hidden] { display: none; }
.dante-sword-meter:focus-visible { outline: 2px solid var(--dn-glow); outline-offset: 2px; border-radius: 50%; }
/* Körvonalas, teljes kitöltésű háttér (nem kék keret). */
.dante-sword-meter::before {
    position: absolute; inset: 8px 12px 6px; z-index: -1; content: "";
    border: 1.5px solid color-mix(in srgb, var(--dn-blood) 55%, transparent);
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--dn-blood) 18%, transparent), transparent 60%),
        radial-gradient(circle, color-mix(in srgb, var(--dn-1) 55%, transparent), color-mix(in srgb, var(--dn-night) 94%, #000));
    box-shadow: 0 0 10px color-mix(in srgb, var(--dn-blood) 35%, transparent), inset 0 0 18px color-mix(in srgb, #000 60%, var(--dn-deep));
    animation: dnMeterBreath 3.2s ease-in-out infinite alternate;
}
.dante-sword-meter.is-awakened::before {
    border-color: var(--dn-blood);
    background:
        radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--dn-blood) 42%, transparent), transparent 62%),
        radial-gradient(circle, color-mix(in srgb, var(--dn-deep) 80%, #000), #000);
    box-shadow: 0 0 20px color-mix(in srgb, var(--dn-blood) 70%, transparent), 0 0 34px #000, inset 0 0 20px #000;
    animation-duration: 1.6s;
}
.dante-sword-meter.is-bloodlust::before { border-color: #fff; box-shadow: 0 0 24px var(--dn-blood), 0 0 40px color-mix(in srgb, var(--dn-blood) 60%, transparent), inset 0 0 22px #000; animation: dnLustPulse .8s ease-in-out infinite alternate; }
.dante-sword-meter__bg { position: absolute; inset: 8px 12px 6px; z-index: 0; overflow: hidden; border-radius: 50%; pointer-events: none; }
/* Fekete szél: csak felébredt kardnál. */
.dante-sword-meter__bg i.is-wind {
    position: absolute; left: -50%; top: calc(18% + var(--w-i) * 20%); width: 70%; height: 3px; border-radius: 3px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--dn-wind) 85%, #3a1c3f), transparent);
    opacity: 0;
}
.dante-sword-meter.is-awakened .dante-sword-meter__bg i.is-wind { animation: dnWindPass 1.8s ease-in infinite; animation-delay: calc(var(--w-i) * -.45s); }
[data-dn-theme="urhajos"] .dante-sword-meter__bg i.is-wind { background: linear-gradient(90deg, transparent, var(--dn-2), var(--dn-4), transparent); height: 2px; }
/* Parázs / csillagpor: alvó kardnál is halványan. */
.dante-sword-meter__bg i.is-ember {
    position: absolute; bottom: -4px; left: calc(14% + var(--e-i) * 17%); width: 3px; height: 3px; border-radius: 50%;
    background: var(--dn-blood); box-shadow: 0 0 4px var(--dn-blood);
    opacity: 0; animation: dnEmberRise calc(3.6s + var(--e-i) * .4s) linear infinite; animation-delay: calc(var(--e-i) * -.8s);
}
[data-dn-theme="urhajos"] .dante-sword-meter__bg i.is-ember { background: var(--dn-4); box-shadow: 0 0 4px var(--dn-4); }
.dante-sword-meter.is-awakened .dante-sword-meter__bg i.is-ember { animation-duration: calc(1.8s + var(--e-i) * .25s); }
.dante-sword-meter__aura, .dante-sword-meter__aura i { position: absolute; inset: 0; border-radius: 50%; pointer-events: none; }
.dante-sword-meter__aura { opacity: .4; }
.dante-sword-meter.is-awakened .dante-sword-meter__aura { opacity: 1; }
.dante-sword-meter__aura i { inset: 4px 10px; border: 1px dashed color-mix(in srgb, var(--dn-blood) 60%, transparent); animation: dnSpin 12s linear infinite; }
.dante-sword-meter__aura i:nth-child(2) { inset: 13px 19px; border-style: solid; border-color: color-mix(in srgb, var(--dn-glow) 40%, transparent); animation-direction: reverse; animation-duration: 8s; }
.dante-sword-meter__aura i:nth-child(3) {
    inset: -4px 2px; border: 0;
    background: conic-gradient(from 0deg, transparent 0 12%, color-mix(in srgb, var(--dn-wind) 90%, #2a1330) 18%, transparent 30% 55%, color-mix(in srgb, var(--dn-wind) 90%, #2a1330) 62%, transparent 74%);
    -webkit-mask: radial-gradient(circle, transparent 52%, #000 58%, #000 70%, transparent 76%);
    mask: radial-gradient(circle, transparent 52%, #000 58%, #000 70%, transparent 76%);
    opacity: 0; animation: dnSpin 2.4s linear infinite;
}
.dante-sword-meter.is-awakened .dante-sword-meter__aura i:nth-child(3) { opacity: .95; }
.dante-sword-meter__motifs { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.dante-sword-meter__motifs .dn-motif { left: calc(14% + var(--m-i) * 30%); bottom: 10px; animation: dnMotifRise calc(3.6s + var(--m-i) * .6s) linear infinite; animation-delay: calc(var(--m-i) * -1.2s); }
.dante-sword-meter:not(.is-awakened) .dante-sword-meter__motifs { opacity: .5; }
.dante-sword-meter__sword {
    position: absolute; z-index: 3; left: 12px; top: 0; width: 76px; height: 76px; object-fit: contain;
    filter: brightness(.72) saturate(.8) drop-shadow(0 0 4px color-mix(in srgb, var(--dn-blood) 55%, transparent));
    animation: dnSwordFloat 3.6s ease-in-out infinite;
    transition: filter .5s;
}
.dante-sword-meter.is-awakened .dante-sword-meter__sword {
    filter: brightness(1.08) saturate(1.2)
        drop-shadow(0 0 5px var(--dn-blood))
        drop-shadow(0 0 12px color-mix(in srgb, var(--dn-blood) 80%, transparent))
        drop-shadow(0 0 3px #000);
    animation: dnSwordFloat 3.6s ease-in-out infinite, dnSwordPulse 1.5s ease-in-out infinite alternate;
}
[data-dn-theme="urhajos"].dante-sword-meter.is-awakened .dante-sword-meter__sword {
    filter: brightness(1.1) saturate(1.25) drop-shadow(0 0 5px var(--dn-1)) drop-shadow(0 0 12px var(--dn-5)) drop-shadow(0 0 3px #000);
}
/* Vérenergia a pengén (felébredve). */
.dante-sword-meter__blood { position: absolute; z-index: 4; left: 38px; top: 12px; width: 24px; height: 58px; pointer-events: none; opacity: 0; transition: opacity .4s; }
.dante-sword-meter.is-awakened .dante-sword-meter__blood { opacity: 1; }
.dante-sword-meter__blood i {
    position: absolute; top: calc(var(--d-i) * 14px); left: calc(4px + var(--d-i) * 6px); width: 3px; height: 8px;
    border-radius: 2px 2px 50% 50%;
    background: linear-gradient(180deg, color-mix(in srgb, var(--dn-blood) 60%, transparent), var(--dn-blood));
    box-shadow: 0 0 4px var(--dn-blood);
    animation: dnBladeDrip calc(1.6s + var(--d-i) * .35s) ease-in infinite; animation-delay: calc(var(--d-i) * -.5s);
}
/* Vérszomj jelvény. */
.dante-sword-meter__lust {
    position: absolute; z-index: 6; left: 2px; top: 4px; width: 28px; height: 28px; padding: 2px;
    border: 1px solid var(--dn-blood); border-radius: 50%;
    background: radial-gradient(circle, color-mix(in srgb, var(--dn-blood) 45%, transparent), #000 78%);
    opacity: 0; transform: scale(.4); transition: opacity .3s, transform .35s cubic-bezier(.2, 1.6, .4, 1);
}
.dante-sword-meter__lust img { display: block; width: 100%; height: 100%; object-fit: contain; }
.dante-sword-meter.is-bloodlust .dante-sword-meter__lust { opacity: 1; transform: scale(1); animation: dnLustBadge .8s ease-in-out infinite alternate; }
/* Betöltött démoni csapás. */
.dante-sword-meter__strike {
    position: absolute; z-index: 6; left: 2px; bottom: 2px; width: 24px; height: 24px; padding: 2px;
    border: 1px solid var(--dn-glow); border-radius: 50%;
    background: radial-gradient(circle, color-mix(in srgb, var(--dn-glow) 35%, transparent), var(--dn-night) 75%);
    opacity: 0; transform: scale(.5); transition: opacity .3s, transform .35s cubic-bezier(.2, 1.6, .4, 1);
}
.dante-sword-meter__strike img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.dante-sword-meter.is-strike .dante-sword-meter__strike { opacity: 1; transform: scale(1); animation: dnStrikeReady 1.1s ease-in-out infinite alternate; }
.dante-sword-meter__count {
    position: absolute; z-index: 6; right: 0; bottom: 0;
    display: flex; align-items: center; gap: 3px; min-width: 40px; padding: 3px 7px 3px 4px;
    border: 1px solid color-mix(in srgb, var(--dn-blood) 75%, transparent); border-radius: 11px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--dn-deep) 75%, #000), #050208f0);
    box-shadow: 0 0 9px color-mix(in srgb, var(--dn-blood) 45%, transparent);
}
.dante-sword-meter__count img { width: 15px; height: 15px; object-fit: contain; filter: drop-shadow(0 0 3px var(--dn-blood)); }
.dante-sword-meter__count b { font: 900 12px/1 Montserrat, sans-serif; }
.dante-sword-meter.is-awakened .dante-sword-meter__count { border-color: var(--dn-blood); }
.dante-sword-meter.is-bloodlust .dante-sword-meter__count { border-color: #fff; box-shadow: 0 0 12px var(--dn-blood); }
/* Egyszeri villanások. */
.dante-sword-meter.is-awaken .dante-sword-meter__sword { animation: dnAwaken 1.2s cubic-bezier(.2, 1.4, .4, 1); }
.dante-sword-meter.is-awaken::after, .dante-sword-meter.is-lust-on::after {
    position: absolute; inset: -6px; z-index: 7; content: ""; border-radius: 50%; pointer-events: none;
    background: radial-gradient(circle, color-mix(in srgb, var(--dn-blood) 70%, transparent), transparent 70%);
    animation: dnBurst 1s ease-out forwards;
}
.dante-sword-meter.is-lust-on .dante-sword-meter__lust { animation: dnPop .6s cubic-bezier(.2, 1.6, .4, 1); }
.dante-sword-meter.is-slash .dante-sword-meter__sword { animation: dnSlash .6s ease-out; }
.dante-sword-meter.is-drain .dante-sword-meter__count { animation: dnPop .55s cubic-bezier(.2, 1.6, .4, 1); }
.v3-card.dante-awakened {
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--dn-blood) 60%, transparent), 0 0 18px color-mix(in srgb, var(--dn-blood) 40%, transparent), 0 0 26px #000c;
}
.v3-card.dante-bloodlust { animation: dnCardLust 1s ease-in-out infinite alternate; }

/* ---------------------------------------
   Démoni hatások a kártya körül
   --------------------------------------- */
.dante-card-fx { position: absolute; z-index: 31; pointer-events: none; transform: translate(-50%, -50%); overflow: visible; }
.dante-card-fx > span { position: absolute; inset: 0; pointer-events: none; }
.dante-card-fx.is-fallen { display: none; }
/* Aura: alvó kardnál gyenge vörös, felébredve erős vörös-fekete. */
.dante-card-fx__aura {
    inset: 14px !important; border-radius: 22px;
    box-shadow: 0 0 14px color-mix(in srgb, var(--dn-blood) 22%, transparent);
    opacity: .7; animation: dnAuraBreath 3.4s ease-in-out infinite alternate;
}
.dante-card-fx.is-awakened .dante-card-fx__aura {
    box-shadow: 0 0 22px color-mix(in srgb, var(--dn-blood) 60%, transparent), 0 0 44px #000e, inset 0 0 26px color-mix(in srgb, var(--dn-blood) 22%, transparent);
    opacity: 1; animation-duration: 1.6s;
}
.dante-card-fx.is-bloodlust .dante-card-fx__aura {
    box-shadow: 0 0 26px var(--dn-blood), 0 0 54px color-mix(in srgb, var(--dn-blood) 55%, #000), inset 0 0 34px color-mix(in srgb, var(--dn-blood) 35%, transparent);
    animation: dnAuraLust .75s ease-in-out infinite alternate;
}
[data-dn-theme="urhajos"].dante-card-fx.is-awakened .dante-card-fx__aura {
    box-shadow: 0 0 22px color-mix(in srgb, var(--dn-1) 55%, transparent), 0 0 40px color-mix(in srgb, var(--dn-5) 55%, transparent), inset 0 0 22px color-mix(in srgb, var(--dn-2) 24%, transparent);
}
/* Fekete szél: keringő sávok a kártya körül (felébredve). */
.dante-card-fx__wind { opacity: 0; transition: opacity .6s; }
.dante-card-fx.is-awakened .dante-card-fx__wind { opacity: 1; }
.dante-card-fx__wind i {
    position: absolute; left: 50%; top: 50%; width: 112%; height: 104%; border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: color-mix(in srgb, var(--dn-wind) 88%, #4a2250);
    border-left-color: color-mix(in srgb, var(--dn-wind) 50%, transparent);
    filter: blur(.6px) drop-shadow(0 0 4px #000);
    transform: translate(-50%, -50%) rotate(calc(var(--w-i) * 72deg));
    animation: dnWindOrbit calc(3.2s + var(--w-i) * .5s) linear infinite;
    animation-delay: calc(var(--w-i) * -.7s);
}
[data-dn-theme="urhajos"] .dante-card-fx__wind i { border-top-color: color-mix(in srgb, var(--dn-2) 80%, transparent); border-left-color: color-mix(in srgb, var(--dn-1) 45%, transparent); filter: drop-shadow(0 0 4px var(--dn-5)); }
/* Vér csorog a kártya tetejéről (felébredve). */
.dante-card-fx__drips { inset: 18px 22px auto !important; height: 60px; opacity: 0; transition: opacity .6s; }
.dante-card-fx.is-awakened .dante-card-fx__drips { opacity: 1; }
.dante-card-fx__drips i {
    position: absolute; top: 0; left: var(--d-x); width: 4px; height: 10px;
    border-radius: 2px 2px 50% 50%;
    background: linear-gradient(180deg, color-mix(in srgb, var(--dn-blood) 50%, transparent), var(--dn-blood));
    box-shadow: 0 0 5px var(--dn-blood);
    transform-origin: top center;
    animation: dnCardDrip calc(2.4s + var(--d-i) * .37s) ease-in infinite; animation-delay: calc(var(--d-i) * -.61s);
}
[data-dn-theme="urhajos"] .dante-card-fx__drips i { width: 3px; background: linear-gradient(180deg, transparent, var(--dn-4), var(--dn-5)); box-shadow: 0 0 5px var(--dn-5); border-radius: 2px; }
.dante-card-fx.is-bloodlust .dante-card-fx__drips i { animation-duration: calc(1.2s + var(--d-i) * .2s); }
/* Motívumok: démoni rúnák / rakéták, csillagok. */
.dante-card-fx__motifs .dn-motif.is-card {
    bottom: 12px; left: calc(10% + var(--m-i) * 15%); width: 13px; height: 13px;
    animation: dnCardMotif calc(5s + var(--m-i) * .6s) linear infinite; animation-delay: calc(var(--m-i) * -1.1s);
}
.dante-card-fx:not(.is-awakened) .dante-card-fx__motifs { opacity: .35; }
/* Egyszeri villanások. */
.dante-card-fx__flash { inset: 16px !important; border-radius: 22px; opacity: 0; }
.dante-card-fx.is-flash-awaken .dante-card-fx__flash { background: radial-gradient(ellipse at 50% 50%, color-mix(in srgb, var(--dn-blood) 65%, transparent), #000a 60%, transparent 80%); animation: dnFlash 1.4s ease-out; }
.dante-card-fx.is-flash-strike .dante-card-fx__flash { background: linear-gradient(125deg, transparent 38%, #fff 48%, var(--dn-blood) 52%, transparent 62%); animation: dnFlashSlash .7s ease-out; }
.dante-card-fx.is-flash-wind .dante-card-fx__flash { background: radial-gradient(ellipse, transparent 40%, color-mix(in srgb, var(--dn-wind) 85%, #3a1c3f) 70%, transparent 90%); animation: dnFlash 1s ease-out; }
.dante-card-fx.is-flash-lust .dante-card-fx__flash { box-shadow: inset 0 0 40px var(--dn-blood), 0 0 30px var(--dn-blood); animation: dnFlash .9s ease-out; }
.dante-card-fx.is-flash-drain .dante-card-fx__flash { box-shadow: inset 0 0 22px color-mix(in srgb, var(--dn-blood) 70%, transparent); animation: dnFlash .6s ease-out; }
.dante-card-fx.is-flash-cast .dante-card-fx__flash { box-shadow: inset 0 0 26px color-mix(in srgb, var(--dn-glow) 60%, transparent); animation: dnFlash .7s ease-out; }

/* ---------------------------------------
   Prémium tooltip (full-bleed, saját körvonal)
   --------------------------------------- */
body.v3-body > .item-tooltip-floating:has(.dante-sword-tooltip),
body.v3-body > .v3-floating-tooltip:has(.dante-sword-tooltip) {
    width: min(430px, calc(100vw - 20px)) !important; max-width: 430px !important; max-height: none !important;
    padding: 0 !important; border: 0 !important; border-radius: 20px;
    background: transparent !important; box-shadow: none !important; overflow: visible !important;
}
.item-tooltip-floating .item-tooltip-desc:has(.dante-sword-tooltip) { margin: 0 !important; color: inherit; font-size: inherit; line-height: inherit; }
.dante-sword-tooltip {
    position: relative; isolation: isolate; box-sizing: border-box; display: block; width: 100%;
    padding: 16px; overflow: hidden;
    border: 2px solid color-mix(in srgb, var(--dn-blood) 70%, var(--dn-steel)); border-radius: 20px;
    outline: 1px solid color-mix(in srgb, var(--dn-glow) 45%, transparent); outline-offset: -6px;
    background:
        radial-gradient(circle at 8% 4%, color-mix(in srgb, var(--dn-glow) 18%, transparent), transparent 34%),
        radial-gradient(ellipse 70% 40% at 50% 108%, color-mix(in srgb, var(--dn-blood) 24%, transparent), transparent 70%),
        linear-gradient(155deg, color-mix(in srgb, var(--dn-1) 70%, #000), color-mix(in srgb, var(--dn-night) 94%, #000) 55%, color-mix(in srgb, var(--dn-deep) 60%, #000));
    box-shadow: 0 24px 70px #000e, 0 0 26px color-mix(in srgb, var(--dn-blood) 30%, transparent), inset 0 0 48px #0008;
    color: #fff; font-family: Outfit, sans-serif; text-align: left;
}
.dante-sword-tooltip.is-awakened {
    border-color: var(--dn-blood);
    box-shadow: 0 24px 70px #000e, 0 0 34px color-mix(in srgb, var(--dn-blood) 60%, transparent), 0 0 0 3px #000a, inset 0 0 48px #000a;
}
.dante-sword-tooltip.is-bloodlust { border-color: #fff; box-shadow: 0 24px 70px #000e, 0 0 40px var(--dn-blood), 0 0 0 3px color-mix(in srgb, var(--dn-blood) 50%, transparent), inset 0 0 48px #000a; }
/* Alap: vérfoltok, repedések. */
.dante-sword-tooltip::before, #dante-sword-workshop::before {
    content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .26;
    background:
        radial-gradient(ellipse 22% 10% at 88% 0, color-mix(in srgb, var(--dn-blood) 80%, transparent), transparent 70%),
        radial-gradient(ellipse 30% 14% at 12% 100%, color-mix(in srgb, var(--dn-blood) 55%, transparent), transparent 70%),
        repeating-linear-gradient(118deg, transparent 0 22px, #0000004d 22px 24px),
        radial-gradient(1.5px 1.5px at 20% 30%, var(--dn-blood), transparent 60%),
        radial-gradient(1px 1px at 64% 58%, #fff, transparent 60%);
    background-size: 100% 100%, 100% 100%, 100% 100%, 120px 100px, 120px 100px;
}
/* Űrhajós: csillagmező, hajtómű-csíkok. */
.dante-sword-tooltip[data-dn-theme="urhajos"]::before, #dante-sword-workshop[data-dn-theme="urhajos"]::before {
    opacity: .34;
    background:
        radial-gradient(1.5px 1.5px at 14% 22%, #fff, transparent 60%),
        radial-gradient(1px 1px at 66% 48%, var(--dn-4), transparent 60%),
        radial-gradient(1.2px 1.2px at 40% 80%, var(--dn-1), transparent 60%),
        repeating-linear-gradient(90deg, transparent 0 34px, color-mix(in srgb, var(--dn-1) 16%, transparent) 34px 35px),
        radial-gradient(ellipse 50% 22% at 90% 0, color-mix(in srgb, var(--dn-2) 45%, transparent), transparent 70%);
    background-size: 110px 90px, 110px 90px, 110px 90px, 100% 100%, 100% 100%;
}
.dante-sword-tooltip > * { position: relative; z-index: 2; }
.dante-sword-tooltip > .dante-sword-tooltip__vfx { position: absolute; z-index: 0; inset: 0; pointer-events: none; overflow: hidden; }
.dante-sword-tooltip__vfx .dn-motif { top: 104%; left: calc(4% + var(--m-i) * 12%); animation: dnMotifRiseFar 8s linear infinite; animation-delay: calc(var(--m-i) * -.95s); }
.dante-sword-tooltip:not(.is-awakened) .dante-sword-tooltip__vfx { opacity: .45; }
.dante-sword-tooltip header {
    display: flex; align-items: center; gap: 12px; margin-bottom: 11px; padding-bottom: 11px;
    border-bottom: 1px solid color-mix(in srgb, var(--dn-blood) 30%, transparent);
}
.dante-sword-tooltip__crest, .dante-sword-workshop__crest { position: relative; flex: 0 0 58px; width: 58px; height: 70px; }
.dante-sword-tooltip__crest i, .dante-sword-workshop__crest i {
    position: absolute; inset: 4px -2px; border-radius: 50%;
    background: radial-gradient(ellipse, color-mix(in srgb, var(--dn-blood) 32%, transparent), transparent 70%);
    animation: dnHaloSimple 2.4s ease-in-out infinite alternate;
}
.dante-sword-tooltip__crest img, .dante-sword-workshop__crest img {
    position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; object-fit: contain; transform: translate(-50%, -50%);
    filter: brightness(.75) drop-shadow(0 0 5px color-mix(in srgb, var(--dn-blood) 55%, transparent));
}
.dante-sword-tooltip.is-awakened .dante-sword-tooltip__crest i, .dante-sword-workshop__crest.is-awakened i { background: radial-gradient(ellipse, color-mix(in srgb, var(--dn-blood) 70%, transparent), #0008 55%, transparent 72%); animation-duration: 1.2s; }
.dante-sword-tooltip.is-awakened .dante-sword-tooltip__crest img, .dante-sword-workshop__crest.is-awakened img { filter: brightness(1.1) drop-shadow(0 0 6px var(--dn-blood)) drop-shadow(0 0 3px #000); }
.dante-sword-tooltip header > div { display: grid; flex: 1; gap: 2px; min-width: 0; }
.dante-sword-tooltip header small { color: var(--dn-glow); font: 800 9px/1 Montserrat, sans-serif; letter-spacing: .16em; }
.dante-sword-tooltip header strong { font: 900 21px/1.1 Montserrat, sans-serif; text-shadow: 0 0 15px color-mix(in srgb, var(--dn-blood) 80%, transparent); }
.dante-sword-tooltip header em { color: color-mix(in srgb, var(--dn-3) 70%, #fff); font: 800 10.5px/1.2 Outfit, sans-serif; font-style: normal; letter-spacing: .06em; }
.dante-sword-tooltip.is-awakened header em { color: #ff9aa9; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; text-shadow: 0 0 8px var(--dn-blood); }
[data-dn-theme="urhajos"].dante-sword-tooltip.is-awakened header em { color: var(--dn-4); text-shadow: 0 0 8px var(--dn-5); }
.dante-sword-tooltip header > b { display: grid; justify-items: center; gap: 2px; padding: 5px 9px; border: 1px solid color-mix(in srgb, var(--dn-blood) 50%, transparent); border-radius: 11px; background: #0007; }
.dante-sword-tooltip header > b span { color: #fff; font: 900 20px/1 Montserrat, sans-serif; text-shadow: 0 0 10px var(--dn-blood); }
.dante-sword-tooltip header > b small { color: #fff; font: 800 7px/1 Montserrat, sans-serif; letter-spacing: .1em; }
/* Felébredt kard sorai (spec szerinti négy sor a fejlécben + lista). */
.dante-sword-tooltip__awake { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin: 0 0 8px; padding: 0; list-style: none; }
.dante-sword-tooltip__awake li {
    display: flex; align-items: center; justify-content: center; gap: 5px; padding: 6px 5px;
    border: 1px solid color-mix(in srgb, var(--dn-blood) 55%, transparent); border-radius: 9px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--dn-deep) 70%, #000), #000a);
    font: 900 10px/1.15 Montserrat, sans-serif; text-align: center; text-shadow: 0 0 6px var(--dn-blood);
}
.dante-sword-tooltip__awake img { width: 17px; height: 17px; object-fit: contain; }
.dante-sword-tooltip__awake li.is-wind { background: linear-gradient(135deg, #000, color-mix(in srgb, var(--dn-wind) 80%, #2a1330)); }
.dante-sword-tooltip__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-bottom: 8px; }
.dante-sword-tooltip__facts span { display: grid; justify-items: center; gap: 3px; padding: 6px 4px; border: 1px solid color-mix(in srgb, var(--dn-glow) 22%, transparent); border-radius: 9px; background: #0006; text-align: center; }
.dante-sword-tooltip__facts small { color: color-mix(in srgb, var(--dn-3) 60%, #fff); font: 700 8px/1.1 Montserrat, sans-serif; letter-spacing: .05em; }
.dante-sword-tooltip__facts b { color: #fff; font: 900 13px/1 Montserrat, sans-serif; text-shadow: 0 0 7px var(--dn-blood); }
.dante-sword-tooltip__badges { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.dante-sword-tooltip__badges span { display: inline-flex; align-items: center; gap: 4px; padding: 2px 7px 2px 2px; border: 1px solid var(--dn-glow); border-radius: 10px; background: color-mix(in srgb, var(--dn-deep) 40%, #0008); font: 800 9px/1.2 Montserrat, sans-serif; }
.dante-sword-tooltip__badges img { width: 18px; height: 18px; border-radius: 6px; object-fit: cover; }
.dante-sword-tooltip__badges .is-bloodlust { border-color: var(--dn-blood); box-shadow: 0 0 8px var(--dn-blood); }
.dante-sword-tooltip__badges .is-strike { border-color: #fff; }
.dante-sword-tooltip__line { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; padding: 7px 9px; border-left: 2px solid color-mix(in srgb, var(--dn-blood) 45%, transparent); border-radius: 0 8px 8px 0; background: #0005; color: color-mix(in srgb, var(--dn-3) 40%, #fff); font: 500 10.5px/1.4 Outfit, sans-serif; }
.dante-sword-tooltip__line > img { flex: 0 0 26px; width: 26px; height: 26px; object-fit: contain; opacity: .75; }
.dante-sword-tooltip__line.is-active { border-left-color: var(--dn-blood); background: color-mix(in srgb, var(--dn-deep) 45%, #0006); color: #fff; }
.dante-sword-tooltip__line.is-active > img { opacity: 1; filter: drop-shadow(0 0 5px var(--dn-blood)); }
.dante-sword-tooltip__hint { display: block; margin-top: 9px; color: var(--dn-glow); font: 700 8px/1.3 Montserrat, sans-serif; text-align: center; letter-spacing: .06em; }

/* ---------------------------------------
   Szentély / Hajtóműcsarnok popup (dialog)
   --------------------------------------- */
#dante-sword-workshop {
    position: fixed; width: min(1140px, 95vw); max-width: 95vw; max-height: 92vh; padding: 0; overflow: hidden;
    border: 2px solid color-mix(in srgb, var(--dn-blood) 70%, var(--dn-steel)); border-radius: 22px;
    outline: 1px solid color-mix(in srgb, var(--dn-glow) 40%, transparent); outline-offset: -7px;
    background:
        radial-gradient(circle at 8% 0, color-mix(in srgb, var(--dn-glow) 16%, transparent), transparent 34%),
        radial-gradient(ellipse 60% 30% at 50% 104%, color-mix(in srgb, var(--dn-blood) 22%, transparent), transparent 70%),
        linear-gradient(145deg, color-mix(in srgb, var(--dn-1) 65%, #000), color-mix(in srgb, var(--dn-night) 95%, #000) 60%, color-mix(in srgb, var(--dn-deep) 55%, #000));
    box-shadow: 0 30px 100px #000f, 0 0 45px color-mix(in srgb, var(--dn-blood) 30%, transparent);
    color: #fff;
}
#dante-sword-workshop.is-awakened { border-color: var(--dn-blood); box-shadow: 0 30px 100px #000f, 0 0 60px color-mix(in srgb, var(--dn-blood) 50%, transparent); }
#dante-sword-workshop::backdrop { background: rgba(4, 2, 6, .88); backdrop-filter: blur(8px); }
.dante-sword-workshop__vfx { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.dante-sword-workshop__vfx .dn-motif {
    bottom: -24px; left: calc(2% + var(--m-i) * 7%); width: 16px; height: 16px;
    animation: dnWorkshopRise 14s linear infinite; animation-delay: calc(var(--m-i) * -1s);
}
#dante-sword-workshop > header, .dante-sword-workshop__content { position: relative; z-index: 1; }
#dante-sword-workshop > header { display: flex; align-items: center; gap: 14px; padding: 14px 25px 12px; border-bottom: 1px solid color-mix(in srgb, var(--dn-blood) 30%, transparent); }
.dante-sword-workshop__title { flex: 1; }
.dante-sword-workshop__title small { color: var(--dn-glow); font: 800 9px/1 Montserrat, sans-serif; letter-spacing: .2em; }
.dante-sword-workshop__title h2 { margin: 5px 0 0; font: 900 25px/1 Montserrat, sans-serif; text-shadow: 0 0 16px var(--dn-blood); }
#dante-sword-workshop > header button { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--dn-blood); border-radius: 50%; background: #0007; color: #fff; font-size: 22px; cursor: pointer; }
.dante-sword-workshop__content { display: grid; grid-template-columns: minmax(380px, .9fr) minmax(460px, 1.1fr); gap: 15px; max-height: calc(92vh - 100px); padding: 18px 22px 24px; overflow: auto; }
.dante-sword-workshop__overview h3 { margin: 14px 0 0; color: var(--dn-glow); font: 900 11px/1 Montserrat, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.dante-sword-workshop__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
.dante-sword-workshop__stats span { display: grid; justify-items: center; gap: 3px; padding: 8px 5px; border: 1px solid color-mix(in srgb, var(--dn-blood) 24%, transparent); border-radius: 10px; background: #0006; text-align: center; }
.dante-sword-workshop__stats span.is-main { border-color: var(--dn-blood); background: color-mix(in srgb, var(--dn-deep) 45%, #0008); }
.dante-sword-workshop__stats b { color: #fff; font: 900 16px/1 Montserrat, sans-serif; text-shadow: 0 0 8px var(--dn-blood); }
.dante-sword-workshop__stats small { color: color-mix(in srgb, var(--dn-3) 55%, #fff); font: 600 8.5px/1.2 Outfit, sans-serif; }
.dante-sword-workshop__state ul, .dante-sword-workshop__rules { display: grid; gap: 5px; margin: 8px 0 0; padding: 0; list-style: none; }
.dante-sword-workshop__state li, .dante-sword-workshop__rules li, .dante-sword-workshop__basic li, .dante-sword-workshop__ladder li { padding: 6px 9px; border-left: 2px solid var(--dn-blood); border-radius: 0 8px 8px 0; background: #0005; color: color-mix(in srgb, var(--dn-3) 45%, #fff); font: 500 10px/1.35 Outfit, sans-serif; }
.dante-sword-workshop__state b, .dante-sword-workshop__rules b, .dante-sword-workshop__basic li b, .dante-sword-workshop__ladder li b { color: #fff; }
.dante-sword-workshop__ladder { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 9px; }
.dante-sword-workshop__ladder article { display: grid; grid-template-columns: 44px 1fr; align-items: start; gap: 9px; padding: 9px; border: 1px solid color-mix(in srgb, var(--dn-3) 28%, transparent); border-radius: 11px; background: #0005; opacity: .66; }
.dante-sword-workshop__ladder article.is-current { opacity: 1; border-color: var(--dn-glow); box-shadow: 0 0 12px color-mix(in srgb, var(--dn-glow) 30%, transparent); }
.dante-sword-workshop__ladder article.is-awake.is-current { border-color: var(--dn-blood); background: color-mix(in srgb, var(--dn-deep) 40%, #0006); box-shadow: 0 0 16px color-mix(in srgb, var(--dn-blood) 50%, transparent); }
.dante-sword-workshop__ladder ul { display: grid; gap: 4px; margin: 6px 0 0; padding: 0; list-style: none; }
.dante-sword-workshop__blade img { display: block; width: 44px; height: 44px; object-fit: contain; filter: brightness(.7) drop-shadow(0 0 4px color-mix(in srgb, var(--dn-blood) 45%, transparent)); }
.dante-sword-workshop__ladder article.is-awake .dante-sword-workshop__blade img { filter: brightness(1.1) drop-shadow(0 0 6px var(--dn-blood)) drop-shadow(0 0 2px #000); }
.dante-sword-workshop__ladder small { color: var(--dn-glow); font: 800 8px/1 Montserrat, sans-serif; letter-spacing: .12em; }
.dante-sword-workshop__ladder strong { display: block; margin-top: 2px; font: 900 13px/1.1 Montserrat, sans-serif; }
.dante-sword-workshop__summary { margin: 10px 0 0; color: color-mix(in srgb, var(--dn-3) 45%, #fff); font: 500 10.5px/1.45 Outfit, sans-serif; }
.dante-sword-workshop__gallery { display: grid; gap: 6px; margin-top: 9px; }
.dante-sword-workshop__gallery article { display: grid; grid-template-columns: 50px 1fr; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid color-mix(in srgb, var(--dn-blood) 18%, transparent); border-radius: 11px; background: #0005; opacity: .8; }
.dante-sword-workshop__gallery article.is-current { opacity: 1; border-color: var(--dn-blood); box-shadow: inset 0 0 16px color-mix(in srgb, var(--dn-deep) 45%, transparent), 0 0 12px color-mix(in srgb, var(--dn-blood) 32%, transparent); }
.dante-sword-workshop__gallery img { width: 46px; height: 46px; object-fit: contain; filter: drop-shadow(0 0 6px var(--dn-blood)); }
.dante-sword-workshop__gallery small { color: var(--dn-glow); font: 800 8px/1 Montserrat, sans-serif; letter-spacing: .12em; }
.dante-sword-workshop__gallery strong { display: block; margin-top: 2px; font: 900 14px/1.1 Montserrat, sans-serif; }
.dante-sword-workshop__gallery p { margin: 3px 0 0; color: color-mix(in srgb, var(--dn-3) 45%, #fff); font: 500 9.5px/1.3 Outfit, sans-serif; }
.dante-sword-workshop__overview .dante-sword-tooltip { box-shadow: 0 0 18px color-mix(in srgb, var(--dn-blood) 28%, transparent), inset 0 0 40px #0008; }
.dante-sword-workshop__overview .dante-sword-tooltip__hint { display: none; }
.dante-sword-workshop__abilities { display: grid; align-content: start; gap: 9px; }
.dante-sword-workshop__abilities article { display: grid; grid-template-columns: 68px 1fr; align-items: start; gap: 11px; padding: 11px; border: 1px solid color-mix(in srgb, var(--dn-blood) 24%, transparent); border-radius: 13px; background: #ffffff07; }
.dante-sword-workshop__abilities article > img { width: 66px; height: 66px; object-fit: cover; border: 1px solid var(--dn-blood); border-radius: 11px; box-shadow: 0 0 13px color-mix(in srgb, var(--dn-blood) 40%, transparent); }
.dante-sword-workshop__basic > img { object-fit: contain !important; background: radial-gradient(circle, color-mix(in srgb, var(--dn-blood) 30%, transparent), #000 75%); }
.dante-sword-workshop__basic small { color: var(--dn-glow); font: 800 8px/1 Montserrat, sans-serif; letter-spacing: .14em; }
.dante-sword-workshop__basic strong { display: block; margin-top: 3px; font: 900 15px/1.1 Montserrat, sans-serif; }
.dante-sword-workshop__basic p { margin: 4px 0 6px; color: color-mix(in srgb, var(--dn-3) 45%, #fff); font: 500 10.5px/1.4 Outfit, sans-serif; }
.dante-sword-workshop__basic ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.dante-sword-workshop__abilities .ability-progression { margin-top: 7px; }
@media (max-width: 900px) {
    .dante-sword-workshop__content { grid-template-columns: minmax(0, 1fr); }
    .dante-sword-workshop__ladder { grid-template-columns: minmax(0, 1fr); }
}

/* ---------------------------------------
   Harci napló: Dante chip (Elnyelt Életerő)
   --------------------------------------- */
.v3-log-stat-dante {
    border-color: #d1122f99 !important;
    background: linear-gradient(135deg, #350A18cc, #1A3C6588) !important;
    color: #ffdbe1 !important;
    box-shadow: 0 0 8px #d1122f55;
}

/* ---------------------------------------
   Kulcsszó-ikonok (csak Dante szövegeiben)
   --------------------------------------- */
.ability-inline-icon.is-dante-keyword {
    width: 1.4em; height: 1.4em; margin: -.3em .14em -.28em 0;
    object-fit: contain;
    filter: drop-shadow(0 0 3px #d1122faa);
}
.ability-inline-icon.is-dante-keyword[data-dante-theme="urhajos"] { filter: drop-shadow(0 0 3px #44DEFFcc); }
.ability-inline-icon.is-dante-keyword[data-dante-keyword="verszomj"] { filter: drop-shadow(0 0 3px #d1122f) drop-shadow(0 0 5px #000); }
.dante-sword-tooltip .ability-inline-icon.is-dante-keyword { width: 1.45em; height: 1.45em; }
/* Részletező leírás-lista: a "Démoni Ébredés – Felébredt kard" sor a kard
   állapota szerint kiemelt, a "Vérszomj" sor Vérszomj alatt. */
.ability-progression.is-dante-details .ability-progression-step.is-dante-awakened-row {
    border-color: rgba(209, 18, 47, .45);
}
.ability-progression.is-dante-details .ability-progression-step.is-dante-bloodlust-row {
    border-color: rgba(255, 90, 110, .4);
    border-style: dashed;
}
.ability-progression.is-dante-details .ability-progression-step.is-wide-label { grid-template-columns: minmax(0, 1fr); gap: 5px; }
.ability-progression.is-dante-details .ability-progression-step.is-current {
    background: linear-gradient(100deg, rgba(53, 10, 24, .75), rgba(0, 0, 0, .45) 62%, rgba(209, 18, 47, .2));
    border-color: rgba(209, 18, 47, .85);
    box-shadow: inset 0 0 14px rgba(53, 10, 24, .6), 0 0 10px rgba(209, 18, 47, .35);
}
.ability-progression.is-dante-details .ability-progression-step.is-current .ability-progression-label {
    color: #ffe3e8;
    text-shadow: 0 0 8px rgba(209, 18, 47, .9);
}

@keyframes dnSpin { to { transform: rotate(360deg); } }
@keyframes dnMeterBreath { from { filter: brightness(.85); } to { filter: brightness(1.2); } }
@keyframes dnLustPulse { from { filter: brightness(1); } to { filter: brightness(1.45); } }
@keyframes dnWindPass { 0% { opacity: 0; transform: translateX(0) skewX(-20deg); } 20% { opacity: .95; } 100% { opacity: 0; transform: translateX(220%) skewX(-20deg); } }
@keyframes dnEmberRise { 0% { opacity: 0; transform: translate(0, 0); } 15% { opacity: .9; } 100% { opacity: 0; transform: translate(6px, -70px); } }
@keyframes dnMotifRise { 0% { opacity: 0; transform: translateY(0) rotate(0); } 15% { opacity: .85; } 100% { opacity: 0; transform: translateY(-80px) rotate(24deg); } }
@keyframes dnMotifRiseFar { 0% { opacity: 0; transform: translate(0, 0) rotate(0); } 12% { opacity: .7; } 50% { transform: translate(12px, -200px) rotate(24deg); } 100% { opacity: 0; transform: translate(-10px, -420px) rotate(-18deg); } }
@keyframes dnSwordFloat { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes dnSwordPulse { from { opacity: .92; } to { opacity: 1; } }
@keyframes dnBladeDrip { 0% { opacity: 0; transform: translateY(0) scaleY(.6); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(26px) scaleY(1.3); } }
@keyframes dnLustBadge { from { transform: scale(1); filter: drop-shadow(0 0 2px var(--dn-blood)); } to { transform: scale(1.12); filter: drop-shadow(0 0 8px var(--dn-blood)); } }
@keyframes dnStrikeReady { from { box-shadow: 0 0 4px var(--dn-glow); } to { box-shadow: 0 0 12px var(--dn-glow), 0 0 4px #fff; } }
@keyframes dnAwaken { 0% { transform: scale(1); filter: brightness(1); } 35% { transform: scale(1.3) rotate(-8deg); filter: brightness(2.2) drop-shadow(0 0 16px var(--dn-blood)); } 100% { transform: scale(1); } }
@keyframes dnBurst { 0% { opacity: 1; transform: scale(.6); } 100% { opacity: 0; transform: scale(1.5); } }
@keyframes dnPop { 0% { transform: scale(1); } 40% { transform: scale(1.25); } 100% { transform: scale(1); } }
@keyframes dnSlash { 0% { transform: rotate(0); } 30% { transform: rotate(-24deg) scale(1.12); filter: brightness(1.8); } 100% { transform: rotate(0); } }
@keyframes dnCardLust { from { box-shadow: 0 0 0 1px var(--dn-blood), 0 0 18px color-mix(in srgb, var(--dn-blood) 50%, transparent); } to { box-shadow: 0 0 0 2px var(--dn-blood), 0 0 34px var(--dn-blood); } }
@keyframes dnAuraBreath { from { opacity: .7; } to { opacity: 1; } }
@keyframes dnAuraLust { from { opacity: .8; filter: brightness(1); } to { opacity: 1; filter: brightness(1.35); } }
@keyframes dnWindOrbit { from { transform: translate(-50%, -50%) rotate(calc(var(--w-i) * 72deg)); } to { transform: translate(-50%, -50%) rotate(calc(var(--w-i) * 72deg + 360deg)); } }
@keyframes dnCardDrip { 0% { opacity: 0; transform: translateY(0) scaleY(.4); } 18% { opacity: 1; } 70% { opacity: .9; transform: translateY(34px) scaleY(1.4); } 100% { opacity: 0; transform: translateY(48px) scaleY(.8); } }
@keyframes dnCardMotif { 0% { opacity: 0; transform: translate(0, 0) rotate(0); } 12% { opacity: .8; } 100% { opacity: 0; transform: translate(10px, -150px) rotate(40deg); } }
@keyframes dnFlash { 0% { opacity: 1; } 100% { opacity: 0; } }
@keyframes dnFlashSlash { 0% { opacity: 1; transform: translateX(-40%); } 100% { opacity: 0; transform: translateX(40%); } }
@keyframes dnHaloSimple { from { opacity: .5; transform: scale(.88); } to { opacity: 1; transform: scale(1.08); } }
@keyframes dnWorkshopRise { 0% { opacity: 0; transform: translate(0, 0) rotate(0); } 10% { opacity: .6; } 100% { opacity: 0; transform: translate(30px, -95vh) rotate(140deg); } }
@keyframes dnFlame { from { transform: scaleY(.8); } to { transform: scaleY(1.2); } }

@media (prefers-reduced-motion: reduce) {
    .dante-card-fx *, .dante-sword-meter *, .dante-sword-tooltip *, #dante-sword-workshop * { animation-duration: 0s !important; animation-iteration-count: 1 !important; }
}
body.v3-vfx-disabled .dante-sword-meter *, body.v3-vfx-disabled .dante-card-fx * { animation: none !important; }

/* Crimson Eclipse: the sealed runeblade and the Order's ceremonial reliquary. */
[data-dn-theme="rend"] { --dn-night: #1C1315; }
[data-dn-theme="rend"] .dn-motif.is-eclipse { width: 23px; height: 23px; }
[data-dn-theme="rend"] .dn-motif.is-talisman, [data-dn-theme="rend"] .dn-motif.is-oathchain { width: 15px; height: 25px; }
[data-dn-theme="rend"] .dn-motif svg { filter: drop-shadow(0 0 4px #B41D26); }
[data-dn-theme="rend"] .dn-motif .is-line * { fill: none; stroke: var(--m-tint); stroke-width: 1.7; }
[data-dn-theme="rend"].dante-sword-meter::before { border: 1px solid #B1695E99; background: radial-gradient(circle at 50% 38%, #B41D2666, #2D0000 55%, #1C1315); box-shadow: inset 0 0 16px #4F0008, 0 0 12px #B41D2644; }
[data-dn-theme="rend"] .dante-sword-meter__aura i:first-child { border-style: double; border-color: #B1695E; box-shadow: 0 0 9px #B41D26; }
[data-dn-theme="rend"] .dante-sword-meter__blood i { width: 4px; height: 15px; border: 1px solid #C8C3CC99; border-radius: 30%; background: #4F0008; }
[data-dn-theme="rend"] .dante-sword-meter__bg i.is-wind { height: 9px; background: linear-gradient(90deg, transparent, #1C1315, #B41D2644, transparent); filter: blur(2px); }
[data-dn-theme="rend"].dante-sword-tooltip, [data-dn-theme="rend"]#dante-sword-workshop {
    border-color: #B1695E99;
    background: radial-gradient(ellipse at 85% 0, #B41D2640, transparent 44%), radial-gradient(ellipse at 0 100%, #76658722, transparent 45%), linear-gradient(135deg, #1C1315, #2D0000 65%, #1C1315);
    box-shadow: 0 0 24px #B41D2638, inset 0 0 35px #4F000855, 0 20px 70px #000c;
}
.dante-sword-tooltip__rend { position: relative; z-index: 1; margin: 2px 0 9px; padding: 6px 8px; border-block: 1px solid #B1695E55; color: #E5C4C1; font: 500 10px/1.5 Outfit, sans-serif; letter-spacing: .3px; }
[data-dn-theme="rend"] .dante-sword-tooltip__crest, [data-dn-theme="rend"] .dante-sword-workshop__crest { filter: drop-shadow(0 0 8px #B41D2688); }
[data-dn-theme="rend"] .dante-sword-tooltip__awake li.is-wind { background: linear-gradient(135deg, #1C1315, #4F0008); border-color: #B1695E66; }
[data-dn-theme="rend"] .dante-sword-tooltip__vfx .dn-motif { animation-duration: 12s; }
.ability-inline-icon.is-dante-keyword[data-dante-theme="rend"] { filter: drop-shadow(0 0 4px #B41D26bb); }
