*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--bg);
}

body {
  margin: 0;
  min-width: 320px;
  font-family: var(--font);
  color: var(--white);
  background: var(--bg);
  overflow-x: hidden;
}

body.is-locked {
  overflow: hidden;
}

img,
canvas,
svg {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input {
  font: inherit;
}

button {
  border: 0;
  cursor: pointer;
}

.container {
  width: var(--container);
  margin-inline: auto;
}

.narrow {
  max-width: 860px;
}

.section {
  position: relative;
  padding-block: var(--section-y);
}

.split {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(32px, 6vw, 88px);
  align-items: start;
}

.section-heading {
  display: grid;
  gap: 16px;
  max-width: 760px;
  margin-bottom: clamp(32px, 5vw, 64px);
}

.section-heading--sticky {
  position: sticky;
  top: 120px;
  margin-bottom: 0;
}

.section-heading h2,
.discord-panel h2,
.trailer-copy h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 4.6rem);
  line-height: 1.12;
  letter-spacing: 0;
}

.section-heading p,
.hero-copy,
.discord-panel p,
.footer p {
  margin: 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.18rem);
  line-height: 2;
}

.world-bg,
.particle-canvas,
.cursor-light {
  position: fixed;
  inset: 0;
  pointer-events: none;
}

.world-bg {
  z-index: -5;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 12%, rgba(103, 255, 179, .14), transparent 30%),
    radial-gradient(circle at 18% 28%, rgba(82, 168, 255, .13), transparent 32%),
    linear-gradient(180deg, #060816 0%, #080b19 48%, #050611 100%);
}

.particle-canvas {
  z-index: -2;
  opacity: .78;
}

.cursor-light {
  z-index: -1;
  background: radial-gradient(circle 240px at var(--mx, 50%) var(--my, 40%), rgba(103, 255, 179, .11), transparent 60%);
  mix-blend-mode: screen;
}

.aurora,
.grid-layer,
.noise-layer,
.stars-layer,
.fog-layer {
  position: absolute;
  inset: -20%;
}

.aurora {
  filter: blur(48px);
  opacity: .6;
  transform-origin: center;
}

.aurora--one {
  background: conic-gradient(from 90deg, transparent, rgba(103, 255, 179, .26), transparent, rgba(139, 92, 246, .18), transparent);
}

.aurora--two {
  background: radial-gradient(ellipse at 28% 70%, rgba(82, 168, 255, .2), transparent 40%);
}

.grid-layer {
  opacity: .16;
  background-image:
    linear-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .08) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(circle at center, black, transparent 72%);
}

.noise-layer {
  opacity: .11;
  background-image:
    radial-gradient(circle at 24% 18%, rgba(255,255,255,.9) 0 1px, transparent 1px),
    radial-gradient(circle at 72% 64%, rgba(255,255,255,.7) 0 1px, transparent 1px);
  background-size: 34px 34px, 47px 47px;
}

.stars-layer {
  opacity: .44;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.9) 0 1px, transparent 1.6px),
    radial-gradient(circle, rgba(103,255,179,.8) 0 1px, transparent 1.4px);
  background-position: 0 0, 24px 16px;
  background-size: 96px 96px, 132px 132px;
}

.fog-layer {
  opacity: .42;
  background: linear-gradient(100deg, transparent 8%, rgba(255,255,255,.045) 32%, transparent 56%, rgba(82,168,255,.045) 78%, transparent);
  filter: blur(28px);
}
