/* Acopad Icon & Interaction System 1.1 */
.acopad-icon{
  display:inline-block;
  flex:0 0 auto;
  vertical-align:-.15em;
  overflow:visible;
  transform-box:fill-box;
  transform-origin:center;
  pointer-events:none;
}

[data-acopad-icon-host]{
  --acopad-icon-duration:520ms;
  --acopad-icon-ease:cubic-bezier(.2,.8,.2,1);
}

/* Hover/focus triggers are CSS-first: no JS is required for baseline motion. */
[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="bell"],
.acopad-icon.is-animating[data-acopad-icon-motion="bell"]{animation:acopad-icon-bell var(--acopad-icon-duration,520ms) ease-in-out}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="spin"],
.acopad-icon.is-animating[data-acopad-icon-motion="spin"]{animation:acopad-icon-spin 650ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="pulse"],
.acopad-icon.is-animating[data-acopad-icon-motion="pulse"]{animation:acopad-icon-pulse 520ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="moon"],
.acopad-icon.is-animating[data-acopad-icon-motion="moon"]{animation:acopad-icon-moon 520ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="monitor"],
.acopad-icon.is-animating[data-acopad-icon-motion="monitor"]{animation:acopad-icon-monitor 520ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="search"] .acopad-icon__lens,
.acopad-icon.is-animating[data-acopad-icon-motion="search"] .acopad-icon__lens{animation:acopad-icon-search-lens 520ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="search"] .acopad-icon__handle,
.acopad-icon.is-animating[data-acopad-icon-motion="search"] .acopad-icon__handle{animation:acopad-icon-search-handle 520ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="user"] .acopad-icon__user-head,
.acopad-icon.is-animating[data-acopad-icon-motion="user"] .acopad-icon__user-head{animation:acopad-icon-user-head 520ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="user"] .acopad-icon__user-body,
.acopad-icon.is-animating[data-acopad-icon-motion="user"] .acopad-icon__user-body{animation:acopad-icon-user-body 520ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="download"] .acopad-icon__arrow,
.acopad-icon.is-animating[data-acopad-icon-motion="download"] .acopad-icon__arrow{animation:acopad-icon-download 560ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="draw"] .acopad-icon__draw,
.acopad-icon.is-animating[data-acopad-icon-motion="draw"] .acopad-icon__draw{animation:acopad-icon-draw 650ms ease both}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="eye"] .acopad-icon__pupil,
.acopad-icon.is-animating[data-acopad-icon-motion="eye"] .acopad-icon__pupil{animation:acopad-icon-eye 560ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="chevron"],
.acopad-icon.is-animating[data-acopad-icon-motion="chevron"]{animation:acopad-icon-chevron 420ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="lift"],
.acopad-icon.is-animating[data-acopad-icon-motion="lift"]{animation:acopad-icon-lift 480ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="mail"] .acopad-icon__flap,
.acopad-icon.is-animating[data-acopad-icon-motion="mail"] .acopad-icon__flap{animation:acopad-icon-mail 520ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="alert"],
.acopad-icon.is-animating[data-acopad-icon-motion="alert"]{animation:acopad-icon-alert 480ms ease-in-out}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="nudge-right"] .acopad-icon__arrow,
.acopad-icon.is-animating[data-acopad-icon-motion="nudge-right"] .acopad-icon__arrow{animation:acopad-icon-nudge-right 460ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="nudge-up-right"] .acopad-icon__arrow,
.acopad-icon.is-animating[data-acopad-icon-motion="nudge-up-right"] .acopad-icon__arrow{animation:acopad-icon-nudge-up-right 460ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="palette"],
.acopad-icon.is-animating[data-acopad-icon-motion="palette"]{animation:acopad-icon-palette 560ms var(--acopad-icon-ease,ease)}

/* Sun: progressive rays inspired by lucide-animated's opacity cascade. */
.acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray{transform-origin:12px 12px}
[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray,
.acopad-icon.is-animating[data-acopad-icon-motion="sun"] .acopad-icon__ray{animation:acopad-icon-ray 420ms ease both}
.acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray:nth-of-type(2){animation-delay:35ms}
.acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray:nth-of-type(3){animation-delay:70ms}
.acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray:nth-of-type(4){animation-delay:105ms}
.acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray:nth-of-type(5){animation-delay:140ms}
.acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray:nth-of-type(6){animation-delay:175ms}
.acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray:nth-of-type(7){animation-delay:210ms}
.acopad-icon[data-acopad-icon-motion="sun"] .acopad-icon__ray:nth-of-type(8){animation-delay:245ms}

/* Small calendar/info dots pop rather than running continuously. */
[data-acopad-icon-host][data-acopad-icon-trigger="hover"]:is(:hover,:focus-visible,:focus-within) .acopad-icon__dot,
.acopad-icon.is-animating .acopad-icon__dot{animation:acopad-icon-dot 420ms var(--acopad-icon-ease,ease)}

@keyframes acopad-icon-bell{0%,100%{transform:rotate(0)}20%{transform:rotate(-11deg)}45%{transform:rotate(10deg)}70%{transform:rotate(-7deg)}}
@keyframes acopad-icon-spin{from{transform:rotate(0)}to{transform:rotate(180deg)}}
@keyframes acopad-icon-pulse{0%,100%{transform:scale(1)}45%{transform:scale(1.1)}70%{transform:scale(.97)}}
@keyframes acopad-icon-moon{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(-12deg) scale(1.06)}}
@keyframes acopad-icon-monitor{0%,100%{transform:translateY(0)}45%{transform:translateY(-1.2px)}70%{transform:translateY(.5px)}}
@keyframes acopad-icon-search-lens{0%,100%{transform:scale(1);transform-origin:11px 11px}50%{transform:scale(.88);transform-origin:11px 11px}}
@keyframes acopad-icon-search-handle{0%,100%{transform:translate(0,0)}50%{transform:translate(1px,1px)}}
@keyframes acopad-icon-user-head{0%,100%{transform:translateY(0);transform-origin:12px 7px}50%{transform:translateY(-1px)}}
@keyframes acopad-icon-user-body{0%,100%{transform:scaleX(1);transform-origin:12px 21px}50%{transform:scaleX(1.06)}}
@keyframes acopad-icon-download{0%,100%{transform:translateY(0)}45%{transform:translateY(2.2px)}}
@keyframes acopad-icon-draw{0%{stroke-dasharray:30;stroke-dashoffset:30}100%{stroke-dasharray:30;stroke-dashoffset:0}}
@keyframes acopad-icon-eye{0%,100%{transform:translateX(0);transform-origin:12px 12px}35%{transform:translateX(-1.2px)}70%{transform:translateX(1.2px)}}
@keyframes acopad-icon-chevron{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}
@keyframes acopad-icon-lift{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
@keyframes acopad-icon-mail{0%,100%{transform:translateY(0);transform-origin:12px 7px}45%{transform:translateY(1px)}}
@keyframes acopad-icon-alert{0%,100%{transform:translateX(0)}25%{transform:translateX(-1px)}50%{transform:translateX(1px)}75%{transform:translateX(-.5px)}}
@keyframes acopad-icon-nudge-right{0%,100%{transform:translateX(0)}50%{transform:translateX(2px)}}
@keyframes acopad-icon-nudge-up-right{0%,100%{transform:translate(0,0)}50%{transform:translate(1.5px,-1.5px)}}
@keyframes acopad-icon-palette{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(-6deg) scale(1.04)}}
@keyframes acopad-icon-ray{0%{opacity:0;transform:scale(.55)}100%{opacity:1;transform:scale(1)}}
@keyframes acopad-icon-dot{0%,100%{opacity:1;transform:scale(1);transform-origin:center}50%{opacity:.35;transform:scale(1.8)}}

/* User preference AND OS preference both stop non-essential motion. */
html[data-acopad-reduce-motion="1"] .acopad-icon,
html[data-acopad-reduce-motion="1"] .acopad-icon *,
html[data-acopad-reduce-motion="1"] [data-acopad-icon-host] .acopad-icon,
html[data-acopad-reduce-motion="1"] [data-acopad-icon-host] .acopad-icon *{
  animation:none!important;
  transition:none!important;
  transform:none!important;
}
@media(prefers-reduced-motion:reduce){
  .acopad-icon,.acopad-icon *,[data-acopad-icon-host] .acopad-icon,[data-acopad-icon-host] .acopad-icon *{
    animation:none!important;
    transition:none!important;
    transform:none!important;
  }
}
