/*
* Browsers: >0.3%,last 4 version
*/

/* overall */
:root {
  --max-0: #000000;
  --max-1: #ffffff;

  --background: #181a1b;
  --accent-0: #c8beb5;
  --accent-1: #f18d74;
  --accent-2: #e3beb3;
  --subtitle: #aca4a0;

  --title-background: #00000075;
  --text-background: #000000cc;
  --text-highlight: #3c362e;
  --blog-box: #2b2f32;

  --load-0: #abb5ba61;
  --load-1: #4a525761;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

*::-moz-selection {
  background-color: var(--accent-0);
  color: var(--max-0);
}

*::selection {
  background-color: var(--accent-0);
  color: var(--max-0);
}

@font-face {
  font-family: "Redaction";
  src: url("./res/asset-font-Redaction-Regular.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "mono";
  src: url("./res/asset-font-Inconsolata.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "syne";
  src: url("./res/asset-font-SyneMono-Regular.woff2") format("woff2");
  font-display: swap;
}

body {
  margin: 0;
  padding: 0;
  background-color: var(--background);
  color: var(--accent-0);

  font-family: "Redaction", serif;
  margin-bottom: 45px;
}

a {
  text-decoration: none;
  color: var(--accent-1);
}

a:hover {
  color: var(--max-1);
}

.load-enable img {
  animation: load 2s ease-in-out infinite alternate;
}

@keyframes load {
  0% {
    background-color: var(--load-0);
  }
  100% {
    background-color: var(--load-1);
  }
}

#content-warnings {
  margin: 15px 0;
  padding: 2px;

  background-color: var(--accent-2);
  color: var(--background);
  font-family: "mono", monospace;
  text-align: center;
}
#content-warnings h1 {
  font-size: 2rem;
  margin: 10px 0;
}
#content-warnings ul {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: 16px auto;

  list-style-type: none;
  padding: 0;
  justify-content: space-evenly;
}
#content-warnings ul li {
  padding: 5px 10px;
  min-width: 30%;
  font-size: 1.2rem;
}
.back {
  font-size: 1.2rem;
  text-align: right;
  width: min(700px, 90%);
  margin: auto;
}

/* Header */
/* Banner */
header {
  position: relative;
  margin: 32px 0 40px 0;
}

#header-img-group-banner img {
  width: 100%;
  height: 100px;

  -o-object-fit: cover;

  object-fit: cover;
}

#header-img-group-logo img {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;

  height: 170px;
  width: 200px;
  -o-object-fit: contain;
  object-fit: contain;

  background-color: var(--background);
}

/* NavList */
header nav {
  position: absolute;
  bottom: -5px;
  width: 100%;
}

header nav ul {
  margin: 0;
  padding: 0;

  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: space-evenly;
  -ms-flex-pack: space-evenly;
  justify-content: space-evenly;

  font-size: 22px;
}

header nav ul li {
  position: relative;
  list-style: none;
  padding: 2px 0;

  width: calc(100% / 5);
  text-align: center;
}

header nav #whitespace {
  width: calc(100% / 5);
}

header nav li#here a {
  cursor: not-allowed;
  background-color: var(--accent-2);
  color: var(--background);
  text-decoration: line-through;
}

header nav li#parent a {
  background-color: var(--accent-2);
  color: var(--background);
}

header nav li#parent a::after {
  content: "*";
}

header nav li#parent a:hover {
  background-color: var(--max-1) !important;
}

header nav li a {
  padding: 2px 10px;
  color: var(--accent-2);
  background-color: var(--max-0);
}

header nav li:not(#here) a:hover {
  color: var(--background);
  background-color: var(--accent-2);
}

#arrow img {
  position: absolute;
  margin: 35px 0 0 -100px;

  width: 250px;
}

/* Socials */
#socials {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-pack: space-evenly;
  -ms-flex-pack: space-evenly;
  justify-content: space-evenly;
  margin: 25px 0;
}

#socials img {
  width: 40px;
}

#socials a {
  -webkit-transition: ease-in-out 100ms;
  -o-transition: ease-in-out 100ms;
  transition: ease-in-out 100ms;
}
#socials a:hover {
  -webkit-filter: drop-shadow(var(--accent-2) 2px 2px 0);
  filter: drop-shadow(var(--accent-2) 2px 2px 0);
}

.no {
  cursor: not-allowed;
}

.no img {
  -webkit-filter: brightness(20%);
  filter: brightness(20%);
}

.no:hover img {
  -webkit-filter: brightness(20%) !important;
  filter: brightness(20%) !important;
}

/* ------------------------------------------------------ */

@media only screen and (max-width: 790px) {
  header {
    margin: 32px 0 80px 0;
  }

  header nav {
    position: absolute;
    bottom: -50px;
  }

  #whitespace,
  #arrow {
    display: none;
  }

  li#music:not(#here) a {
    -webkit-animation: nav-flash 1s ease-in-out infinite alternate;
    animation: nav-flash 1s ease-in-out infinite alternate;
  }
}

/* ---------- ANIMATIONS ---------- */
@-webkit-keyframes nav-flash {
  from {
    background-color: var(--max-0);
    color: var(--accent-2);
  }
  to {
    background-color: var(--accent-1);
    color: var(--background);
  }
}
@keyframes nav-flash {
  from {
    background-color: var(--max-0);
    color: var(--accent-2);
  }
  to {
    background-color: var(--accent-1);
    color: var(--background);
  }
}

@-webkit-keyframes load {
  from {
    background-color: var(--load-0);
  }
  to {
    background-color: var(--load-1);
  }
}

@keyframes load {
  from {
    background-color: var(--load-0);
  }
  to {
    background-color: var(--load-1);
  }
}

/* --------------------------- */

footer#free {
  position: fixed;
  display: inline;
  max-width: min(90%, 180px);
  bottom: 5px;
  left: 0;
  right: 0;
  text-align: center;
  background-color: var(--text-background);
  border-radius: 20px;
  margin: auto;
  padding: 5px;

  z-index: 100;
}

/* index */
#hero {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: space-evenly;
  -ms-flex-pack: space-evenly;
  justify-content: space-evenly;

  text-align: center;
  font-family: "Syne", monospace;
}

#hero-headshot img {
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  max-height: 700px;
  min-width: 360px;

  -o-object-fit: contain;

  object-fit: contain;
}

#hero-headshot p {
  margin: 0;
  color: var(--subtitle);
  font-size: 22px;
}

#hero-headshot p span {
  text-wrap: nowrap;
}

#hero-headshot aside.quote {
  font-family: "mono", monospace;
  text-transform: none;
  max-width: 700px;
}

#hero-info {
  width: min(100%, 700px);
  margin: auto 0;
}

#hero-info p {
  font-size: 22px;
  margin: 30px 0;
  line-height: 37px;
}

#hero-info h1 {
  color: var(--max-1);
  font-size: 35px;
}

#hero-info b {
  color: var(--accent-2);
}

#hero-info p a {
  padding: 0 5px;
  -webkit-transition: 150ms ease-in-out;
  -o-transition: 150ms ease-in-out;
  transition: 150ms ease-in-out;
}

#hero-info p a:hover {
  background-color: var(--accent-0);
  color: var(--background);
}

#hero-info span {
  background-color: var(--accent-0);
  color: var(--background);

  padding: 0 10px;
  font-weight: bolder;
  text-wrap: nowrap;
}
#hero-info span:hover {
  cursor: not-allowed;
  background-color: var(--max-0);
  -webkit-transition: ease-in-out 100ms;
  -o-transition: ease-in-out 100ms;
  transition: ease-in-out 100ms;

  -webkit-animation: shake 2s linear alternate infinite;

  animation: shake 2s linear alternate infinite;
}

/* asset layouts */
.ly-sect {
  margin: 40px 0;
}

.ly-sect > h1 {
  text-wrap: nowrap;
  position: relative;
  padding: 3px 8px;
  margin: 0 20%;

  font-size: 32px;
}

.ly-cont {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: space-evenly;
  -ms-flex-pack: space-evenly;
  justify-content: space-evenly;
  margin: 10px auto;
  width: min(95%, 2000px);
}

.ly-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  position: relative;

  margin: 10px;
}

.ly-item a h1 {
  color: var(--accent-2);
}
.ly-item a:hover h1 {
  background-color: var(--text-background);
  color: var(--max-1);
}

.ly-item h1 {
  padding: 2px;
  background-color: var(--title-background);

  -webkit-transition: ease-in-out 100ms;

  -o-transition: ease-in-out 100ms;

  transition: ease-in-out 100ms;
}

.ly-sect.ly-square {
  margin: 40px 0;
}

.ly-sect.ly-square > h1 {
  display: inline-block;
  margin: 20px 20% 0 20%;
  text-align: center;
  background-color: var(--max-0);
  color: var(--max-1);
}
.ly-sect.ly-square > h1:hover {
  background-color: var(--accent-2);
  color: var(--background);
}

.ly-sect.ly-square .h1-circle img {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 200px;
}

.ly-item {
  margin-bottom: 30px;
}

.ly-item audio {
  width: 100%;
}

.ly-item.ly-square {
  width: min(95%, 350px);
}

.ly-item.ly-square h1 {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;

  text-align: center;
  text-shadow: var(--background) 1px 1px 0;
}

.ly-item.ly-square img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
  object-fit: cover;
}

.ly-item.ly-rect {
  width: 80%;
  max-height: 160px;
}

.ly-item.ly-rect.ly-archive h1 {
  position: absolute;
  display: inline;
  bottom: 20px;
  left: 25px;
  margin: auto;
  font-size: 22px;

  padding: 2px 8px;
  background-color: var(--text-background);

  -webkit-transition: ease-in-out 100ms;

  -o-transition: ease-in-out 100ms;

  transition: ease-in-out 100ms;
  z-index: 2;
}
.ly-item.ly-rect.ly-archive h2 {
  position: absolute;
  display: inline;
  top: 15px;
  right: 15px;
  margin: auto;
  font-size: 15px;

  padding: 5px 8px;
  background-color: var(--text-background);
  color: var(--max-1);

  -webkit-transition: ease-in-out 100ms;

  -o-transition: ease-in-out 100ms;

  transition: ease-in-out 100ms;
  z-index: 2;
}
.ly-item.ly-rect.ly-dir h1 {
  background-color: transparent;
  text-shadow: 1px 1px 0 black;
  font-size: 26px;
  margin-top: 2px;
  margin-bottom: 12px;
  -webkit-transition: ease-in-out 100ms;

  -o-transition: ease-in-out 100ms;

  transition: ease-in-out 100ms;
  z-index: 2;
}
.ly-item.ly-rect.ly-dir h2 {
  background-color: transparent;
  text-shadow: 1px 1px 0 black;
  font-size: 21px;
  margin-top: 2px;
  margin-bottom: 12px;
  margin-left: 35px;
  -webkit-transition: ease-in-out 100ms;

  -o-transition: ease-in-out 100ms;

  transition: ease-in-out 100ms;
  z-index: 2;
}
.ly-item.ly-rect a:hover h1,
.ly-item.ly-rect a:hover h2 {
  background-color: var(--accent-2);
  color: var(--background);
}
.ly-item.ly-rect a:hover img {
  -webkit-filter: drop-shadow(var(--max-0) 5px 5px 5px);
  filter: drop-shadow(var(--max-0) 5px 5px 5px);
}

.ly-item.ly-rect img {
  width: 100%;
  max-height: 160px;
  min-height: 160px;
  aspect-ratio: 5/1;
  -o-object-fit: cover;
  object-fit: cover;

  -webkit-transition: ease-in-out 200ms;

  -o-transition: ease-in-out 200ms;

  transition: ease-in-out 200ms;
}

/* Directory List Pages */
.list {
  width: min(95%, 850px);
  margin: auto;
  padding: 10px 2px;

  font-family: "mono";
}
.list li {
  font-size: 22px;
  padding: 2px 0;
}
.list ul,
.list ol {
  margin-top: 2px;
  border-left: solid 2px var(--accent-2);
}
.list > h2 {
  margin: auto;
  margin-left: 2%;
  font-family: "mono", monospace;
}
.list h3 {
  margin-bottom: 5px;
}
.list-entity {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.list-entity picture img {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
  width: 100%;
  height: 100%;
}
.list-entity picture {
  width: min(250px, 100%);
  min-width: 100px;
}
.list-entity .list-entity-info {
  width: 100%;
  min-width: 250px;
  padding: 0 25px;
}
.list-entity-info hgroup h2,
.list-entity-info hgroup h3 {
  margin: 5px 15px;
}

/* 404 page */
.fzf {
  text-align: center;
}

.fzf h1 {
  color: var(--max-1);
  font-family: "mono", monospace;
  font-style: normal;
}

.fzf h2 {
  color: var(--max-1);
  font-family: "Syne", monospace;
  text-align: justify;
  -moz-text-align-last: justify;
  text-align-last: justify;
  text-wrap: nowrap;
  overflow-x: hidden;
  padding: 0 10%;
  margin: auto;
  background-color: var(--accent-1);
  color: var(--background);
  text-decoration: line-through;
}

/* animations */
@-webkit-keyframes shake {
  0% {
    text-shadow: #7eddcda5 1px 1px 1px, #d6d6d6a5 1px -1px;
    color: #d6d6d645;
  }
  13% {
    text-shadow: #7eddcda5 1px -1px 1px, #d6d6d6a5 -1px 1px;
    color: #d6d6d6a5;
  }
  15% {
    text-shadow: #7eddcda5 -1px 1px 1px, #d6d6d6a5 1px -1px;
    color: #d6d6d675;
  }
  38% {
    text-shadow: #7eddcda5 1px -1px 1px, #d6d6d6a5 -1px 1px;
    color: #d6d6d6f5;
  }
  50% {
    text-shadow: #7eddcda5 -1px -1px 1px, #d6d6d6a5 -1px 1px;
    color: #d6d6d685;
  }
  63% {
    text-shadow: #7eddcda5 1px 1px 1px, #d6d6d6a5 1px -1px;
    color: #d6d6d6a5;
  }
  75% {
    text-shadow: #7eddcda5 -1px -1px 1px, #d6d6d6a5 1px 0px;
    color: #d6d6d6e5;
  }
  88% {
    text-shadow: #7eddcda5 1px 1px 1px, #d6d6d6a5 -1px 1px;
    color: #d6d6d665;
  }
  100% {
    text-shadow: #7eddcda5 -1px 1px 1px, #d6d6d6a5 0px 1px;
    color: #d6d6d6d5;
  }
}

@keyframes shake {
  0% {
    text-shadow: #7eddcda5 1px 1px 1px, #d6d6d6a5 1px -1px;
    color: #d6d6d645;
  }
  13% {
    text-shadow: #7eddcda5 1px -1px 1px, #d6d6d6a5 -1px 1px;
    color: #d6d6d6a5;
  }
  15% {
    text-shadow: #7eddcda5 -1px 1px 1px, #d6d6d6a5 1px -1px;
    color: #d6d6d675;
  }
  38% {
    text-shadow: #7eddcda5 1px -1px 1px, #d6d6d6a5 -1px 1px;
    color: #d6d6d6f5;
  }
  50% {
    text-shadow: #7eddcda5 -1px -1px 1px, #d6d6d6a5 -1px 1px;
    color: #d6d6d685;
  }
  63% {
    text-shadow: #7eddcda5 1px 1px 1px, #d6d6d6a5 1px -1px;
    color: #d6d6d6a5;
  }
  75% {
    text-shadow: #7eddcda5 -1px -1px 1px, #d6d6d6a5 1px 0px;
    color: #d6d6d6e5;
  }
  88% {
    text-shadow: #7eddcda5 1px 1px 1px, #d6d6d6a5 -1px 1px;
    color: #d6d6d665;
  }
  100% {
    text-shadow: #7eddcda5 -1px 1px 1px, #d6d6d6a5 0px 1px;
    color: #d6d6d6d5;
  }
}

/* Accessibility */
.skip-to-content {
  background-color: var(--max-0);
  padding: 8px;
  margin: 0;
  position: absolute;
  -webkit-transform: translateY(-70px);
  -ms-transform: translateY(-70px);
  transform: translateY(-70px);
  -webkit-transition: -webkit-transform 0.2s;
  transition: -webkit-transform 0.2s;
  -o-transition: transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;
  left: 40px;
  z-index: 1;
}

.skip-to-content:focus {
  -webkit-transform: translateY(0%);
  -ms-transform: translateY(0%);
  transform: translateY(0%);
}