iframe.soundcloud {
  border: 0;
  width: 100%;
  height: 13rem;
  padding: 0;
}

audio {
  width: 100%;
}

.spotify {
  width: 100%;
  height: 380px;

  &.compact {
    height: 80px;
  }
}

iframe.sixteen-by-nine[src*="player.vimeo.com/video/"] {
  aspect-ratio: 16 / 9;
  width: 100%;
}

iframe[src*="youtube.com/embed"] {
  aspect-ratio: 16 / 9;
  border: 0;
  width: 100%;
}

.strava {
  width: 100%;
  height: 350px;
}

.bandcamp {
  border: 0;
  width: 100%;
  height: 120px;
}

.license {
  background-color: #b6b6b6;
  gap: .5rem;
  padding: .5rem;
  font-size: .7rem;
  list-style: none;
  display: flex;

  & * {
    margin-block: 0;
    padding-block: 0;
    font-size: 1em;
  }

  & .badge {
    flex-shrink: 0;
  }
}

[data-comp="Excerpt"] {
  padding-block: .5em;
  padding-inline: .5em;

  & * {
    margin-block-start: 0;
  }
}

[data-comp="Link"] {
  background-image: var(--link-img);
  color: #fff;
  aspect-ratio: 1;
  background-position: center;
  background-size: cover;

  & > a {
    background-color: #00000080;
    padding: .5em;
    display: block;

    &:hover {
      text-decoration: underline;
    }

    & > * {
      margin-block: 0;
      padding-block: 0;
    }
  }
}

.excerpt {
  & footer {
    flex-wrap: wrap;
    gap: 0 2rem;
    display: flex;

    & > :first-child {
      flex-grow: 1;
      flex-shrink: 0;
    }
  }
}

:root {
  --grid-size: 13rem;
}

.grid {
  flex-wrap: wrap;
  align-items: stretch;
  gap: 1em;
  padding: 0;
  display: flex;

  & > * {
    flex-basis: var(--grid-size);
    flex-grow: 1;
    padding: .5em;
  }

  & a {
    & > :first-child {
      margin-block-start: 0;
    }

    & > :last-child {
      margin-block-end: 0;
    }
  }

  & li {
    list-style: none;
  }

  & .solid-block {
    color: #fff;
    -webkit-backdrop-filter: blur(2px);
            backdrop-filter: blur(2px);
    background-color: #1e275280;

    & a {
      color: currentColor;
    }
  }
}

.tag-cloud {
  color: #ff0;
  flex-wrap: wrap;
  gap: .5rem;
  padding: 0;
  font-size: .8em;
  line-height: 1;
  list-style: none;
  display: flex;

  & a {
    text-decoration: none;
  }

  & li > * {
    background-color: var(--dark);
    box-shadow:  ;
    border-radius: 2em;
    padding: .5em 1em;
    display: block;
  }
}

[data-comp="Header"] {
  font-size: 2rem;

  & > a {
    line-height: initial;
    align-items: center;
    padding: 0;
    text-decoration: none;
    display: flex;

    &:hover {
      text-decoration: underline;
    }
  }

  & svg {
    fill: #3d4e3d;
    height: 3rem;
  }

  & * {
    margin: 0;
    padding: 0;
  }

  & div {
    word-wrap: break-word;
    padding-inline: .2em;
  }
}

nav.pagination {
  gap: 1ch;
  display: flex;

  & a[disabled] {
    visibility: hidden;
  }

  & .page_number {
    text-align: center;
    flex-grow: 1;
  }
}

nav.site {
  & ol {
    gap: 1em;
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: flex;

    & li {
      &.current {
        text-decoration: underline;
      }
    }
  }

  & a {
    text-decoration: none;

    &:hover {
      text-decoration: underline;
    }
  }
}

[data-comp="layout.CrossPage"] {
  justify-content: space-between;
  align-items: var(--vertical-align, center);
  display: flex;
}

[data-comp="breadcrumbs"] {
  z-index: 999;
  color: var(--dark-contrast);
  background: var(--dark);
  padding: 1rem;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  box-shadow: 0 0 30px 5px #000000bf;

  @media only screen and (width >= 700px) {
    position: unset;
    background: unset;
    color: unset;
    z-index: unset;
    box-shadow: unset;
    padding-block: 0;
  }

  & ol {
    --breadcrumb-gap: .7ch;
    white-space: nowrap;
    margin: 0;
    padding-inline: 0;
    list-style: none;
    overflow-x: visible;

    & > li {
      display: inline;
    }

    & > li + li:before {
      content: "»";
      padding-inline: var(--breadcrumb-gap);
    }
  }
}
