/*
* 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;
  margin-bottom: 45px;
  padding: 0;
  background-color: var(--background);
  color: var(--accent-0);

  font-family: "Redaction", serif;
}

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

.load-enable img {
  -webkit-animation: load 2s ease-in-out infinite alternate;
  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 {
  margin: 10px 0;
  font-size: 2rem;
}
#content-warnings ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: 16px auto;
  padding: 0;

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

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

/* Header */
/* Banner */
header {
  position: relative;
  margin-top: 24px;
}
#header-img-group-banner img {
  width: 100%;
  height: 90px;

  -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: 140px;
  width: 160px;

  -o-object-fit: contain;
  object-fit: contain;

  background-color: var(--background);

  z-index: 0;
}

/* NavList */
#navigation {
  width: 100%;
  margin: -25px auto 25px auto;
}
#navigation ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: space-evenly;
  -ms-flex-pack: space-evenly;
  justify-content: space-evenly;

  margin: 0;
  padding: 0;

  font-size: 1.375rem;
}
#navigation ul li {
  position: relative;
  padding: 2px 0;

  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  width: calc(100% / 5);
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;

  text-align: center;
  list-style: none;
}
#navigation #whitespace {
  width: calc(100% / 5);
}
#navigation li#here a {
  cursor: not-allowed;
  background-color: var(--accent-2);
  color: var(--background);
  text-decoration: line-through;
}
#navigation li#parent a {
  background-color: var(--accent-2);
  color: var(--background);
}
#navigation li#parent a::after {
  content: "*";
}
#navigation li#parent a:hover {
  background-color: var(--max-1) !important;
}
#navigation li a {
  padding: 2px 10px;
  color: var(--accent-2);
  background-color: var(--max-0);
}
#navigation 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;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;

  -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;
}
#socials img {
  width: 40px;
  margin: auto 10px;
}
#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-top: 18px;
  }
  #navigation {
    margin: 5px auto;
  }
  #navigation ul li {
    min-width: 91px;
    margin: 10px auto;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  #header-img-group-banner img {
    height: 50px;
  }
  #header-img-group-logo img {
    height: 80px;
    width: 100px;
  }

  #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);
  margin: auto;
  padding: 5px;
  bottom: 5px;
  left: 0;
  right: 0;
  text-align: center;
  background-color: var(--text-background);
  border-radius: 20px;

  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-height: 360px;

  -o-object-fit: cover;
  object-fit: cover;
}
#hero-headshot p {
  margin: 0;
  color: var(--subtitle);
  font-size: 1.375rem;
}
#hero-headshot p span {
  text-wrap: nowrap;
}
#hero-headshot aside.quote {
  max-width: 700px;
  font-family: "mono", monospace;
  text-transform: none;
}

#hero-info {
  width: min(100%, 700px);
  margin: auto 0;
}
#hero-info p {
  margin: 30px 0;
  font-size: 1.375rem;
}
#hero-info h1 {
  color: var(--max-1);
  font-size: 2.188rem;
}
#hero-info b {
  color: var(--accent-2);
}
#hero-info p a {
  display: block;
  width: min(95%, 500px);
  margin: 20px auto;
  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 {
  padding: 0 10px;

  background-color: var(--accent-0);
  color: var(--background);
  font-weight: bolder;
  text-wrap: nowrap;
}
#hero-info span:hover {
  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: 20px auto;
}
.ly-sect > h1 {
  position: relative;
  margin: 0 20%;
  padding: 3px 8px;

  font-size: 2rem;
  text-wrap: nowrap;
}
.ly-cont {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: min(95%, 2000px);
  margin: auto;

  -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;
}

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

  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 > h1 {
  display: inline-block;
  margin: 20px 20% 0 20%;
  background-color: var(--max-0);
  color: var(--max-1);

  text-align: center;
}
.ly-sect.ly-square > h1:hover {
  background-color: var(--accent-2);
  color: var(--background);
}
.ly-sect.ly-square .h1-circle img {
  position: absolute;
  margin: auto;
  width: 200px;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.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;
  margin: auto;
  top: 0;
  left: 0;
  right: 0;

  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;
  margin: auto;
  padding: 2px 8px;
  bottom: 20px;
  left: 25px;
  font-size: 1.375rem;
  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;
  margin: auto;
  padding: 5px 8px;
  top: 15px;
  right: 15px;

  font-size: 0.938rem;
  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 {
  margin-top: 2px;
  margin-bottom: 12px;
  background-color: transparent;
  text-shadow: 1px 1px 0 black;
  font-size: 1.625rem;

  -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 {
  margin-top: 2px;
  margin-bottom: 12px;
  margin-left: 35px;

  background-color: transparent;
  text-shadow: 1px 1px 0 black;
  font-size: 1.313rem;

  -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 {
  padding: 2px 0;
  font-size: 1.375rem;
}
.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 {
  width: 100%;
  height: 100%;

  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
}
.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;
}

/* 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 {
  position: absolute;
  padding: 8px;
  margin: 0;

  left: 40px;

  -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;

  background-color: var(--max-0);

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