/* Acopad Icon & Interaction System 2.0 — articulated semantic motion */
.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. */
/* Bell: body swings from the hanger while the clapper lags behind. */
.acopad-icon__bell-body{transform-box:fill-box;transform-origin:50% 0}
.acopad-icon__bell-clapper{transform-box:fill-box;transform-origin:50% 0}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="bell"] .acopad-icon__bell-body,
.acopad-icon.is-animating[data-acopad-icon-motion="bell"] .acopad-icon__bell-body{animation:acopad-icon-bell-body 650ms cubic-bezier(.25,.75,.25,1)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="bell"] .acopad-icon__bell-clapper,
.acopad-icon.is-animating[data-acopad-icon-motion="bell"] .acopad-icon__bell-clapper{animation:acopad-icon-bell-clapper 650ms 55ms cubic-bezier(.25,.75,.25,1)}

[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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)}

/* Monitor: screen wakes up, stand settles independently. */
.acopad-icon__monitor-screen,.acopad-icon__monitor-stand{transform-box:fill-box;transform-origin:center}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="monitor"] .acopad-icon__monitor-screen,
.acopad-icon.is-animating[data-acopad-icon-motion="monitor"] .acopad-icon__monitor-screen{animation:acopad-icon-monitor-screen 560ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="monitor"] .acopad-icon__monitor-stand,
.acopad-icon.is-animating[data-acopad-icon-motion="monitor"] .acopad-icon__monitor-stand{animation:acopad-icon-monitor-stand 560ms 55ms var(--acopad-icon-ease,ease)}

[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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)}

/* Menu: three bars move independently; no uniform zoom. */
.acopad-icon__menu-top,.acopad-icon__menu-mid,.acopad-icon__menu-bottom{transform-box:fill-box;transform-origin:center}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="menu"] .acopad-icon__menu-top,
.acopad-icon.is-animating[data-acopad-icon-motion="menu"] .acopad-icon__menu-top{animation:acopad-icon-menu-top 520ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="menu"] .acopad-icon__menu-mid,
.acopad-icon.is-animating[data-acopad-icon-motion="menu"] .acopad-icon__menu-mid{animation:acopad-icon-menu-mid 520ms 35ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="menu"] .acopad-icon__menu-bottom,
.acopad-icon.is-animating[data-acopad-icon-motion="menu"] .acopad-icon__menu-bottom{animation:acopad-icon-menu-bottom 520ms 70ms var(--acopad-icon-ease,ease)}

/* Calendar: rings lift alternately, then day markers cascade. */
.acopad-icon__calendar-ring{transform-box:fill-box;transform-origin:center bottom}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="calendar"] .acopad-icon__calendar-ring--left,
.acopad-icon.is-animating[data-acopad-icon-motion="calendar"] .acopad-icon__calendar-ring--left{animation:acopad-icon-calendar-ring 500ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="calendar"] .acopad-icon__calendar-ring--right,
.acopad-icon.is-animating[data-acopad-icon-motion="calendar"] .acopad-icon__calendar-ring--right{animation:acopad-icon-calendar-ring 500ms 80ms var(--acopad-icon-ease,ease)}

/* Mail: flap opens and closes like an envelope. */
.acopad-icon__flap{transform-box:fill-box;transform-origin:50% 0}

/* Folder: the tab lifts while the front edge slides. */
.acopad-icon__folder-back,.acopad-icon__folder-front{transform-box:fill-box;transform-origin:center}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="folder"] .acopad-icon__folder-back,
.acopad-icon.is-animating[data-acopad-icon-motion="folder"] .acopad-icon__folder-back{animation:acopad-icon-folder-back 560ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="folder"] .acopad-icon__folder-front,
.acopad-icon.is-animating[data-acopad-icon-motion="folder"] .acopad-icon__folder-front{animation:acopad-icon-folder-front 560ms 55ms var(--acopad-icon-ease,ease)}

/* Upload: arrow rises through a cloud that subtly settles. */
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="upload"] .acopad-icon__arrow,
.acopad-icon.is-animating[data-acopad-icon-motion="upload"] .acopad-icon__arrow{animation:acopad-icon-upload-arrow 620ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="upload"] .acopad-icon__cloud,
.acopad-icon.is-animating[data-acopad-icon-motion="upload"] .acopad-icon__cloud{animation:acopad-icon-cloud 620ms var(--acopad-icon-ease,ease)}

/* Video: camera lens pivots as the body nudges into place. */
.acopad-icon__video-lens,.acopad-icon__video-body{transform-box:fill-box;transform-origin:center}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="video"] .acopad-icon__video-lens,
.acopad-icon.is-animating[data-acopad-icon-motion="video"] .acopad-icon__video-lens{animation:acopad-icon-video-lens 560ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="video"] .acopad-icon__video-body,
.acopad-icon.is-animating[data-acopad-icon-motion="video"] .acopad-icon__video-body{animation:acopad-icon-video-body 560ms var(--acopad-icon-ease,ease)}

/* Message: bubble rises, three dots appear in sequence. */
.acopad-icon__message-bubble,.acopad-icon__message-dot{transform-box:fill-box;transform-origin:center}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="message"] .acopad-icon__message-bubble,
.acopad-icon.is-animating[data-acopad-icon-motion="message"] .acopad-icon__message-bubble{animation:acopad-icon-message-bubble 560ms var(--acopad-icon-ease,ease)}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="message"] .acopad-icon__message-dot,
.acopad-icon.is-animating[data-acopad-icon-motion="message"] .acopad-icon__message-dot{animation:acopad-icon-message-dots 680ms ease both}

/* Offline: waves fade from outside to inside while slash stays fixed. */
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="wifi"] .acopad-icon__wifi-wave--outer,
.acopad-icon.is-animating[data-acopad-icon-motion="wifi"] .acopad-icon__wifi-wave--outer{animation:acopad-icon-wifi-wave 620ms ease 0ms both}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="wifi"] .acopad-icon__wifi-wave--mid,
.acopad-icon.is-animating[data-acopad-icon-motion="wifi"] .acopad-icon__wifi-wave--mid{animation:acopad-icon-wifi-wave 620ms ease 90ms both}
[data-acopad-icon-host]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):is(:hover,:focus-visible,:focus-within) .acopad-icon[data-acopad-icon-motion="wifi"] .acopad-icon__wifi-dot,
.acopad-icon.is-animating[data-acopad-icon-motion="wifi"] .acopad-icon__wifi-dot{animation:acopad-icon-wifi-wave 620ms ease 180ms both}

/* 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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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]:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"]):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-body{0%,100%{transform:rotate(0)}18%{transform:rotate(-13deg)}42%{transform:rotate(11deg)}66%{transform:rotate(-7deg)}84%{transform:rotate(3deg)}}
@keyframes acopad-icon-bell-clapper{0%,100%{transform:translateX(0) rotate(0)}22%{transform:translateX(1.2px) rotate(8deg)}48%{transform:translateX(-1.2px) rotate(-8deg)}72%{transform:translateX(.7px) rotate(4deg)}}
@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-screen{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-1.5px) rotate(-1deg)}70%{transform:translateY(.4px) rotate(.5deg)}}
@keyframes acopad-icon-monitor-stand{0%,100%{transform:translateY(0)}40%{transform:translateY(.8px)}72%{transform:translateY(-.3px)}}
@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) scaleY(1)}35%{transform:translateY(-1.2px) scaleY(.72)}68%{transform:translateY(.4px) scaleY(1.05)}}
@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-menu-top{0%,100%{transform:translateX(0)}40%{transform:translateX(2.2px)}72%{transform:translateX(-.5px)}}
@keyframes acopad-icon-menu-mid{0%,100%{transform:translateX(0);stroke-dasharray:16;stroke-dashoffset:0}45%{transform:translateX(-2px);stroke-dasharray:10 6;stroke-dashoffset:2}}
@keyframes acopad-icon-menu-bottom{0%,100%{transform:translateX(0)}40%{transform:translateX(1px)}72%{transform:translateX(-2px)}}
@keyframes acopad-icon-calendar-ring{0%,100%{transform:translateY(0)}35%{transform:translateY(-2.2px)}68%{transform:translateY(.5px)}}
@keyframes acopad-icon-folder-back{0%,100%{transform:translateY(0)}38%{transform:translateY(-1.4px)}70%{transform:translateY(.3px)}}
@keyframes acopad-icon-folder-front{0%,100%{transform:translateX(0)}42%{transform:translateX(1.4px)}75%{transform:translateX(-.3px)}}
@keyframes acopad-icon-upload-arrow{0%,100%{transform:translateY(0)}35%{transform:translateY(-3px)}58%{transform:translateY(-3px)}78%{transform:translateY(.5px)}}
@keyframes acopad-icon-cloud{0%,100%{transform:translateY(0)}42%{transform:translateY(.8px)}72%{transform:translateY(-.3px)}}
@keyframes acopad-icon-video-lens{0%,100%{transform:rotate(0) translateX(0)}38%{transform:rotate(-9deg) translateX(1px)}72%{transform:rotate(3deg) translateX(-.3px)}}
@keyframes acopad-icon-video-body{0%,100%{transform:translateX(0)}42%{transform:translateX(-.8px)}72%{transform:translateX(.3px)}}
@keyframes acopad-icon-message-bubble{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-1.5px) rotate(-1deg)}70%{transform:translateY(.4px) rotate(.4deg)}}
@keyframes acopad-icon-message-dots{0%{stroke-dasharray:0 50;opacity:.15}35%{stroke-dasharray:2 8;opacity:.55}100%{stroke-dasharray:20 0;opacity:1}}
@keyframes acopad-icon-wifi-wave{0%,100%{opacity:1;stroke-dashoffset:0}45%{opacity:.15;stroke-dashoffset:6}70%{opacity:.7}}
@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;
  }
}

/* === ACO generic icon motion library (R63) === */
/*
 * Inspired by Font Awesome's composable animation API, implemented locally on
 * the existing SVG catalogue. These motions are opt-in and one-shot by default.
 * Existing articulated icon motions above remain unchanged.
 */
.acopad-icon{
  --aco-icon-motion-duration:620ms;
  --aco-icon-motion-delay:0ms;
  --aco-icon-motion-iterations:1;
  --aco-icon-motion-ease:cubic-bezier(.2,.8,.2,1);
  --aco-icon-motion-scale:1.1;
  --aco-icon-motion-opacity:.35;
  --aco-icon-motion-distance:2px;
  --aco-icon-motion-angle:10deg;
  --aco-icon-motion-float-height:2px;
  --aco-icon-motion-float-drift:1px;
}

/* CSS-first hover/focus trigger. Keyboard focus receives the same feedback. */
[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="beat"],
.acopad-icon.is-animating[data-acopad-icon-motion="beat"]{animation:aco-icon-beat var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="fade"],
.acopad-icon.is-animating[data-acopad-icon-motion="fade"]{animation:aco-icon-fade var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="beat-fade"],
.acopad-icon.is-animating[data-acopad-icon-motion="beat-fade"]{animation:aco-icon-beat-fade var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="bounce"],
.acopad-icon.is-animating[data-acopad-icon-motion="bounce"]{animation:aco-icon-bounce var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="buzz"],
.acopad-icon.is-animating[data-acopad-icon-motion="buzz"]{animation:aco-icon-buzz min(var(--aco-icon-motion-duration),520ms) ease-out var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="flip"],
.acopad-icon.is-animating[data-acopad-icon-motion="flip"]{animation:aco-icon-flip var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both;backface-visibility:hidden}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="float"],
.acopad-icon.is-animating[data-acopad-icon-motion="float"]{animation:aco-icon-float var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="jello"],
.acopad-icon.is-animating[data-acopad-icon-motion="jello"]{animation:aco-icon-jello var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="shake"],
.acopad-icon.is-animating[data-acopad-icon-motion="shake"]{animation:aco-icon-shake min(var(--aco-icon-motion-duration),560ms) ease-in-out var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="spin-full"],
.acopad-icon.is-animating[data-acopad-icon-motion="spin-full"]{animation:aco-icon-spin  var(--aco-icon-motion-duration) linear var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="spin-snap"],
.acopad-icon.is-animating[data-acopad-icon-motion="spin-snap"]{animation:aco-icon-spin var(--aco-icon-motion-duration) steps(8,end) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="swing"],
.acopad-icon.is-animating[data-acopad-icon-motion="swing"]{animation:aco-icon-swing var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both;transform-origin:50% 0}

[data-acopad-icon-host]:is(:hover,:focus-visible,:focus-within) .acopad-icon:is([data-acopad-icon-trigger="hover"],[data-acopad-icon-trigger="both"])[data-acopad-icon-motion="wag"],
.acopad-icon.is-animating[data-acopad-icon-motion="wag"]{animation:aco-icon-wag var(--aco-icon-motion-duration) var(--aco-icon-motion-ease) var(--aco-icon-motion-delay) var(--aco-icon-motion-iterations) both;transform-origin:50% 75%}

@keyframes aco-icon-beat{0%,100%{transform:scale(1)}45%{transform:scale(var(--aco-icon-motion-scale))}70%{transform:scale(.98)}}
@keyframes aco-icon-fade{0%,100%{opacity:1}50%{opacity:var(--aco-icon-motion-opacity)}}
@keyframes aco-icon-beat-fade{0%,100%{opacity:1;transform:scale(1)}50%{opacity:var(--aco-icon-motion-opacity);transform:scale(var(--aco-icon-motion-scale))}}
@keyframes aco-icon-bounce{0%,100%{transform:translateY(0)}35%{transform:translateY(calc(var(--aco-icon-motion-distance) * -1.8))}55%{transform:translateY(.5px)}72%{transform:translateY(calc(var(--aco-icon-motion-distance) * -.55))}}
@keyframes aco-icon-buzz{0%,100%{transform:translateX(0) rotate(0)}18%{transform:translateX(calc(var(--aco-icon-motion-distance) * -.75)) rotate(calc(var(--aco-icon-motion-angle) * -.35))}36%{transform:translateX(var(--aco-icon-motion-distance)) rotate(calc(var(--aco-icon-motion-angle) * .35))}54%{transform:translateX(calc(var(--aco-icon-motion-distance) * -.55)) rotate(calc(var(--aco-icon-motion-angle) * -.2))}72%{transform:translateX(calc(var(--aco-icon-motion-distance) * .35)) rotate(calc(var(--aco-icon-motion-angle) * .12))}}
@keyframes aco-icon-flip{0%,100%{transform:perspective(12em) rotateY(0)}50%{transform:perspective(12em) rotateY(180deg)}}
@keyframes aco-icon-float{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(var(--aco-icon-motion-float-drift),calc(var(--aco-icon-motion-float-height) * -1)) rotate(2deg)}}
@keyframes aco-icon-jello{0%,100%{transform:skew(0) scale(1)}30%{transform:skewX(-6deg) skewY(-2deg) scaleX(1.05) scaleY(.96)}55%{transform:skewX(4deg) skewY(1deg) scaleX(.98) scaleY(1.03)}75%{transform:skewX(-2deg) scale(1)}}
@keyframes aco-icon-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(calc(var(--aco-icon-motion-distance) * -1))}40%{transform:translateX(var(--aco-icon-motion-distance))}60%{transform:translateX(calc(var(--aco-icon-motion-distance) * -.65))}80%{transform:translateX(calc(var(--aco-icon-motion-distance) * .4))}}
@keyframes aco-icon-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes aco-icon-swing{0%,100%{transform:rotate(0)}25%{transform:rotate(calc(var(--aco-icon-motion-angle) * -.8))}50%{transform:rotate(calc(var(--aco-icon-motion-angle) * .55))}72%{transform:rotate(calc(var(--aco-icon-motion-angle) * -.25))}}
@keyframes aco-icon-wag{0%,100%{transform:rotate(0)}20%{transform:rotate(calc(var(--aco-icon-motion-angle) * -.75))}40%{transform:rotate(calc(var(--aco-icon-motion-angle) * .75))}60%{transform:rotate(calc(var(--aco-icon-motion-angle) * -.45))}80%{transform:rotate(calc(var(--aco-icon-motion-angle) * .25))}}

