// Graphite design system.
@use 'fonts';
@use 'reset';

:root {
  // font sizes.
  --fs-400: 1.25em; 
  --fs-500: 1.50em;
  --fs-600: 1.75em;
  --fs-700: 2.00em;
  --fs-xxl: 2.50em;

  // background.
  --bg-900: #121212;
  --bg-050: #F7F7F7;
  --bg-100: #EEEEEE;

  // primary color.
  --pc-normal: #c678dd;
  --pc-light: #f4e4f9;
  --pc-dark: #62396E;
}

html {
  background-color: var(--bg-100);
  font-family: Lato, sans-serif;
  color: var(--bg-900);

  main {
    background-color: var(--bg-050);
  }
}

// --- Components ---

nav {
  #logo h1 {
    font-size: var(--fs-xxl);
  }

  #soul {
    color: var(--pc-dark);
  }

  .menu {
    margin: 8px 0px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    border: 1px solid var(--bg-900);
    border-radius: 8px;
    background-color: var(--pc-light);
  }

  .menu-item {
    padding: 4px 8px;
    border-right: 1px solid var(--bg-900);

    a {
      text-decoration: none;
      color: var(--bg-900);
    }
  }

  summary { display: none };
}

main {
  margin: 0 auto;
  max-width: 750px;
  padding: 0.5rem;
}

article {
  max-width: 80ch;
  margin: 1em 0;
  word-wrap: break-word;
  hanging-punctuation: first last;

  h1 { font-size: var(--fs-500); }
  h2 { font-size: var(--fs-400); }

  blockquote {
    background-color: var(--pc-light);
    padding: 0px 8px;
    border-left: solid 3px var(--pc-dark);
  }

  p {
    margin: 1em 0;
    font-size: var(--fs-400);
  }

  .title { 
    font-size: var(--fs-600);
  }

  .subtitle {
    font-size: var(--fs-400);
  }
}

.social {
  display: flex;
  padding: 8px 0px;
  gap: 16px;

  li {
    list-style: none;

    a {
      img {
        width: 40px;
      }
    }
  }
}

.list {
  margin: 8px 0px;
  list-style: none;
  font-size: var(--fs-400);

  .list-item {
    margin: 16px 0px;
    padding: 0px 16px;
    line-height: 1.2;
    border-left: 2px solid var(--bg-900);

    &:hover, &:focus, &:active {
      border-color: var(--pc-dark);
    }

    a {
      text-decoration: none;
      display: flex;
      flex-direction: column;
      color: var(--bg-900);

      &:hover, &:focus, &:active {
        color: var(--pc-dark);
      }
    }

    .headline {
      font-weight: 600;
    }

    .support {
      font-weight: 300;
    }
  }
}

// --- large screens ---

@media only screen and (min-width: 640px) {
  main {
    padding: 0 1rem;
  }
}