@layer reset, base, components;

/* ⚒️ RESET STYLES (shoutout to Josh Comeau) */

@layer reset {
  /* 1. Use a more-intuitive box-sizing model */
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  /* 2. Remove default margin */
  *:not(dialog) {
    margin: 0;
  }

  /* 3. Enable keyword animations */
  @media (prefers-reduced-motion: no-preference) {
    html {
      interpolate-size: allow-keywords;
    }
  }

  body {
    /* 4. Increase line-height */
    line-height: 1.5;
    /* 5. Improve text rendering */
    -webkit-font-smoothing: antialiased;
  }

  /* 6. Improve media defaults */
  img,
  picture,
  video,
  canvas,
  svg {
    display: block;
    max-width: 100%;
  }

  /* 7. Inherit fonts for form controls */
  input,
  button,
  textarea,
  select {
    font: inherit;
  }

  /* 8. Avoid text overflows */
  p,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    overflow-wrap: break-word;
  }

  /* 9. Improve line wrapping */
  p {
    text-wrap: pretty;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    text-wrap: balance;
  }
}

/* 🪣 TOKENS */

@layer base {
  :root {
    color-scheme: light dark;

    --color-canvas: light-dark(#ffffff, #000000);
    --color-ink: light-dark(#1d1d1f, #f5f5f7);
    --color-ink-secondary: light-dark(#6e6e73, #98989d);
    --color-ink-tertiary: light-dark(#86868b, #6e6e73);
    --color-hairline: light-dark(#e6e6eb, #2e2e32);
    --color-selection: light-dark(#dde0e6, #3a3a3e);

    --font-sans:
      "Google Sans Flex", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica", "Arial",
      sans-serif;
  }

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

  body {
    font-family: var(--font-sans);
    font-optical-sizing: auto;
    font-weight: 400;

    color: var(--color-ink);
    background-color: var(--color-canvas);

    max-inline-size: 40rem;
    margin-inline: auto;
    padding-inline: 1.5rem;
    padding-block: clamp(3rem, 4vh + 2rem, 5rem) 6rem;
  }

  strong {
    font-weight: 600;
  }

  a {
    color: inherit;
    text-decoration-color: var(--color-ink-tertiary);
    text-underline-offset: 0.18em;

    @media (any-hover: hover) {
      &:hover {
        text-decoration-color: currentColor;
      }
    }
  }
}

/* 👤 HEADER */

@layer components {
  header {
    margin-block-end: 3.5rem;

    .avatar {
      inline-size: 4.5rem;
      block-size: 4.5rem;
      border-radius: 50%;
      box-shadow: 0 0 0 1px var(--color-hairline);
      margin-block-end: 1.5rem;
    }

    .person-name {
      font-size: clamp(1.75rem, 1.45rem + 1.5vw, 2.25rem);
      font-weight: 560;
      letter-spacing: -0.025em;
      line-height: 1.15;
    }

    .person-role {
      font-size: 1.125rem;
      color: var(--color-ink-secondary);
      margin-block-start: 0.25rem;
    }

    .contact-info {
      display: flex;
      flex-wrap: wrap;
      column-gap: 0.75rem;
      row-gap: 0.25rem;
      margin-block-start: 1.25rem;
      font-size: 0.9375rem;
      color: var(--color-ink-secondary);

      > span {
        color: var(--color-ink-tertiary);
      }
    }
  }
}

/* 🗂️ SECTIONS */

@layer components {
  main {
    section + section {
      margin-block-start: 3.5rem;
    }
  }

  section {
    > h2 {
      font-size: 0.8125rem;
      font-weight: 650;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      color: var(--color-ink-tertiary);
      padding-block-end: 0.625rem;
      border-block-end: 1px solid var(--color-hairline);
      margin-block-end: 1.5rem;
    }

    > p + p {
      margin-block-start: 0.75rem;
    }

    ul {
      list-style: none;
      margin-block-start: 0.875rem;
      display: grid;
      gap: 0.5rem;

      li {
        position: relative;
        padding-inline-start: 1.125rem;

        &::before {
          content: "–";
          position: absolute;
          inset-inline-start: 0;
          color: var(--color-ink-tertiary);
        }
      }
    }
  }

  article + article {
    margin-block-start: 2.25rem;
  }

  article {
    h3 {
      font-size: 1.0625rem;
      font-weight: 600;
      letter-spacing: -0.01em;
    }

    .article-meta {
      margin-block-start: 0.125rem;
      font-size: 0.9375rem;
      color: var(--color-ink-secondary);
    }

    p {
      margin-block-start: 0.875rem;
    }
  }
}
