body, html {
  margin: 0; padding: 0; height: 100%;
  font-family: Georgia, serif;
}

.wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 2rem;
  min-height: 100vh; /* allows content to grow beyond the screen */
  margin-top: 30px;
}

.TextBody {
  max-width: 90vw;            /* max width relative to viewport */
  text-align: center;
  background-color: rgb(192, 204, 221);
  border-radius: 10px;
  padding-bottom: 25px;
  padding-left: 20px;
  padding-right: 20px;
  width: 100%;
}


canvas {
  max-width: 90vw;            /* make canvas responsive */
  height: auto;
  border: 1px solid #ccc;
}
  .back-button {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 0.5rem 1rem;
  font-size: 1rem;
  background-color: #000000;
  border: none;
  border-radius: 5px;
  color: white;
  cursor: pointer;
}

.back-button:hover {
  background-color: #aaa;
}

#startBtn, #stopBtn {
  padding: 10px 20px;
  font-size: 16px;
  font-family: 'Segoe UI', sans-serif;
  border: none;
  border-radius: 8px;
  margin: 10px;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.2s ease;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* Start button style */
#startBtn {
  background-color: #28a745;
  color: white;
}

#startBtn:hover {
  background-color: #218838;
  transform: scale(1.05);
}

/* Stop button style */
#stopBtn {
  background-color: #dc3545;
  color: white;
}

#stopBtn:hover {
  background-color: #c82333;
  transform: scale(1.05);
}

#sliderContainer {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 20px;
  font-family: sans-serif;
}

#sliderContainer label {
  color: white;
  font-size: 16px;
  margin-bottom: 5px;
}

#speedSlider {
  width: 200px;
  margin-bottom: 8px;
  accent-color: #00bcd4; /* light cyan-blue */
}

#speedValue {
  color: #000000;
  font-size: 14px;
}

#dampenBtn {
  padding: 10px 20px;
  font-size: 16px;
  font-family: 'Segoe UI', sans-serif;
  border: none;
  border-radius: 8px;
  margin: 10px;
  cursor: pointer;
  background-color: #17a2b8;
  color: white;
  transition: background-color 0.3s ease, transform 0.2s ease;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

#dampenBtn:hover {
  background-color: #138496;
  transform: scale(1.05);
}

.math-scroll {
  overflow-x: auto;
  max-width: 100%;
  padding: 0.5rem;
  white-space: nowrap;
}

#pause-reset{
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 30px;
}

#controls {
  background-color: #333;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 5px auto;        /* auto centers it horizontally */
  gap: 15px;
  padding: 20px;
  border-radius: 10px;
  width: 100%;
  max-width: 800px;
}


#simSpeed {
  color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}

#desc{
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;
  font-size: 18px;
}

#simSec{
  display: flex;
  flex-direction: column;
  align-content: center;
  justify-content: center;
  gap: 15px;
  background-color: rgb(192, 204, 221);
  max-width: 90vw;   
  border-radius: 10px;
  padding-bottom: 20px;
  padding-left: 20px;
  padding-right: 20px;
  padding-top: 20px;
  width: 100%;
  max-width: 1600px;
}

/* Make buttons fit nicely on small screens */
@media (max-width: 600px) {
  #startBtn, #stopBtn, #dampenBtn {
    font-size: 14px;
    padding: 8px 12px;
    margin: 5px;
  }

  #pause-reset {
    flex-direction: column;
    gap: 10px;
  }

  #controls {
    padding: 10px;
  }
}

#controls {
  box-sizing: border-box; /* account for padding in width */
  width: 100%;
  max-width: 800px;
  margin: 0 auto; /* perfectly center inside simSec */
}

#simSec {
  box-sizing: border-box;
}
