/* Equipment room header: the mega lab. Fast, busy, safe: nothing flashes more than 3 times a second. */
.studio.page-tools .exhibition-opening{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:34px;align-items:center;min-height:0}
.studio.page-tools .exhibition-opening:after{grid-column:1/-1}
.mega-lab{position:relative;border:5px solid #10151f;border-radius:8px;box-shadow:10px 10px 0 #10151f;overflow:hidden;background:#241d3f}
.mega-lab svg{display:block;width:100%;height:auto}

@media(prefers-reduced-motion:no-preference){
.ml-spin{transform-box:fill-box;transform-origin:center;animation:ml-spin 1.1s linear infinite}
.ml-spin.slow{animation-duration:2.4s}.ml-spin.rev{animation-direction:reverse}
.ml-blink{animation:ml-blink .9s steps(2,end) infinite}.d1{animation-delay:.2s}.d2{animation-delay:.45s}.d3{animation-delay:.7s}
.ml-rise{animation:ml-rise 1.9s ease-in infinite}.ml-rise.d1{animation-delay:.5s}.ml-rise.d2{animation-delay:1s}.ml-rise.d3{animation-delay:1.4s}
.ml-steam{transform-box:fill-box;transform-origin:center;animation:ml-steam 2.2s ease-out infinite}.ml-steam.d1{animation-delay:.7s}.ml-steam.d2{animation-delay:1.4s}
.ml-wave{animation:ml-wave .9s linear infinite}
.ml-flow{animation:ml-flow .8s linear infinite}
.ml-slosh{animation:ml-slosh 1.4s ease-in-out infinite alternate}
.ml-arm{transform-box:view-box;transform-origin:560px 22px;animation:ml-arm 1.6s ease-in-out infinite alternate}
.ml-lever{transform-box:view-box;transform-origin:553px 330px;animation:ml-lever 2.4s ease-in-out infinite}
.ml-zap{animation:ml-zap 1.2s steps(1,end) infinite}.ml-zap.z2{animation-delay:.4s}.ml-zap.z3{animation-delay:.8s}
.ml-belt{animation:ml-belt 3.6s linear infinite}
}
@keyframes ml-spin{to{transform:rotate(360deg)}}
@keyframes ml-blink{50%{opacity:.2}}
@keyframes ml-rise{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-150px);opacity:.1}}
@keyframes ml-steam{0%{transform:translateY(0) scale(.6);opacity:.9}100%{transform:translateY(-60px) scale(1.6);opacity:0}}
@keyframes ml-wave{to{transform:translateX(-90px)}}
@keyframes ml-flow{to{stroke-dashoffset:-40}}
@keyframes ml-slosh{to{transform:translateX(-30px)}}
@keyframes ml-arm{from{transform:rotate(-16deg)}to{transform:rotate(18deg)}}
@keyframes ml-lever{0%,60%,100%{transform:rotate(0)}70%,90%{transform:rotate(-40deg)}}
/* Each bolt shows once per 1.2 s: well under the 3-flashes-per-second safety limit. */
@keyframes ml-zap{0%,65%{opacity:0}66%,80%{opacity:1}81%,100%{opacity:0}}
@keyframes ml-belt{to{transform:translateX(-440px)}}
.access-no-motion .mega-lab *{animation:none!important}
.access-calm .mega-lab{box-shadow:none}
.access-contrast .mega-lab{display:none}
@media(max-width:860px){.studio.page-tools .exhibition-opening{grid-template-columns:minmax(0,1fr)}.mega-lab{box-shadow:6px 6px 0 #10151f}}

/* Hall of lab legends: computing history as lab machines. */
.lab-legends{margin:10px 0 44px;padding:26px 24px 30px;background:#241d3f;border:5px solid #10151f;border-radius:14px;box-shadow:10px 10px 0 #10151f;color:#f3f0e8;
  background-image:linear-gradient(#ffffff0d 2px,transparent 2px),linear-gradient(90deg,#ffffff0d 2px,transparent 2px);background-size:40px 40px}
.lab-legends .lg-tag{margin:0;font:700 12px/1.3 Consolas,monospace;letter-spacing:.16em;color:#c6f15b}
.lab-legends h2{margin:6px 0 6px;color:#fff;font-family:Impact,'Arial Narrow',sans-serif;text-transform:uppercase;font-size:clamp(30px,4.4vw,48px);line-height:1}
.lab-legends .lg-lead{margin:0 0 22px;max-width:62ch;color:#dfe6ef;font-size:17px}
.lg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.lg-card{display:flex;flex-direction:column;background:#f3f0e8;color:#10151f;border:4px solid #10151f;border-radius:12px;box-shadow:6px 6px 0 #10151f;overflow:hidden}
.lg-machine{background:#10151f;border-bottom:4px solid #10151f}
.lg-machine svg{display:block;width:100%;height:auto}
.lg-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.lg-id{display:flex;align-items:center;gap:10px;margin:0}
.lg-id .lg-badge{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:3px solid #10151f;background:var(--lg,#ffd23f);font:900 15px/1 Consolas,monospace}
.lg-id strong{display:block;font-size:20px;line-height:1.1}
.lg-id small{display:block;font:700 12px/1.3 Consolas,monospace;color:#3d4658}
.lg-card h3{margin:0;font-size:15px;font-family:Consolas,monospace;letter-spacing:.06em;text-transform:uppercase;color:#6a2c8c}
.lg-card p{margin:0;font-size:15px;line-height:1.5}
.lg-card .lg-now{margin-top:auto;padding:8px 10px;background:#10151f;color:#c6f15b;border-radius:8px;font-size:14px}
.lg-card .lg-now b{color:#ffd23f}
@media(prefers-reduced-motion:no-preference){
.lg-gear{transform-box:fill-box;transform-origin:center;animation:ml-spin 3s linear infinite}.lg-gear.rev{animation-direction:reverse}.lg-gear.fast{animation-duration:1.6s}
.lg-card-fly{animation:lg-card 2.4s ease-in-out infinite}
.lg-note{animation:lg-note 2.4s ease-out infinite}
.lg-tape{animation:lg-tape 3s steps(6,end) infinite}
.lg-read{animation:ml-blink 1s steps(2,end) infinite}
}
@keyframes lg-card{0%,20%{transform:translateX(0)}60%,100%{transform:translateX(96px)}}
@keyframes lg-note{0%{transform:translate(0,0);opacity:0}30%{opacity:1}100%{transform:translate(18px,-46px);opacity:0}}
@keyframes lg-tape{to{transform:translateX(-240px)}}
.access-no-motion .lab-legends *{animation:none!important}
@media(max-width:860px){.lg-grid{grid-template-columns:minmax(0,1fr)}.lab-legends{padding:20px 14px 22px;box-shadow:6px 6px 0 #10151f}}
.studio .lab-legends .lg-card p,.studio .lab-legends .lg-id strong{color:#10151f}
.studio .lab-legends .lg-id small{color:#3d4658}
.studio .lab-legends .lg-card h3{color:#6a2c8c}
.studio .lab-legends .lg-card p.lg-now{color:#c6f15b}
.studio .lab-legends .lg-card p.lg-now b{color:#ffd23f}
.studio .lab-legends .lg-lead{color:#dfe6ef}
