/* frontend/styles/index.css */
*,
:after,
:before {
  box-sizing: border-box;
}
:not(dialog),
body {
  margin: 0;
}
body {
  font-size: 120%;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  min-height: 100svh;
  min-width: 320px;
  width: 100%;
}
canvas,
img,
picture,
svg,
video {
  display: block;
  max-width: 100%;
}
button,
input,
select,
textarea {
  font: inherit;
}
blockquote,
dd,
dt,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
ol,
p,
ul {
  hyphens: auto;
  overflow-wrap: break-word;
}
p {
  -webkit-text-wrap: pretty;
  -o-text-wrap: pretty;
  -ms-text-wrap: pretty;
  text-wrap: wrap;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}
h1 {
  line-height: 1.2;
}
:root {
  --font-sans:-apple-system,BlinkMacSystemFont,avenir next,avenir,segoe ui,helvetica neue,Adwaita Sans,Cantarell,Ubuntu,roboto,noto,helvetica,arial,sans-serif;
  --font-serif:Iowan Old Style,Apple Garamond,Baskerville,Times New Roman,Droid Serif,Times,Source Serif Pro,serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
  --font-mono:Menlo,Consolas,Monaco,Adwaita Mono,Liberation Mono,Lucida Console,monospace;
  --font-humanist-geometric:Avenir,Montserrat,Corbel,"URW Gothic",source-sans-pro,sans-serif;
  --font-humanist-classic:Optima,Candara,"Noto Sans",source-sans-pro,sans-serif;
  --font-antique:Superclarendon,"Bookman Old Style","URW Bookman","URW Bookman L","Georgia Pro",Georgia,serif;
  --font-size-00:.5rem;
  --font-size-0:.75rem;
  --font-size-1:1rem;
  --font-size-2:1.1rem;
  --font-size-3:1.25rem;
  --font-size-4:1.5rem;
  --font-size-5:2rem;
  --font-size-6:2.5rem;
  --font-size-7:3rem;
  --font-size-8:3.5rem;
  --font-size-9:4.5rem;
  --margin-2xs:0.25rem;
  --margin-xs:0.5rem;
  --margin-sm:1rem;
  --margin-md:2rem;
  --margin-lg:4rem;
  --margin-xl:8rem;
  --rounding-2xs:0.25rem;
  --rounding-xs:0.5rem;
  --rounding-sm:1rem;
  --rounding-md:2rem;
  --rounding-lg:4rem;
  --rounding-xl:8rem;
  --brand-blue-1:#e8f7fe;
  --brand-blue-2:#b4dff4;
  --brand-blue-3:#85c5e5;
  --brand-blue-4:#5daad0;
  --brand-blue-5:#3b8cb3;
  --brand-blue-6:hsl(from var(--brand-blue-5) h s calc(l - 10));
  --brand-orange-1:#fff4e8;
  --brand-orange-2:#ffdeb8;
  --brand-orange-3:#ffcb8f;
  --brand-orange-4:#ffba6b;
  --brand-orange-5:#ffab4b;
  --brand-orange-6:hsl(from var(--brand-orange-5) h s calc(l - 10));
  --brand-pink-1:#ffe8f0;
  --brand-pink-2:#fcb6ce;
  --brand-pink-3:#f78aaf;
  --brand-pink-4:#f06594;
  --brand-pink-5:#e6447b;
  --brand-pink-6:hsl(from var(--brand-pink-5) h s calc(l - 10));
  --brand-green-1:#f3ffe8;
  --brand-green-2:#d8fcb6;
  --brand-green-3:#c0f88b;
  --brand-green-4:#aaf265;
  --brand-green-5:#96ea45;
  --brand-green-6:hsl(from var(--brand-green-5) h s calc(l - 10));
  --brand-purple-1:#f0eafe;
  --brand-purple-2:#cdb8f6;
  --brand-purple-3:#ab8ce9;
  --brand-purple-4:#8b66d6;
  --brand-purple-5:#6c45bd;
  --brand-purple-6:hsl(from var(--brand-purple-5) h s calc(l - 10));
  --brand-grey-1:#f1f3f4;
  --brand-grey-2:#d1d6d8;
  --brand-grey-3:#b1b7ba;
  --brand-grey-4:#91989c;
  --brand-grey-5:#717a7d;
  --brand-grey-6:#576367;
  --brand-grey-7:#3e4d52;
  --brand-white:#fefefe;
  --content-max-width-sm:95%;
  --content-max-width-lg:50rem;
  --body-background:var(--brand-grey-1);
  --body-margin:0 var(--margin-sm);
  --body-color:#444;
  --body-typeface:var(--font-humanist-classic);
  --content-background:var(--brand-white);
  --primary-color:var(--brand-blue-3);
  --action-color:var(--brand-blue-5);
  --link-decoration-color:var(--brand-blue-6);
  --link-typeface:var(--header-typeface);
  --logo-width-phone:100px;
  --logo-width-large:200px;
  --nav-header-color:var(--brand-grey-7);
  --heading-color:var(--brand-grey-7);
  --heading-size-xs:var(--font-size-2);
  --heading-size-sm:var(--font-size-3);
  --heading-size-md:var(--font-size-4);
  --heading-size-lg:var(--font-size-5);
  --heading-size-xl:var(--font-size-8);
  --header-typeface:var(--font-sans);
}
html {
  font-family:
    Optima,
    Candara,
    Noto Sans,
    source-sans-pro,
    sans-serif;
  font-family: var(--body-typeface);
}
p {
  margin-bottom: 1rem;
  margin-bottom: var(--margin-sm);
}
a {
  color: #3b8cb3;
  color: var(--action-color);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    avenir next,
    avenir,
    segoe ui,
    helvetica neue,
    Adwaita Sans,
    Cantarell,
    Ubuntu,
    roboto,
    noto,
    helvetica,
    arial,
    sans-serif;
  font-family: var(--link-typeface);
  text-decoration: underline;
  text-decoration-color: hsl(from #3B8CB3 h s calc(l - 10));
  text-decoration-color: var(--link-decoration-color);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  color: #3e4d52;
  color: var(--heading-color);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    avenir next,
    avenir,
    segoe ui,
    helvetica neue,
    Adwaita Sans,
    Cantarell,
    Ubuntu,
    roboto,
    noto,
    helvetica,
    arial,
    sans-serif;
  font-family: var(--header-typeface);
  margin: 1rem 0;
  margin: var(--margin-sm) 0 var(--margin-sm);
}
h1 {
  font-size: 2rem;
  font-size: var(--heading-size-lg);
}
h2 {
  font-size: 1.5rem;
  font-size: var(--heading-size-md);
}
h3 {
  font-size: 1.25rem;
  font-size: var(--heading-size-sm);
}
h4,
h5,
h6 {
  font-size: 1.1rem;
  font-size: var(--heading-size-xs);
}
hr {
  border: none;
  border-top: 2px dotted #bbb;
  margin: 2rem 0;
  margin: var(--margin-md) 0;
}
dt + dd pre.highlight {
  margin-bottom: 1rem;
  margin-bottom: var(--margin-sm);
}
li > input.task-list-item-checkbox {
  margin-right: .25rem;
  margin-right: var(--margin-2xs);
}
figure {
  background-color: #e8f7fe;
  background-color: var(--brand-blue-1);
  border: 1px solid #b4dff4;
  border: 1px solid var(--brand-blue-2);
  border-radius: .25rem;
  border-radius: var(--rounding-2xs);
  margin: 1rem auto;
  margin: var(--margin-sm) auto var(--margin-sm);
  padding: 1rem;
  padding: var(--margin-sm);
  img {
    margin-bottom: 1rem;
    margin-bottom: var(--margin-sm);
  }
  figcaption,
  img {
    margin-left: auto;
    margin-right: auto;
  }
  figcaption {
    display: inline-block;
    font-style: oblique;
    font-weight: 300;
  }
}
article.post {
  hgroup {
    margin-bottom: 2rem;
    margin-bottom: var(--margin-md);
    margin-top: 1rem;
    margin-top: var(--margin-sm);
    h1 {
      margin-bottom: .5rem;
      margin-bottom: var(--margin-xs);
    }
  }
}
article.post-summary {
  margin-bottom: .5rem;
  margin-bottom: var(--margin-xs);
  time {
    font-family:
      Menlo,
      Consolas,
      Monaco,
      Adwaita Mono,
      Liberation Mono,
      Lucida Console,
      monospace;
    font-family: var(--font-mono);
  }
}
ul {
  margin-bottom: 1rem;
  margin-bottom: var(--margin-sm);
  ul {
    margin-bottom: 0;
  }
  &.unstyled {
    list-style-type: none;
    padding-left: 0;
  }
}
.content-constrained {
  margin-left: auto;
  margin-right: auto;
  max-width: 95%;
  max-width: var(--content-max-width-sm);
  padding-left: 2rem;
  padding-left: var(--margin-md);
  padding-right: 2rem;
  padding-right: var(--margin-md);
  @media (max-width: 480px) {
    padding-bottom: 1rem;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 1rem;
    padding: var(--margin-sm);
  }
  @media (min-width: 769px) {
    max-width: min(50rem, 95%);
    max-width: min(var(--content-max-width-lg), var(--content-max-width-sm));
  }
}
body {
  background: url(/images/background-crossword.png) repeat;
  color: #444;
  color: var(--body-color);
  font-family:
    Superclarendon,
    Bookman Old Style,
    URW Bookman,
    URW Bookman L,
    Georgia Pro,
    Georgia,
    serif;
  font-family: var(--font-antique);
  > main {
    background: #fefefe;
    background: var(--content-background);
    border-radius: .5rem;
    border-radius: var(--rounding-xs);
    box-shadow: 2px 3px 3px #ddd;
    margin-bottom: 4rem;
    margin-bottom: var(--margin-lg);
    margin-top: 2rem;
    margin-top: var(--margin-md);
    padding-bottom: 2rem;
    padding-bottom: var(--margin-md);
    padding-top: 1rem;
    padding-top: var(--margin-sm);
    @media (min-width: 481px) {
      padding-bottom: 2rem;
      padding-bottom: var(--margin-md);
      padding-top: 2rem;
      padding-top: var(--margin-md);
    }
  }
}
.margin-b-sm {
  margin-bottom: 1rem;
  margin-bottom: var(--margin-sm);
}
.margin-b-md {
  margin-bottom: 2rem;
  margin-bottom: var(--margin-md);
}
.margin-b-lg {
  margin-bottom: 4rem;
  margin-bottom: var(--margin-lg);
}
.margin-t-sm {
  margin-top: 1rem;
  margin-top: var(--margin-sm);
}
.margin-t-md {
  margin-top: 2rem;
  margin-top: var(--margin-md);
}
.margin-t-lg {
  margin-top: 4rem;
  margin-top: var(--margin-lg);
}
.center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.grid {
  display: grid;
}
.one-up {
  grid-template-columns: 1fr;
  row-gap: 2rem;
  row-gap: var(--margin-md);
}
.three-up {
  -moz-column-gap: 2rem;
  column-gap: 2rem;
  -moz-column-gap: var(--margin-md);
  column-gap: var(--margin-md);
  grid-template-columns: 1fr;
  row-gap: 2rem;
  row-gap: var(--margin-md);
  @media (min-width: 769px) {
    grid-template-columns: repeat(2, 1fr);
  }
  @media (min-width: 1280px) {
    grid-template-columns: repeat(3, 1fr);
  }
}
.flex-row {
  align-items: baseline;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.service {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  .cost {
    font-weight: 600;
    text-align: center;
  }
}
.float-right {
  float: right;
  padding-left: 2rem;
  padding-left: var(--margin-md);
}
.float-left,
.float-right {
  padding-bottom: 2rem;
  padding-bottom: var(--margin-md);
}
.float-left {
  float: left;
  padding-right: 2rem;
  padding-right: var(--margin-md);
}
.content-image {
  width: 70%;
  @media (min-width: 481px) {
    width: 50%;
  }
  @media (min-width: 769px) {
    width: 30%;
  }
}
.rounding-xs {
  border-radius: .5rem;
  border-radius: var(--rounding-xs);
}
.rounding-sm {
  border-radius: 1rem;
  border-radius: var(--rounding-sm);
}
details {
  background-color: #f1f3f4;
  background-color: var(--brand-grey-1);
  border: 3px solid transparent;
  border-radius: .5rem;
  border-radius: var(--rounding-xs);
  margin-bottom: .5rem;
  margin-bottom: var(--margin-xs);
  padding: .5rem 1rem;
  padding: var(--margin-xs) var(--margin-sm);
  details {
    background-color: #fefefe;
    background-color: var(--brand-white);
  }
  summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    list-style-position: outside;
    list-style: none;
    padding: .25rem .25rem .5rem;
    padding: var(--margin-2xs) var(--margin-2xs) var(--margin-xs);
    &:after {
      content: "\25bc";
      font-size: 1.5rem;
      font-size: var(--font-size-4);
      transition: .2s;
    }
  }
  &[open] {
    border: 3px solid #b4dff4;
    border: 3px solid var(--brand-blue-2);
    summary {
      font-weight: 700;
    }
    > summary:after {
      transform: rotate(-180deg);
    }
  }
}
section {
  padding-bottom: 1rem;
  padding-bottom: var(--margin-sm);
  @media (min-width: 481px) {
    padding-bottom: 2rem;
    padding-bottom: var(--margin-md);
  }
}
.has-icon {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: 1rem;
  gap: var(--margin-sm);
  justify-content: left;
  svg {
    width: 2rem;
    width: var(--font-size-5);
  }
}

/* frontend/styles/syntax-highlighting.css */
pre.highlight {
  background-color: #f6f8fa;
  padding: 16px;
}
.highlight .hll {
  background-color: #ffc;
}
.highlight .c {
  color: #998;
  font-style: italic;
}
.highlight .err {
  background-color: #e3d2d2;
  color: #a61717;
}
.highlight .k,
.highlight .o {
  color: #000;
  font-weight: 700;
}
.highlight .cm {
  color: #998;
  font-style: italic;
}
.highlight .cp {
  color: #999;
  font-style: italic;
  font-weight: 700;
}
.highlight .c1 {
  color: #998;
  font-style: italic;
}
.highlight .cs {
  color: #999;
  font-style: italic;
  font-weight: 700;
}
.highlight .gd {
  background-color: #fdd;
  color: #000;
}
.highlight .ge {
  color: #000;
  font-style: italic;
}
.highlight .gr {
  color: #a00;
}
.highlight .gh {
  color: #999;
}
.highlight .gi {
  background-color: #dfd;
  color: #000;
}
.highlight .go {
  color: #888;
}
.highlight .gp {
  color: #555;
}
.highlight .gs {
  font-weight: 700;
}
.highlight .gu {
  color: #aaa;
}
.highlight .gt {
  color: #a00;
}
.highlight .kc,
.highlight .kd,
.highlight .kn,
.highlight .kp,
.highlight .kr {
  color: #000;
  font-weight: 700;
}
.highlight .kt {
  color: #458;
  font-weight: 700;
}
.highlight .m {
  color: #099;
}
.highlight .s {
  color: #d01040;
}
.highlight .na {
  color: teal;
}
.highlight .nb {
  color: #0086b3;
}
.highlight .nc {
  color: #458;
  font-weight: 700;
}
.highlight .no {
  color: teal;
}
.highlight .nd {
  color: #3c5d5d;
  font-weight: 700;
}
.highlight .ni {
  color: purple;
}
.highlight .ne,
.highlight .nf,
.highlight .nl {
  color: #900;
  font-weight: 700;
}
.highlight .nn {
  color: #555;
}
.highlight .nt {
  color: navy;
}
.highlight .nv {
  color: teal;
}
.highlight .ow {
  color: #000;
  font-weight: 700;
}
.highlight .w {
  color: #bbb;
}
.highlight .mf,
.highlight .mh,
.highlight .mi,
.highlight .mo {
  color: #099;
}
.highlight .s2,
.highlight .sb,
.highlight .sc,
.highlight .sd,
.highlight .se,
.highlight .sh,
.highlight .si,
.highlight .sx {
  color: #d01040;
}
.highlight .sr {
  color: #009926;
}
.highlight .s1 {
  color: #d01040;
}
.highlight .ss {
  color: #990073;
}
.highlight .bp {
  color: #999;
}
.highlight .vc,
.highlight .vg,
.highlight .vi {
  color: teal;
}
.highlight .il {
  color: #099;
}

/* src/_components/card.css */
.card {
  border-radius: var(--rounding-2xs);
  box-shadow: 1px 1px 1px var(--brand-grey-2);
  padding: var(--margin-sm);
  &.white {
    background-color: #fff;
  }
}

/* src/_components/quote.css */
figure.quote {
  blockquote {
    p:first-child:before {
      content: "\201c";
      font-weight: 700;
    }
    p:last-child:after {
      content: "\201d";
      font-weight: 700;
    }
  }
  figcaption {
    display: block;
    margin-left: inherit;
    margin-right: inherit;
    text-align: right;
  }
}

/* src/_components/shared/callout.css */
aside.callout {
  background-color: #ccc;
  border-radius: var(--rounding-xs);
  margin-bottom: var(--margin-sm);
  padding: var(--margin-sm);
  &.warning {
    background-color: var(--brand-pink-1);
  }
  &.info {
    background-color: var(--brand-blue-1);
  }
  &.caution {
    background-color: var(--brand-orange-1);
  }
  h2 {
    font-size: var(--font-size-3);
  }
}

/* src/_components/shared/footer.css */
body > footer {
  font-size: var(--font-size-1);
  margin-bottom: var(--margin-lg);
  padding-left: var(--margin-sm);
  padding-right: var(--margin-sm);
  text-align: center;
  img {
    display: inline-block;
    max-height: 1em;
  }
}

/* src/_components/shared/navbar.css */
body {
  > header {
    margin: 0 var(--margin-sm);
    text-align: center;
    h1 {
      color: var(--nav-header-color);
      font-size: var(--heading-size-lg);
      font-weight: 900;
      margin: var(--margin-xs) 0 0;
      @media (min-width: 481px) {
        font-size: var(--heading-size-lg);
      }
      @media (min-width: 769px) {
        font-size: var(--heading-size-xl);
      }
    }
    h2 {
      color: var(--nav-header-color);
      margin: var(--margin-xs) 0 0;
    }
    img {
      display: inline-block;
      width: var(--logo-width-phone);
      @media (min-width: 481px) {
        width: var(--logo-width-large);
      }
    }
  }
  > nav {
    ul {
      display: flex;
      font-size: var(--font-size-3);
      font-weight: 700;
      gap: var(--margin-md);
      justify-content: center;
      list-style-type: none;
      margin: var(--margin-md) 0;
      padding: 0;
    }
    a {
      -webkit-text-decoration: underline solid var(--link-decoration-color) 4px;
      text-decoration: underline solid var(--link-decoration-color) 4px;
    }
  }
}

/* src/_components/shared/sidebar.css */
body > main:has(> #sidebar) {
  display: grid;
  grid-auto-columns: minmax(200px, auto);
  grid-template-columns: 2fr 1fr;
  @media (max-width: 480px) {
    display: block;
  }
}
/*# sourceMappingURL=/_bridgetown/static/index.YLHJD6X4.css.map */
