/* Scoped to the loader; the exhibition keeps its existing palette. */
.loading.loading-assembly { background:#080808; color:#fff; gap:18px; padding:28px; text-align:center; }
.loading-assembly .loading-assembly-logo { display:block; width:min(248px,64vw); height:auto; margin:0 0 24px; overflow:visible; animation:assembly-breathe 3.6s ease-in-out 2.2s infinite; }
.loading-assembly-logo path { stroke-dasharray:1; stroke-dashoffset:1; animation:assembly-draw 650ms cubic-bezier(.2,.65,.3,1) var(--edge-delay) forwards; }
.loading.loading-assembly strong { color:#fff; font-size:13px; font-weight:500; letter-spacing:.3em; }
.loading.loading-assembly span { color:#bdbdbd; font-size:11px; letter-spacing:.12em; line-height:1.8; }
.loading.loading-assembly .loading-track { width:120px; height:1px; margin-top:8px; background:#333; overflow:hidden; }
.loading.loading-assembly .loading-track i { display:block; height:1px; background:#fff; }
.loading.loading-assembly .loading-track.is-known i { animation:none; }
.loading.loading-assembly .loading-track:not(.is-known) i { width:38%; animation:assembly-scan 1.4s linear infinite; }
.loading.loading-assembly small { height:12px; font-size:9px; letter-spacing:.12em; color:#999; font-variant-numeric:tabular-nums; }
@keyframes assembly-draw { to { stroke-dashoffset:0; } }
@keyframes assembly-breathe { 0%,100% { opacity:1; } 50% { opacity:.7; } }
@keyframes assembly-scan { from { transform:translateX(-100%); } to { transform:translateX(365%); } }
@media (max-height:460px) { .loading-assembly .loading-assembly-logo { width:150px; margin-bottom:8px; } .loading.loading-assembly { gap:10px; } }
@media (prefers-reduced-motion:reduce) { .loading-assembly .loading-assembly-logo,.loading-assembly-logo path,.loading.loading-assembly .loading-track i { animation:none; } .loading-assembly-logo path { stroke-dashoffset:0; } .loading.loading-assembly .loading-track:not(.is-known) i { width:100%; opacity:.5; } }
