.page-loader{--loader-bg:#f5f9ff;--loader-card:#ffffff;--loader-ink:#19345c;--loader-muted:#607591;--loader-blue:#1574e9;--loader-gold:#f5ad20;position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 43%,#e5f2ff 0,var(--loader-bg) 58%);color:var(--loader-ink);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}
.page-loader.is-visible{opacity:1;visibility:visible;pointer-events:auto}
.page-loader__content{display:flex;flex-direction:column;align-items:center;text-align:center;transform:translateY(-12px)}
.page-loader__emblem{position:relative;display:grid;place-items:center;width:172px;height:172px;margin-bottom:18px;border-radius:42px;background:var(--loader-card);box-shadow:0 22px 60px #2764a21a,0 0 0 1px #4b82bc12;isolation:isolate}
.page-loader__emblem:before{content:"";position:absolute;inset:19px;border-radius:50%;background:radial-gradient(circle,#e9f5ff 0,transparent 70%);z-index:-1}
.page-loader__emblem img{position:relative;z-index:1;width:120px;height:120px;object-fit:contain;animation:loader-float 2.6s ease-in-out infinite}
.page-loader__orbit{position:absolute;inset:-10px;border:2px solid transparent;border-top-color:var(--loader-blue);border-right-color:var(--loader-gold);border-radius:50%;animation:loader-spin 1.65s linear infinite}
.page-loader__orbit--inner{inset:-3px;border-width:1px;border-top-color:transparent;border-right-color:#54a6f1;border-bottom-color:#54a6f1;opacity:.65;animation-duration:2.6s;animation-direction:reverse}
.page-loader__name{font-size:27px;line-height:1.2;letter-spacing:-.8px;font-weight:800}
.page-loader__name span{color:var(--loader-blue)}
.page-loader__caption{margin-top:7px;color:var(--loader-muted);font-size:13px;letter-spacing:.02em}
.page-loader__progress{width:108px;height:4px;margin-top:25px;border-radius:99px;background:#cfe1f5;overflow:hidden}
.page-loader__progress span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--loader-blue),var(--loader-gold));animation:loader-progress 1.3s ease-in-out infinite alternate}
html:is([data-public-theme="dark"],[data-student-theme="dark"],[data-parent-theme="dark"],[data-teacher-theme="dark"],[data-bs-theme="dark"]) .page-loader{--loader-bg:#101927;--loader-card:#1d2c40;--loader-ink:#edf5ff;--loader-muted:#a9bdd5;--loader-blue:#75b8ff;--loader-gold:#ffca65;background:radial-gradient(circle at 50% 43%,#203953 0,var(--loader-bg) 62%)}
html:is([data-public-theme="dark"],[data-student-theme="dark"],[data-parent-theme="dark"],[data-teacher-theme="dark"],[data-bs-theme="dark"]) .page-loader__emblem{box-shadow:0 24px 70px #02091480,0 0 0 1px #b1d9ff20}
html:is([data-public-theme="dark"],[data-student-theme="dark"],[data-parent-theme="dark"],[data-teacher-theme="dark"],[data-bs-theme="dark"]) .page-loader__emblem:before{background:radial-gradient(circle,#274968 0,transparent 72%)}
html:is([data-public-theme="dark"],[data-student-theme="dark"],[data-parent-theme="dark"],[data-teacher-theme="dark"],[data-bs-theme="dark"]) .page-loader__progress{background:#35516d}
@keyframes loader-spin{to{transform:rotate(360deg)}}
@keyframes loader-float{50%{transform:translateY(-5px)}}
@keyframes loader-progress{to{transform:translateX(140%)}}
@media(prefers-reduced-motion:reduce){.page-loader,.page-loader__emblem img,.page-loader__orbit,.page-loader__progress span{animation:none!important;transition:none!important}}
