/* Colors & fonts */

:root {
  --ghost: #eefdff;
  --ice: #cbfdf8;
  --indigo-high: #4747da;
  --indigo: #03026f;
  --lilac-pale: #ddb5ff;
  --lilac: #bd7ff3;

  --digibop: "DigiBop", fantasy;
  --fuuld: "Fuuld", sans-serif;

  --tile-size: 64px;
  --main-bg: url("specter/pastel-mint.png");
  --box-bg: url("specter/speckled-off-white.png");
  --special-bg: url("specter/frost.png");

  color: var(--indigo);
  font-size: 18px;
}

@font-face {
  font-family: 'DigiBop';
  font-style: italic;
  font-weight: 400;
  src: url(scrawl/DigiBop-Italic.woff2) format("woff2");
}

@font-face {
  font-family: 'DigiBop';
  font-weight: 400;
  src: url(scrawl/DigiBop-Regular.woff2) format("woff2");
}

@font-face {
  font-family: 'That That New Roman';
  font-weight: 400;
  src: url(scrawl/ThatThatNewRoman-Regular.woff2) format("woff2");
}

@font-face {
  font-family: 'Fuuld';
  font-weight: 400;
  src: url(scrawl/Fuuld-Regular.woff2) format("woff2");
}

@font-face {
  font-family: 'Lotion';
  font-weight: 400;
  src: url(scrawl/Lotion-Regular.woff2) format("woff2");
}

.gradient {
  background-image: linear-gradient(90deg in oklch, #E9E9FF 0%, #F7E1FF 22%, #D7F3FF 48%, #F2FFED 70%, #CBFDF8 100%);
  background-size: unset;
}

/* Resets & basic */

ul {
  margin: 0;
  padding: 0;

  padding-left: 1em;
}

p {
  margin: 0;

  &+p {
    margin-top: 1.5em;
  }
}

body {
  margin: 0;
  --main-width: 930px;

  image-rendering: pixelated;
}

a {
  color: var(--indigo-high);
  text-decoration: underline;
  text-decoration-style: wavy;
  text-decoration-thickness: 1.5px;
  text-decoration-skip-ink: none;
  text-decoration-color: var(--lilac-pale);
}

/* Main */

main {
  --head-height: 37px;
  display: grid;
  gap: 1px;
  grid-template-areas:
    "interests subtitle subtitle subtitle subtitle"
    "interests .        gemini   gemini   gemini"
    "buttons   buttons  buttons  buttons  buttons"
    ".         .        ttrpgs   ttrpgs   books"
    "changelog .        ttrpgs   ttrpgs   books"
    "todos     webrings webrings .        books"
    "todos     webrings webrings gradient gradient";
  grid-template-columns: 1fr var(--head-height) .8fr .4fr 1fr;
  grid-template-rows: var(--head-height) 1fr 31px var(--head-height) 14em .3fr .3fr;
  width: var(--main-width);
  margin-left: auto;
  margin-right: auto;
  margin-top: 1.5em;

  border: 1px solid var(--lilac-pale);
  font-family: "Fuuld", sans-serif;
  background-color: var(--lilac-pale);

  &>* {
    background-color: var(--ghost);
    background-image: var(--box-bg);
    background-size: calc(3 * var(--tile-size));
  }
}

/* Cute grid boxes */

interest-box {
  grid-area: interests;
}

.affie {
  margin: 0;
  text-align: center;

  share-able {
    display: block;
    margin-top: .5em;
  }

  summary {
    color: var(--indigo-high);
    font-family: "DigiBop", fantasy;
    font-size: 1.2em;
    line-height: 1;
  }

  code {
    display: inline-block;
    margin: 0 .4em;
    max-height: 3em;
    overflow-y: scroll;
    border: 1px solid var(--ice);
    border-radius: 2px;

    background-color: var(--ghost);
    font-family: "Lotion", monospace;
    font-size: .8em;
    line-height: 1;
  }
}

thoughts-streams {
  grid-area: subtitle;

  display: grid;
  place-content: end;
  padding-right: .7em;

  font-family: "DigiBop", fantasy;
  font-size: 24px;
}

button-row {
  grid-area: buttons;
}

be-ware {
  font-size: 4px;
}

gemini-box {
  grid-area: gemini;

  cool-tag {
    background: var(--indigo);
    border-radius: 2px;
    color: var(--ice);

    &:before,
    &:after {
      content: '+';
    }
  }

  stuff-box {
    font-family: "That That New Roman", serif;
    line-height: 1.25;

    ul li::marker {
      content: "* ";
    }
  }
}

change-log {
  grid-area: changelog;
  overflow-y: scroll;

  title-box {
    background-color: unset;
  }

  title-box span {
    font-family: "Lotion", monospace;
  }

  stuff-box {
    background-image: var(--special-bg);
    background-size: calc(3 * var(--tile-size));
    font-size: .8em;
  }

  li {
    font-family: "Lotion", monospace;

    &::marker {
      font-family: "Fuuld", sans-serif;
    }
  }

  span.time {
    font-family: "DigiBop", fantasy;
    color: var(--lilac);

    &:after {
      content: "#";
      margin: 0 0.3em;

      font-family: "Fuuld", sans-serif;
    }
  }
}

ttrpg-box {
  grid-area: ttrpgs;
}

book-box {
  grid-area: books;

  span.title {
    font-family: "That That New Roman";
    font-style: italic;
  }
}

todo-box {
  grid-area: todos;
  overflow-y: scroll;

  stuff-box {
    font-family: "Lotion";

    ul li::marker {
      content: "~ ";
    }
  }
}

webring-box {
  grid-area: webrings;
}

pastel-box {
  grid-area: gradient;
}

/* Common box elements */

title-box {
  display: grid;
  place-content: center;
  height: var(--head-height);

  border-bottom: 1px solid var(--lilac-pale);
  background-color: var(--ghost);
  color: var(--lilac);

  span {
    margin-top: .2em;

    &:before,
    &:after {
      content: '+#+';
      margin: 0 .5em;
    }
  }
}

title-box, stuff-box {
  border-left: 1px solid var(--ice);
  border-right: 1px solid var(--ice);
}

stuff-box {
  display: block;
  padding: .5em;

  line-height: 1.4;
}

main ul {
  list-style: none;

  li::marker {
    content: '+ ';
  }
}

lake-space, .sprig-of-mint {
  background-attachment: fixed;
  background-image: var(--main-bg);
  background-size: calc(3 * var(--tile-size));
}


/* Footer */

looming-title {
  display: block;
  margin: 0 auto;
  margin-top: .5em;
  width: var(--main-width);
  position: relative;
  left: 2em;

  font-size: 2em;
  text-align: right;

  span:nth-child(1) {
    font-family: var(--digibop);
    font-style: italic;
  }

  span:nth-child(2) {
    font-family: var(--fuuld);
  }
}

footer {
  margin-top: -.8em;
  margin-bottom: 1em;
  padding: .5em;
  padding-bottom: 1em;
  min-width: var(--main-width);

  border-width: 1px 0;
  border-style: solid;
  border-color: var(--ice);

  background-image: linear-gradient(180deg, rgba(63,66,168,0.85) 68%, rgba(56,33,100,0.61) 85%, rgba(70,75,197,0.50) 100%, rgba(22,25,38,0.00) 100%);
  color: var(--ice);
  font-family: "That That New Roman", serif;

  a {
    color: var(--ice);
    text-decoration-color: var(--ice);
  }
}

footer-text {
  display: grid;
  gap: 6em;
  grid-template-columns: 2fr 1fr;
  width: var(--main-width);
  margin: 0 auto;
}
