:root {
  --bg: #000;
  --text: #fff;
  --grid: rgba(255, 255, 255, 0.045);
  --glow: rgba(255, 255, 255, 0.9);
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: "Fira Code", monospace;
  overflow: hidden;
  position: relative;
}

/* ---------------- Grid ---------------- */
#grid {
  position: fixed;

  left: 50%;
  top: 50%;

  width: 100vw;
  height: 100vh;

  transform: translate(-50%, -50%) scale(2);

  transform-origin: center center;

  z-index: 0;
  pointer-events: none;
  opacity: 0.22;
}

/* ---------------- Noise ---------------- */

.bg-noise {
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.025;
  z-index: 1;

  background-image: radial-gradient(#fff 1px, transparent 1px);

  background-size: 7px 7px;
}

/* ---------------- Spotlight ---------------- */
.spotlight {
  position: fixed;

  left: 50%;
  top: 50%;

  width: 900px;
  height: 900px;

  margin-left: -450px;
  margin-top: -450px;

  border-radius: 50%;

  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.08) 0%,
    rgba(255, 255, 255, 0.03) 35%,
    rgba(255, 255, 255, 0.015) 55%,
    transparent 75%
  );

  filter: blur(60px);

  pointer-events: none;

  z-index: 2;
}
/* ---------------- Layout ---------------- */

.container {
  position: relative;

  z-index: 10;

  width: 100%;
  height: 100%;

  display: flex;

  justify-content: center;
  align-items: center;

  padding: 30px;
}

.hero {
  position: relative;

  text-align: center;
}

/* ---------------- Logo ---------------- */

.logo-wrap {
  width: min(82vw, 430px);
  margin: auto;
}

.logo {
  width: 100%;

  display: block;

  user-select: none;
  -webkit-user-drag: none;

  filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0));
}

/* ---------------- Title ---------------- */

.title {
  margin-top: 42px;

  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;

  gap: 0.08em;

  font-size: clamp(18px, 2.8vw, 34px);

  letter-spacing: 0.22em;

  font-weight: 400;

  position: relative;

  user-select: none;
}

.space {
  width: 0.7em;
}

.title span {
  display: inline-block;

  color: rgba(255, 255, 255, 0.22);

  transition:
    color 0.25s,
    text-shadow 0.25s,
    transform 0.25s;
}

/* ---------------- Scanner ---------------- */

.scanner {
  position: absolute;

  left: -15%;

  top: calc(100% - 24px);

  width: 28%;

  height: 38px;

  border-radius: 999px;

  pointer-events: none;

  opacity: 0.95;

  filter: blur(18px);

  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.18),
    rgba(255, 255, 255, 1),
    rgba(255, 255, 255, 0.18),
    transparent
  );
}

/* ---------------- Responsive ---------------- */

@media (max-width: 768px) {
  .bg-grid {
    background-size: 34px 34px;
  }

  .scanner {
    height: 28px;
  }

  .title {
    letter-spacing: 0.14em;
  }
}
