/* Motion adaptations from the observed MAD public site. Original text, card
   geometry and application controls remain the authoritative content. */
html.mi-mad-experience {
  --mad-ease: cubic-bezier(.4,0,.2,1);
  --mad-ease-out: cubic-bezier(.2,.65,.3,1);
}
html.mi-mad-experience.lenis,
html.mi-mad-experience.lenis body { height:auto; }
html.mi-mad-experience.lenis.lenis-smooth { scroll-behavior:auto!important; }
html.mi-mad-experience .mad-roll-label {
  display:inline-block; position:relative; overflow:clip; vertical-align:bottom;
  line-height:inherit; max-width:100%;
}
html.mi-mad-experience .mad-roll-source,
html.mi-mad-experience .mad-roll-echo {
  display:block; white-space:inherit; line-height:inherit;
  transition:transform 300ms var(--mad-ease); pointer-events:none;
}
html.mi-mad-experience .mad-roll-echo {
  position:absolute; inset:0; transform:translateY(110%); user-select:none;
}
@media(hover:hover) and (pointer:fine) {
  html.mi-mad-experience .mad-roll-trigger:is(:hover,:focus-visible) .mad-roll-source { transform:translateY(-110%); }
  html.mi-mad-experience .mad-roll-trigger:is(:hover,:focus-visible) .mad-roll-echo { transform:translateY(0); }
}
html.mi-mad-experience .mad-heading-host { position:relative; }
/* Temporary transparency leaves the real text in its exact layout and in the
   accessibility tree. The clone is removed after the entrance finishes. */
html.mi-mad-experience .mad-heading-playing,
html.mi-mad-experience .mad-heading-playing > :not(.mad-type-layer),
html.mi-mad-experience .mad-heading-playing > :not(.mad-type-layer) * { color:transparent!important; }
html.mi-mad-experience .mad-type-layer {
  display:block; position:absolute; inset:0; pointer-events:none;
  user-select:none; text-align:left; text-indent:0; z-index:1;
}
html.mi-mad-experience .mad-type-char { display:block; position:absolute; white-space:pre; margin:0; padding:0; border:0; }
/* Only media inside a card moves; card shells and connector terminals do not. */
html.mi-mad-experience .mad-media-motion {
  overflow:clip; transform-origin:center;
  transition:transform 600ms ease-out;
}
html.mi-mad-experience .mad-media-motion > img {
  transform:translateY(var(--mad-parallax-y,0px)) scale(1);
  transition:scale 1200ms ease-out;
}
@media(hover:hover) and (pointer:fine) {
  html.mi-mad-experience .mad-media-motion:hover { transform:scale(1.03); }
  html.mi-mad-experience .mad-media-motion:hover > img { scale:1.015; }
}
html.mi-mad-experience .mad-media-motion.mad-parallax > img {
  /* 1.5% overscan covers the small scrolling offset without revealing an edge. */
  transform:translateY(var(--mad-parallax-y,0px)) scale(1.015);
}
html.mi-mad-experience :is(.g-card,.project-card):is(:hover,:focus-within) :is(.g-card-footer,.project-card-footer) {
  opacity:1; translate:0 0;
}
@media(hover:hover) and (pointer:fine) {
  html.mi-mad-experience :is(.g-card,.project-card) :is(.g-card-footer,.project-card-footer) {
    transition:translate 600ms ease-out,opacity 600ms ease-out;
  }
  html.mi-mad-experience :is(.g-card,.project-card):not(:hover):not(:focus-within) :is(.g-card-footer,.project-card-footer) { translate:4px 4px; opacity:.8; }
}
/* Appearance only: native show/close, focus, validation and submit timing stay
   owned by each feature. Nothing delays the business action. */
html.mi-mad-experience :is(dialog[open],.wm-nav.is-open,.site-nav.open,#language-menu:not([hidden]),#wm-language-menu:not([hidden])) {
  animation:mad-panel-enter 300ms var(--mad-ease) both;
}
html.mi-mad-experience body.wemeld-workspace :is(
  #canvas-settings-menu:not([hidden]),#canvas-project-menu:not([hidden]),
  #canvas-members-menu:not([hidden]),#canvas-session-panel:not([hidden]),
  #canvas-comments-panel:not([hidden]),#asset-library:not([hidden]),
  #credits-center:not([hidden]) .credits-dialog) {
  animation:mad-panel-enter 240ms var(--mad-ease) both;
}
@keyframes mad-panel-enter {
  from { opacity:0; translate:0 8px; }
  to { opacity:1; translate:0 0; }
}
@media(prefers-reduced-motion:reduce),(hover:none) {
  html.mi-mad-experience .mad-roll-source,
  html.mi-mad-experience .mad-media-motion,
  html.mi-mad-experience .mad-media-motion > img { transition:none; }
  html.mi-mad-experience .mad-roll-echo { display:none; }
  html.mi-mad-experience .mad-roll-source { transform:none!important; }
  html.mi-mad-experience .mad-media-motion { transform:none!important; }
  html.mi-mad-experience .mad-media-motion > img { transform:none!important; scale:1!important; }
}
@media(prefers-reduced-motion:reduce) {
  html.mi-mad-experience { scroll-behavior:auto!important; }
  html.mi-mad-experience :is(dialog,.wm-nav,.site-nav,#language-menu,#wm-language-menu,
    #canvas-settings-menu,#canvas-project-menu,#canvas-members-menu,#canvas-session-panel,
    #canvas-comments-panel,#asset-library,.credits-dialog) { animation:none!important; }
}
