*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overscroll-behavior: none;
}

html, body {
  height: 100%;
  overflow-x: hidden;
  overscroll-behavior: none;
  background: var(--black);
  color: var(--text);
  font-family: 'Inter', -apple-system, 'Helvetica Neue', Arial, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .font-cinzel {
  font-family: 'Cinzel', Georgia, 'Times New Roman', serif;
  font-weight: 500;
}

#bg-photo {
  position: fixed; inset: 0; z-index: 0;
  width: 100vw; height: 100vh;
  background:
    linear-gradient(to bottom,
      rgba(8,8,8,.82) 0%,
      rgba(8,8,8,.58) 40%,
      rgba(8,8,8,.85) 100%),
    url('../assets/residence-kzn.png') center / cover no-repeat;
}
#bg-glow {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  width: 100vw; height: 100vh;
  background:
    radial-gradient(ellipse 700px 450px at 20% 15%, rgba(102,217,255,.06), transparent),
    radial-gradient(ellipse 500px 350px at 80% 80%, rgba(201,168,106,.05), transparent);
}
#bg-tech {
  display: none;
}
#bg-scan {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  width: 100vw; height: 100vh;
  background: repeating-linear-gradient(
    0deg, transparent, transparent 3px,
    rgba(0,0,0,.025) 3px, rgba(0,0,0,.025) 4px
  );
}

#page {
  position: relative; z-index: 1;
  display: flex; flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}

#main {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
#main.centered { justify-content: center; }
