/*
 * The launch (components/launch.js): the Go / No-Go countdown. Deep navy, starlight gold,
 * Space Mono for the count.
 */
.loader--launch { background: #02030a; color: var(--star); cursor: pointer; overflow: hidden; -webkit-user-select: none; user-select: none; }
.lx { position: absolute; inset: 0; overflow: hidden; }
.lx-k { white-space: nowrap; font: 400 0.66rem/1.3 var(--mono); letter-spacing: 0.3em; text-transform: uppercase; color: var(--hud-dim); }
.lx-skip { position: absolute; left: 0; right: 0; bottom: max(1.3rem, env(safe-area-inset-bottom)); z-index: 5; text-align: center; font: 400 0.6rem/1.3 var(--mono); letter-spacing: 0.28em; text-transform: uppercase; color: rgb(243 239 226 / 0.38); }
.is-lit .lx-skip, .lx-skip { transition: opacity 0.3s ease; }
.is-lit .lx-skip { opacity: 0; }

/* the console: the count, and the stations going Go one by one */
.lx-poll { display: grid; place-items: center; padding: 4rem var(--gutter); background: radial-gradient(80% 60% at 50% 50%, #0b1124, #02030a 75%); }
.pl-console { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: 1.6rem clamp(2rem, 6vw, 5rem); width: min(100%, 56rem); padding: clamp(1.4rem, 3vw, 2.4rem); border: 1px solid rgb(159 232 255 / 0.2); border-radius: 1.2rem; background: rgb(8 12 30 / 0.7); box-shadow: inset 0 0 60px rgb(159 232 255 / 0.04); transform-origin: 50% 50%; }
.pl-count { display: grid; gap: 0.9rem; }
.pl-num { font: 700 clamp(2.6rem, 5.2vw, 4.4rem)/1 var(--mono); font-variant-numeric: tabular-nums; }
.pl-sub { font: italic 500 1.1rem/1.3 var(--serif); color: var(--gold); }
.pl-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.15rem; font: 400 0.8rem/1 var(--mono); letter-spacing: 0.12em; text-transform: uppercase; }
.pl-list li { display: flex; align-items: baseline; gap: 0.7rem; padding: 0.5rem 0.6rem; border-radius: 0.4rem; transition: background-color 0.3s ease; }
.pl-list i { flex: 1; border-bottom: 1px dotted rgb(243 239 226 / 0.22); transform: translateY(-0.2rem); }
.pl-st { color: var(--star); }
.pl-go { min-width: 5.4rem; text-align: right; font-weight: 400; color: rgb(243 239 226 / 0.35); }
.pl-list li:not(.is-go) .pl-go { animation: pl-blink 0.9s steps(2) infinite; }
.pl-list li.is-go { background: rgb(242 196 109 / 0.07); }
.pl-list li.is-go .pl-go { color: var(--gold); font-weight: 700; text-shadow: 0 0 10px rgb(242 196 109 / 0.6); }
@keyframes pl-blink { 50% { opacity: 0.35; } }
.pl-all { grid-column: 1 / -1; text-align: center; font: 400 0.7rem/1 var(--mono); letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold); opacity: 0; transition: opacity 0.2s ease; }
.pl-console.is-done .pl-all { opacity: 1; }
.pl-scan { position: absolute; left: 0; right: 0; top: 0; bottom: 0; opacity: 0; transform: scaleY(0.004); background: linear-gradient(to bottom, #f2c46d, #fff4dc 30%, #fff 50%, #fff4dc 70%, #f2c46d); box-shadow: 0 0 40px 10px rgb(255 230 181 / 0.8); pointer-events: none; }
@media (max-width: 40rem) {
  .pl-console { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; padding: 1.2rem; }
  .pl-list { font-size: 0.68rem; }
  .pl-list li { padding: 0.36rem 0.4rem; }
}
