
/* ArezzoMT2 v81 - more realistic character animation */

/* calmer, more natural full-scene breathing */
body.az-v22-body .az80-live-bg::before{
  animation:az81WholeSceneBreath 24s ease-in-out infinite alternate !important;
  opacity:.34 !important;
  filter:blur(4px) saturate(1.05) !important;
}
body.az-v22-body .az80-live-bg::after{
  animation:az81GlowPulse 12s ease-in-out infinite alternate !important;
  opacity:.72 !important;
}
@keyframes az81WholeSceneBreath{
  0%{transform:scale(1.035) translate3d(-4px,-3px,0)}
  30%{transform:scale(1.05) translate3d(2px,-6px,0)}
  60%{transform:scale(1.045) translate3d(5px,2px,0)}
  100%{transform:scale(1.055) translate3d(-2px,5px,0)}
}
@keyframes az81GlowPulse{
  0%{opacity:.58; transform:scale(1)}
  50%{opacity:.80; transform:scale(1.02)}
  100%{opacity:.64; transform:scale(1.045)}
}

/* base character motion - smaller and more lifelike */
body.az-v22-body .az80-char{
  filter:drop-shadow(0 26px 36px rgba(0,0,0,.34)) !important;
}
body.az-v22-body .az80-char-left{
  animation:az81LeftIdle 6.4s cubic-bezier(.45,.03,.36,1) infinite alternate !important;
}
body.az-v22-body .az80-char-right{
  animation:az81RightIdle 6.0s cubic-bezier(.45,.03,.36,1) infinite alternate !important;
}
body.az-v22-body .az80-char .az80-body{
  animation:az81BodyBreath 4.8s ease-in-out infinite alternate !important;
  transform-origin:50% 68%;
}
@keyframes az81LeftIdle{
  0%{transform:translate3d(0,0,0) rotate(-.26deg) scale(1)}
  33%{transform:translate3d(1px,-5px,0) rotate(.08deg) scale(1.002)}
  66%{transform:translate3d(-1px,-9px,0) rotate(.18deg) scale(1.004)}
  100%{transform:translate3d(0,-4px,0) rotate(-.04deg) scale(1.003)}
}
@keyframes az81RightIdle{
  0%{transform:translate3d(0,0,0) rotate(.24deg) scale(1)}
  33%{transform:translate3d(-1px,-5px,0) rotate(-.08deg) scale(1.002)}
  66%{transform:translate3d(1px,-9px,0) rotate(-.18deg) scale(1.004)}
  100%{transform:translate3d(0,-4px,0) rotate(.04deg) scale(1.003)}
}
@keyframes az81BodyBreath{
  0%{transform:translateY(0) rotate(0deg) scale(1)}
  50%{transform:translateY(-1px) rotate(.08deg) scale(1.002)}
  100%{transform:translateY(-3px) rotate(.16deg) scale(1.004)}
}

/* realistic hair / upper-cloth secondary motion */
body.az-v22-body .az80-char .az80-body::before,
body.az-v22-body .az80-char .az80-body::after,
body.az-v22-body .az80-char .az80-cloth::before,
body.az-v22-body .az80-char .az80-cloth::after{
  content:"";
  position:absolute;
  inset:0;
  background-repeat:no-repeat;
  background-size:contain;
  background-position:bottom center;
  pointer-events:none;
}
body.az-v22-body .az80-char-left .az80-body::before,
body.az-v22-body .az80-char-left .az80-body::after,
body.az-v22-body .az80-char-left .az80-cloth::before,
body.az-v22-body .az80-char-left .az80-cloth::after{background-image:url('../images/az79-char-left.png')}
body.az-v22-body .az80-char-right .az80-body::before,
body.az-v22-body .az80-char-right .az80-body::after,
body.az-v22-body .az80-char-right .az80-cloth::before,
body.az-v22-body .az80-char-right .az80-cloth::after{background-image:url('../images/az79-char-right.png')}

/* hair / top accents */
body.az-v22-body .az80-char-left .az80-body::before{
  clip-path:polygon(6% 0, 66% 0, 57% 26%, 27% 37%, 7% 27%);
  transform-origin:28% 18%;
  animation:az81HairLeft 3.7s ease-in-out infinite alternate;
  opacity:.98;
}
body.az-v22-body .az80-char-right .az80-body::before{
  clip-path:polygon(42% 0, 100% 0, 100% 27%, 80% 40%, 50% 33%);
  transform-origin:78% 18%;
  animation:az81HairRight 4.0s ease-in-out infinite alternate;
  opacity:.98;
}
@keyframes az81HairLeft{
  0%{transform:translate3d(0,0,0) rotate(-.25deg)}
  45%{transform:translate3d(-1px,1px,0) rotate(.55deg)}
  100%{transform:translate3d(-2px,2px,0) rotate(1deg)}
}
@keyframes az81HairRight{
  0%{transform:translate3d(0,0,0) rotate(.18deg)}
  45%{transform:translate3d(1px,1px,0) rotate(-.6deg)}
  100%{transform:translate3d(2px,2px,0) rotate(-1.1deg)}
}

/* subtle chest / shoulder fabric tension */
body.az-v22-body .az80-char-left .az80-body::after{
  clip-path:polygon(12% 18%, 68% 12%, 82% 48%, 42% 66%, 18% 48%);
  transform-origin:38% 34%;
  animation:az81UpperClothLeft 4.8s ease-in-out infinite alternate;
  opacity:.90;
}
body.az-v22-body .az80-char-right .az80-body::after{
  clip-path:polygon(34% 12%, 88% 10%, 92% 46%, 58% 64%, 26% 48%);
  transform-origin:62% 34%;
  animation:az81UpperClothRight 4.5s ease-in-out infinite alternate;
  opacity:.90;
}
@keyframes az81UpperClothLeft{
  0%{transform:translate3d(0,0,0) rotate(0deg)}
  100%{transform:translate3d(-1px,1px,0) rotate(.55deg)}
}
@keyframes az81UpperClothRight{
  0%{transform:translate3d(0,0,0) rotate(0deg)}
  100%{transform:translate3d(1px,1px,0) rotate(-.55deg)}
}

/* cape main motion - smoother and reduced */
body.az-v22-body .az80-char-left .az80-cloth{
  opacity:.86 !important;
  transform-origin:18% 36% !important;
  animation:az81LeftCape 3.8s cubic-bezier(.42,0,.33,1) infinite alternate !important;
}
body.az-v22-body .az80-char-right .az80-cloth{
  opacity:.86 !important;
  transform-origin:78% 36% !important;
  animation:az81RightCape 3.6s cubic-bezier(.42,0,.33,1) infinite alternate !important;
}
@keyframes az81LeftCape{
  0%{transform:translate3d(0,0,0) rotate(-.45deg) skewX(0deg)}
  35%{transform:translate3d(-2px,1px,0) rotate(.55deg) skewX(-.8deg)}
  100%{transform:translate3d(-5px,3px,0) rotate(1.15deg) skewX(-1.6deg)}
}
@keyframes az81RightCape{
  0%{transform:translate3d(0,0,0) rotate(.45deg) skewX(0deg)}
  35%{transform:translate3d(2px,1px,0) rotate(-.55deg) skewX(.8deg)}
  100%{transform:translate3d(5px,3px,0) rotate(-1.15deg) skewX(1.6deg)}
}

/* extra cape edge lag for more realism */
body.az-v22-body .az80-char-left .az80-cloth::before{
  clip-path:polygon(0 6%, 40% 0, 92% 22%, 100% 58%, 72% 100%, 0 100%);
  transform-origin:12% 44%;
  animation:az81LeftCapeEdge 2.7s ease-in-out infinite alternate;
  opacity:.64;
  filter:blur(.2px);
}
body.az-v22-body .az80-char-right .az80-cloth::before{
  clip-path:polygon(18% 0, 100% 0, 100% 100%, 48% 100%, 40% 58%, 14% 18%);
  transform-origin:86% 44%;
  animation:az81RightCapeEdge 2.8s ease-in-out infinite alternate;
  opacity:.64;
  filter:blur(.2px);
}
@keyframes az81LeftCapeEdge{
  0%{transform:translate3d(0,0,0) rotate(-.3deg)}
  50%{transform:translate3d(-3px,1px,0) rotate(.9deg)}
  100%{transform:translate3d(-6px,2px,0) rotate(1.7deg)}
}
@keyframes az81RightCapeEdge{
  0%{transform:translate3d(0,0,0) rotate(.3deg)}
  50%{transform:translate3d(3px,1px,0) rotate(-.9deg)}
  100%{transform:translate3d(6px,2px,0) rotate(-1.7deg)}
}

/* lower cloth hem moves separately with slight lag */
body.az-v22-body .az80-char-left .az80-cloth::after{
  clip-path:polygon(0 60%, 88% 48%, 100% 100%, 0 100%);
  transform-origin:18% 76%;
  animation:az81LeftHem 2.35s ease-in-out infinite alternate;
  opacity:.58;
}
body.az-v22-body .az80-char-right .az80-cloth::after{
  clip-path:polygon(20% 48%, 100% 60%, 100% 100%, 0 100%);
  transform-origin:82% 76%;
  animation:az81RightHem 2.25s ease-in-out infinite alternate;
  opacity:.58;
}
@keyframes az81LeftHem{
  0%{transform:translate3d(0,0,0) rotate(0deg)}
  100%{transform:translate3d(-4px,2px,0) rotate(1.2deg)}
}
@keyframes az81RightHem{
  0%{transform:translate3d(0,0,0) rotate(0deg)}
  100%{transform:translate3d(4px,2px,0) rotate(-1.2deg)}
}

/* make atmosphere less distracting so realism focuses on characters */
body.az-v22-body .az80-sparks{opacity:.52 !important; animation:az81SparkRise 13s linear infinite !important}
body.az-v22-body .az80-sparks::before{opacity:.30 !important; animation:az81SparkRise 18s linear infinite reverse !important}
body.az-v22-body .az80-sparks::after{opacity:.18 !important; animation:az81Heat 7s ease-in-out infinite alternate !important}
@keyframes az81SparkRise{0%{transform:translateY(0)}100%{transform:translateY(-30px)}}
@keyframes az81Heat{0%{opacity:.12; filter:blur(0)}100%{opacity:.26; filter:blur(2px)}}
body.az-v22-body .az80-ambient-left{animation:az81Ambient 10s ease-in-out infinite alternate !important}
body.az-v22-body .az80-ambient-right{animation:az81Ambient 9s ease-in-out infinite alternate-reverse !important}
@keyframes az81Ambient{0%{transform:scale(.98); opacity:.20}100%{transform:scale(1.08); opacity:.34}}
