:root {
  --amicro-ease-out: cubic-bezier(.23, 1, .32, 1);
  --amicro-ease-move: cubic-bezier(.77, 0, .175, 1);
  --amicro-accent: #c96b31;
}

.amicro-progress {
  position: fixed;
  z-index: 1000;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, #c96b31, #e3a56e);
  transform-origin: left center;
  pointer-events: none;
  transition: transform 80ms linear;
}

[data-amicro-control] {
  --amicro-x: 50%;
  --amicro-y: 50%;
  position: relative;
  isolation: isolate;
  transition: transform 160ms var(--amicro-ease-out), box-shadow 180ms ease, border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}
[data-amicro-control]::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(circle at var(--amicro-x) var(--amicro-y), rgb(255 255 255 / .32), transparent 44%);
  opacity: 0;
  transform: scale(.9);
  transition: opacity 160ms ease, transform 160ms var(--amicro-ease-out);
}
[data-amicro-control]:active { transform: translateY(1px) scale(.97); }
[data-amicro-control]:active::after { opacity: 1; transform: scale(1); transition-duration: 100ms; }
[data-amicro-control]:focus-visible { outline: 3px solid color-mix(in srgb, var(--amicro-accent) 72%, white); outline-offset: 4px; }

[data-amicro-card] {
  transition: transform 220ms var(--amicro-ease-out), box-shadow 220ms ease, border-color 180ms ease;
}
[data-amicro-card]:focus-within { outline: 2px solid var(--amicro-accent); outline-offset: 4px; }
.route-tab[aria-pressed='true'] { box-shadow: inset 0 -3px 0 var(--amicro-accent); }
.route-tab.is-loading { cursor: progress; }
.route-tab.is-success { box-shadow: inset 0 -3px 0 #33785c; }
.route-tab.is-error { box-shadow: inset 0 -3px 0 #a33f32; }
#frameStatus[data-amicro-status='changed'] { color: #6b3c1f; }

[data-amicro-reveal='pending'] { opacity: 0; transform: translateY(12px); }
[data-amicro-reveal='visible'] {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 260ms var(--amicro-ease-out), transform 260ms var(--amicro-ease-out);
}

@media (hover: hover) and (pointer: fine) {
  [data-amicro-control]:hover { transform: translateY(-2px); }
  [data-amicro-card]:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgb(61 45 30 / .10); }
}

@media (prefers-reduced-motion: reduce) {
  .amicro-progress { transition: none; }
  [data-amicro-control], [data-amicro-control]::after, [data-amicro-card], [data-amicro-reveal] {
    transition-duration: 0.01ms !important;
    transform: none !important;
  }
  [data-amicro-reveal] { opacity: 1 !important; }
}
