/* Lamp letters on the hull: a glow pass under a dot-masked pass. */
[data-quad="hull"] { display: grid; }
.bulbs { grid-area: 1 / 1; display: block; width: 100%; text-align: center; font-family: "Oswald", sans-serif; font-weight: 700; line-height: .95; letter-spacing: .06em; text-transform: uppercase; }
.bulbs.glow { color: rgba(255,236,170,.55); filter: blur(4px); }
.bulbs.dots { color: #fff7d8; -webkit-mask: radial-gradient(circle, #000 42%, transparent 50%) 0 0 / 7px 7px; mask: radial-gradient(circle, #000 42%, transparent 50%) 0 0 / 7px 7px; text-shadow: 0 0 2px #fff3c0; }
body.flip [data-quad="hull"] .bulbs { animation: chase .6s steps(6); }
@keyframes chase { from { clip-path: inset(0 100% 0 0); } }
.count { right: 3%; top: 3%; margin: 0; font: 5cqw/1 "VT323", monospace; color: #fff2c0; text-shadow: 0 0 .6cqw #ff9a2a; }
.desc { inset: 0; display: none; grid-template-columns: 1fr .95fr; gap: 3cqw; padding: 5% 5% 14%; background: rgba(120,40,0,.25); }
body.alt .desc { display: grid; }
body.alt [data-quad], body.alt .count { visibility: hidden; }
.words { align-self: start; padding: 2cqw 2.4cqw; background: rgba(255,210,150,.35); box-shadow: inset 0 0 0 1px rgba(255,240,210,.4); }
.words p { margin: 0 0 1.4cqw; font: italic 700 3.5cqw/1.22 "Jost", sans-serif; color: #140600; }
.words .hl { font-size: 4.4cqw; }
.shot { align-self: start; margin: 0; border: .8cqw solid #f6d22a; background: #f6d22a; box-shadow: .4cqw .4cqw 0 rgba(90,30,0,.5); }
.shot figcaption { padding: .4cqw 1cqw 1cqw; font: italic 800 3.8cqw/1 "Jost", sans-serif; color: #140600; }
.shot img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; image-rendering: pixelated; }
.emptyline { left: 8%; right: 8%; top: 9%; margin: 0; text-align: center; font: italic 700 4cqw/1.2 "Jost", sans-serif; color: #fff; text-shadow: .25cqw .25cqw 0 #7a2400; }
.hit { top: 20%; bottom: 35%; width: 18%; } .hit.l { left: 0; } .hit.r { right: 0; }

/* The hull lamps shimmer while idle. */
body.lit [data-quad="hull"] .bulbs.dots { animation: shimmer 1.2s steps(4) infinite; }
@keyframes shimmer { 50% { opacity: .82; } }
