:root {
  --motion-fast: 120ms;
  --motion-enter: 180ms;
  --motion-ease: cubic-bezier(.2,.7,.2,1);
}
@keyframes workspace-enter { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
@keyframes dialog-enter { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@keyframes backdrop-enter { from { opacity:0; } to { opacity:1; } }
@media (prefers-reduced-motion:no-preference) {
  main { animation:workspace-enter var(--motion-enter) var(--motion-ease); }
  dialog[open] { animation:dialog-enter var(--motion-enter) var(--motion-ease); }
  dialog[open]::backdrop { animation:backdrop-enter var(--motion-enter) ease-out; }
  :is(button,a,input:not([type="checkbox"]):not([type="radio"]),select,textarea) { transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),opacity var(--motion-fast); }
  :is(.primary-action,.secondary-action,.compact-button,.row-open):not(:disabled):active { translate:0 1px; }
  .project-inspector { transition:transform var(--motion-enter) var(--motion-ease); }
  .toast { transition:opacity var(--motion-enter),transform var(--motion-enter) var(--motion-ease); }
  :is(.project-row,.task-item,.asset-card) { transition:background-color var(--motion-fast); }
}
/* Mode illustrations are static; only work that is actually running keeps moving. */
.mode-demo em { animation:none; }
.document-hidden *, .document-hidden *::before, .document-hidden *::after { animation-play-state:paused!important; }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
.form-feedback { margin:0; padding:12px; color:var(--danger,#e09a9a); background:rgba(224,154,154,.07); border:1px solid rgba(224,154,154,.3); border-radius:6px; line-height:1.6; }
.activity-warning { margin:12px; color:var(--text-2,#c0ccdc); font-size:13px; line-height:1.7; grid-column:1/-1; }
.activity-warning a { color:var(--accent-strong,#adcaff); text-underline-offset:3px; }
.connection-notice { position:fixed; z-index:90; top:80px; left:50%; transform:translateX(-50%); width:max-content; max-width:calc(100vw - 32px); padding:12px 16px; border:1px solid #8c754e; border-radius:8px; background:#292317; color:#f1ddb6; font-size:13px; line-height:1.6; box-shadow:0 6px 24px #0003; }
[hidden] { display:none!important; }
