/* =========================================================
   Motion system — see docs/superpowers/specs/2026-05-01-honeybound-motion-design.md
   Anti-AI rules: no gradients, no blur, no glow, transforms + flat fills only.
   ========================================================= */

/* Hex grid canvas: fixed full-viewport substrate behind all content. */
canvas#hex-grid {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: -1;
  pointer-events: none;
}

@media print {
  canvas#hex-grid { display: none; }
}

/* View Transitions intentionally disabled — instant nav, no animation. */

/* Hairline reveal on long-form blog/guide ledes (CSS-only via [data-revealed]). */
[data-reveal="hairline"] {
  position: relative;
}
html.hb-motion-on [data-reveal="hairline"][data-revealed]::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  height: 1px;
  background: var(--accent);
  width: 0;
  animation: hb-hairline 200ms ease-out forwards, hb-hairline-fade 280ms ease-out 200ms forwards;
}
@keyframes hb-hairline {
  to { width: 100%; }
}
@keyframes hb-hairline-fade {
  to { opacity: 0; }
}

/* Odometer digit wheels (dormant — no opt-in elsewhere yet). */
[data-odometer] {
  display: inline-flex;
  align-items: baseline;
  font-variant-numeric: tabular-nums;
}
[data-odometer] .hb-odo-window {
  display: inline-block;
  height: 1em;
  overflow: hidden;
  vertical-align: baseline;
}
[data-odometer] .hb-odo-stack {
  display: flex;
  flex-direction: column;
  line-height: 1;
  transform: translateY(0);
}
[data-odometer] .hb-odo-suffix { display: inline-block; }

/* Bee in transit — positioned fixed, follows transform set by JS. */
.hb-bee-in-transit {
  position: fixed;
  width: 16px;
  height: 16px;
  pointer-events: none;
  z-index: 9999;
  color: var(--accent);
  top: 0;
  left: 0;
}

/* Scroll progress bar — 2px honey at top of viewport, fills as you scroll. */
.hb-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--accent);
  z-index: 9998;
  transform: scaleX(0);
  transform-origin: 0 50%;
  pointer-events: none;
  will-change: transform;
}

/* Card hover lift — subtle translateY on cards across the public site. */
html.hb-motion-on .v2-card,
html.hb-motion-on .blog-card,
html.hb-motion-on .work-card,
html.hb-motion-on .app-card {
  transition: transform 200ms ease-out;
}
html.hb-motion-on .v2-card:hover,
html.hb-motion-on .blog-card:hover,
html.hb-motion-on .work-card:hover,
html.hb-motion-on .app-card:hover {
  transform: translateY(-2px);
}
