@import "boot-text.css";
@import "style.css";

main#screen {
  min-height: 100vh;
  transform-origin: center center;
  animation-fill-mode: forwards;
}

overlay {
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: white;
  opacity: 0;
  z-index: 100;
  pointer-events: none;
}


body.crt::before,
body.crt::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
}

body.crt::before {
  background:
    linear-gradient(
      rgba(18,16,16,0) 50%,
      rgba(0,0,0,0.25) 50%
    ),
    linear-gradient(
      90deg,
      rgba(255,0,0,0.06),
      rgba(0,255,0,0.02),
      rgba(0,0,255,0.06)
    );
  background-size: 100% 4px, 6px 100%;
}

body.crt::after {
  background: rgba(18,16,16,0.1);
  opacity: 0;
}

@keyframes flicker {
  0% { opacity: 0.2; }
  20% { opacity: 0.6; }
  40% { opacity: 0.1; }
  60% { opacity: 0.7; }
  80% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

body.booting::after {
  --animation: flicker 0.15s infinite;
}


@keyframes boot-text {
    0% {transform: translate3d(0, -100%, 0);}
    10% {transform: translate3d(0, -98%, 0);color: transparent; text-shadow: none;}
    11% {transform: translate3d(0, -94%, 0);color: var(--fg); text-shadow: 2.6208764473832513px 0 1px rgba(0,30,255,0.5), -2.6208764473832513px 0 1px rgba(255,0,80,0.3), 0 0 3px;}
    30% {transform: translate3d(0, -50%, 0);}
    35% {transform: translate3d(0, -50%, 0);}
    40% {transform: translate3d(0, 0%, 0); color: var(--fg);}
    41% {transform: translate3d(0, 0%, 0); color: transparent; text-shadow: none;}
    70% {transform: translate3d(0, 0%, 0);}
    71% {transform: translate3d(0, 0%, 0);}
    80% {transform: translate3d(0, 0%, 0); }
    100% {transform: translate3d(0, 0%, 0); }
}

@keyframes scan-line-on {
  0% {
    transform: scale(3, 0.8) translate3d(0, 0, 0);
    opacity: 1;
  }
  3.5% {
    transform: scale(3, 0.8) translate3d(0, 100%, 0);
    opacity: 0;
  }
  3.6% {
    transform: scale(3, 0.8) translate3d(0, -100%, 0);
    opacity: 1;
  }
  9% {
    transform: scale(3.9, 0.6) translate3d(0, 100%, 0);
    opacity: 1;
  }
  11% {
    transform: scale(3, 1) translate3d(0, -100%, 0);
    opacity: 1;
  }
  21% {
    transform: scale(3, 1) translate3d(0, -100%, 0);
    opacity: 0;
  }
  99% {
    transform: scale(3, 1) translate3d(0, 100%, 0);
    opacity: 0;
  }
  100% {
    color: transparent;
    opacity: 0;
  }
}


@keyframes brightness-on {
  0% {
    -webkit-filter: brightness(30);
    filter: brightness(30);
    opacity: 0;
  }
  3.5% {

  }
  3.6% {

    opacity: 0;
  }
  9% {
    -webkit-filter: brightness(30);
    filter: brightness(30);
    opacity: 0;
  }
  33% {
    -webkit-filter: contrast(0) brightness(0);
    filter: contrast(0) brightness(0);
    opacity: 0;
  }
  44% {
    -webkit-filter: contrast(0) brightness(0);
    filter: contrast(0) brightness(0);
    opacity: 0;
  }
  100% {
    -webkit-filter: contrast(1) brightness(1.2) saturate(1.3);
    filter: contrast(1) brightness(1.2) saturate(1.3);
    opacity: 1;
  }
}
@keyframes turn-off {
  0% {
    transform: scale(1, 1.3) translate3d(0, 0, 0);
    -webkit-filter: brightness(1);
    filter: brightness(1);
    opacity: 1;
  }
  60% {
    transform: scale(1.3, 0.001) translate3d(0, 0, 0);
    -webkit-filter: brightness(10);
    filter: brightness(10);
  }
  100% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: scale(0, 0.0001) translate3d(0, 0, 0);
    -webkit-filter: brightness(50);
    filter: brightness(50);
  }
}

@keyframes screen-on {
  0% {
    -webkit-filter: brightness(30);
    filter: brightness(30);
    opacity: 0;
  }
  3.5% {

  }
  3.6% {

    opacity: 0;
  }
  9% {
    -webkit-filter: brightness(30);
    filter: brightness(30);
    opacity: 0;
  }
  33% {
    -webkit-filter: contrast(0) brightness(0);
    filter: contrast(0) brightness(0);
    opacity: 0;
  }
  44% {
    -webkit-filter: contrast(0) brightness(0);
    filter: contrast(0) brightness(0);
    opacity: 0;
  }
  100% {
    -webkit-filter: contrast(1) brightness(1.2) saturate(1.3);
    filter: contrast(1) brightness(1.2) saturate(1.3);
    opacity: 1;
  }
}

body overlay {
  animation: scan-line-on 4s linear;
}

body.booting #screen {
  animation: screen-on 3s linear;
}

body.shutting-down #screen {
  animation: turn-off 0.55s cubic-bezier(0.23, 1, 0.32, 1);
}

body.booting .wrap {
  animation: brightness-on 3s linear;
}

overlay-text {
  animation: boot-text 4s linear;
}