/* ETERNAL site-wide base layer.

   1. NO SCROLLBARS — Father's standing order (2026-09-20): "no scrollbars,
      site-wide". a2-global-v2.css enforced it, but nine panel pages never
      loaded that sheet and fell back to the browser default — a wide light
      grey slab that reads as a foreign object on this dark panel. This is the
      rule the whole site follows now.

   2. The page transition layer — the loading bar that covers the account
      read, and the fade that hands one page to the next. The bar is not
      decoration: it is the cover for the /me read, so the first frame the
      user sees is already the real account. */

/* ── no scrollbars, site-wide (Father 2026-09-20) ───────────────────────── */
html,
body {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
*,
*::before,
*::after {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
*::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
*::-webkit-scrollbar-button {
  display: none;
  height: 0;
  width: 0;
}
*::-webkit-scrollbar-corner {
  background: transparent;
}


body {
  transition: opacity 240ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
html.et-boot,
html.et-leave {
  background: #0b0a14; /* the site's canvas — never a white flash behind a dark page */
}
html.et-boot body,
html.et-leave body {
  opacity: 0;
}
html.et-leave body {
  transition: opacity 150ms ease-in;
}

/* ── the bar ────────────────────────────────────────────────────────────── */
.et-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  z-index: 2147483000;
  background: #ffffff12;
  opacity: 0;
  transition: opacity 220ms ease;
  pointer-events: none;
  contain: strict;
}
.et-bar[data-on="1"] {
  opacity: 1;
}
.et-bar__fill {
  display: block;
  height: 100%;
  width: 0;
  background: #7c3aed;
  position: relative;
  transition: width 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
/* a lighter cap on the leading edge so the direction of travel is readable */
.et-bar__fill::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 26px;
  background: #a78bfa;
}

@media (prefers-reduced-motion: reduce) {
  body,
  html.et-leave body {
    transition: none;
  }
  .et-bar,
  .et-bar__fill {
    transition: none;
  }
}
