body {
  font-family: 'Open Sans';
  font-size: 18px;
  background-color: bisque;
  margin: 0;
}

main {
  margin: 0 5em;
}

h1 {
  font-size: 40px;
}

span.bigger {
  font-size: larger;
}

.bold {
  font-weight: bold;
}

.menu {
  background-color: black;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
}

.menu > * a {
  color: white;
  text-decoration: none;
}

.menu > * {
  margin: 6px 10px;
}
.menu > *:first-child {
  flex: 1;
  font-size: 40px;
}

#home-slogan {
  margin-top: 50px;
  font-size: 40px;
  font-weight: bold;
}
#home-contact {
  margin: 20px 0 0 100px;
}
.home-page > details {
  margin: 1em;
}
.home-page > details > summary {
  cursor: pointer;
  font-size: 130%;
}
.home-page > details > ul {
  margin: 0;
}

#message404 {
  margin: 50px;
  font-size: 30px;
}

#page-body, #account-body {
  margin: 20px auto 20px auto;
  max-width: 40em;
}
#footer, #buy {
  margin: 0 auto 20px auto;
  max-width: 40em;
}
body > #page-body, body > #account-body {
  margin: 0 auto;
}
body > #plain-body {
  margin: 0 10px;
}

.side-by-side {
  margin: 20px auto 20px auto;
  max-width: 60em;
  overflow: hidden;
}
.side-by-side.left {
  text-align: right;
}
.side-by-side.left img {
  float: right;
  width: 400px;
  height: 300px;
  margin-left: 1em;
  margin-right: 1em;
}
.side-by-side.right #OmniscientAnimation {
  float: left;
  border: none;
  width: 400px;
  height: 300px;
}

#OmniscientAnimation {
  position: relative;
  left: -40px;
  top: -20px;
}
#OmniscientAnimation > .state {
  position: absolute;
  transform: matrix(1, -0.3, 0, 1, 70, 70);
  width: 50px;
  height: 200px;
  border: 2px solid black;
  background: gray;
}
#OmniscientAnimation > .state.highlight {
  background: white;
}
#OmniscientAnimation > .state.highlight > .circle {
  position: absolute;
  left: 20px;
  width: 0;
  height: 0;
  border: 5px solid blue;
  border-radius:5px;
}

#container {
  display: flex;
  justify-content: start;
  align-items: flex-start;
  margin-bottom: 5px;
}
#container > ol {
  margin: 10px 10px 0 10px;
  max-width: 150px;
  border: 1px solid black;
  padding: 10px;
}
#container > ol > li {
  list-style: none;
  padding: 0;
  margin-bottom: 0.5em;
}
#container > #page-body {
  margin: 8px;
  flex: 1;
}
@media (max-width: 800px) {
  #container {
    flex-direction: column-reverse;
  }
  #container > ol {
    margin-top: 10px;
  }
}

#account-body:not(.loaded) {
  display: none;
}
#account-body > #data {
  display: none;
}
#pricing {
  border: 1.5em;
}
.pricing-column {
  width: 25%;
  text-align: left;
  vertical-align: top;
  padding-left: 1em;
}
.pricing-column ul {
  padding-left: 0em;
}
.instruction {
  background: lightgray;
  padding: 0.2em;
  border: 2px solid gray;
  word-break: break-all;
  white-space: pre-wrap;
}
#settings {
  width: 100%;
}
#settings td {
  vertical-align: baseline;
  padding: 0.5em;
}
#settings button {
  white-space: nowrap;
}
#settings .setting > td:first-child {
  font-weight: bold;
}
#settings .setting > td:nth-child(2) {
  font-weight: bold;
  background: white;
}
#current-plan-note {
  font-weight: normal;
  font-size: 80%;
}
#history-table {
  width: 100%;
}
#history {
  background: white;
  border: 2px solid gray;
}
#history:empty::after {
  font-style: italic;
  content: 'No submissions received.'
}
#history > tr > td {
  padding: 0.2em;
}
#history > tr > td.untitled {
  font-style: italic;
}
#pernosco-user.error, #pernosco-user-error {
  font-style: italic;
  color: red;
}
#portal-button-container, #promo-button-container {
  text-align: center;
}
#portal-button:not(.show) {
  display: none;
}
.failed {
  color: red;
  white-space: pre-wrap;
}

#overview {
  position: relative;
  margin: 20px auto 20px auto;
  max-width: calc(40em + 220px);
}
.counterpoint p {
  margin: 0;
}
.counterpoint p > em {
  font-style: normal;
}
.counterpoint p:nth-of-type(even) {
  margin-left: 3em;
  margin-bottom: 8px;
  font-weight: bold;
}
.counterpoint > div {
  position: relative;
  transition: height 0.3s;
}
@media (min-width: 600px) {
  .counterpoint:not(.nodemo) {
    margin-left: 220px;
  }
  .counterpoint > div > .DOMRecMovie:not(:fullscreen), .counterpoint > div > .DOMRecScreenshot:not(:fullscreen) {
    position: absolute;
    left: -220px;
    top: 0;
    width: 200px;
    max-width: none;
    box-shadow: 0 0 5px black;
  }
  .counterpoint > div > .DOMRecMovie:not(:fullscreen).poppedOut, .counterpoint > div > .DOMRecScreenshot:not(:fullscreen).poppedOut {
    transition: top 0.3s, width 0.3s;
  }
  /* UGH WEBKIT */
  .counterpoint > div > .DOMRecMovie:not(:-webkit-full-screen), .counterpoint > div > .DOMRecScreenshot:not(:-webkit-full-screen) {
    position: absolute;
    left: -220px;
    top: 0;
    width: 200px;
    max-width: none;
    box-shadow: 0 0 5px black;
  }
  .counterpoint > div > .DOMRecMovie:not(:-webkit-full-screen).poppedOut, .counterpoint > div > .DOMRecScreenshot:not(:-webkit-full-screen).poppedOut {
    transition: top 0.3s, width 0.3s;
  }
}
@media not (min-width: 600px) {
  .counterpoint > div > .DOMRecMovie:not(:fullscreen), .counterpoint > div > .DOMRecScreenshot:not(:fullscreen) {
    position: relative;
    left: calc((100% - 200px)/2);
    width: 200px;
    max-width: none;
    box-shadow: 0 0 5px black;
  }
  .counterpoint > div > .DOMRecMovie:not(:fullscreen).poppedOut, .counterpoint > div > .DOMRecScreenshot:not(:fullscreen).poppedOut {
    transition: left 0.3s, width 0.3s;
  }
  /* UGH WEBKIT */
  .counterpoint > div > .DOMRecMovie:not(:-webkit-full-screen), .counterpoint > div > .DOMRecScreenshot:not(:-webkit-full-screen) {
    position: relative;
    left: calc((100% - 200px)/2);
    width: 200px;
    max-width: none;
    box-shadow: 0 0 5px black;
  }
  .counterpoint > div > .DOMRecMovie:not(:-webkit-full-screen).poppedOut, .counterpoint > div > .DOMRecScreenshot:not(:-webkit-full-screen).poppedOut {
    transition: left 0.3s, width 0.3s;
  }
}

.screenshot {
  max-width: 100%;
  height: auto;
  box-shadow: 5px 5px 20px black;
}
.window-screenshot {
  max-width: 100%;
  height: auto;
}

.nav {
  padding: 8px 12px;
}
.nav:not(#prev):not(#next) {
  visibility: hidden;
  position: absolute;
}
#prev, #next {
  position: fixed;
  background: black;
  color: white;
  bottom: 0;
  z-index: 10;
  visibility: visible;
}
#prev:not(:hover), #next:not(:hover) {
  text-decoration: none;
}
#prev {
  left: 0;
}
#next {
  right: 0;
}
@media (max-height: 600px) {
  @media (max-width: 800px) {
    #navContainer {
      width: 100%;
    }
    #prev, #next {
      position: static;
    }
    #prev {
      float: left;
    }
    #next {
      float: right;
    }
    .nav:not(#prev):not(#next) {
      display: none;
    }
  }
}

.quotes, .quotesNoAnimate {
  position: relative;
  width: 100%;
  display: flex;
  overflow: hidden;
  font-size: 130%;
}
.quotes > div, .quotesNoAnimate > div {
  box-sizing: border-box;
  width: 100%;
  flex: 0 0 100%;
  padding: 0 1em;
  text-align: center;
  position: relative;
}
.quotes > div {
  animation: quote-slide 35s ease infinite;
}
.quotes > div:before, .quotesNoAnimate > div:before {
  content: "❝ ";
}
.quotes > div:after, .quotesNoAnimate > div:after {
  content: " ❞";
}
@keyframes quote-slide {
  0% { left: 0; }
  12% { left: 0; }
  14% { left: -100%; }
  26% { left: -100%; }
  28% { left: -200%; }
  42% { left: -200%; }
  44% { left: -300%; }
  56% { left: -300%; }
  58% { left: -400%; }
  70% { left: -400%; }
  72% { left: -500%; }
  84% { left: -500%; }
  86% { left: -600%; }
  98% { left: -600%; }
}

.customer-quote {
  padding: 0 1em;
  text-align: center;
  font-style: italic;
}
.customer-quote > .author {
  font-style: normal;
  text-align: right;
}

/* Blog */

.blog .meta, .blog .post-meta, .blog .post-more {
  font-style: italic;
  font-size: 80%;
}

.blog code, .blog pre {
  font-family: Noto Sans Mono;
  word-break: break-word;
  font-size: 80%;
  background: rgb(230,230,230);
}

.quotes > div:before, .quotesNoAnimate > div:before {
  content: "❝ ";
}
.quotes > div:after, .quotesNoAnimate > div:after {
  content: " ❞";
}