.vload{position:fixed;inset:0;z-index:999;background:radial-gradient(70% 60%,#0d1413,#050706 70%);display:grid;place-items:center;overflow:hidden;transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}.vload.is-done{opacity:0;transform:scale(1.04);pointer-events:none}.vload-grid{position:absolute;inset:-10%;background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(50% 50%,black 0%,transparent 75%);opacity:.5;animation:30s linear 0s infinite normal none running vload-drift}.vload-glow{position:absolute;left:50%;top:50%;width:60vmin;height:60vmin;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--accent-soft) 0%,transparent 60%);filter:blur(20px);animation:3s ease-in-out 0s infinite normal none running vload-pulse}.vload-stage{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:38px;width:min(520px,86vw)}.vload-logo{width:80px;height:72px;filter:drop-shadow(0 0 24px var(--accent-line))}.vload-logo path{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}.vload-logo .vlp-1{stroke-dasharray:260;stroke-dashoffset:260;animation:1.4s cubic-bezier(.6,.05,.2,1) 0s 1 normal forwards running vload-draw,1.2s ease-out 1.4s 1 normal forwards running vload-fill}.vload-logo .vlp-2{stroke-dasharray:230;stroke-dashoffset:230;animation:1.4s cubic-bezier(.6,.05,.2,1) .25s 1 normal forwards running vload-draw,1.2s ease-out 1.6s 1 normal forwards running vload-fill}.vload-title{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,4vw,44px);letter-spacing:.32em;color:var(--ink);text-indent:.32em;opacity:0;animation:.6s ease-out .4s 1 normal forwards running vload-fade-in}.vload-title span{display:inline-block;opacity:0;transform:translateY(8px);animation:.5s cubic-bezier(.22,1,.36,1) 0s 1 normal forwards running vload-letter}.vload-bar-wrap{width:100%;display:flex;flex-direction:column;gap:12px;opacity:0;animation:.6s ease-out .8s 1 normal forwards running vload-fade-in}.vload-bar-meta{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--ink-2)}.vload-bar-pct{color:var(--accent)}.vload-bar{position:relative;height:2px;background:#ffffff0f;border-radius:2px;overflow:hidden}.vload-bar-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--accent-line) 0%,var(--accent) 70%,var(--accent) 100%);box-shadow:0 0 12px var(--accent);transition:width .18s linear}.vload-bar-fill:after{content:"";position:absolute;right:0;top:0;bottom:0;width:40px;background:linear-gradient(90deg,transparent,var(--accent));filter:blur(8px);opacity:.7}.vload-log{width:100%;font-family:var(--font-mono);font-size:11px;line-height:1.85;color:var(--ink-2);letter-spacing:.04em;min-height:88px;opacity:0;animation:.6s ease-out 1s 1 normal forwards running vload-fade-in}.vload-log-line{display:flex;gap:10px;opacity:0;animation:.4s ease-out 0s 1 normal forwards running vload-log-in}.vload-log-line .ll-time{color:var(--ink-3)}.vload-log-line .ll-tag{color:var(--accent);min-width:50px}.vload-log-line .ll-msg{color:var(--ink-2);flex:1 1 0%}.vload-log-line .ll-ok{color:var(--accent);font-weight:500}.vload-corner{position:absolute;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;color:var(--ink-3);opacity:0;animation:.8s ease-out 1.2s 1 normal forwards running vload-fade-in}.vload-corner.tl{top:28px;left:28px}.vload-corner.tr{top:28px;right:28px;text-align:right}.vload-corner.bl{bottom:28px;left:28px}.vload-corner.br{bottom:28px;right:28px;text-align:right}.vload-corner .vc-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);margin-right:8px;vertical-align:middle;animation:1.4s ease-in-out 0s infinite normal none running vload-pulse-dot}.vload-scan{position:absolute;left:0;right:0;height:80px;background:linear-gradient(180deg,transparent,var(--accent-soft) 40%,transparent);filter:blur(2px);opacity:.7;pointer-events:none;animation:2.6s ease-in-out 0s infinite normal none running vload-scan}[data-theme=light] .vload{background:radial-gradient(70% 60%,#f6f4ee,#e8e4d8 70%)}[data-theme=light] .vload-grid{background-image:linear-gradient(rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.06) 1px,transparent 1px);opacity:.7}[data-theme=light] .vload-glow{background:radial-gradient(circle,var(--accent-soft) 0%,transparent 60%);opacity:.85}[data-theme=light] .vload-scan{background:linear-gradient(transparent,rgba(0,0,0,.04),transparent)}[data-theme=light] .vload-bar{background:#00000014}[data-theme=light] .vload-logo path{filter:none}[data-theme=light] .vload-logo{filter:drop-shadow(rgba(0,0,0,.08) 0px 0px 18px)}[data-theme=light] .vload-bar-fill:after{filter:blur(8px);opacity:.5}@media(prefers-reduced-motion:reduce){.vload-grid,.vload-glow,.vload-scan,.vload-logo .vlp-1,.vload-logo .vlp-2{animation:auto ease 0s 1 normal none running none}.vload-logo path{fill:var(--accent);stroke-dashoffset:0!important}}@media(max-width:700px){.vload-corner{font-size:8.5px;padding:12px 14px}.vload-title{font-size:clamp(22px,7vw,36px);letter-spacing:.18em;text-indent:.18em;white-space:nowrap}.vload-log,.vload-bar-meta{font-size:9px}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes vload-draw{to{stroke-dashoffset:0}}@keyframes vload-drift{0%{transform:translate(0)}to{transform:translate(60px,60px)}}@keyframes vload-fade-in{to{opacity:1}}@keyframes vload-fill{to{fill:var(--accent)}}@keyframes vload-letter{to{opacity:1;transform:translateY(0)}}@keyframes vload-log-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@keyframes vload-pulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}}@keyframes vload-pulse-dot{0%,to{opacity:1}50%{opacity:.35}}@keyframes vload-scan{0%{top:-10%;opacity:0}20%{opacity:.6}80%{opacity:.6}to{top:110%;opacity:0}}html:not(.js) .vload{display:none}.vload[hidden]{display:none}@media(prefers-reduced-motion:reduce){.vload{display:none!important}}html.vload-on,html.vload-on body{overflow:hidden}
