/* emil-design-eng: quick feedback, deliberate motion, no layout animation. */
:root{--ui-ease-out:cubic-bezier(.23,1,.32,1)}
html :is(.btn,.portfolio-action,.feature-action,.preview-tab,.room-switch button,.flow-primary,.flow-secondary,[data-plan-toggle],[data-export-plan]),#demo-shell :is(.flow-primary,.flow-secondary,[data-plan-toggle],[data-export-plan]){
 transition:scale 120ms var(--ui-ease-out),background-color 150ms ease,color 150ms ease,border-color 150ms ease;
}
@media(prefers-reduced-motion:no-preference){
 html[data-input-mode="pointer"] :is(.btn,.portfolio-action,.preview-tab,.room-switch button,.flow-primary,.flow-secondary,[data-plan-toggle],[data-export-plan]):active{scale:.97}
 html[data-input-mode="pointer"] .feature-link:active .feature-action{scale:.97}
 /* Native close stays immediate: no deferred close callbacks or focus races. */
 html[data-input-mode="pointer"] .demo-dialog[open]{
  opacity:1;transform:translateY(0) scale(1);transform-origin:center;
  transition:opacity 200ms var(--ui-ease-out),transform 200ms var(--ui-ease-out);
 }
 html[data-input-mode="pointer"] .demo-dialog[open]::backdrop{opacity:1;transition:opacity 200ms var(--ui-ease-out)}
 @starting-style{
  html[data-input-mode="pointer"] .demo-dialog[open]{opacity:0;transform:translateY(6px) scale(.985)}
  html[data-input-mode="pointer"] .demo-dialog[open]::backdrop{opacity:0}
 }
}
/* Drawers, tabs and keyboard navigation are never made to wait for motion. */
html[data-input-mode="keyboard"],html[data-input-mode="keyboard"] *{scroll-behavior:auto!important}
html[data-input-mode="keyboard"] *,html[data-input-mode="keyboard"] *::before,html[data-input-mode="keyboard"] *::after,html[data-input-mode="keyboard"] .demo-dialog::backdrop{
 transition:none!important;animation:none!important;
}
@media(prefers-reduced-motion:reduce){
 html,html *{scroll-behavior:auto!important}
 html *,html *::before,html *::after,html .demo-dialog::backdrop{transition:none!important;animation:none!important}
 html .demo-dialog[open]{opacity:1;transform:none}
}
@media(pointer:coarse){
 .room-switch button,.btn.small,.dialog-top .btn,.dialog-bottom .btn{min-height:44px}
 .site-footer nav a{display:inline-flex;align-items:center;min-height:44px}
 .dialog-top{padding-top:max(14px,env(safe-area-inset-top))}
 .dialog-bottom{padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
