/* EFRAFA's page: the shared skin and stage are ../module.css (site/public/module.css); this is only what's EFRAFA's own.
   The page is gold like every module's; only the panel's own lights keep their colour: the cells' white, the newborn
   white-hot and the held cells' red (on the panel only). */

/* 36 HP at the line's scale, the wider column (as GIF GIF GIF's stage, without its row under the panel) */
.stage { --panel-ratio: 182.58 / 128.5; --panel-max: 1009px; --panel-max-narrow: 937px; }
.stage:focus { outline: none; }
.stage-inner {
  max-width: 1320px; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 1.4rem clamp(1rem, 2.5vw, 2rem);
}
.stage-hint { max-width: none; }

/* the warren: the windows' glass (black while the module runs), each cell its ring's sprite (assets/cell-<r>.png, light
   as alpha) turned to its step, masking the colour the engine gives it at the engine's level by opacity, and its bloom
   (assets/glow-<r>.png) in that colour, the whole layer of blooms screened over the panel as the mockup's is; over them
   the touch field and its gold rings (the cell under the pointer, the keyboard's cursor, a hold filling) */
.panel2d { isolation: isolate; }
.ef-glass, .ef-marks { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; }
.ef-glass { z-index: 1; }
.ef-cells, .ef-glows { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.ef-glows { mix-blend-mode: screen; }
.ef-cell, .ef-glow { position: absolute; pointer-events: none; opacity: 0; }
.ef-cell, .ef-glow { -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.ef-field {
  position: absolute; z-index: 2; border-radius: 50%; touch-action: none; cursor: pointer;
  -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none;
}
.ef-field:focus { outline: none; }
.ef-field:focus-visible { box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.55); }
.ef-marks { z-index: 2; overflow: visible; }
.ef-hover { stroke: rgba(212, 175, 55, 0.7); stroke-width: 0.28; }
.ef-cursor { stroke: var(--gold-hi); stroke-width: 0.36; stroke-dasharray: 0.9 0.6; }
.ef-hold { stroke: var(--gold-hi); stroke-width: 0.55; stroke-linecap: round; }
.ef-hold.done { stroke-width: 0.75; }
.p2 { z-index: 3; }
.p2-button { z-index: 4; }

/* BREAKOUT's button: the cap sinks while it's held */
.p2-button .ef-cap { transform-box: fill-box; transform-origin: 50% 50%; transition: transform 40ms; }
.p2-button.held .ef-cap { transform: scale(0.92); }

/* beside the panel: the bar, the last thing that happened, the warren */
#scope { display: block; width: 100%; height: 214px; }
.status { min-height: 2.8em; }
.readout { min-height: 1.4em; font: 400 0.74rem/1.4 "Space Mono", ui-monospace, monospace; color: var(--ink); }
#patch-note { min-height: 6em; }

@media (max-width: 900px) {
  .stage-inner { grid-template-columns: minmax(0, 1fr); }
  .stage-hint { max-width: var(--panel-max-narrow); }
}
