@import url('https://fonts.googleapis.com/css2?family=Recursive:slnt,CASL,CRSV,MONO@-15..0,0..1,0..1,0..1&display=swap');
/**
 * Consts
 */
:root {
    color-scheme: light dark;
    /*Primary / Secondary */
    --const-color-richblack: #0D1321; /* Rich Black */
    --const-color-creamwhite: #FFEDDF; /* Linen */

    --const-color-darksoftnavy: #241f3e; 
    --const-color-creamierwhite: #ECD9CA; /* Modified linen */

    /* Accents */
    --const-color-deepred: #A31621; /* Madder (red) */


    --const-unit: 1;
    --size-1: calc(1rem * var(--const-unit));
    --size-2: calc(2 * var(--size-1));
    --size-8: calc(8 * var(--size-1));
    --size-16: calc(16 * var(--size-1));
    --size-24: calc(24 * var(--size-1));
    --unit-1: calc(1px * var(--const-unit));
    --unit-2: calc(2 * var(--unit-1));
    --unit-4: calc(4 * var(--unit-1));
    --unit-8: calc(8 * var(--unit-1));
    --unit-12: calc(12 * var(--unit-1));
    --unit-16: calc(16 * var(--unit-1));

    --default-spacing: var(--unit-8);
    --default-double-spacing: var(--unit-16);
    --default-half-spacing: var(--unit-4);
}

:root[scheme="dark"] {
  color-scheme: dark;
}

:root[scheme="light"] {
  color-scheme: light;
}

*[theme="puremono"] {
    --theme-color-foreground: light-dark(#000, #fff);
    --theme-color-background: light-dark(#fff, #000);
    --theme-color-accent-1: var(--const-color-deepred);
}

*[font="recursive"] {
    --theme-font-family: "Recursive", monospace;
}

*[theme="fakemono"] {
    --theme-color-foreground: light-dark(var(--const-color-richblack), var(--const-color-creamwhite));
    --theme-color-background: light-dark(var(--const-color-creamwhite), var(--const-color-richblack));
    --theme-color-accent-1: var(--const-color-deepred);
}

*[theme="nostalgia"] {
    --theme-color-foreground: light-dark(var(--const-color-darksoftnavy), var(--const-color-creamierwhite));
    --theme-color-background: light-dark(var(--const-color-creamierwhite), var(--const-color-darksoftnavy));
    --theme-color-accent-1: var(--const-color-deepred);
}

:root *[theme="spooked"] {
    /* --theme-color-foreground: var(--const-color-darksoftnavy, blue); */
    --theme-color-foreground: var(--const-color-deepred, blue);
    --theme-color-background: var(--const-color-richblack);
    --theme-color-accent-1: var(--const-color-deepred);
}

/* End definitions */


input {
  all: unset;
}

button {
  border: none;
}

/**
 * Modern Reset
 * attribution: Josh W Comeau
 */
/* 1. Use a more-intuitive box-sizing model */
*, *::before, *::after {
  box-sizing: border-box;
}
/* 2. Remove default margin */
* {
  margin: 0;
}
/* 3. Enable keyword animations */
@media (prefers-reduced-motion: no-preference) {
  html {
    interpolate-size: allow-keywords;
  }
}
body {
  /* 4. Add accessible line-height */
  line-height: 1.5;
  /* 5. Improve text rendering */
  -webkit-font-smoothing: antialiased;
}
/* 6. Improve media defaults */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}
/* 7. Inherit fonts for form controls */
input, button, textarea, select {
  font: inherit;
}
/* 8. Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}
/* 9. Improve line wrapping */
p {
  text-wrap: pretty;
}
h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}
/*
  10. Create a root stacking context
*/
#root, #__next {
  isolation: isolate;
}


/* Custom */

:root .themed, :root .themed button {
    color: var(--theme-color-foreground);
    border-color: var(--theme-color-foreground);
    background-color: var(--theme-color-background);
    font-family: var(--theme-font-family);
    border-width: var(--unit-2);
}

.themed section {
    padding: var(--default-double-spacing);
    margin: var(--default-spacing);
}

.themed article {
  padding: var(--default-spacing);
  margin: var(--default-half-spacing);
}

.themed header {
  position: relative;
}

.themed button {
  border-style: solid;
}

body.themed {
  padding: var(--default-double-spacing);
}

button[data-theme-toggle] {
  border-radius: 50%;
  width: var(--size-2);
  height: var(--size-2);
  position: absolute;
  right: 0px;
  top: var(--default-spacing);
}

button {
  display: flex;
  align-items: center;
  justify-content: center;
}

.card {
  display: block;
  border-style: solid;
  border-radius: var(--unit-8);
}

.cardgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(var(--size-16), var(--size-24)));
  grid-gap: var(--default-spacing);
}

svg.icon path,
svg.icon polygon,
svg.icon rect {
  fill: var(--theme-color-foreground);
}
svg.icon circle {
  stroke: var(--theme-color-foreground);
}
svg.icon {
  /* SVG icons that are inline */
  width: 1em;
  height: 1em;
}

svg.icon.icon-x2 {
  width: 2em;
  height: 2em;
}
