﻿/* Shared motion: short, informative transitions with a reduced-motion exit. */
@keyframes enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes loading-line{0%{transform:translateX(-112%)}100%{transform:translateX(290%)}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes signal{0%,100%{box-shadow:0 0 0 0 rgba(42,128,99,.32)}55%{box-shadow:0 0 0 6px rgba(42,128,99,0)}}
.motion-enter,.enter{animation:enter var(--normal) var(--ease) both}.motion-delay-1,.enter-delay-1{animation-delay:70ms}.motion-delay-2,.enter-delay-2{animation-delay:140ms}.motion-view{animation:enter var(--normal) var(--ease) both}.button,.nav-link,.sidebar,.file-card,.toast,.ds-card,.source-item,.finding{transition:transform var(--fast) var(--ease),opacity var(--fast) var(--ease),background var(--fast) var(--ease),border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),color var(--fast) var(--ease)}.button:hover{transform:translateY(-2px);box-shadow:0 7px 16px rgba(28,28,28,.14)}.button:active{transform:translateY(0);box-shadow:none}.nav-link:hover{transform:translateX(3px)}.file-card:hover,.source-item:hover,.finding:hover,.ds-card:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(28,28,28,.07)}.is-loading .button{pointer-events:none}.is-loading .button::after{content:'';width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}
/* Design-system motion language: calm fades, depth, and sequential disclosure. */
@keyframes fade-rise{0%{opacity:0;transform:translate3d(0,22px,0);filter:blur(4px)}100%{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}}
@keyframes fade-in{0%{opacity:0}100%{opacity:1}}
@keyframes sheen{0%{transform:translateX(-130%)}100%{transform:translateX(180%)}}
@keyframes active-pulse{0%,100%{opacity:.25;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
.reveal{opacity:0;transform:translate3d(0,22px,0);filter:blur(4px);transition:opacity 640ms var(--ease),transform 640ms var(--ease),filter 640ms var(--ease)}.reveal.is-revealed{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}.reveal-step-1{transition-delay:70ms}.reveal-step-2{transition-delay:140ms}.reveal-step-3{transition-delay:210ms}.motion-view{animation:fade-rise 540ms var(--ease) both}.login-copy{animation:fade-rise 680ms var(--ease) both}.login-panel{animation:fade-rise 680ms 110ms var(--ease) both}.ds-hero>*{animation:fade-rise 650ms var(--ease) both}.ds-hero>h1{animation-delay:80ms}.ds-hero>p:last-child{animation-delay:150ms}.page-head h1,.report-head h1{animation:fade-rise 560ms var(--ease) both}.page-head p:not(.eyebrow),.report-head .muted{animation:fade-rise 560ms 100ms var(--ease) both}.source-banner::before{content:'';position:absolute;inset:0;transform:translateX(-130%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);animation:sheen 1.15s 500ms var(--ease) both}.nav-link[aria-current="page"]::after{animation:active-pulse 720ms var(--ease) both}.table-wrap tbody tr{animation:fade-in 420ms var(--ease) both}.table-wrap tbody tr:nth-child(2){animation-delay:60ms}.table-wrap tbody tr:nth-child(3){animation-delay:120ms}.table-wrap tbody tr:nth-child(4){animation-delay:180ms}.dropzone{position:relative;overflow:hidden}.dropzone::after{content:'';position:absolute;inset:0;opacity:0;background:linear-gradient(100deg,transparent 40%,rgba(255,255,255,.7) 50%,transparent 60%);transform:translateX(-110%);transition:opacity var(--fast) var(--ease),transform 600ms var(--ease)}.dropzone:hover::after,.dropzone.is-dragover::after{opacity:1;transform:translateX(110%)}.decision,.finding,.ds-card{transform-origin:center bottom}.toast.is-open{animation:fade-rise 300ms var(--ease) both}@media(prefers-reduced-motion:reduce){.reveal,.reveal.is-revealed{opacity:1;transform:none;filter:none}.login-copy,.login-panel,.ds-hero>*,.page-head h1,.report-head h1,.page-head p:not(.eyebrow),.report-head .muted,.motion-view{animation:none}.source-banner::before,.nav-link[aria-current="page"]::after{animation:none}}
.decision,.finding,.source-item{position:relative;overflow:hidden}.decision::after,.finding::after,.source-item::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transform:translateX(-125%);background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.46) 50%,transparent 62%)}.decision::after{opacity:1;animation:sheen 1.2s 220ms var(--ease) both}.finding:hover::after,.source-item:hover::after{opacity:1;transform:translateX(125%);transition:transform 620ms var(--ease),opacity var(--fast) var(--ease)}.processing::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.42) 50%,transparent 62%);transform:translateX(-125%);animation:sheen 2.6s 400ms var(--ease) infinite}
