/* ==========================================================================
   UNTIL WE BECOME — DROP 001 / AFTERIMAGE
   STILL FIELD / IN MOTION — cinematic playhead build.
   Document scroll is NOT the timeline. The stage owns a 44s playhead
   (js/scene.js); the document only scrolls to the ARRIVAL signup once
   the film has resolved there.
   ========================================================================== */

:root {
  --field-pale: #cdd3d2;
  --hud-text: #f4f5f3;
  --hud-shadow: 0 1px 3px rgba(10, 12, 12, 0.7), 0 0 16px rgba(10, 12, 12, 0.45);
  --ctl-bg: rgba(18, 22, 24, 0.58);
  --ctl-border: rgba(244, 245, 243, 0.42);
  --arrival-bg: #bec7c8;
  --arrival-text: #172024;
  --arrival-text-dim: #454f52;
  --arrival-line: #98a3a3;
  --error: #b3261e;
  --font: -apple-system, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  background: var(--field-pale);
  color: var(--hud-text);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  overscroll-behavior-y: none;
}

img { max-width: 100%; display: block; }

.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  left: 16px; top: -48px;
  background: var(--hud-text);
  color: #14181a;
  padding: 10px 16px;
  font-size: 13px; font-weight: 700;
  z-index: 1000;
  transition: top 0.15s ease;
}
.skip-link:focus { top: 16px; }

:focus-visible { outline: 2px solid var(--hud-text); outline-offset: 3px; }

/* Dev-only build indicator -- NOT production UI. */
.demo-badge {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 200;
  background: repeating-linear-gradient(45deg, #000 0 10px, #ffcc00 10px 20px);
  color: #000;
  font-family: "Courier New", Courier, monospace;
  font-size: 11px; font-weight: 700;
  text-align: center; padding: 5px 10px;
}
.demo-badge span { background: #fff; padding: 2px 8px; display: inline-block; }

/* --------------------------------------------------------------------
   Persistent world + static fallback
   -------------------------------------------------------------------- */
#scene-canvas {
  position: fixed; inset: 0;
  width: 100%; height: 100%;
  display: block; z-index: 0;
}
#scene-canvas[hidden] { display: none; }

.static-fallback {
  position: fixed; inset: 0; z-index: 0;
  display: flex; align-items: center; justify-content: center;
  background: #0c0f10; overflow: hidden;
}
.static-fallback[hidden] { display: none; }
.static-fallback img { width: 100%; height: 100%; object-fit: cover; }

/* --------------------------------------------------------------------
   Cinematic stage: exactly one viewport tall, no scroll spacer.
   -------------------------------------------------------------------- */
.stage {
  position: relative;
  z-index: 1;
  height: 100svh;
  min-height: 520px;
  touch-action: pan-y;
  outline-offset: -3px;
}
.stage.is-scrubbable { touch-action: none; }

.field-hud {
  position: absolute; inset: 0;
  z-index: 5; padding: 24px;
  pointer-events: none;
}
@media (min-width: 1024px) { .field-hud { padding: 40px 48px; } }
.field-hud > * { pointer-events: auto; }
.field-hud.is-dimmed { opacity: 0.25; transition: opacity 0.3s ease; }

.hud-eyebrow, .hud-wordmark, .hud-price-label, .hud-disclosure {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase;
  margin: 0; text-shadow: var(--hud-shadow);
}

.hud-top-left { position: absolute; top: 24px; left: 24px; }
.hud-top-right { position: absolute; top: 24px; right: 24px; }
.hud-bottom-left { position: absolute; left: 20px; right: 20px; bottom: 128px; }
.hud-bottom-right { position: absolute; left: 20px; bottom: 60px; }
.hud-bottom-center {
  position: absolute; left: 20px; right: 20px; bottom: 24px;
  text-align: left; font-size: 10px;
}
@media (min-width: 1024px) {
  .hud-top-left { top: 40px; left: 48px; }
  .hud-top-right { top: 40px; right: 48px; }
  .hud-bottom-left { left: 48px; right: auto; bottom: 40px; }
  .hud-bottom-right { left: auto; right: 48px; bottom: 40px; }
  .hud-bottom-center {
    left: 50%; right: auto; bottom: 44px;
    transform: translateX(-50%);
    text-align: center; white-space: nowrap; font-size: 11px;
  }
}

.hud-price { display: flex; flex-direction: column; gap: 4px; }
.hud-price-value {
  font-size: 22px; font-weight: 700;
  letter-spacing: -0.01em; text-shadow: var(--hud-shadow);
}
@media (min-width: 1024px) { .hud-price-value { font-size: 26px; } }

.hud-cta {
  display: inline-flex; align-items: center; gap: 10px;
  height: 48px; padding: 0 22px;
  background: var(--ctl-bg);
  border: 1px solid var(--ctl-border);
  border-radius: 2px;
  color: var(--hud-text);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  text-decoration: none;
  backdrop-filter: blur(3px);
  transition: background-color 0.16s ease;
}
@media (min-width: 1024px) { .hud-cta { height: 52px; padding: 0 26px; } }
.hud-cta:hover { background: rgba(18, 22, 24, 0.8); }

/* --------------------------------------------------------------------
   [ARRIVAL prototype] conversion block - screen-space, desktop reference 1920 x 1080,
   scaled with the viewport height exactly like the scene (vertical FOV).
   x1392-1824 (right 96, width 432); DROP 001 ~y736 / 13 px, price ~y774 / 20 px,
   CTA y814-872 / 15 px, supporting line ~y891 / 13 px; expanded form y704-976.
   -------------------------------------------------------------------- */
:root { --arr-graphite: #262b2e; --arr-pearl: #eeede8; }
.arrival-block {
  --u: calc(100svh / 1080);
  position: absolute; z-index: 6;
  right: calc(96 * var(--u)); top: calc(704 * var(--u));
  width: calc(432 * var(--u)); height: calc(272 * var(--u));
  color: var(--arr-pearl); font-family: var(--font);
  pointer-events: none;
}
.arrival-block[hidden] { display: none; }
.arrival-block p { margin: 0; }
.arr-view, .arr-form, .arr-done { position: absolute; inset: 0; }
.arr-view[hidden], .arr-form[hidden], .arr-done[hidden] { display: none; }
.arr-drop, .arr-price, .arr-note, .arr-label, .arr-error, .arr-privacy, .arr-done-title {
  position: absolute; left: 0; text-shadow: var(--hud-shadow); white-space: nowrap;
}
.arr-drop { top: calc(24 * var(--u)); font-size: calc(13 * var(--u)); line-height: calc(16 * var(--u)); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; }
.arr-price { top: calc(58 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(24 * var(--u)); font-weight: 600; letter-spacing: -0.005em; }
.arr-cta {
  position: absolute; left: 0; top: calc(110 * var(--u));
  width: 100%; height: calc(58 * var(--u)); margin: 0; padding: 0;
  background: var(--arr-graphite); color: var(--arr-pearl);
  border: 0; border-radius: 0; box-shadow: none;
  font-family: var(--font); font-size: calc(15 * var(--u)); font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; pointer-events: auto;
}
.arr-cta:hover { background: #1c2023; }
.arr-cta:focus-visible { outline: 2px solid var(--arr-pearl); outline-offset: 3px; }
.arr-note { top: calc(179 * var(--u)); font-size: calc(13 * var(--u)); line-height: calc(16 * var(--u)); font-weight: 500; }
.arr-form, .arr-done { pointer-events: auto; }
.arr-form-price { top: 0; }
.arr-label { top: calc(40 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.arr-error { top: calc(40 * var(--u)); left: auto; right: 0; font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); font-weight: 600; color: #ffd3cc; }
.arr-input {
  position: absolute; left: 0; top: calc(60 * var(--u));
  width: 100%; height: calc(46 * var(--u)); margin: 0; padding: 0 calc(14 * var(--u));
  background: var(--arr-pearl); color: #172024;
  border: 1px solid var(--arr-graphite); border-radius: 0;
  font-family: var(--font); font-size: calc(16 * var(--u));
}
.arr-input:focus { outline: 2px solid var(--arr-pearl); outline-offset: 2px; }
.arr-input.invalid { border-color: var(--error); }
.arr-submit { top: calc(118 * var(--u)); }
.arr-form-note { top: calc(190 * var(--u)); }
.arr-privacy { top: calc(226 * var(--u)); font-size: calc(13 * var(--u)); line-height: calc(16 * var(--u)); color: var(--arr-pearl); }
.arr-done-title { top: calc(58 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(24 * var(--u)); font-weight: 600; }
.arr-done-title:focus { outline: none; }
.arr-done-note { top: calc(94 * var(--u)); }
/* [ARRIVAL QA fix 1] conversion labels: solid graphite, no text-shadow (all states); buttons keep graphite fill + pearl lettering */
.arr-drop, .arr-price, .arr-label, .arr-note, .arr-privacy { color: #20272b; text-shadow: none; }
/* [LSB01] status text: success title + validation error readable on the floor; the error is identified by its message, the red field border and focus */
.arr-done-title, .arr-error { color: #20272b; text-shadow: none; }

/* --------------------------------------------------------------------
   Playback + focus controls
   -------------------------------------------------------------------- */
.playback-controls {
  position: absolute; z-index: 6;
  top: 64px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;
}
@media (min-width: 1024px) { .playback-controls { top: auto; bottom: 40px; left: 50%; } }

/* [LSB01] desktop control spacing: Pause / Inspect clear of the concept disclosure during the film; focus panel above them;
   at ARRIVAL the row returns to its approved position (Replay placement unchanged). Mobile unchanged. */
@media (min-width: 1024px) {
  .stage .playback-controls { bottom: 72px; }
  .stage .playback-controls.is-arrival { bottom: 40px; }
  .stage .focus-panel { bottom: 128px; }
}


.ctl-btn {
  min-height: 48px; padding: 0 18px;
  background: var(--ctl-bg);
  border: 1px solid var(--ctl-border);
  border-radius: 2px;
  color: var(--hud-text);
  font-family: var(--font);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  cursor: pointer;
  backdrop-filter: blur(3px);
}
.ctl-btn:hover { background: rgba(18, 22, 24, 0.8); }
.ctl-btn[hidden] { display: none; }
.ctl-btn-primary { background: rgba(244, 245, 243, 0.92); color: #14181a; border-color: transparent; }
.ctl-btn-primary:hover { background: #fff; }

.focus-panel {
  position: absolute; z-index: 7;
  left: 50%; transform: translateX(-50%);
  bottom: 96px;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding: 16px;
  background: rgba(12, 15, 16, 0.62);
  border: 1px solid var(--ctl-border);
  border-radius: 3px;
  backdrop-filter: blur(6px);
  max-width: calc(100vw - 32px);
}
.focus-panel[hidden] { display: none; }
.focus-title {
  margin: 0; font-size: 11px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--hud-text);
}

.detail-controls {
  position: absolute; z-index: 7;
  left: 50%; transform: translateX(-50%);
  bottom: 96px;
  display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;
  max-width: calc(100vw - 32px);
}
.detail-controls[hidden] { display: none; }
.focus-panel .detail-controls { position: static; transform: none; }
.detail-btn {
  min-height: 44px; padding: 0 14px;
  background: rgba(18, 22, 24, 0.55);
  border: 1px solid rgba(244, 245, 243, 0.34);
  border-radius: 2px;
  color: var(--hud-text);
  font-family: var(--font);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  cursor: pointer;
}
.detail-btn.is-active { background: rgba(244, 245, 243, 0.9); color: #14181a; }

/* --------------------------------------------------------------------
   08 / ARRIVAL — real signup in ordinary document flow
   -------------------------------------------------------------------- */
.arrival-signup { position: relative; z-index: 2; }

.arrival-panel {
  background: var(--arrival-bg);
  color: var(--arrival-text);
  padding: 48px 20px 64px;
}
@media (min-width: 1024px) { .arrival-panel { padding: 72px 48px 96px; } }

.arrival-inner { max-width: 480px; margin: 0 auto; }

.arrival-panel .eyebrow {
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--arrival-text-dim); margin: 0 0 12px;
}

.signup-heading {
  font-size: clamp(30px, 8vw, 40px);
  font-weight: 700; letter-spacing: -0.02em;
  margin: 0 0 12px; color: var(--arrival-text);
}

.signup-price { font-size: 17px; font-weight: 700; margin: 0 0 28px; }

.field { margin-bottom: 20px; }
.field label {
  display: block; font-size: 12px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--arrival-text-dim); margin-bottom: 8px;
}
.field input[type="email"] {
  width: 100%; height: 48px; padding: 0 16px;
  background: #fff;
  border: 1px solid var(--arrival-line);
  border-radius: 2px;
  color: var(--arrival-text);
  font-family: var(--font); font-size: 16px;
}
.field input:focus { outline: none; border-color: var(--arrival-text); }
.field input.invalid { border-color: var(--error); }

.field-error {
  display: block; min-height: 18px;
  font-size: 14px; color: var(--error); margin-top: 8px;
}

.checkbox-field { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.checkbox-field input[type="checkbox"] {
  width: 22px; height: 22px; min-width: 22px; margin: 0;
  accent-color: var(--arrival-text);
}
.checkbox-field label {
  font-size: 15px; color: var(--arrival-text); line-height: 1.4;
  min-height: 44px; display: flex; align-items: center; cursor: pointer;
}

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 48px; padding: 0 32px;
  font-size: 13px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  text-decoration: none; border: none; border-radius: 2px; cursor: pointer;
}
.btn-primary { background: var(--arrival-text); color: var(--arrival-bg); }
.btn-primary:hover { opacity: 0.85; }
.btn-block { display: flex; width: 100%; margin-top: 24px; }

.form-fineprint { font-size: 13px; line-height: 1.5; color: var(--arrival-text-dim); margin: 16px 0 0; }
.form-fineprint a { color: var(--arrival-text-dim); }

.confirmation { padding: 8px 0; }
.confirmation-copy { font-size: 15px; color: var(--arrival-text-dim); margin: 0 0 8px; max-width: 440px; }

.footer {
  text-align: center; padding: 32px 24px;
  font-size: 12px; color: var(--arrival-text-dim);
  background: var(--arrival-bg);
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; }
}

/* --------------------------------------------------------------------
   [REV02] PRODUCT FOCUS inspection presentation (desktop, scratchpad prototype).
   Astra REV02 1920 x 1080 composition. Every coordinate below is an artboard pixel at
   1920 x 1080, scaled by --iu; three artboards share it: top (header) aligned to the stage
   top edge, media (caption / images / locator) centred, bottom (choices / offer / disclosures)
   aligned to the bottom edge. The saved STILL FIELD frame stays full-frame underneath; the only
   tonal support is the measured veil (6.5 % across the frame, deeper at the top and floor edges).
   -------------------------------------------------------------------- */
.inspection {
  --insp-light: #e3e7e3; --insp-dim: #bdc7c6; --insp-dark: #20272b;
  --insp-dark-dim: #3b4549;
  --ink-caption: var(--insp-dark); --ink-label: var(--insp-dark);
  --ink-headl: var(--insp-light); --ink-headl-dim: var(--insp-dim); --ink-headc: var(--insp-light); --ink-headr: var(--insp-light); --ink-headr-dim: var(--insp-dim);
  --ink-nav: var(--insp-light); --ink-nav-dim: var(--insp-dim); --ink-offer: var(--insp-light); --ink-fine-dim: var(--insp-dim); --ink-disc: var(--insp-light);
  position: absolute; inset: 0; z-index: 20;
  container-type: size;
  color: var(--insp-light); font-family: var(--font);
  -webkit-font-smoothing: antialiased;
  overscroll-behavior: contain;
}
.inspection[hidden] { display: none; }
.inspection:focus { outline: none; }
.inspection p { margin: 0; }
.insp-frame {
  --iu: min(100cqh / 1080, 100cqw / 1880);
  --abx: calc(50cqw - 960 * var(--iu));
  position: absolute; inset: 0; overflow: hidden;
}
.insp-scrim, .insp-scrim::before, .insp-scrim::after { position: absolute; left: 0; right: 0; pointer-events: none; }
.insp-scrim { top: 0; bottom: 0; background: rgba(0, 0, 0, 0.065); }
/* local tonal support: measured per opening, only behind groups that need it (inspection.js); blurred, no edge */
.insp-supports { position: absolute; inset: 0; pointer-events: none; }
.insp-support { position: absolute; pointer-events: none; }
.insp-scrim::before {
  content: ""; top: 0; height: calc(260 * var(--iu));
  background: linear-gradient(to bottom, rgba(0,0,0,0.273) 0%, rgba(0,0,0,0.198) 15.4%, rgba(0,0,0,0.134) 30.8%, rgba(0,0,0,0.091) 46.2%, rgba(0,0,0,0.048) 61.5%, rgba(0,0,0,0.022) 76.9%, rgba(0,0,0,0) 100%);
}
.insp-scrim::after {
  content: ""; bottom: 0; height: calc(320 * var(--iu));
  background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.048) 12.5%, rgba(0,0,0,0.102) 25%, rgba(0,0,0,0.166) 37.5%, rgba(0,0,0,0.251) 50%, rgba(0,0,0,0.348) 62.5%, rgba(0,0,0,0.455) 75%, rgba(0,0,0,0.572) 87.5%, rgba(0,0,0,0.6) 100%);
}
.insp-ab { position: absolute; left: var(--abx); width: calc(1920 * var(--iu)); height: calc(1080 * var(--iu)); pointer-events: none; }
.insp-ab > * { pointer-events: auto; }
.insp-top { top: 0; }
.insp-media { top: calc(50% - 540 * var(--iu)); }
.insp-bottom { bottom: 0; }
.insp-ab p, .insp-ab button, .insp-ab a { position: absolute; line-height: 1; white-space: nowrap; }

/* header */
.insp-brand { left: calc(64 * var(--iu)); top: calc(38 * var(--iu)); font-size: calc(24 * var(--iu)); font-weight: 600; letter-spacing: 0.02em; color: var(--ink-headl); }
.insp-eyebrow { left: calc(64 * var(--iu)); top: calc(78 * var(--iu)); font-size: calc(13 * var(--iu)); font-weight: 600; letter-spacing: 0.05em; color: var(--ink-headl-dim); }
.insp-mode { left: calc(914 * var(--iu)); top: calc(45 * var(--iu)); font-size: calc(13 * var(--iu)); font-weight: 600; letter-spacing: 0.04em; color: var(--ink-headc); }
.insp-continue {
  right: calc(64 * var(--iu)); top: calc(34 * var(--iu)); height: calc(52 * var(--iu));
  display: flex; align-items: flex-start; padding: calc(11 * var(--iu)) 0 0; margin: 0;
  background: none; border: 0; color: var(--ink-headr); font: inherit; cursor: pointer;
}
.insp-continue-text { font-size: calc(18 * var(--iu)); line-height: 1; padding: 0 calc(8 * var(--iu)) calc(11 * var(--iu)) 0; border-bottom: 1px solid var(--ink-headr-dim); }
.insp-esc { margin-left: calc(72 * var(--iu)); margin-top: calc(9 * var(--iu)); font-size: calc(11 * var(--iu)); line-height: 1; color: var(--ink-headr-dim); letter-spacing: 0.04em; }
.insp-arrow { width: calc(21 * var(--iu)); height: calc(12 * var(--iu)); margin-left: calc(22 * var(--iu)); margin-top: calc(9 * var(--iu)); }
.insp-arrow path { fill: none; stroke: currentColor; stroke-width: 1.25; }
.insp-continue:hover .insp-continue-text { border-bottom-color: var(--ink-headr); }

/* media: one pane per selection (cross-faded) */
.insp-pane { position: absolute; inset: 0; }
.insp-img { position: absolute; left: calc(var(--x) * var(--iu)); top: calc(var(--y) * var(--iu)); width: calc(var(--w) * var(--iu)); height: calc(var(--h) * var(--iu)); max-width: none; user-select: none; -webkit-user-drag: none; }
.insp-detail { left: calc(-1 * var(--abx)); }     /* the detail field is anchored to the left viewport edge */
.insp-caption { position: absolute; inset: 0; pointer-events: none; }
.insp-title { left: calc(896 * var(--iu)); top: calc(173 * var(--iu)); font-size: calc(46 * var(--iu)); font-weight: 400; letter-spacing: -0.005em; color: var(--ink-caption); }
.insp-sub { left: calc(898 * var(--iu)); top: calc(238 * var(--iu)); font-size: calc(17 * var(--iu)); color: var(--ink-caption); }
.insp-label { left: calc(var(--x) * var(--iu)); top: calc(var(--y) * var(--iu)); font-size: calc(16 * var(--iu)); color: var(--ink-label); }
.insp-marks { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.insp-bracket { fill: none; stroke: var(--insp-light); stroke-width: 1.25; }
.insp-leader { fill: none; stroke: var(--insp-dim); stroke-width: 1; }

/* choices */
.insp-group-label { position: absolute; top: calc(970 * var(--iu)); font-size: calc(11 * var(--iu)); line-height: 1; font-weight: 600; letter-spacing: 0.06em; color: var(--ink-nav-dim); }
.insp-sep { position: absolute; left: calc(355 * var(--iu)); top: calc(973 * var(--iu)); width: 1px; height: calc(19 * var(--iu)); background: var(--ink-nav-dim); opacity: 0.5; }
.insp-choice {
  top: calc(947.5 * var(--iu)); height: calc(45 * var(--iu)); padding: calc(12 * var(--iu)) 0; margin: 0;
  background: none; border: 0; color: var(--ink-nav); font: inherit; font-size: calc(21 * var(--iu)); font-weight: 400; cursor: pointer;
  display: flex; align-items: flex-start;
}
.insp-choice-text { position: relative; line-height: 1; }
.insp-choice-text::after { content: ""; position: absolute; left: 0; right: 0; top: calc(35.5 * var(--iu)); height: calc(2 * var(--iu)); background: var(--ink-nav); opacity: 0; }
.insp-choice.is-selected { font-weight: 600; }
.insp-choice.is-selected .insp-choice-text::after { opacity: 1; }
.inspection.insp-hover-ok .insp-choice:hover:not(.is-selected) .insp-choice-text::after { opacity: 0.4; }   /* only after the pointer moves */
.insp-optional { font-size: calc(13 * var(--iu)); line-height: 1; font-weight: 400; color: var(--ink-nav-dim); margin: calc(7 * var(--iu)) 0 0 calc(16 * var(--iu)); }

/* offer (Early Access stays the single filled action) */
.insp-price { color: var(--ink-offer); left: calc(1510 * var(--iu)); top: calc(805 * var(--iu)); display: flex; align-items: baseline; gap: calc(24 * var(--iu)); }
.insp-price-value { font-size: calc(30 * var(--iu)); }
.insp-price-label { font-size: calc(16 * var(--iu)); }
.insp-copy { color: var(--ink-offer); left: calc(1510 * var(--iu)); top: calc(858 * var(--iu)); font-size: calc(18 * var(--iu)); line-height: calc(24 * var(--iu)) !important; }
.insp-copy span { display: block; }
.insp-ea {
  left: calc(1510 * var(--iu)); top: calc(933 * var(--iu)); width: calc(346 * var(--iu)); height: calc(56 * var(--iu));
  display: flex; align-items: center; justify-content: space-between; padding: 0 calc(22 * var(--iu)) calc(7 * var(--iu));
  background: var(--insp-dark); color: var(--insp-light); text-decoration: none;
  font-size: calc(16 * var(--iu)); font-weight: 600; letter-spacing: 0.04em;
  transition: background-color 0.16s ease;
}
.insp-ea:hover { background: #2c353a; }
.insp-ea .insp-arrow { margin: 0; }
.insp-nopay { left: calc(1510 * var(--iu)); top: calc(1005 * var(--iu)); font-size: calc(14 * var(--iu)); color: var(--ink-fine-dim); }
.insp-demo[hidden] { display: none; }
.insp-demo { left: calc(1510 * var(--iu)); top: calc(1042 * var(--iu)); font-size: calc(12 * var(--iu)); color: var(--ink-fine-dim); }
.insp-disclosure { left: calc(64 * var(--iu)); top: calc(1042 * var(--iu)); font-size: calc(14 * var(--iu)); color: var(--ink-disc); }
.inspection :focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.insp-ea:focus-visible { outline-color: var(--ink-offer); }

/* the film's own HUD and controls step aside while the presentation is shown */
.stage.is-inspecting > .field-hud, .stage.is-inspecting > .playback-controls, .stage.is-inspecting > .detail-controls,
.stage.is-inspecting > .arrival-block, .stage.is-inspecting > .focus-panel, .stage.is-inspecting > .arr-inspect-wrap {
  opacity: 0 !important; visibility: hidden !important; transition: opacity 0.28s ease, visibility 0s linear 0.28s;
}
.stage.insp-returning > .field-hud, .stage.insp-returning > .playback-controls, .stage.insp-returning > .detail-controls,
.stage.insp-returning > .arrival-block, .stage.insp-returning > .focus-panel, .stage.insp-returning > .arr-inspect-wrap { transition: opacity 0.22s ease; }

/* [REV02] ARRIVAL secondary action: above the conversion area, aligned with its left edge (x 1392 at 1920 x 1080),
   in clear space between AFTERIMAGE (ink bottom y 555) and DROP 001 (y 728). Text action, graphite like the block's text. */
.arr-inspect-wrap { --u: calc(100svh / 1080); position: absolute; z-index: 6; right: calc(96 * var(--u)); top: calc(646 * var(--u)); width: calc(432 * var(--u)); pointer-events: none; }
.arr-inspect {
  pointer-events: auto; display: inline-block; margin: 0; padding: calc(10 * var(--u)) 0; background: none; border: 0; cursor: pointer;
  font-family: var(--font); font-size: calc(15 * var(--u)); line-height: calc(20 * var(--u)); font-weight: 600; letter-spacing: 0.01em; color: #20272b;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: calc(5 * var(--u));
}
.arr-inspect[hidden] { display: none; }
.arr-inspect:hover { text-decoration-thickness: 2px; }
.arr-inspect:focus-visible { outline: 2px solid #20272b; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  .stage.is-inspecting > *, .stage.insp-returning > * { transition: none !important; }
}
