html {
  height: 100%;
  scroll-behavior: smooth;
}

body {
  padding: 4em;
  padding-right: 6em;
  padding-top: 2em;
  padding-bottom: 3em;
  max-width: 960px;
  font-size: 14pt;
  line-height: 1.5em;
  font-family: Merriweather;
  background: #eeeeee;
  color: #222222;
}

body::before {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  content: "";
  position: fixed;
  background: url(background.avif) top right no-repeat;
  animation: zoom 3s infinite alternate ease-in-out;
  background-size: cover;
}

@keyframes zoom {
  0% {
    filter: blur(0px);
    transform: scale(1);
    opacity: 0.95;
  }

  100% {
    filter: blur(5px);
    transform: scale(1.025);
    opacity: 0.8;
  }
}

hr {
  border: none;
  border-top: 2px dotted #555555;
  margin-bottom: 2.5em;
  margin-top: 3em;
  opacity: 0.5;
}

h1 {
  font-size: 24pt;
  padding-bottom: 0.5em;
}

h2 {
  font-size: 22pt;
  padding-bottom: 0.2em;
  padding-top: 0.5em;
}

h3 {
  font-size: 16pt;
  padding-top: 0.5em;
}

a {
  color: #063146;
}

ul,
ol {
  margin-left: 0.8em;
  padding-left: 0.8em;
}

ul#nav {
  top: 2em;
  right: 2.75em;
  text-align: right;
  position: fixed;
  list-style-type: none;
  z-index: 10;
  padding: 0;
  margin: 0;
}

ul#nav li {
  font-size: smaller;
  text-align: center;
  margin: 0.5em 0em;
}

ul#nav li.active a {
  color: #cccccc;
  background-color: #707070;
}

ul#nav li.inactive a {
  pointer-events: none;
  background-color: #707070 !important;
}

ul#nav li.inactive a strong {
  color: #999999;
}

ul#nav li:first-child a,
ul#nav li:nth-last-of-type(-n+2) a {
  color: #fefefe !important;
  background-color: #505050;
}

ul#nav a {
  color: #444444;
  display: inline-block;
  transition: all 0.2s ease-in-out;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  background-color: #dddddd;
  backdrop-filter: blur(5px);
  text-decoration: none;
  padding: 0.2em 0.4em;
  border-radius: 1em;
  width: 1.425em;
}

@media (pointer: fine) {

  ul#nav a:hover,
  ul#nav a:active {
    color: #cccccc !important;
    background-color: #444444 !important;
  }
}

@media (min-width: 1600px) {
  body {
    margin-right: auto;
    margin-left: auto;
  }
}

@media (max-width: 900px) {
  html {
    -webkit-text-size-adjust: 100%;
  }

  body {
    font-size: 12pt;
    line-height: 1.6em;
    padding: 1em;
    padding-right: 2.3em;
    padding-top: 1em;
    background: #eeeeee url(background-m.avif) top right;
    background-repeat: repeat-y;
  }

  body::before {
    animation: unset;
    display: none;
  }

  h1 {
    font-size: 18pt;
    line-height: 1.3em;
    padding-bottom: 0em;
    margin-top: 0em;
  }

  h2 {
    font-size: 16pt;
    line-height: 1.3em;
  }

  h3 {
    font-size: 14pt;
  }

  p {
    margin-top: 1.2em;
    margin-bottom: 1.2em;
  }

  p:last-child {
    margin-top: 2em;
  }

  ul#nav {
    top: 0.1em;
    right: 0.5em;
  }

  ul#nav a {
    width: 1.5em;
    padding: 0.15em 0.35em;
  }

  ul#nav a strong {
    font-size: 8pt;
  }

  ul#nav li {
    font-size: small;
    margin: 0.5em 0em;
  }

  hr {
    margin-top: 2em;
    margin-bottom: 0em;
  }

}

#share-container {
  display: flex;
  justify-content: left;
}

#share-button {
  gap: 0.5em;
  font-size: 12pt;
  color: #444444;
  background-color: #eeeeee;
  border: 1px solid #99999999;
  transition: all 0.2s ease-in-out;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  font-family: Merriweather;
  display: inline-flex;
  align-items: center;
  border-radius: 2em;
  padding: 0.6em 1.2em;
  cursor: pointer;
}

#share-button svg g {
  fill: #444444;
  transition: fill 0.2s ease-in-out;
}

@media (pointer: fine) {
  #share-button:hover {
    background-color: #444444;
    color: #cccccc;
  }

  #share-button:hover svg g {
    fill: #cccccc;
  }
}

@media (max-width: 900px) {
  #share-button {
    font-size: 11pt;
    padding: 0.5em 1em;
    background-color: #dddddd;
  }

  #share-container {
    margin-bottom: 1em;
  }
}

#spotify {
  filter: grayscale(1);
  max-width: 450px;
  height: 152px;
}

@media (pointer: fine) {
  #spotify {
    height: 420px;
    max-width: 550px;
  }
}

.separator {
  margin-left: -2em;
  margin-bottom: -0.75em;
  text-align: center;
  font-size: small;
  opacity: 0.35;
}

@media (max-width: 900px) {
  .separator {
    margin-left: -0.5em;
  }
}

#disclaimer {
  margin: 1em;
  bottom: 0em;
  position: fixed;
  text-align: center;
  font-size: small;
  line-height: 1.2em;
  width: calc(100% - 2em);
  color: #777777;
}

@media (max-width: 900px) {
  #disclaimer {
    font-size: x-small;
  }
}

#floating-container {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 5;
}

.floating-object {
  opacity: 0;
  position: fixed;
  font-family: Merriweather;
  font-size: 14pt;
  color: #151515;
}

.floating-object p {
  margin: 0;
  padding: 0;
  width: 200px;
  font-size: 11pt;
  line-height: 1.2em;
}

.floating-object strong {
  font-size: 8pt;
  position: relative;
  color: #777777;
  top: -2.5em;
}

@keyframes floatAndFade {
  0% {
    opacity: 0;
    transform: translateY(10px) scale(0.95);
  }

  30% {
    opacity: 0.9;
    transform: translateY(8px) scale(0.98);
  }

  50% {
    opacity: 0.7;
    transform: translateY(6px) scale(0.98);
  }

  70% {
    opacity: 0.9;
    transform: translateY(8px) scale(0.98);
  }

  100% {
    opacity: 0;
    transform: translateY(6px) scale(0.95);
  }
}

@media (max-width: 900px) {
  @keyframes floatAndFade {
    0% {
      opacity: 0;
      transform: translateY(10px) scale(0.75);
    }

    30% {
      opacity: 0.9;
      transform: translateY(8px) scale(0.78);
    }

    50% {
      opacity: 0.7;
      transform: translateY(6px) scale(0.78);
    }

    70% {
      opacity: 0.9;
      transform: translateY(8px) scale(0.78);
    }

    100% {
      opacity: 0;
      transform: translateY(6px) scale(0.75);
    }
  }
}

#submit-form {
  margin: 1em;
  padding: 1em;
  padding-left: 2em;
  padding-right: 2em;
  padding-bottom: 1.5em;
  font-size: smaller;
  position: relative;
  border-radius: 1em;
  z-index: 10;
  opacity: 0;
}

#submit-form.visible {
  backdrop-filter: blur(5px);
  border: 1px solid #33333322;
  opacity: 1;
}

#submit-form input,
#submit-form textarea {
  border: 1px solid #999999;
  background-color: #eeeeee;
  border-radius: 5px;
  resize: none;
}

#show-form-button {
  margin: 2em;
  cursor: pointer;
  padding: 0.6em 1.4em;
  border-radius: 2em;
  border: 1px solid #999999;
  background-color: #dddddd;
  font-family: Merriweather;
  position: relative;
  display: none;
  z-index: 10;
}

#show-form-button.visible {
  display: block;
}

#show-form-button.inactive {
  opacity: 0.5;
  display: block;
  pointer-events: none;
}

#submit-button,
#cancel-button {
  padding: 0.5em 0.8em;
  border: 1px solid #999999;
  border-radius: 5px;
}

@media (max-width: 900px) {
  #show-form-button {
    margin: 1em;
    padding: 0.5em 1em;
  }

  #submit-form {
    margin: 0.5em;
    padding: 0.5em;
    padding-left: 1em;
    padding-right: 1em;
    padding-bottom: 1em;
  }
}

@media (prefers-color-scheme: dark) {
  html {
    filter: invert(0.95);
  }

  body {
    color: #151515;
    background-color: #eeeeee;
  }

  body::before {
    animation: zoom-dark 3s infinite alternate ease-in-out;
    filter: invert(1) brightness(2) !important;
  }

  ul#nav {
    filter: invert(1) contrast(1.3);
  }

  #spotify {
    filter: invert(1) grayscale(1) contrast(1.1);
  }
}

@keyframes zoom-dark {
  0% {
    filter: blur(0px);
    transform: scale(1);
    opacity: 0.2;
  }

  100% {
    filter: blur(5px);
    transform: scale(1.025);
    opacity: 0.15;
  }
}

@media (prefers-color-scheme: dark) and (max-width: 900px) {
  html {
    filter: invert(0.95);
  }

  body {
    color: #151515;
    background-color: #ffffff;
  }

  ul#nav {
    filter: invert(1) brightness(1.3);
  }

  ul#nav li a {
    background-color: #c0c0c0;
  }

  ul#nav li.active a,
  ul#nav li.inactive a {
    background-color: #808080 !important;
  }
  
  #spotify {
    filter: invert(1) grayscale(1) contrast(1.75);
  }
}
