/* MIMO 3.4 | Luxury motion: only module submenus animate; preview/export pixels unchanged. */
/* A flex-column aside otherwise shrinks expanded modules to ~40px instead of scrolling. */
body.mimo-theme aside > section { flex-shrink: 0 !important; }
body.mimo-theme aside > section.mimo-animated-section {
  display: block !important;
  max-height: 0;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-bottom-width: 0 !important;
  opacity: 0;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-5px);
  transition:
    max-height 420ms cubic-bezier(.22,.79,.23,1),
    padding-top 420ms cubic-bezier(.22,.79,.23,1),
    padding-bottom 420ms cubic-bezier(.22,.79,.23,1),
    opacity 230ms ease,
    transform 370ms cubic-bezier(.22,.79,.23,1),
    visibility 0s linear 420ms;
}
body.mimo-theme aside > section.mimo-animated-section.mimo-is-open {
  max-height: var(--mimo-reveal-height, 1600px);
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  border-bottom-width: 1px !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition:
    max-height 480ms cubic-bezier(.22,.79,.23,1),
    padding-top 480ms cubic-bezier(.22,.79,.23,1),
    padding-bottom 480ms cubic-bezier(.22,.79,.23,1),
    opacity 290ms ease 80ms,
    transform 440ms cubic-bezier(.22,.79,.23,1),
    visibility 0s linear 0s;
}
/* The sticker content is one grid row; 0fr -> 1fr works for any submenu content height. */
body.mimo-theme #sticker-extra-controls.mimo-animated-sticker,
body.mimo-theme #sticker-extra-controls.mimo-animated-sticker.hidden {
  display: grid !important;
  grid-template-rows: 0fr;
  margin-top: 0 !important;
  visibility: hidden;
  pointer-events: none;
  transition: grid-template-rows 460ms cubic-bezier(.22,.79,.23,1), visibility 0s linear 460ms;
}
body.mimo-theme #sticker-extra-controls.mimo-animated-sticker.mimo-is-open {
  grid-template-rows: 1fr;
  margin-top: 12px !important;
  visibility: visible;
  pointer-events: auto;
  transition: grid-template-rows 460ms cubic-bezier(.22,.79,.23,1), visibility 0s;
}
body.mimo-theme #sticker-extra-controls > .mimo-reveal-inner {
  min-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-7px);
  transition: opacity 220ms ease, transform 400ms cubic-bezier(.22,.79,.23,1);
}
body.mimo-theme #sticker-extra-controls.mimo-is-open > .mimo-reveal-inner {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 300ms ease 85ms, transform 440ms cubic-bezier(.22,.79,.23,1);
}
/* Soft feedback on the switch itself, separate from the menu body. */
body.mimo-theme aside #toggle-seamless-module + span,
body.mimo-theme aside #toggle-sticker-mode + span {
  transition: background-color 230ms ease, border-color 230ms ease !important;
}
body.mimo-theme aside #toggle-seamless-module + span::after,
body.mimo-theme aside #toggle-sticker-mode + span::after {
  transition: transform 280ms cubic-bezier(.18,.8,.2,1) !important;
}
@media (prefers-reduced-motion: reduce) {
  body.mimo-theme aside > section.mimo-animated-section,
  body.mimo-theme aside > section.mimo-animated-section.mimo-is-open,
  body.mimo-theme #sticker-extra-controls.mimo-animated-sticker,
  body.mimo-theme #sticker-extra-controls.mimo-animated-sticker.mimo-is-open,
  body.mimo-theme #sticker-extra-controls > .mimo-reveal-inner,
  body.mimo-theme #sticker-extra-controls.mimo-is-open > .mimo-reveal-inner,
  body.mimo-theme aside #toggle-seamless-module + span,
  body.mimo-theme aside #toggle-sticker-mode + span,
  body.mimo-theme aside #toggle-seamless-module + span::after,
  body.mimo-theme aside #toggle-sticker-mode + span::after {
    transition: none !important;
    transform: none;
  }
  body.mimo-theme aside #toggle-seamless-module:checked + span::after,
  body.mimo-theme aside #toggle-sticker-mode:checked + span::after {
    transform: translateX(1.25rem);
  }
}
