astro-island,astro-slot,astro-static-slot{display:contents}

.notebook-viewer {
  margin: 1.5rem 0;
}
/* Colab banner — uses Fern's .fern-button styling */
.notebook-viewer__colab-banner {
  margin-bottom: 1rem;
}
/* Render the Colab link as a button, not a green prose link */
.notebook-viewer__colab-link,
.notebook-viewer__colab-link:hover,
.notebook-viewer__colab-link:visited,
.notebook-viewer__colab-link:focus-visible {
  color: white;
  text-decoration: none;
}
.notebook-viewer__colab-link .fern-button-text {
  color: inherit;
}
.notebook-viewer__cells {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.notebook-viewer__cell {
  margin: 0;
}
.notebook-viewer__cell--markdown .notebook-viewer__markdown {
  line-height: 1.6;
}
.notebook-viewer__cell--markdown .notebook-viewer__markdown h1,
.notebook-viewer__cell--markdown .notebook-viewer__markdown h2,
.notebook-viewer__cell--markdown .notebook-viewer__markdown h3,
.notebook-viewer__cell--markdown .notebook-viewer__markdown h4 {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}
.notebook-viewer__cell--markdown .notebook-viewer__markdown h1:first-child,
.notebook-viewer__cell--markdown .notebook-viewer__markdown h2:first-child,
.notebook-viewer__cell--markdown .notebook-viewer__markdown h3:first-child,
.notebook-viewer__cell--markdown .notebook-viewer__markdown h4:first-child {
  margin-top: 0;
}
.notebook-viewer__cell--markdown .notebook-viewer__markdown p {
  margin: 0.5rem 0;
}
/* Code block line numbers (Fern structure) — gutter + content */
.fern-scroll-area-viewport .code-block-line-gutter {
  padding-right: 1rem;
  padding-left: 1rem;
  text-align: right;
  user-select: none;
  color: var(--grayscale-a9, #6b7280);
  font-size: 0.875rem;
  line-height: 1.5;
}
.fern-scroll-area-viewport .code-block-line-content {
  padding-right: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.5;
}
.fern-scroll-area-viewport .code-block-line-content .line {
  display: block;
  min-width: min-content;
}
.code-block-line-content span[style*="border:"] {
  border: none !important;
}
.fern-feedback-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  color: var(--grayscale-a11, #374151);
  background: transparent;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  transition: color 0.15s, background-color 0.15s;
}
.fern-feedback-button:hover {
  color: var(--accent-11, #2563eb);
  background-color: var(--grayscale-a3, rgba(0, 0, 0, 0.05));
}
.notebook-viewer__markdown .external-link-icon {
  width: 1em;
  height: 1em;
  vertical-align: middle;
  margin-left: 0.125rem;
}
.notebook-viewer__copy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  color: var(--grayscale-a11, #374151);
  background: transparent;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  transition: color 0.15s, background-color 0.15s;
}
.notebook-viewer__copy-btn:hover {
  color: var(--accent-11, #2563eb);
  background-color: var(--grayscale-a3, rgba(0, 0, 0, 0.05));
}
.dark .notebook-viewer__copy-btn {
  color: var(--grayscale-a11, #9ca3af);
}
.dark .notebook-viewer__copy-btn:hover {
  color: var(--accent-11, #60a5fa);
  background-color: var(--grayscale-a3, rgba(255, 255, 255, 0.08));
}
.notebook-viewer__output-block {
  margin-top: 0.5rem !important;
}
.notebook-viewer__output-content {
  padding: 1rem 1.25rem;
}
.notebook-viewer__outputs-inner {
  overflow-x: auto;
}
.notebook-viewer__output-text,
.notebook-viewer__output-html {
  margin: 0;
  font-size: 0.875rem;
}
.notebook-viewer__output-text {
  overflow-x: auto;
  min-width: min-content;
}
.notebook-viewer__output-html table {
  border-collapse: collapse;
}
.notebook-viewer__output-html th,
.notebook-viewer__output-html td {
  border: 1px solid #e5e7eb;
  padding: 0.25rem 0.5rem;
}
.dark .notebook-viewer__output-html th,
.dark .notebook-viewer__output-html td {
  border-color: #374151;
}
.notebook-viewer__output-image {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}


pre { line-height: 125%; }
td.linenos .normal { color: #D8DEE9; background-color: #242933; padding-left: 5px; padding-right: 5px; }
span.linenos { color: #D8DEE9; background-color: #242933; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #242933; background-color: #D8DEE9; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #242933; background-color: #D8DEE9; padding-left: 5px; padding-right: 5px; }
.code .hll { background-color: #3B4252 }
.code { background: #2E3440; color: #D8DEE9 }
.code .c { color: #616E87; font-style: italic } /* Comment */
.code .err { color: #BF616A } /* Error */
.code .esc { color: #D8DEE9 } /* Escape */
.code .g { color: #D8DEE9 } /* Generic */
.code .k { color: #81A1C1; font-weight: bold } /* Keyword */
.code .l { color: #D8DEE9 } /* Literal */
.code .n { color: #D8DEE9 } /* Name */
.code .o { color: #81A1C1; font-weight: bold } /* Operator */
.code .x { color: #D8DEE9 } /* Other */
.code .p { color: #ECEFF4 } /* Punctuation */
.code .ch { color: #616E87; font-style: italic } /* Comment.Hashbang */
.code .cm { color: #616E87; font-style: italic } /* Comment.Multiline */
.code .cp { color: #5E81AC; font-style: italic } /* Comment.Preproc */
.code .cpf { color: #616E87; font-style: italic } /* Comment.PreprocFile */
.code .c1 { color: #616E87; font-style: italic } /* Comment.Single */
.code .cs { color: #616E87; font-style: italic } /* Comment.Special */
.code .gd { color: #BF616A } /* Generic.Deleted */
.code .ge { color: #D8DEE9; font-style: italic } /* Generic.Emph */
.code .ges { color: #D8DEE9; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.code .gr { color: #BF616A } /* Generic.Error */
.code .gh { color: #88C0D0; font-weight: bold } /* Generic.Heading */
.code .gi { color: #A3BE8C } /* Generic.Inserted */
.code .go { color: #D8DEE9 } /* Generic.Output */
.code .gp { color: #616E88; font-weight: bold } /* Generic.Prompt */
.code .gs { color: #D8DEE9; font-weight: bold } /* Generic.Strong */
.code .gu { color: #88C0D0; font-weight: bold } /* Generic.Subheading */
.code .gt { color: #BF616A } /* Generic.Traceback */
.code .kc { color: #81A1C1; font-weight: bold } /* Keyword.Constant */
.code .kd { color: #81A1C1; font-weight: bold } /* Keyword.Declaration */
.code .kn { color: #81A1C1; font-weight: bold } /* Keyword.Namespace */
.code .kp { color: #81A1C1 } /* Keyword.Pseudo */
.code .kr { color: #81A1C1; font-weight: bold } /* Keyword.Reserved */
.code .kt { color: #81A1C1 } /* Keyword.Type */
.code .ld { color: #D8DEE9 } /* Literal.Date */
.code .m { color: #B48EAD } /* Literal.Number */
.code .s { color: #A3BE8C } /* Literal.String */
.code .na { color: #8FBCBB } /* Name.Attribute */
.code .nb { color: #81A1C1 } /* Name.Builtin */
.code .nc { color: #8FBCBB } /* Name.Class */
.code .no { color: #8FBCBB } /* Name.Constant */
.code .nd { color: #D08770 } /* Name.Decorator */
.code .ni { color: #D08770 } /* Name.Entity */
.code .ne { color: #BF616A } /* Name.Exception */
.code .nf { color: #88C0D0 } /* Name.Function */
.code .nl { color: #D8DEE9 } /* Name.Label */
.code .nn { color: #8FBCBB } /* Name.Namespace */
.code .nx { color: #D8DEE9 } /* Name.Other */
.code .py { color: #D8DEE9 } /* Name.Property */
.code .nt { color: #81A1C1 } /* Name.Tag */
.code .nv { color: #D8DEE9 } /* Name.Variable */
.code .ow { color: #81A1C1; font-weight: bold } /* Operator.Word */
.code .pm { color: #ECEFF4 } /* Punctuation.Marker */
.code .w { color: #D8DEE9 } /* Text.Whitespace */
.code .mb { color: #B48EAD } /* Literal.Number.Bin */
.code .mf { color: #B48EAD } /* Literal.Number.Float */
.code .mh { color: #B48EAD } /* Literal.Number.Hex */
.code .mi { color: #B48EAD } /* Literal.Number.Integer */
.code .mo { color: #B48EAD } /* Literal.Number.Oct */
.code .sa { color: #A3BE8C } /* Literal.String.Affix */
.code .sb { color: #A3BE8C } /* Literal.String.Backtick */
.code .sc { color: #A3BE8C } /* Literal.String.Char */
.code .dl { color: #A3BE8C } /* Literal.String.Delimiter */
.code .sd { color: #616E87 } /* Literal.String.Doc */
.code .s2 { color: #A3BE8C } /* Literal.String.Double */
.code .se { color: #EBCB8B } /* Literal.String.Escape */
.code .sh { color: #A3BE8C } /* Literal.String.Heredoc */
.code .si { color: #A3BE8C } /* Literal.String.Interpol */
.code .sx { color: #A3BE8C } /* Literal.String.Other */
.code .sr { color: #EBCB8B } /* Literal.String.Regex */
.code .s1 { color: #A3BE8C } /* Literal.String.Single */
.code .ss { color: #A3BE8C } /* Literal.String.Symbol */
.code .bp { color: #81A1C1 } /* Name.Builtin.Pseudo */
.code .fm { color: #88C0D0 } /* Name.Function.Magic */
.code .vc { color: #D8DEE9 } /* Name.Variable.Class */
.code .vg { color: #D8DEE9 } /* Name.Variable.Global */
.code .vi { color: #D8DEE9 } /* Name.Variable.Instance */
.code .vm { color: #D8DEE9 } /* Name.Variable.Magic */
.code .il { color: #B48EAD } /* Literal.Number.Integer.Long */

.code {
  padding: 4px;
  border: 1px solid grey;
  border-radius: 4px;
  max-width: 1000px;
  width: 100%;
  display: inline-block;
  box-sizing: border-box;
  text-align: left;
  vertical-align: top;
  line-height: normal;
  overflow-x: auto;
}

.code pre {
  white-space: pre-wrap;       /* CSS 3 */
  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
  white-space: -pre-wrap;      /* Opera 4-6 */
  white-space: -o-pre-wrap;    /* Opera 7 */
  word-wrap: break-word;
  overflow-wrap: break-word;
  margin: 0;
}

[data-radix-scroll-area-viewport]{scrollbar-width:thin;scrollbar-color:var(--grayscale-a7) transparent;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{height:8px;width:8px;}[data-radix-scroll-area-viewport]::-webkit-scrollbar-track{background:transparent;}[data-radix-scroll-area-viewport]::-webkit-scrollbar-thumb{background:var(--grayscale-a7);border-radius:9999px;}