/* Global Styles */

:root {
  --theme-clr: rgb(50, 150, 255);
}

a {
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

* {
  box-sizing: border-box;
}

*:not(#ud, #nav a, a.yex, #nav button, .lumi) {
  transition: all 0.5s;
}

/* New Font */

@font-face {
  font-family: arista;
  src: url("arista-new.woff2") format("woff2");
}

/* Background Color And Set Font And Margin */

body {
  background-color: #2e2e2e;
  font-family: arista, arial, sans-serif, monospace;
  margin: 0;
  max-width: 100vw;
  --body-margin-top: 75px;
  height: calc(100% - var(--body-margin-top));
  margin-top: var(--body-margin-top);
}

/* Scroll Bar */

::-webkit-scrollbar {
  width: 0.4rem;
  height: 0.5rem;
}

::-webkit-scrollbar-track {
  background: #1e1e1e;
}

::-webkit-scrollbar-thumb {
  background: var(--theme-clr);
}

div.loaded-overlay {
  display: none;
  width: 100%;
  height: 100%;
  margin: 0;
  position: fixed;
  top: 0;
  z-index: 2;
}

div.loaded-overlay::before {
  content: '';
  background-color: rgba(25, 25, 25, 0.25);
  backdrop-filter: blur(2px);
  position: absolute;
  width: 50%;
  height: 100%;
  left:0;
  top:0;
  bottom:0;
  animation: flowinleft 1.25s 0.2s forwards;
}

div.loaded-overlay::after {
  content: '';
  background-color: rgba(25, 25, 25, 0.25);
  backdrop-filter: blur(2px);
  position: absolute;
  width: 50%;
  height: 100%;
  right:0;
  top:0;
  bottom:0;
  animation: flowinright 1.25s 0.2s forwards;
}

/* Nav Bar */

nav.bar {
  overflow: visible;
  width: clamp(120px, 100%, 100%);
  height: 50px;
  top: 0;
  margin-top:0;
  background-color: #696969;
  position:fixed;
  z-index:3;
  animation: swap-bottom 1s;
}

/* Nav Bar Header */

#ud {
  transform:rotate(0deg);
  transition: 0.5s transform;
}

nav.bar h2 {
  text-align:left;
  color: white;
  display:inline;
  text-shadow: 3px 1px var(--theme-clr);
  font-size: 40px;
  margin-top: 0px;
}

/* Nav Bar Link */

nav.bar a, nav.bar button {
  padding: 8px;
  display:block;
  cursor:pointer;
  font-size: 20px;
  margin-top: 4px;
  margin-left: 5px;
  color: white;
  background:transparent;
  border:none;
  outline:none;
  float:right;
  transition: 0.5s transform;
  text-decoration: none;
}

nav.bar a:not(.yex, .active):hover, nav.bar button:hover {
  color: var(--theme-clr);
  text-shadow: 0px 0px 8px var(--theme-clr);
  transform: scale(1.05) translateY(-5%);
} 

nav.bar .active {
  color: var(--theme-clr);
  text-shadow: 0px 0px 8px var(--theme-clr);
}

/* Nav Bar Header Link */

nav.bar a.yex {
  padding: 0px;
  margin-left: 5px;
  float: left;
  margin-top: 0;
  font-size: inherit;
}

nav.bar a.yex:hover {
  color:white;
  text-shadow: none;
  transform: scale(1.05);
}

input[type=color] {
  position: absolute;
  visibility:hidden;
  padding: 0;
  border: none;
  background: none;
}

nav.bar > div.has-dropdown > ul.dropdown {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  list-style: none;
  width: 300px;
  background: #555;
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  height: 2rem;
  top: 2.15em;
  padding: 0.5rem;
  border-radius: 0 0 15px 15px;
  transform: translateX(-40%);
}

nav.bar > div.has-dropdown > ul.dropdown > li.dropdown-item > a {
  width: 100%;
  height: 100%;
  margin-top: -0.15em;
}

nav.bar > div.has-dropdown:focus-within > ul.dropdown {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

nav.bar > div.has-dropdown {
  display:block;
  position: relative;
  background:transparent;
  float:right;
}

nav.bar > div.has-dropdown > button#settings {
  float: none;
}

div.overlay-info {
  position: relative;
  width: 100px;
  height:100px;
  margin-inline: auto;
  display: flex;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
}

div.overlay-container {
  background-color: var(--clr-prof);
  width: 100%;
  height: 100%;
  border-radius:50%;
  border: var(--clr-prof) solid 5px;
}

div.overlay-info > *:not(div.overlay-container) {
  position: absolute;
  background-color: #2e2e2e;
  z-index: 1;
}

div.overlay-info:hover > *:not(div.overlay-container) {
   transform: translateY(100%);
}

div.overlay-text {
  color: black;
  font-size: 30px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

/* Headers */

h1 {
  text-align: center;
  color: white;
  text-shadow: 3px 1px var(--theme-clr);
  font-size: 45px;
}

p > i[class^="fa"] {
  user-select: text;
  cursor: text;
}

/* Paragraph */

p {
  font-size: 20px;
  text-align: center;
  color: white;
  text-shadow: 2px 1px var(--theme-clr);
}

/* Profile Images */

img.prof {
  border: var(--clr-prof) solid 5px;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  margin-inline: auto;
  display: block;
}

/* Luminous Tech */
a.lumi { transition: 0.5s color; }
a.lumi:hover { color:yellow; text-shadow: 0px 0px 4px yellow;  }

/* Game Link */

a.game, a.btn {
  color: white;
  border-radius: 15px;
  background-color: #555;
  text-decoration: none;
  margin-right: 1%;
  margin-top: 1%;
  display: inline-block;
  padding: 16px;
  font-size:20px;
}

a.game:hover, a.btn:hover {
  background-color: #666;
  transform: scale(1.1) translateY(-5%);
}

/* Bookmarklet Buttons */

a.bmrklet {
  color: white;
  border-radius: 15px;
  background-color: #555;
  text-decoration: none;
  margin-right: 1%;
  margin-top: 1%;
  font-size:20px;
  display: inline-block;
  padding: 16px;
}

a.btn:active, a.game:active {
  background-color: #444;
}

#center {
  display: flex;
  justify-content: center;
}

#list {
  text-align:center;
}

/* Horizontal Line */

hr {
  border-color: white;
}

/* Yex (Text) */

.yex {
  display: inline-block;
  text-decoration: none;
  cursor:pointer; 
  color: white;
  transition: 0.5s transform, 0.5s background;
}

.yex:hover {
  transform: scale(1.05);
  font-weight: bolder;
  background: linear-gradient(45deg, purple, blueviolet);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
}

/* Loader */

div.loader {
 background-color: #2e2e2e;
 z-index: 2;
 position:fixed;
 top: 0;
 overflow:hidden;
 width: 100%;
 height: 100%;
}

div.loader-logo {
  display:flex;
  justify-content:center;
  align-items:center;
  background-color:#222;
  width: 100%;
  height: calc(100% - 10px);
}

h1.loader-logo-title {
 font-size: 55px;
 background-image: linear-gradient(45deg, purple, blueviolet);
 background-size: 100%;
 background-repeat: repeat;
 -webkit-background-clip: text;
 -webkit-text-fill-color: transparent; 
 text-shadow: none;
 filter: drop-shadow(0px 0px 6px #8515b1);
}

img.loader-logo-image {
  width: 135px;
  height: 135px;
  filter: drop-shadow(1px -1px 5px #8515b1);
}

div.loader-bar {
  width: 100%;
  height: 10px;
  background: linear-gradient(45deg, purple, blueviolet);
  border-radius: 5px;
  filter: drop-shadow(0 0 5px #8515b1);
  animation: loader-bar-animation 1.5s linear forwards;
}

/* Animations */

@keyframes loader-bar-animation {
  from {
    width:0;
  }
  5% {
    width: 15%;
  }
  20% {
    width: 25%;
  }
  35% {
    width: 60%;
  }
  45% {
    width: 65%;
  }
  65% {
    width: 70%;
  }
  80% {
    width: 75%;
  }
  90% {
    width: 90%;
  }
  to {
    width:100%;
  }
}

@keyframes flowinleft {
  from { transform-origin: center left; transform:scaleX(100%); }
  to { transform-origin: center left; transform:scaleX(0); display: none; }
}

@keyframes flowinright {
  from { transform-origin: center right; transform:scaleX(100%); }
  to { transform-origin: center right; transform:scaleX(0); display: none; }
}

@keyframes swap-bottom {
  0% { transform: translateX(0) translateY(-100%); }
  100% { transform: none; }
}

@media only screen and (max-width:650px) {
  nav.bar h2 { display:none; }
  nav.bar #updown { display:none; }
  nav.bar { display:flex; justify-content: center; gap: 5px; }
}

.tippy-box[data-theme~='darker'] {
  background-color: #555;
}
