/* One motion language: responsive controls, calm content changes, no layout animation. */
:root{--motion-fast:140ms;--motion-base:200ms;--motion-ease:cubic-bezier(.2,.75,.25,1)}
button,a,input,select{transition:background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),opacity var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}
button:active:not(:disabled){transform:translateY(1px) scale(.97)}.nav-item:active:not(:disabled),.folder-link:active:not(:disabled){transform:scale(.99)}
.topbar,.inspector-toolbar,.sidebar,.workspace,.file-area,.inspector,.account-page,.account-card,.login-card,.file-footer,.toolbar,.account-menu,.context-menu,.detail-preview{transition:background-color var(--motion-base) var(--motion-ease),border-color var(--motion-base) var(--motion-ease),color var(--motion-base) var(--motion-ease)}
.file-row,.tree-row,.share-entry,.transfer-card{transition:background-color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),opacity var(--motion-fast) var(--motion-ease)}
.nav-item:before{transition:background-color var(--motion-fast),opacity var(--motion-fast)}
.search{transition:background-color var(--motion-fast),box-shadow var(--motion-fast)}.search:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}
.view-switch,.theme-switch{position:relative;isolation:isolate;gap:0}.view-switch:before,.theme-switch:before{content:'';position:absolute;z-index:-1;top:2px;bottom:2px;left:2px;width:calc((100% - 4px)/2);border-radius:4px;background:var(--panel);box-shadow:0 1px 3px #0001;transition:transform 220ms var(--motion-ease),background-color var(--motion-base)}
.view-switch:has(#grid-view.active):before,.theme-switch:has([data-theme=dark][aria-pressed=true]):before{transform:translateX(100%)}
.view-switch button.active,.theme-switch button[aria-pressed=true]{background:transparent;box-shadow:none}.view-switch button,.theme-switch button{position:relative;z-index:1}.view-switch button:hover,.theme-switch button:hover{background:color-mix(in srgb,var(--hover) 45%,transparent)}
.dropzone{transition:background-color var(--motion-base),border-color var(--motion-base),box-shadow var(--motion-base),transform var(--motion-base) var(--motion-ease)}.drop-icon{transition:transform var(--motion-base) var(--motion-ease),color var(--motion-base)}.dropzone:hover .drop-icon{transform:translateY(-2px)}.dropzone.drag .drop-icon{transform:translateY(-4px)}
.upload-fill{transition:width 180ms linear,background-color var(--motion-base)}.transfer-state-icon,.transfer-copy{transition:color var(--motion-base),background-color var(--motion-base)}
.transfer-card,.context-menu,.view-enter{animation:none}.context-menu{transform-origin:top left}.account-menu{transition:opacity 160ms var(--motion-ease),transform 180ms var(--motion-ease),visibility 0s 180ms,background-color var(--motion-base)}.account-menu-wrap.open .account-menu{transition-delay:0s}
.account-button,.avatar{transition:background-color var(--motion-base),border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast)}
#dialog{animation:none;transform-origin:center}#dialog::backdrop{animation:motion-backdrop-in 180ms ease-out both}#dialog.motion-closing::backdrop{animation:motion-backdrop-out 140ms ease-in both}#dialog.motion-closing{pointer-events:none}
#toast{animation:none}.login-card{animation:motion-card-in 240ms var(--motion-ease)}#app:not([hidden]){animation:motion-app-in 220ms var(--motion-ease)}.share-card #unlock:not([hidden]),.share-card #download:not([hidden]){animation:motion-card-in 180ms var(--motion-ease)}
@media(hover:hover){.toolbar button:hover:not(:disabled),.footer-actions button:hover:not(:disabled),.detail-actions button:hover:not(:disabled){box-shadow:0 1px 3px #0000000a}.grid-files .file-row:hover{box-shadow:0 3px 12px #0000000a}}
@keyframes motion-card-in{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}@keyframes motion-app-in{from{opacity:.45}to{opacity:1}}@keyframes motion-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes motion-backdrop-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.dropzone:hover .drop-icon,.dropzone.drag .drop-icon,button:active:not(:disabled){transform:none}}
