/*! © 2026 Hoàng Quân (hoangquan14727) — All rights reserved. Unauthorized copying prohibited. */
@keyframes ldrSpin{to{transform:rotate(360deg)}}@keyframes ldrLine{to{opacity:1;transform:translateX(0)}}@keyframes ldrFill{to{width:100%}}@keyframes ldrCount{0%{--ldr-pct:0}to{--ldr-pct:100}}@property --ldr-pct{syntax:"<integer>";initial-value:0;inherits:false}#loader{--ldr-cyan:var(--irid-cyan);--ldr-rgb:82, 237, 255;--ldr-ok:#6effc0;position:fixed;inset:0;z-index:9999;background:var(--bg-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;padding:24px;font-family:var(--hud-mono);transition:opacity .7s ease;overflow:hidden}#loader.fade-out{opacity:0;pointer-events:none}#loader.gone{display:none}#loader .ldr-scan,#loader .ldr-vignette{position:absolute;inset:0;pointer-events:none}#loader .ldr-vignette{z-index:0;background:radial-gradient(circle at 50% 42%,rgba(var(--ldr-rgb),.1),transparent 60%),radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(0,0,0,.55) 100%),repeating-linear-gradient(0deg,rgba(var(--ldr-rgb),.035)0 1px,transparent 1px 46px),repeating-linear-gradient(90deg,rgba(var(--ldr-rgb),.035)0 1px,transparent 1px 46px)}#loader .ldr-scan{z-index:4;mix-blend-mode:screen;opacity:.5;background:repeating-linear-gradient(0deg,rgba(var(--ldr-rgb),.1)0 1px,transparent 1px 3px)}#loader .ldr-stage{position:relative;z-index:2;width:200px;height:200px;display:flex;align-items:center;justify-content:center}#loader .ldr-reticle,#loader .ldr-ring,#loader .ldr-ring::after{position:absolute;inset:0;border-radius:50%}#loader .ldr-ring{border:1.5px dashed rgba(var(--ldr-rgb),.55);box-shadow:inset 0 0 24px rgba(var(--ldr-rgb),.12),0 0 22px rgba(var(--ldr-rgb),.1);animation:ldrSpin 8s linear infinite}#loader .ldr-ring::after{content:"";inset:14px;border:1px solid rgba(var(--ldr-rgb),.18)}#loader .ldr-sweep{position:absolute;inset:6px;border-radius:50%;background:conic-gradient(from 0deg,rgba(var(--ldr-rgb),.45),rgba(var(--ldr-rgb),0) 70deg,transparent 360deg);-webkit-mask:radial-gradient(circle,transparent 38%,#000 39%,#000 99%,transparent 100%);mask:radial-gradient(circle,transparent 38%,#000 39%,#000 99%,transparent 100%);animation:ldrSpin 3.2s linear infinite}#loader .ldr-panel{position:relative;z-index:3;width:118px;height:118px;display:flex;align-items:center;justify-content:center;background:var(--hud-fill);clip-path:polygon(var(--hud-notch)0,100%0,100% calc(100% - var(--hud-notch)),calc(100% - var(--hud-notch)) 100%,0 100%,0 var(--hud-notch));box-shadow:inset 0 0 0 1px rgba(var(--ldr-rgb),.45),inset 0 0 28px rgba(var(--ldr-rgb),.1),0 0 40px rgba(var(--ldr-rgb),.12)}#loader .ldr-panel::before{content:"";position:absolute;inset:7px;pointer-events:none;background:linear-gradient(var(--ldr-cyan),var(--ldr-cyan))0 0/var(--hud-bracket) 1.5px no-repeat,linear-gradient(var(--ldr-cyan),var(--ldr-cyan))0 0/1.5px var(--hud-bracket) no-repeat,linear-gradient(var(--ldr-cyan),var(--ldr-cyan)) 100%0/var(--hud-bracket) 1.5px no-repeat,linear-gradient(var(--ldr-cyan),var(--ldr-cyan)) 100%0/1.5px var(--hud-bracket) no-repeat,linear-gradient(var(--ldr-cyan),var(--ldr-cyan))0 100%/var(--hud-bracket) 1.5px no-repeat,linear-gradient(var(--ldr-cyan),var(--ldr-cyan))0 100%/1.5px var(--hud-bracket) no-repeat,linear-gradient(var(--ldr-cyan),var(--ldr-cyan)) 100% 100%/var(--hud-bracket) 1.5px no-repeat,linear-gradient(var(--ldr-cyan),var(--ldr-cyan)) 100% 100%/1.5px var(--hud-bracket) no-repeat;opacity:.75}#loader .ldr-logo{font-family:var(--hud-display);font-size:2.6rem;font-weight:900;letter-spacing:4px;background:var(--irid-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 10px rgba(var(--ldr-rgb),.35))}#loader .ldr-boot{position:relative;z-index:2;width:320px;max-width:78vw;display:flex;flex-direction:column;gap:5px;font-size:.66rem;letter-spacing:1.5px;color:rgba(var(--ldr-rgb),.85)}#loader .ldr-line{display:flex;align-items:center;gap:8px;margin:0;opacity:0;transform:translateX(-6px);animation:ldrLine .45s ease forwards}#loader .ldr-line:nth-child(1){animation-delay:.3s}#loader .ldr-line:nth-child(2){animation-delay:.7s}#loader .ldr-line:nth-child(3){animation-delay:1.1s}#loader .ldr-line:nth-child(4){animation-delay:1.5s}#loader .ldr-line:nth-child(5){animation-delay:1.9s}#loader .ldr-lbl{white-space:nowrap}#loader .ldr-dot-fill{flex:1;height:1px;align-self:center;background:repeating-linear-gradient(90deg,rgba(var(--ldr-rgb),.4)0 3px,transparent 3px 7px)}#loader .ldr-ok{color:var(--ldr-ok);text-shadow:0 0 8px rgba(110,255,192,.6);letter-spacing:2px}#loader .ldr-await{color:rgba(var(--ldr-rgb),.95)}#loader .ldr-await .ldr-lbl{animation:hudBlink 1.4s steps(1) infinite}#loader .ldr-cursor,#loader .ldr-status-cur{animation:hudBlink 1s steps(1) infinite}#loader .ldr-meter{position:relative;z-index:2;width:320px;max-width:78vw;display:flex;align-items:center;gap:12px}#loader .ldr-bar{flex:1;height:8px;position:relative;background:rgba(var(--ldr-rgb),.1);box-shadow:inset 0 0 0 1px rgba(var(--ldr-rgb),.3);-webkit-mask:repeating-linear-gradient(90deg,#000 0 9px,transparent 9px 12px);mask:repeating-linear-gradient(90deg,#000 0 9px,transparent 9px 12px)}#loader .ldr-fill{position:absolute;inset:0;width:0;background:linear-gradient(90deg,rgba(var(--ldr-rgb),.55),var(--ldr-cyan));box-shadow:0 0 12px rgba(var(--ldr-rgb),.55);animation:ldrFill 2.4s cubic-bezier(.4,0,.1,1) forwards}#loader .ldr-pct{font-family:var(--hud-mono);font-size:.72rem;letter-spacing:1px;color:var(--ldr-cyan);min-width:42px;text-align:right;counter-reset:pct var(--ldr-pct);animation:ldrCount 2.4s cubic-bezier(.4,0,.1,1) forwards}#loader .ldr-pct::after{content:counter(pct)"%"}#loader .ldr-status{position:relative;z-index:2;display:flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:3px;color:rgba(var(--ldr-rgb),.7)}#loader .ldr-led{width:6px;height:6px;border-radius:50%;background:var(--ldr-cyan);box-shadow:0 0 8px rgba(var(--ldr-rgb),.7);animation:hudBlink 1.4s steps(1) infinite}#loader .ldr-led:nth-child(2){animation-delay:.35s}#loader .ldr-led:nth-child(3){animation-delay:.7s}#loader .ldr-status-txt{margin-left:4px}@media (prefers-reduced-motion:reduce){#loader .ldr-await .ldr-lbl,#loader .ldr-cursor,#loader .ldr-led,#loader .ldr-ring,#loader .ldr-status-cur,#loader .ldr-sweep{animation:none}#loader .ldr-sweep{display:none}#loader .ldr-line{opacity:1;transform:none;animation:none}#loader .ldr-fill{width:100%;animation:none}#loader .ldr-pct{--ldr-pct:100;animation:none}}#perf-advisory{z-index:10001;background:rgba(3,1,8,.86)}#perf-advisory .modal-card{max-width:440px;padding:30px 30px 26px;text-align:left}#perf-advisory .eyebrow{margin-bottom:14px}#perf-advisory .eyebrow .led{background:#ff9a3c;box-shadow:0 0 8px #ff9a3c,0 0 14px rgba(255,154,60,.6)}#perf-advisory .modal-title{font-size:1.15rem;margin-bottom:12px;text-align:left}#perf-advisory .perf-desc{font-family:"Inter",sans-serif;font-size:.9rem;line-height:1.6;color:var(--text-secondary);margin:0 0 14px}#perf-advisory .perf-detect{font-family:var(--hud-mono);font-size:.66rem;letter-spacing:1px;color:var(--irid-cyan);opacity:.85;margin:0 0 20px}#perf-advisory .perf-actions{display:flex;gap:12px}#perf-advisory .perf-actions .modal-close{flex:1;padding:12px 10px;font-size:.8rem;text-align:center}#perf-advisory .perf-full{background:rgba(82,237,255,.1);border-color:rgba(82,237,255,.55);color:var(--text-primary)}#perf-advisory .perf-full:hover{color:var(--irid-cyan);box-shadow:0 6px 20px rgba(82,237,255,.35)}#perf-advisory .perf-lite{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.18);color:var(--text-secondary)}#perf-advisory .perf-lite:hover{color:var(--text-primary);box-shadow:0 6px 20px rgba(255,255,255,.12)}#perf-advisory.rec-lite .perf-lite,#perf-advisory:not(.rec-lite) .perf-full{box-shadow:inset 0 0 0 1px rgba(82,237,255,.6),0 0 18px rgba(82,237,255,.25)}#perf-advisory .perf-hint{font-family:var(--hud-mono);font-size:.6rem;letter-spacing:.5px;color:var(--text-muted);margin:16px 0 0;text-align:center}@media (max-width:480px){#perf-advisory .modal-card{max-width:92vw;padding:24px 20px}#perf-advisory .perf-actions{flex-direction:column}}