@font-face {
  font-family: 'LibreBaskerville';
  src: url('../fonts/body/static/LibreBaskerville-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'LibreBaskerville';
  src: url('../fonts/body/static/LibreBaskerville-Bold.ttf') format('truetype');
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'LibreBaskerville';
  src: url('../fonts/body/static/LibreBaskerville-Italic.ttf') format('truetype');
  font-weight: normal;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'badrobot';
  src: url('../fonts/badrobot/badrobot.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  --color-black: #222;
  --color-gray: #ccc;
  --color-gray-dark: #999;
  --color-blue: #007BFF;
  --color-red: #FF4136;
  --color-green: #2ECC40;
  --color-border: rgba(255, 255, 255, 0.25);
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  font-family: 'LibreBaskerville', serif;
  font-size: 18px;
  line-height: 1.4;
  margin: 0;
  padding: 4rem;
  background: url('../images/bg.png') repeat;
  color: white;
}

main {
  max-width: 1000px;
  margin: 0 auto;
}

.site-footer {
  display: flex;
  width: 100%;
  justify-content: center;
}

.site-header {
  display: flex;
  width: 100%;
  justify-content: center;
  padding: 0 2rem;
  margin-bottom: 4rem;
}

.page-section {
  margin-bottom: 4rem;
  padding-bottom: 4rem;
  border-bottom: 1px solid var(--color-border);
}

.section-title {
  text-align: center;
  font-size: 1.5em;
  margin-bottom: 2rem;
}

.nav-table {
  --color-table-border: var(--color-border);

  width: 100%;
  padding: 0;
  border-collapse: collapse;
  border: 1px solid var(--color-table-border);
  table-layout: fixed;

  tr {
    display: flex;

    &:not(:last-child) {
      border-bottom: 1px solid var(--color-table-border);
    }
  }

  td {
    flex: 1;
    padding: 0.5rem 1rem;

    &:first-child {
      flex: 0 0 auto;
      padding: 0;
    }

    &:not(:last-child) {
      border-right: 1px solid var(--color-table-border);
    }
  }
}

.page-link {
  display: inline-flex;
  justify-content: center;
  font-family: badrobot, sans-serif;
  font-size: 1.25rem;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  height: 42px;
  width: 180px;
  padding: 0.5rem;
  background: #ccc;
  color: white;
  text-shadow: -1px -1px 2px rgba(0,0,0,0.75);
}