.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);font-family:var(--font-family);font-weight:var(--font-weight-semibold);text-decoration:none;border:none;cursor:pointer;transition:transform var(--transition-hover),box-shadow var(--transition-hover),border-color var(--transition-hover),background-color var(--transition-hover);transform:perspective(1px) translateZ(0);will-change:transform,box-shadow;padding:var(--btn-padding-y) var(--btn-padding-x);font-size:var(--btn-font-size);border-radius:var(--btn-radius)}.btn-primary{background-color:var(--accent-primary);color:var(--btn-text-on-primary);box-shadow:0 2px 8px rgba(0,0,0,.3)}.btn-primary:hover:not(:disabled):not(:active){transform:perspective(1px) translateZ(0) translateY(-4px);box-shadow:0 10px 40px rgba(16,185,129,.4),0 6px 20px rgba(0,0,0,.4);transition:transform var(--transition-hover),box-shadow var(--transition-hover)}.btn-primary:active:not(:disabled){transform:perspective(1px) translateZ(0) translateY(2px) scale(.98)!important;box-shadow:0 1px 4px rgba(0,0,0,.3)!important;transition:transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart)}.btn-secondary{background-color:var(--bg-surface-2);color:var(--text-primary);border:1px solid var(--border-default);box-shadow:none}.btn-secondary:hover:not(:disabled):not(:active){transform:perspective(1px) translateZ(0) translateY(-4px);border-color:rgba(255,255,255,.2);box-shadow:0 10px 40px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.1);transition:transform var(--transition-hover),box-shadow var(--transition-hover),border-color var(--transition-hover)}.btn-secondary:active:not(:disabled){transform:perspective(1px) translateZ(0) translateY(2px) scale(.98)!important;box-shadow:0 1px 4px rgba(0,0,0,.3)!important;transition:transform var(--duration-fast) var(--ease-out-quart),box-shadow var(--duration-fast) var(--ease-out-quart)}.btn-sm{padding:10px 20px;font-size:.8125rem;border-radius:8px}.btn-lg{padding:16px 32px;font-size:1rem;border-radius:12px}@media (min-width:1536px){.btn-sm{padding:12px 24px;font-size:.875rem}.btn-lg{padding:18px 36px;font-size:1.0625rem}}@media (min-width:1920px){.btn-sm{padding:14px 28px;font-size:.9375rem}.btn-lg{padding:20px 40px;font-size:1.125rem}}@media (min-width:2560px){.btn-lg{padding:20px 40px;font-size:1.125rem;border-radius:13px}}.btn:disabled{opacity:var(--disabled-opacity);cursor:not-allowed;background-image:var(--disabled-pattern);background-blend-mode:overlay}.btn:disabled,.btn:disabled:hover{box-shadow:none;transform:none}.btn-secondary:disabled{background-color:var(--bg-surface-2);border-color:var(--border-muted)}.focus-ring{position:absolute;inset:calc(-1 * var(--focus-ring-offset));pointer-events:none;opacity:0;transition:opacity .2s ease;overflow:visible}.focus-ring svg{width:100%;height:100%;overflow:visible}.focus-ring rect{fill:none;stroke:var(--accent-primary);stroke-width:var(--focus-ring-width);stroke-dasharray:var(--focus-dash-length) var(--focus-gap-length);stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px var(--accent-primary-glow))}.btn:focus-visible .focus-ring{opacity:1}.btn:focus-visible .focus-ring rect{animation:marchingAnts var(--focus-animation-duration) linear infinite}@keyframes btnFocusScaleBounce{0%{transform:perspective(1px) translateZ(0) scale(1)}20%{transform:perspective(1px) translateZ(0) scale(1.02)}40%{transform:perspective(1px) translateZ(0) scale(.99)}60%{transform:perspective(1px) translateZ(0) scale(1.005)}to{transform:perspective(1px) translateZ(0) scale(1)}}.btn:focus-visible:not(:disabled){animation:btnFocusScaleBounce .4s var(--ease-out-quart) forwards}.btn:focus{outline:none}.btn-wrapper{position:relative;display:inline-block}.btn-wrapper:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:16px}.btn-tooltip{bottom:calc(100% + 12px);color:var(--text-secondary);font-size:.75rem;font-weight:500;padding:8px 12px;border-radius:8px;border:1px solid var(--accent-primary-muted);white-space:nowrap;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.3);pointer-events:none;opacity:0;visibility:hidden;transform:translateX(-50%) translateY(10px);filter:blur(6px);-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform,opacity,filter;transition:opacity var(--duration-slow) var(--ease-out-quart),visibility var(--duration-slow) var(--ease-out-quart),transform var(--duration-slow) var(--ease-out-quart),filter .2s ease-out}.btn-tooltip,.btn-tooltip:after{position:absolute;left:50%;background:var(--bg-surface-3)}.btn-tooltip:after{content:"";top:100%;transform:translateX(-50%) translateY(-50%) rotate(45deg);width:10px;height:10px;border-right:1px solid var(--accent-primary-muted);border-bottom:1px solid var(--accent-primary-muted)}.btn-wrapper:hover .btn-tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);filter:blur(0);-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion:reduce){.btn{transition-duration:.1s}.btn:hover:not(:disabled){transform:perspective(1px) translateZ(0)}.btn:active:not(:disabled){transform:perspective(1px) translateZ(0) scale(.98)}.btn:focus-visible{animation:none}.focus-ring rect{animation:none;stroke-dasharray:none}}.reduced-motion .btn{transition-duration:.1s}.reduced-motion .btn:hover:not(:disabled){transform:perspective(1px) translateZ(0)}.reduced-motion .btn:active:not(:disabled){transform:perspective(1px) translateZ(0) scale(.98)}.reduced-motion .btn:focus-visible{animation:none}.reduced-motion .focus-ring rect{animation:none;stroke-dasharray:none}