:root {
  --primary: #313725;
  --secondary: #d1ddcc;
  --tertiary: #cba56b; /* #ffdca5 */
  --quaternary: #b1b99f; /* #c9e0c8 */
  --quinary: #4c8494;
}

* {
  box-sizing: border-box;
}

body {
  font-family: 'Courier', monospace;
  color: var(--primary);
  background-color: var(--tertiary);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: tide 70s ease-in-out 5s infinite alternate;
}

header {
  text-align: center;
}

h1 {
  margin-bottom: 0;
}

h1 + h2 {
  margin-top: 0;
  font-size: 1.15em;
}

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;
  line-height: 1.6;
}

main span:last-child {
  display: block;
  text-align: right;
}

cite {
  font-style: normal;
}

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

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

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

@keyframes tide {
  0%   {background-color: var(--tertiary);}
  50%  {background-color: var(--quaternary); color: var(--primary);}
  100% {background-color: var(--quinary); color: var(--secondary);}
}
