@charset "utf-8";

:root {
  --text-color: rgba(255,255,255,0.92); /* #152255; */
  --bg-color: rgb(11, 22, 44); /* rgb(32, 16, 16);  */
  --line-color: rgba(255,255,255,0.25);
  --edge-spacer: 1.5rem;
  --leftWidth: 400px; /* 400px; */
  color-scheme: dark;
  --mainInfo-font-size: 2.25rem;
}

/* Light mode palette — toggled via html.light-mode.
   The p5 canvas and all --var() consumers follow automatically. */
html.light-mode {
  --text-color: rgb(25,25,25);
  --bg-color: rgb(240,235,225);
  --line-color: rgba(25,25,25,0.18);
  color-scheme: light;
}

/* smooth theme transitions */
body {
  transition: background-color 150ms ease, color 150ms ease;
}
body a {
  transition: background-color 150ms ease, color 150ms ease;
}
body p, body h1, body h2, body h3, body h4, body h5, body h6 {
  transition: color 150ms ease;
}


*, *:after, *:before {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.unselectable {
  -moz-user-select: -moz-none;
  -khtml-user-select: none;
  -webkit-user-select: none;
  -o-user-select: none;
  user-select: none;
}

::-webkit-scrollbar {
  width: 0.5rem;
  background-color: transparent;
}
::-webkit-scrollbar-thumb {
  background-color: var(--text-color);
  border: none;
}
::-webkit-scrollbar-track {
  box-shadow: none;
  background-color: transparent;
}


img {
  max-width: 100%;
  height: auto;
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* SITE SPECIFIC styling ++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  height: 100%;
  width: 100%;
}

body {
  background: var(--bg-color);
  color: var(--text-color);
  /* font-family: "Jetbrains Mono"; */
  /* font-family: 'Times New Roman', Times, serif; */
  font-family: Arial, Helvetica, sans-serif;
  font-size: 18px; /* 17px; /* 19px; */
  line-height: 1.3125em;
  font-weight: 300;
  margin: 0px;
  padding: 0px;
  height: 100dvh;
  overflow-x: hidden;
}


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* TYPE STUFF */

h1, h2, h3, h4, h5, h6 {
  font-family: "FlorDeRuina", monospace;
  font-optical-sizing: auto;
  font-weight: 400; /* 500; */
  font-style: normal;
  margin: 0px 0px 2rem 0px;
  line-height: 1em; /* 1.0125em; */
}
h1 b, h2 b, h3 b, h4 b, h5 b, h6 b {
  font-weight: 500;
}
h1 {
  font-size: 7em;
  line-height: 0.85em;
  font-weight: 500;
  color: #ffff2f;
  opacity: 0.9;
}
html.light-mode h1 {
  color: var(--text-color);
}
svg#BN {
  color: #ffff2f;
  opacity: 0.9;
  max-width: 800px;
  margin-bottom: 2rem;
  margin-top: calc(var(--edge-spacer) * -2);
}
html.light-mode svg#BN {
  color: var(--text-color);
}

h2 {
  font-size: 3.5em;
  font-weight: 400;
  line-height: 0.95em;

  small {
    font-size: 0.675em;
  }

  &.fat {
    font-weight: 500;
  }
}
h3 {
  font-size: 2.75em;
  padding: 0px;
}
h4 {
  font-size: 1.75em;
  line-height: 1.1em;
}

p {
  font-size: 1em;
  margin: 0px 0px 1.5rem 0px;
}
.noMargen {
  margin: 0px;
}

b {
  font-weight: bold;
}

/* INLINE LINKS */
a {
  text-decoration: none;
  color: var(--bg-color);
  background-color: var(--text-color);
  padding: 0px 3px;
  outline: 0;
}
a:active, a:focus { outline: 0; }
a:hover { text-decoration: none; outline: none; }

a img {
  border: 0px;
}


/* background */
#p5Wrapper {
  position: fixed;
  inset: 0;
  overflow: hidden;
  z-index: 0;
}


/* PEOPLE */
.peopleWrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 1rem;

  .peopleEntry {

    span {
      display: block;
      margin-bottom: 0.25rem;
    }

    a {
      word-break: break-all;
    }

    a.nameAnchor {
      visibility: hidden;
    }

    .name {
      font-weight: bold; /* normal; */
      font-size: 1em; /* 1.5em; /* 1.65em; /* 1.25em; */
      /* line-height: 1.1em; /* 1.05em; */
      margin-bottom: 0.25em;
    }

    .thumb {
      background-position: center;
      background-size: auto;
      background-repeat: no-repeat;
      image-rendering: pixelated; /* or crisp-edges */
      background-color: var(--text-color); /* we need color to make img work */

      a {
        display: flex;
        flex-direction: column;
        margin: 0px;
        margin-bottom: 1rem;
        background-color: transparent;
        visibility: visible !important;
        min-height: 380px; /* 400px; */
      }
    }

    .desc {
      margin-bottom: 0.5rem;
      transition: height 0.3s ease;

      a {
        background-color: transparent;
        text-decoration: underline;
        color: var(--text-color);
      }
    }

    .desc.expandable {
      height: var(--people-desc-height, 380px);
      overflow: hidden;
    }

    &.open .desc.expandable {
      height: auto;
    }

    &:not(.open) .desc.expandable {
      -webkit-mask-image: linear-gradient(to bottom, black 75%, transparent 100%);
      mask-image: linear-gradient(to bottom, black 75%, transparent 100%);
    }

    .toggleDescBtn {
      display: none;
      padding: 0px 3px;
      border: none;
      background-color: var(--text-color);
      color: var(--bg-color);
      font-family: inherit;
      font-size: 1em; /* 0.85em; */
      line-height: 1.2em;
      cursor: pointer;
    }

    &:has(.desc.expandable) .toggleDescBtn {
      display: inline-block;
    }

    .link a {
      background-color: var(--text-color) !important;
      color: var(--bg-color);
      visibility: visible !important;
    }

  }

}


/* people imgs */
.light-mode .peopleEntry .thumb {
  background-color: transparent !important;
}


/* Why code wrapper */
.WhyCodeWrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  grid-gap: var(--edge-spacer);

  .name {
    font-weight: bold;
  }

  .whyCode {
    font-style: italic;
  }
}


/* Program */
.programWrapper {
  
  .programEntry {
    display: grid;
    grid-template-columns: 90px 1fr auto;
    align-items: center;
    width: 100%;
    padding: 0.2em 0px;
    border-bottom: 1px solid var(--line-color);

    &:hover {
      cursor: pointer;
    }

    .timeWrapper {
      font-family: monospace;
    }

    .infoWrapper {
      display: block;

      .titleWrapper {
        display: block;

        .title {
          font-style: italic;
          padding: 2px 0px;
        }
      }

      .description {
        display: block;
        /* padding: 0.25em 0px; */
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition: max-height 0.4s ease, opacity 0.4s ease;
      }
    }

    .toggleBtn {
      display: flex;
      align-items: center;
      justify-content: center;
      align-self: center;
      padding: 0.2em 0 0.2em 0.5em;
      border: none;
      background: transparent;
      color: inherit;
      cursor: pointer;

      svg {
        width: 1.1em;
        height: 1.1em;
        transition: transform 0.3s ease;
      }
    }

    /* hover-capable devices: reveal description on hover, arrow unnecessary */
    @media (hover: hover) {
      .toggleBtn {
        display: none;
      }

      &:hover .description {
        max-height: 2000px;
        opacity: 1;
        padding: 0.5em 0px;
      }
    }

    /* no-hover devices (touch): arrow toggles the description */
    @media (hover: none) {
      &.open .description {
        max-height: 2000px;
        opacity: 1;
      }

      &.open .toggleBtn svg {
        transform: rotate(180deg);
      }
    }
  }

}

/* WORKSHOP wrapper */
.workshopWrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  grid-gap: var(--edge-spacer);

  .workshopEntry {

    div.caption {
      display: block;
      padding-top: 0.5rem;
      margin-bottom: 1.5rem;
      font-size: 0.8em;
      line-height: 1.25em;
      opacity: 0.8;
    }

    .thumb {
      display: block;
      min-height: 340px;
      background-position: center;
      background-size: auto;
      background-repeat: no-repeat;
      background-color: var(--text-color);
    }

    .name {
      display: block;
      /* font-weight: bold; */
      margin-top: 1rem;
    }
  }


}

html.light-mode .workshopEntry {
  .thumb {
    background-color: transparent;
  }
}




/* Why code wrapper */
.archiveWrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  grid-gap: var(--edge-spacer);

  strong {
    font-weight: bold; /* 900; */
  }
}




/* partner logos */
.partnerWrapper {
  display: flex;
  flex-direction: column;
  margin-top: auto;
  padding: calc(var(--edge-spacer) * 3) 0px 0px 0px;


  .partners {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 2rem;

    a {
      display: flex;
      flex-direction: column;
      width: 80px;
      height: 80px;
      color: var(--text-color);
      background-color: transparent;
      opacity: 0.92;
      transform: scale(1);
      transition-property: opacity, transform;
      transition-duration: 150ms;
      transition-timing-function: ease;

      img, svg {
        width: 100%;
        height: auto;
      }

      svg {
        fill: currentColor;
      }

      &:hover {
        transform: scale(1);
        opacity: 1;
      }
    }
  }

}



/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* THERE ARE STYLESHEETS ATTACHED TO THIS formatting */

/* grids */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
@media screen {

  :root {
    --edge-spacer: 1rem;
  }


  body {
    font-size: 17px;
  }

  h1 {
    font-size: 3em;
  }
  h2 {
    font-size: 2em;
  }
  h3 {
    font-size: 1.5em;
  }


    
  /* content */
  .pageWrapper {
    position: fixed;
    inset: 0;
    min-height: 100dvh;
    /* mix-blend-mode: screen; */

    display: grid;
    grid-template-columns: 1fr; /* 360px 1fr; */
    grid-template-rows: 1fr;
    justify-content: center;
    align-items: start;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;

    /* THis is for the fixed field in the left side */
    .fixed {
      position: relative; /* fixed; */
      inset: auto; /* 0 */
      width: auto; /* var(--leftWidth); */
      z-index: 9000;

      /* logo */
      .logo a {
        position: fixed;
        top: -3px;
        left: -3px;
        z-index: 1000;
        opacity: 1; /* 0.9; */
        transform: rotateZ(-1deg);
        z-index: 9000;

        display: flex;
        flex-direction: column;
        width: 80px; /* 90px; /* 120px; */
        height: auto;
        background-color: transparent;
        color: var(--text-color);

        img, svg {
          width: 100%;
          height: auto;
        }
      }

      /* main info */
      .leftBottomWrapper {
        display: block;
        
        h2 {
          width: auto;
          line-height: 1em;
          margin: 0px;
          font-weight: 500;

          span {
            display: inline;
          }
        }
        

        .mainInfoWrapper {
          display: none;
        }

      }

    }
        

    main {
      position: relative;
      padding: 0px var(--edge-spacer);
      min-height: 100dvh;
      display: flex;
      flex-direction: column;
      justify-content: start;
      align-items: center;

      .inside {
        max-width: 1200px;
        /* border: 1px solid purple; */
        padding-top: 120px;
        padding-bottom: var(--edge-spacer);

        display: flex;
        flex-direction: column;
        flex: 1 0 auto;
      }
    }
  }

  
  /* menu */
  nav.menuWrapper {
    position: relative; /* fixed; */

    ul {
      list-style: none;
      padding: 0px; /* 0px 0px 0px var(--edge-spacer) ; */
      margin: 0px 0px 2.5rem 0px;
    }

    a {
      font-family: "FlorDeRuina", monospace;
      font-size: var(--mainInfo-font-size);
      line-height: 1.1em;
      font-weight: 400; /* 500; */
      background-color: transparent;
      color: var(--text-color);
      transition: color 150ms ease;

      &.active {
        font-weight: 500;
      }
    }

  }


  /* dark/light mode toggle — top right, left of the hamburger */
  .themeToggle {
    position: fixed;
    top: 1rem;
    right: calc(1rem + 52px);
    z-index: 9500;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0px;
    margin: 0px;
    border: 1px solid var(--text-color);
    border-radius: 50%;
    background-color: transparent;
    color: var(--text-color);
    cursor: pointer;

    svg {
      width: 22px;
      height: 22px;
      color: inherit;
      display: inline-block;
    }

    &:hover {
      background-color: var(--text-color);
      color: var(--bg-color);
    }

    .icon-sun {
      display: none;
    }
    .icon-moon {
      display: inline-block;
    }
  }

  html.light-mode .themeToggle {
    .icon-sun {
      display: inline-block;
    }
    .icon-moon {
      display: none;
    }
  }

  .indent {
    padding-left: 0ch;
    display: inline-block;
  }

  .hide {
    display: none;
    overflow: hidden;
    min-height: auto !important;
  }
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* MOBILE MENU — hamburger + fullscreen slide-in overlay (< 1024px)          */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/* hamburger button — far right, with the theme toggle beside it */
.burger {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0px;
  margin: 0px;
  border: 1px solid var(--text-color);
  border-radius: 50%;
  background-color: transparent;
  color: var(--text-color);
  cursor: pointer;

  svg {
    width: 22px;
    height: 22px;
    color: inherit;
    display: inline-block;
  }

  .crossIcon {
    display: none;
  }

  &:hover {
    background-color: var(--text-color);
    color: var(--bg-color);
  }
}

/* swap the hamburger into an ✕ while the menu is open */
body.menu-open .burger {
  .burgerIcon { display: none; }
  .crossIcon { display: inline-block; }
}

/* fullscreen slide-in nav for mobile only */
@media screen and (max-width: 1023.98px) {

  nav.menuWrapper {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100dvh;
    margin: 0px;
    border: 0px none;
    background: transparent;
    z-index: 8500;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    /* off-screen until opened — slides in from the left */
    transform: translateX(-100%);
    transition: transform 300ms ease;

    ul {
      list-style: none;
      padding: 0px;
      margin: 0px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.5rem;
    }

    a {
      font-size: clamp(1.6rem, 6vw, 2.5rem);
      line-height: 1.3em;
      padding: 0.25rem 0px;
      background-color: transparent;
      color: var(--text-color);
      display: inline-block;
    }

    &.open {
      transform: translateX(0);
    }
  }

  /* these only ever apply on mobile — so a lingering .menu-open class
     can't keep content hidden after resizing up to desktop */
  body.menu-open {
    .pageWrapper {
      overflow: hidden;
    }
    .inside, .mainInfoWrapper {
      visibility: hidden;
      opacity: 0;
    }
  }
}


/* ***************************************************** */
/* BREAK MEDIUM */

@media (min-width: 400px) {


}


/* ***************************************************** */
/* BREAK MEDIUM */

@media (min-width: 650px) {

  :root {
    --edge-spacer: 1.25rem;
  }

  h1 {
    font-size: 4em;
  }
  h2 {
    font-size: 3em;
  }
  h3 {
    font-size: 2em;
  }  
  
  .pageWrapper {
 
    .fixed {

      /* logo */
      .logo a {
        width: 90px; /* 120px; */
      }
    }
  }

}



/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* 4. */
@media screen and (min-width: 800px) {

}



/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* 4. */
@media screen and (min-width: 1024px) {

  :root {
    --edge-spacer: 1.5rem;
  }

  body {
    font-size: 18px;
  }

  h1 {
    font-size: 7em;
  }
  h2 {
    font-size: 3.5em;
  }
  h3 {
    font-size: 2.75em;
  }


  /* hide the mobile hamburger on desktop */
  .burger {
    display: none;
  }

  /* with the hamburger gone the theme toggle takes the far-right spot */
  .themeToggle {
    right: 1rem;
  }

  /* content */
  .pageWrapper {
    min-height: 100dvh;
    mix-blend-mode: screen;

    display: grid;
    grid-template-columns: 1fr; /* 360px 1fr; */
    grid-template-rows: 1fr;
    justify-content: center;
    align-items: start;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;

    /* THis is for the fixed field in the left side */
    .fixed {
      position: fixed;
      inset: 0;
      width: var(--leftWidth);

      /* logo */
      .logo a {
        position: fixed;
        top: -3px;
        left: -3px;
        width: 120px;
      }

      /* Navigation and main info */
      .leftBottomWrapper {
        position: fixed;
        bottom: var(--edge-spacer);
        left: var(--edge-spacer);
        margin: 0px;
        width: calc(var(--leftWidth) - var(--edge-spacer));
        z-index: 1000;
        display: block;
        
        h2 {
          font-size: var(--mainInfo-font-size); /* 3rem; */
          width: auto;
          line-height: 1.1em; /* 1.05em; */
          max-width: 10ch;

          span { display: block; }
        }

        .mainInfoWrapper {
          display: block;
        }
      }
    }


    main {
      position: relative;
      
      padding: 0px var(--edge-spacer);
      padding-left: var(--leftWidth);
      min-height: 100dvh;
      justify-content: start; /* end; */

      .inside {
        padding-top: calc(var(--edge-spacer) * 3);
        padding-bottom: var(--edge-spacer);
        min-height: 100dvh;
      }
    }
  }  


  .indent {
    padding-left: 2ch;
  }  

}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* 4. */
@media screen and (min-width: 1280px) {



}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* 4. */
@media screen and (min-width: 1400px) {
  
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* LIGHT MODE overrides — placed after all media queries so they always win */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
html.light-mode .pageWrapper {
  mix-blend-mode: normal;
  background: transparent; /* (--bg-color); */
}

html.light-mode #p5Wrapper {
  background: var(--bg-color);
  /* let the wayfarer trails show as a faint wash over the paper,
     above the content but below logo & toggle (z-index 9000) */
  z-index: 0; /* 1000; */
  pointer-events: none;
}


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */


/* Flor de Ruina (velvetyne.fr/fonts/flor-de-ruina) — 5 life-cycle styles, SIL OFL */
@font-face {
  font-display: swap;
  font-family: 'FlorDeRuina';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/FlorDeRuina-Germen.woff2') format('woff2'); /* germen */
}
@font-face {
  font-display: swap;
  font-family: 'FlorDeRuina';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/FlorDeRuina-Semilla.woff2') format('woff2'); /* semilla */
}
@font-face {
  font-display: swap;
  font-family: 'FlorDeRuina';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/FlorDeRuina-Flor.woff2') format('woff2'); /* flor */
}
@font-face {
  font-display: swap;
  font-family: 'FlorDeRuina';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/FlorDeRuina-Ruina.woff2') format('woff2'); /* ruina */
}
@font-face {
  font-display: swap;
  font-family: 'FlorDeRuina';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/FlorDeRuina-Fractura.woff2') format('woff2'); /* fractura */
}


/* jetbrains-mono-300 - latin */


/* jetbrains-mono-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/jetbrains-mono-v20-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-300italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: italic;
  font-weight: 300;
  src: url('../fonts/jetbrains-mono-v20-latin-300italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/jetbrains-mono-v20-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: italic;
  font-weight: 400;
  src: url('../fonts/jetbrains-mono-v20-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/jetbrains-mono-v20-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-500italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: italic;
  font-weight: 500;
  src: url('../fonts/jetbrains-mono-v20-latin-500italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/jetbrains-mono-v20-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-600italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: italic;
  font-weight: 600;
  src: url('../fonts/jetbrains-mono-v20-latin-600italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/jetbrains-mono-v20-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-700italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: italic;
  font-weight: 700;
  src: url('../fonts/jetbrains-mono-v20-latin-700italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/jetbrains-mono-v20-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* jetbrains-mono-800italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'JetBrains Mono';
  font-style: italic;
  font-weight: 800;
  src: url('../fonts/jetbrains-mono-v20-latin-800italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}