/* Shared page loading identity. Invisible unless the early boot script runs. */
.tw-loader {
    --load-bg:#0b101b; --load-ink:#eff3fb; --load-muted:#8290a8;
    --load-line:rgba(151,171,206,.14); --load-accent:#6798ff;
    --load-seal:#101a2b; --load-glow:rgba(65,112,223,.09);
    display:none; position:fixed; inset:0; z-index:1000000;
    place-items:center; background:var(--load-bg); color:var(--load-ink);
    font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    opacity:1; transition:opacity .24s ease,visibility .24s ease;
    isolation:isolate; overflow:hidden; pointer-events:none;
}
html[data-theme="light"] .tw-loader {
    --load-bg:#f7f9fc; --load-ink:#182842; --load-muted:#64748b;
    --load-line:rgba(40,70,118,.12); --load-accent:#315fe2;
    --load-seal:#fff; --load-glow:rgba(56,105,222,.055);
}
.tw-loader::before {
    content:""; position:absolute; inset:0; z-index:-1;
    background:radial-gradient(ellipse at 50% 42%,var(--load-glow),transparent 58%);
}
html.tw-loading .tw-loader {display:grid; pointer-events:auto}
html.tw-loading {overflow:hidden}
.tw-loader.is-leaving {display:grid; opacity:0; visibility:hidden; pointer-events:none!important}
.tw-loader__identity {display:flex; flex-direction:column; align-items:center; padding:32px; transform:translateY(-18px)}
.tw-loader__emblem {display:grid; place-items:center; width:86px; height:86px; margin-bottom:27px}
.tw-loader__seal {display:grid; place-items:center; width:86px; height:86px; border-radius:24px; background:var(--load-seal); border:1px solid var(--load-line); box-shadow:0 12px 38px rgba(5,25,65,.06)}
.tw-loader__seal svg {display:block; width:52px; height:52px}
.tw-loader__name {font-size:27px; line-height:1.3; font-weight:650; letter-spacing:-1.05px}
.tw-loader__name span {font-weight:450}
.tw-loader__caption {margin-top:9px; color:var(--load-muted); font-size:10px; font-weight:500; letter-spacing:2.4px; text-transform:uppercase}
.tw-loader__activity {display:flex; flex-direction:column; align-items:center; margin-top:38px; gap:15px}
.tw-loader__track {display:block; width:154px; height:2px; background:var(--load-line); overflow:hidden; border-radius:2px}
.tw-loader__track span {display:block; width:44%; height:100%; background:var(--load-accent); border-radius:inherit; animation:tw-loader-track 1.8s cubic-bezier(.4,0,.2,1) infinite}
.tw-loader__status {font-size:11px; letter-spacing:.15px; color:var(--load-muted); line-height:1.5}
.tw-loader__footer {position:absolute; bottom:max(28px,env(safe-area-inset-bottom)); left:16px; right:16px; display:flex; align-items:center; justify-content:center; gap:10px; color:var(--load-muted); font-size:8px; font-weight:500; letter-spacing:1.4px}
.tw-loader__footer>span {width:4px; height:4px; border-radius:50%; background:var(--load-accent); opacity:.7}
.tw-loader__footer i {width:1px; height:9px; background:var(--load-line); margin:0 3px}
.tw-page-progress {display:none; position:fixed; inset:0 0 auto; height:2px; overflow:hidden; z-index:1000001; pointer-events:none; background:rgba(70,117,225,.1)}
.tw-page-progress>span {display:block; width:35%; height:100%; background:#4c83f5; animation:tw-loader-track 1.25s ease-in-out infinite}
html.tw-navigating .tw-page-progress {display:block}
@keyframes tw-loader-track {0% {transform:translateX(-120%)} 100% {transform:translateX(350%)}}
@media(max-width:380px) {.tw-loader__name{font-size:25px}.tw-loader__caption{font-size:9px;letter-spacing:2px}}
@media(prefers-reduced-motion:reduce) {
    .tw-loader,.tw-loader__track span,.tw-page-progress>span {animation:none;transition:none}
    .tw-loader__track span,.tw-page-progress>span {transform:none;width:55%}
}
