h1 {
  font-size: 35px;
}

h2 {
  padding-top: 20px;
  margin-bottom: 5px;
  font-size: 22px;
}

p {
  margin-top: 0;
}


p {
  word-spacing: 0.6ch;
}

html, body {
  height: 100%;
  margin: 0;
}

body {
  font-family: 'Noto Sans', sans-serif;
  background: white;
  color: black;
  transition: all 0.3s ease;
  padding-left: 1vw;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

footer {
  text-align: center;
  padding: 20px 0;
  color: rgb(0, 0, 0);
  margin-top: auto;
}

a:link {
  color: rgba(0, 0, 0, 0.433);
  background-color: transparent;
  text-decoration: none;
}

a:visited {
  color: rgb(97, 97, 97);
  background-color: transparent;
  text-decoration: none;
}

a:hover {
  color: rgb(158, 158, 158);
  background-color: transparent;
  text-decoration: underline;
}

a:active {
  color: yellow;
  background-color: transparent;
  text-decoration: underline;
}

/* Dark mode styles */
body.dark-mode {
  background: black !important;
  color: white !important;
}

body.dark-mode h1,
body.dark-mode h2,
body.dark-mode p,
body.dark-mode header,
body.dark-mode footer {
  color: white !important;
}

body.dark-mode a:link {
  color: rgba(255, 255, 255, 0.7) !important;
}

body.dark-mode a:visited {
  color: #ccc !important;
}

body.dark-mode a:hover {
  color: #aaa !important;
}

/* Dark mode toggle button styles */
body.dark-mode div[onclick*="dark-mode"] {
  background: rgba(0, 0, 0, 0.9) !important;
  border-color: #fff !important;
}

.theme-toggle {
  cursor: pointer;
  position: fixed;
  top: 10px;
  right: 10px;
  z-index: 9999;
  font-family: inherit;
  font-size: 1rem;
  color: inherit;
  background: none;
  border: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
  letter-spacing: 0.2ch;
}
.theme-toggle .theme-dark { display: none; }
body.dark-mode .theme-toggle .theme-bright { display: none; }
body.dark-mode .theme-toggle .theme-dark { display: inline; }

@media (max-width: 600px) {
  h1 {
    font-size: 2.2rem;
    text-align: center;
    letter-spacing: 0.2ch;
  }

  h2 {
    font-size: 1.4rem;
    padding-top: 16px;
    text-align: left;
    letter-spacing: 0.2ch;
  }

  p {
    font-size: 1.1rem;
    word-spacing: 0.2ch;
    text-align: center;
    padding-left: 8px;
    padding-right: 8px;
  }

  body {
    padding: 0 2vw;
  }

  footer {
    position: static;
    letter-spacing: 0.2ch;
    font-size: 0.7rem;
    padding: 12px 0;
  }
}
