/* =====================================================================
   Loading overlay ทั้งเว็บ — คู่กับ system/a_loading.php + assets/js/loading.js
   - พื้นหลังเบลอเล็กน้อย (--ld-blur ตั้งจากหลังบ้าน) ใช้สีพื้นหลังตามธีม (--bg)
   - อยู่เหนือ skeleton (z-index 9999) · แสดงตั้งแต่ paint แรก · ซ่อนด้วย JS หลังหน้าโหลดเสร็จ
   - failsafe: ถ้า JS ไม่ทำงาน .is-boot จะจางหายเองด้วย CSS ภายใน 15 วินาที
   ===================================================================== */
.ld-overlay{
  --ld-blur:4px;--ld-color:#fff;
  position:fixed;inset:0;z-index:10000;display:grid;place-items:center;
  background:rgba(7,10,22,.42);
  background:color-mix(in srgb,var(--bg,#0b0b0f) 45%,transparent);
  -webkit-backdrop-filter:blur(var(--ld-blur));backdrop-filter:blur(var(--ld-blur));
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .25s ease,visibility 0s linear .25s;
}
.ld-overlay.is-active{opacity:1;visibility:visible;pointer-events:auto;cursor:progress;transition:opacity .15s ease}
.ld-overlay.is-test{cursor:pointer}
.ld-overlay.is-boot{animation:ld-failsafe 0s linear 15s forwards}
@keyframes ld-failsafe{to{opacity:0;visibility:hidden;pointer-events:none}}

.ld-stage{display:grid;place-items:center}
.ld-gif{display:block;width:auto;max-width:70vw;object-fit:contain;filter:drop-shadow(0 8px 24px rgba(0,0,0,.45))}

/* ---------- Tri-Ring (CSS ล้วน) ---------- */
.ld-ring{position:relative;width:45px;height:45px;animation:ld-ro1 8s linear infinite}
.ld-ring i{position:absolute;inset:0}
.ld-ring i::after{content:'';position:absolute;inset:0;border-radius:50%;border-left:8px solid var(--ld-color,#fff);animation:ld-ro2 .75s linear infinite}
.ld-ring i:nth-child(1){transform:rotate(0deg)}
.ld-ring i:nth-child(2){transform:rotate(120deg)}
.ld-ring i:nth-child(3){transform:rotate(240deg)}
@keyframes ld-ro1{to{transform:rotate(360deg)}}
@keyframes ld-ro2{from{transform:skewX(60deg) rotate(0deg)}to{transform:skewX(60deg) rotate(360deg)}}

@media(prefers-reduced-motion:reduce){.ld-overlay,.ld-overlay.is-active{transition:none}}
