body {
  background-color: black;
  color: #414141;
  font-size: 15px;
  font-family: futura-pt, sans-serif;
}

h1, h2, h3, h4, h5, h6 {
  font-family: cooper-black-std, serif;
  text-transform: lowercase;
}

.hidden {
  display: none;
}

.generic-page {
  margin-top: 2rem;
}

.generic-page figure {
  margin-bottom: 0;
}

.news-page {
  margin-top: 2rem;
}

.news-page .news-container {
  background: #3F629A;
  padding: 2rem;
  color: white;
  border-radius: 20px;
  background-size: cover;
}

.news-page .news-container .back-link {
  display: block;
  color: #6582AE !important;
  font-family: cooper-black-std, serif;
  text-transform: lowercase;
  font-size: 18px;
  margin-bottom: 1rem;
}

.news-page .news-container .back-link:hover {
  opacity: 0.8;
  text-decoration: none;
}

.news-page .news-container h2 {
  margin-bottom: 2rem;
}

.news-page .news-container p a {
  color: white;
  text-decoration: underline;
}

.news-page .news-container p a:hover, .news-page .news-container p a:focus {
  color: #ddddff;
  text-decoration: underline;
}

.news-page .news-container figure {
  text-align: center;
}

.news-page .news-container figcaption {
  font-style: italic;
  font-size: 85%;
  margin-top: 0.25rem;
}

.news-page .news-container img {
  max-width: 480px;
  text-decoration: none;
  border-radius: 10px;
}

@media (max-width: 575px) {
  .news-page .news-container img {
    max-width: 100%;
    height: auto;
  }
}

.video .embed-responsive {
  text-align: center;
  margin-top: 2rem;
  border-radius: 20px;
}

.video .embed-responsive.embed-responsive-4by3 {
  margin-top: 1rem;
  position: relative;
}

@media (max-width: 900px) {
  #video {
    max-width: 540px;
  }
}

#video_controls {
  margin-top: 1rem;
  background-color: #414141;
  border-radius: 15px;
}

#video_controls .nav-link {
  color: white;
  font-family: cooper-black-std, serif;
  text-transform: lowercase;
  font-size: 18px;
}

#video_controls .nav-link small {
  display: block;
  font-size: 12px;
  font-family: 'Ubuntu', sans-serif;
}

#video_controls .nav-link:hover {
  color: #CCCCCC;
}

#video_controls .nav-item:not(:first-child) {
  border-left: 1px solid #222222;
}

#video_controls .nav-item:not(:last-child) {
  border-right: 1px solid #222222;
}

#video_controls .nav-link.disabled {
  color: #888888 !important;
}

@media (max-width: 575px) {
  #video_controls {
    background: none;
    max-width: 100%;
  }
  #video_controls .nav-item {
    background-color: #414141;
    margin-bottom: 0.25rem;
    border: 1px solid #222222;
    border-radius: 20px;
    text-align: center;
  }
  #video_controls .nav-item:not(:first-child) {
    margin-left: 0.25rem;
  }
  #video_controls .nav-link small {
    max-width: 100px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    margin: 0 auto;
  }
}

@media (max-width: 396px) {
  #video_controls .nav-link small {
    max-width: 60px;
  }
}

footer {
  margin-top: 0.5rem;
  margin-bottom: 2rem;
  color: #414141;
}

#footer .logo {
  height: 35px;
  width: auto;
}

#footer a {
  font-size: 18px;
  color: #414141;
  border-radius: 20px;
  text-transform: lowercase;
}

#footer a.logo-container {
  min-width: 120px;
  text-align: center;
}

#footer a.logo-container:hover {
  opacity: 0.75;
}

#footer a:not(.logo-container):hover {
  background-color: #222222;
  color: #414141;
}

footer #legal {
  font-size: 12px;
  margin-top: 1rem;
  padding: 0.5rem;
  text-align: center;
}

#ruffle_alert .alert {
  border: 2px solid #414141;
  border-radius: 15px;
  padding: 0.5rem 1rem;
  margin: 2rem 0;
}

#ruffle_alert p {
  margin-bottom: 0;
}

ruffle-embed {
  z-index: 10;
}

.ruffle-loader {
  position: absolute;
  z-index: 5;
  top: 5px;
  right: 5px;
  left: 5px;
  bottom: 5px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background: white;
  color: white;
  pointer-events: none;
}

.ruffle-loader img {
  object-fit: contain;
}

.ruffle-loader .loader-logo {
  width: 45%;
  animation: loadHover 1.67s steps(10) infinite;
}

.ruffle-loader .loader-shadow {
  object-fit: fill;
  width: 30%;
  margin-top: -5%;
  height: 15%;
  animation: loadShadow 1.67s steps(10) infinite;
}

.ruffle-loader .loader-text {
  width: 30%;
  margin-top: -5%;
  animation: loadFade 1.67s steps(10) infinite;
}

@keyframes loadHover {
  0% { transform: translateY(0px); }
  50% { transform: translateY(20px); }
  100% { transform: translateY(0px); }
}

@keyframes loadShadow {
  0% { opacity: 1; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.4); }
  100% { opacity: 1; transform: scaleX(1); }
}

@keyframes loadFade {
  0% { opacity: 1; }
  50% { opacity: 0.25; }
  100% { opacity: 1; }
}
