:root {
  --page-bg: #ddd;
  --newpass-bg: #ccc; 
  --ok-bg: #4caf50;
  --button-text: #fff;
  --pass-letters: #111;
  --pass-digits: #00c;
  --pass-symbols: #c00;
  --copy-bg: #60b7f5;
  --buttons-flex-direction: column;
  --buttons-margin: 25px 0 0;
}

@media (prefers-color-scheme: dark) {
  :root {
    --page-bg: #20202e;
    --newpass-bg: #e1dede; 
    --pass-letters: #333;
    --pass-digits: #4b4be2;
    --pass-symbols: #dc2929;
  }
}

@media (min-width: 48em) {
  :root {
    --buttons-flex-direction: row;
    --buttons-margin: 0 0 0 25px;
  }
}

html {
  background-color: var(--page-bg);
}

@font-face {
  font-family: "Roboto";
  src: url("assets/RobotoMono-Regular.ttf") format("truetype");
}

body {
  margin: 0 auto;
  display: block;
  justify-content: center;
  align-items: center;
}

.password {
  display: -webkit-flex; /* Safari */  
  display: flex;
  -webkit-align-items: center; /* Safari 7.0+ */
  flex-direction: row;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-family: Roboto, "Courier New", Courier, monospace;
  padding: 50px 0 20px;
}

.buttons {
  display: -webkit-flex; /* Safari */  
  display: flex;
  -webkit-align-items: center; /* Safari 7.0+ */
  flex-direction: var(--buttons-flex-direction);
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

button {
  display: inline;
  color: var(--button-text);
  border: 0;
  width: 350px;
  border-radius: 6px;
  padding: 10px 40px;
  font-size: 1.25rem;
  line-height: 1;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  cursor: pointer;
}

#getPassword {
  background-color: var(--ok-bg);
}

#newpassword {
  min-width: 500px;
  background-color: #ccc;
  border-radius: 6px;
  padding: 6px;
  font-size: 3rem;
  line-height: 1.2;
  text-align: center;
  vertical-align: middle;
  overflow-wrap: break-word;
  word-break: break-all;
  user-select: text;
  color: var(--pass-letters);
}

#newpassword .s {
  color: var(--pass-symbols);
}

#newpassword .d {
  color: var(--pass-digits);
}

#copyPassword {
  background-color: var(--copy-bg);
  z-index: 2;
  transform: rotateX(0deg);
  position: absolute;
}

#copiedPassword {
  background-color: var(--ok-bg);
  transform: rotateX(180deg);
  position: relative;
}

#transitioncontrol {
  transform-style: preserve-3d;
  display: none;
  position: relative;
  margin: var(--buttons-margin);
}

#transitioncontrol button {
  -webkit-backface-visibility: hidden; /* Safari */
  backface-visibility: hidden;  
}

#transitioncontrol.active {
  transition: .8s ease-in;
  transform: rotateX(180deg);
}

#copiedpassword {
  pointer-events: none;
}