/* Motion hierarchy: immediate input feedback, settled panels, quiet page changes. */
:root{--motion-press:120ms;--motion-control:160ms;--motion-popover:240ms;--motion-drawer:320ms;--ease-settle:cubic-bezier(.22,1,.36,1);--ease-panel:cubic-bezier(.28,.11,.32,1)}
@media(prefers-reduced-motion:no-preference){
  .btn,.icon-btn,.send,.chip,.appearance-trigger,.appearance-actions button,.models-star,.models-more{
    transition:transform var(--motion-control) var(--ease-settle),background-color var(--motion-control) ease,border-color var(--motion-control) ease,box-shadow var(--motion-control) ease,color var(--motion-control) ease;
  }
  .btn:not(:disabled):active,.send:not(:disabled):active,.chip:not(:disabled):active,.appearance-actions button:not(:disabled):active{transform:scale(.975);transition-duration:var(--motion-press)}
  .icon-btn:not(:disabled):active,.models-star:not(:disabled):active{transform:scale(.93)}
  .appearance-preset span{transition:transform var(--motion-popover) var(--ease-settle),outline-color var(--motion-control) ease,box-shadow var(--motion-control) ease}
  .appearance-preset:active span{transform:scale(.92)}
  .workspace-links a,.rail__nav-item,.conv{transition:background-color 200ms ease,color 160ms ease}
  .workspace-links a svg,.rail__nav-item>.icon{transition:transform var(--motion-popover) var(--ease-settle)}
  .workspace-links a[aria-current=page]::after{animation:selection-settle 280ms var(--ease-settle) both}
  @keyframes selection-settle{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
  .composer,.pick--model .pick__btn{transition:border-color 180ms ease,box-shadow 220ms ease,background-color 180ms ease}
  .models-item,.card,.resource-link{transition:transform 320ms var(--ease-settle),border-color 220ms ease,box-shadow 320ms var(--ease-settle)}
  .workspace-rail,.rail{transition-timing-function:var(--ease-panel);transition-duration:var(--motion-drawer)}
  .workspace-scrim,.rail-overlay{opacity:1;transition:opacity var(--motion-drawer) ease,display var(--motion-drawer) allow-discrete}
  .workspace-scrim[hidden],.rail-overlay[hidden]{opacity:0;pointer-events:none}
  @starting-style{.workspace-scrim:not([hidden]),.rail-overlay:not([hidden]){opacity:0}}

  dialog{opacity:0;transform:translateY(8px) scale(.985);transition:opacity 180ms ease,transform var(--motion-popover) var(--ease-settle),display var(--motion-popover) allow-discrete,overlay var(--motion-popover) allow-discrete}
  dialog[open]{opacity:1;transform:none}
  dialog:not([open]),dialog:not([open])::backdrop{pointer-events:none}
  dialog::backdrop{opacity:0;transition:opacity 200ms ease,display var(--motion-popover) allow-discrete,overlay var(--motion-popover) allow-discrete}
  dialog[open]::backdrop{opacity:1}
  @starting-style{dialog[open]{opacity:0;transform:translateY(8px) scale(.985)}dialog[open]::backdrop{opacity:0}}
  .appearance-dialog{transform-origin:bottom left}
  .pmenu{opacity:1;transform:none;transform-origin:top right;transition:opacity 160ms ease,transform var(--motion-popover) var(--ease-settle),display var(--motion-popover) allow-discrete}
  .pick--model .pmenu{transform-origin:bottom right}
  .pmenu[hidden]{opacity:0;transform:translateY(4px) scale(.98);pointer-events:none}
  @starting-style{.pmenu:not([hidden]){opacity:0;transform:translateY(4px) scale(.98)}}
  @media(hover:hover) and (pointer:fine){
    .btn:not(:disabled):hover,.chip:not(:disabled):hover{transform:translateY(-1px)}
    .btn:not(:disabled):active,.chip:not(:disabled):active{transform:translateY(0) scale(.975)}
    .models-item:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 28%,var(--line));box-shadow:0 10px 26px #28221d0a}
    .card:hover,.resource-link:hover{border-color:color-mix(in srgb,var(--accent) 28%,var(--line));box-shadow:0 6px 22px #28221d08}
    .workspace-links a:hover svg,.rail__nav-item:hover>.icon{transform:translateX(1px)}
    .appearance-preset:hover span{transform:scale(1.12)}
  }
  @media(max-width:760px){.appearance-dialog{transform-origin:center}}
}
/* Content is never hidden by this sheet. Reduced-motion and older browsers retain a complete UI. */
