/* LMe icon motion owner v726. Compositor-first; no filters, no layout animation. */
:root {
  --lme-icon-motion-standard-v726: cubic-bezier(.2,0,0,1);
  --lme-icon-motion-emphasized-v726: cubic-bezier(.16,.84,.22,1);
}

/* Keep icon transforms local and predictable. WAAPI only promotes them while active. */
:is(button, [role="button"], a[href], [data-lme-static-icon]) :is(.i, svg, .lme-true-morph-v724),
.settings-rework-icon > .i,
.community-create-icon > .i,
.emoji-category-icon > .i,
.reaction-category-icon > .i {
  transform-origin: 50% 50%;
  backface-visibility: hidden;
}

/* True morphs use path geometry for the meaning change; this tiny host settle
   makes the transition feel elastic without changing layout or adding blur. */
.lme-true-morph-v724 {
  transform-origin: 50% 50%;
  will-change: auto;
}
.lme-true-morph-v724.is-morphing-v726 {
  will-change: transform;
}

/* Auth loader is also a true-morph state. Spin the SVG, not the morph host, so
   the path interpolator and the compositor transform never write the same property. */
.lme-true-morph-v724[data-lme-true-morph-state-v724="loader"] > svg {
  animation: lmeIconLoaderSpinV726 780ms linear infinite;
  transform-origin: 50% 50%;
}
@keyframes lmeIconLoaderSpinV726 { to { transform: rotate(360deg); } }

/* Hamburger is a semantic menu -> close morph. The old owner animated width/left;
   v726 keeps all bars a fixed geometry and uses transform/opacity only. */
#sidebarMenuBtn .lme-burger-bar-v581 {
  left: 11px !important;
  width: 26px !important;
  transition:
    transform 270ms cubic-bezier(.2,.82,.2,1),
    opacity 145ms cubic-bezier(.2,0,0,1) !important;
  will-change: auto !important;
}
#sidebarMenuBtn .lme-burger-bar-v581.is-top { transform: translate3d(0,0,0) rotate(0deg) scaleX(1) !important; }
#sidebarMenuBtn .lme-burger-bar-v581.is-middle { transform: translate3d(0,0,0) rotate(0deg) scaleX(.73) !important; }
#sidebarMenuBtn .lme-burger-bar-v581.is-bottom { transform: translate3d(0,0,0) rotate(0deg) scaleX(1) !important; }
body.main-menu-popover-open #sidebarMenuBtn .lme-burger-bar-v581.is-top,
body.menu-drawer-open #sidebarMenuBtn .lme-burger-bar-v581.is-top,
#sidebarMenuBtn[aria-expanded="true"] .lme-burger-bar-v581.is-top {
  transform: translate3d(0,9.5px,0) rotate(45deg) scaleX(1) !important;
}
body.main-menu-popover-open #sidebarMenuBtn .lme-burger-bar-v581.is-middle,
body.menu-drawer-open #sidebarMenuBtn .lme-burger-bar-v581.is-middle,
#sidebarMenuBtn[aria-expanded="true"] .lme-burger-bar-v581.is-middle {
  opacity: 0 !important;
  transform: translate3d(0,0,0) rotate(0deg) scaleX(.08) !important;
}
body.main-menu-popover-open #sidebarMenuBtn .lme-burger-bar-v581.is-bottom,
body.menu-drawer-open #sidebarMenuBtn .lme-burger-bar-v581.is-bottom,
#sidebarMenuBtn[aria-expanded="true"] .lme-burger-bar-v581.is-bottom {
  transform: translate3d(0,-9.5px,0) rotate(-45deg) scaleX(1) !important;
}


/* Stateful fullscreen controls join the same stable morph box as media/call toggles. */
[data-video-action="fullscreen"] .lme-true-morph-host-v724 > .lme-morph-slot-v689,
[data-video-action="fullscreen"].lme-true-morph-host-v724 > .lme-morph-slot-v689,
.call-screen-fullscreen-btn.lme-true-morph-host-v724 > .lme-morph-slot-v689 {
  overflow: visible;
}

/* Accessibility is strict. Performance tiers keep the full Material motion profile. */
html.lme-ui-reduced-motion-v686 .lme-true-morph-v724,
html.lme-motion-reduced-v587 .lme-true-morph-v724 {
  will-change: auto !important;
}
html.lme-ui-reduced-motion-v686 .lme-true-morph-v724[data-lme-true-morph-state-v724="loader"] > svg,
html.lme-motion-reduced-v587 .lme-true-morph-v724[data-lme-true-morph-state-v724="loader"] > svg {
  animation: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .lme-true-morph-v724,
  #sidebarMenuBtn .lme-burger-bar-v581 {
    transition-duration: .01ms !important;
    animation: none !important;
    will-change: auto !important;
  }
  .lme-true-morph-v724[data-lme-true-morph-state-v724="loader"] > svg { animation: none !important; }
}
