/* RFSM animated icon system — build222
   Uses the user's supplied icon shapes and keeps motion lightweight/offline. */
.rfsm-motion-icon{
  display:inline-block;
  flex:0 0 auto;
  transform-origin:50% 50%;
  transform-box:fill-box;
  will-change:transform,opacity;
}
.rfsm-motion-icon[data-motion-icon="menu"].is-motion-running{animation:rfsm-mi-menu .52s cubic-bezier(.2,.8,.2,1)}
.rfsm-motion-icon[data-motion-icon="visibility"].is-motion-running{animation:rfsm-mi-visibility .56s cubic-bezier(.2,.8,.2,1)}
.rfsm-motion-icon[data-motion-icon="search"].is-motion-running{animation:rfsm-mi-search .5s cubic-bezier(.2,.8,.2,1)}
.rfsm-motion-icon[data-motion-icon="download"].is-motion-running{animation:rfsm-mi-download .62s cubic-bezier(.2,.8,.2,1)}
.rfsm-motion-icon[data-motion-icon="info"].is-motion-running{animation:rfsm-mi-info .56s cubic-bezier(.2,.8,.2,1)}
.rfsm-motion-icon[data-motion-icon="checkbox"].is-motion-running{animation:rfsm-mi-checkbox .54s cubic-bezier(.16,1,.3,1)}
.rfsm-motion-icon[data-motion-icon="error"].is-motion-running{animation:rfsm-mi-error .42s cubic-bezier(.2,.8,.2,1)}
.rfsm-motion-icon[data-motion-icon="alert"].is-motion-running{animation:rfsm-mi-alert .72s cubic-bezier(.2,.8,.2,1)}
.rfsm-motion-icon[data-motion-icon="alert"][data-motion-loop="true"]{animation:rfsm-mi-alert-loop 1.7s cubic-bezier(.16,1,.3,1) infinite}

@keyframes rfsm-mi-menu{
  0%,100%{transform:translateX(0) scale(1)}
  28%{transform:translateX(-2px) scale(1.03)}
  56%{transform:translateX(2px) scale(.98)}
  78%{transform:translateX(-1px) scale(1.01)}
}
@keyframes rfsm-mi-visibility{
  0%,100%{transform:scaleY(1);opacity:1}
  42%{transform:scaleY(.16);opacity:.72}
  64%{transform:scaleY(1.08);opacity:1}
}
@keyframes rfsm-mi-search{
  0%,100%{transform:rotate(0deg) scale(1)}
  42%{transform:rotate(-16deg) scale(.9)}
  72%{transform:rotate(7deg) scale(1.06)}
}
@keyframes rfsm-mi-download{
  0%,100%{transform:translateY(0)}
  28%{transform:translateY(2px)}
  52%{transform:translateY(-1px)}
  72%{transform:translateY(1px)}
}
@keyframes rfsm-mi-info{
  0%,100%{transform:scale(1);opacity:1}
  45%{transform:scale(1.12);opacity:.78}
  72%{transform:scale(.98);opacity:1}
}
@keyframes rfsm-mi-checkbox{
  0%{transform:scale(.86) rotate(-4deg)}
  55%{transform:scale(1.12) rotate(1deg)}
  100%{transform:scale(1) rotate(0)}
}
@keyframes rfsm-mi-error{
  0%,100%{transform:rotate(0) scale(1)}
  35%{transform:rotate(-10deg) scale(.92)}
  70%{transform:rotate(8deg) scale(1.08)}
}
@keyframes rfsm-mi-alert{
  0%,100%{transform:scale(1);opacity:1}
  42%{transform:scale(1.15);opacity:.78}
  70%{transform:scale(.98);opacity:1}
}
@keyframes rfsm-mi-alert-loop{
  0%,58%,100%{transform:scale(1);opacity:1;filter:none}
  18%{transform:scale(1.12);opacity:.9;filter:drop-shadow(0 0 0 currentColor)}
  34%{transform:scale(1);opacity:1;filter:drop-shadow(0 0 7px color-mix(in srgb,currentColor 34%,transparent))}
}

/* Prevent title glyph clipping (notably the Grift Black M) while preserving sizing. */
html body :is(h1,h2,.title,.page-title,.hero-title,.section-title,.screen-title,.modal-title,.dialog-title,.panel-title,.form-title,.header-title,.legal-title,.dashboard-title,.sorteo-title,.verifier-title,.titulo,.titulo-sorteo,.main-title,#titulo,#titulo-principal,#verified-title,[class$="__title" i]:not([class*="subtitle" i]),[class$="-title" i]:not([class*="subtitle" i])){
  overflow:visible;
  padding-inline:.035em;
  margin-inline:calc(-.035em + 0px);
}

@media(prefers-reduced-motion:reduce){
  .rfsm-motion-icon,.rfsm-motion-icon.is-motion-running,.rfsm-motion-icon[data-motion-loop="true"]{animation:none!important;transform:none!important;filter:none!important}
}
.rfsm-motion-auto-icon{width:1.05em;height:1.05em;vertical-align:-.14em;margin-inline-end:.42em;overflow:visible}
