pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--bg: #f6f8fa;--surface: #ffffff;--surface-2: #f0f3f6;--border: #d8dee4;--fg: #1f2328;--fg-muted: #59636e;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-soft: rgba(37, 99, 235, .1);--ok: #1a7f37;--danger: #cf222e;--shadow: 0 1px 3px rgba(31, 35, 40, .08), 0 4px 12px rgba(31, 35, 40, .06);--radius: 10px;--radius-sm: 6px;--sidebar-w: 300px;--topbar-h: 56px;--max-w: 980px}[data-theme=dark]{--bg: #0d1117;--surface: #161b22;--surface-2: #1c2128;--border: #30363d;--fg: #e6edf3;--fg-muted: #9da7b3;--accent: #58a6ff;--accent-strong: #79c0ff;--accent-soft: rgba(88, 166, 255, .14);--ok: #3fb950;--danger: #f85149;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;background:var(--bg);color:var(--fg);line-height:1.6;transition:background-color .2s ease,color .2s ease}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.skip-link{position:fixed;top:-48px;left:12px;z-index:100;padding:8px 14px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);transition:top .15s ease}.skip-link:focus{top:12px;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layout{min-height:100vh}.sidebar{position:fixed;top:0;bottom:0;left:0;width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:50;transition:transform .25s ease}.sidebar__brand{display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--border);color:var(--fg);font-weight:700}.sidebar__brand:hover{text-decoration:none}.sidebar__brand-icon{font-size:1.5rem}.sidebar__brand-text{display:flex;flex-direction:column;font-size:.95rem;line-height:1.2}.sidebar__brand-text small{font-weight:400;color:var(--fg-muted);font-size:.75rem}.sidebar__nav{flex:1;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:2px}.sidebar__link{display:flex;align-items:baseline;gap:8px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--fg);font-size:.9rem;line-height:1.4}.sidebar__link:hover{background:var(--surface-2);text-decoration:none}.sidebar__link--active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.sidebar__short{flex-shrink:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);min-width:64px}.sidebar__link--active .sidebar__short{color:var(--accent)}.sidebar__title{min-width:0}.sidebar__foot{margin:0;padding:14px 20px;border-top:1px solid var(--border);font-size:.72rem;color:var(--fg-muted)}.layout__scrim{display:none}.layout__main{margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 20px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border)}.topbar__hamburger{display:none;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);font-size:1.05rem;width:36px;height:36px;cursor:pointer}.topbar__title{flex:1;font-size:.9rem;font-weight:600;color:var(--fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;width:36px;height:36px;cursor:pointer;color:var(--fg)}.theme-toggle:hover{background:var(--surface-2)}.layout__content{flex:1;width:100%;max-width:var(--max-w);margin:0 auto;padding:28px 24px 48px}.layout__footer{border-top:1px solid var(--border);padding:18px 24px;text-align:center;font-size:.8rem;color:var(--fg-muted)}.hero{padding:24px 0 8px}.hero__title{margin:0 0 8px;font-size:2.1rem;line-height:1.2;letter-spacing:-.02em}.hero__subtitle{margin:0;max-width:640px;color:var(--fg-muted);font-size:1.02rem}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:28px 0 8px}.module-card{display:flex;flex-direction:column;gap:10px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--fg);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.module-card:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--accent);box-shadow:0 4px 16px #1f23281f}.module-card__badge{align-self:flex-start;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-strong);background:var(--accent-soft);padding:3px 10px;border-radius:999px}.module-card__title{margin:0;font-size:1.02rem;line-height:1.4}.module-card__chips{display:flex;flex-wrap:wrap;gap:6px}.module-card__cta{margin-top:auto;font-size:.85rem;font-weight:600;color:var(--accent)}.chip{display:inline-block;font-size:.75rem;padding:2px 10px;border-radius:999px;border:1px solid var(--border);color:var(--fg-muted);background:var(--surface)}.chip--level{color:var(--accent-strong);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:var(--accent-soft)}.page__section{margin-top:32px}.module-header{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.module-header__badge{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-strong);background:var(--accent-soft);padding:4px 12px;border-radius:999px;margin-bottom:10px}.module-header__title{margin:0 0 10px;font-size:1.8rem;line-height:1.25;letter-spacing:-.015em}.module-header__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.module-header__prereq{margin:0;color:var(--fg-muted);font-size:.9rem}.module-body{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:28px;align-items:start}.toc{position:sticky;top:calc(var(--topbar-h) + 16px);max-height:calc(100vh - var(--topbar-h) - 32px);overflow-y:auto;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem}.toc__title{margin:0 0 8px;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted)}.toc__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.toc__link{display:block;padding:4px 8px;border-radius:var(--radius-sm);color:var(--fg);line-height:1.35}.toc__link:hover{background:var(--surface-2);text-decoration:none}.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px;padding-top:20px;border-top:1px solid var(--border)}.prevnext__link{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);transition:border-color .15s ease}.prevnext__link:hover{text-decoration:none;border-color:var(--accent)}.prevnext__link--next{text-align:right}.prevnext__dir{font-size:.75rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em}.prevnext__title{font-weight:600;font-size:.95rem}.prevnext__spacer{display:none}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{scroll-margin-top:calc(var(--topbar-h) + 16px);line-height:1.3;letter-spacing:-.01em}.md h1{font-size:1.7rem;margin:1.4em 0 .6em}.md h2{font-size:1.35rem;margin:1.6em 0 .6em;padding-bottom:6px;border-bottom:1px solid var(--border)}.md h3{font-size:1.12rem;margin:1.3em 0 .5em}.md h4{font-size:1rem;margin:1.1em 0 .4em}.md p{margin:.7em 0}.md ul,.md ol{padding-left:1.5em;margin:.7em 0}.md li{margin:.25em 0}.md li>ul,.md li>ol{margin:.2em 0}.md blockquote{margin:1em 0;padding:4px 16px;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--fg)}.md blockquote p{margin:.4em 0}.md hr{border:none;border-top:1px solid var(--border);margin:1.6em 0}.md :not(pre)>code{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.1em .35em;font-size:.86em}.md a code{color:inherit}.md img{max-width:100%;border-radius:var(--radius-sm)}.table-wrap{overflow-x:auto;margin:1em 0;border:1px solid var(--border);border-radius:var(--radius-sm)}.md table{border-collapse:collapse;width:100%;font-size:.92rem}.md th,.md td{border:1px solid var(--border);padding:8px 12px;text-align:left;vertical-align:top}.md th{background:var(--surface-2);font-weight:600}.md tr:nth-child(2n) td{background:color-mix(in srgb,var(--surface-2) 45%,transparent)}.code-block{margin:1em 0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.code-block__header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--surface-2);border-bottom:1px solid var(--border)}.code-block__lang{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted)}.code-block__copy{font-size:.75rem;padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg);cursor:pointer}.code-block__copy:hover{border-color:var(--accent);color:var(--accent-strong)}.code-block__pre{margin:0;padding:14px 16px;overflow-x:auto;background:#24292e;line-height:1.55;font-size:.85rem;-moz-tab-size:2;tab-size:2}.code-block__pre code{background:none;border:none;padding:0;font-size:inherit;color:#c9d1d9}.page--404{text-align:center;padding:72px 16px}.page--404__code{font-size:4.5rem;margin:0;color:var(--fg-muted)}.page--404__text{color:var(--fg-muted);margin:8px 0 20px}.page--404__back{font-weight:600}@media(max-width:920px){.sidebar{transform:translate(-100%);box-shadow:0 0 40px #00000040}.sidebar--open{transform:translate(0)}.layout__scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;border:none;z-index:45;opacity:0;pointer-events:none;transition:opacity .25s ease}.layout__scrim--visible{opacity:1;pointer-events:auto}.layout__main{margin-left:0}.topbar__hamburger{display:block}.module-body{grid-template-columns:minmax(0,1fr)}.toc{position:static;max-height:none;order:-1}}@media(max-width:560px){.layout__content{padding:20px 16px 40px}.hero__title{font-size:1.6rem}.module-header__title{font-size:1.45rem}.prevnext{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
