/* ============================================================
   Reset leve + tipografia base + defaults
   ============================================================ */

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

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
}

body {
  margin: 0;
  padding: 0;
  min-height: 100dvh;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--font-body);
  font-size: var(--size-body);
  line-height: var(--lh-body);
  font-weight: 500;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Fundo com gradiente sutil que sugere "noite estrelada" sem gritar */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  /* Camadas, de cima pra baixo: brilhos da marca → véu escuro → foto da galáxia.
     O véu garante a leitura; ajuste os dois valores de opacidade (.78/.88)
     para mostrar mais ou menos a imagem. */
  background:
    radial-gradient(ellipse at 20% -10%, rgba(200, 111, 165, .10), transparent 55%),
    radial-gradient(ellipse at 80% 110%, rgba(122, 36, 56, .18), transparent 55%),
    radial-gradient(ellipse at 50% 50%, rgba(212, 160, 86, .04), transparent 70%),
    linear-gradient(rgba(14, 8, 25, .86), rgba(14, 8, 25, .93)),
    url('../assets/img/fundo-galaxia.jpg') center / cover no-repeat;
  pointer-events: none;

}

/* Céu animado (gerado por js/starfield.js) — fica atrás de tudo.
   As névoas usam as cores da marca; o canvas desenha as estrelas. */
.sky-fx {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
}

.sky-fx__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.sky-fx__nebula {
  position: absolute;
  border-radius: 50%;
  mix-blend-mode: screen;
  will-change: transform;
}

.sky-fx__nebula--violet {
  width: 72%;
  height: 72%;
  left: 5%;
  top: 2%;
  max-width: 760px;
  max-height: 760px;
  background: radial-gradient(ellipse at 35% 40%,
      rgba(140, 90, 255, .22) 0%,
      rgba(95, 60, 210, .09) 32%,
      rgba(20, 10, 50, 0) 72%);
  filter: blur(42px);
}

.sky-fx__nebula--magenta {
  width: 64%;
  height: 64%;
  left: 32%;
  top: 32%;
  max-width: 700px;
  max-height: 700px;
  background: radial-gradient(ellipse at 50% 50%,
      rgba(200, 111, 165, .17) 0%,
      rgba(122, 36, 56, .07) 38%,
      rgba(10, 20, 60, 0) 70%);
  filter: blur(46px);
}

img,
svg,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease);
}

a:hover {
  color: var(--gold);
}

button {
  font: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  color: inherit;
  padding: 0;
}

ul,
ol {
  padding: 0;
  margin: 0;
  list-style: none;
}

h1,
h2,
h3,
h4 {
  font-family: var(--font-display);
  font-weight: var(--display-weight, 400);
  line-height: var(--lh-heading);
  letter-spacing: var(--track-tight);
  margin: 0;
  color: var(--cream);
}

h1 {
  font-size: var(--size-hero);
  line-height: var(--lh-tight);
}

h2 {
  font-size: var(--size-h2);
}

h3 {
  font-size: var(--size-h3);
}

p {
  margin: 0;
}

p+p {
  margin-top: 1em;
}

strong {
  font-weight: 700;
  color: var(--cream);
}

.script {
  font-family: var(--font-script);
  font-weight: 400;
}

.serif {
  font-family: var(--font-display);
}

.gold {
  color: var(--gold);
}

.magenta {
  color: var(--magenta);
}

.mute {
  color: var(--cream-mute);
}

.eyebrow {
  font-family: var(--font-body);
  font-size: var(--size-micro);
  letter-spacing: var(--track-eyebrow);
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: .6em;
}

.eyebrow::before {
  content: '✦';
  color: var(--gold);
  font-size: .9em;
}

::selection {
  background: var(--magenta);
  color: var(--ink);
}

:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
  border-radius: 3px;
}

/* Utilitário: esconder visualmente mas manter acessível */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}