/* 
  Built on top of the os-component-website template
  https://github.com/jimmac/os-component-website
*/

@font-face {
  font-family: InterVariable;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/InterVariable.woff2") format("woff2");
}
@font-face {
  font-family: InterVariable;
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/InterVariable-Italic.woff2") format("woff2");
}

@font-feature-values InterVariable {
    @character-variant {
        cv01: 1; cv02: 2; cv03: 3; cv04: 4; cv05: 5; cv06: 6; cv07: 7; cv08: 8;
        cv09: 9; cv10: 10; cv11: 11; cv12: 12; cv13: 13;
        alt-1:            1; /* Alternate one */
        alt-3:            9; /* Flat-top three */
        open-4:           2; /* Open four */
        open-6:           3; /* Open six */
        open-9:           4; /* Open nine */
        lc-l-with-tail:   5; /* Lower-case L with tail */
        simplified-u:     6; /* Simplified u */
        alt-double-s:     7; /* Alternate German double s */
        uc-i-with-serif:  8; /* Upper-case i with serif */
        uc-g-with-spur:  10; /* Capital G with spur */
        single-story-a:  11; /* Single-story a */
        compact-lc-f:    12; /* Compact f */
        compact-lc-t:    13; /* Compact t */
    }
    @styleset {
        ss01: 1; ss02: 2; ss03: 3; ss04: 4; ss05: 5; ss06: 6; ss07: 7; ss08: 8;
        open-digits: 1;                /* Open digits */
        disambiguation: 2;             /* Disambiguation (with zero) */
        disambiguation-except-zero: 4; /* Disambiguation (no zero) */
        round-quotes-and-commas: 3;    /* Round quotes &amp; commas */
        square-punctuation: 7;         /* Square punctuation */
        square-quotes: 8;              /* Square quotes */
        circled-characters: 5;         /* Circled characters */
        squared-characters: 6;         /* Squared characters */
    }
}

:root {
  /* default Inter settings */
  font-feature-settings: 'liga' 1, 'calt' 1, 'cv05' 1; /* Inter features */
}


:root {
  --rounded-corner: 12px;
  --blue1: rgb(153,193,241);
  --blue2: rgb(98,160,234);
  --blue3: rgb(53,132,228);
  --blue4: rgb(28,113,216);
  --blue5: rgb(26,95,180);
  --green1: rgb(143,240,164);
  --green2: rgb(87,227,137);
  --green3: rgb(51,209,122);
  --green4: rgb(46,194,126);
  --green5: rgb(38,162,105);
  --yellow1: rgb(249,240,107);
  --yellow2: rgb(248,228,92);
  --yellow3: rgb(246,211,45);
  --yellow4: rgb(245,194,17);
  --yellow5: rgb(229,165,10);
  --orange1: rgb(255,190,111);
  --orange2: rgb(255,163,72);
  --orange3: rgb(255,120,0);
  --orange4: rgb(230,97,0);
  --orange5: rgb(198,70,0);
  --red1: rgb(246,97,81);
  --red2: rgb(237,51,59);
  --red3: rgb(224,27,36);
  --red4: rgb(192,28,40);
  --red5: rgb(165,29,45);
  --purple1: rgb(220,138,221);
  --purple2: rgb(192,97,203);
  --purple3: rgb(145,65,172);
  --purple4: rgb(129,61,156);
  --purple5: rgb(97,53,131);
  --brown1: rgb(205,171,143);
  --brown2: rgb(181,131,90);
  --brown3: rgb(152,106,68);
  --brown4: rgb(134,94,60);
  --brown5: rgb(99,69,44);
  --light1: rgb(255,255,255);
  --light2: rgb(246,245,244);
  --light3: rgb(222,221,218);
  --light4: rgb(192,191,188);
  --light5: rgb(154,153,150);
  --dark1: rgb(119,118,123);
  --dark2: rgb(94,92,100);
  --dark3: rgb(61,56,70);
  --dark4: rgb(36,31,49);
  --dark5: rgb(0,0,0);
  --primary-color: var(--purple3);
  --borders: var(--light3);
  --pagewidth: 60rem;
  --pagepad: 3rem;
  --btnround: 500px;
  --fg-color: #241f31;
  --bg-color: #f6f5f4;
  --term-fg: var(--dark3);
  --term-bg: var(--light1);
  --term-br: 9px;
  --term-width: calc(100vw - 6rem);
  --fontsize: 12pt;
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --fg-color: #eee;
    --bg-color: var(--dark0);
    --borders: var(--dark3);
    --term-fg: var(--light1);
    --term-bg: var(--dark4);
    --primary-color: var(--purple2);
  }
}

@media only screen and (max-width: 650px) {
  :root {
    --pagepad: 1rem;
    --fontsize: 14pt;
    --term-width: calc(100vw - 3rem);
  }
}


* {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  font-size: var(--fontsize);
  font-family: InterVariable, sans-serif;
  font-weight: 400;
  line-height: 1.6;
  scroll-behavior: smooth;
}

body {
  color: var(--fg-color);
  background-color: var(--bg-color);
  display: grid;
  min-height: 100vh;
  grid-template-rows: auto minmax(auto,1fr) auto; /* header, stuff, footer */
}

h1, h2, h3, h4, h5, h6 {
  margin: 1rem 0 10px;
  font-weight: 600;
  line-height: 1.25;
  font-variation-settings: "wght" 600; /* needed for webkit */
}
h1 {
  text-align: center;
  font-size: 30px;
  font-weight: 100;
  font-style: normal;
  margin-bottom: 2rem;
}
@media screen and (min-width: 650px) {
  h1 {
    margin-left: 10%;
    margin-right: 10%;
    font-size: 38px;
  }
}

h2 {
  margin-top: 3rem;
  font-size: 1.2rem;
}

ol { padding: 0 0 0 1rem; }
ul { padding: 0 0 0 2rem; }

/* LINKS */
a {
  font-weight: 600;
  text-decoration: none;
  color: var(--primary-color);
  cursor: pointer;
  font-variation-settings: "wght" 600; /* needed for webkit */
}
a:hover {
  text-decoration: underline;
}

a[href^="http"]:after {
  display: inline-block;
  margin-left: 3px;
  content: url('/assets/extlink.svg');
}

b {
  font-weight: 600;
}
small {
  color: #777;
}
hr {
  margin: 3rem auto 4rem;
  width: 40%;
  opacity: 40%;
}

img {
  margin: 2rem auto;
  max-width: 100%;
  }
  img.full, picture.full img { width: 100%; display: block; margin: 0 auto; }
  img.pixels, picture.pixels img { 
    image-rendering: crisp-edges; /* older firefox browsers */ 
    image-rendering: pixelated; 
  }

.extlink {
  display: inline-block;
}

/* Layout */
.container {
  max-width: var(--pagewidth);
  padding: 0 var(--pagepad) var(--pagepad);
  margin: auto;
}

/* Singletons */
#logo {
  display: block;
  width: 136px; height: 26px;
  background: url('assets/page-logo.svg') no-repeat center;
  padding: 5rem 0 3rem;
  margin: 0 auto;
  position: relative;
}
  #logo a {
    display: block;
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    color: rgba(0,0,0,0); /* make text transparent */
    cursor: pointer;
  }
.page-logo > img {
  margin: 0 auto;
}

  @media (prefers-color-scheme: dark) {
    #logo {
      background-image: url('assets/page-logo-i.svg');
    }
  }

.brand-white {
  background-color: #fff;
}

.brand-green {
  background-color: #30D475;
}

.brand-black {
  background-color: #201A26;
  color: white;
}

.page-link::after {
  content: " ➜";
}


/* tables */

table {
  width: 100%;
  font-size: 90%;
  box-shadow: none;
  border-collapse: collapse;
  border-spacing: 0;
  border-radius: 0;
  text-align: left;
  border-width: 0;
  box-sizing: border-box;
}
  /* reset crazy */
  table th, table tr, table td {
    background-color: transparent;
    text-align: left;
  }

  table td, table th {
    border-width: 0;
    padding: .25rem;
  }
  table tr {
    border-width: 0;
    border-bottom: 1px solid var(--borders);
  }

  table thead tr {
    font-weight: 800;
    border-width: 0;
    box-sizing: inherit;
    border-bottom: 2px solid var(--borders);
  }

/* Make tables vertically aligned to the top */
tbody td {
  vertical-align: top;
}

/* Github Code Highlighting */
.highlight table td { padding: 5px; }
.highlight table pre { margin: 0; }
.highlight .cm {
  color: #999988;
  font-style: italic;
}
.highlight .cp {
  color: #999999;
  font-weight: bold;
}
.highlight .c1 {
  color: #999988;
  font-style: italic;
}
.highlight .cs {
  color: #999999;
  font-weight: bold;
  font-style: italic;
}
.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
  color: #999988;
  font-style: italic;
}
.highlight .err {
  color: #a61717;
  background-color: #e3d2d2;
}
.highlight .gd {
  color: #000000;
  background-color: #ffdddd;
}
.highlight .ge {
  color: #000000;
  font-style: italic;
}
.highlight .gr {
  color: #aa0000;
}
.highlight .gh {
  color: #999999;
}
.highlight .gi {
  color: #000000;
  background-color: #ddffdd;
}
.highlight .go {
  color: #888888;
}
.highlight .gp {
  color: #555555;
}
.highlight .gs {
  font-weight: bold;
}
.highlight .gu {
  color: #aaaaaa;
}
.highlight .gt {
  color: #aa0000;
}
.highlight .kc {
  color: #000000;
  font-weight: bold;
}
.highlight .kd {
  color: #000000;
  font-weight: bold;
}
.highlight .kn {
  color: #000000;
  font-weight: bold;
}
.highlight .kp {
  color: #000000;
  font-weight: bold;
}
.highlight .kr {
  color: #000000;
  font-weight: bold;
}
.highlight .kt {
  color: #445588;
  font-weight: bold;
}
.highlight .k, .highlight .kv {
  color: #000000;
  font-weight: bold;
}
.highlight .mf {
  color: #009999;
}
.highlight .mh {
  color: #009999;
}
.highlight .il {
  color: #009999;
}
.highlight .mi {
  color: #009999;
}
.highlight .mo {
  color: #009999;
}
.highlight .m, .highlight .mb, .highlight .mx {
  color: #009999;
}
.highlight .sb {
  color: #d14;
}
.highlight .sc {
  color: #d14;
}
.highlight .sd {
  color: #d14;
}
.highlight .s2 {
  color: #d14;
}
.highlight .se {
  color: #d14;
}
.highlight .sh {
  color: #d14;
}
.highlight .si {
  color: #d14;
}
.highlight .sx {
  color: #d14;
}
.highlight .sr {
  color: #009926;
}
.highlight .s1 {
  color: #d14;
}
.highlight .ss {
  color: #990073;
}
.highlight .s, .highlight .sa, .highlight .dl {
  color: #d14;
}
.highlight .na {
  color: #008080;
}
.highlight .bp {
  color: #999999;
}
.highlight .nb {
  color: #0086B3;
}
.highlight .nc {
  color: #445588;
  font-weight: bold;
}
.highlight .no {
  color: #008080;
}
.highlight .nd {
  color: #3c5d5d;
  font-weight: bold;
}
.highlight .ni {
  color: #800080;
}
.highlight .ne {
  color: #990000;
  font-weight: bold;
}
.highlight .nf, .highlight .fm {
  color: #990000;
  font-weight: bold;
}
.highlight .nl {
  color: #990000;
  font-weight: bold;
}
.highlight .nn {
  color: #555555;
}
.highlight .nt {
  color: #000080;
}
.highlight .vc {
  color: #008080;
}
.highlight .vg {
  color: #008080;
}
.highlight .vi {
  color: #008080;
}
.highlight .nv, .highlight .vm {
  color: #008080;
}
.highlight .ow {
  color: #000000;
  font-weight: bold;
}
.highlight .o {
  color: #000000;
  font-weight: bold;
}
.highlight .w {
  color: #bbbbbb;
}
.highlight {
}


/* Code Blocks */
.highlighter-rouge {
  font-size: 80%;
  line-height: normal;
  padding: 2px 1rem;
  border-radius: var(--term-br);
  background-color: var(--term-bg);
  max-width: var(--term-width);
  overflow-x: auto;
  margin: 1rem 0;
}

/* Inline Code */
code.highlighter-rouge {
  padding: 2px 6px;
  background-color: var(--term-bg);
}


/* Buttons */

.dialog-buttons {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 6rem;
}

.inline-button {
  display: inline-block;
  font-weight: 900;
  font-size: 90%;
  padding: .4rem 1rem;
  border-radius: var(--rounded-corner);
  background-color: rgba(0,0,0,0.05);
  color: var(--dark5);
}
/* FOOTER */
footer {
  background-color: #1a1622;
	margin-top: 6rem;
	padding: 1em 0 4em;
  color: white;
}

footer p {
  font-size: 80%;
  max-width: var(--pagewidth);
  padding: var(--pagepad);
  margin: auto;
  text-align: center;
}

ul.nav a {
  display: inline-block;
  padding: 0.3rem 1rem;
  text-decoration: none;
  font-weight: 500;
  color: rgba(255,255,255,.9);
  border-radius: var(--btnround);
  transition: all 300ms ease-out; 
}
ul.nav a:hover {
  color: #fff;
  background-color: rgba(255,255,255, 0.1);
}

footer a {
  text-decoration: none;
  color: white;
  display: block;
  margin: auto;
}

footer a[href^="http"]:after { content: none; }

ul.bottomlinks {
  column-width: 25ex;
  column-gap: 24px;
  max-width: var(--pagewidth);
  padding: var(--pagepad);
  margin: 0 auto 1rem;
  line-height: 2.5rem;
}

  ul.bottomlinks li {
    display: block;
    list-style: none;
  }
  
  ul.bottomlinks li:first-child a { font-weight: 900; font-variation-settings: "wght" 900; }
  
  ul.bottomlinks li a {
    font-weight: 400;
    font-variation-settings: "wght" 600;
    text-align: left;
    text-decoration: underline;
    text-decoration-color: rgba(255,255,255,0);
    transition: all 200ms ease-out;
  }
   ul.bottomlinks li a:hover {
     text-decoration-color: rgba(255,255,255,1);
   }
   
  a.social {
    width: 32px; height: 32px;
    margin: 0;
  }
   
  .socials {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: baseline;
    margin: 24px 6px 0 0;
    gap: 6px;
  }
  .social { fill: rgba(255,255,255,0.6); transition: all 200ms ease-out; }
  .social:hover { fill: rgba(255,255,255,1); }
  .extlink>svg { 
    width: 12px; 
    height: 12px; 
    display: inline-block;
    fill: rgba(255,255,255,0.6); 
    transition: all 200ms ease-out;
  }
.extlink:hover>svg { fill: rgba(255,255,255,1); }
