
/* v1.0.0-beta.5.7.2 — physical motion for the lower ornament of every dossier card. */
.character-card .theme-flourish{
  transform-origin:50% 72%;
  will-change:transform,filter,opacity;
  backface-visibility:hidden;
}

.frame-classic .theme-flourish{animation:b38ClassicFlourish 6.2s ease-in-out infinite!important}
.frame-royal .theme-flourish{animation:b38RoyalFlourish 4.8s cubic-bezier(.42,0,.25,1) infinite!important}
.frame-infernal .theme-flourish{animation:b38InfernalFlourish 2.8s ease-in-out infinite!important}
.frame-arcane .theme-flourish{animation:b38ArcaneFlourish 13s linear infinite!important}
.frame-verdant .theme-flourish{animation:b38VerdantFlourish 5.6s ease-in-out infinite!important}
.frame-frost .theme-flourish{animation:b38FrostFlourish 8.2s ease-in-out infinite!important}
.frame-cursed .theme-flourish{animation:b38CursedFlourish 4.1s steps(1,end) infinite!important}
.frame-celestial .theme-flourish{animation:b38CelestialFlourish 18s linear infinite!important}
.frame-shadow .theme-flourish{animation:b38ShadowFlourish 7.4s ease-in-out infinite!important}
.frame-storm .theme-flourish{animation:b38StormFlourish 3.1s steps(1,end) infinite!important}
.frame-tide .theme-flourish{animation:b38TideFlourish 5.2s ease-in-out infinite!important}
.frame-dawn .theme-flourish{animation:b38DawnFlourish 19s linear infinite!important}
.frame-fey .theme-flourish{animation:b38FeyFlourish 6.4s ease-in-out infinite!important}
.frame-draconic .theme-flourish{animation:b38DraconicFlourish 5.4s cubic-bezier(.44,.02,.3,1) infinite!important}
.frame-ancient .theme-flourish{animation:b38AncientFlourish 7.8s ease-in-out infinite!important}
.frame-blood .theme-flourish{animation:b38BloodFlourish 4.9s cubic-bezier(.45,.02,.28,1) infinite!important}
.frame-desert .theme-flourish{animation:b38DesertFlourish 7.2s ease-in-out infinite!important}
.frame-alchemical .theme-flourish{animation:b38AlchemicalFlourish 10.5s linear infinite!important}

@keyframes b38ClassicFlourish{
  0%,100%{transform:translate(0,0) rotate(0deg) scale(.96);filter:drop-shadow(0 0 7px color-mix(in srgb,var(--theme-primary) 16%,transparent))}
  35%{transform:translate(-3px,-2px) rotate(-2deg) scale(1.02)}
  68%{transform:translate(2px,-5px) rotate(2deg) scale(1.06);filter:drop-shadow(0 0 14px color-mix(in srgb,var(--theme-primary) 35%,transparent))}
}
@keyframes b38RoyalFlourish{
  0%,100%{transform:translateY(0) rotate(0deg) scale(1,.96);filter:drop-shadow(0 0 7px color-mix(in srgb,var(--theme-primary) 22%,transparent))}
  28%{transform:translateY(-4px) rotate(-5deg) scale(1.04,.98)}
  52%{transform:translateY(-9px) rotate(3deg) scale(1.08,1.04);filter:drop-shadow(0 7px 15px color-mix(in srgb,var(--theme-primary) 48%,transparent))}
  72%{transform:translateY(-3px) rotate(1deg) scale(1.02,.98)}
}
@keyframes b38InfernalFlourish{
  0%,100%{transform:translateY(1px) skewX(0deg) rotate(-1deg) scale(.96,1);filter:drop-shadow(0 0 8px color-mix(in srgb,var(--theme-primary) 22%,transparent))}
  18%{transform:translate(-2px,-5px) skewX(-7deg) rotate(-4deg) scale(1.02,1.1)}
  42%{transform:translate(3px,-10px) skewX(8deg) rotate(5deg) scale(.94,1.16);filter:drop-shadow(0 0 18px color-mix(in srgb,var(--theme-primary) 52%,transparent))}
  65%{transform:translate(-1px,-4px) skewX(-4deg) rotate(-2deg) scale(1.05,1.06)}
}
@keyframes b38ArcaneFlourish{
  0%{transform:rotate(0deg) scale(.94)}
  25%{transform:rotate(90deg) scale(1.04)}
  50%{transform:rotate(180deg) scale(.96);filter:drop-shadow(0 0 17px color-mix(in srgb,var(--theme-primary) 46%,transparent))}
  75%{transform:rotate(270deg) scale(1.05)}
  100%{transform:rotate(360deg) scale(.94)}
}
@keyframes b38VerdantFlourish{
  0%,100%{transform:rotate(-8deg) translate(0,0);transform-origin:18% 88%}
  30%{transform:rotate(-15deg) translate(-2px,-2px);transform-origin:18% 88%}
  62%{transform:rotate(2deg) translate(3px,-5px);transform-origin:18% 88%;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--theme-primary) 38%,transparent))}
  82%{transform:rotate(-11deg) translate(-1px,-1px);transform-origin:18% 88%}
}
@keyframes b38FrostFlourish{
  0%,100%{transform:rotate(-8deg) scale(.92);filter:drop-shadow(0 0 8px color-mix(in srgb,var(--theme-primary) 24%,transparent))}
  28%{transform:rotate(34deg) scale(1.02)}
  58%{transform:rotate(92deg) scale(.96);filter:drop-shadow(0 0 19px color-mix(in srgb,var(--theme-primary) 52%,transparent))}
  78%{transform:rotate(47deg) scale(1.06)}
}
@keyframes b38CursedFlourish{
  0%,12%,100%{transform:translate(0,0) rotate(-13deg) scaleY(1)}
  14%{transform:translate(-5px,-2px) rotate(-22deg) scaleY(1.08)}
  16%{transform:translate(4px,2px) rotate(-5deg) scaleY(.92)}
  18%{transform:translate(-2px,-1px) rotate(-17deg)}
  45%{transform:translate(0,-3px) rotate(-11deg)}
  47%{transform:translate(5px,1px) rotate(-2deg) scaleY(1.1);filter:drop-shadow(0 0 16px color-mix(in srgb,var(--theme-primary) 55%,transparent))}
  49%{transform:translate(-4px,-2px) rotate(-24deg) scaleY(.9)}
  51%{transform:translate(0,0) rotate(-13deg)}
}
@keyframes b38CelestialFlourish{
  0%{transform:rotate(-18deg) scale(.96)}
  25%{transform:rotate(-108deg) scale(1.03)}
  50%{transform:rotate(-198deg) scale(.98);filter:drop-shadow(0 0 18px color-mix(in srgb,var(--theme-primary) 48%,transparent))}
  75%{transform:rotate(-288deg) scale(1.04)}
  100%{transform:rotate(-378deg) scale(.96)}
}
@keyframes b38ShadowFlourish{
  0%,100%{transform:translateX(0) rotate(-4deg) scale(.94);opacity:.46}
  35%{transform:translateX(-10px) rotate(-13deg) scale(1.02);opacity:.7}
  62%{transform:translate(5px,-4px) rotate(7deg) scale(1.08);opacity:.38;filter:drop-shadow(0 0 17px color-mix(in srgb,var(--theme-primary) 40%,transparent))}
  82%{transform:translateX(2px) rotate(2deg) scale(.98);opacity:.62}
}
@keyframes b38StormFlourish{
  0%,10%,100%{transform:translate(0,0) rotate(0deg) scale(.96);filter:drop-shadow(0 0 7px color-mix(in srgb,var(--theme-primary) 20%,transparent))}
  11%{transform:translate(-5px,-7px) rotate(-8deg) scale(1.1);filter:drop-shadow(0 0 21px var(--theme-primary))}
  13%{transform:translate(4px,2px) rotate(6deg) scale(.92)}
  15%{transform:translate(-2px,-3px) rotate(-3deg) scale(1.04)}
  48%{transform:translate(0,-2px) rotate(1deg) scale(.98)}
  49%{transform:translate(6px,-8px) rotate(9deg) scale(1.13);filter:drop-shadow(0 0 23px var(--theme-primary))}
  51%{transform:translate(-4px,1px) rotate(-7deg) scale(.91)}
  53%{transform:translate(0,0) rotate(0deg) scale(.96)}
}
@keyframes b38TideFlourish{
  0%,100%{transform:translateX(0) translateY(0) rotate(-12deg) scaleX(.96)}
  30%{transform:translateX(-8px) translateY(-3px) rotate(-7deg) scaleX(1.08)}
  58%{transform:translateX(5px) translateY(-7px) rotate(-16deg) scaleX(.94);filter:drop-shadow(0 0 16px color-mix(in srgb,var(--theme-primary) 43%,transparent))}
  78%{transform:translateX(2px) translateY(-2px) rotate(-10deg) scaleX(1.03)}
}
@keyframes b38DawnFlourish{
  0%{transform:translateY(6px) rotate(0deg) scale(.9);filter:drop-shadow(0 0 8px color-mix(in srgb,var(--theme-primary) 23%,transparent))}
  25%{transform:translateY(-2px) rotate(90deg) scale(1)}
  50%{transform:translateY(-7px) rotate(180deg) scale(1.08);filter:drop-shadow(0 0 20px color-mix(in srgb,var(--theme-primary) 52%,transparent))}
  75%{transform:translateY(-2px) rotate(270deg) scale(1)}
  100%{transform:translateY(6px) rotate(360deg) scale(.9)}
}
@keyframes b38FeyFlourish{
  0%,100%{transform:translate(0,0) rotate(0deg) skewX(0deg) scale(.94)}
  20%{transform:translate(-7px,-8px) rotate(-12deg) skewX(7deg) scale(1.03)}
  48%{transform:translate(4px,-13px) rotate(15deg) skewX(-8deg) scale(.97);filter:drop-shadow(0 0 18px color-mix(in srgb,var(--theme-primary) 48%,transparent))}
  72%{transform:translate(8px,-4px) rotate(-5deg) skewX(4deg) scale(1.06)}
}
@keyframes b38DraconicFlourish{
  0%,100%{transform:translateY(0) rotate(0deg) scaleX(.9) scaleY(.98)}
  24%{transform:translateY(-5px) rotate(-4deg) scaleX(1.12) scaleY(.91)}
  48%{transform:translateY(-10px) rotate(5deg) scaleX(.82) scaleY(1.12);filter:drop-shadow(0 0 19px color-mix(in srgb,var(--theme-primary) 50%,transparent))}
  70%{transform:translateY(-3px) rotate(-2deg) scaleX(1.08) scaleY(.94)}
}
@keyframes b38AncientFlourish{
  0%,100%{transform:translate(0,0) rotate(0deg) scale(.98)}
  24%{transform:translate(-2px,-2px) rotate(-1.2deg) scale(1.01)}
  48%{transform:translate(3px,-5px) rotate(1.6deg) scale(1.04);filter:drop-shadow(0 5px 13px color-mix(in srgb,var(--theme-primary) 38%,transparent))}
  52%{transform:translate(-2px,-3px) rotate(-1deg) scale(1.02)}
  78%{transform:translate(1px,-1px) rotate(.5deg) scale(1)}
}
@keyframes b38BloodFlourish{
  0%,100%{transform:translateY(-8px) scale(.9,1.02);opacity:.58}
  34%{transform:translateY(2px) scale(1.04,1.14);opacity:.9}
  58%{transform:translateY(12px) scale(.82,1.22);opacity:.72;filter:drop-shadow(0 9px 14px color-mix(in srgb,var(--theme-primary) 52%,transparent))}
  68%{transform:translateY(17px) scale(.62,.8);opacity:.18}
  69%{transform:translateY(-12px) scale(.72,.74);opacity:0}
  78%{transform:translateY(-8px) scale(.9,1.02);opacity:.58}
}
@keyframes b38DesertFlourish{
  0%,100%{transform:translate(0,0) skewX(0deg) scaleX(.96);filter:blur(0)}
  28%{transform:translate(-7px,-2px) skewX(-5deg) scaleX(1.08)}
  55%{transform:translate(5px,-6px) skewX(7deg) scaleX(.93);filter:blur(.35px) drop-shadow(0 0 14px color-mix(in srgb,var(--theme-primary) 38%,transparent))}
  78%{transform:translate(2px,-1px) skewX(-2deg) scaleX(1.03);filter:blur(0)}
}
@keyframes b38AlchemicalFlourish{
  0%{transform:rotate(0deg) translateY(0) scale(.94)}
  20%{transform:rotate(72deg) translateY(-4px) scale(1.03)}
  42%{transform:rotate(151deg) translateY(2px) scale(.98)}
  61%{transform:rotate(219deg) translateY(-7px) scale(1.08);filter:drop-shadow(0 0 19px color-mix(in srgb,var(--theme-primary) 50%,transparent))}
  80%{transform:rotate(292deg) translateY(-1px) scale(1)}
  100%{transform:rotate(360deg) translateY(0) scale(.94)}
}

body.calm-mode .character-card .theme-flourish,
body.effects-off .character-card .theme-flourish{animation:none!important}
@media(prefers-reduced-motion:reduce){.character-card .theme-flourish{animation:none!important}}
