* {
  font-family: monospace;
}

html {
  height: 100dvh;
  display: block;
}

body {
  min-height: 100dvh;
  margin: 0;
  display: block;
  width: 100%;
}

body > * {
  box-sizing: border-box;
}

#main {
  min-height: calc(100dvh - 3em);
  display: flow-root;
  padding: 5px;
}

#main object {
  width: 100%;
}

#footer {
  border-top: black 2px solid;
  padding: 3px 5px;
  height: 3em;
  display: flex;
}

#footer > * {
  display: inline-flex;
}

#footer .spread {
  flex: fit-content;
}

#footer .right {
  text-align: right;
  display: inline;
}

#footer * {
  padding: 0px 2px;
}

pre.code {
  background: lightgray;
  padding: 5px;
}

pre.code {
  white-space: pre-wrap;
}
pre.code::before {
  counter-reset: listing;
}
pre.code code {
  counter-increment: listing;
  display: block;
}
pre.code code::before {
  content: counter(listing);
  display: inline-block;
  width: 2em;         /* now works */
  padding-left: auto; /* now works */
  padding-right: 0.5em;
  border-right: black 1px solid;
  margin-right: 1em;
  margin-left: auto;  /* now works */
  text-align: right;  /* now works */
}

@media (prefers-color-scheme:dark) {
	* {
	  color:#fff;
	}

	body {
	  background:#000;
	}

	img[src*="svg"], img[src*="png"] {
	  filter:invert(1) hue-rotate(180deg);
	}

	pre.code {
	  background: rgba(255, 255, 255, 0.11);
	}

	#footer {
	  border-top-color:white;
	}
}
