/* kernels/flywheel.v1.css — Credit Flywheel Clicker host ergonomics.
   Additive to arcade.v1.css's frame chrome (.arc-*); this only tunes the
   tap-zone ergonomics the core mechanic needs on a phone. Brand vars ONLY —
   no hex/rgb literals (passes scripts/lib/brand-lint.mjs lintColors with
   nothing to ignore), per the kernel brand rule. */

/* The stage canvas is the real tap zone. These props keep rapid taps from
   triggering iOS double-tap zoom, text selection, the tap-highlight flash,
   or a long-press context menu — without them the mechanic visibly breaks on
   the primary 390×844 target. arcade.v1.css already sets these on .arc-canvas;
   re-declared here scoped to flywheel hosts so a future host wrapper inherits
   them even if the frame chrome changes. */
.sp-game-host[data-kernel='flywheel-clicker'] .arc-canvas,
.sp-game-host[data-kernel='flywheel'] .arc-canvas {
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

/* Compact-fit collapse hooks (§9 stage fit on short phones). The frame measures
   the stage and sets data-game-fit; the canvas content-space layout is the
   primary fit mechanism, but a short viewport gets a tighter stage box here so
   fitCheck never trips the no-scroll guard. */
.sp-game-host[data-game-fit='compact'] .arc-stage {
  height: clamp(240px, 46svh, 380px);
}

/* Reduced-motion / calm: the frame already strips its own keyframes via
   .arc-reduced; flywheel adds no animations of its own in CSS (all motion is
   canvas-side and gated on state.frame.reduced), so there is nothing to disable
   here — this block documents that the static knee frame is the kernel's job. */
@media (prefers-reduced-motion: reduce) {
  .sp-game-host[data-kernel='flywheel-clicker'] .arc-canvas,
  .sp-game-host[data-kernel='flywheel'] .arc-canvas { transition: none; }
}
