.site-loader{position:fixed;inset:0;z-index:10000;background:#203a32;color:#f3ecd6;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(24px,5vw,80px);font-family:Geist,sans-serif;transition:opacity .55s ease,visibility .55s;isolation:isolate}
.site-loader::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 55%,#47615355,transparent 65%)}
.loader-heading,.loader-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:12px;letter-spacing:.08em}
.loader-heading span:last-child{opacity:.55}
.loader-art{position:relative;align-self:center;width:min(48vw,440px);aspect-ratio:1;display:grid;place-items:center}
.loader-orbit{position:absolute;inset:0;border:1px solid #f3ecd61c;border-radius:50%;animation:loader-orbit 12s linear infinite}
.loader-orbit::after{content:"";position:absolute;top:50%;left:-4px;width:8px;height:8px;background:#d9b678;border-radius:50%}
.loader-orbit:nth-child(2){inset:12%;animation-direction:reverse;animation-duration:18s;transform:rotate(90deg)}
.loader-orbit:nth-child(2)::after{width:5px;height:5px;left:-3px;background:#93b5a0}
.loader-mark{width:58%;height:50%;object-fit:contain;filter:brightness(0) invert(93%) sepia(13%) saturate(329%);animation:loader-breathe 3s ease-in-out infinite}
.loader-bottom{width:100%;max-width:640px;align-self:center}
.loader-track{height:2px;margin-bottom:20px;background:#f3ecd624;overflow:hidden}
.loader-progress{height:100%;width:4%;background:#f3ecd6;transition:width .55s cubic-bezier(.2,.8,.2,1);position:relative}
.loader-progress::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#fff8,transparent);animation:loader-sweep 1.6s ease-in-out infinite}
.loader-footer span:last-child{font-variant-numeric:tabular-nums;opacity:.55}
.site-loader[data-leaving]{opacity:0;visibility:hidden;pointer-events:none}
body:has(.site-loader:not([data-leaving])) .masthead{visibility:hidden}
@keyframes loader-orbit{to{rotate:360deg}}
@keyframes loader-breathe{50%{opacity:.7;transform:scale(.975)}}
@keyframes loader-sweep{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-width:700px){.loader-art{width:70vw}.loader-heading{font-size:11px}.site-loader{padding:28px 24px max(32px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.site-loader,.loader-progress{transition:none}.loader-orbit,.loader-mark,.loader-progress::after{animation:none}}
