/* DEAD AIR's page: the shared skin and stage are ../module.css (site/public/module.css); this is only what's its own. The
   page is gold like every module's; only the panel's own lights keep their colour: the windows' white and CATCH's cap. */

/* 20 HP at the line's scale */
.stage { --panel-ratio: 101.3 / 128.5; --panel-max: 560px; --panel-max-narrow: 520px; overflow-x: clip; }
.stage:focus { outline: none; }

/* the panel and the room under it the aerial hangs in, as wide as the panel */
.air-box {
  position: relative; margin: 0 auto;
  width: min(100%, calc(80vh * var(--panel-ratio)), var(--panel-max), calc(100cqw * 128.5 / 101.3 * var(--panel-ratio)));
}
.air-box .panel2d { width: 100%; }
.air-room { aspect-ratio: 101.3 / 40; }
@media (max-width: 900px) {
  .air-box { width: min(100%, calc(80vh * var(--panel-ratio)), var(--panel-max-narrow)); }
}
/* the aerial's canvas reaches past the panel on both sides: its cable moves every frame, its plug is the visitor's to hold */
.air-over { position: absolute; left: -30%; top: 0; width: 160%; height: 100%; pointer-events: none; z-index: 5; }
.air-cable { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.air-plug {
  position: absolute; width: 8.2%; aspect-ratio: 1; transform: translate(-50%, -50%); pointer-events: auto; z-index: 2;
  cursor: grab; touch-action: none; border-radius: 50%; -webkit-tap-highlight-color: transparent;
}
.air-plug svg { display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0.06em 0.12em 0.12em rgba(0, 0, 0, 0.7)); }
.air-plug:hover svg, .air-plug.held svg { filter: drop-shadow(0 0 0.35em rgba(212, 175, 55, 0.85)); }
.air-plug.held { cursor: grabbing; }
.air-plug:focus-visible { outline: 2px solid var(--gold); outline-offset: 0; }

/* the windows: each window's light (a piece of assets/lights.png, light as alpha) masks the colour the engine gives it,
   over the face's bare FR4, at the engine's level by opacity; the left half's are their mirror images', flipped */
.panel2d { isolation: isolate; }
.p2-win { position: absolute; pointer-events: none; opacity: 0; z-index: 1; }
.p2-win { -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; mix-blend-mode: screen; }
.p2 { z-index: 2; }
.p2-screw { pointer-events: none; }

/* beside the panel: the band and the last eight seconds of the dial */
#scope { display: block; width: 100%; height: 190px; }
.status { min-height: 2.8em; }
.readout { min-height: 2.8em; font: 400 0.74rem/1.4 "Space Mono", ui-monospace, monospace; color: var(--ink); }
#patch-note { min-height: 7.2em; }
