.app{
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;

  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;

  position: absolute;

  width: 100%;

  overflow-y: auto;
  overflow-x: hidden;

  min-height: 200vh;
  height: auto;

  margin: 0;

  font-family: 'Lato', sans-serif;

  -webkit-overflow-scrolling: touch;
}

.app.no-logo {
  min-height: 100vh;
}

/*
=================================================
  General
=================================================
*/

h1, h2, h3, h4 {
  font-family: "Lato",sans-serif;
  font-weight: 400;
}

h6, p {
  font-weight: 400;
  line-height: 1.5em;
}

p, ul {
  /* font-size: .875rem;  */
  letter-spacing: 0;
  margin: 0 0 16px;
}

.app a{
    text-decoration: none;
    color: gray;
}

.text-center {
  text-align: center !important;
}

.text-justify {
  text-align: justify !important;
}

.app>header{
  position: fixed;
  z-index: 2;

  margin: auto;
  padding: 0 20px;
  border: 0px solid transparent;

  box-sizing: border-box;

  line-height: 64px;

  font-size: 18px;

  top: 0;
  left: 0;
  right: 0;

  transition: 0.5s ease;
}
.app.small-screen>header{
  padding: 0;
}

.app.min-header>header,
.app.no-logo>header{
  line-height: 48px;
  background: #fff;
  border-color: lightgray;
  border-bottom-width: 1px;
}
.app.open-drawer>header{
  background: #fff;
}
.app>header>.nav{
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;

  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;

  -webkit-align-items: right;
  -ms-flex-align: right;
  align-items: right;

  color: #fff;

  margin: auto;

  max-width: 1200px;
  width: 100%;
}
.app.min-header>header>.nav,
.app.no-logo>header>.nav{
  color: #555555;
}
.app.open-drawer>header>.nav{
  color: #555555;
}

.app>header .spacer{
  flex-grow: 1;
}
.app>header a{
  padding: 0 10px;
  text-decoration: none;
  color: inherit;
  transition: background-color color 0.5s ease;
}
.app>header a:hover {
  background: rgba(192, 192, 192, 0.5);
}
.app.small-screen>header a:not([class*="title"]){
  display: none;
}
.app>header>.nav>.drawer{
  display: none;
}
.app.small-screen>header>.nav>.drawer{
  display: block;
  width: 48px;
  text-align: center;
}
.app.small-screen>header>.nav>.drawer:hover{
  background: rgba(192, 192, 192, 0.5);
}
.app>header>.drawer{
  height: 0;
  overflow: hidden;
  transition: height 0.5s ease;    
}
.app.open-drawer>header>.drawer{
  background: #fff;
  width: 100%;
  line-height: 48px;
  height: calc(100vh - 64px);
}
.app.min-header.open-drawer,
.app.no-logo.open-drawer {
  height: calc(100vh - 48px);
}

.app.open-drawer>header>.drawer>a{
  display: block;
}

.app>.logo {
  min-height: 100vh;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-image: url('/img/header_bg.jpg');
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  color: white;
}
/**.app>.logo>h1>span {
  padding: 10px;
  background: rgba(192, 192, 192, 0.5);
}**/
/**
@media (max-width: 512px)  and (-webkit-min-device-pixel-ratio: 1.5),
     (max-width: 512px)  and (min-resolution: 1.5dppx),
     (max-width: 1024px) and (-webkit-max-device-pixel-ratio: 1.5),
     (max-width: 1024px) and (max-resolution: 1.5dppx) {
.app>.logo {
  background-image: url('/img/header_bg.jpg?size=1024');
}
}
@media (min-width: 513px)  and (max-width: 1024px) and (-webkit-min-device-pixel-ratio: 1.5),
     (min-width: 513px)  and (max-width: 1024px) and (min-resolution: 1.5dppx),
     (min-width: 1025px) and (max-width: 2048px) and (-webkit-max-device-pixel-ratio: 1.5),
     (min-width: 1025px) and (max-width: 2048px) and (max-resolution: 1.5dppx)  {
 .app>.logo {
  background-image: url('/img/header_bg.jpg?size=2048');
}
}
@media (min-width: 1025px) and (-webkit-min-device-pixel-ratio: 1.5),
     (min-width: 1025px) and (min-resolution: 1.5dppx),
     (min-width: 2049px) and (-webkit-max-device-pixel-ratio: 1.5),
     (min-width: 2049px) and (max-resolution: 1.5dppx) {
.app>.logo {
  background-image: url('/img/header_bg.jpg?size=2880');
}
}**/

.app>main
{
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;

  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;

  z-index: 1;
  
  position: relative;
  width: 100%;

  padding-top: 48px;

  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  
  background: white; 
  /* background: linear-gradient(90deg, 
  #e50000 0%, #e50000 16.67%,
  #ff8d00 16.67%, #ff8d00 33.33%,
  #fe0 33.33%, #fe0 50%,
  #008121 50%, #008121 66.67%,
  #004cff 66.67%, #004cff 83.33%,
  #760188 83.33%, #760188 100%);
  background-repeat: repeat;
  animation: test 2.0s linear infinite; */
}

/* @keyframes test {
  0%{background-position:0% 50%}
  100%{background-position:100vw 50%}
} */

.app>main>section{
  width: 100%;
}
.app>main>section>*{
  max-width: 1200px;
  padding: 0 20px;
  margin: auto;
}
.app.small-screen>main>section>* {
  padding: 0 10px;
}

.app>main>section>h1.banner,
.app>main>section>a.banner{
  display: block;
  color: black;
  text-align: center;
  line-height: 300px;
  font-size: 32px;
  font-weight: 300;
  max-width: 100%;
  background: var(--image);
  background-size: 120vw;
  background-position: center;
  transition: 0.5s ease;
  padding: 0;
}

.app>main>section>a.banner:hover{
  background-size: 100vw;
  text-decoration: none;
}

.app>main>section>.banner>span {
  position: relative;
  z-index: 0;
  padding: 10px;
  background: rgba(192, 192, 192, 0.5);
}
.app>main>section>.banner>span::before {
  content: '';    
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background: var(--image);
  background-size: 120vw;
  background-position: center;
  transition: 0.5s ease;
  filter: blur(10px);
  z-index: -1;
}
.app>main>section>a.banner:hover>span::before {
  background-size: 100vw;
}

.app>main>section .preview {
  display: block;
  border: solid lightgray;
  border-width: 1px;
  color: inherit;
  text-decoration: none;
  transition: border-color 0.5s ease;
  margin-bottom: 10px;
}

.app>main>section .preview:hover {
  text-decoration: none;
  border-color: gray;
}

.app>main>section .preview>div {
  padding: 10px;
}

.app>main>section .preview>.title {
  line-height: 1.25;
  font-size: 1.5em;
  font-weight: 600;
}

.app>main>section .preview>.title.image {
  background: linear-gradient(180deg, transparent 180px, white), var(--image) center;
  background-size: 100% auto;
  transition: 0.5s ease;
  padding-top: 200px;
}

.app>main>section .preview:hover>.title.image {
  background-size: 105% auto;
}

.app>main>section .preview>.date {
  padding: 0 0 0  10px;
  font-size: 0.75em;
  font-weight: 200;
}

.app>main>section .floatingImg:nth-child(2n+0) {
  width: 40%;
  float: right;
  margin: 0 0 20px 20px;
}
.app>main>section .floatingImg:nth-child(2n+1) {
  width: 40%;
  float: left;
  margin: 0 20px 20px 0;
}

.app>main>section .floatingImg>img{
  width: 100%;
  height: auto;
}

.app>main>section .grid {
  line-height: 0;

  column-count: 4;
  column-gap: 0px;
}
.app>main>section .grid>img {
  width: 100% !important;
  height: auto !important;
}

.app .circle {
  width: 20%;
  min-width: 200px;
  border-radius: 50%;
  background-color: lightgray;
}
.app .circle>.inner{
  width: 100%;
  padding-top: 100%;
}

.app>footer {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;

  -webkit-flex-flow: row wrap;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;

  box-sizing: border-box;

  padding: 40px;
  margin: 0;
  border: none;

  color: #9e9e9e;

  background: rgb(66,66,66);
}

.app.small-screen>footer
{
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;

  text-align: center;
}

.app>footer>*{
  padding: 0 10px;
  line-height: 36px;
}
.app.small-screen>footer>*{
  padding: 5px 0;
  line-height: initial;
}

.app>footer .spacer{
  display: block;
  height: 36px;
  margin: 0 20px;
  padding: 0;
  border-left: thin solid;
}
.app.small-screen>footer .spacer{
  display: none;
}

.app>footer>.logo{
  color: #fff;
}
.app>footer>.logo a{
  color: inherit;
}

.app>footer a{
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.app>footer>nav{
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  
  -webkit-flex-flow: row wrap;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;

  padding: 0;
}
.app.small-screen>footer>nav{
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}
.app.small-screen>footer>nav.social{
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;

  justify-content: center;
}
.app>footer>nav>a{
  padding: 0 10px;
  color: lightgray;
  opacity: 0.5;
  transition: 0.5s ease;
}
.app>footer>nav>a:hover{
  opacity: 1;
}
.app.small-screen>footer>nav>a{
  padding: 5px 0;
}
.app.small-screen>footer>nav.social>a{
  padding: 5px 10px;
}

.app>footer>nav>a>svg {
  width: 24px;
  height: 24px;
  vertical-align: middle;
}
.app>footer>nav>a>svg>path {
  transition: 0.5s ease;
}
.app>footer>nav>a[href*="twitter"]:hover>svg>path{
  fill: #3CF;
}
.app>footer>nav>a[href*="instagram"]:hover>svg>path{
  fill: #f58529;
}
.app>footer>nav>a[href*="discord"]:hover>svg>path{
  fill: #7289DA;
}
