* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 17px;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body,
::backdrop {
  font-family: "Inter", sans-serif;

  --background: #191b19;
  --secondary-background: #5b5b5b;
  --tertiary-background: #2c2c2c;
  --text: #fff;
  --primary: #88dc54;
  --secondary: #498e1f;

  --default-spacing: 45px;

  --line-height: 180%;
}

body {
  background-color: var(--background);
  color: var(--text);

  min-height: 100%;
}

.icon {
  width: 1rem;
  padding: 0;
  margin: 0;
}

::selection {
  background: var(--secondary);
}

/* Text Styles */
h1 {
  font-size: 4rem;
  font-weight: bold;
  text-align: center;
}

h2 {
  font-size: 2em;
  font-weight: bold;
  color: var(--text);
  text-align: left;
  width: 100%;
  hyphens: auto;
}
h3 {
  color: var(--primary);
  font-weight: normal;
  font-size: 1rem;
  width: 100%;
  margin-bottom: -var(--default-spacing);
}

h4 {
  line-height: var(--line-height);
  font-weight: normal;
}

.task-header,
.help-header {
  color: var(--text);
  padding: 0px 12px;
  border: 1px solid var(--primary);
  border-radius: 20px;
  font-size: 1rem;
  margin-right: auto;
  margin-bottom: 10px;

  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

.task-header img {
  filter: brightness(0) invert(1);
  display: none;
}

.task h4 {
  color: var(--primary);
}

.help-header {
  border: 1px solid var(--secondary);
}

.headline {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

p {
  line-height: var(--line-height);
}

section > p {
  width: 100%;
}

strong {
  font-weight: normal;
  color: var(--primary);
}

em {
  color: var(--secondary);
}

.message {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;

  color: var(--secondary-background);

  transition: all 0.1s;
}

/* Button Styles */
.primary-button,
.secondary-button {
  width: 200px;
  padding: 12px;

  display: block;

  font-weight: bold;
  border-radius: 35px;
  text-align: center;

  color: var(--background);
  background: var(--primary);
  border: 2px solid var(--primary);

  cursor: pointer;
  transition: all 0.2s;

  font-size: 1rem;
}
.primary-button:hover,
.secondary-button:hover {
  background: none;
  color: var(--primary);
}

.secondary-button {
  color: var(--text);
  background: var(--secondary-background);
  border: 2px solid var(--secondary-background);
}
.secondary-button:hover {
  color: var(--text);
}

.slim {
  padding: 10px;
  width: 150px;
}

.utility-button {
  width: 38px;
  height: 38px;
  border-radius: 20px;

  display: flex;
  align-items: center;
  justify-content: center;

  font-weight: bold;
  font-size: 18px;

  color: var(--text);
  background: var(--secondary-background);
  border: 2px solid var(--secondary-background);

  cursor: pointer;
  transition: all 0.2s;
}
.utility-button:hover {
  background: none;
}

.disabled:not(input) {
  background: var(--tertiary-background);
  border: 2px solid var(--tertiary-background);
  color: var(--secondary-background);
}
.disabled:hover:not(input) {
  background: var(--tertiary-background);
  border: 2px solid var(--tertiary-background);
  color: var(--secondary-background);
}

input[type="range"].disabled::-moz-range-thumb {
  background: var(--tertiary-background);
}

input[type="text"].disabled {
  border: 2px solid var(--secondary-background);
}

/* Section Level Styles */
section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);

  padding: 0 20px;
  padding-top: calc(3 * var(--default-spacing));
  margin: 0 auto;
  max-width: 800px;
}

.divider {
  background: var(--secondary);
  width: 100%;
  height: 2px;

  max-width: 1000px;
  margin: 0 auto;
}

details {
  cursor: pointer;

  width: 100%;
  padding: 10px;

  border-radius: 10px;
  background-color: var(--tertiary-background);
}

details .details {
  margin-top: 20px;
}

.flex {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

.custom-diagram,
.split-view {
  margin-top: calc(1.5 * var(--default-spacing));
}

.custom-diagram + *,
.split-view + * {
  margin-top: calc(1.5 * var(--default-spacing));
}

#measure-pi {
  display: flex;
  flex-direction: column;
  gap: calc(2 * var(--default-spacing));
  align-items: center;
  justify-content: center;
}

#measure-pi .outline-circle {
  width: 300px;
  height: 300px;
  flex-shrink: 0;
  border-radius: 50%;

  display: flex;
  align-items: center;
  justify-content: center;

  background: var(--tertiary-background);
}

#measure-pi .measure-circle {
  width: calc(255px * 0.6 + 45px);
  height: calc(255px * 0.6 + 45px);
  border-radius: 50%;

  border: 2px dashed var(--primary);

  display: flex;
  align-items: center;
  justify-content: center;
}

#measure-pi .measure-thumb-wrapper {
  position: relative;
  width: 100%;
  height: 100%;

  opacity: 0;
  transition: all 0.1s;
  animation: none;
}

@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}

#measure-pi .diagram-wrapper {
  gap: calc(var(--default-spacing) * 2);
}

#measure-pi .measure-thumb {
  width: 25px;
  height: 25px;
  border-radius: 50%;

  background: var(--primary);

  position: absolute;
  top: -12.5px;
  left: calc(50% - 12.5px);
}

#measure-pi .measure-description {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  gap: calc(var(--default-spacing) / 2);
}

#measure-pi .info {
  display: flex;
  align-items: center;
  justify-content: space-between;

  width: 100%;
}

#measure-pi .info p:last-of-type {
  font-weight: bold;
}

#measure-pi .size-input {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--default-spacing) / 2);
}

input[type="range"] {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;

  background: none;
}

/* Add focus for accessibility */
input[type="range"]:focus {
  outline: none;
}

input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;

  width: 25px;
  height: 25px;

  border: none;
  border-radius: 13px;
  background: var(--primary);
  margin-top: -8.5px;

  box-shadow: none;
}
input[type="range"]::-moz-range-thumb {
  width: 25px;
  height: 25px;

  border: none;
  border-radius: 13px;
  background: var(--primary);
  margin-top: -12.5px;
}

input[type="range"]::-webkit-slider-runnable-track {
  width: 100%;
  height: 8px;

  background: var(--secondary-background);
  border: none;
  border-radius: 4px;
}
input[type="range"]::-moz-range-track {
  width: 100%;
  height: 8px;

  background: var(--secondary-background);
  border: none;
  border-radius: 4px;
}

input[type="range"]::-moz-range-progress {
  height: 8px;
  border-radius: 4px;

  background: var(--secondary);
}

#measure-pi .utility-button p {
  margin-bottom: 2px;
  margin-right: 1.43px;
}

.custom-diagram .measure-table {
  border-radius: 10px;
  background: var(--tertiary-background);
  overflow: hidden;

  display: flex;
  flex-direction: column;

  width: 500px;
}

.custom-diagram .measure-table .table-head {
  display: flex;
  align-items: center;
  justify-content: space-around;

  background: var(--secondary-background);
  padding: 10px;
}

.custom-diagram .measure-table .table-head p {
  width: 50%;
  text-align: center;
}

.custom-diagram .measure-table .table-body {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;

  position: relative;
}

.custom-diagram .measure-table .empty-message {
  color: var(--secondary-background);
  text-align: center;
}

.custom-diagram .measure-table .table-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;

  width: 100%;
  height: 100%;

  overflow: scroll;
}

.custom-diagram .measure-table .row {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;

  border-bottom: 1px solid var(--secondary-background);
}
.custom-diagram .measure-table .row:last-of-type {
  border-bottom: none;
}
.custom-diagram .measure-table .row p {
  flex-grow: 1;
  text-align: center;
  height: 30.6px;
}
#measure-pi .measure-table .row:first-of-type p {
  color: var(--primary);
}

.custom-diagram .measure-table .data {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.custom-diagram .measure-table .divider-line {
  height: 100%;
  width: 1px;
  background: var(--secondary-background);
  position: absolute;
}

#task-arc {
  width: 32px;
  height: 32px;

  position: absolute;
  top: 0;
  left: 0;
}

.arc-icon {
  position: relative;

  width: 32px;
  height: 32px;

  display: flex;
  align-items: center;
  justify-content: center;
}

.arc-icon img {
  width: 20px;
  height: 20px;
}

main {
  position: relative;
}

.top-nav {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: var(--default-spacing);
  position: fixed;
  top: var(--default-spacing);
  left: var(--default-spacing);

  padding: 5px 10px;

  background: var(--tertiary-background);
  border: 1px solid var(--secondary-background);
  border-radius: 20px;

  z-index: 10;

  transition: background 0.5s;
}
.top-nav:hover {
  background: var(--secondary-background);
}

.chapter-select {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--tertiary-background);
  border-radius: 30px;
}

a {
  text-decoration: none;
  color: var(--text);
}

.nav-sticky-container {
  position: absolute;
  height: calc(100% + 300px);
  left: 0;
  top: 0;
}

main nav {
  position: sticky;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  margin-top: calc(3 * var(--default-spacing) + 80%);

  padding: var(--default-spacing);

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: calc(var(--default-spacing) * 0.5);

  color: var(--secondary-background);

  transition: color 0.8s;

  max-width: calc((100vw - 850px) / 2);
}
main nav:hover {
  color: var(--text);
}

main nav #task-text {
  color: var(--secondary-background);
  transition: color 0.8s;
}
main nav:hover #task-text {
  color: var(--primary);
}
main nav .task-chapter.active #task-text {
  color: var(--primary);
}

main nav .active {
  color: var(--text);
  transition: color 0.8s;
}
main nav:hover .active {
  color: var(--primary);
}

main nav:hover .task-chapter.active {
  color: var(--text);
}

main nav a {
  text-decoration: none;
  color: var(--secondary-background);
  transition: color 0.8s;
}
main nav:hover a {
  color: var(--text);
}

main nav svg {
  stroke: var(--secondary-background);
  transition: stroke 0.8s;
}
main nav .task-chapter.active svg {
  stroke: var(--primary);
}
main nav .task-foreground {
  stroke: var(--secondary-background);
  transition: stroke 0.8s;
}
main nav:hover svg,
main nav:hover .task-foreground,
main nav .task-chapter.active .task-foreground {
  stroke: var(--primary);
}

.task-background {
  stroke: var(--tertiary-background);
  transition: stroke 0.8s;
}
nav:hover .task-background,
nav .task-chapter.active .task-background {
  stroke: var(--secondary-background);
}

.task-chapter,
.section-chapter,
.utility-chapter,
.chapter-info {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: calc(var(--default-spacing) * 0.5);

  font-weight: bold;
}

.task-chapter,
.chapter-info {
  margin-bottom: var(--default-spacing);
}
.utility-chapter {
  margin-top: var(--default-spacing);
}

.section-chapter p:first-of-type {
  width: 32px;
  text-align: center;
}
.section-chapter p:last-of-type {
  hyphens: auto;
}
.utility-chapter p:first-of-type,
.chapter-info p:first-of-type {
  width: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.task-chapter-description p:last-of-type {
  font-size: 0.6rem;
}

header {
  width: 100vw;
  height: 100vh;
  overflow: hidden;

  position: relative;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  box-shadow: inset 0 -20px 20px -1px var(--background);
}

header .circle-background {
  position: absolute;
  width: 1000px;
  height: 1000px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

header .header-text {
  max-width: 600px;
}

header h2 {
  font-size: 1.4rem;
  color: var(--primary);
  text-align: center;
}

header p {
  margin: var(--default-spacing) 0;
  text-align: center;
}

header .pi-text {
  color: var(--secondary-background);
  font-size: 1rem;

  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  word-break: break-all;
  opacity: 0.25;

  line-height: 180%;
  letter-spacing: 6px;

  z-index: -2;

  user-select: none;

  font-family: "Roboto Mono", monospace;
  padding: 3px;
  text-align: center;
}

.equation {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid var(--tertiary-background);
}
.equation .bottom {
  padding: 7px 0;
  background: var(--background);
  width: 100%;
  text-align: center;
}
.equation .top {
  text-align: center;
  background: var(--tertiary-background);
  width: 100%;
  color: var(--primary);

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;

  padding: 18px 0;
}

.split-view {
  align-items: flex-start;
  gap: calc(2 * var(--default-spacing));
}
.split-view .description {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: var(--default-spacing);
}

.split-view .custom-diagram {
  width: 350px;
  margin: 0;
  position: sticky;
  top: calc(50% - 150px);
}

.split-view > p {
  width: 100%;
}

input[type="text"] {
  appearance: none;
  border: 2px solid var(--primary);
  font-size: 1rem;
  line-height: var(--line-height);
  background: var(--tertiary-background);
  border-radius: 25px;
  padding: 0px 12px;
  color: var(--text);
  transition: background 0.2s;
  text-align: center;
}

input[type="text"]:focus {
  outline: none;
  background: var(--secondary);
}

.cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

footer {
  background: var(--tertiary-background);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: var(--default-spacing);
}

footer > * {
  width: 33.33%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 20px;
}

footer a {
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--primary);
}

section:last-of-type {
  margin-bottom: calc(3 * var(--default-spacing));
}

#show-data .graph svg {
  width: 400px;
}
#show-data .graph {
  position: relative;
}

#show-data .marker {
  width: 15px;
  height: 15px;

  background: var(--secondary);
  border-radius: 50%;
  border: 3px solid var(--primary);
  outline: 2px solid var(--background);

  position: absolute;
}

#show-data .measure-table {
  width: 300px;
}

#show-data .diagram-wrapper {
  max-width: 100%;
  flex-wrap: wrap;
}

.custom-diagram {
  width: 100%;
}

#show-data .x-text {
  text-align: right;
  position: absolute;
  right: 0;
  bottom: 20px;

  display: flex;
  align-items: flex-end;
  justify-content: center;
  flex-direction: column;
}
#show-data .x-text p,
#show-data .y-text p {
  line-height: normal;
}
#show-data .y-text {
  position: absolute;
  top: 0;
  left: 20px;

  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
}

dialog[open] {
  position: fixed;
  width: 100vw;
  height: 100vh;
  top: 0;
  left: 0;

  appearance: none;
  border: none;
  background: none;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

dialog[open] .background {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;

  background-color: rgb(25, 27, 25, 0.2);
  backdrop-filter: blur(5px);
  animation: blur 3.3s 0s ease-in-out both;
}

dialog[open] .dialog-img-container {
  width: 200px;
  height: 200px;

  background: var(--tertiary-background);
  border: 10px solid var(--primary);

  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;

  animation: grow 2.5s 0.3s ease-in-out both;
}

@keyframes grow {
  0% {
    transform: scale(0);
  }
  30% {
    transform: scale(1);
  }
  80% {
    transform: scale(1);
  }
  100% {
    transform: scale(0);
  }
}
@keyframes appear {
  0% {
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes blur {
  0% {
    opacity: 0;
    -webkit-backdrop-filter: blur(0px);
    backdrop-filter: blur(0px);
  }
  9% {
    opacity: 1;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
  }
  90% {
    opacity: 1;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
  }
  100% {
    opacity: 0;
    -webkit-backdrop-filter: blur(0px);
    backdrop-filter: blur(0px);
  }
}

dialog[open] img {
  width: 100px;
  height: 100px;

  animation: grow 2.5s 0.5s ease-in-out both;
}

dialog[open] h2 {
  text-align: center;
  animation: appear 2.5s 0.5s ease-in-out both;
}

#number-range svg {
  width: 90%;
  margin: 0 auto;
  display: block;
}

#home-header-text {
  animation: growAndAppear 1.5s ease-in-out 0.6s both;
}

@keyframes growAndAppear {
  0% {
    opacity: 0;
    transform: scale(0);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.features {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: var(--default-spacing);

  width: 100%;
}

.features .divider {
  width: 2px;
  height: unset;
  flex-shrink: 0;
}

.features .feature {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;

  width: 33%;

  text-align: center;
}

.features .feature h1 {
  color: var(--primary);
}

.wide section {
  max-width: 1000px;
}

.faq {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

.faq h2 {
  width: 500px;
}
.faq:last-of-type {
  margin-top: var(--default-spacing);
}
.faq:last-of-type h2 {
  text-align: end;
}

.chapter-card {
  padding: 30px;
  border-radius: 10px;
  background: var(--tertiary-background);

  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);

  transition: background 0.5s, color 0.5s;
  cursor: pointer;
}

.chapter-card h2 {
  width: unset;
  color: var(--primary);
  transition: color 0.5s;
}

.chapter-card:hover {
  background: var(--primary);
  color: var(--background);
}
.chapter-card:hover h2 {
  color: var(--background);
}
.chapter-card:hover h3 {
  color: var(--background);
}

.chapter-card-text h3 {
  color: var(--text);
  font-weight: bold;
  transition: color 0.5s;
}

.chapter-card-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
}

.chapter-card-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 1fr;
  gap: var(--default-spacing);
}

.multiple-choice {
  padding: var(--default-spacing);
  width: 600px;
  border-radius: 10px;
  background: var(--tertiary-background);

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

.multiple-choice h3 {
  font-size: 2em;
  font-weight: bold;
  text-align: center;
  color: var(--text);
}

.multiple-choice input[type="checkbox"],
.multiple-choice input[type="radio"] {
  display: none;
}

.multiple-choice .options {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}

.multiple-choice label {
  padding: 10px;
  display: block;
  width: 100px;
  text-align: center;
  border-radius: 10px;
  background: var(--secondary-background);
  border: 2px solid var(--secondary-background);

  transition: border 0.2s, background 0.2s;
}

.multiple-choice input[type="checkbox"]:checked + label,
.multiple-choice input[type="radio"]:checked + label {
  border: 2px solid var(--primary);
}

.multiple-choice-input,
.multiple-choice-solution {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

.multiple-choice-solution {
  display: none;
}

.multiple-choice label:hover {
  background: var(--tertiary-background);
}

.search-pi-wrapper {
  padding: var(--default-spacing);
  border-radius: 10px;
  background: var(--tertiary-background);
  width: 600px;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

.search-input-wrapper {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 20px;
}
.search-input-wrapper button {
  width: 100px;
}

.search-answer-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);

  display: none;
}

.search-answer-wrapper p {
  width: 50%;
}

.search-answer-wrapper p:last-of-type {
  word-break: break-all;
}

#monte-carlo .point-canvas {
  width: 300px;
  height: 300px;
  flex-shrink: 0;
}

#monte-carlo .diagram-wrapper {
  gap: calc(2 * var(--default-spacing));
}

#monte-carlo .point-info {
  width: 100%;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

.point-statistics {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}
.point-statistics h3 {
  font-size: 2em;
  font-weight: bold;
  text-align: center;
}
#monte-carlo .point-info .buttons {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

#monte-carlo .point-canvas {
  position: relative;
}
#monte-carlo canvas {
  width: 300px;
  height: 300px;
  position: absolute;
  top: 0;
  left: 0;
}

.pizza {
  width: 300px;
  flex-shrink: 0;
}

.pizza-input-wrapper {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--default-spacing);
}

.fraction {
  display: flex;
  flex-direction: column;
}
.fraction p {
  padding: 0 4px;
  text-align: center;
}
.fraction p:first-of-type {
  border-bottom: 1px solid var(--text);
}

.equation .fraction p:first-of-type {
  border-bottom: 1px solid var(--primary);
}

.task {
  width: 100%;
}

.figure {
  width: 300px;
  flex-shrink: 0;
}

.factor-input-wrapper,
.pi-input-wrapper {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.external-link {
  text-decoration: underline;
  text-decoration-color: var(--primary);
}

.source-link {
  color: var(--primary);
}

.point-statistics.secondary-statistic {
  flex-direction: column;
  text-align: center;
}

#privacy-policy {
  align-items: flex-start;
}

/* Hide nav when screen to small, maybe later add custom nav */
@media only screen and (max-width: 1500px) {
  main nav {
    display: none;
  }
}

@media only screen and (max-height: 940px) {
  header .circle-background {
    width: 100vh;
    height: 100vh;
    opacity: 0.7;
  }

  header .header-text {
    max-width: 65vh;
  }
}

@media only screen and (max-width: 940px) {
  body {
    --default-spacing: 25px;
  }

  h1 {
    font-size: 2rem;
  }

  .top-nav {
    top: 10px;
    left: 10px;
  }

  .chapter-card-wrapper {
    display: flex;
    flex-direction: column;
  }

  .flex {
    flex-direction: column;
    gap: 20px;
  }

  section {
    padding-top: calc(3 * var(--default-spacing));
  }
  section:first-of-type {
    padding-top: var(--default-spacing);
  }

  .cta {
    flex-direction: column;
    gap: 20px;
  }

  .custom-diagram .measure-table {
    width: 100%;
  }

  header {
    height: 100%;

    padding: 100px 20px;
  }

  header .circle-background {
    display: none;
  }

  footer {
    flex-direction: column;
    padding: 20px;
  }

  footer > div {
    width: 100%;
  }

  .faq {
    flex-direction: column;
  }
  .faq h2 {
    width: 100%;
  }

  .faq:last-of-type {
    flex-direction: column-reverse;
    margin-top: calc(2 * var(--default-spacing));
  }
  .faq:last-of-type h2 {
    text-align: start;
  }

  .features {
    flex-direction: column;
  }
  .features .feature {
    width: 100%;
  }
  .features .divider {
    height: 2px;
    width: 100%;
  }

  #show-data .diagram-wrapper {
    gap: calc(2 * var(--default-spacing));
  }
  #show-data .graph svg {
    width: 100%;
  }

  .split-view .custom-diagram {
    position: static;
    margin: var(--default-spacing) auto;
    width: 300px;
  }

  .reverse-on-mobile {
    flex-direction: column-reverse;
  }

  .multiple-choice {
    width: 100%;
  }

  .search-pi-wrapper {
    width: 100%;
  }

  .search-answer-wrapper {
    flex-direction: column;
  }
  .search-answer-wrapper p {
    width: 100%;
  }

  .point-statistics.secondary-statistic {
    flex-direction: row;
    margin: 0 auto;
  }
}
