/* Variables */

:root {
  --rythm: 0.5rem;
  --article-width: 640px;
}

/* Reset */

html {
  box-sizing: border-box;
  font-size: 16px;
}

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

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ol,
ul {
  margin: 0;
  padding: 0;
}

ol,
ul {
  list-style: none;
}

img {
  max-width: 100%;
  height: auto;
}

/* Layout */

main {
  padding: var(--rythm);
  display: flex;
  gap: var(--rythm);
}

article {
  width: 100%;
  flex-grow: 5;
}

article > * + * {
  margin-top: var(--rythm);
}

nav {
  display: flex;
  flex-direction: column;
  gap: var(--rythm);
  flex-grow: 1;
}

nav > section {
  display: flex;
  flex-direction: column;
}

#tag-cloud {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: calc(0.4 * var(--rythm));
  align-items: baseline;
}

@media not screen, screen and (max-width: 640px) {
  nav {
    flex-direction: row;
  }

  main {
    flex-direction: column;
  }
}

@media screen and (min-width: 641px) {
  main {
    flex-direction: row;
  }

  article {
    margin: 0 auto;
    max-width: var(--article-width);
  }

  nav {
    max-width: 176px;
  }
}

@media screen and (min-width: 1024px) {
  nav {
    position: absolute;
    max-width: calc(
      min(240px, 50vw - 0.5 * var(--article-width) - 2 * var(--rythm))
    );
  }
}

/* Elements' styles */

img.logo {
  min-width: 100px;
  width: 100px;
}

/* Color */

html {
  background-color: #efefef;
}

a {
  color: #6200ee;
}

a:visited {
  color: #824dff;
}

@media (prefers-color-scheme: dark) {
  html {
    color: #efefef;
    background-color: #121212;
  }

  a {
    color: #bb86fc;
  }

  a:visited {
    color: #d9c2f5;
  }
}
