/* bubun / Home first-visit loading logo. Separate from all existing menu CSS. */
.bubun-logo-startup { display: none; }
html.bubun-logo-loading { overflow: hidden; }
html.bubun-logo-loading .bubun-logo-startup {
  position: fixed;
  inset: 0;
  z-index: 30000;
  width: 100%;
  height: 100%;
  height: 100dvh;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  pointer-events: auto;
  transition: opacity .55s ease-in-out;
}
html.bubun-logo-loading.bubun-logo-leaving .bubun-logo-startup {
  opacity: 0;
  pointer-events: none;
}
.bubun-loader-logo-wrap {
  width: 70px;
  transform: translateY(-8px);
}
.bubun-loader-logo-svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
  color: #777;
}
.bubun-loader-logo-svg line,
.bubun-loader-logo-svg circle,
.bubun-loader-logo-svg path {
  fill: none;
  stroke: currentColor;
  stroke-width: .75;
  stroke-linecap: butt;
  stroke-miterlimit: 10;
  vector-effect: non-scaling-stroke;
}
.bubun-loader-logo-svg .tracers circle { stroke-width: .85; }

/* Preserve the owner's existing home content fade and menu introduction:
   they start when the loading screen begins fading out, not behind it. */
html.bubun-logo-hold body.bubun-site.home-page .site-logo,
html.bubun-logo-hold body.bubun-site.home-page .home-stage > .center-item,
html.bubun-logo-hold body.bubun-site.home-page #footer,
html.bubun-logo-hold body.bubun-site.home-page .site-menu-segment {
  animation-play-state: paused !important;
}
