*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg-0);
  color:var(--text);
  font-family:var(--font-body);
  min-height:100vh;
  position:relative;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;margin:0;color:var(--text);}
p{margin:0;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}
button{font-family:var(--font-body);}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;}
::-webkit-scrollbar-track{background:transparent;}

/* Fondo aurora: capas difusas y lentas, decorativas, sin interacción */
.bg-aurora{
  position:fixed;
  inset:0;
  overflow:hidden;
  z-index:0;
  pointer-events:none;
}
.bg-aurora::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(148,163,184,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148,163,184,0.035) 1px, transparent 1px);
  background-size:46px 46px;
  mask-image:radial-gradient(circle at 30% 20%, black 0%, transparent 75%);
}
.blob{
  position:absolute;
  border-radius:50%;
  filter:blur(90px);
  opacity:0.16;
  will-change:transform;
}
.blob-a{
  width:520px;height:520px;top:-160px;left:-120px;
  background:var(--accent);
  animation:drift-a 26s ease-in-out infinite alternate;
}
.blob-b{
  width:460px;height:460px;top:20%;right:-160px;
  background:var(--accent-2);
  animation:drift-b 32s ease-in-out infinite alternate;
}
.blob-c{
  width:380px;height:380px;bottom:-140px;left:30%;
  background:#2563eb;
  opacity:0.12;
  animation:drift-c 30s ease-in-out infinite alternate;
}
@keyframes drift-a{ from{transform:translate(0,0);} to{transform:translate(60px,40px);} }
@keyframes drift-b{ from{transform:translate(0,0);} to{transform:translate(-50px,60px);} }
@keyframes drift-c{ from{transform:translate(0,0);} to{transform:translate(40px,-30px);} }

@media (prefers-reduced-motion: reduce){
  .blob{animation:none;}
}
