* {
  padding: 0;
  margin: 0;
}

html,body{
	overscroll-behavior: none;
}

body {
  color: #0000ee;
  font-family: serif;
  font-style: italic;
  cursor: crosshair;
}

::selection {
  background: currentColor;
}
::-moz-selection {
  background: currentColor;
}

@keyframes typo {
  0% {
    transform: translateY(100vh);
  }
  5% {
    transform: translateY(5vh);
  }
  6% {
    transform: translateY(8vh);
  }
  95% {
    transform: translateY(-5vh);
  }
  96% {
    transform: translateY(-2vh);
  }
  100% {
    transform: translateY(-100vh);
  }
}

@keyframes follow {
  0% {
    transform: translateY(100vh);
  }
  20% {
    transform: translateY(5vh);
  }

  80% {
    transform: translateY(-5vh);
  }

  100% {
    transform: translateY(-100vh);
  }
}
@keyframes detailDrop {
  0%,
  10%,
  90%,
  100% {
    max-height: 0;
  }
  20%,
  80% {
    max-height: 5em;
  }
}

#dots > div {
  --radius: 10;
  display: inline-block;
  width: calc(var(--radius) * 1px);
  height: calc(var(--radius) * 1px);
  border-radius: 100%;
  background-color: currentColor;
  position: absolute;
  transform: translate(calc(var(--x) * 1px), calc(var(--y) * 1px));
  transition: transform 0.5s ease 0.1s;
}

.layer {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}

header {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  user-select: none;
  z-index: 999999;
}

header > div.typo {
  animation: typo 10s ease 0s both infinite;
  transition: color 0.3s ease;
  margin: 0 7vw;
  font-size: 2.5em;
  text-decoration: none;
}

header > div.typo > a {
  transition: color 0.3s ease;
  text-decoration: none;
  position: relative;
}

header > div.typo > a:hover {
  color: white;
}

header > div.typo:last-child {
  animation-delay: 0.3s;
}

header > div.typo > a > span > strong > sup {
  font-size: 0.2em;
  position: relative;
  top: -1em;
}

header a div.fold > span {
  display: block;
  max-width: 40ch;
}

@keyframes slideover {
  from {
    background-position: 0 100%;
  }
  to {
    background-position: 1em 100%;
  }
}

.pref {
  position: relative;
  letter-spacing: -0.03em;
}
.pref:before {
  content: "+";
  font-weight: 10;
  font-size: 0.5em;
  padding-top: 0.5em;
  position: absolute;
  top: 0;
  left: -1em;
}

header > div.typo > div.fold {
  margin-top: -0.2em;
  overflow: hidden;
  animation: detailDrop 10s ease 0s both infinite;
}

header a > div.fold > span:nth-child(1) {
  font-size: 0.6em;
}

header a > div.fold > span:nth-child(2) {
  font-size: 0.3em;
}

header a > div.fold > span:nth-child(3) {
  font-size: 0.2em;
  line-height: 1.7;
}
svg#wire {
  display: none;
}

@media (min-width: 30em) {
  .pref:after {
    position: absolute;
    left: 0;
    top: 0;
    content: "";
    display: inline-block;
    width: 2rem;
    height: 2rem;
    background: currentColor;
    border-radius: 100%;
    animation: jump 2.5s ease-in-out 1s both infinite;
  }
  .tel > span {
    position: relative;
    display: inline-block;
    transform-origin: 0 100%;
    animation-duration: 2.5s;
    animation-fill-mode: both;
    animation-timing-function: ease-in-out;
    animation-delay: 1s;
    animation-iteration-count: infinite;
  }
  .tel > span:nth-child(2) {
    animation-name: jump61;
  }
  .tel > span:nth-child(3) {
    animation-name: jump543;
  }
  .tel > span:nth-child(4) {
    animation-name: jump13;
  }
  .tel > span:nth-child(5) {
    animation-name: jump55;
  }
  #hv {
    display: inline-block;
    animation: spin 1.5s linear 0s both infinite;
  }
  svg#wire {
    display: unset;
    width: 100%;
    height: 100%;
    pointer-events: none;
  }
  svg#wire line,
  svg#wire polygon {
    stroke: currentColor;
    fill: none;
    stroke-dashoffset: 1000;
    transition: stroke-dashoffset 2s ease;
  }

  header a {
    font-size: 7vmin;
  }
  header > div.typo > a:before,
  header > div.typo > a:after {
    display: inline-block;
    font-size: 0.15em;
    position: absolute;
    left: 0em;
    content: "▲";
    font-style: initial;
    animation: follow 10s ease 0s both infinite;
  }

  header > div.typo > a:before {
    top: -2em;
  }

  header > div.typo > a:after {
    top: 24em;
  }
}

nav {
  position: fixed;
  left: 0;
  bottom: 0;
  margin-left: 5em;
}

nav a {
  padding: 2em 1em;
  max-width: 16ch;
  display: inline-block;
}

div#popup {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  transform: scale(0);
  cursor: pointer;
}

div#popup.killit {
  animation: gangweg 0.5s ease 0s both;
}

div#popup.poppin {
  animation: pop 2s ease 0.1s both infinite;
}

#back {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  opacity: 0.9;
}

#front {
  display: grid;
  grid-template-columns: 3fr 1fr;
  grid-template-rows: 3fr 1fr;
  position: fixed;
  width: 50vmin;
  height: 50vmin;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

@keyframes spin {
  to {
    transform: rotateY(360deg);
  }
}
@keyframes spin2 {
  to {
    transform: rotateY(-180deg);
  }
  from {
    transform: rotateY(180deg);
  }
}
@keyframes gangweg {
  from {
    transform: translate(0);
  }
  to {
    transform: translate(0, -100vh);
  }
}

ul#stack > li {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}
ul#stack {
  list-style: none;
}
ul#stack > li.active {
  animation: itme 0.37s ease 0s both;
}

@keyframes itme {
  from {
    transform: translate(100vw, 0);
  }
  to {
    transform: translate(0, 0);
  }
}

@keyframes pop {
  0%,
  100% {
    transform: scale(0);
  }
  30%,
  60% {
    transform: scale(1);
  }
}

@keyframes jump {
  0% {
    transform: translate(-1em, -0.5em) scale(0);
  }
  10% {
    transform: translate(1em, -1.5em) scale(1);
  }
  20% {
    transform: translate(1.5em, -0.5em) scale(1.1, 0.8);
  }
  30% {
    transform: translate(2.5em, -1.2em) scale(1);
  }
  40% {
    transform: translate(3em, -0.5em) scale(1.1, 0.8);
  }
  50% {
    transform: translate(4em, -1.2em) scale(1);
  }
  60% {
    transform: translate(4.3em, -0.5em) scale(1.1, 0.8);
  }
  70% {
    transform: translate(5em, -1.2em) scale(1);
  }
  80% {
    transform: translate(5.5em, -0.5em) scale(1.2, 0.8);
  }
  100% {
    transform: translate(10em, -2em) scale(0);
  }
}
@keyframes jump61 {
  18%,
  30% {
    transform: scale(1);
  }
  20% {
    transform: scale(1, 0.8);
  }
}
@keyframes jump543 {
  34%,
  45% {
    transform: scale(1);
  }
  36% {
    transform: scale(1, 0.8);
  }
}
@keyframes jump13 {
  54%,
  70% {
    transform: scale(1);
  }
  56% {
    transform: scale(1, 0.8);
  }
}
@keyframes jump55 {
  75%,
  90% {
    transform: scale(1);
  }
  77% {
    transform: scale(1, 0.8);
  }
}

@keyframes close {
  0% {
    top: 0;
    max-height: 100vh;
  }

  100% {
    top: 100vh;
    max-height: 0vh;
  }
}
@keyframes hi {
  from {
    max-height: 0;
  }
}

@keyframes load {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(100%);
  }
}

@keyframes hello {
  to {
    max-height: 0;
  }
}

@keyframes openOverlay {
  from {
    transform: translateY(-100vh);
  }
}
@keyframes closeOverlay {
  to {
    transform: translateY(100vh);
  }
}

#overlayContainer > div {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  animation: openOverlay 0.7s ease-in 0s both;
}
#overlayContainer > div.close {
  animation: closeOverlay 1s ease 0.1s both;
}

#www {
  position: absolute;
  right: 0;
  top: 0;
}
#www > svg {
  position: absolute;
  width: 3em;
  height: 2em;
}

#www polygon {
  fill: currentColor;
}

#stack {
  width: 100vw;
  overflow: hidden;
  height: 100vh;
  position: relative;
}

#cli {
  background: #111;
  /*
  transform: translate(100vw,0);
  */
}

#log {
  display: flex;
  flex-grow: 1;
  flex-direction: column;
  height: 100%;
}
#log > div {
  background: white;
  height: 0.5em;
  display: block;
  margin: 1px 2em;
  max-width: 80%;
}

#extra {
  background-image: linear-gradient(white, tomato);
  background-size: 100px 100px;
}

#ui {
  display: flex;
  overflow: hidden;
  /*
  animation: flip 5s steps(1) 0s infinite both;
  */
  /* flex-direction:  column; */
}
@keyframes flip {
  50% {
    transform: rotate(180deg);
  }
}

#ui,
#cli {
  transition: transform 1s ease;
  overflow: hidden;
}
body.split #ui {
  transform: translate(-100vw, 0);
}
body.split #cli {
  transform: translate(0, 0);
}

#ui > div > div {
  height: 300vh;
  max-height: 50vh;
  animation: hi 0.3s ease 0s both;
  background: currentColor;
  /*
  transition: background 0.3s ease;
  position: relative;
  overflow: hidden;
  */
  /*
  border: 1px solid black!important;
  background: white!important;
  */
}
/*
#ui>div>div:before{
content: "";
background: white;
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
animation: load 5s ease 0s both infinite;
animation-delay: calc(var(--progress) * 10ms);
}
*/

#ui > div > div:last-child {
  animation: hello 0.2s ease 0s both;
}

#ui > div:hover > div:after {
  content: "";
  width: 100%;
  max-width: 3em;
  height: 2px;
  display: inline-block;
  background: white;
}

.freeze *:after,
.freeze *:before,
.freeze * {
  animation-play-state: paused !important;
  background: url("frame.svg") !important;
}
