/* Cadeia de suprimentos animada — extraída do HTML 'Syncrus — Cadeia Animada'. Só CSS, sem JavaScript de animação. */
.ca-spd-lento{--k:1.7}.ca-spd-normal{--k:1}.ca-spd-rapido{--k:.6}
.ca-scene{position:absolute;inset:0;transform-origin:50% 50%;animation:ca-kb calc(var(--k)*24s) ease-in-out infinite alternate}
.ca-base{position:absolute;left:0;top:0;width:1920px;height:1080px;display:block}
.ca-crop{position:absolute;background-image:url("../images/pcp-cadeia-base.jpg");background-size:1920px 1080px;background-repeat:no-repeat}
.ca-gear{border-radius:50%;-webkit-mask-image:radial-gradient(circle,#000 88%,transparent 100%);mask-image:radial-gradient(circle,#000 88%,transparent 100%)}
.ca-cw{animation:ca-spin calc(var(--k)*10s) linear infinite}
.ca-ccw{animation:ca-spin calc(var(--k)*12s) linear infinite reverse}
.ca-soft{-webkit-mask-image:radial-gradient(ellipse at center,#000 55%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 55%,transparent 75%)}
.ca-bob{animation:ca-bob calc(var(--k)*3.2s) ease-in-out infinite}
.ca-bobbig{animation:ca-bobbig calc(var(--k)*4.4s) ease-in-out infinite}
.ca-fly{animation:ca-fly calc(var(--k)*5s) ease-in-out infinite}
.ca-pt{position:absolute;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #2f6fd6,0 0 14px 4px rgba(47,111,214,.75);offset-rotate:0deg;animation:ca-travel calc(var(--k)*5s) linear infinite}
.ca-pt.ca-red{box-shadow:0 0 0 3px #d63a2f,0 0 14px 4px rgba(214,58,47,.7)}
.ca-flow path{fill:none;stroke-width:2.5;stroke-dasharray:6 10;animation:ca-dash calc(var(--k)*1.4s) linear infinite}
.ca-ring{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border:2.5px solid #2f6fd6;animation:ca-pulse calc(var(--k)*2.6s) ease-out infinite}
.ca-ring.ca-red{border-color:#d63a2f}
.ca-smoke{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:radial-gradient(circle,rgba(120,128,140,.55),rgba(120,128,140,0) 70%);animation:ca-smoke calc(var(--k)*4s) ease-out infinite}
.ca-orbit{position:absolute;border-radius:50%;border:2px dashed rgba(30,58,110,.28);animation:ca-spin calc(var(--k)*90s) linear infinite}
.ca-globe{position:absolute;border-radius:50%;overflow:hidden;mix-blend-mode:soft-light;pointer-events:none}
.ca-sheen{position:absolute;inset:-30%;background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.85),rgba(255,255,255,0) 32%),radial-gradient(circle at 70% 75%,rgba(10,30,80,.55),rgba(10,30,80,0) 45%);animation:ca-spin calc(var(--k)*40s) linear infinite}
.ca-shine{position:absolute;overflow:hidden;pointer-events:none}
.ca-band{position:absolute;top:-20px;bottom:-20px;width:60px;left:-80px;background:linear-gradient(90deg,rgba(255,240,200,0),rgba(255,240,200,.9),rgba(255,240,200,0));transform:skewX(-20deg);mix-blend-mode:screen;animation:ca-shine calc(var(--k)*6s) ease-in-out infinite}
.ca-blink{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#d63a2f;box-shadow:0 0 10px 3px rgba(214,58,47,.6);animation:ca-blink calc(var(--k)*1.6s) ease-in-out infinite}
.ca-paused *,.ca-paused{animation-play-state:paused !important}
@keyframes ca-kb{from{transform:scale(1)}to{transform:scale(1.035) translate(-6px,4px)}}
@keyframes ca-spin{to{transform:rotate(360deg)}}
@keyframes ca-bob{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(2px,-3px) rotate(-1.2deg)}}
@keyframes ca-bobbig{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(1px,-3px) rotate(-.5deg)}}
@keyframes ca-fly{0%,100%{transform:translate(0,0)}50%{transform:translate(5px,-5px)}}
@keyframes ca-travel{0%{offset-distance:0%;opacity:0}10%{opacity:1}88%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes ca-dash{to{stroke-dashoffset:-32}}
@keyframes ca-pulse{0%{transform:scale(.5);opacity:.95}100%{transform:scale(2.2);opacity:0}}
@keyframes ca-smoke{0%{transform:translate(0,0) scale(.5);opacity:0}15%{opacity:.9}100%{transform:translate(-18px,-70px) scale(2.2);opacity:0}}
@keyframes ca-shine{0%{left:-80px}55%{left:240px}100%{left:240px}}
@keyframes ca-blink{0%,100%{opacity:.25}50%{opacity:1}}

/* Login: palco 1920x1080 escalado ao tamanho do painel */
.ca-wrap{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:20px;background:#f6f1e7}
.ca-stage{position:absolute;left:0;top:0;width:1920px;height:1080px;overflow:hidden;transform-origin:0 0}
@media (prefers-reduced-motion: reduce){.ca-stage,.ca-stage *{animation-play-state:paused !important}}
