/* Reset default browser styles. Based on Josh Comeau's reset and the Condensed Universal Reset*/
/* 1. Use a more-intuitive box-sizing model */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* 8. Avoid text overflows */
p,
label,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

/* 9. Improve line wrapping */
p,
label {
  text-wrap: pretty;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

/* Wipe out all padding and sizes */
* {
  vertical-align: baseline;
  border: 0 none;
  outline: 0;
  padding: 0;
  margin: 0;
}

:root {
  --icon-height: 32px;
  --icon-padding: 6px;
  --footer-height: 44px;
}

footer {
  display: flex;
  position: fixed;
  bottom: 0;
  width: 100%;
  height: var(--footer-height);
  background-color: gray;
  view-transition-name: footer;
}
footer a {
  display: block;
  padding: var(--icon-padding);
}
footer a img {
  display: block;
}

::view-transition-group(footer),
::view-transition-old(footer),
::view-transition-new(footer) {
  animation: none;
}

.overlay {
  position: absolute;
  width: 100%;
  z-index: 3;
  pointer-events: none;
}
.overlay button,
.overlay a,
.overlay img {
  pointer-events: auto;
}

.world_display {
  position: fixed;
  width: 100dvw;
  height: 100dvh;
  top: 0;
  left: 0;
  z-index: 1;
  view-transition-name: world_display;
}

::view-transition-group(world_display),
::view-transition-old(world_display),
::view-transition-new(world_display) {
  animation: none;
}

.screen_controls {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(85, 85, 85, 0.5);
  padding: 1vh;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
  pointer-events: none;
}
.screen_controls .vertical_movement_buttons {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1vh;
}
.screen_controls .vertical_movement_buttons :first-child {
  margin-bottom: 1vh;
}
.screen_controls button {
  pointer-events: auto;
  height: 10vh;
  width: 10vh;
  background-color: #999;
  border: 2px solid #933;
  border-radius: 1vh;
  font-weight: bold;
  font-size: xx-large;
}
.screen_controls button:active, .screen_controls button.active {
  background-color: #222;
}
@media not (pointer: coarse) {
  .screen_controls {
    visibility: hidden;
  }
}

main {
  display: flex;
  justify-content: center;
  width: 100%;
  padding-bottom: var(--footer-height);
}
main .page_wrapper {
  margin: 20px auto;
  padding: 20px;
  background-color: hsla(200, 15%, 30%, 0.95);
  color: white;
  width: fit-content;
  max-width: 50dvw;
  border-radius: 2rem;
  pointer-events: auto;
  view-transition-name: page_wrapper;
}
main .page_wrapper img {
  max-width: 100%;
}

::view-transition-group(page_wrapper) {
  animation-duration: 0.25s;
  animation-timing-function: ease;
}

::view-transition-new(page_wrapper) {
  animation-name: slide-in;
}

::view-transition-old(page_wrapper) {
  animation-name: slide-out;
}

@keyframes slide-in {
  from {
    transform: translateY(100dvh);
  }
}
@keyframes slide-out {
  to {
    transform: translateY(100dvh);
  }
}
.markdown_content {
  margin: 10px;
  justify-self: center;
  width: 100%;
}
.markdown_content p {
  margin: 8px auto;
}
.markdown_content h2 {
  margin-top: 20px;
}
.markdown_content h3 {
  margin-top: 15px;
}
.markdown_content h4 {
  margin-top: 10px;
}
.markdown_content ul,
.markdown_content ol {
  list-style-position: inside;
}
