@font-face {
  font-family: "BitBold";
  font-style: normal;
  font-weight: normal;
  src: local("BitBold"), url("../fonts/BitBold.woff") format("woff");
}

:root {
  --accent: rgb(62, 249, 138);
  --accent-dark: #06cb56;
  --fancy-font-stack: BitBold, monospace;
}

.sr-only:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

html {
  box-sizing: border-box;
}
*,
*:before,
*:after {
  box-sizing: inherit;
}
body > * {
  grid-column: unset;
}
body {
  background-image: url("data:image/svg+xml,<svg id='patternId' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='70' height='70' patternTransform='scale(4) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='hsla(318, 45%, 29%, 1)'/><path d='M-4.8 4.44L4 16.59 16.14 7.8M32 30.54l-13.23 7.07 7.06 13.23M-9 38.04l-3.81 14.5 14.5 3.81M65.22 4.44L74 16.59 86.15 7.8M61 38.04l-3.81 14.5 14.5 3.81'  stroke-linecap='square' stroke-width='1' stroke='hsla(258.5,59.4%,59.4%,1)' fill='none'/><path d='M59.71 62.88v3h3M4.84 25.54L2.87 27.8l2.26 1.97m7.65 16.4l-2.21-2.03-2.03 2.21m29.26 7.13l.56 2.95 2.95-.55'  stroke-linecap='square' stroke-width='1' stroke='hsla(144, 94%, 61%, 1)' fill='none'/><path d='M58.98 27.57l-2.35-10.74-10.75 2.36M31.98-4.87l2.74 10.65 10.65-2.73M31.98 65.13l2.74 10.66 10.65-2.74'  stroke-linecap='square' stroke-width='1' stroke='hsla(199, 98%, 48%, 1)' fill='none'/><path d='M8.42 62.57l6.4 2.82 2.82-6.41m33.13-15.24l-4.86-5.03-5.03 4.86m-14-19.64l4.84-5.06-5.06-4.84'  stroke-linecap='square' stroke-width='1' stroke='hsla(326, 100%, 50%, 1)' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(0,0)' fill='url(%23a)'/></svg>");
  background-attachment: fixed;
  font-size: 1.35rem;
  grid-template-columns: 1fr;
  justify-items: start;
  column-gap: 3rem;
}

body > nav,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--fancy-font-stack);
}

img {
  opacity: 1;
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
  transition: 0.2s;
}
a:visited {
  color: var(--accent-dark);
}
a:hover,
a:visited:hover {
  text-shadow: 0 0 2px #fff, 0 0 8px var(--accent);
}

body > nav {
  align-self: start;
  grid-row: 2;
  position: relative;
  margin-bottom: 2rem;
  overflow: auto;
}
body > nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: flex;
}
body > nav li {
  font-size: 2.5rem;
  margin: 0 1rem;
  white-space: nowrap;
}
body > nav li:first-of-type {
  margin: 0 1rem 0 0;
}
body > nav a {
  transition: 0.2s;
}
body > nav a,
body > nav a:visited {
  text-decoration: none;
  color: var(--text);
  text-shadow: 3px 3px 0 black;
}
body > nav a[disabled] {
  cursor: no-drop;
}
body > nav a:hover:not([disabled]) {
  color: #fff;
}

h1 {
  font-size: 3.5rem;
  z-index: 1;
  position: relative;
  margin-top: 0;
  text-shadow: 0.1em 0 black;
}
h1 + article {
  margin-top: -1.9rem;
}

.logo {
  max-width: 100%;
  margin: 2rem 1rem 3rem 2rem;
}
.logo img {
  width: 25rem;
  max-width: 100%;
}
body > .logo {
  grid-row: 1;
}

article {
  border-radius: 0;
}
body > article {
  grid-row: 4;
  justify-self: stretch;
}

body > article,
body > h1,
body > nav,
body > .logo {
  grid-column: 1;
}
body > h1 {
  grid-row: 3;
}
body > h1 {
  margin: 1rem;
}
body > nav {
  padding-left: 1rem;
  width: 100%;
}
body > footer {
  align-self: end;
  grid-row: 5;
  border: none;
  color: var(--text);
  margin-top: 2rem;
}
footer img {
  width: 5rem;
}
@media screen and (min-width: 50rem) {
  body > h1 {
    margin-left: 2rem;
  }
  body > nav {
    padding-left: 2rem;
  }
}
@media screen and (min-width: 67rem) {
  body {
    grid-template-columns: minmax(45rem, 70rem) minmax(18rem, 1fr);
  }
  body > nav ul {
    display: block;
  }
  body > nav li {
    margin: 0;
  }
  body > nav {
    grid-column: 2;
    grid-row: 3;
    width: auto;
    overflow: unset;
    position: sticky;
    top: 0;
  }
  body > .logo {
    grid-row: 1;
  }
  body > h1 {
    grid-row: 2;
  }
  body > article {
    grid-row: 3 / 5;
    margin-bottom: 3rem;
  }
  body > footer {
    align-self: end;
    grid-column: 2;
    grid-row: 4;
    margin-bottom: 3rem;
  }
  body > nav a:hover:not([disabled]) {
    text-shadow: 0 0 5px var(--accent), 0 0 25px var(--accent),
      0 0 50px var(--accent), 0 0 100px var(--accent);
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  display: flex;
  align-items: baseline;
  margin-bottom: 0;
}
h1:hover .anchor,
h2:hover .anchor,
h3:hover .anchor,
h4:hover .anchor,
h5:hover .anchor,
h6:hover .anchor {
  display: block;
}
.anchor {
  display: none;
  font-size: 0.6em;
  opacity: 0.6;
  color: var(--text);
  order: 2;
  text-decoration: none;
  margin-left: 0.25em;
}

p:first-of-type {
  margin-top: 0;
}

.glow {
  border: none;
  box-shadow: 0 0 5px #fff, 0 0 20px 10px var(--accent);
}

.bg {
  position: relative;
  padding: 1rem;
}
/* I'm using the Simple.css lightweight CSS framework. This allows me to use
   the main background color from that framework (the CSS variable `--bg` and
   use it only behind the article. */
.bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--bg);
  opacity: 0.85;
  z-index: -1;
}
@media screen and (min-width: 50rem) {
  .bg {
    padding: 2rem;
  }
}

.post-list {
  list-style-type: none;
  margin: 4rem 0 0;
  padding: 0;
}
.post-list li:not(:last-of-type) {
  margin-bottom: 4rem;
}
.post-list h2 {
  margin-bottom: 0.25rem;
}
.post-list small {
  display: block;
  opacity: 0.8;
  margin-bottom: 0.75rem;
}

.pagination ol {
  padding: 0;
  width: 100%;
  display: grid;
  list-style-type: none;
  grid-template-columns: 1fr 1fr;
  margin: 4rem 0 0 0;
}
.pagination .newer-item {
  grid-column: 1;
  justify-self: start;
}
.pagination .older-item {
  grid-column: 2;
  justify-self: end;
}
