@layer reset, base, layout;

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

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body,
  h1,
  h2,
  h3,
  p,
  figure,
  ul,
  ol {
    margin: 0;
  }

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

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

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

  button,
  input,
  textarea {
    font: inherit;
    color: inherit;
  }

  button {
    background: none;
    border: 0;
    cursor: pointer;
  }
}

@layer base {
  :root {
    /* superficies */
    --pxl-bg: #0b0e17;
    --pxl-panel: #131a2a;
    --pxl-panel-soft: #161e30;
    --pxl-border: #1f2a44;

    /* texto */
    --pxl-text: #eaf0ff;
    --pxl-text-soft: #8b96b8;

    /* neon */
    --pxl-cyan: #00e5ff;
    --pxl-magenta: #ff2bd6;
    --pxl-violet: #7a5cff;
    --pxl-violet-deep: #5b3fb0;
    --pxl-gradient: linear-gradient(135deg, var(--pxl-cyan), var(--pxl-violet), var(--pxl-magenta));

    /* inversion clara */
    --pxl-invert-bg: #f2f5ff;
    --pxl-invert-text: #0b0e17;

    /* tipografia */
    --pxl-font-display: 'Unbounded', 'Segoe UI', sans-serif;
    --pxl-font-body: 'Manrope', 'Segoe UI', sans-serif;

    /* layout */
    --pxl-container: 1240px;
    --pxl-radius-lg: 1.5rem;
    --pxl-radius-md: 1rem;
    --pxl-radius-sm: 0.5rem;
    --pxl-header-z: 10;
    --pxl-burger-z: 20;
  }

  html {
    color-scheme: dark;
    scroll-behavior: smooth;
  }

  body {
    background: var(--pxl-bg);
    color: var(--pxl-text);
    font-family: var(--pxl-font-body);
    font-size: 1rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }

  h1,
  h2,
  h3 {
    font-family: var(--pxl-font-display);
    line-height: 1.2;
    font-weight: 600;
  }

  h1 {
    font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.75rem);
  }

  h2 {
    font-size: clamp(1.6rem, 1.3rem + 1.4vw, 2.5rem);
  }

  h3 {
    font-size: clamp(1.15rem, 1.05rem + 0.5vw, 1.45rem);
  }

  p {
    color: var(--pxl-text-soft);
  }

  ::selection {
    background: var(--pxl-magenta);
    color: #0b0e17;
  }

  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }
  }
}

@layer layout {
  .container {
    max-width: var(--pxl-container);
    margin-inline: auto;
    padding-inline: 1.25rem;
  }

  main {
    display: block;
    overflow-x: clip;
  }

  section {
    padding-block: clamp(2.75rem, 2.1rem + 2.2vw, 5.5rem);
  }

  section + section {
    border-top: 1px solid transparent;
  }

  .section-head {
    max-width: 40rem;
    margin-bottom: clamp(1.75rem, 1.4rem + 1.4vw, 3rem);
  }

  .section-kicker {
    display: inline-block;
    font-family: var(--pxl-font-display);
    font-size: 0.8rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pxl-cyan);
    margin-bottom: 0.75rem;
  }

  @media (min-width: 1600px) {
    .container {
      max-width: 1240px;
    }
  }
}
