/* Splash homepage */
body.is-splash { overflow: hidden; }

.bz-splash {
  position: fixed; inset: 0;
  top: var(--drupal-displace-offset-top, 0);
  display: grid; place-items: center;
  background: radial-gradient(ellipse at 50% 45%, #0b0b12 0%, #000 70%);
  color: #fff;
  font-family: var(--bz-display);
  overflow: hidden;
}

/* Twinkling starfield */
.bz-stars, .bz-stars::after {
  position: absolute; inset: -50%;
  background-image:
    radial-gradient(1px 1px at 20% 30%, #fff8, transparent 60%),
    radial-gradient(1px 1px at 70% 80%, #fff6, transparent 60%),
    radial-gradient(1.5px 1.5px at 40% 70%, #fffa, transparent 60%),
    radial-gradient(1px 1px at 85% 25%, #fff7, transparent 60%),
    radial-gradient(1px 1px at 55% 10%, #fff5, transparent 60%);
  background-size: 260px 260px;
  animation: bz-drift 120s linear infinite;
}
.bz-stars::after { content: ''; inset: 0; background-size: 410px 410px; opacity: .6; animation: bz-twinkle 6s ease-in-out infinite alternate; }

/* Perspective grid floor */
.bz-grid {
  position: absolute; left: -50%; right: -50%; bottom: -10%; height: 55%;
  background-image:
    linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px);
  background-size: 60px 60px;
  transform: perspective(400px) rotateX(70deg);
  transform-origin: center top;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 40%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 40%);
  animation: bz-grid 3s linear infinite;
}

/* Floating wordmark */
.bz-wordmark { position: relative; z-index: 2; text-align: center; animation: bz-hover 5s ease-in-out infinite; }
.bz-title {
  position: relative; margin: 0;
  font-size: clamp(2.6rem, 11vw, 9rem);
  font-weight: 800; letter-spacing: .14em; padding-left: .14em;
  color: #fff;
  text-shadow: 0 0 6px rgba(255,255,255,.9), 0 0 24px rgba(255,255,255,.45), 0 0 70px rgba(160,200,255,.35);
  animation: bz-flicker 7s infinite;
}
.bz-title::before, .bz-title::after {
  content: attr(data-text); position: absolute; inset: 0; padding-left: .14em;
  pointer-events: none; mix-blend-mode: screen; opacity: 0;
}
.bz-title::before { color: #0ff; clip-path: inset(0 0 55% 0); animation: bz-glitch 4s steps(1) infinite; }
.bz-title::after  { color: #f0f; clip-path: inset(55% 0 0 0); animation: bz-glitch 4s steps(1) infinite reverse; }

.bz-shadow {
  width: 60%; height: 14px; margin: 1.6rem auto 0;
  background: radial-gradient(ellipse, rgba(255,255,255,.35), transparent 70%);
  filter: blur(6px);
  animation: bz-shadow 5s ease-in-out infinite;
}

/* CRT scanlines */
.bz-scan {
  position: absolute; inset: 0; pointer-events: none; z-index: 3;
  background: repeating-linear-gradient(to bottom, rgba(255,255,255,.035) 0 1px, transparent 1px 3px);
}

@keyframes bz-hover  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-18px); } }
@keyframes bz-shadow { 0%,100% { transform: scaleX(1); opacity: .9; } 50% { transform: scaleX(.75); opacity: .45; } }
@keyframes bz-grid   { from { background-position: 0 0; } to { background-position: 0 60px; } }
@keyframes bz-drift  { from { transform: translateY(0); } to { transform: translateY(260px); } }
@keyframes bz-twinkle { from { opacity: .2; } to { opacity: .8; } }
@keyframes bz-flicker { 0%,93%,100% { opacity: 1; } 94% { opacity: .75; } 95% { opacity: 1; } 97% { opacity: .85; } }
@keyframes bz-glitch {
  0%,88%,100% { transform: translate(0,0); opacity: 0; }
  89% { transform: translate(-4px,1px); opacity: .7; }
  92% { transform: translate(3px,-1px); opacity: .6; }
  95% { transform: translate(-1px,0); opacity: .4; }
}

@media (prefers-reduced-motion: reduce) {
  .bz-splash *, .bz-splash *::before, .bz-splash *::after { animation: none !important; }
}

/* Logo version of the wordmark (added 2026-11-12) */
.bz-title--logo { letter-spacing: 0; padding-left: 0; text-shadow: none; line-height: 0; font-size: 0; }
.bz-title--logo img {
  display: block; width: min(88vw, 900px); max-height: 62vh; height: auto; object-fit: contain;
  filter: drop-shadow(0 0 6px rgba(255,255,255,.75)) drop-shadow(0 0 24px rgba(255,255,255,.35)) drop-shadow(0 0 60px rgba(160,200,255,.3));
}
/* Glitch layers in the logo's shape */
.bz-title--logo::before, .bz-title--logo::after {
  content: ''; padding-left: 0;
  -webkit-mask: url(../images/logo-white@2x.png) center / contain no-repeat;
          mask: url(../images/logo-white@2x.png) center / contain no-repeat;
}
.bz-title--logo::before { background: #0ff; color: transparent; }
.bz-title--logo::after  { background: #f0f; color: transparent; }

/* "Est." line under the logo (added 2026-11-12) */
.bz-est {
  margin: clamp(.75rem, 2.5vw, 1.5rem) 0 0;
  font-family: var(--bz-display); font-weight: 600;
  font-size: clamp(.8rem, 2.4vw, 1.35rem);
  letter-spacing: .45em; padding-left: .45em; /* keeps spaced text optically centered */
  text-transform: uppercase; color: rgba(255,255,255,.85);
  text-shadow: 0 0 6px rgba(255,255,255,.6), 0 0 18px rgba(160,200,255,.35);
}

/* Contact email under Est. line (added 2026-11-12) */
.bz-contact {
  margin: clamp(.4rem, 1.2vw, .75rem) 0 0;
  font-family: var(--bz-display); font-weight: 500;
  font-size: clamp(.7rem, 1.8vw, 1rem);
  letter-spacing: .2em; padding-left: .2em;
}
.bz-contact a {
  color: rgba(255,255,255,.7); text-decoration: none;
  text-shadow: 0 0 6px rgba(255,255,255,.4), 0 0 14px rgba(160,200,255,.25);
  transition: color .2s, text-shadow .2s;
}
.bz-contact a:hover, .bz-contact a:focus-visible { color: #fff; text-shadow: 0 0 8px rgba(255,255,255,.8), 0 0 20px rgba(160,200,255,.5); outline: none; }
