/* shared micro-animations used by the illustrations (custom props: --d duration, --dl delay, --a angle, --b distance) */
.a{animation-duration:var(--d,3s);animation-delay:var(--dl,0s);animation-iteration-count:infinite;animation-timing-function:ease-in-out}
.a-swing{animation-name:kSwing;transform-origin:var(--ox,50px) var(--oy,0px)}
.a-bob{animation-name:kBob}
.a-drift{animation-name:kDrift}
.a-spin{animation-name:kSpin;animation-timing-function:linear;transform-box:fill-box;transform-origin:center}
.a-rise{animation-name:kRise;animation-timing-function:ease-out}
.a-tw{animation-name:kTwinkle;transform-box:fill-box;transform-origin:center}
.a-legA{animation-name:kLegA;transform-box:fill-box;transform-origin:50% 4%}
.a-legB{animation-name:kLegB;transform-box:fill-box;transform-origin:50% 4%}
.a-hop{animation-name:kHop;transform-box:fill-box;transform-origin:50% 100%}
.a-wave{animation-name:kWave;animation-timing-function:linear}
.a-puff{animation-name:kPuff;animation-timing-function:ease-out;transform-box:fill-box;transform-origin:center}
.a-fall{animation-name:kFall;animation-timing-function:linear}
.a-flick{animation-name:kFlick}
.a-dash{animation-name:kDash;animation-timing-function:linear}
.a-pulse{animation-name:kPulse;transform-box:fill-box;transform-origin:center}

@keyframes kSwing{0%,100%{transform:rotate(calc(var(--a,5) * -1deg))}50%{transform:rotate(calc(var(--a,5) * 1deg))}}
@keyframes kBob{0%,100%{transform:translateY(calc(var(--b,2) * -1px))}50%{transform:translateY(calc(var(--b,2) * 1px))}}
@keyframes kDrift{0%,100%{transform:translateX(calc(var(--b,6) * -1px))}50%{transform:translateX(calc(var(--b,6) * 1px))}}
@keyframes kSpin{to{transform:rotate(360deg)}}
@keyframes kRise{0%{transform:translateY(8px);opacity:0}30%{opacity:.85}100%{transform:translateY(-12px);opacity:0}}
@keyframes kTwinkle{0%,100%{transform:scale(.45);opacity:.2}50%{transform:scale(1.15);opacity:1}}
@keyframes kLegA{0%,100%{transform:rotate(-26deg)}50%{transform:rotate(26deg)}}
@keyframes kLegB{0%,100%{transform:rotate(26deg)}50%{transform:rotate(-26deg)}}
@keyframes kHop{0%,100%{transform:translateY(0) scale(1.05,.95)}42%{transform:translateY(calc(var(--b,8) * -1px)) scale(.96,1.05)}70%{transform:translateY(0) scale(1.05,.95)}}
@keyframes kWave{from{transform:translateX(0)}to{transform:translateX(-20px)}}
@keyframes kPuff{0%{transform:translate(0,0) scale(.3);opacity:.85}100%{transform:translate(calc(var(--dx,-12) * 1px),calc(var(--dy,-4) * 1px)) scale(1.6);opacity:0}}
@keyframes kFall{0%{transform:translate(0,-8px);opacity:0}20%{opacity:.95}100%{transform:translate(-5px,30px);opacity:0}}
@keyframes kFlick{0%,100%{opacity:1}40%{opacity:.68}55%{opacity:.96}75%{opacity:.8}}
@keyframes kDash{to{stroke-dashoffset:-12}}
@keyframes kPulse{0%{transform:scale(.7);opacity:.7}100%{transform:scale(1.25);opacity:0}}

.pdisc{display:block;border-radius:50%;overflow:hidden;border:1.5px solid rgba(233,223,196,.55);box-shadow:0 6px 16px rgba(0,0,0,.4)}
.pdisc svg{display:block;width:100%;height:100%}
@media(prefers-reduced-motion:reduce){.a{animation:none !important}}
