/* build f1bd54d · main · 2026-09-10T01:22:01Z · 5e144c9c */
/* An activation — a client's page run full-screen instead of the sponsor board.
   Spec: docs/specs/2026-09-09-kiosk-activations.md §2.2, §2.3. Decision 68. */

.activation {
  position: fixed;
  inset: 0;
  background: #000;
}

/* The frame fills everything. The client's page owns every pixel of it, which is
   the point: we reproduce their design, we do not decorate it. */
.activation__frame,
.activation__frame > iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* 🔴 The escape strip. 6% because that is EDGE in app/js/config.js — exactly the
   region in which a qualifying swipe may BEGIN, so this captures every gesture
   that would have been accepted and intercepts nothing that would not.

   Deliberately invisible: it is not a button and not discoverable, the same
   reasoning as the three-tap gesture it sits beside. Anyone who knows it is
   there is a tech.

   It costs the rightmost 6% of the activation, which is why an activation must
   keep its controls clear of that band (spec §4 check 4) rather than the player
   trying to work around it. */
.activation__escape {
  position: absolute;
  top: 0;
  right: 0;
  width: 6%;
  height: 100%;
  background: transparent;
  /* Above the frame, or the iframe swallows the gesture and the panel has no
     way out at all. */
  z-index: 1;
  touch-action: none;
}
