/* igo-motion.css — sistema de movimento da família iGO (origem: AuditiGO, DESIGN.md "Movimento").
   Fonte canônica: ~/.claude/design/igo-motion/. Cada app tem uma CÓPIA; atualizar aqui e rodar distribui.py.
   Regra: 150–250 ms, ease-out-quint, só estado. Nada de coreografia de página. reduced-motion desliga tudo. */
:root{
  --igo-ease:cubic-bezier(.22,1,.36,1);
  --igo-t-fast:150ms;
  --igo-t-base:220ms;
  --igo-t-slow:480ms;
}
@keyframes igo-pop{from{opacity:0;transform:translateY(6px) scale(.98)}}
@keyframes igo-rise{from{opacity:0;transform:translateY(8px)}}
@keyframes igo-slide{from{opacity:0;transform:translateX(14px)}}
@keyframes igo-fade{from{opacity:0}}
@keyframes igo-flash{from{background-color:var(--igo-flash,rgba(52,211,153,.16))}}
@keyframes igo-shimmer{to{transform:translateX(100%)}}
@keyframes igo-spin{to{transform:rotate(360deg)}}

/* esqueleto: igoMotion.skeleton(n, h) devolve o HTML */
.igo-sk{display:grid;gap:9px;padding:6px 0}
.igo-skel{position:relative;overflow:hidden;border-radius:6px;background:rgba(255,255,255,.045);min-height:10px}
.igo-skel::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);transform:translateX(-100%);animation:igo-shimmer 1.4s infinite}
.igo-skel:nth-child(3n+2){width:86%}.igo-skel:nth-child(3n){width:64%}

/* botão ocupado: igoMotion.busy(btn, true) */
[aria-busy="true"]{cursor:progress}
.igo-spin{display:inline-block;width:.9em;height:.9em;margin-right:.45em;vertical-align:-.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:igo-spin .8s linear infinite;opacity:.8}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
