.bridge-section{scroll-margin-top:calc(var(--spacing-header) + 2rem)}.bridge-rule{border-left:2px solid var(--primary)}.bridge-download{outline-offset:0;transition:outline-color var(--transition-slow), outline-offset var(--transition-slow), background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);outline:1px solid #0000;position:relative}.bridge-download:after{content:"";border:1px solid var(--primary);border-radius:inherit;pointer-events:none;opacity:0;position:absolute;inset:-5px}.bridge-download:hover{outline-color:var(--primary);outline-offset:4px}.bridge-download:hover:after{opacity:1;animation:bridge-perimeter var(--transition-slow) linear both}.bridge-download:focus-visible{outline:2px solid var(--ring);outline-offset:5px}@keyframes bridge-perimeter{0%{clip-path:polygon(0 0,0 0,0 0,0 0,0 0,0 0)}25%{clip-path:polygon(0 0,100% 0,100% 0,100% 0,100% 0,0 0)}50%{clip-path:polygon(0 0,100% 0,100% 100%,100% 100%,100% 100%,0 0)}75%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 100%,0 0)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 0,0 0)}}.bridge-drop{transition:background-color var(--transition-fast), border-color var(--transition-fast)}.bridge-drop[data-dragging=true]{border-color:var(--primary);background:var(--secondary)}@media (prefers-reduced-motion:reduce){.bridge-download,.bridge-drop{transition:none}.bridge-download:hover:after{animation:none}}
