/* Only transform/opacity animate: keep loading motion independent of paint work. */
.loading.loading-assembly { background:#080808; color:#fff; gap:18px; padding:28px; text-align:center; }
.loading-assembly .loading-assembly-logo { --logo-size:min(248px,64vw); position:relative; display:block; width:var(--logo-size); aspect-ratio:432.9/309.6; height:auto; margin:0 0 24px; animation:assembly-breathe 3.6s ease-in-out 2.2s infinite; will-change:opacity; }
.loading-assembly-edge { position:absolute; transform-origin:0 0; }
.loading-assembly-edge i { display:block; height:calc(var(--logo-size)*var(--edge-width)/432.9); margin-top:calc(var(--logo-size)*var(--edge-width)/-865.8); background:#fff; border-radius:999px; transform:scaleX(0); transform-origin:left center; animation:assembly-draw 650ms cubic-bezier(.2,.65,.3,1) var(--edge-delay) forwards; will-change:transform; }
.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-assembly .loading-activity { width:120px; height:1px; margin-top:8px; background:#333; overflow:hidden; }
.loading-activity i { display:block; width:38%; height:1px; background:#fff; animation:assembly-scan 1.4s linear infinite; will-change:transform; }
.loading.loading-assembly small { min-height:16px; height:auto; font-size:10px; letter-spacing:.08em; color:#999; line-height:1.6; }
@keyframes assembly-draw { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@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 { --logo-size:150px; margin-bottom:8px; } .loading.loading-assembly { gap:10px; } }
@media (prefers-reduced-motion:reduce) { .loading-assembly .loading-assembly-logo,.loading-assembly-edge i,.loading-activity i { animation:none; will-change:auto; } .loading-assembly-edge i { transform:scaleX(1); } .loading-activity i { width:100%; opacity:.5; } }
