:root{--accent:#2563eb;--accent-strong:#1d4ed8;--accent-soft:#e8effd;--bg:#f6f8fb;--surface:#ffffff;--surface-2:#eef2f7;--border:#dde3ec;--text:#131a26;--muted:#5a6577;--code-bg:#f1f4f9;--shadow:0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .06);--radius:14px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", monospace}[data-theme=dark]{--accent:#5b9bff;--accent-strong:#84b4ff;--accent-soft:#14264a;--bg:#0a0f1a;--surface:#111827;--surface-2:#182236;--border:#243047;--text:#e6ebf4;--muted:#94a1b8;--code-bg:#0d1424;--shadow:0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3)}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:1.0625rem;line-height:1.65;color:var(--text);background:var(--bg);min-height:100vh;display:flex;flex-direction:column}main{flex:1;padding-block:2.5rem 4rem}img{max-width:100%;height:auto}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.2;letter-spacing:-.02em;text-wrap:balance}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}.skip-link{position:absolute;left:-999px;top:.5rem;background:var(--accent);color:#fff;padding:.5rem 1rem;border-radius:8px;z-index:100}.skip-link:focus{left:.5rem}.eyebrow{margin:0 0 .5rem;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.meta{margin:0;font-size:.875rem;color:var(--muted);display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.summary{margin:0;color:var(--muted)}.page-title{margin:0 0 1.5rem;font-size:clamp(1.9rem,4vw,2.6rem)}.section-title{margin:3rem 0 1.25rem;font-size:1.35rem}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;gap:1.5rem;height:64px}.brand{display:flex;align-items:center;gap:.65rem;font-weight:700;color:var(--text);letter-spacing:-.01em;white-space:nowrap}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;font-size:1rem}.site-nav{display:flex;gap:.25rem;margin-left:auto}.site-nav a{padding:.4rem .75rem;border-radius:8px;color:var(--muted);font-size:.95rem;font-weight:500}.site-nav a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.site-nav a.active{color:var(--text);background:var(--surface-2)}.header-actions{display:flex;gap:.25rem}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:0 0;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--text);background:var(--surface-2)}.nav-toggle{display:none}.theme-toggle svg{display:none}[data-mode=light] .theme-toggle .i-light,[data-mode=dark] .theme-toggle .i-dark,[data-mode=auto] .theme-toggle .i-auto{display:block}.hero{padding-block:1.5rem 2rem;max-width:46rem}.hero h1{margin:0;font-size:clamp(2rem,5vw,3.1rem)}.topics{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.chip{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .9rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:.9rem;font-weight:500}.chip:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}[data-theme=dark] .chip.active{color:#06122b}.chip .count{font-size:.78rem;opacity:.7}.chip.small{padding:.25rem .7rem;font-size:.82rem}.cats{margin:0 0 .6rem;display:flex;flex-wrap:wrap;gap:.4rem}.cat{padding:.15rem .6rem;border-radius:6px;background:var(--accent-soft);color:var(--accent-strong);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}a.cat:hover{text-decoration:none;background:var(--accent);color:#fff}.cover-img,.cover-placeholder{display:block;width:100%;height:100%;object-fit:cover}.cover-placeholder{display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 20% 15%,rgba(56,189,248,.55),transparent 55%),linear-gradient(135deg,#1e3a8a,#2563eb 55%,#0ea5e9)}.cover-placeholder span{color:#fff;font-weight:800;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:-.02em;text-shadow:0 2px 12px rgba(0,0,0,.25)}.featured{display:grid;grid-template-columns:1.15fr 1fr;background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);overflow:hidden;box-shadow:var(--shadow)}.featured-cover{min-height:340px;min-width:0;overflow:hidden}.featured-body{min-width:0}.featured-body{padding:2rem;display:flex;flex-direction:column;justify-content:center;gap:.25rem}.featured h2{margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2.1rem)}.featured h2 a,.card h3 a{color:var(--text)}.featured h2 a:hover,.card h3 a:hover{color:var(--accent);text-decoration:none}.featured .summary{margin-bottom:1rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.card-cover{aspect-ratio:16/9}.card-body{padding:1.25rem;display:flex;flex-direction:column;flex:1}.card h3{margin:0 0 .5rem;font-size:1.15rem}.card .summary{font-size:.95rem;margin-bottom:1rem}.card .meta{margin-top:auto}.card.tool .summary{margin-bottom:0}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-weight:600;font-size:.95rem;white-space:nowrap}.btn:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:2.5rem}.pagination>:last-child{justify-self:end}.pagination>:first-child{justify-self:start}.author{margin-top:4rem;padding:2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.author h2{margin:0 0 .5rem}.author p:last-child{margin:0;color:var(--muted);max-width:44rem}.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.topic{display:flex;flex-direction:column;gap:.25rem;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:1.1rem}.topic:hover{border-color:var(--accent);text-decoration:none}.more-link{margin-top:2rem}.archive h2{font-size:1.25rem;margin:2rem 0 .5rem}.archive ul{list-style:none;margin:0;padding:0}.archive li{display:flex;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--border)}.archive time{flex:0 0 4.5rem;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}.term-intro{margin-bottom:2rem}.post{max-width:46rem;margin-inline:auto}.post-header h1{margin:0 0 .9rem;font-size:clamp(2rem,5vw,2.8rem)}.post-header{margin-bottom:2rem}.post-cover{margin-bottom:2rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.toc{margin-bottom:2rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem}.toc summary{cursor:pointer;font-weight:700}.toc ul{margin:.5rem 0 0;padding-left:1.2rem}.toc li{margin:.2rem 0}.prose>*+*{margin-top:1.25em}.prose h2{margin-top:2.2em;font-size:1.6rem}.prose h3{margin-top:1.8em;font-size:1.25rem}.prose h2,.prose h3{scroll-margin-top:80px}.prose p,.prose ul,.prose ol{margin-bottom:0}.prose li+li{margin-top:.35em}.prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.prose figure{margin-inline:0}.prose figure img{display:block;border-radius:10px;border:1px solid var(--border)}.prose figcaption{margin-top:.5rem;font-size:.875rem;color:var(--muted);text-align:center}.prose blockquote{margin-inline:0;padding:.25rem 1.25rem;border-left:3px solid var(--border);color:var(--muted)}.prose hr{border:0;border-top:1px solid var(--border);margin-block:2.5em}.prose code{font-family:var(--mono);font-size:.88em;background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:.12em .4em}.prose pre{margin:0;padding:1rem 1.25rem;overflow-x:auto;font-size:.9rem;line-height:1.55;background:var(--code-bg);border:1px solid var(--border);border-radius:10px;tab-size:2}.prose pre code{background:0 0;border:0;padding:0;font-size:inherit}.prose .highlight{position:relative}.copy-btn{position:absolute;top:.5rem;right:.5rem;padding:.2rem .6rem;font:600 .75rem var(--font);color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:6px;cursor:pointer;opacity:0;transition:opacity .15s}.highlight:hover .copy-btn,.copy-btn:focus-visible{opacity:1}.prose table{display:block;overflow-x:auto;border-collapse:collapse;font-size:.95rem}.prose th,.prose td{padding:.55rem .9rem;border:1px solid var(--border);text-align:left}.prose th{background:var(--surface-2)}.alert{padding:.9rem 1.25rem;border:1px solid var(--border);border-left:4px solid var(--a,var(--accent));border-radius:10px;background:var(--surface)}.alert>*{margin:0}.alert>*+*{margin-top:.5em}.alert-title{font-weight:700;color:var(--a,var(--accent))}.alert-tip{--a:#16a34a}.alert-important{--a:#9333ea}.alert-warning{--a:#d97706}.alert-caution{--a:#dc2626}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2.5rem}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border)}.post-nav a{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-weight:600}.post-nav a:hover{border-color:var(--accent);text-decoration:none}.post-nav .next{text-align:right;align-items:flex-end}.search-input{width:100%;padding:.9rem 1.1rem;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px}.search-input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}#search-status{margin:1rem 0}.search-results{display:grid;gap:1rem}.result{display:block;padding:1.1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.result:hover{border-color:var(--accent);text-decoration:none}.result strong{display:block;font-size:1.1rem;margin-bottom:.25rem}.result mark{background:var(--accent-soft);color:inherit;border-radius:3px;padding:0 .1em}.site-footer{border-top:1px solid var(--border);color:var(--muted);font-size:.9rem}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-block:1.5rem;flex-wrap:wrap}.footer-inner p{margin:0}.footer-links{display:flex;gap:1.25rem}.footer-links a{color:var(--muted)}.footer-links a:hover{color:var(--accent)}@media(max-width:820px){.nav-toggle{display:grid;order:3}.header-actions{margin-left:auto}.site-nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;margin:0;padding:.75rem 1.25rem 1rem;background:var(--bg);border-bottom:1px solid var(--border)}.site-nav.open{display:flex}.site-nav a{padding:.7rem .75rem;font-size:1rem}.featured{grid-template-columns:1fr}.featured-cover{min-height:0;aspect-ratio:16/9}.featured-body{padding:1.5rem}.author{flex-direction:column;align-items:flex-start}.post-nav{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}.card:hover{transform:none}}[95mRunningHugo0.170.0viahugo-python-distributionsat/usr/local/lib/python3.13/site-packages/hugo/binaries/hugo[0m.chroma{}.chroma.err{color:#f6f8fa;background-color:#82071e}.chroma.lnlinks{outline:none;text-decoration:none;color:inherit}.chroma.lntd{vertical-align:top;padding:0;margin:0;border:0;}.chroma.lntable{border-spacing:0;padding:0;margin:0;border:0;}.chroma.hl{background-color:#dedede}.chroma.lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:00.4em00.4em;color:#7f7f7f}.chroma.ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:00.4em00.4em;color:#7f7f7f}.chroma.line{display:flex;}.chroma.k{color:#cf222e}.chroma.kc{color:#cf222e}.chroma.kd{color:#cf222e}.chroma.kn{color:#cf222e}.chroma.kp{color:#cf222e}.chroma.kr{color:#cf222e}.chroma.kt{color:#cf222e}.chroma.na{color:#1f2328}.chroma.nc{color:#1f2328}.chroma.no{color:#0550ae}.chroma.nd{color:#0550ae}.chroma.ni{color:#6639ba}.chroma.nl{color:#900;font-weight:bold}.chroma.nn{color:#24292e}.chroma.nx{color:#1f2328}.chroma.nt{color:#0550ae}.chroma.nb{color:#6639ba}.chroma.bp{color:#6a737d}.chroma.nv{color:#953800}.chroma.vc{color:#953800}.chroma.vg{color:#953800}.chroma.vi{color:#953800}.chroma.vm{color:#953800}.chroma.nf{color:#6639ba}.chroma.fm{color:#6639ba}.chroma.s{color:#0a3069}.chroma.sa{color:#0a3069}.chroma.sb{color:#0a3069}.chroma.sc{color:#0a3069}.chroma.dl{color:#0a3069}.chroma.sd{color:#0a3069}.chroma.s2{color:#0a3069}.chroma.se{color:#0a3069}.chroma.sh{color:#0a3069}.chroma.si{color:#0a3069}.chroma.sx{color:#0a3069}.chroma.sr{color:#0a3069}.chroma.s1{color:#0a3069}.chroma.ss{color:#032f62}.chroma.m{color:#0550ae}.chroma.mb{color:#0550ae}.chroma.mf{color:#0550ae}.chroma.mh{color:#0550ae}.chroma.mi{color:#0550ae}.chroma.il{color:#0550ae}.chroma.mo{color:#0550ae}.chroma.o{color:#0550ae}.chroma.ow{color:#0550ae}.chroma.or{color:#0550ae}.chroma.p{color:#1f2328}.chroma.c{color:#57606a}.chroma.ch{color:#57606a}.chroma.cm{color:#57606a}.chroma.c1{color:#57606a}.chroma.cs{color:#57606a}.chroma.cp{color:#57606a}.chroma.cpf{color:#57606a}.chroma.gd{color:#82071e;background-color:#ffebe9}.chroma.ge{color:#1f2328}.chroma.gi{color:#116329;background-color:#dafbe1}.chroma.go{color:#1f2328}.chroma.gl{text-decoration:underline}.chroma.w{color:#fff}[data-theme="dark"] .chroma { } [data-theme="dark"] .chroma .err { color:#f85149 } [data-theme="dark"] .chroma .lnlinks { outline:none;text-decoration:none;color:inherit } [data-theme="dark"] .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; } [data-theme="dark"] .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; } [data-theme="dark"] .chroma .hl { background-color:#6e7681 } [data-theme="dark"] .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679 } [data-theme="dark"] .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681 } [data-theme="dark"] .chroma .line { display:flex; } [data-theme="dark"] .chroma .k { color:#ff7b72 } [data-theme="dark"] .chroma .kc { color:#79c0ff } [data-theme="dark"] .chroma .kd { color:#ff7b72 } [data-theme="dark"] .chroma .kn { color:#ff7b72 } [data-theme="dark"] .chroma .kp { color:#79c0ff } [data-theme="dark"] .chroma .kr { color:#ff7b72 } [data-theme="dark"] .chroma .kt { color:#ff7b72 } [data-theme="dark"] .chroma .nc { color:#f0883e;font-weight:bold } [data-theme="dark"] .chroma .no { color:#79c0ff;font-weight:bold } [data-theme="dark"] .chroma .nd { color:#d2a8ff;font-weight:bold } [data-theme="dark"] .chroma .ni { color:#ffa657 } [data-theme="dark"] .chroma .ne { color:#f0883e;font-weight:bold } [data-theme="dark"] .chroma .nl { color:#79c0ff;font-weight:bold } [data-theme="dark"] .chroma .nn { color:#ff7b72 } [data-theme="dark"] .chroma .nx { color:#e6edf3 } [data-theme="dark"] .chroma .py { color:#79c0ff } [data-theme="dark"] .chroma .nt { color:#7ee787 } [data-theme="dark"] .chroma .nv { color:#79c0ff } [data-theme="dark"] .chroma .vc { color:#79c0ff } [data-theme="dark"] .chroma .vg { color:#79c0ff } [data-theme="dark"] .chroma .vi { color:#79c0ff } [data-theme="dark"] .chroma .vm { color:#79c0ff } [data-theme="dark"] .chroma .nf { color:#d2a8ff;font-weight:bold } [data-theme="dark"] .chroma .fm { color:#d2a8ff;font-weight:bold } [data-theme="dark"] .chroma .l { color:#a5d6ff } [data-theme="dark"] .chroma .ld { color:#79c0ff } [data-theme="dark"] .chroma .s { color:#a5d6ff } [data-theme="dark"] .chroma .sa { color:#79c0ff } [data-theme="dark"] .chroma .sb { color:#a5d6ff } [data-theme="dark"] .chroma .sc { color:#a5d6ff } [data-theme="dark"] .chroma .dl { color:#79c0ff } [data-theme="dark"] .chroma .sd { color:#a5d6ff } [data-theme="dark"] .chroma .s2 { color:#a5d6ff } [data-theme="dark"] .chroma .se { color:#79c0ff } [data-theme="dark"] .chroma .sh { color:#79c0ff } [data-theme="dark"] .chroma .si { color:#a5d6ff } [data-theme="dark"] .chroma .sx { color:#a5d6ff } [data-theme="dark"] .chroma .sr { color:#79c0ff } [data-theme="dark"] .chroma .s1 { color:#a5d6ff } [data-theme="dark"] .chroma .ss { color:#a5d6ff } [data-theme="dark"] .chroma .m { color:#a5d6ff } [data-theme="dark"] .chroma .mb { color:#a5d6ff } [data-theme="dark"] .chroma .mf { color:#a5d6ff } [data-theme="dark"] .chroma .mh { color:#a5d6ff } [data-theme="dark"] .chroma .mi { color:#a5d6ff } [data-theme="dark"] .chroma .il { color:#a5d6ff } [data-theme="dark"] .chroma .mo { color:#a5d6ff } [data-theme="dark"] .chroma .o { color:#ff7b72;font-weight:bold } [data-theme="dark"] .chroma .ow { color:#ff7b72;font-weight:bold } [data-theme="dark"] .chroma .or { color:#ff7b72;font-weight:bold } [data-theme="dark"] .chroma .c { color:#8b949e;font-style:italic } [data-theme="dark"] .chroma .ch { color:#8b949e;font-style:italic } [data-theme="dark"] .chroma .cm { color:#8b949e;font-style:italic } [data-theme="dark"] .chroma .c1 { color:#8b949e;font-style:italic } [data-theme="dark"] .chroma .cs { color:#8b949e;font-weight:bold;font-style:italic } [data-theme="dark"] .chroma .cp { color:#8b949e;font-weight:bold;font-style:italic } [data-theme="dark"] .chroma .cpf { color:#8b949e;font-weight:bold;font-style:italic } [data-theme="dark"] .chroma .gd { color:#ffa198;background-color:#490202 } [data-theme="dark"] .chroma .ge { font-style:italic } [data-theme="dark"] .chroma .gr { color:#ffa198 } [data-theme="dark"] .chroma .gh { color:#79c0ff;font-weight:bold } [data-theme="dark"] .chroma .gi { color:#56d364;background-color:#0f5323 } [data-theme="dark"] .chroma .go { color:#8b949e } [data-theme="dark"] .chroma .gp { color:#8b949e } [data-theme="dark"] .chroma .gs { font-weight:bold } [data-theme="dark"] .chroma .gu { color:#79c0ff } [data-theme="dark"] .chroma .gt { color:#ff7b72 } [data-theme="dark"] .chroma .gl { text-decoration:underline } [data-theme="dark"] .chroma .w { color:#6e7681 }