:root {
  --color-text: #EEEEEE;
  --color-text-dark: #999999;
  --color-primary: #222831;
  --color-primary-dark: #0e1114;
  --color-secondary: #393E46;
  --color-accent: #00ADB5;

  --color-error: #ff3344;
  --color-warn: #ffaa44;
  --color-success: #33ffaa;

  --ui-radius: 0.3rem;

  --z-index-tab: 100;
  --z-index-popup: 200;
  --z-index-tooltip: 300;

  --content-width: 50em;
  --content-height: 28em;
}


* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  outline: none;
}


html,
body {
  height: 100%;
}

body {
  color: var(--color-text);
  font-family: 'Barlow Semi Condensed', sans-serif;
  letter-spacing: 0.05em;
  background-color: var(--color-primary-dark);
  background-position: center;
  background-size: cover;
  line-height: 1em;
}


button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-secondary);
  border-radius: var(--ui-radius);
  border: none;
  color: var(--color-text);
  font-family: inherit;
  font-size: inherit;
  cursor: pointer;
  transition: background-color 200ms;
}

button:hover,
button:focus {
  background-color: var(--color-accent);
  transition: background-color 0ms;
}



input[type="text"] {
  font-family: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  background-color: #00000040;
  border: none;
  border-bottom: 0.15em solid var(--color-secondary);
  padding: 0.3em;
  border-radius: var(--ui-radius);
  transition: border-color 100ms;
  color: var(--color-text);
}

input[type="text"]:hover,
input[type="text"]:focus {
  border-color: var(--color-accent);
  /* box-shadow: 0 0 0.3em var(--color-accent) inset; */
}



/* classes */

.global-main-content {
  width: 100%;
  height: 100%;
  max-width: var(--content-width);
  max-height: var(--content-height);
}


.global-box {
  position: relative;
  display: flex;
  border-radius: var(--ui-radius);
  background-color: var(--color-primary);
}


.global-darkscreen {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  padding: 1em;
  background-color: #000000aa;
  z-index: var(--z-index-tab);
}


.global-blur-sublings ~ * {
  filter: blur(0.5em);
  -webkit-filter: blur(0.5em);
}


.global-disabled {
  /* opacity: 0.5em; */
  filter: brightness(0.3);
  -webkit-filter: brightness(0.3);
}


.no-select {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}


.spinner {
  position: relative;
  width: 1.2em;
  height: 1.2em;
  fill: var(--color-text);
  stroke: var(--color-text);
  animation: spin linear 3s infinite;
}


.text-outline {
  text-shadow:
     0.08em  0.08em 0.1em #000000,
    -0.08em  0.08em 0.1em #000000,
     0.08em -0.08em 0.1em #000000,
    -0.08em -0.08em 0.1em #000000;
}



/* IDs */

#app {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}



/* Animations */

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}



/* Misc */

::-moz-selection {
  color: var(--color-accent);
  background: #051020;
  text-shadow: none;
}
::selection {
  color: var(--color-accent);
  background: #051020;
  text-shadow: none;
}


::-webkit-scrollbar {
  width: 0.5em;
  border-radius: var(--ui-radius);
  cursor: pointer;
}
::-webkit-scrollbar-track {
  background-color: var(--color-primary);
}
::-webkit-scrollbar-thumb {
  border-radius: var(--ui-radius);
  background-color: var(--color-accent);
}



/* Media queries */

@media (orientation: portrait) {
  :root {
    --content-width: 28em;
    --content-height: 50em;
  }
}


@media (max-width: 400px), (max-height: 400px) {
  body {
    font-size: 90%;
  }
}


@media (max-width: 900px) and (max-height: 900px) {
  body {
    --content-width: 100%;
    --content-height: 100%;
  }
}
