@font-face
{
  font-family: SFMoviePoster;
  src: url(/assets/fonts/SFMoviePoster.ttf);
}

@font-face
{
  font-family: SFMoviePosterBold;
  src: url(/assets/fonts/SFMoviePoster-Bold.ttf);
}

@font-face
{
  font-family: Jost;
  src: url(/assets/fonts/Jost.ttf);
}

@font-face
{
  font-family: JostItalic;
  src: url(/assets/fonts/Jost-Italic.ttf);
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-ExtraLight.ttf);
  font-weight: 100;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-ExtraLightItalic.ttf);
  font-weight: 100;
  font-style: italic;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-Light.ttf);
  font-weight: 200;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-LightItalic.ttf);
  font-weight: 200;
  font-style: italic;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-Thin.ttf);
  font-weight: 300;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-ThinItalic.ttf);
  font-weight: 300;
  font-style: italic;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-Regular.ttf);
  font-weight: 400;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-Italic.ttf);
  font-weight: 400;
  font-style: italic;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-Medium.ttf);
  font-weight: 500;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-MediumItalic.ttf);
  font-weight: 500;
  font-style: italic;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-SemiBold.ttf);
  font-weight: 600;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-MediumItalic.ttf);
  font-weight: 600;
  font-style: italic;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-Bold.ttf);
  font-weight: 700;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-BoldItalic.ttf);
  font-weight: 700;
  font-style: italic;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-ExtraBold.ttf);
  font-weight: 800;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-ExtraBoldItalic.ttf);
  font-weight: 800;
  font-style: italic;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-Black.ttf);
  font-weight: 900;
  font-style: normal;
}

@font-face
{
  font-family: Urbanist;
  src: url(/assets/fonts/Urbanist-BlackItalic.ttf);
  font-weight: 900;
  font-style: italic;
}

@font-face
{
  font-family: Rollcage;
  src: url(/assets/fonts/Rollcage.otf);
}

@font-face
{
  font-family: NeutraText;
  src: url(/assets/fonts/NeutraTextTF-LightAlt.otf);
}

*
{
  margin: 0;
  padding: 0;
  border: 0;
  outline: none;
  box-sizing: border-box;
  position: relative;
}

::selection
{
  background: #ffa701;
}

:root
{
  --main-margin: 2rem;
  --main-height-min: calc(100vh - var(--main-margin) * 2);
  --main-width-max: calc(100vw - var(--main-margin) * 2);
  --text-shadow-content: -0.05em 0.08em 0 rgba(0, 0, 0, 0.5);
  --sona-blue-light: 145, 191, 255;
  --sona-blue-mid: 81, 146, 255;
  --sona-blue-dark: 77, 106, 255;
  --sona-orange-light: 255, 167, 1;
  --sona-orange-deep: 255, 129, 2;
  --sona-gray: 51, 51, 51;
  --text-color-light: 255, 255, 255;
  --gradient-sona-sunset:
    rgba(var(--sona-blue-light), 1),
    rgba(var(--sona-blue-dark), 1),
    rgba(var(--sona-orange-light), 1),
    rgba(var(--sona-orange-deep), 1);
  font-size: 14px;
}

body
{
  font-family: "Urbanist", sans-serif;
  background-color: #39499b;
  background-image: url("/assets/img/background-pattern.png");
  font-size: 1rem;
  font-weight: 700;
  color: white;
  text-shadow: var(--text-shadow-content);
}

main
{
  margin: 0 auto;
  width: 1000px;
  min-height: 100vh;
  max-width: 100vw;
  /* background-color: #4d6aff; */
}

a
{
  color: rgb(var(--sona-orange-light));
  text-decoration: none;
}

a.tree-link
{
  color: rgb(var(--text-color-light));
  fill: rgb(var(--text-color-light));
}

img
{
  user-select: none;
}

.super
{
  font-size: 1ex;
  vertical-align: super;
}

.img-fit
{
  width: 100%;
}

.img-cover
{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

.img-stretch
{
  width: 100%;
  height: 100%;
}

.block
{
  margin: 2rem 0;
  border-radius: 4rem;
  position: relative;
  padding: 3rem;
  box-shadow: inset 0 0 0 0.4rem rgba(0, 0, 0, 0.5);
}

.size-1
{
  font-size: 1rem;
}

.size-2
{
  font-size: 2rem;
}

.size-3
{
  font-size: 3rem;
}

.size-4
{
  font-size: 4rem;
}

.size-5
{
  font-size: 5rem;
}

.size-10
{
  font-size: 10rem;
}

.size-12
{
  font-size: 12rem;
}

.align-center
{
  text-align: center;
}

.align-right
{
  text-align: right;
}

.inline-block
{
  display: inline-block;
}

.fancy-title
{
  letter-spacing: 0.1em;
  font-family: "Rollcage";
  font-weight: 500;
  --shadow-step: 3px;
  text-shadow:
    -3px 3px 0 rgba(var(--sona-blue-light), 1),
    -6px 6px 0 rgba(var(--sona-blue-mid), 1),
    -9px 9px 0 rgba(var(--sona-blue-dark), 1),
    -12px 12px 0 rgba(var(--sona-orange-light), 1),
    -15px 15px 0 rgba(var(--sona-orange-deep), 1);
  animation: fancy-title-animation 5.12121s ease-in-out 0s infinite;
}

@keyframes fancy-title-animation
{
  0%
  {
    text-shadow: -3px 3px 0 rgba(var(--sona-blue-light), 1),
      -6px 6px 0 rgba(var(--sona-blue-mid), 1),
      -9px 9px 0 rgba(var(--sona-blue-dark), 1),
      -12px 12px 0 rgba(var(--sona-orange-light), 1),
      -15px 15px 0 rgba(var(--sona-orange-deep), 1);
  }

  50%
  {
    text-shadow: 3px 3px 0 rgba(var(--sona-blue-light), 1),
      6px 6px 0 rgba(var(--sona-blue-mid), 1),
      9px 9px 0 rgba(var(--sona-blue-dark), 1),
      12px 12px 0 rgba(var(--sona-orange-light), 1),
      15px 15px 0 rgba(var(--sona-orange-deep), 1);
  }

  100%
  {
    text-shadow: -3px 3px 0 rgba(var(--sona-blue-light), 1),
      -6px 6px 0 rgba(var(--sona-blue-mid), 1),
      -9px 9px 0 rgba(var(--sona-blue-dark), 1),
      -12px 12px 0 rgba(var(--sona-orange-light), 1),
      -15px 15px 0 rgba(var(--sona-orange-deep), 1);
  }
}

@keyframes fancy-box-animation
{
  0%
  {
    box-shadow: -3px 3px 0 0 rgba(var(--sona-blue-light), 1),
      -6px 6px 0 0 rgba(var(--sona-blue-mid), 1),
      -9px 9px 0 0 rgba(var(--sona-blue-dark), 1),
      -12px 12px 0 0 rgba(var(--sona-orange-light), 1),
      -15px 15px 0 0 rgba(var(--sona-orange-deep), 1);
  }

  50%
  {
    box-shadow: 3px 3px 0 0 rgba(var(--sona-blue-light), 1),
      6px 6px 0 0 rgba(var(--sona-blue-mid), 1),
      9px 9px 0 0 rgba(var(--sona-blue-dark), 1),
      12px 12px 0 0 rgba(var(--sona-orange-light), 1),
      15px 15px 0 0 rgba(var(--sona-orange-deep), 1);
  }

  100%
  {
    box-shadow: -3px 3px 0 0 rgba(var(--sona-blue-light), 1),
      -6px 6px 0 0 rgba(var(--sona-blue-mid), 1),
      -9px 9px 0 0 rgba(var(--sona-blue-dark), 1),
      -12px 12px 0 0 rgba(var(--sona-orange-light), 1),
      -15px 15px 0 0 rgba(var(--sona-orange-deep), 1);
  }
}

@keyframes rotate-bob-10deg
{
  0%
  {
    transform: rotate(-10deg);
  }

  50%
  {
    transform: rotate(10deg);
  }

  100%
  {
    transform: rotate(-10deg);
  }
}

.width-5
{
  width: 5%;
}

.width-40
{
  width: 40%;
}

.width-60
{
  width: 60%;
}

.sona-blue-light
{
  background-color: rgba(var(--sona-blue-light), 1);
}

.sona-blue-mid
{
  background-color: rgba(var(--sona-blue-mid), 1);
}

.sona-blue-dark
{
  background-color: rgba(var(--sona-blue-dark), 1);
}

.sona-orange-light
{
  background-color: rgba(var(--sona-orange-light), 1);
}

.sona-orange-deep
{
  background-color: rgba(var(--sona-orange-deep), 1);
}

.sona-gray
{
  background-color: rgba(var(--sona-gray), 1);
}

.palette,
.palette > *
{
  box-sizing: content-box;
}

.palette
{
  width: 100%;
  display: flex;
  height: 5rem;
  gap: 4px;
  background: rgba(0, 0, 0, 0.5);
  padding: 4px;
}

.palette > .item
{
  flex: 1;
  height: 100%;
  cursor: pointer;
  position: relative;
}

.palette > .item:hover,
.palette > .item:hover *
{
  z-index: 11;
}

.palette > .item::before
{
  content: " ";
  z-index: 3;
  position: absolute;
  width: 100%;
  height: 100%;
  transform: translate(0%, 0%);
  background: currentColor;
}

.palette > .item:hover::before
{
  content: " ";
  z-index: 4;
  width: 200%;
  height: 200%;
  transform: translate(-25%, -25%);
  box-shadow: inset 0 0 0 4px rgba(0, 0, 0, 0.5);
}

.palette > .item > .tooltip
{
  font-size: 1.8rem;
  pointer-events: none;
  user-select: none;
  opacity: 0;
  z-index: 5;
  position: absolute;
  width: 8ch;
  height: 1.6em;
  left: 50%;
  top: 0;
  transform: translate(-50%, -150%);
  text-align: center;
  border: 4px solid rgba(0, 0, 0, 0.5);
  color: rgba(var(--text-color-light), 1);
}

.palette > .item:hover > .tooltip
{
  opacity: 1;
}

.floating
{
  position: absolute;
}

.discord-widget
{
  width: 100%;
  height: 30rem;
}

#block-title
{
  height: 22rem;
  background: linear-gradient(to bottom, var(--gradient-sona-sunset));
}

#block-title .headshot
{
  animation: rotate-bob-10deg 7.78135s ease-in-out 0s infinite;
  width: 30rem;
  height: 30rem;
  left: -3rem;
  top: -2.5rem;
  z-index: 1000;
}

.headshot img
{
  width: 100%;
  height: 100%;
}

#block-info
{
  background: rgba(var(--sona-blue-dark), 1);
  font-size: 1.2rem;
}

#block-wip
{
  background: rgba(var(--sona-blue-dark), 1);
  font-size: 1.2rem;
}

#block-links
{
  background: rgba(var(--sona-blue-dark), 1);
  font-size: 4rem;
  text-align: center;
  user-select: none;
  cursor: default;
  text-shadow: none;
}

#block-links a
{
  display: inline-block;
  position: relative;
  cursor: pointer;
  transition: transform 0.1s ease-in-out;
}

#block-links a:hover
{
  color: rgb(var(--sona-orange-light));
  transform: scale(175%);
  z-index: 11;
}

#block-discord-server
{
  background: rgba(var(--sona-blue-dark), 1);
  font-size: 1.2rem;
}

#block-steam
{
  background: rgba(var(--sona-blue-dark), 1);
  font-size: 1.2rem;
}

#block-counter
{
  background: rgba(var(--sona-blue-dark), 1);
  font-size: 3rem;
  letter-spacing: 1rem;
}

.counter-title
{
  margin-bottom: 2rem;
}

.counter-container
{
  display: inline-block;
  align-self: center;
  font-family: "NeutraText", monospace;
  padding: 1.5rem 2.5rem;
  border-radius: 1.5rem;
  border: 0.5rem solid rgb(0, 0, 0, 0.4);
  background: rgba(0, 0, 0, 0.4);
}

.counter-number
{
  display: inline-block;
  border-radius: 0.5rem;
  padding: 0.8rem 0rem 0.8rem 1rem;
  margin: 0.3rem;
  background: rgba(0, 0, 0, 0.4);
  text-shadow:
    0 0 7px #fff,
    0 0 11px rgb(var(--sona-orange-light)),
    0 0 21px rgb(var(--sona-orange-light)),
    0 0 42px rgb(var(--sona-orange-light)),
    0 0 60px rgb(var(--sona-orange-light));
}

.counter-number-sep
{
  display: inline-block;
  width: 1rem;
}

.svg
{
  fill: currentColor;
}

.flex-box
{
  display: flex;
}

.flex
{
  flex: 1;
}

.flex-vertical
{
  flex-direction: column;
}

.block-title
{
  margin-bottom: 1em;
}

.info-row
{
  display: flex;
  font-size: 1.3rem;
}

.info-row:not(:first-child)
{
  margin-top: 1em;
}

.info-row .info-label
{
  text-align: right;
  padding-right: 1rem;
  width: 8.5rem;
  align-self: end;
}

.info-row .info-content
{
  font-size: 2rem;
  padding-left: 1rem;
}

.block-pad
{
  display: block;
  height: 3rem;
}

.copied-tooltip
{
  font-size: 1.5rem;
  z-index: 100;
  user-select: none;
  pointer-events: none;
  position: fixed;
  transform: translate(-50%, -100%);
}

.header-bar
{
  flex: 1;
  position: relative;
}

.header-bar::before
{
  content: " ";
  position: absolute;
  background: currentColor;
  width: 80%;
  height: 8px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: fancy-box-animation 5.12121s ease-in-out 0s infinite;
}

#hover-tooltip
{
  z-index: 80;
  opacity: 0;
  user-select: none;
  pointer-events: none;
  position: fixed;
  max-width: 26rem;
  transition: opacity 0.15s ease-in-out;
  transform: translate(1.5rem, 1.5rem);
  background: rgb(var(--sona-orange-light));
  padding: 0.4rem 0.6rem;
  border: 4px solid rgba(0, 0, 0, 0.5);
  border-radius: 1rem;
  font-size: 1.6rem;
}

#hover-tooltip.visible
{
  opacity: 1;
}

.speech-bubble::before,
.speech-bubble::after
{
  z-index: -1;
  content: " ";
  position: absolute;
  background: rgb(var(--sona-orange-light));
  border: 4px solid rgba(0, 0, 0, 0.5);
  width: 2rem;
  height: 2rem;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 50%) rotate(45deg);
}

.speech-bubble::after
{
  width: 4rem;
  border: none;
  transform: translate(-50%, 0);
}

.speech-bubble
{
  z-index: 1;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(120%, 3rem);
  padding: 1rem 1.5rem;
  background: rgb(var(--sona-orange-light));
  border: 4px solid rgba(0, 0, 0, 0.5);
  border-radius: 1rem;
}

.steam-avatar-link
{
  border-radius: calc(2rem + 4px * 2);
}

.steam-avatar
{
  border: 6px solid rgb(var(--sona-orange-light));
  border-radius: 2rem;
}

.steam-avatar.online
{
  border-color: rgb(var(--sona-blue-mid));
}

.steam-avatar.in-game
{
  border-color: #90ba3c;
}

.steam-avatar.offline
{
  border-color: #898989;
}

iframe[data-frame="steamdb"]
{
  /* filter: invert(); */
}

.steam-avatar-link
{
  margin-right: var(--main-margin);
}

.steam-profile.background,
.steam-profile.background-overlay
{
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  z-index: -2;
  pointer-events: none;
}

.steam-profile.background-overlay
{
  background: rgba(0, 0, 0, 0.5);
  height: 100%;
  z-index: -1;
}

.clip
{
  overflow: hidden;
}

.block *,
.block-background *
{
  /* z-index: 10; */
}

.block-clip
{
  overflow: hidden;
}

.no-padding
{
  padding: 0;
}

.svg.icon
{
  /* padding-top: calc(1lh / 2 - 1em / 2); */
  vertical-align: baseline;
  height: calc(1em * 0.73);
  display: inline-block;
}

.button
{
  background: rgb(var(--sona-orange-deep));
  border-radius: 1rem;
  border: 0.5rem solid rgb(var(--sona-orange-light));
  border-bottom-width: 1.5rem;
  padding: 0.6rem 1rem;
  color: white;
  transition: all 0.2s;
  top: 0.5rem;
}

.button:hover
{
  top: 1.5rem;
  border-bottom-width: 0.5rem;
}
