/* The opening is a readiness indicator, never a download-all-videos gate. */
.page-loader {
  position:fixed;inset:0;z-index:10000;display:grid;place-items:center;
  margin:0;padding:24px;background:#fff;color:#202823;
  animation:loader-safety-release 0s 10s forwards;
}
.page-loader[hidden] { display:none!important; }
.page-loader__content { width:min(320px,100%);display:flex;flex-direction:column;align-items:center;text-align:center; }
.page-loader__seal { position:relative;width:156px;height:156px;flex:none; }
.page-loader__seal img { position:absolute;inset:0;display:block;width:100%;height:100%; }
.page-loader__ring { transform-origin:50% 50%;animation:loader-turn 10s linear infinite; }
.page-loader__progress { width:180px;max-width:100%;margin-top:36px; }
.page-loader__track { height:2px;background:#e9ece8;overflow:hidden; }
.page-loader__fill { display:block;width:0;height:100%;background:#202823;transition:width 160ms ease-out; }
.page-loader__caption { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font:9px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.075em;text-transform:uppercase; }
.page-loader__status { min-height:2.8em;max-width:290px;margin:20px 0 0;color:#727a73;font:11px/1.6 system-ui,sans-serif; }
.page-loader__skip { position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);min-height:44px;padding:10px 16px;border:0;background:none;color:#68726a;font:11px/1.5 system-ui,sans-serif;text-decoration:underline;text-underline-offset:4px;cursor:pointer; }
.page-loader__skip:focus-visible { outline:2px solid #202823;outline-offset:3px;border-radius:4px; }
.page-loader[data-loader-state="error"] .page-loader__status,
.page-loader[data-loader-state="delayed"] .page-loader__status { color:#202823; }
.page-loader[data-loader-state="closed"] { display:none; }
@keyframes loader-turn { to { transform:rotate(360deg); } }
/* Independent of JavaScript: a failed entry cannot cover the page indefinitely. */
@keyframes loader-safety-release { to { visibility:hidden;pointer-events:none; } }
@media(max-width:600px) { .page-loader__seal { width:140px;height:140px; }.page-loader__progress { width:164px;margin-top:32px; } }
@media(prefers-reduced-motion:reduce) { .page-loader__ring { animation:none; }.page-loader__fill { transition:none; } }
