/* Source: client package DLS-homepage-icons-motion-v1 (dls-icon-motion.css), copied unchanged. Used by the Business Areas block (.dlsico icons). */
/* DLS icon motion (dls-ico) v1 -- 2026-10-14. Same motion language as the Services L1 "Why Discovery" icons.
   Intro plays once when the icon is 60% in view; a lighter replay runs on hover of its card (host).
   Resting state = the intact icon (data-part="full"); part layers only render while something moves.
   No JS, or prefers-reduced-motion = static icon. Colour = currentColor (DLS Discovery Purple #32126E). */
:root{--dlsico-ease:cubic-bezier(.22,.61,.36,1); --dlsico-spring:cubic-bezier(.34,1.35,.64,1);
  --dlsico-in:.55s; --dlsico-focus:.7s; --dlsico-fade:.45s; --dlsico-hover:.45s}
.dlsico{display:block; width:100%; height:100%; overflow:visible; color:var(--dls-purple-500,#32126E)}
.dlsico [data-part]{transform-box:view-box}
.dlsico [data-part]:not([data-part="full"]){visibility:hidden}
html.dlsico-js .dlsico:not(.is-play):not(.is-done) [data-part]:not([data-part="full"]),
.dlsico.is-play [data-part]:not([data-part="full"]),.dlsico.is-hover [data-part]:not([data-part="full"]){visibility:visible}
html.dlsico-js .dlsico:not(.is-play):not(.is-done) [data-part="full"],
.dlsico.is-play [data-part="full"],.dlsico.is-hover [data-part="full"]{visibility:hidden}
/* start state (JS on, before the intro) */
html.dlsico-js .dlsico:not(.is-play):not(.is-done) [data-in^="pop"],
html.dlsico-js .dlsico:not(.is-play):not(.is-done) [data-in="fade"]{opacity:0}
html.dlsico-js .dlsico:not(.is-play):not(.is-done) [data-in="focus"]{opacity:.35}
/* intro */
@keyframes dlsicoPop{from{opacity:0; transform:translate(var(--dx,0px),var(--dy,0px)) scale(var(--s0,1)) rotate(var(--r0,0deg))} to{opacity:1; transform:none}}
@keyframes dlsicoFocus{from{opacity:.35; filter:blur(1px); transform:scale(.92)} to{opacity:1; filter:blur(0); transform:none}}
@keyframes dlsicoFade{from{opacity:0; transform:scale(var(--s0,1))} to{opacity:1; transform:none}}
.dlsico.is-play [data-in="pop"]{animation:dlsicoPop var(--dlsico-in) var(--dlsico-spring) var(--d,0s) both}
.dlsico.is-play [data-in="pop-out"]{animation:dlsicoPop .5s var(--dlsico-ease) var(--d,0s) both}
.dlsico.is-play [data-in="focus"]{animation:dlsicoFocus var(--dlsico-focus) var(--dlsico-ease) var(--d,0s) both}
.dlsico.is-play [data-in="fade"]{animation:dlsicoFade var(--dlsico-fade) var(--dlsico-ease) var(--d,0s) both}
/* hover replay (JS adds .is-hover for 900 ms, only after the intro) */
@keyframes dlsicoNudge{50%{transform:translate(var(--hx,0px),var(--hy,0px)) rotate(var(--hr,0deg))}}
@keyframes dlsicoBreathe{50%{transform:scale(var(--hs,1.04))}}
.dlsico.is-hover [data-hover="nudge"]{animation:dlsicoNudge var(--dlsico-hover) var(--dlsico-ease) var(--hd,0s)}
.dlsico.is-hover [data-hover="breathe"]{animation:dlsicoBreathe var(--dlsico-hover) var(--dlsico-ease) var(--hd,0s)}
@media (prefers-reduced-motion:reduce){
  .dlsico [data-part]:not([data-part="full"]){visibility:hidden !important; animation:none !important}
  .dlsico [data-part="full"]{visibility:visible !important}
}
@media print{ .dlsico [data-part]:not([data-part="full"]){visibility:hidden !important} .dlsico [data-part="full"]{visibility:visible !important} }
