@use "sass:color";

// Palette: Catppuccin Mocha
// https://catppuccin.com/palette/
$base: #1e1e2e;
$text: #cdd6f4;

$mantle: #181825;
$crust: #11111b;

$overlay0: #6c7086;
$overlay1: #7f849c;
$overlay2: #9399b2;

$surface0: #313244;
$surface1: #45475a;
$surface2: #585b70;

$subtext0: #a6adc8;
$subtext1: #bac2de;

$red: #f38ba8;
$green: #a6e3a1;
$peach: #fab387;
$blue: #89b4fa;
$mauve: #8839ef;


html {
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  background-color: $base;
  font-family: Pixeloid, PixelMPlus;
  color: $text;
  width: 100%;
  height: 100%;
  margin: 0;
}

main {
  max-width: 45rem;
  margin-inline: auto;
  padding: 0 .5rem;
  flex: 1 0 auto;
}

h1 {
  text-align: center;
}

a {
  color: unset;
  text: {
    decoration: underline {color: $blue};
    underline-offset: 1px;
  }
  transition: 0.3s ease;

  &:hover {
    text-underline-offset: 3px;
  }

  &:active {
    transition: none !important;
    display: inline-block;
    transform: scale(.98) !important;
    background-color: $mantle !important;
  }

  &.block {
    text-decoration: none;

    &:hover {
      transform: scale(1.02) translateY(-.25rem);
      background-color: $surface1;
    }
  }
}

p {
  margin: .5rem;
}

ul {
  margin-top: .25rem;
}

header {
  display: flex;
  justify-content: space-between;
  background-color: $mantle;
  padding: .5rem;
  font-size: larger;

  .header-links * + * {
    padding-left: 1ch;
  }
}

footer {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  background-color: $mantle;
  margin-top: 2rem;
  padding: 1rem;
  column-gap: 4ch;
}

.mono {
  font-family: Monocraft, monospace;
  background-color: $mantle;
  border-radius: 2px;
  padding: 0 .25rem;
  color: $subtext0;
  overflow-wrap: anywhere;

  &:hover {
    transition: .3s ease;
    background-color: $crust;
  }
}

.block {
  display: block;
  background-color: $surface0;
  border-radius: .5rem;
  padding: .5rem;

  & + & {
    margin-top: .5rem;
  }

  &.red {
    background-color: color.mix($surface0, $red, 60%);
  }
  &.orange {
    background-color: color.mix($surface0, $peach, 60%);
  }
  &.green {
    background-color: color.mix($surface0, $green, 60%);
    &:hover { background-color: color.mix($surface1, $green, 60%); }
    &:active { background-color: color.mix($mantle, $green, 60%) !important; }
  }

  & .header {
    display: flex;
    align-items: center;
    font-size: x-large;

    .icon {
      margin-right: .5ch;
    }
  }
}

.blocks {
  display: flex;
  flex-wrap: wrap;
  margin-top: .5rem;
  gap: .5rem;

  & + &,
  & + .block,
  .block + & {
    margin-top: .5rem;
  }

  .block {
    margin-top: 0;
  }
}

.badges {
  .block {
    flex: 1;
    text-wrap-mode: nowrap;
    text-align: -webkit-center;

    &:hover {
      flex: 1.5;
      transform: none;
    }
  }
}

.icon {
  width: 1.5em;
  vertical-align: middle;
  border-radius: .2em;
}


::-webkit-scrollbar {
  width: .5rem;

  &-button {
    display: none;
  }

  &-track {
    background-color: $base;
  }

  &-thumb {
    background-color: $overlay0;
    border-radius: .25rem;

    &:hover {
      background-color: $overlay1;
    }
  }
}

@font-face {
  font-family: Monocraft;
  src: url("/static/font/Monocraft.ttc");
}

@font-face {
  font-family: Pixeloid;
  src:
    url("/static/font/Pixeloid/woff/Sans.woff2") format("woff2"),
    url("/static/font/Pixeloid/otf/Sans.otf") format("opentype");
}
@font-face {
  font-family: Pixeloid;
  src:
    url("/static/font/Pixeloid/woff/Sans-Bold.woff2") format("woff2"),
    url("/static/font/Pixeloid/otf/Sans-Bold.otf") format("opentype");
  font-weight: bold;
}

@font-face {
  font-family: PixelMPlus;
  src: url("/static/font/PixelMPlus/Regular.ttf");
}
@font-face {
  font-family: PixelMPlus;
  src: url("/static/font/PixelMPlus/Bold.ttf");
  font-weight: bold;
}
