/* Shares the uploaded storefront's semantic foreground and border tokens. */
:root{--motion-ink:var(--fg);--motion-line:var(--line);--motion-ease:cubic-bezier(.22,1,.36,1)}
:is(button,a[href],summary,[role="button"]){-webkit-tap-highlight-color:transparent;transition-property:color,background,border-color,box-shadow,filter,transform,scale;transition-duration:180ms;transition-timing-function:var(--motion-ease)}
:is(button,a[href],summary,[role="button"]):active:not(:disabled){scale:.97}
:is(input,textarea,select){transition:border-color 180ms ease,outline-color 180ms ease,background 180ms ease}
@media(hover:hover){
  :is(.hub-go,.hb-buy,.hub,.arrow,.dev button,.seg button,.tabs a):hover:not(:disabled){scale:1.025}
  .hb-tile:hover i svg{translate:0 -2px;rotate:-5deg}
  .hb-tile i svg{transition:translate 240ms var(--motion-ease),rotate 240ms var(--motion-ease)}
}
.onyx-arrive{animation:onyx-arrive 360ms var(--motion-ease) both}
.onyx-stagger{animation:onyx-arrive 380ms var(--motion-ease) both;animation-delay:var(--motion-delay,0ms)}
.onyx-feedback{animation:onyx-feedback 260ms ease-out}
.onyx-error{animation:onyx-error 280ms ease-in-out}
.onyx-click-fx{position:fixed;left:0;top:0;width:32px;height:32px;margin:-16px;z-index:1000;pointer-events:none;contain:layout style}
.onyx-click-fx::before{content:"";position:absolute;inset:6px;border:1px solid var(--motion-ink);border-radius:50%;animation:onyx-ring 420ms ease-out both}
.onyx-click-fx i{position:absolute;left:15px;top:13px;width:2px;height:6px;border-radius:1px;background:var(--motion-ink);transform:rotate(var(--ray)) translateY(-9px);animation:onyx-ray 360ms ease-out both}
@keyframes onyx-arrive{from{opacity:.4;translate:0 9px}to{opacity:1;translate:0 0}}
@keyframes onyx-feedback{from{opacity:.5;translate:0 3px}to{opacity:1;translate:0 0}}
@keyframes onyx-error{0%,100%{translate:0 0}25%{translate:-3px 0}75%{translate:3px 0}}
@keyframes onyx-ring{from{opacity:.5;scale:.35}to{opacity:0;scale:2}}
@keyframes onyx-ray{from{opacity:.65;transform:rotate(var(--ray)) translateY(-9px)}to{opacity:0;transform:rotate(var(--ray)) translateY(-22px)}}
/* Public page changes: fade the previous page, then glide the next into place. */
::view-transition-old(root){animation:onyx-page-out 140ms ease-out both}
::view-transition-new(root){animation:onyx-page-in 320ms var(--motion-ease) 140ms both}
::view-transition-group(root){animation-duration:460ms}
@keyframes onyx-page-out{to{opacity:0;transform:translateY(-16px) scale(.985)}}
@keyframes onyx-page-in{from{opacity:0;transform:translateY(30px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  :is(button,a[href],summary,[role="button"]):active{scale:1!important}
  .onyx-click-fx{display:none}
}