@charset "UTF-8";
@font-face {
  font-family: "AtkinsonHyperlegibleNext";
  font-style: regular;
  font-weight: 300;
  font-display: block;
  src: local("AtkinsonHyperlegibleNext"), url("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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("/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;
  --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));
  --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));
}
@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;
    --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));
    --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));
  }
}

html {
  line-height: var(--grid5⁄4);
  --small-font-size: 85%;
  --paragraph-spacing: 0.8em;
  --top-bar-height: var(--grid5⁄2);
}
html h1 {
  font-size: 1.6rem;
  line-height: calc(round(1.6rem * 1.2 / var(--grid1⁄4)) * var(--grid1⁄4));
}
html h2 {
  font-size: 1.28rem;
}
html h3, html h2.small {
  font-size: 1.072rem;
}

body, html {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  letter-spacing: normal;
  margin: 0;
  padding: 0;
  background-color: var(--background-color);
  color: var(--text-color);
  scroll-padding-top: calc(var(--top-bar-height) * 1.5);
}
body:has(article.large-article), html:has(article.large-article) {
  scroll-padding-top: calc(var(--top-bar-height) * 2);
}

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;
    line-height: calc(round(1.8rem * 1.2 / var(--grid1⁄4)) * var(--grid1⁄4));
  }
  article.instructions h2 {
    font-size: 1.44rem;
  }
  article.instructions h3, article.instructions h2.small {
    font-size: 1.206rem;
  }
}
article.instructions h2 {
  margin-top: var(--grid2);
}
article.large-article {
  margin: 0 auto;
}
@media all and (min-width: 42em) {
  article.large-article h1 {
    font-size: 2rem;
    line-height: calc(round(2rem * 1.2 / var(--grid1⁄4)) * var(--grid1⁄4));
  }
  article.large-article h2 {
    font-size: 1.6rem;
  }
  article.large-article h3, article.large-article h2.small {
    font-size: 1.34rem;
  }
}
article.large-article h2 {
  margin-top: var(--grid3⁄2);
}
@media all and (min-width: 60em) {
  article.large-article h1, article.large-article h2 {
    margin-top: var(--grid2);
  }
}

.prose {
  font-family: AtkinsonHyperlegibleNext, Palatino, Georgia, Serif;
  letter-spacing: 1.5%;
  font-weight: 300;
  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 {
  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(--grid3⁄2);
}
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: 92%;
  letter-spacing: -2%;
  line-height: var(--grid1);
  color: var(--code-color);
}

code {
  white-space: preserve;
}

pre code {
  white-space: unset;
}

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

.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;
}

.aside {
  display: inline-block;
  margin-left: 1ex;
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  letter-spacing: normal;
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  font-weight: normal;
  font-size: 1rem;
}

.metadata-item {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  letter-spacing: normal;
  display: flex;
  flex-direction: row;
}
.metadata-item .label {
  width: var(--grid5);
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  text-align: right;
  margin-right: var(--grid1⁄2);
}

.related-links {
  display: flex;
}
.related-links:before {
  content: url(/icons/link-arrow-light.svg);
}
@media (prefers-color-scheme: dark) {
  .related-links:before {
    content: url(/icons/link-arrow-dark.svg);
  }
}
.related-links:before {
  width: 0.6em;
  display: inline-block;
}
.related-links a {
  padding: 0 var(--grid1⁄2);
}
.related-links a:first-child {
  padding-left: none;
}
.related-links a + a {
  border-left: 1px solid var(--meta-text-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;
}

/* {assignment.type.dir_name}/_date_metadata */

.sfSrhn-7oH {
  display: contents;
}
.sfSrhn-7oH .meta {
  font-family: AtkinsonHyperlegibleNext, "Avenir Next", Verdana, Sans-serif;
  letter-spacing: normal;
}

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

.sfyb58ux1v {
  display: contents;
}
.sfyb58ux1v .links {
  margin: var(--grid1);
}
.sfyb58ux1v .links .primary {
  font-weight: bold;
}

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

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

/* schedule/_item_group */

.sfkLVDjvdT {
  display: contents;
}
.sfkLVDjvdT .note {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
}
.sfkLVDjvdT .note-before {
  display: inline;
}
.sfkLVDjvdT .note-after {
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
}

/* schedule/index.html */

@charset "UTF-8";
.sfRKW34JMj {
  display: contents;
  @charset "UTF-8";
}
.sfRKW34JMj .warning {
  font-style: italic;
  margin: var(--grid1) 0;
}
.sfRKW34JMj .schedule {
  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);
}
.sfRKW34JMj .schedule .heading {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  height: var(--grid1);
  padding-top: var(--grid1⁄2);
  position: sticky;
  top: var(--top-bar-height);
  z-index: 100;
}
.sfRKW34JMj .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));
}
.sfRKW34JMj .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;
}
.sfRKW34JMj .schedule .row {
  display: contents;
}
.sfRKW34JMj .schedule .row > * {
  grid-row: var(--row-index);
}
.sfRKW34JMj .schedule .date {
  grid-column: 1;
}
.sfRKW34JMj .schedule .date .formatted-date {
  margin-left: var(--grid1⁄2);
  display: flex;
  flex: row;
}
.sfRKW34JMj .schedule .date .formatted-date .weekday {
  width: var(--grid2);
  text-align: right;
}
.sfRKW34JMj .schedule .date .formatted-date .weekday:after {
  content: " ";
}
.sfRKW34JMj .schedule .topic {
  grid-column: 2;
  min-width: 16em;
}
.sfRKW34JMj .schedule .break {
  grid-column: 1/7;
  background: color-mix(in display-p3, var(--text-color) 40%, var(--background-color));
  color: var(--background-hot-color);
  text-align: center;
  font-weight: bold;
}
.sfRKW34JMj .schedule .course-topic {
  grid-column: 1/7;
  padding-left: calc(8em + var(--grid1));
  font-weight: bold;
  background: color-mix(in display-p3, var(--text-color) 10%, var(--background-color));
}
.sfRKW34JMj .schedule .break, .sfRKW34JMj .schedule .course-topic {
  padding-top: var(--grid1⁄4);
  padding-bottom: var(--grid1⁄4);
  margin: calc(-0.5 * var(--grid1⁄2)) 0;
}
.sfRKW34JMj .schedule .assignment {
  grid-column-start: var(--column);
  grid-row-start: calc(var(--start-timeline-index) + 1);
  min-width: 10em;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sfRKW34JMj .schedule .assignment .item + .item {
  margin-top: var(--grid1⁄4);
}
.sfRKW34JMj .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;
}
.sfRKW34JMj .schedule .bubble a:not(:hover):not(:active) {
  text-decoration: none;
}
.sfRKW34JMj .schedule .bubble a:not(:hover):not(:active) {
  color: color-mix(in display-p3, var(--action-color), var(--strong-color) 25%);
}
.sfRKW34JMj .schedule .bubble:hover {
  border-color: color-mix(in display-p3, var(--bubble-bg), var(--text-color) 33%);
  z-index: 2;
  cursor: pointer;
}
.sfRKW34JMj .schedule .bubble .metadata {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  font-size: calc(var(--unresponsive-grid) * 3 / 5);
  line-height: calc(var(--unresponsive-grid) * 3 / 4);
}
.sfRKW34JMj .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;
}

/* schedule/_announcement */

@charset "UTF-8";
.sfQM8hjHHW {
  display: contents;
  @charset "UTF-8";
}
.sfQM8hjHHW .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);
}

/* schedule/_day */

.sfuD_uR8-g {
  display: contents;
}

/* _calendar/sources */

@charset "UTF-8";
.sfbAUKQRJh {
  display: contents;
  @charset "UTF-8";
}
.sfbAUKQRJh ul.sources {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
}
.sfbAUKQRJh ul.sources li {
  margin: 0;
}
.sfbAUKQRJh ul.sources .name {
  display: inline-block;
  width: 7em;
}
.sfbAUKQRJh ul.sources .links {
  display: inline-block;
}
@container main-content (min-width: 24em) {
  .sfbAUKQRJh ul.sources {
    list-style-type: disc;
    padding-left: var(--grid3⁄2);
  }
  .sfbAUKQRJh ul.sources li::marker {
    color: var(--meta-text-color);
  }
}

/* _calendar/events */

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

/* index.html */

@charset "UTF-8";
.sfy2sNKiN1 {
  display: contents;
  @charset "UTF-8";
}
.sfy2sNKiN1 .assignments .new-day {
  margin-top: var(--grid1⁄2);
}
.sfy2sNKiN1 .recently-due {
  margin: var(--grid1) 0;
}
.sfy2sNKiN1 .recently-due summary {
  cursor: pointer;
}
.sfy2sNKiN1 .recently-due summary:hover {
  color: var(--action-color);
}

/* _document/content */

@charset "UTF-8";
.sfWqQxMBPF {
  display: contents;
  @charset "UTF-8";
}
.sfWqQxMBPF .document-content .sticky-header {
  position: sticky;
  top: var(--top-bar-height);
  z-index: 100;
}
.sfWqQxMBPF .document-content .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));
}
.sfWqQxMBPF .document-content .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;
}
.sfWqQxMBPF .document-content .title-image {
  width: 100%;
  max-width: var(--grid16);
  margin: var(--grid1) auto;
}
@media all and (max-width: 42em) {
  .sfWqQxMBPF .document-content .title-image {
    display: block;
  }
}
@media all and (min-width: 42em) {
  .sfWqQxMBPF .document-content .title-image {
    float: right;
    margin: 0 0 var(--grid1⁄2) var(--grid1);
    max-width: 33%;
  }
}
.sfWqQxMBPF .document-content nav.toc h2 {
  font-size: var(--grid1);
  color: var(--meta-text-color);
  margin-top: 0;
}
.sfWqQxMBPF .document-content nav.toc ul, .sfWqQxMBPF .document-content nav.toc li {
  margin: 0;
  text-align: left;
}
.sfWqQxMBPF .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));
}
.sfWqQxMBPF .document-content .muted {
  opacity: 0.4;
}
.sfWqQxMBPF .document-content .hidden, .sfWqQxMBPF .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;
}
.sfWqQxMBPF .document-content .hidden.at-container-start, .sfWqQxMBPF .document-content .hidden-block.at-container-start {
  margin-left: -1ex;
}
.sfWqQxMBPF .document-content .hidden, .sfWqQxMBPF .document-content .hidden-block {
  cursor: pointer;
}
.sfWqQxMBPF .document-content .hidden:hover, .sfWqQxMBPF .document-content .hidden-block:hover {
  outline-color: var(--text-color);
}
.sfWqQxMBPF .document-content .hidden, .sfWqQxMBPF .document-content .hidden-block {
  transition: background 0.5s ease-out, color 0.5s ease-out;
}
.sfWqQxMBPF .document-content .hidden *, .sfWqQxMBPF .document-content .hidden-block * {
  transition: opacity 0.5s ease-out, color 0.5s ease-out;
}
.sfWqQxMBPF .document-content .hidden:not(.revealed), .sfWqQxMBPF .document-content .hidden-block:not(.revealed) {
  color: transparent !important;
}
.sfWqQxMBPF .document-content .hidden:not(.revealed) *, .sfWqQxMBPF .document-content .hidden-block:not(.revealed) * {
  opacity: 0 !important;
}
.sfWqQxMBPF .document-content .hidden.revealed, .sfWqQxMBPF .document-content .hidden-block.revealed {
  background: var(--meta-background-mild);
  outline-color: var(--meta-background-hot);
}
.sfWqQxMBPF .document-content .hidden:not(.revealed) *, .sfWqQxMBPF .document-content .hidden-block:not(.revealed) * {
  pointer-events: none;
}
.sfWqQxMBPF .document-content .hidden-block:has(pre) {
  padding: 0;
}
.sfWqQxMBPF .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;
}
.sfWqQxMBPF .document-content span.highlight.at-container-start {
  margin-left: -0.66ex;
}
.sfWqQxMBPF .document-content span.highlight {
  --outline: transparent;
}
@media (prefers-contrast: more) {
  .sfWqQxMBPF .document-content span.highlight {
    --outline: var(--highlight-border);
  }
}
.sfWqQxMBPF .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;
}
.sfWqQxMBPF .document-content .def.at-container-start {
  margin-left: -0.66ex;
}
.sfWqQxMBPF .document-content .def {
  color: var(--strong-color);
}
.sfWqQxMBPF .document-content .meta {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
}
.sfWqQxMBPF .document-content .error {
  color: var(--error-color);
  --strong-color: var(--error-color);
}
.sfWqQxMBPF .document-content .callout, .sfWqQxMBPF .document-content .definition-callout {
  display: block;
  margin: var(--grid3⁄2) var(--grid2);
  padding: 0 var(--grid1);
  border: 1px solid black;
}
@media all and (max-width: 32em) {
  .sfWqQxMBPF .document-content .callout, .sfWqQxMBPF .document-content .definition-callout {
    margin: var(--grid1) 0;
  }
}
.sfWqQxMBPF .document-content .definition-callout {
  border-color: var(--definition-border);
  background: var(--definition-background);
}
.sfWqQxMBPF .document-content .definition-callout .def {
  --definition-border: transparent;
  font-weight: bold;
}
.sfWqQxMBPF .document-content .callout {
  border-color: var(--highlight-border);
  background: color-mix(in display-p3, var(--highlight-background) 20%, var(--background-color));
}
.sfWqQxMBPF .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));
  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);
}
.sfWqQxMBPF .document-content .ghost {
  color: color-mix(in display-p3, var(--text-color) 20%, var(--background-color));
}
@media (prefers-contrast: more) {
  .sfWqQxMBPF .document-content .ghost {
    color: color-mix(in display-p3, var(--text-color) 50%, var(--background-color));
  }
}
.sfWqQxMBPF .document-content table {
  margin: var(--grid2);
  border: 0.5px solid var(--group-border-color);
}
.sfWqQxMBPF .document-content table th, .sfWqQxMBPF .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;
}
.sfWqQxMBPF .document-content table.compact {
  margin: 0;
  margin-bottom: var(--grid1);
  border: none;
}
.sfWqQxMBPF .document-content table.compact th, .sfWqQxMBPF .document-content table.compact td {
  border: none;
  padding: var(--grid1⁄4) 0;
  padding-right: var(--grid1);
  line-height: var(--grid1);
}
.sfWqQxMBPF .document-content table.compact thead th {
  border-bottom: 0.5px solid var(--group-border-color);
  padding-bottom: var(--grid1⁄4);
}
.sfWqQxMBPF .document-content table.compact thead:after {
  content: " ";
  display: block;
  height: var(--grid1⁄4);
}
.sfWqQxMBPF .document-content .big-table {
  margin: var(--grid2) var(--grid1);
}
@media all and (max-width: 48em) {
  .sfWqQxMBPF .document-content .big-table {
    margin: var(--grid2) 0;
  }
}
.sfWqQxMBPF .document-content .big-table .row {
  display: grid;
  gap: var(--grid1);
  border-bottom: 0.5px solid var(--meta-text-color);
  padding: var(--grid1);
  --syntax-width: var(--grid12);
}
.sfWqQxMBPF .document-content .big-table .row.header {
  border-bottom-width: 2px;
  padding: 0 var(--grid1) var(--grid1⁄2);
  row-gap: 0;
}
.sfWqQxMBPF .document-content .big-table .row .cell p {
  margin: 0;
}
.sfWqQxMBPF .document-content .big-table .row .cell p + p {
  margin-top: var(--grid1⁄2);
}
@media all and (max-width: 42em) {
  .sfWqQxMBPF .document-content .big-table .row {
    grid-template-columns: 1fr;
    grid-template-areas: "prefix" "syntax" "terminology" "semantics" "commentary";
  }
  .sfWqQxMBPF .document-content .big-table .row.header:before {
    content: "In each row below:";
    display: block;
    grid-area: prefix;
    margin-bottom: var(--grid1⁄2);
  }
  .sfWqQxMBPF .document-content .big-table .row.header .cell {
    margin-left: var(--grid1);
  }
}
@media all and (min-width: 42em) {
  .sfWqQxMBPF .document-content .big-table .row.header {
    grid-template-areas: "syntax terminology semantics commentary";
    grid-template-columns: var(--syntax-width) max-content 1fr;
  }
  .sfWqQxMBPF .document-content .big-table .row.header .terminology p:after {
    content: "/";
    color: var(--meta-text-color);
    --strong-color: var(--meta-text-color);
    font-weight: 300;
    letter-spacing: 0.02ex;
    margin: 1ex;
  }
  .sfWqQxMBPF .document-content .big-table .row.header .terminology {
    margin-right: calc(-1 * var(--grid1));
  }
  .sfWqQxMBPF .document-content .big-table .row.body {
    grid-template-areas: "syntax terminology" "syntax semantics  " "syntax commentary ";
    grid-template-columns: var(--syntax-width) 1fr;
  }
}
.sfWqQxMBPF .document-content .big-table .row .syntax {
  grid-area: syntax;
  overflow: auto;
  scrollbar-width: thin;
}
.sfWqQxMBPF .document-content .big-table .row .syntax p {
  font-family: AtkinsonHyperlegibleMono, Menlo, Consolis, monospace;
  font-size: 92%;
  letter-spacing: -2%;
  line-height: var(--grid1);
  color: var(--code-color);
  white-space: pre;
}
.sfWqQxMBPF .document-content .big-table .row .terminology {
  grid-area: terminology;
  color: var(--definition-text);
}
.sfWqQxMBPF .document-content .big-table .row .terminology .def {
  color: --strong-color;
}
.sfWqQxMBPF .document-content .big-table .row .terminology ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sfWqQxMBPF .document-content .big-table .row .terminology ul li {
  margin: 0;
}
.sfWqQxMBPF .document-content .big-table .row .semantics {
  grid-area: semantics;
  font-style: italic;
}
.sfWqQxMBPF .document-content .big-table .row .commentary {
  grid-area: commentary;
  border-left: var(--grid1⁄4) solid var(--group-border-color);
  padding-left: var(--grid3⁄4);
}
.sfWqQxMBPF .document-content .big-table .row.header {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
}
.sfWqQxMBPF .document-content details {
  margin: var(--paragraph-spacing) 0;
  margin-left: var(--grid1);
}
.sfWqQxMBPF .document-content details summary {
  display: flex;
  margin-left: calc(-1 * var(--grid1));
  cursor: pointer;
}
.sfWqQxMBPF .document-content details summary:before {
  content: "▶︎";
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  width: var(--grid1);
}
.sfWqQxMBPF .document-content details summary:hover {
  color: var(--action-color);
}
.sfWqQxMBPF .document-content details summary:hover:before {
  color: var(--action-color);
}
.sfWqQxMBPF .document-content details summary > p {
  margin: 0;
}
.sfWqQxMBPF .document-content details[open] summary:before {
  content: "▼";
}

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

.sfRBs2Rp9U {
  display: contents;
}
.sfRBs2Rp9U .assignments {
  display: table;
}
.sfRBs2Rp9U .assignments .assignment {
  display: table-row;
}
.sfRBs2Rp9U .assignments .assignment .link, .sfRBs2Rp9U .assignments .assignment .date {
  display: table-cell;
}
.sfRBs2Rp9U .assignments .assignment .date {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  width: var(--grid6);
}
.sfRBs2Rp9U .assignments .assignment .date .weekday {
  display: inline-block;
  width: calc(var(--grid1) * 5 / 2);
  text-align: right;
}
.sfRBs2Rp9U .assignments .assignment .date .no-date {
  display: inline-block;
  width: 100%;
  text-align: center;
}

/* _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 summary {
  cursor: pointer;
}
.build-errors[open] summary:after {
  content: " Site build warnings";
  font-weight: bold;
}
.build-errors[open] summary {
  margin-bottom: 0.5em;
}

/* _layout/top_bar */

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

/* _layout/sidebar */

@charset "UTF-8";
.sfHRvZAwB_ {
  display: contents;
  @charset "UTF-8";
}
.sfHRvZAwB_ .sidebar {
  padding: var(--content-margin) var(--grid1);
}
.sfHRvZAwB_ .sidebar a:not(:hover):not(:active) {
  text-decoration: none;
  color: inherit;
  --strong-color: inherit;
}
@media all and (min-width: 42em) {
  .sfHRvZAwB_ .sidebar {
    font-size: calc(var(--unresponsive-grid) * 3 / 4);
    line-height: calc(var(--unresponsive-grid));
  }
}
.sfHRvZAwB_ .sections > li {
  margin-bottom: var(--grid1);
  font-weight: bold;
}
.sfHRvZAwB_ .sections > li ul {
  margin: var(--grid1⁄4) var(--grid1);
  margin-right: 0;
  font-weight: normal;
}
.sfHRvZAwB_ .sections ul {
  list-style-type: disc;
  padding-left: var(--grid3⁄2);
}
.sfHRvZAwB_ .sections ul li::marker {
  color: var(--meta-text-color);
}
.sfHRvZAwB_ .sections ul {
  padding-left: 0;
}
.sfHRvZAwB_ .build-time {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  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);
}

/* _widgets/hamburger */

@charset "UTF-8";
.sf8kzsBx8D {
  display: contents;
  @charset "UTF-8";
}
.sf8kzsBx8D .hamburger {
  width: 100%;
  height: 100%;
  --inset: var(--grid1⁄2);
  --size: calc(100% - var(--inset) * 2);
  --line-width: calc(var(--grid1) / 6);
}
.sf8kzsBx8D .hamburger input {
  display: block;
  appearance: none;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.sf8kzsBx8D .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;
}
.sf8kzsBx8D .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;
}
.sf8kzsBx8D .hamburger .lines .line:nth-child(1) {
  top: 0;
}
.sf8kzsBx8D .hamburger .lines .line:nth-child(2) {
  top: calc(50% - var(--line-width) / 2);
}
.sf8kzsBx8D .hamburger .lines .line:nth-child(3) {
  bottom: 0;
}
.sf8kzsBx8D .hamburger:has(input:checked) .lines .line {
  --y-offset: calc(50% - var(--line-width) / 2);
}
.sf8kzsBx8D .hamburger:has(input:checked) .lines .line:nth-child(1) {
  transform: rotate(-45deg);
  top: var(--y-offset);
}
.sf8kzsBx8D .hamburger:has(input:checked) .lines .line:nth-child(2) {
  width: 0;
}
.sf8kzsBx8D .hamburger:has(input:checked) .lines .line:nth-child(3) {
  transform: rotate(45deg);
  bottom: var(--y-offset);
}

/* _widgets/assignment_link */

.sfWWMiJu-_ {
  display: contents;
}
.sfWWMiJu-_ .name, .sfWWMiJu-_ .type {
  display: inline;
}
.sfWWMiJu-_ .type {
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
}
.sfWWMiJu-_ .type:after {
  content: ":";
}
.sfWWMiJu-_ .due-date {
  display: inline;
  font-size: calc(var(--unresponsive-grid) * 3 / 4);
  line-height: calc(var(--unresponsive-grid));
  color: var(--meta-text-color);
  --strong-color: var(--meta-text-color);
  font-weight: 300;
  letter-spacing: 0.02ex;
  margin-left: 1ex;
}
.sfWWMiJu-_ .future a:not(:hover):not(:active) {
  text-decoration: none;
}
.sfWWMiJu-_ .future {
  --action-color: var(--text-color);
}
.sfWWMiJu-_ .future a {
  text-decoration-color: color-mix(in display-p3, var(--text-color), var(--background-color)) !important;
}