:root {
  --background-color: #ecf0f1;
  --transparent-background-color: #ecf0f1cc;
  --shadow-color: #7f8c8d;

  --white: #ffffff;
  --light-grey: #bdc3c7;
  --grey: #95a5a6;
  --transparent-grey: #95a5a664;
  --dark-grey: #7f8c8d;

  --tooltip-color: #000000cc;

  --light-text-color: #34495e;
  --dark-text-color: #2c3e50;


  --title-line-height: 1.2;
  --text-line-height: 1.5;
  --h1-font-size: 2em;
  --h1-font-weight: 500;
  --h2-font-size: 1.6em;
  --h2-font-weight: 400;
  --h3-font-size: 1.2em;
  --h3-font-weight: 400;
  --other-fonts-size: 1em;
  --other-fonts-weight: 300;

  --desktop-button-height: 12mm;
  --touch-devices-button-height: 11mm;

  --tooltip-arrow-size: 10px;
}

* {
  margin: 0;
  padding: 0;
  list-style: none;
  text-decoration: none;
  appearance: none;
  border: none;
  outline: none;
  box-sizing: border-box;
}

:focus {
  outline: none;
}

h1, h2, h3, p, label, input, output, textarea, ::placeholder {
  line-height: var(--title-line-height);
  user-select: none;
  color: var(--dark-text-color);
  text-shadow: 1px 1px 1px var(--shadow-color);
}

h1 {
  font-size: var(--h1-font-size);
  font-weight: var(--h1-font-weight);
}

h2 {
  font-size: var(--h2-font-size);
  font-weight: var(--h2-font-weight);
}

h3 {
  font-size: var(--h3-font-size);
  font-weight: var(--h3-font-weight);
}

p, label, input, textarea, ::placeholder, output {
  line-height: var(--text-line-height);
  font-size: var(--other-fonts-size);
  font-weight: var(--other-fonts-weight);
}

body {
  display: flex;
  overflow: hidden;
  width: 100vw;
  height: 100vh;
  font-family: 'Roboto', sans-serif;
  font-family: 'Roboto Flex', sans-serif;
  background-color: var(--background-color);
  top: 0;
  left: 0;
}

.icon path {
  stroke: var(--white);
}

#noJS-modal-overlay {
  display: flex;
  width: 100%;
  height: 100%;
  background-color: var(--transparent-background-color);
  backdrop-filter: blur(3px);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
}

#noJS-modal,
#viewer-modal {
  display: flex;
  flex-direction: column;
  min-width: 350px;
  max-width: 90vw;
  height: auto;
  padding: 15px 30px;
  padding-top: calc(3em - 15px + 5px);
  border-radius: 5px;
  text-align: center;
  background-color: var(--tooltip-color);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 100;
}

#viewer-modal {
  visibility: hidden;
  backdrop-filter: blur(3px);
  position: fixed;
}

#viewer-modal h3 {
  line-height: var(--text-line-height);
  color: var(--white);
  text-shadow: none;
}

#noJS-modal h2 {
  margin-bottom: 15px;
  text-wrap: balance;
  color: var(--white);
  text-shadow: none;
}

#noJS-modal p {
  line-height: var(--text-line-height);
  color: var(--white);
  text-shadow: none;
}

.close-button {
  display: flex;
  width: 5em;
  height: 3em;
  justify-content: center;
  align-items: center;
  background-color: transparent;
  font-size: 0.7em;
  font-weight: bold;
  color: var(--white);
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
}

.close-button:hover {
  border-radius: 0 0 0 5px;
  background-color: var(--transparent-grey);
  font-weight: bold;
  text-shadow: 0px 0px 1px var(--light-text-color);
}

#viewer {
  display: none;
  width: 100%;
  height: 100%;
  position: relative;
  top: 0;
  left: 0;
  z-index: 1;
}

#download-button {
  display: flex;
  overflow: hidden;
  border-radius: 5px;
  background-color: var(--tooltip-color);
  backdrop-filter: blur(3px);
  position: fixed;
  right: 3vh;
  bottom: 3vh;
  z-index: 100;
  @media only screen and (orientation: portrait), (max-width: 800px) {
    right: 3vw;
    bottom: 3vw;
  }
}

#download-button button {
  display: flex;
  width: 100%;
  height: 100%;
  background-color: transparent;
  cursor: pointer;
}

#download-button:hover button {
  background-color: var(--transparent-grey);
}

#download-button .icon {
  height: var(--desktop-button-height);
  margin: 15px;
  @media only screen and (orientation: portrait), (max-width: 800px) {
    height: var(--touch-devices-button-height);
    margin: 10px;
  }
}




