/* Cadre commun des simulations : scène de taille fixe mise à l'échelle,
   curseur. Le reste vient des vraies feuilles des
   plugins (vendor/) et d'une reprise minimale de l'administration WordPress
   (wp-admin.css). */
html, body { margin: 0; padding: 0; overflow: hidden; background: transparent; }
#sim [hidden] { display: none !important; }
#sim {
  position: relative;
  transform-origin: 0 0;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
}
.sim-cursor {
  position: absolute; left: 0; top: 0; z-index: 1000002;
  width: 20px; height: 20px; pointer-events: none; opacity: 0;
  transition-property: transform, opacity;
  transition-timing-function: cubic-bezier(.4, 0, .2, 1);
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .3));
}
.sim-cursor svg { display: block; transition: transform 120ms ease; transform-origin: 3px 2px; }
.sim-cursor.is-press svg { transform: scale(.82); }
/* Bouton pressé au clic du curseur : léger enfoncement, 120 ms, ease-out. */
.sim-press { filter: brightness(.9); transform: scale(.97); transition: transform .12s ease-out; }
/* Champ qui reçoit la saisie : anneau de focus. Dans l'administration, celui
   de WordPress (#2271b1) ; dans le widget, l'accent du widget. */
.sim-focus { outline: 2px solid transparent; box-shadow: 0 0 0 2px var(--anthem-ai-primary-color, #c43a59) !important; transition: box-shadow .15s ease-out; }
.wp-admin .sim-focus { border-color: #2271b1 !important; box-shadow: 0 0 0 1px #2271b1 !important; }
@media (prefers-reduced-motion: reduce) {
  /* durée nulle plutôt que « none » : une animation en « forwards » pose
     alors directement son état final (les bulles du widget partent d'une
     opacité nulle). */
  *, *::before, *::after { animation-duration: 0s !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition: none !important; }
}
