@charset "UTF-8";
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: regular;
  font-weight: 300;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/f25/fonts/atkinson-next/AtkinsonHyperlegibleNext-Light.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: italic;
  font-weight: 300;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/f25/fonts/atkinson-next/AtkinsonHyperlegibleNext-LightItalic.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: regular;
  font-weight: 400;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/f25/fonts/atkinson-next/AtkinsonHyperlegibleNext-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: italic;
  font-weight: 400;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/f25/fonts/atkinson-next/AtkinsonHyperlegibleNext-Italic.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: regular;
  font-weight: 700;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/f25/fonts/atkinson-next/AtkinsonHyperlegibleNext-Bold.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: italic;
  font-weight: 700;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/f25/fonts/atkinson-next/AtkinsonHyperlegibleNext-BoldItalic.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: regular;
  font-weight: 800;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/f25/fonts/atkinson-next/AtkinsonHyperlegibleNext-ExtraBold.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: italic;
  font-weight: 800;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/f25/fonts/atkinson-next/AtkinsonHyperlegibleNext-ExtraBoldItalic.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleMono";
  font-style: regular;
  font-weight: 400;
  font-display: block;
  src: local("AtkinsonHyperlegibleMono"), url("/f25/fonts/atkinson-mono/AtkinsonHyperlegibleMono-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleMono";
  font-style: italic;
  font-weight: 400;
  font-display: block;
  src: local("AtkinsonHyperlegibleMono"), url("/f25/fonts/atkinson-mono/AtkinsonHyperlegibleMono-Italic.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleMono";
  font-style: regular;
  font-weight: 700;
  font-display: block;
  src: local("AtkinsonHyperlegibleMono"), url("/f25/fonts/atkinson-mono/AtkinsonHyperlegibleMono-Bold.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleMono";
  font-style: italic;
  font-weight: 700;
  font-display: block;
  src: local("AtkinsonHyperlegibleMono"), url("/f25/fonts/atkinson-mono/AtkinsonHyperlegibleMono-BoldItalic.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleMono";
  font-style: regular;
  font-weight: 800;
  font-display: block;
  src: local("AtkinsonHyperlegibleMono"), url("/f25/fonts/atkinson-mono/AtkinsonHyperlegibleMono-ExtraBold.woff2") format("woff2");
}
@font-face {
  font-family: "AtkinsonHyperlegibleMono";
  font-style: italic;
  font-weight: 800;
  font-display: block;
  src: local("AtkinsonHyperlegibleMono"), url("/f25/fonts/atkinson-mono/AtkinsonHyperlegibleMono-ExtraBoldItalic.woff2") format("woff2");
}
@font-face {
  font-family: "InterDisplay";
  font-style: regular;
  font-weight: 400;
  font-display: block;
  src: local("InterDisplay"), url("/f25/fonts/inter/InterDisplay-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "InterDisplay";
  font-style: italic;
  font-weight: 400;
  font-display: block;
  src: local("InterDisplay"), url("/f25/fonts/inter/InterDisplay-Italic.woff2") format("woff2");
}
@font-face {
  font-family: "InterDisplay";
  font-style: regular;
  font-weight: 700;
  font-display: block;
  src: local("InterDisplay"), url("/f25/fonts/inter/InterDisplay-Bold.woff2") format("woff2");
}
@font-face {
  font-family: "InterDisplay";
  font-style: italic;
  font-weight: 700;
  font-display: block;
  src: local("InterDisplay"), url("/f25/fonts/inter/InterDisplay-BoldItalic.woff2") format("woff2");
}
@font-face {
  font-family: "InterDisplay";
  font-style: regular;
  font-weight: 800;
  font-display: block;
  src: local("InterDisplay"), url("/f25/fonts/inter/InterDisplay-ExtraBold.woff2") format("woff2");
}
@font-face {
  font-family: "InterDisplay";
  font-style: italic;
  font-weight: 800;
  font-display: block;
  src: local("InterDisplay"), url("/f25/fonts/inter/InterDisplay-ExtraBoldItalic.woff2") format("woff2");
}
html {
  --unresponsive-grid: 1.2rem;
  --grid1: var(--unresponsive-grid);
  --grid1⁄4: calc(var(--grid1) * 1/4);
  --grid1⁄3: calc(var(--grid1) * 1/3);
  --grid1⁄2: calc(var(--grid1) * 1/2);
  --grid3⁄4: calc(var(--grid1) * 3/4);
  --grid5⁄4: calc(var(--grid1) * 5/4);
  --grid3⁄2: calc(var(--grid1) * 3/2);
  --grid5⁄2: calc(var(--grid1) * 5/2);
  --grid2: calc(var(--grid1) * 2);
  --grid3: calc(var(--grid1) * 3);
  --grid4: calc(var(--grid1) * 4);
  --grid5: calc(var(--grid1) * 5);
  --grid6: calc(var(--grid1) * 6);
  --grid7: calc(var(--grid1) * 7);
  --grid8: calc(var(--grid1) * 8);
  --grid9: calc(var(--grid1) * 9);
  --grid10: calc(var(--grid1) * 10);
  --grid11: calc(var(--grid1) * 11);
  --grid12: calc(var(--grid1) * 12);
  --grid13: calc(var(--grid1) * 13);
  --grid14: calc(var(--grid1) * 14);
  --grid15: calc(var(--grid1) * 15);
  --grid16: calc(var(--grid1) * 16);
  --grid17: calc(var(--grid1) * 17);
  --grid18: calc(var(--grid1) * 18);
  --grid19: calc(var(--grid1) * 19);
  --grid20: calc(var(--grid1) * 20);
}
@media all and (max-width: 42em) {
  html {
    --grid1: 1.1rem;
  }
}

html {
  --theme-hue0: 256;
  --theme-hue1: 127;
  --def-hue: 166;
  --code-hue: 76;
  --gamma: 1;
}
@media (prefers-contrast: more) {
  html {
    --gamma: 1.8;
  }
}
@media (prefers-contrast: more) and (prefers-color-scheme: dark) {
  html {
    --gamma: 0.7;
  }
}
html {
  --text-color: oklch(calc(pow(0.06, var(--gamma))) 0.002 var(--theme-hue0));
  --strong-color: black;
  --background-color: white;
  --background-hot-color: white;
  --shadow-color: oklch(calc(pow(0.7, var(--gamma))) 0.000 var(--theme-hue1));
  --action-color: oklch(calc(pow(0.52, var(--gamma))) 0.222 var(--theme-hue0));
  --action-border-color: oklch(calc(pow(0.88, var(--gamma))) 0.052 var(--theme-hue0));
  --action-hot-text-color: white;
  --meta-text-color: oklch(calc(pow(0.56, var(--gamma))) 0.002 var(--theme-hue0));
  --meta-text-color-hot: oklch(calc(pow(0.56, var(--gamma))) 0.080 var(--theme-hue0));
  --group-border-color: oklch(calc(pow(0.86, var(--gamma))) 0.001 var(--theme-hue0));
  --divider-color: oklch(calc(pow(0.63, 1 / var(--gamma))) 0.002 var(--theme-hue0));
  --meta-background-hot: oklch(calc(pow(0.92, 1 / var(--gamma))) 0.070 var(--theme-hue1));
  --meta-background-mild: oklch(calc(pow(0.98, 1 / var(--gamma))) 0.010 var(--theme-hue1));
  --meta-border-color: oklch(calc(pow(0.76, var(--gamma))) 0.070 var(--theme-hue1));
  --timeline-brightness: 0.9;
  --notice-color: #080;
  --error-color: #800;
  --highlight-background: oklch(calc(pow(0.98, 1 / var(--gamma))) 0.045 100);
  --highlight-border: oklch(calc(pow(0.88, var(--gamma))) 0.215 100);
  --definition-highlight: oklch(calc(pow(0.96, 1 / var(--gamma))) 0.064 var(--def-hue));
  --definition-background: oklch(calc(pow(0.995, 1 / var(--gamma))) 0.005 var(--def-hue));
  --definition-border: oklch(calc(pow(0.7, var(--gamma))) 0.170 var(--def-hue));
  --definition-text: oklch(calc(pow(0.6, var(--gamma))) 0.170 var(--def-hue));
  --code-color: oklch(calc(pow(0.5, var(--gamma))) 0.122 var(--code-hue));
  --ghost-color: color-mix(in display-p3, var(--text-color) 20%, var(--background-color));
}
@media (prefers-contrast: more) {
  html {
    --ghost-color: color-mix(in display-p3, var(--text-color) 50%, var(--background-color));
  }
}
@media (prefers-color-scheme: dark) {
  html {
    --text-color: oklch(calc(pow(0.8, var(--gamma))) 0.001 var(--theme-hue0));
    --strong-color: oklch(calc(pow(0.94, var(--gamma))) 0.005 var(--theme-hue0));
    --background-color: oklch(calc(pow(0.2, 1 / var(--gamma))) 0.002 var(--theme-hue0));
    --background-hot-color: black;
    --shadow-color: oklch(calc(pow(0.64, var(--gamma))) 0.010 var(--theme-hue1));
    --action-color: oklch(calc(pow(0.8, var(--gamma))) 0.250 var(--theme-hue0));
    --action-border-color: oklch(calc(pow(0.42, var(--gamma))) 0.110 var(--theme-hue0));
    --action-hot-text-color: oklch(calc(pow(0.1, var(--gamma))) 0.002 var(--theme-hue0));
    --meta-text-color: oklch(calc(pow(0.67, var(--gamma))) 0.002 var(--theme-hue0));
    --meta-text-color-hot: oklch(calc(pow(0.67, var(--gamma))) 0.080 var(--theme-hue0));
    --group-border-color: oklch(calc(pow(0.47, var(--gamma))) 0.002 var(--theme-hue0));
    --meta-background-hot: oklch(calc(pow(0.38, 1 / var(--gamma))) 0.070 var(--theme-hue1));
    --meta-background-mild: oklch(calc(pow(0.24, 1 / var(--gamma))) 0.010 var(--theme-hue1));
    --meta-border-color: oklch(calc(pow(0.42, var(--gamma))) 0.070 var(--theme-hue1));
    --timeline-brightness: 0.4;
    --linear-background-brightness: 9%;
    --error-color: #E44;
    --highlight-background: oklch(calc(pow(0.35, 1 / var(--gamma))) 0.098 100);
    --highlight-border: oklch(calc(pow(0.64, var(--gamma))) 0.185 100);
    --definition-highlight: oklch(calc(pow(0.3, 1 / var(--gamma))) 0.064 var(--def-hue));
    --definition-background: oklch(calc(pow(0.17, 1 / var(--gamma))) 0.075 var(--def-hue));
    --definition-border: oklch(calc(pow(0.64, var(--gamma))) 0.185 var(--def-hue));
    --definition-text: oklch(calc(pow(0.75, var(--gamma))) 0.200 var(--def-hue));
    --code-color: oklch(calc(pow(0.8, var(--gamma))) 0.142 var(--code-hue));
  }
}

@media all and (max-width: 42em) {
  .document-content .big-table.big-table-syntax-terminology-semantics .row {
    grid-template-columns: 1fr;
    grid-template-areas: "prefix" "syntax" "terminology" "semantics" "commentary";
  }
  .document-content .big-table.big-table-syntax-terminology-semantics .row.header:before {
    content: "In each row below:";
    display: block;
    grid-area: prefix;
    margin-bottom: var(--grid1⁄2);
  }
  .document-content .big-table.big-table-syntax-terminology-semantics .row.header .cell {
    margin-left: var(--grid1);
  }
}
@media all and (min-width: 42em) {
  .document-content .big-table.big-table-syntax-terminology-semantics .row.header {
    grid-template-areas: "syntax terminology semantics commentary";
    grid-template-columns: var(--syntax-width) max-content 1fr;
  }
  .document-content .big-table.big-table-syntax-terminology-semantics .row.header .cell-terminology p:after {
    content: "/";
    font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
    font-weight: 400;
    letter-spacing: normal;
    font-weight: 300;
    letter-spacing: 1.5%;
    color: var(--meta-text-color);
    --strong-color: var(--meta-text-color);
    margin: 1ex;
  }
  .document-content .big-table.big-table-syntax-terminology-semantics .row.header .cell-terminology {
    margin-right: calc(-1 * var(--grid1));
  }
  .document-content .big-table.big-table-syntax-terminology-semantics .row.body {
    grid-template-areas: "syntax terminology" "syntax semantics  " "syntax commentary ";
    grid-template-columns: var(--syntax-width) 1fr;
  }
}
.document-content .big-table.big-table-syntax-terminology-semantics .row .cell-syntax {
  overflow: auto;
  scrollbar-width: thin;
}
.document-content .big-table.big-table-syntax-terminology-semantics .row .cell-syntax p {
  font-family: AtkinsonHyperlegibleMono, Menlo, Consolis, monospace;
  font-size: calc(var(--base-font-size) * 0.92);
  letter-spacing: -3%;
  line-height: var(--grid1);
  color: var(--code-color);
  white-space: pre;
}
.document-content .big-table.big-table-syntax-terminology-semantics .row .cell-terminology {
  color: var(--definition-text);
}
.document-content .big-table.big-table-syntax-terminology-semantics .row .cell-terminology .def {
  color: --strong-color;
}
.document-content .big-table.big-table-syntax-terminology-semantics .row .cell-terminology ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.document-content .big-table.big-table-syntax-terminology-semantics .row .cell-terminology ul li {
  margin: 0;
}
.document-content .big-table.big-table-syntax-terminology-semantics .row .cell-semantics {
  font-style: italic;
}
.document-content .big-table.big-table-syntax-terminology-semantics .row .cell-commentary {
  border-left: var(--grid1⁄4) solid var(--group-border-color);
  padding-left: var(--grid3⁄4);
}
@media all and (max-width: 42em) {
  .document-content .big-table.big-table-syntax-terminology-semantics-commentary .row {
    grid-template-columns: 1fr;
    grid-template-areas: "prefix" "syntax" "terminology" "semantics" "commentary";
  }
  .document-content .big-table.big-table-syntax-terminology-semantics-commentary .row.header:before {
    content: "In each row below:";
    display: block;
    grid-area: prefix;
    margin-bottom: var(--grid1⁄2);
  }
  .document-content .big-table.big-table-syntax-terminology-semantics-commentary .row.header .cell {
    margin-left: var(--grid1);
  }
}
@media all and (min-width: 42em) {
  .document-content .big-table.big-table-syntax-terminology-semantics-commentary .row.header {
    grid-template-areas: "syntax terminology semantics commentary";
    grid-template-columns: var(--syntax-width) max-content 1fr;
  }
  .document-content .big-table.big-table-syntax-terminology-semantics-commentary .row.header .cell-terminology p:after {
    content: "/";
    font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
    font-weight: 400;
    letter-spacing: normal;
    font-weight: 300;
    letter-spacing: 1.5%;
    color: var(--meta-text-color);
    --strong-color: var(--meta-text-color);
    margin: 1ex;
  }
  .document-content .big-table.big-table-syntax-terminology-semantics-commentary .row.header .cell-terminology {
    margin-right: calc(-1 * var(--grid1));
  }
  .document-content .big-table.big-table-syntax-terminology-semantics-commentary .row.body {
    grid-template-areas: "syntax terminology" "syntax semantics  " "syntax commentary ";
    grid-template-columns: var(--syntax-width) 1fr;
  }
}
.document-content .big-table.big-table-syntax-terminology-semantics-commentary .row .cell-syntax {
  overflow: auto;
  scrollbar-width: thin;
}
.document-content .big-table.big-table-syntax-terminology-semantics-commentary .row .cell-syntax p {
  font-family: AtkinsonHyperlegibleMono, Menlo, Consolis, monospace;
  font-size: calc(var(--base-font-size) * 0.92);
  letter-spacing: -3%;
  line-height: var(--grid1);
  color: var(--code-color);
  white-space: pre;
}
.document-content .big-table.big-table-syntax-terminology-semantics-commentary .row .cell-terminology {
  color: var(--definition-text);
}
.document-content .big-table.big-table-syntax-terminology-semantics-commentary .row .cell-terminology .def {
  color: --strong-color;
}
.document-content .big-table.big-table-syntax-terminology-semantics-commentary .row .cell-terminology ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.document-content .big-table.big-table-syntax-terminology-semantics-commentary .row .cell-terminology ul li {
  margin: 0;
}
.document-content .big-table.big-table-syntax-terminology-semantics-commentary .row .cell-semantics {
  font-style: italic;
}
.document-content .big-table.big-table-syntax-terminology-semantics-commentary .row .cell-commentary {
  border-left: var(--grid1⁄4) solid var(--group-border-color);
  padding-left: var(--grid3⁄4);
}

.document-content .big-table.big-table-image-desc-commentary .row {
  grid-template-areas: "image desc" "commentary commentary ";
  grid-template-columns: var(--grid6) 1fr;
}
.document-content .big-table.big-table-image-desc-commentary .row .cell-image,
.document-content .big-table.big-table-image-desc-commentary .row .cell-desc {
  align-content: center;
}
.document-content .big-table.big-table-image-desc-commentary .row img {
  margin: 0;
}

.document-content .big-table.big-table-markdown-result-purpose .row {
  min-width: 42em;
  grid-template-areas: "markdown result" "purpose purpose";
  grid-template-columns: 2fr 1fr;
}
.document-content .big-table.big-table-markdown-result-purpose .row .cell-markdown .guide-md-input, .document-content .big-table.big-table-markdown-result-purpose .row .cell-markdown pre {
  margin-top: 0;
}
.document-content .big-table.big-table-markdown-result-purpose .row .cell-markdown .guide-md-output {
  margin-bottom: 0;
}
.document-content .big-table.big-table-markdown-result-purpose .row .cell-purpose {
  max-width: calc(100vw - var(--grid3));
}

.document-content .big-table.big-table-grade-criteria {
  margin-top: 0;
}
.document-content .big-table.big-table-grade-criteria .row {
  grid-template-areas: "grade criteria";
  grid-template-columns: var(--grid2) 1fr;
  border: none !important;
  padding: 0;
  margin: var(--grid1) 0;
}
.document-content .big-table.big-table-grade-criteria .row .cell {
  vertical-align: top;
}
.document-content .big-table.big-table-grade-criteria .row .cell ul {
  margin: 0;
}
.document-content .big-table.big-table-grade-criteria .row .cell-grade {
  font-weight: 800;
}

.document-content nav.toc h2 {
  font-size: var(--grid1);
  --base-font-size: var(--grid1);
  color: var(--meta-text-color);
  margin-top: 0;
}
.document-content nav.toc ul, .document-content nav.toc li {
  margin: 0;
  text-align: left;
}
.document-content nav.toc > ul {
  list-style-type: disc;
  padding-left: var(--grid1);
}
.document-content nav.toc > ul li::marker {
  color: var(--meta-text-color);
}
.document-content nav.toc > ul ul {
  list-style-type: disc;
  padding-left: var(--grid3⁄2);
}
.document-content nav.toc > ul ul li::marker {
  color: var(--meta-text-color);
}
.document-content nav.toc {
  border-left: var(--grid1⁄4) solid var(--group-border-color);
  padding: var(--grid1⁄2) 0;
  padding-left: calc(var(--grid1) - var(--grid1⁄4));
}
.document-content .muted {
  opacity: 0.4;
}
.document-content .hidden, .document-content .hidden-block {
  --redaction-color: var(--divider-color);
  background: var(--redaction-color);
  padding: calc(var(--grid1) / 8) 1ex;
  margin: 0 1px calc(-1 * var(--grid1⁄4));
  border-radius: var(--grid1⁄4);
  outline: 1px solid transparent;
  outline-offset: -1px;
}
.document-content .hidden.at-container-start, .document-content .hidden-block.at-container-start {
  margin-left: -1ex;
}
.document-content .hidden, .document-content .hidden-block {
  cursor: pointer;
}
.document-content .hidden:hover, .document-content .hidden-block:hover {
  outline-color: var(--text-color);
}
.document-content .hidden, .document-content .hidden-block {
  transition: background 0.5s ease-out, color 0.5s ease-out;
}
.document-content .hidden *, .document-content .hidden-block * {
  transition: opacity 0.5s ease-out, color 0.5s ease-out;
}
.document-content .hidden:not(.revealed), .document-content .hidden-block:not(.revealed) {
  color: transparent !important;
}
.document-content .hidden:not(.revealed) *, .document-content .hidden-block:not(.revealed) * {
  opacity: 0 !important;
}
.document-content .hidden.revealed, .document-content .hidden-block.revealed {
  background: var(--meta-background-mild);
  outline-color: var(--meta-background-hot);
}
.document-content .hidden:not(.revealed) *, .document-content .hidden-block:not(.revealed) * {
  pointer-events: none;
}
.document-content .hidden-block:has(pre) {
  padding: 0;
}
.document-content details {
  margin-top: var(--paragraph-spacing);
  margin-bottom: var(--paragraph-spacing);
}
.document-content span.highlight {
  display: inline;
  background: var(--highlight-background);
  padding: calc(var(--grid1) / 8) 0.66ex;
  margin: 0 calc(-0.33ex + 1px) calc(-1 * var(--grid1⁄4));
  border-radius: var(--grid1⁄4);
  outline: 1px solid var(--outline);
  outline-offset: -1px;
}
.document-content span.highlight.at-container-start {
  margin-left: -0.66ex;
}
.document-content span.highlight {
  --outline: transparent;
}
@media (prefers-contrast: more) {
  .document-content span.highlight {
    --outline: var(--highlight-border);
  }
}
.document-content .def {
  display: inline;
  background: var(--definition-highlight);
  padding: calc(var(--grid1) / 8) 0.66ex;
  margin: 0 1px calc(-1 * var(--grid1⁄4));
  border-radius: var(--grid1⁄4);
  outline: 1px solid var(--definition-border);
  outline-offset: -1px;
}
.document-content .def.at-container-start {
  margin-left: -0.66ex;
}
.document-content .def {
  color: var(--strong-color);
}
.document-content .def:target {
  animation: glow-pulse 1.5s;
}
@keyframes glow-pulse {
  from {
    box-shadow: 0 0 var(--grid10) transparent;
  }
  40% {
    box-shadow: 0 0 0 var(--action-color);
  }
  60% {
    box-shadow: 0 0 var(--grid1) var(--action-color);
  }
  100% {
    box-shadow: 0 0 transparent;
  }
}
.document-content .concept-list .def {
  outline-color: color-mix(in display-p3, var(--definition-border), transparent);
}
.document-content .meta {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
}
.document-content .error {
  color: var(--error-color);
  --strong-color: var(--error-color);
}
.document-content .callout, .document-content .definition-callout {
  display: block;
  margin: var(--grid3⁄2);
  padding: 0 var(--grid1);
  border: 1px solid black;
}
@media all and (max-width: 32em) {
  .document-content .callout, .document-content .definition-callout {
    margin: var(--grid1) 0;
  }
}
.document-content .definition-callout {
  border-color: var(--definition-border);
  background: var(--definition-background);
}
.document-content .definition-callout .def {
  --definition-border: transparent;
  font-weight: bold;
}
.document-content .callout {
  border-color: var(--highlight-border);
  background: color-mix(in display-p3, var(--highlight-background) 20%, var(--background-color));
}
.document-content .scroll-for-answer {
  display: block;
  --dot-size: var(--grid1⁄2);
  --dot-spacing: var(--grid4);
  height: calc(max(round(50vh / var(--dot-spacing)), 3) * var(--dot-spacing));
  min-height: 40vh;
  background: radial-gradient(circle at center, var(--meta-background-hot), var(--meta-background-mild) calc(var(--dot-size) * 0.75), transparent var(--dot-size));
  background-size: 100% var(--dot-spacing);
}
.document-content .ghost, .document-content .ghost * {
  color: var(--ghost-color);
}
.document-content .assignment {
  font-weight: 700;
}
.document-content .assignment:before {
  content: "📖";
  display: inline-block;
  padding-right: 0.66ex;
  text-decoration: none;
}
.document-content table {
  margin: var(--grid2);
  border: 0.5px solid var(--group-border-color);
}
.document-content table th, .document-content table td {
  text-align: left;
  border: 0.5px solid var(--group-border-color);
  padding: var(--grid1⁄4) var(--grid1⁄2);
  vertical-align: top;
}
.document-content table.compact {
  margin: 0 0 var(--grid1) var(--grid1);
  border: none;
}
.document-content table.compact th, .document-content table.compact td {
  border: none;
  padding: var(--grid1⁄4) 0;
  padding-right: var(--grid1);
  line-height: var(--grid1);
}
.document-content table.compact thead th {
  border-bottom: 0.5px solid var(--group-border-color);
  padding-bottom: var(--grid1⁄4);
}
.document-content table.compact thead:after {
  content: " ";
  display: block;
  height: var(--grid1⁄4);
}
.document-content .big-table {
  margin: var(--grid2) var(--grid1);
  width: 100%;
}
@media all and (max-width: 48em) {
  .document-content .big-table {
    margin: var(--grid2) 0;
  }
}
.document-content .big-table .row {
  display: grid;
  gap: var(--grid1);
  border-bottom: 0.5px solid var(--meta-text-color);
}
.document-content .big-table .row:first-child:not(.header) {
  border-top: 0.5px solid var(--meta-text-color);
}
.document-content .big-table .row {
  padding: var(--grid1);
  --syntax-width: var(--grid12);
  overflow-x: scroll;
}
.document-content .big-table .row.header {
  border-bottom-width: 2px;
  padding: 0 var(--grid1) var(--grid1⁄2);
  row-gap: 0;
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
}
.document-content .big-table .row .cell p, .document-content .big-table .row .cell pre {
  margin: 0;
}
.document-content .big-table .row .cell p + p, .document-content .big-table .row .cell p + pre, .document-content .big-table .row .cell pre + p, .document-content .big-table .row .cell pre + pre {
  margin-top: var(--grid1⁄2);
}
.document-content .big-table .row .cell p, .document-content .big-table .row .cell pre {
  text-align: left;
}
.document-content .big-table .row .cell li {
  text-align: left;
}
.document-content .big-table .row .cell ul:first-child {
  margin: 0;
}
.document-content .big-table .row .cell ul:first-child li:first-child {
  margin-top: 0;
}
.document-content .big-table .row {
  grid-template-areas: var(--col-names);
  grid-template-columns: repeat(var(--col-count), 1fr);
}

html, body {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  line-height: var(--grid5⁄4);
  --base-font-size: 1rem;
  --small-font-size: 85%;
  --paragraph-spacing: 0.8em;
}
html h1, body h1 {
  font-size: 1.6rem;
  --base-font-size: 1.6rem;
  line-height: calc(round(1.6rem * 1.2 / var(--grid1⁄4)) * var(--grid1⁄4));
}
html h2, body h2 {
  font-size: 1.28rem;
  --base-font-size: 1.28rem;
}
html h3, html h2.small, body h3, body h2.small {
  font-size: 1.072rem;
  --base-font-size: 1.072rem;
}
html, body {
  margin: 0;
  padding: 0;
  background-color: var(--background-color);
  color: var(--text-color);
  --top-bar-height: var(--grid5⁄2);
  scroll-padding-top: calc(var(--top-bar-height) * 1.5);
}
html:has(article.article), body:has(article.article) {
  scroll-padding-top: calc(var(--top-bar-height) * 1.5 + var(--grid2));
}

body {
  min-width: 300px;
}

a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--action-border-color);
  text-underline-offset: 0.1em;
}
a, a:link, a:visited, a:active, a:hover {
  --strong-color: var(--action-color);
  --code-color: var(--action-color);
  color: var(--action-color);
}
a:hover {
  text-decoration-color: var(--action-color);
}

img {
  image-rendering: auto !important;
}

article > h1:first-child, article > h2:first-child, article > h3:first-child, article > h4:first-child, article > h5:first-child, article > h6:first-child {
  margin-top: 0;
}
@media all and (min-width: 42em) {
  article.instructions h1 {
    font-size: 1.8rem;
    --base-font-size: 1.8rem;
    line-height: calc(round(1.8rem * 1.2 / var(--grid1⁄4)) * var(--grid1⁄4));
  }
  article.instructions h2 {
    font-size: 1.44rem;
    --base-font-size: 1.44rem;
  }
  article.instructions h3, article.instructions h2.small {
    font-size: 1.206rem;
    --base-font-size: 1.206rem;
  }
}
article.instructions h2 {
  margin-top: var(--grid2);
}
article.article {
  margin: 0 auto;
}
@media all and (min-width: 42em) {
  article.article h1 {
    font-size: 2rem;
    --base-font-size: 2rem;
    line-height: calc(round(2rem * 1.2 / var(--grid1⁄4)) * var(--grid1⁄4));
  }
  article.article h2 {
    font-size: 1.6rem;
    --base-font-size: 1.6rem;
  }
  article.article h3, article.article h2.small {
    font-size: 1.34rem;
    --base-font-size: 1.34rem;
  }
}
article.article h2 {
  margin-top: var(--grid3⁄2);
}
@media all and (min-width: 60em) {
  article.article h1, article.article h2 {
    margin-top: var(--grid2);
  }
}

.prose {
  font-family: AtkinsonHyperlegibleNext, Palatino, Georgia, Serif;
  letter-spacing: 1.5%;
  font-weight: 300;
  font-size: 1.1rem;
  --base-font-size: 1.1rem;
  line-height: var(--grid5⁄4);
}
.prose em, .prose i {
  letter-spacing: 0.01ex;
}
.prose {
  max-width: 48em;
}
.prose p, .prose li {
  text-align: justify;
}
@media all and (max-width: 32em) {
  .prose p, .prose li {
    text-align: left;
  }
}
.prose ol {
  padding-left: var(--grid3⁄2);
}
.prose ol li::marker {
  color: var(--meta-text-color);
}
.prose ul {
  list-style-type: disc;
  padding-left: var(--grid3⁄2);
}
.prose ul li::marker {
  color: var(--meta-text-color);
}
.prose ul, .prose ol {
  margin: var(--paragraph-spacing) 0;
}
.prose ul ul, .prose ul ol, .prose ol ul, .prose ol ol {
  margin: 0;
}
.prose li {
  margin: var(--grid1⁄4) 0;
}
.prose p > img:only-child {
  display: block;
  max-width: 100%;
  margin: var(--grid2) auto;
}
@media (prefers-color-scheme: dark) {
  .prose img.dark-mode-invert {
    filter: invert(calc(100% - var(--linear-background-brightness))) hue-rotate(180deg);
  }
}
.prose sup {
  line-height: 0;
}

p {
  padding: 0;
  margin: var(--paragraph-spacing) 0;
}

strong, b {
  color: var(--strong-color);
  font-weight: 700;
}

h1, h2, h3, h4, h5, h6 {
  font-family: InterDisplay, "Avenir Next", Verdana, Sans-serif;
  letter-spacing: 0.06ex;
  font-weight: 700;
  padding: 0;
  margin: var(--grid1) 0 var(--grid1⁄2) 0;
}

h3, h4, h5, h6 {
  border-left: var(--grid1⁄4) solid var(--group-border-color);
  padding-left: var(--grid1⁄2);
}

h1 {
  margin: var(--grid3⁄2) 0 var(--grid1) 0;
  font-weight: 800;
}

.snug-top-heading > h1:first-child, .snug-top-heading > h2:first-child, .snug-top-heading > h3:first-child, .snug-top-heading > h4:first-child, .snug-top-heading > h5:first-child, .snug-top-heading > h6:first-child {
  margin-top: 0;
}

ul {
  list-style-type: none;
}

ul, ol, li {
  margin: 0;
  padding: 0;
}

ul.bullets {
  list-style-type: disc;
  padding-left: var(--grid1);
}
ul.bullets li::marker {
  color: var(--meta-text-color);
}

hr {
  border: none;
  height: 2px;
  background: var(--meta-background-hot);
  margin: var(--grid2) 0;
}

table {
  border-spacing: 0;
  border-collapse: separate;
}

td, th {
  padding: 0;
}

pre, code {
  font-family: AtkinsonHyperlegibleMono, Menlo, Consolis, monospace;
  font-size: calc(var(--base-font-size) * 0.92);
  letter-spacing: -3%;
  line-height: var(--grid1);
  color: var(--code-color);
}

pre, pre code {
  font-size: calc(var(--base-font-size) * 0.83);
}

code {
  white-space: preserve;
}

pre code {
  white-space: unset;
}

pre {
  overflow-x: auto;
  scrollbar-width: thin;
  padding: var(--grid1⁄4);
  padding-left: calc(var(--grid1) - var(--grid1⁄4));
  border-left: var(--grid1⁄4) solid var(--meta-background-hot);
}

pre.allow-wrap, .allow-wrap pre {
  white-space: pre-wrap;
}

.highlighter-rouge td.linenos .normal {
  color: inherit;
  background-color: transparent;
  padding-left: 5px;
  padding-right: 5px;
}
.highlighter-rouge span.linenos {
  color: inherit;
  background-color: transparent;
  padding-left: 5px;
  padding-right: 5px;
}
.highlighter-rouge td.linenos .special {
  color: #000000;
  background-color: #ffffc0;
  padding-left: 5px;
  padding-right: 5px;
}
.highlighter-rouge span.linenos.special {
  color: #000000;
  background-color: #ffffc0;
  padding-left: 5px;
  padding-right: 5px;
}
.highlighter-rouge .highlight .hll {
  background-color: #ffffcc;
}
.highlighter-rouge .highlight {
  background: #fdfdfd;
}
.highlighter-rouge .highlight .c {
  color: #888;
  font-style: italic;
}
.highlighter-rouge {
  /* Comment */
}
.highlighter-rouge .highlight .err {
  background-color: #A848A8;
}
.highlighter-rouge {
  /* Error */
}
.highlighter-rouge .highlight .k {
  color: #2838B0;
}
.highlighter-rouge {
  /* Keyword */
}
.highlighter-rouge .highlight .o {
  color: #666;
}
.highlighter-rouge {
  /* Operator */
}
.highlighter-rouge .highlight .p {
  color: #888;
}
.highlighter-rouge {
  /* Punctuation */
}
.highlighter-rouge .highlight .ch {
  color: #287088;
  font-style: italic;
}
.highlighter-rouge {
  /* Comment.Hashbang */
}
.highlighter-rouge .highlight .cm {
  color: #888;
  font-style: italic;
}
.highlighter-rouge {
  /* Comment.Multiline */
}
.highlighter-rouge .highlight .cp {
  color: #289870;
}
.highlighter-rouge {
  /* Comment.Preproc */
}
.highlighter-rouge .highlight .cpf {
  color: #888;
  font-style: italic;
}
.highlighter-rouge {
  /* Comment.PreprocFile */
}
.highlighter-rouge .highlight .c1 {
  color: #888;
  font-style: italic;
}
.highlighter-rouge {
  /* Comment.Single */
}
.highlighter-rouge .highlight .cs {
  color: #888;
  font-style: italic;
}
.highlighter-rouge {
  /* Comment.Special */
}
.highlighter-rouge .highlight .gd {
  color: #C02828;
}
.highlighter-rouge {
  /* Generic.Deleted */
}
.highlighter-rouge .highlight .ge {
  font-style: italic;
}
.highlighter-rouge {
  /* Generic.Emph */
}
.highlighter-rouge .highlight .ges {
  font-weight: bold;
  font-style: italic;
}
.highlighter-rouge {
  /* Generic.EmphStrong */
}
.highlighter-rouge .highlight .gr {
  color: #C02828;
}
.highlighter-rouge {
  /* Generic.Error */
}
.highlighter-rouge .highlight .gh {
  color: #666;
}
.highlighter-rouge {
  /* Generic.Heading */
}
.highlighter-rouge .highlight .gi {
  color: #388038;
}
.highlighter-rouge {
  /* Generic.Inserted */
}
.highlighter-rouge .highlight .go {
  color: #666;
}
.highlighter-rouge {
  /* Generic.Output */
}
.highlighter-rouge .highlight .gp {
  color: #444;
}
.highlighter-rouge {
  /* Generic.Prompt */
}
.highlighter-rouge .highlight .gs {
  font-weight: bold;
}
.highlighter-rouge {
  /* Generic.Strong */
}
.highlighter-rouge .highlight .gu {
  color: #444;
}
.highlighter-rouge {
  /* Generic.Subheading */
}
.highlighter-rouge .highlight .gt {
  color: #2838B0;
}
.highlighter-rouge {
  /* Generic.Traceback */
}
.highlighter-rouge .highlight .kc {
  color: #444;
  font-style: italic;
}
.highlighter-rouge {
  /* Keyword.Constant */
}
.highlighter-rouge .highlight .kd {
  color: #2838B0;
  font-style: italic;
}
.highlighter-rouge {
  /* Keyword.Declaration */
}
.highlighter-rouge .highlight .kn {
  color: #2838B0;
}
.highlighter-rouge {
  /* Keyword.Namespace */
}
.highlighter-rouge .highlight .kp {
  color: #2838B0;
}
.highlighter-rouge {
  /* Keyword.Pseudo */
}
.highlighter-rouge .highlight .kr {
  color: #2838B0;
}
.highlighter-rouge {
  /* Keyword.Reserved */
}
.highlighter-rouge .highlight .kt {
  color: #2838B0;
  font-style: italic;
}
.highlighter-rouge {
  /* Keyword.Type */
}
.highlighter-rouge .highlight .m {
  color: #444;
}
.highlighter-rouge {
  /* Literal.Number */
}
.highlighter-rouge .highlight .s {
  color: #B83838;
}
.highlighter-rouge {
  /* Literal.String */
}
.highlighter-rouge .highlight .na {
  color: #388038;
}
.highlighter-rouge {
  /* Name.Attribute */
}
.highlighter-rouge .highlight .nb {
  color: #388038;
}
.highlighter-rouge {
  /* Name.Builtin */
}
.highlighter-rouge .highlight .nc {
  color: #287088;
}
.highlighter-rouge {
  /* Name.Class */
}
.highlighter-rouge .highlight .no {
  color: #B85820;
}
.highlighter-rouge {
  /* Name.Constant */
}
.highlighter-rouge .highlight .nd {
  color: #287088;
}
.highlighter-rouge {
  /* Name.Decorator */
}
.highlighter-rouge .highlight .ni {
  color: #709030;
}
.highlighter-rouge {
  /* Name.Entity */
}
.highlighter-rouge .highlight .ne {
  color: #908828;
}
.highlighter-rouge {
  /* Name.Exception */
}
.highlighter-rouge .highlight .nf {
  color: #785840;
}
.highlighter-rouge {
  /* Name.Function */
}
.highlighter-rouge .highlight .nl {
  color: #289870;
}
.highlighter-rouge {
  /* Name.Label */
}
.highlighter-rouge .highlight .nn {
  color: #289870;
}
.highlighter-rouge {
  /* Name.Namespace */
}
.highlighter-rouge .highlight .nt {
  color: #2838B0;
}
.highlighter-rouge {
  /* Name.Tag */
}
.highlighter-rouge .highlight .nv {
  color: #B04040;
}
.highlighter-rouge {
  /* Name.Variable */
}
.highlighter-rouge .highlight .ow {
  color: #A848A8;
}
.highlighter-rouge {
  /* Operator.Word */
}
.highlighter-rouge .highlight .pm {
  color: #888;
}
.highlighter-rouge {
  /* Punctuation.Marker */
}
.highlighter-rouge .highlight .w {
  color: #A89028;
}
.highlighter-rouge {
  /* Text.Whitespace */
}
.highlighter-rouge .highlight .mb {
  color: #444;
}
.highlighter-rouge {
  /* Literal.Number.Bin */
}
.highlighter-rouge .highlight .mf {
  color: #444;
}
.highlighter-rouge {
  /* Literal.Number.Float */
}
.highlighter-rouge .highlight .mh {
  color: #444;
}
.highlighter-rouge {
  /* Literal.Number.Hex */
}
.highlighter-rouge .highlight .mi {
  color: #444;
}
.highlighter-rouge {
  /* Literal.Number.Integer */
}
.highlighter-rouge .highlight .mo {
  color: #444;
}
.highlighter-rouge {
  /* Literal.Number.Oct */
}
.highlighter-rouge .highlight .sa {
  color: #444;
}
.highlighter-rouge {
  /* Literal.String.Affix */
}
.highlighter-rouge .highlight .sb {
  color: #B83838;
}
.highlighter-rouge {
  /* Literal.String.Backtick */
}
.highlighter-rouge .highlight .sc {
  color: #A848A8;
}
.highlighter-rouge {
  /* Literal.String.Char */
}
.highlighter-rouge .highlight .dl {
  color: #B85820;
}
.highlighter-rouge {
  /* Literal.String.Delimiter */
}
.highlighter-rouge .highlight .sd {
  color: #B85820;
  font-style: italic;
}
.highlighter-rouge {
  /* Literal.String.Doc */
}
.highlighter-rouge .highlight .s2 {
  color: #B83838;
}
.highlighter-rouge {
  /* Literal.String.Double */
}
.highlighter-rouge .highlight .se {
  color: #709030;
}
.highlighter-rouge {
  /* Literal.String.Escape */
}
.highlighter-rouge .highlight .sh {
  color: #B83838;
}
.highlighter-rouge {
  /* Literal.String.Heredoc */
}
.highlighter-rouge .highlight .si {
  color: #B83838;
  text-decoration: underline;
}
.highlighter-rouge {
  /* Literal.String.Interpol */
}
.highlighter-rouge .highlight .sx {
  color: #A848A8;
}
.highlighter-rouge {
  /* Literal.String.Other */
}
.highlighter-rouge .highlight .sr {
  color: #A848A8;
}
.highlighter-rouge {
  /* Literal.String.Regex */
}
.highlighter-rouge .highlight .s1 {
  color: #B83838;
}
.highlighter-rouge {
  /* Literal.String.Single */
}
.highlighter-rouge .highlight .ss {
  color: #B83838;
}
.highlighter-rouge {
  /* Literal.String.Symbol */
}
.highlighter-rouge .highlight .bp {
  color: #388038;
  font-style: italic;
}
.highlighter-rouge {
  /* Name.Builtin.Pseudo */
}
.highlighter-rouge .highlight .fm {
  color: #B85820;
}
.highlighter-rouge {
  /* Name.Function.Magic */
}
.highlighter-rouge .highlight .vc {
  color: #B04040;
}
.highlighter-rouge {
  /* Name.Variable.Class */
}
.highlighter-rouge .highlight .vg {
  color: #908828;
}
.highlighter-rouge {
  /* Name.Variable.Global */
}
.highlighter-rouge .highlight .vi {
  color: #B04040;
}
.highlighter-rouge {
  /* Name.Variable.Instance */
}
.highlighter-rouge .highlight .vm {
  color: #B85820;
}
.highlighter-rouge {
  /* Name.Variable.Magic */
}
.highlighter-rouge .highlight .il {
  color: #444;
}
.highlighter-rouge {
  /* Literal.Number.Integer.Long */
}
@media (prefers-color-scheme: dark) {
  .highlighter-rouge td.linenos .normal {
    color: inherit;
    background-color: transparent;
    padding-left: 5px;
    padding-right: 5px;
  }
  .highlighter-rouge span.linenos {
    color: inherit;
    background-color: transparent;
    padding-left: 5px;
    padding-right: 5px;
  }
  .highlighter-rouge td.linenos .special {
    color: #000000;
    background-color: #ffffc0;
    padding-left: 5px;
    padding-right: 5px;
  }
  .highlighter-rouge span.linenos.special {
    color: #000000;
    background-color: #ffffc0;
    padding-left: 5px;
    padding-right: 5px;
  }
  .highlighter-rouge .highlight .hll {
    background-color: #ffffcc;
  }
  .highlighter-rouge .highlight {
    background: #1A1E22;
    color: #ABB2BF;
  }
  .highlighter-rouge .highlight .c {
    color: #7F848E;
  }
  .highlighter-rouge {
    /* Comment */
  }
  .highlighter-rouge .highlight .err {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Error */
  }
  .highlighter-rouge .highlight .esc {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Escape */
  }
  .highlighter-rouge .highlight .g {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic */
  }
  .highlighter-rouge .highlight .k {
    color: #C678DD;
  }
  .highlighter-rouge {
    /* Keyword */
  }
  .highlighter-rouge .highlight .l {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Literal */
  }
  .highlighter-rouge .highlight .n {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name */
  }
  .highlighter-rouge .highlight .o {
    color: #56B6C2;
  }
  .highlighter-rouge {
    /* Operator */
  }
  .highlighter-rouge .highlight .x {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Other */
  }
  .highlighter-rouge .highlight .p {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Punctuation */
  }
  .highlighter-rouge .highlight .ch {
    color: #7F848E;
  }
  .highlighter-rouge {
    /* Comment.Hashbang */
  }
  .highlighter-rouge .highlight .cm {
    color: #7F848E;
  }
  .highlighter-rouge {
    /* Comment.Multiline */
  }
  .highlighter-rouge .highlight .cp {
    color: #7F848E;
  }
  .highlighter-rouge {
    /* Comment.Preproc */
  }
  .highlighter-rouge .highlight .cpf {
    color: #7F848E;
  }
  .highlighter-rouge {
    /* Comment.PreprocFile */
  }
  .highlighter-rouge .highlight .c1 {
    color: #7F848E;
  }
  .highlighter-rouge {
    /* Comment.Single */
  }
  .highlighter-rouge .highlight .cs {
    color: #7F848E;
  }
  .highlighter-rouge {
    /* Comment.Special */
  }
  .highlighter-rouge .highlight .gd {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Deleted */
  }
  .highlighter-rouge .highlight .ge {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Emph */
  }
  .highlighter-rouge .highlight .ges {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.EmphStrong */
  }
  .highlighter-rouge .highlight .gr {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Error */
  }
  .highlighter-rouge .highlight .gh {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Heading */
  }
  .highlighter-rouge .highlight .gi {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Inserted */
  }
  .highlighter-rouge .highlight .go {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Output */
  }
  .highlighter-rouge .highlight .gp {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Prompt */
  }
  .highlighter-rouge .highlight .gs {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Strong */
  }
  .highlighter-rouge .highlight .gu {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Subheading */
  }
  .highlighter-rouge .highlight .gt {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Generic.Traceback */
  }
  .highlighter-rouge .highlight .kc {
    color: #E5C07B;
  }
  .highlighter-rouge {
    /* Keyword.Constant */
  }
  .highlighter-rouge .highlight .kd {
    color: #C678DD;
  }
  .highlighter-rouge {
    /* Keyword.Declaration */
  }
  .highlighter-rouge .highlight .kn {
    color: #C678DD;
  }
  .highlighter-rouge {
    /* Keyword.Namespace */
  }
  .highlighter-rouge .highlight .kp {
    color: #C678DD;
  }
  .highlighter-rouge {
    /* Keyword.Pseudo */
  }
  .highlighter-rouge .highlight .kr {
    color: #C678DD;
  }
  .highlighter-rouge {
    /* Keyword.Reserved */
  }
  .highlighter-rouge .highlight .kt {
    color: #E5C07B;
  }
  .highlighter-rouge {
    /* Keyword.Type */
  }
  .highlighter-rouge .highlight .ld {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Literal.Date */
  }
  .highlighter-rouge .highlight .m {
    color: #D19A66;
  }
  .highlighter-rouge {
    /* Literal.Number */
  }
  .highlighter-rouge .highlight .s {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String */
  }
  .highlighter-rouge .highlight .na {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Attribute */
  }
  .highlighter-rouge .highlight .nb {
    color: #E5C07B;
  }
  .highlighter-rouge {
    /* Name.Builtin */
  }
  .highlighter-rouge .highlight .nc {
    color: #E5C07B;
  }
  .highlighter-rouge {
    /* Name.Class */
  }
  .highlighter-rouge .highlight .no {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Constant */
  }
  .highlighter-rouge .highlight .nd {
    color: #61AFEF;
  }
  .highlighter-rouge {
    /* Name.Decorator */
  }
  .highlighter-rouge .highlight .ni {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Entity */
  }
  .highlighter-rouge .highlight .ne {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Exception */
  }
  .highlighter-rouge .highlight .nf {
    color: #61AFEF;
    font-weight: bold;
  }
  .highlighter-rouge {
    /* Name.Function */
  }
  .highlighter-rouge .highlight .nl {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Label */
  }
  .highlighter-rouge .highlight .nn {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Namespace */
  }
  .highlighter-rouge .highlight .nx {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Other */
  }
  .highlighter-rouge .highlight .py {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Property */
  }
  .highlighter-rouge .highlight .nt {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Tag */
  }
  .highlighter-rouge .highlight .nv {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Variable */
  }
  .highlighter-rouge .highlight .ow {
    color: #56B6C2;
  }
  .highlighter-rouge {
    /* Operator.Word */
  }
  .highlighter-rouge .highlight .pm {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Punctuation.Marker */
  }
  .highlighter-rouge .highlight .w {
    color: #ABB2BF;
  }
  .highlighter-rouge {
    /* Text.Whitespace */
  }
  .highlighter-rouge .highlight .mb {
    color: #D19A66;
  }
  .highlighter-rouge {
    /* Literal.Number.Bin */
  }
  .highlighter-rouge .highlight .mf {
    color: #D19A66;
  }
  .highlighter-rouge {
    /* Literal.Number.Float */
  }
  .highlighter-rouge .highlight .mh {
    color: #D19A66;
  }
  .highlighter-rouge {
    /* Literal.Number.Hex */
  }
  .highlighter-rouge .highlight .mi {
    color: #D19A66;
  }
  .highlighter-rouge {
    /* Literal.Number.Integer */
  }
  .highlighter-rouge .highlight .mo {
    color: #D19A66;
  }
  .highlighter-rouge {
    /* Literal.Number.Oct */
  }
  .highlighter-rouge .highlight .sa {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Affix */
  }
  .highlighter-rouge .highlight .sb {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Backtick */
  }
  .highlighter-rouge .highlight .sc {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Char */
  }
  .highlighter-rouge .highlight .dl {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Delimiter */
  }
  .highlighter-rouge .highlight .sd {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Doc */
  }
  .highlighter-rouge .highlight .s2 {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Double */
  }
  .highlighter-rouge .highlight .se {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Escape */
  }
  .highlighter-rouge .highlight .sh {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Heredoc */
  }
  .highlighter-rouge .highlight .si {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Interpol */
  }
  .highlighter-rouge .highlight .sx {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Other */
  }
  .highlighter-rouge .highlight .sr {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Regex */
  }
  .highlighter-rouge .highlight .s1 {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Single */
  }
  .highlighter-rouge .highlight .ss {
    color: #98C379;
  }
  .highlighter-rouge {
    /* Literal.String.Symbol */
  }
  .highlighter-rouge .highlight .bp {
    color: #E5C07B;
  }
  .highlighter-rouge {
    /* Name.Builtin.Pseudo */
  }
  .highlighter-rouge .highlight .fm {
    color: #56B6C2;
    font-weight: bold;
  }
  .highlighter-rouge {
    /* Name.Function.Magic */
  }
  .highlighter-rouge .highlight .vc {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Variable.Class */
  }
  .highlighter-rouge .highlight .vg {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Variable.Global */
  }
  .highlighter-rouge .highlight .vi {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Variable.Instance */
  }
  .highlighter-rouge .highlight .vm {
    color: #E06C75;
  }
  .highlighter-rouge {
    /* Name.Variable.Magic */
  }
  .highlighter-rouge .highlight .il {
    color: #D19A66;
  }
  .highlighter-rouge {
    /* Literal.Number.Integer.Long */
  }
}

.back:before {
  content: "❮";
  margin-right: var(--grid1⁄2);
  text-decoration: none;
  display: inline-block;
}

.forward:after {
  content: "❯";
  margin-left: var(--grid1⁄2);
  text-decoration: none;
  display: inline-block;
}

h1 .aside, h2 .aside, h3 .aside, h4 .aside, h5 .aside, h6 .aside {
  display: inline-block;
  margin-left: 1ex;
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: normal;
  font-size: 1rem;
  line-height: 1.2rem;
}

details {
  margin-left: var(--grid1);
}
details summary {
  display: flex;
  flex-direction: row;
  margin-left: calc(-1 * var(--grid1));
  cursor: pointer;
}
details summary:before {
  content: "▶︎";
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-size: 67%;
  width: var(--grid1);
  flex-shrink: 0;
  position: relative;
  top: 0.1em;
}
details summary:hover {
  color: var(--action-color);
}
details summary:hover:before {
  color: var(--action-color);
}
details summary > p {
  margin: 0;
}
details[open] > summary:before {
  content: "▼";
}

.related-links {
  display: flex;
  flex-wrap: wrap;
}
.related-links:before {
  content: url(/f25/icons/link-arrow-light.svg);
}
@media (prefers-color-scheme: dark) {
  .related-links:before {
    content: url(/f25/icons/link-arrow-dark.svg);
  }
}
.related-links:before {
  width: 0.6em;
  display: inline-block;
}
.related-links a, .related-links .label {
  padding: 0 var(--grid1⁄2);
}
.related-links .label {
  padding-right: 0;
}
.related-links a + a {
  border-left: 1px solid var(--meta-border-color);
}

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #eee;
  clip: auto !important;
  clip-path: none;
  color: #444;
  display: block;
  font-size: 1em;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* {root_path}/{assignment.type.dir_name}/{assignment.id}/index.html */

@charset "UTF-8";
.sfghNNIUUt {
  display: contents;
  @charset "UTF-8";
}
.sfghNNIUUt .links {
  margin: var(--grid1);
}
.sfghNNIUUt .links .primary {
  font-weight: bold;
}
.sfghNNIUUt .metadata {
  display: grid;
  grid-template-columns: auto 1fr;
}
.sfghNNIUUt .metadata .label, .sfghNNIUUt .metadata .value {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
}
.sfghNNIUUt .metadata .label {
  grid-column: 1;
  white-space: nowrap;
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  text-align: right;
  margin-right: var(--grid1⁄2);
}
.sfghNNIUUt .metadata .value {
  grid-column: 2;
}

/* {root_path}/style/_layout_grid */

@charset "UTF-8";
.sf64LK635Y {
  display: contents;
  @charset "UTF-8";
}
.sf64LK635Y .layout-grid-container {
  position: relative;
}
.sf64LK635Y .layout-grid-container .layout-grid {
  pointer-events: none;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 10000;
  background-size: var(--grid2) var(--grid2);
  background-image: linear-gradient(to right, rgba(0, 0, 255, 0.2) 0.5px, transparent 0), linear-gradient(to right, rgba(255, 0, 0, 0.0666666667) 0.5px, transparent 0), linear-gradient(to right, rgba(0, 153, 0, 0.2) 0.5px, transparent 0), linear-gradient(to right, rgba(255, 0, 0, 0.0666666667) 0.5px, transparent 0), linear-gradient(to bottom, rgba(0, 0, 255, 0.1333333333) 0.5px, transparent 0), linear-gradient(to bottom, rgba(255, 0, 0, 0.0666666667) 0.5px, transparent 0), linear-gradient(to bottom, rgba(0, 153, 0, 0.1333333333) 0.5px, transparent 0), linear-gradient(to bottom, rgba(255, 0, 0, 0.0666666667) 0.5px, transparent 0);
  background-position: 0 0, var(--grid1⁄2) 0, var(--grid1) 0, var(--grid3⁄2) 0, 0 0, 0 var(--grid1⁄2), 0 var(--grid1), 0 var(--grid3⁄2);
}

/* {root_path}/_course_in_progress */

@charset "UTF-8";
.sf5br9HU6B {
  display: contents;
  @charset "UTF-8";
}
@media all and (min-width: 72em) {
  .sf5br9HU6B .course-in-progress {
    display: grid;
    grid-template-areas: "next-class  terminology" "assignments terminology";
    grid-template-columns: fit-content(calc(50% - var(--grid4) / 2)) 1fr;
    grid-template-rows: auto 1fr;
  }
  .sf5br9HU6B .course-in-progress .next-class {
    grid-area: next-class;
  }
  .sf5br9HU6B .course-in-progress .assignments {
    grid-area: assignments;
  }
  .sf5br9HU6B .course-in-progress .terminology {
    grid-area: terminology;
  }
  .sf5br9HU6B .course-in-progress .terminology > h1:first-child, .sf5br9HU6B .course-in-progress .terminology > h2:first-child, .sf5br9HU6B .course-in-progress .terminology > h3:first-child, .sf5br9HU6B .course-in-progress .terminology > h4:first-child, .sf5br9HU6B .course-in-progress .terminology > h5:first-child, .sf5br9HU6B .course-in-progress .terminology > h6:first-child {
    margin-top: 0;
  }
  .sf5br9HU6B .course-in-progress .terminology {
    margin-top: var(--grid1);
    margin-left: var(--grid4);
  }
}
.sf5br9HU6B .featured {
  display: inline-block;
  padding: var(--grid1);
}
.sf5br9HU6B .featured > h1:first-child, .sf5br9HU6B .featured > h2:first-child, .sf5br9HU6B .featured > h3:first-child, .sf5br9HU6B .featured > h4:first-child, .sf5br9HU6B .featured > h5:first-child, .sf5br9HU6B .featured > h6:first-child {
  margin-top: 0;
}
.sf5br9HU6B .featured {
  border-radius: var(--grid1⁄2);
  box-shadow: 0 0 var(--grid1⁄2) var(--shadow-color);
  --border-width: 0.5px;
  border: var(--border-width) solid var(--shadow-color);
  margin: calc(-1 * var(--border-width));
}
.sf5br9HU6B .featured .group {
  margin: var(--grid1) 0;
}
.sf5br9HU6B .featured .group h2 {
  font-size: inherit;
  margin: 0;
  margin-bottom: var(--grid1⁄4);
}
.sf5br9HU6B .featured .related-links {
  border-top: 0.5px solid var(--meta-border-color);
  margin-top: -0.5px;
  padding-top: var(--grid1);
}
.sf5br9HU6B .assignments .new-day {
  margin-top: var(--grid1⁄2);
}
.sf5br9HU6B .recently-due {
  margin: var(--grid1) 0;
}
.sf5br9HU6B .recently-due summary {
  cursor: pointer;
}
.sf5br9HU6B .recently-due summary:hover {
  color: var(--action-color);
}
.sf5br9HU6B nav.related-links {
  margin-top: var(--grid1);
}

/* {root_path}/schedule/{day.numeric_date}.html */

.sf1iJaXvrj {
  display: contents;
}
.sf1iJaXvrj h1 nav {
  display: inline-block;
}

/* {root_path}/schedule/_item_group */

.sfH_qHaqNo {
  display: contents;
}
.sfH_qHaqNo .note {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
}
.sfH_qHaqNo .note-before {
  display: inline;
}
.sfH_qHaqNo .note-after {
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  --base-font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
}

/* {root_path}/schedule/index.html */

@charset "UTF-8";
.sfPj2YU--J {
  display: contents;
  @charset "UTF-8";
}
.sfPj2YU--J .notes {
  margin: var(--grid1) 0;
}
.sfPj2YU--J .notes .note {
  font-style: italic;
  margin: var(--grid1⁄2) 0;
  max-width: 36em;
  text-wrap: balance;
}
.sfPj2YU--J .schedule {
  font-size: calc(var(--unresponsive-grid) * 2 / 3);
  --base-font-size: calc(var(--unresponsive-grid) * 2 / 3);
  line-height: calc(var(--unresponsive-grid) * 3 / 4);
  display: inline-grid;
  grid-template-columns: 8em 1.5fr;
  grid-auto-columns: 1fr;
  column-gap: var(--grid1);
  row-gap: var(--grid1⁄2);
}
.sfPj2YU--J .schedule .heading {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  height: var(--grid1);
  padding-top: var(--grid1⁄2);
  position: sticky;
  top: var(--top-bar-height);
  z-index: 100;
}
.sfPj2YU--J .schedule .heading > .sticky-bg {
  border-color: transparent;
  background: transparent;
  padding: var(--grid1⁄2) var(--grid1);
  margin: calc(-1 * var(--grid1⁄2)) calc(-1 * var(--grid1));
}
.sfPj2YU--J .schedule .heading.stuck > .sticky-bg {
  background: var(--background-color);
  border-bottom: 1px solid var(--divider-color);
  transition: border-color 0.25s ease-in-out, background 0.1s ease-in-out;
}
.sfPj2YU--J .schedule .row {
  display: contents;
}
.sfPj2YU--J .schedule .row > * {
  grid-row: var(--row-index);
}
.sfPj2YU--J .schedule .date {
  grid-column: 1;
}
.sfPj2YU--J .schedule .date .formatted-date {
  margin-left: var(--grid1⁄2);
  display: flex;
  flex: row;
}
.sfPj2YU--J .schedule .date .formatted-date .weekday {
  width: var(--grid2);
  text-align: right;
}
.sfPj2YU--J .schedule .date .formatted-date .weekday:after {
  content: " ";
}
.sfPj2YU--J .schedule .topic {
  grid-column: 2;
  min-width: 16em;
}
.sfPj2YU--J .schedule .break, .sfPj2YU--J .schedule .course-topic {
  grid-column: 1/7;
  padding-top: var(--grid1⁄4);
  padding-bottom: var(--grid1⁄4);
  margin: calc(-0.5 * var(--grid1⁄2)) 0;
}
.sfPj2YU--J .schedule .break {
  background: color-mix(in display-p3, var(--text-color) 40%, var(--background-color));
  color: var(--background-hot-color);
  text-align: center;
  font-weight: bold;
}
.sfPj2YU--J .schedule .course-topic {
  padding-left: calc(8em + var(--grid1));
  font-weight: bold;
  background: color-mix(in display-p3, var(--text-color) 10%, var(--background-color));
}
.sfPj2YU--J .schedule .highlighted-day {
  grid-column: 1/7;
  background: var(--highlight-background);
  margin: calc(-1 * var(--grid1⁄4)) 0;
  border-left: var(--grid1⁄4) solid var(--highlight-border);
}
.sfPj2YU--J .schedule .assignment {
  grid-column-start: var(--column);
  grid-row-start: calc(var(--start-timeline-index) + 1);
  min-width: 10em;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sfPj2YU--J .schedule .assignment .item + .item {
  margin-top: var(--grid1⁄4);
}
.sfPj2YU--J .schedule .bubble {
  grid-row-end: calc(var(--end-timeline-index) + 2);
  padding: var(--grid1⁄4) var(--grid1⁄2);
  --bubble-bg: oklch(var(--timeline-brightness) 0.1 var(--hue) / 0.7);
  background: var(--bubble-bg);
  margin: calc(-1 * var(--grid1⁄4) - 1px) -1px;
  border: 1px solid var(--background-color);
  border-radius: var(--grid1⁄2);
  z-index: 1;
}
.sfPj2YU--J .schedule .bubble a:not(:hover):not(:active) {
  text-decoration: none;
}
.sfPj2YU--J .schedule .bubble a:not(:hover):not(:active) {
  color: color-mix(in display-p3, var(--action-color), var(--strong-color) 25%);
}
.sfPj2YU--J .schedule .bubble:hover {
  border-color: color-mix(in display-p3, var(--bubble-bg), var(--text-color) 33%);
  z-index: 2;
  cursor: pointer;
}
.sfPj2YU--J .schedule .bubble .metadata {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-size: calc(var(--unresponsive-grid) * 3 / 5);
  --base-font-size: calc(var(--unresponsive-grid) * 3 / 5);
  line-height: calc(var(--unresponsive-grid) * 3 / 4);
}
.sfPj2YU--J .schedule .divider-line {
  margin-top: calc(-0.5 * var(--grid1⁄2));
  margin-bottom: calc(0.5 * var(--grid1⁄2) - 0.5px);
  width: 100vw;
  height: 0.5px;
  background: var(--meta-text-color);
  opacity: 0.4;
}

/* {root_path}/schedule/_announcement */

@charset "UTF-8";
.sf_uP6mhuG {
  display: contents;
  @charset "UTF-8";
}
.sf_uP6mhuG .announcement {
  max-width: var(--grid20);
  font-size: var(--grid5⁄4);
  line-height: var(--grid3⁄2);
  color: var(--strong-color);
  margin: var(--grid1) 0;
  padding: var(--grid1) var(--grid1);
  background: var(--highlight-background);
  border: 2px solid var(--highlight-border);
  border-radius: var(--grid1⁄2);
}

/* {root_path}/schedule/_day */

.sfjQDInyWS {
  display: contents;
}

/* {root_path}/_calendar/sources */

.sfkOyscSZ- {
  display: contents;
}
.sfkOyscSZ- ul.sources {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  --base-font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
}
.sfkOyscSZ- ul.sources li {
  margin: 0;
}
.sfkOyscSZ- ul.sources .name {
  display: inline-block;
  width: 7em;
}
.sfkOyscSZ- ul.sources .links {
  display: inline-block;
}
@container main-content (min-width: 24em) {
  .sfkOyscSZ- ul.sources {
    list-style-type: disc;
    padding-left: var(--grid1);
  }
  .sfkOyscSZ- ul.sources li::marker {
    color: var(--meta-text-color);
  }
}

/* {root_path}/_calendar/events */

@charset "UTF-8";
.sfsdc6shDA {
  display: contents;
  @charset "UTF-8";
}
.sfsdc6shDA .weekday, .sfsdc6shDA .date, .sfsdc6shDA .time {
  white-space: nowrap;
}
.sfsdc6shDA .date {
  margin-top: var(--grid1⁄2);
}
.sfsdc6shDA .date .date-notice {
  display: inline;
  margin-left: 1ex;
}
.sfsdc6shDA .event {
  margin-left: var(--grid1);
  display: flex;
  align-items: baseline;
  gap: var(--grid1⁄2);
}
.sfsdc6shDA .event .description {
  width: var(--grid12);
  max-width: var(--grid20);
  text-wrap: none;
  overflow: hidden;
  margin: 0 var(--grid1⁄2);
  flex-grow: 1;
}
.sfsdc6shDA .event > :not(.description) {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  --base-font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
  flex-shrink: 0;
}
.sfsdc6shDA .event .time {
  width: calc(var(--unresponsive-grid) * 7);
}
.sfsdc6shDA .event .location {
  flex-shrink: 1;
  text-align: right;
}
@container main-content (max-width: 48em) {
  .sfsdc6shDA .event .description {
    margin: 0;
  }
}
@container main-content (max-width: 36em) {
  .sfsdc6shDA .event {
    flex-flow: row wrap;
    gap: 0;
    margin: var(--grid1⁄2) 0;
    margin-left: var(--grid1);
  }
  .sfsdc6shDA .event .description {
    order: 1;
    width: 100%;
    max-width: unset;
    margin: 0;
  }
  .sfsdc6shDA .event .time, .sfsdc6shDA .event .location {
    order: 2;
    width: auto;
    max-width: unset;
    text-align: left;
    font-size: calc(var(--unresponsive-grid) * 2 / 3);
    --base-font-size: calc(var(--unresponsive-grid) * 2 / 3);
    line-height: calc(var(--unresponsive-grid) * 3 / 4);
    line-height: var(--grid1);
  }
  .sfsdc6shDA .event .weekday {
    margin-right: 1ex;
  }
  .sfsdc6shDA .event .time {
    margin-right: var(--grid1);
    flex-grow: 1;
  }
}

/* {root_path}/index.html */

.sfr7zK70Jw {
  display: contents;
}
.sfr7zK70Jw .content > * > h1:first-child, .sfr7zK70Jw .content > * > h2:first-child, .sfr7zK70Jw .content > * > h3:first-child, .sfr7zK70Jw .content > * > h4:first-child, .sfr7zK70Jw .content > * > h5:first-child, .sfr7zK70Jw .content > * > h6:first-child {
  margin-top: 0;
}

/* {root_path}/author-guide/{article.id}/index.html */

@charset "UTF-8";
.sfOWPtjnF8 {
  display: contents;
  @charset "UTF-8";
}
.sfOWPtjnF8 .siblings {
  display: flex;
}
.sfOWPtjnF8 .siblings :has(.forward) {
  margin-left: auto;
}
@media all and (max-width: 36em) {
  .sfOWPtjnF8 .siblings {
    flex-direction: column;
  }
}
.sfOWPtjnF8 .guide-md-input {
  margin-top: var(--grid3⁄2);
}
.sfOWPtjnF8 .guide-md-input pre {
  margin-bottom: 0;
  padding-top: calc(var(--grid1) - 1px);
  padding-bottom: calc(var(--grid1) - 1px);
  border-top: 1px solid var(--ghost-color);
  border-right: 1px solid var(--ghost-color);
  border-bottom: 0.5px solid var(--ghost-color);
}
.sfOWPtjnF8 .guide-md-output {
  margin-bottom: var(--grid3⁄2);
  padding: calc(var(--grid1) - 1px);
  padding-left: calc(var(--grid1) - var(--grid1⁄4));
  border-left: var(--grid1⁄4) solid var(--ghost-color);
}
.sfOWPtjnF8 .guide-md-output > *:first-child, .sfOWPtjnF8 .guide-md-output > ul > li:first-child {
  margin-top: 0;
}
.sfOWPtjnF8 .guide-md-output > *:last-child, .sfOWPtjnF8 .guide-md-output > ul > li:last-child {
  margin-bottom: 0;
}
.sfOWPtjnF8 .guide-md-output {
  border-bottom: 1px solid var(--ghost-color);
  border-right: 1px solid var(--ghost-color);
}
.sfOWPtjnF8 .language-markdown .err {
  background: unset;
}

/* {root_path}/_document/page */

@charset "UTF-8";
.sfXKImZzEM {
  display: contents;
  @charset "UTF-8";
}
.sfXKImZzEM .title-image {
  width: 100%;
  max-width: var(--grid16);
  margin: var(--grid1) auto;
}
@media all and (max-width: 42em) {
  .sfXKImZzEM .title-image {
    display: block;
  }
}
@media all and (min-width: 42em) {
  .sfXKImZzEM .title-image {
    float: right;
    margin: 0 0 var(--grid1⁄2) var(--grid1);
    max-width: 33%;
  }
}

/* {root_path}/_document/content */

@charset "UTF-8";
.sfew2QeFM6 {
  display: contents;
  @charset "UTF-8";
}
.sfew2QeFM6 .sticky-header {
  position: sticky;
  top: var(--top-bar-height);
  z-index: 100;
}
.sfew2QeFM6 .sticky-header > .sticky-bg {
  border-color: transparent;
  background: transparent;
  padding: var(--grid1⁄2) var(--grid1⁄2);
  margin: calc(-1 * var(--grid1⁄2)) calc(-1 * var(--grid1⁄2));
}
.sfew2QeFM6 .sticky-header.stuck > .sticky-bg {
  background: var(--background-color);
  border-bottom: 1px solid var(--divider-color);
  transition: border-color 0.25s ease-in-out, background 0.1s ease-in-out;
}

/* {root_path}/{assignment_type.dir_name}/index.html */

.sfG7dzb9JE {
  display: contents;
}
.sfG7dzb9JE .assignments {
  display: table;
}
.sfG7dzb9JE .assignments .assignment {
  display: table-row;
}
.sfG7dzb9JE .assignments .assignment .link, .sfG7dzb9JE .assignments .assignment .date {
  display: table-cell;
}
.sfG7dzb9JE .assignments .assignment .date {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  width: var(--grid6);
  white-space: nowrap;
}
.sfG7dzb9JE .assignments .assignment .date .weekday {
  display: inline-block;
  width: calc(var(--grid1) * 5 / 2);
  text-align: right;
}
.sfG7dzb9JE .assignments .assignment .date .no-date {
  display: inline-block;
  width: 100%;
  text-align: center;
}

/* {root_path}/glossary/index.html */

@charset "UTF-8";
.sfRGrMfbxu {
  display: contents;
  @charset "UTF-8";
}
.sfRGrMfbxu .sticky-header {
  position: sticky;
  top: var(--top-bar-height);
  z-index: 100;
}
.sfRGrMfbxu .sticky-header > .sticky-bg {
  border-color: transparent;
  background: transparent;
  padding: var(--grid1⁄2) var(--grid1⁄2);
  margin: calc(-1 * var(--grid1⁄2)) calc(-1 * var(--grid1⁄2));
}
.sfRGrMfbxu .sticky-header.stuck > .sticky-bg {
  background: var(--background-color);
  border-bottom: 1px solid var(--divider-color);
  transition: border-color 0.25s ease-in-out, background 0.1s ease-in-out;
}
.sfRGrMfbxu .glossary dt, .sfRGrMfbxu .glossary dd {
  margin: 0;
  padding: 0;
}
.sfRGrMfbxu .glossary dd {
  margin-left: var(--grid2);
}
@media all and (max-width: 36em) {
  .sfRGrMfbxu .glossary dd {
    margin-left: var(--grid1);
  }
}
.sfRGrMfbxu .glossary .term {
  margin-bottom: var(--grid1);
}
.sfRGrMfbxu .glossary .variants {
  font-weight: 700;
  color: var(--strong-color);
}
.sfRGrMfbxu .glossary .occurrence {
  margin-top: var(--grid1⁄2);
  max-width: 42em;
  cursor: pointer;
}
.sfRGrMfbxu .glossary .occurrence:hover {
  outline: 2px solid color-mix(in display-p3, var(--action-color), transparent);
  outline-offset: var(--grid1⁄4);
  border-radius: var(--grid1⁄4);
}
.sfRGrMfbxu .glossary .occurrence .doc {
  font-style: italic;
}
.sfRGrMfbxu .glossary .occurrence .excerpt {
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  --base-font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
  max-height: calc(var(--unresponsive-grid) * var(--preview-lines));
  overflow: hidden;
  --preview-lines: 2;
}
@media all and (max-width: 36em) {
  .sfRGrMfbxu .glossary .occurrence .excerpt {
    --preview-lines: 3;
  }
}
.sfRGrMfbxu .glossary .occurrence .excerpt:before, .sfRGrMfbxu .glossary .occurrence .excerpt:after {
  content: "…";
}
.sfRGrMfbxu .glossary .occurrence .excerpt .snippet {
  font-weight: 300;
}
.sfRGrMfbxu .glossary .occurrence .excerpt .snippet.context:first-child {
  max-width: 20%;
}
@media all and (max-width: 36em) {
  .sfRGrMfbxu .glossary .occurrence .excerpt .snippet.context:first-child {
    max-width: 33%;
  }
}
.sfRGrMfbxu .glossary .occurrence .excerpt .snippet.context:first-child {
  display: inline-flex;
  flex-direction: row;
  white-space: nowrap;
  white-space-collapse: preserve;
  justify-content: flex-end;
  overflow: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.sfRGrMfbxu .glossary .occurrence .excerpt .snippet.highlight {
  color: var(--definition-text);
  font-weight: 400;
}
.sfRGrMfbxu .glossary .term.future *, .sfRGrMfbxu .glossary .occurrence.future * {
  color: color-mix(in display-p3, var(--text-color), var(--background-color)) !important;
}
.sfRGrMfbxu .glossary .term.future a a:not(:hover):not(:active), .sfRGrMfbxu .glossary .occurrence.future a a:not(:hover):not(:active) {
  text-decoration: none;
}
.sfRGrMfbxu .glossary .term.future a, .sfRGrMfbxu .glossary .occurrence.future a {
  --action-color: var(--text-color);
}
.sfRGrMfbxu .glossary .term.future a a, .sfRGrMfbxu .glossary .occurrence.future a a {
  text-decoration-color: color-mix(in display-p3, var(--text-color), var(--background-color)) !important;
}
.sfRGrMfbxu .glossary:not(.show-future) .future {
  display: none;
}

/* {root_path}/glossary/_recent_terms_subgroup */

@charset "UTF-8";
.sfHA2AbtjY {
  display: contents;
  @charset "UTF-8";
}
.sfHA2AbtjY .occurrences {
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  --base-font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
  margin: var(--grid1⁄4) 0;
}

/* {root_path}/glossary/_controls */

@charset "UTF-8";
.sf7ezTrkVt {
  display: contents;
  @charset "UTF-8";
}
.sf7ezTrkVt .search {
  all: unset;
  display: block;
  width: calc(100% - var(--grid1));
  border-radius: var(--grid1⁄4);
  border: 1px solid var(--action-color);
  margin: -1px;
  padding: var(--grid1⁄4) var(--grid1⁄2);
  margin: var(--grid1⁄2) 0;
  color: var(--strong-color);
}
.sf7ezTrkVt .search::placeholder {
  opacity: 0.67;
}
.sf7ezTrkVt .choices {
  display: inline-flex;
  gap: var(--grid1⁄2);
  --row-height: var(--grid3⁄2);
  margin: var(--grid1⁄2) 0;
  margin-right: var(--grid1);
}
.sf7ezTrkVt .choices .title {
  color: var(--meta-text-color);
  height: var(--row-height);
  line-height: var(--row-height);
}
.sf7ezTrkVt .choices .group {
  display: flex;
  align-items: center;
  border-radius: var(--grid1⁄4);
  border: 1px solid var(--action-color);
  margin: -1px;
}
.sf7ezTrkVt .choices .choice {
  height: var(--row-height);
  line-height: var(--row-height);
  text-decoration: none;
  padding: 0 var(--grid1⁄2);
  border-right: 1px solid var(--action-color);
}
.sf7ezTrkVt .choices .choice:last-child {
  border-right: none;
}
.sf7ezTrkVt .choices .choice.active, .sf7ezTrkVt .choices .choice:has(input:checked) {
  background: var(--action-color);
  color: var(--action-hot-text-color);
}
.sf7ezTrkVt .choices .choice:focus-within {
  outline-color: -webkit-focus-ring-color;
  outline-style: auto;
}
.sf7ezTrkVt .choices .choice input[type=radio] {
  position: fixed;
  opacity: 0;
  pointer-events: none;
}
.sf7ezTrkVt .choices .choice .aside {
  color: var(--meta-text-color);
  text-decoration-color: var(--meta-text-color);
  font-size: var(--small-font-size);
  margin-left: 1ex;
}
.sf7ezTrkVt .choices button, .sf7ezTrkVt .choices a.button, .sf7ezTrkVt .choices input[type=submit] {
  height: var(--row-height);
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
}

/* {root_path}/glossary/_recent_terms */

@charset "UTF-8";
.sfkfiCTvhU {
  display: contents;
  @charset "UTF-8";
}
.sfkfiCTvhU details.more {
  margin: 0;
}
.sfkfiCTvhU details.more > summary {
  margin: var(--grid1⁄4) 0;
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
}
.sfkfiCTvhU details.more > summary:hover {
  color: var(--action-color);
}
.sfkfiCTvhU details.more > summary:before {
  display: none;
}
.sfkfiCTvhU details.more[open] > summary {
  display: none;
}

/* {root_path}/_layout/page */

@charset "UTF-8";
.layout {
  --sidebar-width: calc(max(16em, 20vw));
}
@media all and (max-width: 60em) {
  .layout {
    --sidebar-width: var(--grid12);
  }
}
.layout {
  --content-margin: var(--grid3⁄2);
}
@media all and (max-width: 60em) {
  .layout {
    --content-margin: var(--grid1);
  }
}

.top-bar {
  position: fixed;
  top: 0;
  z-index: 1001;
}

.sidebar-container {
  z-index: 1000;
  width: var(--sidebar-width);
  top: var(--top-bar-height);
  height: calc(100% - var(--top-bar-height));
  position: fixed;
  overflow-y: auto;
  scrollbar-width: thin;
}

@media (prefers-contrast: more) {
  .top-bar, .sidebar-container {
    outline: 1px solid var(--meta-border-color);
  }
}
main {
  margin-top: var(--top-bar-height);
  container-type: size;
  container-name: main-content;
}

body:not(.sidebar-always-hidden) .layout main {
  margin-left: var(--sidebar-width);
}
@media all and (max-width: 42em) {
  body:not(.sidebar-always-hidden) .layout main {
    margin-left: 0;
  }
}

main .content {
  padding: var(--content-margin);
}

.sidebar-container {
  height: calc(100vh - var(--top-bar-height));
  background: var(--meta-background-mild);
}

.dim-behind-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: black;
  opacity: 0;
  z-index: 999;
  transition: opacity 0.3s ease-in-out;
  pointer-events: none;
}

#sidebar-toggle {
  display: none;
}

.sidebar-always-hidden .layout {
  --sidebar-width: calc(min(100%, var(--grid16)));
}
.sidebar-always-hidden #sidebar-toggle {
  display: block;
}
.sidebar-always-hidden .sidebar-container {
  box-sizing: border-box;
  z-index: 1000;
  width: var(--sidebar-width);
  left: calc(-1 * var(--sidebar-width) - 1px);
  top: var(--top-bar-height);
  border: 1px solid var(--meta-background-hot);
  transition: left 0.3s ease-in;
  padding-bottom: 72px;
}
.sidebar-always-hidden .layout:has(#sidebar-toggle input:checked) .sidebar-container {
  left: 0;
  transition: left 0.3s ease-out;
}
.sidebar-always-hidden .layout:has(#sidebar-toggle input:checked) .dim-behind-sidebar {
  opacity: 0.67;
  pointer-events: unset;
}

@media all and (max-width: 42em) {
  .layout {
    --sidebar-width: calc(min(100%, var(--grid16)));
  }
  #sidebar-toggle {
    display: block;
  }
  .sidebar-container {
    box-sizing: border-box;
    z-index: 1000;
    width: var(--sidebar-width);
    left: calc(-1 * var(--sidebar-width) - 1px);
    top: var(--top-bar-height);
    border: 1px solid var(--meta-background-hot);
    transition: left 0.3s ease-in;
    padding-bottom: 72px;
  }
  .layout:has(#sidebar-toggle input:checked) .sidebar-container {
    left: 0;
    transition: left 0.3s ease-out;
  }
  .layout:has(#sidebar-toggle input:checked) .dim-behind-sidebar {
    opacity: 0.67;
    pointer-events: unset;
  }
}
.build-errors {
  color: var(--error-color);
  background: var(--background-hot-color);
  position: fixed;
  bottom: 0;
  right: 0;
  line-height: 120%;
  outline: 1px solid red;
  padding: 1em;
  z-index: 2000;
}
.build-errors details summary {
  cursor: pointer;
}
.build-errors details[open] summary:after {
  content: "Site build warnings";
  font-weight: bold;
  margin-left: 1ex;
}
.build-errors details[open] summary {
  margin-bottom: 0.5em;
}

/* {root_path}/_layout/top_bar */

@charset "UTF-8";
.sfiuaMJJ32 {
  display: contents;
  @charset "UTF-8";
}
.sfiuaMJJ32 .items {
  display: flex;
  flex: row;
  width: 100vw;
  box-sizing: border-box;
  background: var(--meta-background-hot);
  padding: 0 var(--grid1);
}
.sfiuaMJJ32 .items a:not(:hover):not(:active) {
  text-decoration: none;
  color: inherit;
  --strong-color: inherit;
}
.sfiuaMJJ32 .items {
  gap: var(--grid1);
}
@media all and (max-width: 24em) {
  .sfiuaMJJ32 .items {
    gap: var(--grid1⁄2);
  }
}
.sfiuaMJJ32 .items {
  align-items: baseline;
}
.sfiuaMJJ32 .item {
  white-space: nowrap;
  top: 0;
  height: var(--top-bar-height);
  line-height: var(--top-bar-height);
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
}
.sfiuaMJJ32 .item.main {
  font-size: var(--h2-font-size);
  font-weight: bold;
  width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-grow: 1;
}
.sfiuaMJJ32 .item .course-number, .sfiuaMJJ32 .item .course-title {
  display: inline;
}
.sfiuaMJJ32 .item .course-number:after {
  content: ": ";
}
@media all and (max-width: 42em) {
  .sfiuaMJJ32 .item .course-number:after {
    content: "";
  }
  .sfiuaMJJ32 .item .course-title {
    display: none;
  }
}
.sfiuaMJJ32 #sidebar-toggle {
  --size: var(--grid2);
  width: var(--size);
  height: var(--size);
  align-self: center;
  margin: 0 calc(-1 * var(--grid1⁄2));
}

/* {root_path}/_layout/sidebar */

@charset "UTF-8";
.sfhJX4ViY2 {
  display: contents;
  @charset "UTF-8";
}
.sfhJX4ViY2 .sidebar {
  padding: var(--content-margin) var(--grid1);
}
.sfhJX4ViY2 .sidebar a:not(:hover):not(:active) {
  text-decoration: none;
  color: inherit;
  --strong-color: inherit;
}
@media all and (min-width: 42em) {
  .sfhJX4ViY2 .sidebar {
    font-size: calc(var(--unresponsive-grid) * 3 / 4);
    --base-font-size: calc(var(--unresponsive-grid) * 3 / 4);
    line-height: calc(var(--unresponsive-grid));
  }
}
.sfhJX4ViY2 .sections > li {
  margin-bottom: var(--grid1);
  font-weight: bold;
  color: var(--meta-text-color-hot);
}
.sfhJX4ViY2 .sections > li ul {
  margin: var(--grid1⁄4) var(--grid1);
  margin-right: 0;
  font-weight: normal;
  color: var(--text-color);
}
.sfhJX4ViY2 .sections ul {
  list-style-type: disc;
  padding-left: var(--grid1);
}
.sfhJX4ViY2 .sections ul li::marker {
  color: var(--meta-text-color);
}
.sfhJX4ViY2 .sections ul {
  padding-left: 0;
}
.sfhJX4ViY2 .build-time {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-size: calc(var(--unresponsive-grid) * 3 / 5);
  --base-font-size: calc(var(--unresponsive-grid) * 3 / 5);
  line-height: calc(var(--unresponsive-grid) * 3 / 4);
  color: color-mix(in display-p3, var(--meta-text-color), var(--background-color));
  margin-top: var(--grid3);
}

/* {root_path}/_widgets/document_link */

.sfNGQE7LQg {
  display: contents;
}
.sfNGQE7LQg .name, .sfNGQE7LQg .type {
  display: inline;
}
.sfNGQE7LQg .type {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
}
.sfNGQE7LQg .type:after {
  content: ":";
}
.sfNGQE7LQg .due-date, .sfNGQE7LQg .date-notice {
  display: inline;
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  --base-font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
}
.sfNGQE7LQg .name {
  margin-right: 1ex;
}
.sfNGQE7LQg .due-date {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  font-weight: 400;
  letter-spacing: normal;
  font-weight: 300;
  letter-spacing: 1.5%;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  white-space: nowrap;
}
.sfNGQE7LQg .date-notice {
  margin-left: 1ex;
  color: var(--strong-color);
}
.sfNGQE7LQg .future a:not(:hover):not(:active) {
  text-decoration: none;
}
.sfNGQE7LQg .future {
  --action-color: var(--text-color);
}
.sfNGQE7LQg .future a {
  text-decoration-color: color-mix(in display-p3, var(--text-color), var(--background-color)) !important;
}

/* {root_path}/_widgets/star */

.sfHAN8IJ3l {
  display: contents;
}
.sfHAN8IJ3l .star {
  display: inline;
}
.sfHAN8IJ3l .star:before {
  content: url(/f25/icons/star-light.svg);
}
@media (prefers-color-scheme: dark) {
  .sfHAN8IJ3l .star:before {
    content: url(/f25/icons/star-dark.svg);
  }
}
.sfHAN8IJ3l .star:before {
  width: var(--grid1);
  display: inline-block;
  position: relative;
  top: calc(var(--grid1) * 0.16);
  margin-top: -100%;
}

/* {root_path}/_widgets/hamburger */

@charset "UTF-8";
.sfvfl96yzv {
  display: contents;
  @charset "UTF-8";
}
.sfvfl96yzv .hamburger {
  width: 100%;
  height: 100%;
  --inset: var(--grid1⁄2);
  --size: calc(100% - var(--inset) * 2);
  --line-width: calc(var(--grid1) / 6);
}
.sfvfl96yzv .hamburger input {
  display: block;
  appearance: none;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.sfvfl96yzv .hamburger .lines {
  width: var(--size);
  height: var(--size);
  margin-bottom: calc(-1 * var(--size));
  position: relative;
  top: var(--inset);
  left: var(--inset);
  pointer-events: none;
}
.sfvfl96yzv .hamburger .lines .line {
  height: var(--line-width);
  width: 100%;
  border-radius: var(--line-width);
  background: var(--text-color);
  position: absolute;
  transition: transform 0.3s ease-in-out, top 0.3s ease-in-out, bottom 0.3s ease-in-out, width 0.3s ease-out;
}
.sfvfl96yzv .hamburger .lines .line:nth-child(1) {
  top: 0;
}
.sfvfl96yzv .hamburger .lines .line:nth-child(2) {
  top: calc(50% - var(--line-width) / 2);
}
.sfvfl96yzv .hamburger .lines .line:nth-child(3) {
  bottom: 0;
}
.sfvfl96yzv .hamburger:has(input:checked) .lines .line {
  --y-offset: calc(50% - var(--line-width) / 2);
}
.sfvfl96yzv .hamburger:has(input:checked) .lines .line:nth-child(1) {
  transform: rotate(-45deg);
  top: var(--y-offset);
}
.sfvfl96yzv .hamburger:has(input:checked) .lines .line:nth-child(2) {
  width: 0;
}
.sfvfl96yzv .hamburger:has(input:checked) .lines .line:nth-child(3) {
  transform: rotate(45deg);
  bottom: var(--y-offset);
}

/* {root_path}/_course_completed */

@charset "UTF-8";
.sfd2VooxG6 {
  display: contents;
  @charset "UTF-8";
}
.sfd2VooxG6 h1 .aside {
  display: block;
  margin: var(--grid1⁄2) 0;
}