.ds-btn{--ds-btn-radius: var(--radius-xl);position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;cursor:pointer;text-decoration:none;border-radius:var(--ds-btn-radius);overflow:visible;font-family:inherit;isolation:isolate;user-select:none;-webkit-tap-highlight-color:transparent;transform-style:preserve-3d;perspective:1000px;transform:translateZ(0);will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;outline:2px solid transparent;outline-offset:-2px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}.ds-btn__inner{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:.875rem 1.75rem;width:100%;height:100%;border-radius:inherit;overflow:hidden;z-index:1;white-space:nowrap;font-weight:600;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;box-shadow:0 4px 14px #0000001a,0 2px 4px #00000014,inset 0 1px #fff3;transition:background .4s cubic-bezier(.4,0,.2,1),box-shadow .4s cubic-bezier(.4,0,.2,1),border-color .4s cubic-bezier(.4,0,.2,1),color .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1)}.ds-btn--sm .ds-btn__inner{padding:.625rem 1.25rem;font-size:var(--font-size-sm)}.ds-btn--lg .ds-btn__inner{padding:1.125rem 2.25rem;font-size:var(--font-size-lg)}.ds-btn--xl .ds-btn__inner{padding:1.375rem 2.75rem;font-size:var(--font-size-xl);min-width:220px;font-weight:700}.ds-btn--icon-only .ds-btn__inner{padding:0;width:48px;height:48px}.ds-btn--primary .ds-btn__inner{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 50%,var(--color-primary) 100%);background-size:200% 200%;color:var(--color-white);border:1px solid rgba(255,255,255,.15)}.ds-btn--primary:after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.4),transparent);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity .3s ease;z-index:2;pointer-events:none}.ds-btn--secondary .ds-btn__inner{background:linear-gradient(135deg,#fffffff2,#ffffffd9);backdrop-filter:blur(20px) saturate(180%);color:var(--color-primary);border:2px solid rgba(var(--color-primary-rgb),.2)}.ds-btn--secondary:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 50% 0%,rgba(var(--color-primary-rgb),.1) 0%,transparent 70%);opacity:0;transition:opacity .3s;z-index:2;pointer-events:none}.ds-btn--ghost .ds-btn__inner{background:transparent;color:var(--color-primary);box-shadow:inset 0 0 0 2px var(--color-primary)}.ds-btn--white .ds-btn__inner{background:var(--color-white);color:var(--color-gray-800);border:1px solid rgba(0,0,0,.08)}.ds-btn--white:hover:not(:disabled) .ds-btn__inner{background:var(--color-snow, #f9fbfd);border-color:rgba(var(--color-primary-rgb),.3)}.ds-btn:hover:not(:disabled):not(.ds-btn--loading){transform:translate3d(0,-4px,0)}.ds-btn:hover:not(:disabled):not(.ds-btn--loading) .ds-btn__inner{background-position:100% 0;box-shadow:0 12px 28px #0000001f,0 6px 12px #0000001a,inset 0 1px #ffffff4d}.ds-btn:hover:not(:disabled):not(.ds-btn--loading):after,.ds-btn:hover:not(:disabled):not(.ds-btn--loading):before{opacity:1}.ds-btn:disabled,.ds-btn--disabled{cursor:not-allowed;opacity:.6}.ds-btn--full-width{width:100%}.ds-btn--shake{animation:ds-shake .5s cubic-bezier(.4,0,.2,1)}@keyframes ds-shake{0%,to{transform:translateZ(0)}25%{transform:translate3d(-10px,0,0)}75%{transform:translate3d(10px,0,0)}}.ds-btn--feedback-success .ds-btn__inner{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important}.ds-btn--feedback-error .ds-btn__inner{background:linear-gradient(135deg,#ef4444,#dc2626)!important;color:#fff!important}.ds-btn__inner svg,.ds-btn__inner i{width:20px;height:20px;transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:2;flex-shrink:0}.ds-icon-slide-right:hover:not(:disabled):not(.ds-btn--loading) .ds-btn__icon--right{transform:translate3d(4px,0,0) scale(1.1)}.ds-icon-slide-left:hover:not(:disabled):not(.ds-btn--loading) .ds-btn__icon--left{transform:translate3d(-4px,0,0) scale(1.1)}.ds-btn__spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:ds-spin .8s linear infinite}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:768px){.ds-btn{min-height:44px}.ds-btn__inner{padding:.625rem 1rem;font-size:var(--font-size-sm);gap:6px}.ds-btn__inner svg,.ds-btn__inner i{width:18px;height:18px}.ds-btn--sm .ds-btn__inner{padding:.5rem .875rem;font-size:.8125rem}.ds-btn--lg .ds-btn__inner{padding:.75rem 1.5rem;font-size:var(--font-size-base)}.ds-btn--xl .ds-btn__inner{padding:.875rem 1.25rem;font-size:var(--font-size-sm);min-width:100%}}@media(max-width:480px){.ds-btn--icon-only .ds-btn__inner{width:40px;height:40px}}@media(prefers-reduced-motion:reduce){.ds-btn,.ds-btn__inner,.ds-btn__inner svg,.ds-btn__inner i{transition:none!important;animation:none!important}}
