/* ==========================================================================
   PDS Preloader — dot-by-dot peacock
   Load this BEFORE style.css. The old .pds-preloader rules in style.css
   have been removed, so nothing here needs to fight for specificity.
   Markup lives in the page (see any .html) so the dots paint with no JS.
   Hide logic: assets/js/preloader.js
   ========================================================================== */

:root{
  --pds-purple:#7363A4;
  --pds-orange:#F18131;
  --pds-cyan:#00B4E1;
  --pds-pre-bg:#FFFFFF;
  --pds-cycle:2.2s;
}

.pds-preloader{
  position:fixed; inset:0; z-index:99999;
  display:flex; align-items:center; justify-content:center;
  background:var(--pds-pre-bg);
  opacity:1; visibility:visible;
  transition:opacity .45s ease, visibility .45s ease;
  /* failsafe: clears itself even if JS never runs */
  animation:pds-failsafe 1ms linear 6s forwards;
}
.pds-preloader.hide{ opacity:0; visibility:hidden; pointer-events:none; }
@keyframes pds-failsafe{ to{ opacity:0; visibility:hidden; } }

.pds-preloader .loader{ width:auto; height:180px; }
.pds-preloader svg{ height:100%; width:auto; display:block; overflow:visible; }

.pds-preloader .d{
  transform-box:fill-box;
  transform-origin:center;
  transform:scale(0);
  opacity:0;
  animation:pds-dot var(--pds-cycle) cubic-bezier(.34,1.4,.5,1) infinite;
}
.pds-preloader .pu{ fill:var(--pds-purple); }
.pds-preloader .or{ fill:var(--pds-orange); }
.pds-preloader .cy{ fill:var(--pds-cyan);   }

@keyframes pds-dot{
  0%   { transform:scale(0);    opacity:0; }
  8%   { transform:scale(1.28); opacity:1; }
  14%  { transform:scale(1);    opacity:1; }
  72%  { transform:scale(1);    opacity:1; }
  86%  { transform:scale(.12);  opacity:0; }
  100% { transform:scale(0);    opacity:0; }
}

/* stagger: tip of the tail first, sweeping around the plume */
.pds-preloader .d:nth-child(1){animation-delay:0ms}
.pds-preloader .d:nth-child(2){animation-delay:16ms}
.pds-preloader .d:nth-child(3){animation-delay:32ms}
.pds-preloader .d:nth-child(4){animation-delay:48ms}
.pds-preloader .d:nth-child(5){animation-delay:64ms}
.pds-preloader .d:nth-child(6){animation-delay:80ms}
.pds-preloader .d:nth-child(7){animation-delay:96ms}
.pds-preloader .d:nth-child(8){animation-delay:112ms}
.pds-preloader .d:nth-child(9){animation-delay:128ms}
.pds-preloader .d:nth-child(10){animation-delay:144ms}
.pds-preloader .d:nth-child(11){animation-delay:160ms}
.pds-preloader .d:nth-child(12){animation-delay:176ms}
.pds-preloader .d:nth-child(13){animation-delay:192ms}
.pds-preloader .d:nth-child(14){animation-delay:208ms}
.pds-preloader .d:nth-child(15){animation-delay:224ms}
.pds-preloader .d:nth-child(16){animation-delay:240ms}
.pds-preloader .d:nth-child(17){animation-delay:256ms}
.pds-preloader .d:nth-child(18){animation-delay:272ms}
.pds-preloader .d:nth-child(19){animation-delay:288ms}
.pds-preloader .d:nth-child(20){animation-delay:304ms}
.pds-preloader .d:nth-child(21){animation-delay:320ms}
.pds-preloader .d:nth-child(22){animation-delay:336ms}
.pds-preloader .d:nth-child(23){animation-delay:352ms}
.pds-preloader .d:nth-child(24){animation-delay:368ms}
.pds-preloader .d:nth-child(25){animation-delay:384ms}
.pds-preloader .d:nth-child(26){animation-delay:400ms}
.pds-preloader .d:nth-child(27){animation-delay:416ms}
.pds-preloader .d:nth-child(28){animation-delay:432ms}
.pds-preloader .d:nth-child(29){animation-delay:448ms}
.pds-preloader .d:nth-child(30){animation-delay:464ms}
.pds-preloader .d:nth-child(31){animation-delay:480ms}
.pds-preloader .d:nth-child(32){animation-delay:496ms}
.pds-preloader .d:nth-child(33){animation-delay:512ms}
.pds-preloader .d:nth-child(34){animation-delay:528ms}
.pds-preloader .d:nth-child(35){animation-delay:544ms}
.pds-preloader .d:nth-child(36){animation-delay:560ms}
.pds-preloader .d:nth-child(37){animation-delay:576ms}
.pds-preloader .d:nth-child(38){animation-delay:592ms}
.pds-preloader .d:nth-child(39){animation-delay:608ms}
.pds-preloader .d:nth-child(40){animation-delay:624ms}
.pds-preloader .d:nth-child(41){animation-delay:640ms}
.pds-preloader .d:nth-child(42){animation-delay:656ms}
.pds-preloader .d:nth-child(43){animation-delay:672ms}
.pds-preloader .d:nth-child(44){animation-delay:688ms}
.pds-preloader .d:nth-child(45){animation-delay:704ms}
.pds-preloader .d:nth-child(46){animation-delay:720ms}
.pds-preloader .d:nth-child(47){animation-delay:736ms}
.pds-preloader .d:nth-child(48){animation-delay:752ms}
.pds-preloader .d:nth-child(49){animation-delay:768ms}
.pds-preloader .d:nth-child(50){animation-delay:784ms}
.pds-preloader .d:nth-child(51){animation-delay:800ms}
.pds-preloader .d:nth-child(52){animation-delay:816ms}
.pds-preloader .d:nth-child(53){animation-delay:832ms}
.pds-preloader .d:nth-child(54){animation-delay:848ms}
.pds-preloader .d:nth-child(55){animation-delay:864ms}
.pds-preloader .d:nth-child(56){animation-delay:880ms}
.pds-preloader .d:nth-child(57){animation-delay:896ms}
.pds-preloader .d:nth-child(58){animation-delay:912ms}
.pds-preloader .d:nth-child(59){animation-delay:928ms}

@media (max-width:575.98px){ .pds-preloader .loader{ height:126px; } }

@media (prefers-reduced-motion:reduce){
  .pds-preloader .d{ animation:none; transform:scale(1); opacity:1; }
}
