@import url('https://fonts.googleapis.com/css2?family=Familjen+Grotesk:ital,wght@0,400..700;1,400..700&family=Micro+5&display=swap');

@font-face {
  font-family: 'made outer sans';
  src: url(./assets/outersansblack.otf);
}

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --header-height: 100px;
  --header-height-small: 50px;
  --link: #ddf;
  --header-2-height: 50px;
  --thumbs: 300px;
  --thumbs-small: 250px;
}

.hide {
  display: none;
}

body {
  font-family: 'Familjen Grotesk';
  background-color: #444;
  overflow: hidden;
  width: 100vw;
}

li {
  list-style: none;
  font-family: 'made outer sans';
}

a,
a:visited {
  text-decoration: none;
  color: #000;
}

.nav-list li {
  .active {
    color: #91c4ff;
  }
}
.head-right ul li {
  .active {
    color: #1900ff;
  }
}

.inner-link {
  color: #000;
  background-color: #fff;
}

.inner-link:hover {
  color: #fff;
  background-color: #000;
}

header {
  position: fixed;
  height: var(--header-height);
  top: 0;
  left: 0;
  width: 100%;
  background: #fff;
  z-index: 2;
}

.header {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* border-bottom: solid 1px #000; */
}

.head-left {
  max-height: 100%;
}

.head-right {
  margin-right: 2rem;

  ul {
    display: flex;
    align-items: center;

    li {
      margin: 20px;
      font-size: 1.25rem;
    }
  }
}

.anything-boy {
  height: calc(var(--header-height) - 20px);
}

.hero-boy {
  width: 320px;
  height: 270px;
  margin: auto;
}

h1 {
  font-family: 'made outer sans';
  margin-left: 10px;
  font-size: 4rem;
  font-weight: 900;
}

h2 {
  font-family: 'made outer sans';
  font-size: 2rem;
  color: #fff;
  text-shadow: 2px 2px #000;
  text-align: center;
}

p {
  color: #fff;
  font-size: 1.5rem;
}

main {
  background-color: #1d1d1dcc;
  margin-top: var(--header-height);
  height: calc(100vh - var(--header-height));
  display: flex;
  justify-content: right;
}

.flex-left {
  width: 30vw;
}

.flex-right {
  padding: 30px 30px;
  width: 70vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: calc(100vh - var(--header-height));
  flex: 1;
  overflow-y: scroll;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* REMOVE SCROLLBAR */
/* https://stackoverflow.com/questions/16670931/hide-scroll-bar-but-while-still-being-able-to-scroll */
.flex-right::-webkit-scrollbar {
  display: none;
}
.flex-right:last-child {
  padding-bottom: 150px;
}

.spaced-heading {
  margin-top: var(--header-2-height);
  width: 100%;
  color: #fff;
}

nav {
  position: fixed;
  display: flex;
  height: calc(100vh - var(--header-height));
  align-items: center;
  margin-left: 80px;
  z-index: 2;
}

.nav-list li {
  margin: 80px 0px;
  font-size: 2.5rem;

  a {
    color: #fff;
  }
}

.nav-list li:hover {
  margin-left: 10px;
}

.bg-vid {
  position: fixed;
  min-height: 100vh;
  max-width: 100vw;
  z-index: -1;
  object-fit: cover;
}

/* PROMO */
.promo-vids {
  margin: 30px 50px;
  width: 80%;
  aspect-ratio: 16/9;
}

.gallery {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, var(--thumbs));
  grid-template-rows: repeat(4, 240px);
  gap: 10px;
  justify-content: center;
  margin: 30px 0px;
}

.gallery-item {
  position: relative;
  cursor: pointer;

  img,
  video {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--thumbs);
  }

  video {
    z-index: 0;
  }

  img {
    z-index: 1;
  }
}

.gallery-item:hover {
  img {
    display: none;
  }
}

/* CONTACT */

.contact-main {
  position: fixed;
  width: 100vw;
}

.contact-main .flex-right {
  justify-content: center;
}

.contact-main .flex-right :first-child {
  margin-top: 0;
}

.anything-boy-bg {
  position: absolute;
  bottom: -200px;
  right: -200px;
  z-index: -1;
}

.anything-boy-bg-promo {
  position: absolute;
  bottom: -200px;
  right: 700px;
  z-index: -1;
  max-width: 100%;
}

.contact-list {
  z-index: 0;

  h2 {
    margin-top: 40px;
  }
}

.contact-list p,
.contact-list a {
  font-size: 2rem;

  a {
    color: var(--link);
  }
}

.contact-list a:hover,
.about p a:hover {
  text-decoration: underline;
}

/* ABOUT */

.about-main {
  position: fixed;
}

.about {
  width: 70%;
  height: calc(100vh - var(--header-height));
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: start;

  p {
    margin-top: 40px;
  }
}

.about p a {
  color: var(--link);
}

/* PROJECTIONS */

.projections-main {
  height: 100vh;

  p {
    width: 80%;
    margin-bottom: 30px;
  }

  .flex-right img {
    width: 80%;
    border-radius: 10px;
  }
}

/* REEL */
.reel-link {
  display: flex;
  justify-content: center;
  margin-top: calc(52vh - var(--header-height));
  transform: translate(0, -50%);
}

.big-thumb {
  max-width: 90%;
}

/* SKY */
.sky-container {
  max-width: 80%;
  height: calc(100vh - var(--header-height));
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#shinvision {
  margin: 0 0 15px 5%;
  width: 45%;
}

.screen {
  margin: 0 5%;
  aspect-ratio: 16/9;
  width: 90%;
  border-radius: 10px;
  border: inset 20px #5d5d5d;
  overflow: hidden;
  background: #111;

  img {
    width: 35px;
    z-index: 2;
    position: relative;
    left: 7%;
    top: -295%;
  }
}

.crt {
  /* display: none; */
  width: 100%;
  height: 100%;
  opacity: 0.8;
  background: linear-gradient(
    0deg,
    #00cf0086 0%,
    #0000cf6e 50%,
    #cf000031 100%
  );
  background-size: 2px 2px;
  position: relative;
  top: 0;
  left: 0;
  z-index: 3;
  mix-blend-mode: difference;
}

.glare {
  /* display: none; */
  width: 100%;
  height: 100%;
  position: relative;
  top: -100%;
  left: 0;
  background: radial-gradient(
    circle at 50%,
    rgba(206, 206, 206, 0.116) 5%,
    #000 100%
  );
  opacity: 0.85;
  z-index: 4;
}

.channel {
  width: 106%;
  height: 106%;
  position: relative;
  top: -203%;
  left: -3%;
  z-index: 1;
}

#indicator {
  margin: 5px auto;
  width: 30px;
  height: 10px;
  border: inset 2px #000;
}

.indi-on {
  background: radial-gradient(circle at 50%, #f00 5%, #000 100%);
}

.indi-off {
  background: radial-gradient(circle at 50%, #300 5%, #000 100%);
}

.controls {
  margin: 0 5% 1% 5%;
  padding: 0 10px;
  height: 10vh;
  width: 90%;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  border: inset 3px #666;
  border-radius: 7px;

  background-color: #e5e5f7;
  background-image: linear-gradient(0deg, #363636 0%, #727272 100%);
  background-size: 3px 3px;
}

.led {
  margin-bottom: 2%;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.ch-name,
.ch-details {
  position: relative;
  margin: 5%;
  max-height: 90%;
  background-image: linear-gradient(90deg, #00201f 0%, #000000 100%);
  background-size: 2px 2px;
  border: inset 2px #444;
  border-radius: 3px;
  /* box-shadow: inset 0px 0px 40px 4px #00201f; */
  box-shadow: inset 0px 0px 4px 2px #446e6e;
  overflow: hidden;
  white-space: nowrap;

  display: flex;
  align-items: center;
  gap: 120px;

  p {
    margin: auto 8%;
    font-family: 'Micro 5';
    color: #00fff7;
    text-shadow: 0px 0px 5px #446e6e;
    user-select: none;
  }
}

@keyframes marquee {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(calc(-100% - 120px));
  }
}

@keyframes marquee-clone {
  from {
    transform: translateX(calc(100% + 120px));
  }
  to {
    transform: translateX(0);
  }
}

.ch-details-text {
  animation: marquee 10s linear infinite;
}

.clone {
  position: absolute;
  left: 0;
  animation: marquee-clone 10s linear infinite;
}

.power,
.mute,
.switch {
  button {
    max-height: 90%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  span {
    font-size: 45px;
  }
}

button {
  font-family: 'made outer sans', serif;
  margin: 4% 0;
  height: 80%;
  width: 100%;
  cursor: pointer;

  background: radial-gradient(
    circle at 50%,
    #868686 5%,
    #474747 90%,
    #111c 100%
  );
  font-size: 2rem;
  color: #222;
  text-shadow: -1px -1px 4px #fff, 1px 1px 4px #474747;
  border: outset 4px #333;
  border-radius: 3px;
}

button:hover {
  border: outset 4px #111;
}

.button-press {
  border: inset 4px #999;
  background: radial-gradient(circle at 50%, #aaa 5%, #474747 80%, #313131 90%);
}

/* ----------------- CARDS ---------------------  */

#shindex {
  display: none;
  width: 90vw;
  position: absolute;
  top: 15%;
  mix-blend-mode: exclusion;
}

#shindex-desc {
  display: none;
  position: absolute;
  top: 25vh;
  font-size: 0.8rem;
  mix-blend-mode: difference;
}

.card-container {
  display: none;
  width: 100vw;
  height: 70vh;
  position: absolute;
  top: 53%;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translate(-50%, -50%);
  overflow: hidden;
}

.card {
  display: none;
  position: absolute;
  background-color: #111;
  width: 80%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 2px 2px 12px #111;
  img {
    width: 100%;
  }
}

.trans {
  transition: left 0.1s ease-out, transform 0.1s ease-out;
}

#cardLeft {
  left: -120%;
  transform: rotate(-50deg);
}

#cardRight {
  left: 150%;
  transform: rotate(50deg);
}

.card-details {
  display: none;
  position: absolute;
  top: 78%;
}

#artist {
  padding-bottom: 10px;
}

/*--------------- MEDIA QUERIES ---------------*/

@media (min-width: 1400px) {
  #shinvision {
    width: 500px;
  }

  .sky-container {
    max-width: 800px;
  }
}
@media (max-width: 1200px) {
  nav {
    justify-content: center;
    margin-left: 40px;
    .nav-list li {
      font-size: 2rem;
    }
  }

  .bg-vid {
    max-width: 100%;
  }

  .about {
    margin-top: 30px;
    width: 90%;
  }

  .gallery {
    grid-template-rows: repeat(4, 240px);
  }

  .power,
  .mute,
  .switch {
    max-height: 100%;
  }

  #shinvision {
    width: 60%;
  }
}

@media (max-width: 1015px) {
  .gallery {
    grid-template-columns: repeat(auto-fit, var(--thumbs-small));
    grid-template-rows: repeat(8, 200px);
  }

  .gallery-item {
    img,
    video {
      width: var(--thumbs-small);
    }
  }

  .controls {
    height: 8vh;
  }

  .power,
  .mute,
  .switch {
    span {
      font-size: 35px;
    }
  }
}

@media (max-width: 768px) {
  header {
    height: var(--header-height-small);
  }

  main {
    margin-top: var(--header-height-small);
    height: calc(100vh - var(--header-height-small));
    flex-direction: column;
    display: block;
  }

  .head-right {
    margin-right: 10px;

    ul li {
      margin: 5px;

      a {
        font-size: 0.8rem;
      }
    }
  }

  h1 {
    padding-left: 10px;
    font-size: 2rem;
  }

  .anything-boy {
    height: calc(var(--header-height-small) - 10px);
  }

  .hero-boy {
    height: 180px;
    width: 220px;
  }

  .anything-boy-bg {
    display: none;
  }

  .anything-boy-bg-promo {
    display: none;
  }

  .nav-list li:hover {
    margin-left: 5px;
  }

  .flex-left {
    margin: 0;
    position: fixed;
    top: var(--header-height-small);
    left: 0;
    z-index: 3;

    nav {
      margin: 0;
      height: var(--header-2-height);
      width: 100vw;
      background-color: #333;
      border-bottom: solid 1px #2b2a2a;
    }

    ul {
      display: flex;

      li {
        padding: 3vw;
        font-size: 1rem;
        margin: 5px;
      }
    }
  }

  .flex-right {
    margin-top: var(--header-height-small);
    padding: 30px 0;
    width: 100%;
    height: calc(100vh - var(--header-2-height));

    p {
      margin-bottom: 50px;
    }
  }

  .spaced-heading {
    width: 80%;
    font-size: 1.2rem;
  }

  .sky-container {
    display: none;
  }

  #shindex,
  #shindex-desc,
  .card,
  .card-container,
  .card-details {
    display: flex;
  }

  .promo-vids {
    margin: 20px 10px;
  }

  .gallery {
    grid-template-rows: repeat(4, 200px);
  }

  .gallery-item a video {
    width: calc(var(--thumbs-small) - 3px);
    transform: translate(0, 1px);
  }

  .contact-list {
    position: relative;
    font-size: 2rem;
  }

  .anything-boy-bg {
    bottom: -400px;
    right: -600px;
  }

  .about {
    display: block;
    margin-top: 0;

    h2 {
      margin: 0;
      font-size: 1.5rem;
    }

    p {
      width: 90%;
      margin-top: 30px;
      font-size: 1.2rem;
    }
  }

  .ch-name,
  .ch-details {
    p {
      margin-bottom: auto;
    }
  }
}

@media (max-width: 510px) {
  .gallery {
    grid-template-rows: repeat(8, 200px);
  }

  .flex-left ul li,
  .head-right ul li {
    padding: 2px;
    font-size: 0.9rem;
  }

  .contact-list p,
  .contact-list p a {
    font-size: 1.5rem;
  }

  #shinvision {
    width: 90%;
  }

  .sky-container,
  .screen,
  .controls {
    max-width: 98%;
    margin: 1%;
    width: 100%;
  }
}
