body, html {
  margin: 0; padding: 0;
}
body {
  --wall: #82786c;
  --laquer: #695f55;
  --dirt: #281e14;
  --paper: #ddc;
  --ink: #482400;
  --curtain: #14323c;
  --well: #102e38;
  --text: #976;
  background-image:
                    linear-gradient(to right, var(--wall), var(--laquer) 12.2em, var(--dirt) 12.6em, var(--curtain) 12.72em, transparent 10em),
                    linear-gradient(to left, var(--wall), var(--laquer) 12.2em, var(--dirt) 12.6em, var(--curtain) 12.72em);
  background-color: var(--wall);
  background-size: 104em 100%;
  background-position: 50% 100%;
  background-repeat: repeat-y;

  color: var(--text);
  text-shadow: 1px 1px 3px #210;
  font-family: "Times New Roman", Times, serif;
  font-size: 14px;
  margin: 0; padding: 0;
}

main {
  margin: auto;
}

main[typeof=Website] {
  padding: 1em 4em;
}

main[typeof=Website] > section[rel=hasPart] {
  clear: left;
  overflow: auto;
  border: 0.1pt solid transparent;
  padding: 1.2em 1.8em;
  border-radius: 1em;
  background-color: var(--well);
  box-shadow: inset 0.1em 0.1em 0.5em #010;
}

h1 {
  text-align: center;
}
h1 a:link, h1 a:visited {
  color: #77aa99;
}
h1 a:hover {
  color: beige;
  text-shadow: 0px 0px 7px beige,
               0px 0px 9px purple,
               0px 3px 9px black;
}
h2 {
  font-size: 1.2em;
  font-weight: bold;
  font-style: normal;
  margin: 0.25em 0;
}

a:link, a:hover, a:visited {
  color: aquamarine;
  text-decoration: none;
  transition-property: color, text-shadow;
  transition-duration: 0.4s;
  text-shadow: 1px 1px 4px #000;
}
a:hover {
  color: aqua;
}

h2[id] > a:link, h2[id] > a:visited,
h3[id] > a:link, h3[id] > a:visited,
h4[id] > a:link, h4[id] > a:visited {
  color: var(--text);
}

section {
  margin-bottom: 2em;
}

ul {
  margin: 1em 0;
  padding: 0em 1.6em;
}
li {
  margin: 0;
  padding: 0;
}

dt {
  font-weight: bold;
}
dd {
  margin-left: 5em;
}

body footer {
  position: fixed;
  bottom: 0;
  left: 50%;
  width: 83.4em;
  margin-left: -41.7em;
  font-size: 0.9em;
  text-align: center;
  opacity: 0.6;
  background-color: var(--curtain);
  transition-property: opacity;
  transition-duration: 0.4s;
}
body footer:hover {
  opacity: 1;
}
body footer img {
  border: 0;
}

main {
  font-family: helvetica, arial, sans-serif;
}

main a:link, main a:hover, main a:visited {
  color: #c74;
  text-shadow: 1px 0px 0px #111;
}

main a:hover {
  color: #ea4;
  text-shadow: 0px 0px 7px #965, 0px 0px 7px #242, 0px 0px 9px purple;
}

article {
  margin: 0 1em 3em;
}

main > article {
  position: relative;
}

main > article figure {
  border-radius: 1em;
  background-color: var(--well);
  box-shadow: inset 0.1em 0.1em 0.5em #010;
  text-align: center;
  padding: 1em;
}
main > article figure img {
  border: 2px ridge black;
  border-radius: 4px;
  width: 100%;
}

article[typeof=ProfilePage] {
  padding: 1em 2em 2em;
  border-radius: 1em;
  background-color: var(--well);
  box-shadow: inset 0.1em 0.1em 0.5em #010;
}
article[typeof=ProfilePage] div {
  column-span: all;
}
article[typeof=ProfilePage] dl {
  break-inside: avoid;
}

article[typeof=ProfilePage] a:link,
article[typeof=ProfilePage] a:hover,
article[typeof=ProfilePage] a:visited {
  color: #87a;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
  font-weight: bold;
}

article[typeof=ProfilePage] a:hover {
  color: #c7d;
  text-shadow: 1px 0px 0px #111, 0px 0px 1px #242;
}

[typeof~=Image] aside ul {
  width: 12em;
  box-shadow: 2px 8px 16px rgba(0, 0, 0, 0.5);
  border-radius: 0.6em;
  background-color: rgba(16, 46, 56, 0.8);
  padding: 0.6em 0.4em;
  list-style-type: none;
}
[typeof~=Image] aside li a {
  display: block;
}

[typeof~=PixelArt] img {
  image-rendering: pixelated;
}

img[src*="640x256"], figure.pal640x256 img {
  width: 640px;
  height: 512px;
}

img[src*="320x128"], figure.pal320x128 img {
  width: 640px;
  height: 512px;
}

[typeof=ImageGallery] figure img {
  border: 1px solid black;
  border-radius: 2px;
  width: 10.6em;
}

img.pal640x256, img.pal320x128 {
  width: 10.6em;
  height: 8.48em;
}

@media screen and (min-width: 992px) {
  main {
    width: 72em;
  }

  main[typeof=Website] {
    width: 64em;
  }

  h1 {
    font-size: 4em;
  }

  article {
    margin: 0 7em 3em;
  }

  main > article > aside {
    position: absolute;
    top: 0%;
    left: 100%;
  }


  main[typeof=Website] > section[rel=hasPart] {
    width: 50%;
  }

  main[typeof=Website] > section[rel=hasPart]:nth-of-type(even) {
    float: right;
  }

  article[typeof=ProfilePage] {
    columns: 2;
  }

  dl {
    clear: left;
  }
  dt {
    float: left;
  }

  article[typeof=ImageGallery] {
    margin: 0;
  }

  article[typeof=ImageGallery] [typeof='rdfa:Pattern'] {
    clear: left;
    overflow: auto;
  }

  [typeof=ImageGallery] figure {
    float: left;
    padding: 0.8em;
    width: 10.6em;
  }
}

