* {
  box-sizing: border-box;
  outline: none;
}
::-webkit-input-placeholder {
  color: white;
  opacity: 0.5;
}
::-moz-placeholder {
  color: white;
  opacity: 0.5;
}
:-ms-input-placeholder {
  color: white;
  opacity: 0.5;
}
:-moz-placeholder {
  color: white;
  opacity: 0.5;
}

a {
  color: var(--color-link);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

img,
video,
audio {
  display: block;
  max-width: 100%;
  max-height: 100%;
}

spoiler {
  background: var(--trans-black-3);
  color: transparent;
  border-radius: 5px;
  padding: 0px 3px;
}
spoiler:hover {
  color: white;
}
spoiler a {
  color: var(--first-grey);
}
spoiler:hover a {
  color: #0096cf;
}

/* Content */
.dmc-link {
  background: var(--color-link-transparent);
}
a.dmc-link:hover {
  background: var(--color-link);
  color: white;
  text-decoration: none;
}

/* Text */
.markup-greentext {
  color: #789922;
}

/* Utils */
.no-select {
  -webkit-touch-callout: none; /* iOS Safari */
  -webkit-user-select: none; /* Safari */
  -khtml-user-select: none; /* Konqueror HTML */
  -moz-user-select: none; /* Firefox */
  -ms-user-select: none; /* Internet Explorer/Edge */
  user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome and Opera */
}
.text-overflow {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.border-radius {
  border-radius: 6px;
}
.slight-border-radius {
  border-radius: 4px;
}

/* Check */
.check {
  position: relative;
  font-size: 20px;

  display: inline-flex;
  width: 2em;
  height: 1em;
  margin-right: 10px;
}
.check input {
  display: none;
}
.check input + span {
  position: relative;
  display: inline-flex;
  width: 100%;
  height: 100%;
  background: #000;
  border-radius: 1000px;
  cursor: pointer;
  transition: background 100ms ease-in-out;
}
.check input:checked + span {
  background: var(--primary-color);
}
.check input + span::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: 1px;
  border: 0.15em solid transparent;
  background-clip: padding-box;
  box-sizing: border-box;
  border-radius: 100%;
  background-color: white;
  transition: all 100ms ease-in-out;
}
.check input:checked + span::before {
  transform: translateX(100%);
  margin-left: -1px;
}
.check.no-transition input + span,
.check.no-transition input + span::before {
  transition: none;
}
/* Title */
.check.check-title::before {
  content: attr(title);
  position: absolute;
  bottom: 100%;
  font-size: 11px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

/* Checkbox */
.choice > input {
  display: none;
}
.choice > input + div {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  padding: 7px;
  border: 1px solid white;
  cursor: pointer;

  transition: all 100ms 0ms ease-in-out;
}
.choice > input:checked + div {
  background: var(--primary-color);
  border-color: var(--primary-color);
}
.choice > input + div > span:first-child {
  position: relative;
  display: inline-flex;
  font-size: 30px;
  width: 1em;
  height: 1em;
  border: 1px solid white;
  margin-right: 5px;

  transition: border 100ms ease-in-out;
}
.choice > input:checked + div > span:first-child {
  border: 0.5em solid white;
}
.choice > input + div > span:first-child::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.5em;
  height: 0.5em;
  transform: translate(-50%, -50%);
  z-index: 1;
  background-color: transparent;

  transition: all 100ms 0ms ease-in-out;
}
.choice > input:checked + div > span:first-child::before {
  width: 0.8em;
  height: 0.8em;
  background-color: var(--primary-color);
  transition: all 100ms 100ms ease-in-out;
}

.choice > input + div {
  border-color: rgba(255, 255, 255, 0.5);
}
.choice > input + div > span:first-child,
.choice > input + div > span:first-child + span {
  opacity: 0.5;
}

.choice:hover > input:not(:checked) + div {
  border-color: rgba(255, 255, 255, 1);
}
.choice > input:checked + div > span:first-child,
.choice:hover > input + div > span:first-child,
.choice > input:checked + div > span:first-child + span,
.choice:hover > input + div > span:first-child + span {
  opacity: 1;
}

/* Button */
.icon-button {
  width: 30px;
  height: 30px;
  fill: white;
  opacity: 0.5;
  cursor: pointer;
  margin: 0px 5px;
}
.icon-button:hover {
  opacity: 1;
}

/* Hamburger */
.hamburger {
  font-size: 1px;

  position: relative;
  width: 20em;
  height: 20em;
  display: flex;
  flex-direction: column;
}
.hamburger div {
  width: 100%;
  height: 2em;
  background: white;
}
.hamburger div:first-child {
  margin-bottom: auto;
}
.hamburger div:last-child {
  margin-top: auto;
}

/* Inputs */
input[disabled] {
  opacity: 0.5;
}
input {
  filter: none;
}
label {
  display: block;
  font-size: 14px;
  color: var(--border-color-2);
}
.dmc-input {
  background: var(--trans-black);
  width: auto;
  border: 1px solid white;
  padding: 10px 15px;
  color: white;
  border-radius: 5px;
  margin: 5px;
}
.dmc-input-group {
  margin-bottom: 15px;
}
.dmc-button {
  padding: 10px 15px;
  background: var(--trans-black);
  color: white;
  border: 1px solid white;
  border-radius: 5px;
  cursor: pointer;
  margin: 0px 5px;
}
.dmc-button:hover {
  background: var(--trans-black-2);
}

/* Animations */

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

/* Bubble Load */

#bubble-load {
  font-size: 100px;

  width: 1em;
  height: 1em;
  background: transparent;
  border: 0px solid white;
  box-sizing: border-box;
  border-radius: 100%;
  animation: bubble-load 0.75s ease-in-out infinite;
}
@keyframes bubble-load {
  0% {
    width: 0px;
    height: 0px;
    border-width: 0px;
  }
  50% {
    width: 0px;
    height: 0px;
    border-width: 0.5em;
  }
  50.1% {
    width: 1em;
    height: 1em;
  }
  100% {
    border-width: 0px;
  }
}
