.griot-btn{isolation:isolate;cursor:pointer;opacity:1;position:relative}.griot-btn:before{content:"";z-index:-1;pointer-events:none;border:var(--griot-btn-surface-border,1px solid var(--griot-btn-border));border-radius:var(--control-radius);background:var(--griot-btn-state,var(--griot-btn-bg));transition:background var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);position:absolute;inset:-1px}@media (hover:hover) and (pointer:fine){.griot-btn:hover:not(:disabled):not([aria-disabled=true]){--griot-btn-state:var(--griot-btn-hover)}.griot-btn:active:not(:hover):not(:disabled):not([aria-disabled=true]){--griot-btn-state:var(--griot-btn-bg)}.griot-btn:active:not(:hover):not(:disabled):not([aria-disabled=true]):before{transform:none}}.griot-btn:active:not(:disabled):not([aria-disabled=true]){--griot-btn-state:var(--griot-btn-press)}.griot-btn:active:not(:disabled):not([aria-disabled=true]):before{transform:scale(.98)}.griot-btn:is(:disabled,[aria-disabled=true]){cursor:not-allowed;opacity:.45}.griot-btn:focus-visible,.griot-tag__action:focus-visible,.griot-tag__remove:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.griot-tag__action,.griot-tag__remove{border-radius:var(--radius-xs);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;min-height:26px;padding:0;display:inline-flex}.griot-tag__remove{color:var(--griot-slate);min-width:18px;margin-left:2px}@media (hover:hover) and (pointer:fine){.griot-tag__action:hover,.griot-tag__remove:hover{background:color-mix(in srgb, var(--griot-slate) 12%, transparent)}}.griot-tag__action:active,.griot-tag__remove:active{background:color-mix(in srgb, var(--griot-slate) 20%, transparent)}.griot-btn__spinner{animation:1s linear infinite griot-core-spin;display:inline-flex}.griot-btn__label{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.griot-btn__leading{flex:none;justify-content:center;align-items:center;display:inline-flex}.griot-btn__loading{inset-inline-start:2px;pointer-events:none;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.griot-btn__loading.has-leading{inset-inline-start:var(--control-padding)}.griot-icon-btn .griot-btn__loading{inset-inline-start:50%;transform:translate(-50%,-50%)}.griot-core-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes griot-core-spin{to{transform:rotate(360deg)}}@media (pointer:coarse),(any-pointer:coarse){.griot-btn,.griot-tag__action,.griot-tag__remove{min-height:var(--target-touch-min);min-width:var(--target-touch-min)}.griot-btn:before{inset-block:calc(max(0px, (var(--target-touch-min) - var(--control-visual-height,var(--control-height))) / 2) - 1px)}.griot-icon-btn:before{inset-inline:calc(max(0px, (var(--target-touch-min) - var(--control-visual-height,var(--control-height))) / 2) - 1px)}}@media (prefers-reduced-motion:reduce){.griot-btn:before{transition:none}.griot-btn:active:not(:disabled):not([aria-disabled=true]):before{transform:none}.griot-btn__spinner{animation:none}}@media (forced-colors:active){.griot-btn:before{background:buttonface;border-color:buttontext}.griot-btn:is(:disabled,[aria-disabled=true]){color:graytext;opacity:1}}.griot-loader[data-variant=helix] svg{animation:gl-spin var(--gl-duration,1.6s) linear infinite, gl-shade var(--gl-duration,1.6s) linear infinite}.griot-loader__shadow{animation:gl-shadow var(--gl-duration,1.6s) linear infinite}.griot-loader[data-variant=assemble] path{transform-box:fill-box;transform-origin:0 100%}.griot-loader[data-variant=assemble] [data-part=top]{animation:gl-in-top var(--gl-duration,2.6s) cubic-bezier(.2,0,0,1) infinite}.griot-loader[data-variant=assemble] [data-part=bottom]{animation:gl-in-bottom var(--gl-duration,2.6s) cubic-bezier(.2,0,0,1) infinite}.griot-loader[data-variant=assemble] [data-part=ribbon]{animation:gl-in-ribbon var(--gl-duration,2.6s) cubic-bezier(.2,0,0,1) infinite}.griot-loader[data-variant=trace] path{animation:gl-trace var(--gl-duration,3s) cubic-bezier(.45,0,.55,1) infinite}@keyframes gl-spin{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}@keyframes gl-shade{0%,50%,to{filter:brightness()}25%,75%{filter:brightness(.6)}}@keyframes gl-shadow{0%,50%,to{opacity:.5;transform:scaleX(1)}25%,75%{opacity:.25;transform:scaleX(.25)}}@keyframes gl-in-top{0%{opacity:0;transform:translateY(-60px)}22%,82%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}@keyframes gl-in-bottom{0%,12%{opacity:0;transform:translateY(60px)}34%,82%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}@keyframes gl-in-ribbon{0%,30%{opacity:1;transform:scaleX(0)}52%,82%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@keyframes gl-trace{0%{stroke-dashoffset:1px;fill-opacity:0;stroke-opacity:1}50%{stroke-dashoffset:0;fill-opacity:0;stroke-opacity:1}68%,86%{stroke-dashoffset:0;fill-opacity:1;stroke-opacity:0}to{stroke-dashoffset:0;fill-opacity:0;stroke-opacity:0}}@media (prefers-reduced-motion:reduce){.griot-loader,.griot-loader *{transition:none!important;animation:none!important}.griot-loader svg,.griot-loader path{opacity:1;fill-opacity:1;stroke-opacity:0;transform:none}.griot-loader__shadow{opacity:.5}}
