:root {
  --primary: #974c39;
  --secondary: #e0dbd6;
}

* {
  box-sizing: border-box;
}

::selection {
  color: var(--secondary);
  background: var(--primary);;
}

::-moz-selection {
  color: var(--secondary);
  background: var(--primary);;
}

html, body {
  overflow-x: hidden;
}

body {
  font-family: 'Courier', monospace;
  color: var(--primary);
  background: var(--secondary);
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

div {
  width: fit-content;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 2.2rem;
}

div main {
  height: fit-content;
  height: -moz-fit-content;
  height: -webkit-fit-content;
  width: fit-content;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  max-width: 45rem;
  line-height: 1.6;
}

header span {
  display: block;
  text-align: right;
}

main ~ a {
  position: fixed;
  color: var(--primary);
  font-weight: lighter;
  opacity: .35;
  writing-mode: vertical-rl;
  text-orientation: sideways;
  white-space: nowrap;
}

main + a {
  top: 0;
  right: 0;
  margin-top: 0.55rem;
  margin-right: 0.55rem;
}

main + a + a {
  bottom: 0;
  left: 0;
  margin-bottom: 0.55rem;
  margin-left: 0.55rem;
}

main ~ a:hover {
  color: var(--primary);
  font-style: oblique;
}

main ~ a:active {
  font-weight: bolder;
  font-style: oblique;
}

main ~ a:visited {
  color: var(--primary);
}

h3 {
  text-transform: uppercase;
}

h2 + h3 {
  text-transform: uppercase;
}

h2 a {
  color: var(--primary);
  text-decoration: none;
  cursor: text;
}

cite {
  font-style: normal;
}

hr {
  border: 1px solid var(--primary);
  border-style: solid none none none;
}

img {
  width: 100%;
  margin-top: 9rem;
  mix-blend-mode: color-burn;
}

figure {
  margin: auto;
}

figcaption {
  text-align: right;
}

figcaption cite {
  font-style: italic;
}

object {
  display: block;
  max-width: 80%;
  margin: auto;
  aspect-ratio: 1/1;
}

small {
  font-variant-caps: small-caps;
  font-size: 1.25rem;
  line-height: 1;
}

article:first-of-type span {
  font-family: sans-serif;
  font-size: 2rem;
  line-height: 0;
  vertical-align: middle;
}

.center {
  text-align: center;
}

.right {
  text-align: right;
}

#v ~ p > span {
  position: absolute;
}

#v ~ p:has(span)::after {
  content: " ";
  line-height: 13rem;
  visibility: hidden;
}

#v ~ p > span > span {
  display: flex;
  flex-direction: row;
  align-items: center;
  white-space: nowrap;
  height: 3.25rem;
  flex-basis: 100%;
}

#v ~ p > span > span > span:has(br) {
  height: 100%;
}

#v ~ p > span > span > span:not(:has(br)) {
  transform: scaleY(4);
  text-transform: uppercase;
  letter-spacing: -0.05rem;
}

#xi ~ object, #xv ~ object {
  transform: rotate(-90deg);
  aspect-ratio: 1/1.325;
}

#xvi + p {
  max-width: 41ch;
}