:root{color-scheme:light;--color-bg: #ffffff;--color-panel: #ffffff;--color-sidebar: #ffffff;--color-control: #f8fafc;--color-text: #111827;--color-muted: #64748b;--color-border: #dbe3ef;--color-border-subtle: #e8edf5;--color-border-strong: #b8c4d6;--color-accent: #2563eb;--color-accent-strong: #1d4ed8;--color-active-bg: #eaf2ff;--color-hover: #f6f8fa;--color-sidebar-link: #334155;--color-focus-ring: rgba(37, 99, 235, .16);--color-code-bg: #eef2f7;--color-toggle-track: #cbd5e1;--color-toggle-thumb: #ffffff;--shadow-panel: 0 10px 28px rgba(15, 23, 42, .04)}:root[data-theme=dark]{color-scheme:dark;--color-bg: #10151f;--color-panel: #10151f;--color-sidebar: #10151f;--color-control: #161e2e;--color-text: #e5e7eb;--color-muted: #9ca3af;--color-border: #273449;--color-border-subtle: #1f2a3d;--color-border-strong: #42526a;--color-accent: #7dd3fc;--color-accent-strong: #bae6fd;--color-active-bg: rgba(14, 165, 233, .16);--color-hover: rgba(148, 163, 184, .12);--color-sidebar-link: #cbd5e1;--color-focus-ring: rgba(125, 211, 252, .2);--color-code-bg: #1f2937;--color-toggle-track: #2563eb;--color-toggle-thumb: #dbeafe;--shadow-panel: 0 18px 40px rgba(0, 0, 0, .24)}*{box-sizing:border-box}html{min-width:320px;background:var(--color-bg);font-size:16px}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:1rem;line-height:1.75;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}main{min-width:0}.content{width:100%;max-width:76ch;margin-inline:auto;box-sizing:border-box;padding:0 0 64px}.content h1,.content h2,.content h3,.content h4,.content h5{color:var(--color-text);line-height:1.2;scroll-margin-top:88px}.content h1{margin:0 0 18px;font-size:2.625rem;font-weight:600;letter-spacing:0}.content h2{margin:42px 0 16px;padding-top:24px;font-size:2.1875rem;font-weight:600;border-top:1px solid var(--color-border-subtle)}.content h3{margin:30px 0 12px;font-size:1.8125rem;font-weight:600}.content h4{margin:26px 0 10px;font-size:1.5rem;font-weight:600}.content h5{margin:22px 0 8px;font-size:1.125rem;font-weight:600}.content p,.content li{color:var(--color-text);font-size:1rem}.content p{margin:0 0 16px}.content .description{max-width:62rem;margin-top:-4px;margin-bottom:30px;color:var(--color-muted);font-size:1.08rem;line-height:1.65}.content ul,.content ol{padding-left:1.35rem}.content li+li{margin-top:6px}.content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8125rem;padding:2px 5px;color:var(--color-text);border-radius:4px;background:var(--color-code-bg)}.content pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9rem;overflow:auto;padding:16px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-code-bg);color:var(--color-text);line-height:1.65}.content pre code{padding:0;color:inherit;background:transparent}.expressive-code{margin:1.25rem 0}.expressive-code .frame{border-radius:6px!important;box-shadow:0 2px 8px #00000014}.expressive-code code{font-size:.9rem;line-height:1.65}.expressive-code .ec-line.mark,.expressive-code .ec-line.code-directive-hl{--ec-tm-markBg: rgba(134, 199, 125, .1) !important;--ec-tm-markBrdCol: rgba(74, 157, 61, .2) !important}:root[data-ec-copy-lock] .expressive-code .copy{display:none!important}.content table{width:100%;margin:20px 0 24px;border-collapse:collapse;border-spacing:0;font-size:.95rem;line-height:1.55}.content th,.content td{padding:10px 12px;color:var(--color-text);text-align:left;vertical-align:top;border:1px solid var(--color-border)}.content th{font-weight:700;background:var(--color-control)}@media(max-width:720px){.content{max-width:none;padding-bottom:40px}.content h1{font-size:2rem}.content table{font-size:.88rem}.content th,.content td{padding:8px}}html:not([data-show-answers="1"]) .exercise-answers{display:none}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.sidebar{position:sticky;top:86px;align-self:start;max-height:calc(100vh - 104px);overflow:auto;padding:0 14px 20px 0;color:var(--color-text);background:transparent;border-right:1px solid var(--color-border-subtle);scrollbar-gutter:stable}.sidebar-nav{padding:0 10px 0 0}.nav-list{display:grid;gap:1px;margin:0;padding:0;list-style:none}:root{--sidebar-column: 300px}:root[data-sidebar-collapsed=true]{--sidebar-column: 44px}.sidebar-collapse-toggle{position:fixed;top:86px;left:calc(var(--sidebar-column, 300px) - 40px);z-index:30;display:inline-grid;place-items:center;width:26px;height:26px;color:var(--color-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:50%;cursor:pointer;transition:left .22s ease}.sidebar-collapse-toggle:hover{color:var(--color-text);border-color:var(--color-border-strong)}.sidebar-collapse-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-focus-ring)}.sidebar-collapse-chevron{width:6px;height:6px;margin-left:3px;border-left:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:rotate(45deg);transition:transform .16s ease}:root[data-sidebar-collapsed=true] .sidebar-collapse-chevron{transform:rotate(-135deg);margin-left:-3px}:root[data-sidebar-collapsed=true] .sidebar-nav{display:none}@media(min-width:901px){:root[data-sidebar-collapsed=true] .sidebar{display:none}:root[data-sidebar-collapsed=true] .sidebar-shell:before{position:fixed;top:64px;left:0;z-index:29;width:var(--sidebar-column, 300px);height:100vh;background:color-mix(in srgb,var(--color-muted) 6%,transparent);border-right:1px solid var(--color-border-subtle);content:""}:root[data-sidebar-collapsed=true] .sidebar-collapse-toggle{left:9px}}@media(max-width:900px){.sidebar-collapse-toggle{display:none}:root[data-sidebar-collapsed=true] .sidebar-nav{display:block}}.nav-children{grid-column:1 / -1;margin-top:2px;margin-left:12px;padding-left:10px;border-left:1px solid var(--color-border-subtle)}.nav-item[hidden]{display:none}.nav-row,.nav-item.has-children{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;min-height:30px}.nav-item.has-children:has(>.nav-details:not([open]))>.nav-children{display:none}.nav-details{display:block;grid-column:1;grid-row:1}.nav-toggle,.nav-spacer{width:22px;height:30px}.nav-toggle{display:inline-grid;grid-column:1;grid-row:1;place-items:center;padding:0;color:var(--color-muted);background:transparent;border:0;border-radius:6px;cursor:pointer;list-style:none}.nav-toggle::-webkit-details-marker{display:none}.nav-toggle::marker{content:""}.nav-toggle:hover{color:var(--color-text);background:var(--color-hover)}.nav-chevron{width:6px;height:6px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:rotate(-45deg);transition:transform .16s ease}.nav-details[open]>.nav-toggle .nav-chevron{transform:rotate(45deg)}.nav-link{display:block;grid-column:2;grid-row:1;min-width:0;padding:5px 8px;color:var(--color-sidebar-link);font-size:.88rem;line-height:1.45;border-radius:6px}.nav-link:hover{color:var(--color-text);background:var(--color-hover);text-decoration:none}.nav-link.level-1{color:var(--color-text);font-size:.83rem;font-weight:720}.nav-link.level-2{font-weight:620}.nav-link.level-3,.nav-link.level-4,.nav-link.level-5{color:var(--color-muted);font-size:.84rem}.nav-link.is-active{color:var(--color-accent-strong);background:var(--color-active-bg);font-weight:650}.is-current-branch>.nav-details>.nav-toggle{color:var(--color-accent)}.theme-toggle{display:inline-flex;align-items:center;justify-self:end;gap:7px;height:34px;padding:0 10px;color:var(--color-muted);font:inherit;font-size:.82rem;background:var(--color-control);border:1px solid var(--color-border);border-radius:999px;cursor:pointer}.theme-toggle:hover{color:var(--color-text);border-color:var(--color-border-strong)}.theme-toggle-track{position:relative;width:26px;height:14px;border-radius:999px;background:var(--color-toggle-track)}.theme-toggle-thumb{position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--color-toggle-thumb);transition:transform .16s ease}:root[data-theme=dark] .theme-toggle-thumb{transform:translate(12px)}.search-icon{position:absolute;top:50%;left:13px;width:12px;height:12px;border:2px solid var(--color-muted);border-radius:50%;opacity:.72;transform:translateY(-58%)}.search-icon:after{position:absolute;right:-5px;bottom:-4px;width:6px;height:2px;background:var(--color-muted);border-radius:99px;content:"";transform:rotate(45deg)}.page-toc{position:sticky;top:86px;align-self:start;max-height:calc(100vh - 104px);overflow:auto;padding-left:18px;border-left:1px solid var(--color-border-subtle)}.page-toc-inner h2{margin:0 0 12px;color:var(--color-text);font-size:.82rem;font-weight:720;line-height:1.4}.page-toc-inner{max-width:280px}.page-toc ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.page-toc li.depth-3{padding-left:12px}.page-toc a,.page-toc p{color:var(--color-muted);font-size:.82rem;line-height:1.45}.page-toc a:hover{color:var(--color-text);text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;white-space:nowrap;border:0;clip:rect(0,0,0,0)}@media(max-width:900px){.sidebar{position:static;max-height:none;padding-right:0;border-right:0}}.page-toc [hidden]{display:none!important}.site-header[data-astro-cid-37fxchfa]{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--color-bg) 88%,transparent);border-bottom:1px solid var(--color-border-subtle);backdrop-filter:blur(14px)}.site-header-inner[data-astro-cid-37fxchfa]{display:grid;grid-template-columns:300px minmax(260px,520px) auto;gap:22px;align-items:center;width:100%;min-height:64px;padding:0 24px}.site-brand[data-astro-cid-37fxchfa]{display:grid;gap:2px;min-width:0;color:var(--color-text)}.site-brand[data-astro-cid-37fxchfa]:hover{text-decoration:none}.site-brand[data-astro-cid-37fxchfa] strong[data-astro-cid-37fxchfa],.site-brand[data-astro-cid-37fxchfa] span[data-astro-cid-37fxchfa]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-brand[data-astro-cid-37fxchfa] strong[data-astro-cid-37fxchfa]{font-size:.98rem;font-weight:760;line-height:1.35}.site-brand[data-astro-cid-37fxchfa] span[data-astro-cid-37fxchfa]{color:var(--color-muted);font-size:.78rem;line-height:1.35}.site-search[data-astro-cid-37fxchfa]{position:relative;display:block;width:100%}.site-search[data-astro-cid-37fxchfa] input[data-astro-cid-37fxchfa]{width:100%;height:38px;padding:0 12px 0 36px;color:var(--color-text);font:inherit;font-size:.9rem;background:var(--color-control);border:1px solid var(--color-border);border-radius:8px;outline:none}.site-search[data-astro-cid-37fxchfa] input[data-astro-cid-37fxchfa]:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-focus-ring)}.shell[data-astro-cid-37fxchfa]{display:grid;grid-template-columns:var(--sidebar-column, 300px) minmax(0,1fr) minmax(240px,calc((100% - 720px)/2));gap:24px;width:100%;min-height:calc(100vh - 64px);padding:28px 0 48px;transition:grid-template-columns .22s ease}.sidebar-shell[data-astro-cid-37fxchfa]{min-width:0}main[data-astro-cid-37fxchfa]{min-width:0}@media(max-width:1180px){.site-header-inner[data-astro-cid-37fxchfa]{grid-template-columns:minmax(0,1fr) minmax(220px,420px) auto}.shell[data-astro-cid-37fxchfa]{grid-template-columns:var(--sidebar-column, 280px) minmax(0,1fr)}.shell[data-astro-cid-37fxchfa] .page-toc{display:none}}@media(max-width:900px){.site-header-inner[data-astro-cid-37fxchfa]{grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:10px 16px}.site-search[data-astro-cid-37fxchfa]{grid-column:1 / -1;grid-row:2}.shell[data-astro-cid-37fxchfa]{grid-template-columns:1fr;padding:16px}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
