.ui-button{--button-background: var(--color-text);--button-foreground: var(--color-text-inverse);--button-border: var(--color-text);position:relative;isolation:isolate;display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:var(--spacing-sm);overflow:hidden;border:1px solid var(--button-border);background:var(--button-background);color:var(--button-foreground);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--letter-spacing-wide);line-height:1.15;text-align:center;text-decoration:none;text-transform:uppercase;transition:background-color .5s cubic-bezier(.4,0,.2,1),border-color .5s cubic-bezier(.4,0,.2,1),color .5s cubic-bezier(.4,0,.2,1),box-shadow .5s cubic-bezier(.4,0,.2,1),transform .5s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ui-button__content{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.ui-button--sm{min-height:44px;padding:.65rem var(--spacing-md);font-size:var(--text-xs)}.ui-button--md{padding:var(--spacing-md) var(--spacing-2xl)}.ui-button--lg{min-height:52px;padding:var(--spacing-md) var(--spacing-3xl);font-size:var(--text-base)}.ui-button--primary{margin-top:var(--spacing-md)}.ui-button--primary:before{position:absolute;z-index:0;top:0;left:-100%;width:100%;height:100%;background:var(--color-accent);content:"";transition:left .5s cubic-bezier(.4,0,.2,1)}.ui-button--primary:hover:before,.ui-button--primary:focus-visible:before{left:0}.ui-button--primary:hover,.ui-button--primary:focus-visible{border-color:var(--color-accent);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.ui-button--primary .ui-button__content svg{transition:transform .5s cubic-bezier(.4,0,.2,1)}.ui-button--primary:hover .ui-button__content svg,.ui-button--primary:focus-visible .ui-button__content svg{transform:translate(4px)}.ui-button--secondary{background:transparent;border-color:var(--color-text);color:var(--color-text);transition:color .25s ease,border-color .25s ease,transform .25s ease}.ui-button--secondary:before,.ui-button--secondary:after{position:absolute;border:2px solid transparent;width:0;height:0;content:"";z-index:1;pointer-events:none}.ui-button--secondary:before{top:0;left:0;transition:width .25s ease-out .25s,height .25s ease-out,border-color 0s linear .5s}.ui-button--secondary:after{top:0;left:0;transition:height .25s ease-out .25s,width .25s ease-out,border-color 0s linear .5s}.ui-button--secondary:hover,.ui-button--secondary:focus-visible{border-color:transparent;color:var(--color-accent);box-shadow:none;transform:translateY(-2px)}.ui-button--secondary:hover:before,.ui-button--secondary:focus-visible:before{width:100%;height:100%;border-top-color:var(--color-accent);border-right-color:var(--color-accent);transition:width .25s ease-out,height .25s ease-out .25s,border-color 0s linear}.ui-button--secondary:hover:after,.ui-button--secondary:focus-visible:after{width:100%;height:100%;border-bottom-color:var(--color-accent);border-left-color:var(--color-accent);transition:height .25s ease-out,width .25s ease-out .25s,border-color 0s linear}.ui-button--tertiary{display:inline-flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--letter-spacing-chic);color:var(--color-text);text-decoration:none;transition:color .8s cubic-bezier(.22,1,.36,1);position:relative;min-height:auto;padding:0;overflow:visible;background:transparent;border-color:transparent;box-shadow:none;transform:none}.ui-button--tertiary:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--color-accent);transition:width 1s cubic-bezier(.22,1,.36,1)}.ui-button--tertiary:hover,.ui-button--tertiary:focus-visible{color:var(--color-accent);border-color:transparent;box-shadow:none;transform:none}.ui-button--tertiary:hover:after,.ui-button--tertiary:focus-visible:after{width:100%}.ui-button--tertiary .ui-button__content svg{transition:transform .6s cubic-bezier(.16,1,.3,1)}.ui-button--tertiary:hover .ui-button__content svg,.ui-button--tertiary:focus-visible .ui-button__content svg{transform:translate(6px)}.ui-button--tertiary.ui-button--sm .ui-button__content{gap:var(--spacing-xs)}.ui-button--tertiary.ui-button--lg{font-size:var(--text-sm)}.ui-button--tertiary.ui-button--lg .ui-button__content{gap:var(--spacing-md)}.ui-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.ui-button--primary:active,.ui-button--secondary:active{box-shadow:none;transform:translateY(0) scale(.98)}.ui-button:disabled,.ui-button[aria-disabled=true]{cursor:wait;opacity:.7;pointer-events:none;box-shadow:none;transform:none}.ui-button:disabled:before,.ui-button[aria-disabled=true]:before,.ui-button:disabled:after,.ui-button[aria-disabled=true]:after,.ui-button:disabled .ui-button__content svg,.ui-button[aria-disabled=true] .ui-button__content svg{transition:none}.ui-button--primary:disabled:before,.ui-button--primary[aria-disabled=true]:before{left:0;opacity:.2}@media(prefers-reduced-motion:reduce){.ui-button,.ui-button:before,.ui-button:after,.ui-button .ui-button__content svg{transition-duration:.01ms}.ui-button:hover,.ui-button:focus-visible,.ui-button:active{transform:none}}
