/*
 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/                                    '.
| hi there! welcome to netnet.studio's |
| main stylesheet! coded from scratch  |
| w/love by the artists at netizen.org |
` _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _  ,/
                                .'`
                          ( ◕ ◞ ◕ )つ
*/
:root {
  --fg-color: #fff;
  --bg-color: #000;
  --layout-transition-time: 1s;
  --menu-fades-time: 500ms;
  --sarah-ease: cubic-bezier(0.165, 0.84, 0.44, 1);
}

@font-face {
    font-family: 'fira-sans-bold';
    src: url('fonts/firasans-bold-webfont.woff2') format('woff2'),
         url('fonts/firasans-bold-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'fira-sans-regular';
    src: url('fonts/firasans-regular-webfont.woff2') format('woff2'),
         url('fonts/firasans-regular-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'fira-mono-regular';
    src: url('fonts/FiraMono-Regular.woff2') format('woff2'),
         url('fonts/FiraMono-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@keyframes bounce {
  0% { transform: translateY(0); }
  30% { transform: translateY(-8px); }
  50% { transform: translateY(0); }
  100% { transform: translateY(0); }
}

@keyframes spring-up {
  0% { transform: translateY(0); }
  30% { transform: translateY(-8px); }
  90% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}

@keyframes shake {
  10%, 90% { transform: translate3d(-1px, 0, 0); }
  20%, 80% { transform: translate3d(2px, 0, 0); }
  30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }
  40%, 60% { transform: translate3d(4px, 0, 0); }
}

@keyframes bgshift {
  0% { background: var(--netizen-tag); }
  25% { background: var(--netizen-attribute); }
  50% { background: var(--netizen-text); }
  75% { background: var(--netizen-meta); }
  100% { background: var(--netizen-tag); }
}

* { box-sizing: border-box; }

*::-moz-selection {
  background-color: var(--fg-color);
  color: var(--bg-color);
}

*::selection {
  background-color: var(--fg-color);
  color: var(--bg-color);
}

code {
  font-family: "fira-mono-regular", inconsolata, monospace;
}

code::-moz-selection {
  background-color: var(--bg-color);
  color: var(--fg-color);
}

code::selection {
  background-color: var(--bg-color);
  color: var(--fg-color);
}

body {
  overflow: hidden;
}

body,
input,
button {
  box-sizing: border-box;
  padding: 0; margin: 0;
  font-family: "fira-sans-regular", Helvetica, Arial, "Lucida Grande", sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

#loader {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999999;
  display: flex;
  justify-content: space-around;
  align-items: center;
  background-color: #1c1c36;
  background: radial-gradient(circle, rgba(106,106,167,1) 0%, rgba(28,28,54,1) 100%);
  font-family: "fira-mono-regular", inconsolata, monospace;
  color: #fff;
  opacity: 1;
  transition: opacity 1s;
  font-size: 20px;
}

#loader > div {
  text-align: center;
}

#netnet {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: -30;
  transition: filter .5s var(--sarah-ease);
}

#nn-output {
  position: absolute;
  z-index: -20;
}

#nn-output > iframe {
  /* HACK: at 100% it creates scrollbars for some reason */
  height: 99.7% !important;
}

#nn-window {
  position: absolute;
  min-width: 300px;
  min-height: 200px;
  border: 4px solid var(--fg-color);
  background-color: rgba(0, 0, 0, 0);
}

#nn-window > #nn-menu {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  padding: 15px 15px 5px 5px;
  color: var(--fg-color);
}

#nn-window > #nn-menu > #face  {
  cursor: pointer;
  height: 26px;
  font-family: sans-serif;
  text-rendering: auto;
  -webkit-font-smoothing: auto;
  transition: font-size var(--layout-transition-time);
  webkit-user-select: none;
  user-select: none;
}

#nn-window > #nn-menu > #face svg  {
  transition: width var(--layout-transition-time),
    height var(--layout-transition-time);
}

#nn-window > #nn-menu > #face > span {
  display: inline-block;
  transform-origin: center;
  padding: 0px 2px 0px 5px;
}

#nn-window > #nn-editor {
  overflow-y: scroll;
  height: calc(100% - 60px);
  scrollbar-color: var(--fg-color) rgba(0,0,0,0);
  scrollbar-width: thin;
}


/* BROWSERFEST BUTTON */
.opt-rainbow-bg {
  background-image: linear-gradient(to right, #ffa50066, #ffff0066, #00800066, #00ffff66, #0000ff66, #ee82ee66) !important;
  background-position-x: 0;
  animation: opt-pan-rainbow 5s infinite;
  animation-timing-function: linear;
}

@keyframes opt-pan-rainbow {
  0% { background-position-x: 0px; }
  100% { background-position-x: 182px; }
}
