@font-face {
  font-family: "et-book";
  src: url("fonts/et-book/roman-line-figures.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "et-book";
  src: url("fonts/et-book/display-italic-old-style-figures.ttf")
    format("truetype");
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: "et-book";
  src: url("fonts/et-book/bold-line-figures.ttf") format("truetype");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: "fonts/et-book-roman-old-style";
  src: url("et-book/roman-old-style-figures.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}

:root {
  --max-readable-width: 70rem;
  --font-size-serif: 19px;
  --font-family-serif:
    et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua",
    Georgia, serif;
  --main-column-width: inherit;
  --column-gap: var(--space);
  --color-gray-light: #f6f6f6;
  --text-indent-after-first-paragraph: 0;
  --font-size-adjust-monospace: ex-height 0.4;

  @media print {
    --font-size: 14px;
    --font-size-serif: 14px;
    --main-column-width: 70%;
  }
  @media screen and (min-width: 900px) {
    --main-column-width: 75%;
  }
  @media screen and (max-width: 1200px) {
    --max-readable-width: 60rem;
  }

  --side-note-font-family: et-book-roman-old-style;
  --side-note-margin-right: calc(-1 * calc(100% - var(--main-column-width)));
  --side-note-float: none;
  --side-note-text-align: center;
  --side-note-font-size: 1em;
  --side-note-right-position: 0;
  --side-note-extra-space: 5rem;
  --paragraph-hyphens: none;
  --paragraph-text-alignment: inherit;
  @media screen and (min-width: 900px), print {
    --side-note-float: right;
    --side-note-text-align: left;
    --side-note-font-size: 0.9rem;
  }
  @media print {
    --side-note-font-size: 0.7rem;
  }
}
main {
  position: relative;
}
section,
figure {
  display: block;
}
main > article,
main > section,
main > figure {
  width: var(--main-column-width);
  padding-right: var(--column-gap);
}
main {
  figure figcaption {
    margin-bottom: 0.5rem;
    text-align: center;
  }
  sup:has(> a) {
    vertical-align: baseline;
    font-size: 1em;
    > a {
      vertical-align: super;
      font-size: 0.9em;
    }
  }
  @media screen and (min-width: 900px), print {
    figure:not(.extra-wide) figcaption,
    .side-note,
    aside {
      margin-top: -0.11em;
      float: var(--side-note-float);
      clear: var(--side-note-float);
      text-align: var(--side-note-text-align);
      font-size: var(--side-note-font-size);
      margin-right: calc(
        var(--side-note-margin-right) - var(--side-note-extra-space)
      );
      margin-bottom: 0;
      width: calc(
        100% - var(--main-column-width) - var(--column-gap) +
          var(--side-note-extra-space)
      );
      font-style: normal;
      transform: translateY(0.5em);
    }

    .side-note[data-index],
    aside[data-index] {
      display: grid;
      grid-template-columns: 1fr 100%;
      gap: 0.25em;
      &:before {
        content: attr(data-index);
        padding-right: 0.25em;
        transform: translateY(-0.25em);
        float: left;
        font-size: 0.8em;
        vertical-align: baseline;
        font-family: var(--side-note-font-family);
      }
    }

    .side-note-number {
      font-family: et-book-roman-old-style;
    }
    figure.extra-wide {
      --side-note-extra-space: 0;
      width: calc(100% / var(--main-column-width) + (1.5 * var(--space)));
      margin-left: calc(-0.5 * var(--side-note-extra-space));
      @media screen and (min-width: 1200px) {
        --extra-space: var(--side-note-extra-space);
      }

      figcaption {
        text-align: center;
        margin-bottom: 0.5rem;
        font-size: var(--font-size-serif);
      }
    }
  }
  @media screen and (max-width: 900px) {
    .side-note,
    aside {
      float: none;
      display: inline;
      text-align: inherit;
      font-size: var(--side-note-font-size);
      margin: 0;
      width: inherit;
      font-style: normal;
      &:before {
        content: " (";
      }
      &:after {
        content: ") ";
      }
      > p {
        display: inline;
      }
    }
  }
}
@media screen and (max-width: 900px) {
  .show-side-note-on-hover {
    .side-note,
    aside {
      opacity: 0;
      position: absolute;
      transition: opacity var(--transition-duration);
      --background-color: var(--color-gray-light);
      &:before {
        content: unset;
      }
      &:after {
        content: unset;
      }
    }
    sup:has(> a):hover {
      cursor: pointer;
      .side-note,
      aside {
        opacity: 1;
        background: var(--background-color);
        padding: var(--space-small);
        max-width: 50vw;
        border-radius: var(--border-radius);
        > *:first-child {
          margin-top: 0;
        }
        > *:last-child {
          margin-bottom: 0;
        }
      }
    }
  }
}
table {
  font-size: var(--side-note-font-size);
  --border-color: none;

  @media print {
    border: 0px;
  }
  border-bottom: 2px solid currentColor;
  thead {
    border-top: 2px solid currentColor;
    border-bottom: 1px solid currentColor;
  }
  tr th {
    --text-align: left;
    &:last-child {
      --text-align: right;
    }
  }
  tr td:last-child {
    --text-align: right;
  }
}
code {
  background: none;
  padding: 0;
}
blockquote {
  padding: var(--space);
  background: none;
  > p,
  > section,
  > footer,
  > aside {
    margin-left: calc(2 * var(--space));
  }
  footer,
  aside {
    font-size: var(--side-note-font-size);
  }
  aside {
    text-align: right;
  }
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  margin-top: calc(1.5 * var(--space));
}
em strong {
  background: none;
  padding: 0;
  color: currentColor;
}
ul li,
ol li {
  &::marker {
    font-size: 0.85em;
    transform: translateY(-0.1em);
    font-family: et-book;
  }
}
