/* Make box sizing include padding and border in element size */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  font-family: "Open Sans", sans-serif;
  background-color: #000;
  /* color: #fff; */
  /* ensure content sits inside iOS safe areas so top/bottom blend with black UI */
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
  /* cursor: pointer; */
  touch-action: manipulation;
  overscroll-behavior: none;
}
canvas {
  display: none;
}
a {
  color: black;
}
em {
  font-style: normal;
  font-weight: 200;
}

button {
  font-size: 100%;
  color: #000;
}
.show {
  right: 0;
}

.hide {
  right: 100vw;
}

#info {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  padding: 0 1rem 0 1rem;
  z-index: 200;
  max-width: 100vw;
}
.open {
  background-color: rgba(255, 255, 255, 0.5);
  background-color: white;
  width: 100vw;
  height: 100vh;
  font-size: clamp(24px, calc((100vw - 20vw) / 27), 140px);
}

#info-inner {
  padding-bottom: 1rem;
}

/* .open #info-inner {
 width: 100vw;
} */

#strategy-container {
  height: 100vh;
  height: 100svh;
  width: 100vw;
  overflow: hidden;
  background-color: black;
  padding: clamp(24px, calc((100vw - 20vw) / 27), 140px);
}
#strategy {
  border-radius: clamp(24px, calc((100vw - 20vw) / 27), 140px);
  background: white;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  user-select: none;
  /* Aim for ~6 words per line at full width (10vw padding each side).
     Compute font-size so ~36 characters fit into the available width (100vw - 20vw).
     The middle value scales with viewport: (100vw - 20vw) / 36 = 80vw / 36. */
  font-size: clamp(24px, calc((100vw - 20vw) / 10), 140px);
  padding: 8vw;
}

:root {
  --large-mobile-size: 35em;
  --tablet-size: 48em;
  --desktop-size: 60em;
  --widescreen-size: 75em;
}

@media only screen and (min-width: 35em) {
  #strategy {
    padding: 10vw;
    font-size: clamp(24px, calc((100vw - 20vw) / 13), 140px);
  }
}
@media only screen and (min-width: 48em) {
  #strategy {
    padding: 12vw;
    font-size: clamp(24px, calc((100vw - 20vw) / 16), 140px);
  }
}
@media only screen and (min-width: 60em) {
  #strategy {
    padding: 13vw;
    font-size: clamp(24px, calc((100vw - 20vw) / 20), 140px);
  }
}
@media only screen and (min-width: 75em) {
  #strategy {
    /* padding: 15vw; */
    font-size: clamp(24px, calc((100vw - 20vw) / 27), 140px);
  }
}

#about,
#about a {
  color: black;
  /* font-size: 80%; */
}

#close-button {
  background: transparent;
  border: 2px solid transparent;
  padding: 5px 0;
  font-size: 3em;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.6);
}
.open #close-button {
  color: black;
}
#download {
  background: black;
  color: white;
  border: 2px solid transparent;
  padding: 5px;
  margin-bottom: 5px;
}

#close-button:focus,
#download:focus {
  outline: none;
  /* border-bottom: 2px solid magenta; */
}
#download.active,
#download.active:focus {
  background: cyan;
}
.hidden {
  display: none;
}
