@font-face{font-family:ibm plex sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-600.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-serif-600.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-serif-700.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#F6F8FA;--color-surface:#FFFFFF;--color-text:#1F2328;--color-muted:#57606A;--color-accent:#1A7F37;--color-link:#0969DA;--color-code-bg:#EFF1F3;--color-border:#D0D7DE;--color-prompt:#1A7F37;--color-success:#1A7F37;--font-serif:"IBM Plex Serif", Georgia, serif;--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", "Courier New", monospace;--max-prose:70ch;--max-wide:90ch;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2.5rem;--spacing-2xl:4rem;--transition:0.18s ease;--radius-sm:4px;--radius-md:6px;--focus-ring:2px solid var(--color-link);--focus-offset:3px}[data-theme=dark]{--color-bg:#0E1117;--color-surface:#161B22;--color-text:#E6EDF3;--color-muted:#8B949E;--color-accent:#3FB950;--color-link:#79C0FF;--color-code-bg:#0D1117;--color-border:#30363D;--color-prompt:#3FB950;--color-success:#3FB950;--focus-ring:2px solid var(--color-link)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#0E1117;--color-surface:#161B22;--color-text:#E6EDF3;--color-muted:#8B949E;--color-accent:#3FB950;--color-link:#79C0FF;--color-code-bg:#0D1117;--color-border:#30363D;--color-prompt:#3FB950;--color-success:#3FB950;--focus-ring:2px solid var(--color-link)}}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.75;transition:background-color var(--transition),color var(--transition);min-height:100vh;display:flex;flex-direction:column}.skip-link{position:absolute;top:-999px;left:-999px;padding:var(--spacing-sm)var(--spacing-md);background:var(--color-accent);color:var(--color-bg);font-family:var(--font-mono);font-weight:600;text-decoration:none;border-radius:0 0 var(--radius-sm)0;z-index:9999}.skip-link:focus{top:0;left:0}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-radius:2px}a{color:var(--color-link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color var(--transition),text-decoration-color var(--transition)}a:hover{color:var(--color-accent);text-decoration-thickness:2px}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;line-height:1.25;color:var(--color-text);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-md)}h1{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;margin-top:0}h2{font-size:clamp(1.3rem,3vw,1.5625rem)}h3{font-size:clamp(1.075rem,2.5vw,1.1875rem)}h4{font-size:1.0625rem;font-family:var(--font-sans);font-weight:600}h5,h6{font-size:1rem;font-family:var(--font-sans);font-weight:600}p{margin-bottom:var(--spacing-md);max-width:var(--max-prose)}ul,ol{margin-bottom:var(--spacing-md);padding-left:1.5em;max-width:var(--max-prose)}li{margin-bottom:var(--spacing-xs)}li>ul,li>ol{margin-bottom:0}blockquote{border-left:3px solid var(--color-accent);padding:var(--spacing-sm)var(--spacing-md);margin:var(--spacing-lg)0;background:var(--color-surface);color:var(--color-muted);border-radius:0 var(--radius-sm)var(--radius-sm)0;max-width:var(--max-prose)}blockquote p:last-child{margin-bottom:0}hr{border:none;border-top:1px solid var(--color-border);margin:var(--spacing-xl)0}strong{font-weight:600}em{font-style:italic}code{font-family:var(--font-mono);font-size:.875em;background:var(--color-code-bg);color:var(--color-text);padding:.15em .4em;border-radius:var(--radius-sm);border:1px solid var(--color-border)}table{width:100%;max-width:var(--max-prose);border-collapse:collapse;margin-bottom:var(--spacing-lg);font-size:.9375rem;overflow-x:auto;display:block}th,td{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--color-border);text-align:left}th{background:var(--color-surface);font-weight:600;font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.02em}tr:nth-child(even) td{background:var(--color-code-bg)}img{max-width:100%;height:auto;display:block;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--max-wide);margin-inline:auto;padding-inline:var(--spacing-md)}main{flex:1;padding-block:var(--spacing-xl)}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding-block:.875rem;position:sticky;top:0;z-index:100;backdrop-filter:blur(0)}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.site-logo{font-family:var(--font-mono);font-size:1.0625rem;font-weight:400;text-decoration:none;color:var(--color-text);white-space:nowrap;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.45em;line-height:1}.site-logo:hover{color:var(--color-text);text-decoration:none}.logo-prompt{color:var(--color-prompt);font-size:1.0625rem;font-weight:400;display:inline-flex;align-items:baseline;gap:.2em}.logo-cursor{display:inline-block;width:.5em;height:1em;background:var(--color-prompt);border-radius:1px;animation:cursor-blink 1.2s step-end infinite;margin-left:.1em}@keyframes cursor-blink{0%,100%{opacity:1}50%{opacity:0}}@media(prefers-reduced-motion:reduce){.logo-cursor{animation:none;opacity:1}}.site-nav{display:flex;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap}.site-nav a{font-family:var(--font-mono);font-size:.875rem;font-weight:400;text-decoration:none;color:var(--color-muted);transition:color var(--transition);padding:var(--spacing-xs)0;letter-spacing:.01em}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--color-accent)}.theme-toggle{appearance:none;background:0 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;padding:.3rem .45rem;font-family:var(--font-mono);font-size:.75rem;color:var(--color-muted);transition:border-color var(--transition),color var(--transition);line-height:1;letter-spacing:.04em;display:inline-flex;align-items:center;justify-content:center}.theme-toggle:hover{border-color:var(--color-accent);color:var(--color-accent)}.theme-icon{display:block;width:1rem;height:1rem;transition:transform var(--transition);flex-shrink:0}#icon-moon{display:none}#icon-sun{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) #icon-sun{display:none}:root:not([data-theme=light]) #icon-moon{display:block}}[data-theme=dark] #icon-sun{display:none}[data-theme=dark] #icon-moon{display:block}[data-theme=light] #icon-sun{display:block}[data-theme=light] #icon-moon{display:none}.theme-icon--hidden{display:none!important}@media(prefers-reduced-motion:no-preference){.theme-toggle:hover .theme-icon{transform:rotate(15deg)scale(1.15)}}.site-footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding-block:var(--spacing-lg);font-size:.8125rem;color:var(--color-muted);font-family:var(--font-mono);margin-top:auto}.site-footer .container{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.footer-copy{color:var(--color-muted)}.footer-copy::before{content:"# ";color:var(--color-border)}.footer-links{display:flex;gap:var(--spacing-lg);flex-wrap:wrap;list-style:none;padding:0;margin:0}.footer-links a{color:var(--color-muted);text-decoration:none;font-size:.8125rem;transition:color var(--transition)}.footer-links a:hover{color:var(--color-accent)}.breadcrumbs{font-family:var(--font-mono);font-size:.8125rem;color:var(--color-muted);margin-bottom:var(--spacing-lg)}.breadcrumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--spacing-xs);max-width:none}.breadcrumbs li{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:0}.breadcrumbs li+li::before{content:"/";color:var(--color-border);margin-right:var(--spacing-xs)}.breadcrumbs a{color:var(--color-muted);text-decoration:none;transition:color var(--transition)}.breadcrumbs a:hover{color:var(--color-accent)}.breadcrumbs [aria-current=page]{color:var(--color-text)}.article-header{margin-bottom:var(--spacing-xl)}.article-title{margin-bottom:var(--spacing-md)}.article-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)var(--spacing-lg);font-family:var(--font-mono);font-size:.8125rem;color:var(--color-muted);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.article-meta span{display:flex;align-items:center;gap:var(--spacing-xs)}.difficulty-badge{display:inline-block;padding:.15em .55em;border-radius:var(--radius-sm);font-size:.75rem;font-weight:400;font-family:var(--font-mono);background:var(--color-code-bg);border:1px solid var(--color-border);color:var(--color-muted);letter-spacing:.04em}.difficulty-badge[data-level=einsteiger]{color:var(--color-accent);border-color:var(--color-accent)}.difficulty-badge[data-level=mittel]{color:var(--color-link);border-color:var(--color-link)}.difficulty-badge[data-level=fortgeschritten]{color:#cf222e;border-color:#cf222e}[data-theme=dark] .difficulty-badge[data-level=fortgeschritten]{color:#ff7b72;border-color:#ff7b72}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .difficulty-badge[data-level=fortgeschritten]{color:#ff7b72;border-color:#ff7b72}}.tldr-box{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-md)var(--radius-md)0;padding:var(--spacing-md)var(--spacing-lg);margin-bottom:var(--spacing-xl);max-width:var(--max-prose)}.tldr-box .tldr-label{font-family:var(--font-mono);font-size:.6875rem;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);margin-bottom:var(--spacing-sm);display:block}.tldr-box .tldr-label::before{content:"# ";color:var(--color-border)}.tldr-box p:last-child{margin-bottom:0}.tested-on{display:flex;align-items:flex-start;gap:var(--spacing-md);background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md)var(--spacing-lg);margin-bottom:var(--spacing-xl);max-width:var(--max-prose);font-size:.9rem}.tested-on .tested-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-success);font-weight:400;white-space:nowrap;padding-top:.1em}.tested-on .tested-label::before{content:"$ ";color:var(--color-border)}.tested-on ul{list-style:none;padding:0;margin:0;max-width:none}.tested-on ul li{margin-bottom:0;font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text)}.tested-on ul li::before{content:"> ";color:var(--color-border)}.toc{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md)var(--spacing-lg);margin-bottom:var(--spacing-xl);max-width:42ch}.toc-title{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);margin-bottom:var(--spacing-sm);display:block;font-weight:400}.toc-title::before{content:"## ";color:var(--color-border)}.toc nav ul{list-style:none;padding:0;margin:0}.toc nav ul ul{padding-left:1.2em;margin-top:var(--spacing-xs);border-left:1px solid var(--color-border)}.toc nav ul li{margin-bottom:.3em}.toc nav a{color:var(--color-muted);text-decoration:none;font-family:var(--font-mono);font-size:.8125rem;line-height:1.5;transition:color var(--transition)}.toc nav a:hover{color:var(--color-accent)}.article-content>*{max-width:var(--max-prose)}.article-content h2,.article-content h3,.article-content h4{scroll-margin-top:5rem}.article-content p a,.article-content li a{color:var(--color-link);text-decoration:underline;text-underline-offset:3px}.article-content p a:hover,.article-content li a:hover{color:var(--color-accent)}.code-block-wrapper{position:relative;margin-block:var(--spacing-lg);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);background:var(--color-code-bg);max-width:var(--max-prose);box-shadow:0 1px 3px rgba(0,0,0,6%)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:.375rem var(--spacing-md);background:var(--color-surface);border-bottom:1px solid var(--color-border);gap:var(--spacing-sm)}.code-lang-label{font-family:var(--font-mono);font-size:.6875rem;color:var(--color-accent);text-transform:lowercase;letter-spacing:.06em;font-weight:400}.code-lang-label::before{content:"$ ";color:var(--color-border)}.copy-btn{appearance:none;background:0 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-mono);font-size:.625rem;color:var(--color-muted);padding:.2rem .5rem;transition:border-color var(--transition),color var(--transition);line-height:1.4;letter-spacing:.04em;text-transform:lowercase}.copy-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.copy-btn.copied{color:var(--color-success);border-color:var(--color-success)}.code-block-wrapper .chroma,.code-block-wrapper pre{background:var(--color-code-bg)!important;margin:0;padding:var(--spacing-md);overflow-x:auto;font-family:var(--font-mono);font-size:.875rem;line-height:1.65;tab-size:2}.bg{background-color:var(--color-code-bg)}.chroma{color:var(--color-text);background-color:var(--color-code-bg)}.chroma .x{}.chroma .err{color:#a61717;background-color:#e3d2d2}.chroma .cl{}.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:#e8f4fd}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#adb5bd}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#adb5bd}.chroma .line{display:flex}.chroma .k{color:#cf222e;font-weight:700}.chroma .kc{color:#cf222e;font-weight:700}.chroma .kd{color:#0550ae}.chroma .kn{color:#cf222e;font-weight:700}.chroma .kp{color:#cf222e}.chroma .kr{color:#cf222e;font-weight:700}.chroma .kt{color:#0550ae;font-weight:700}.chroma .n{}.chroma .na{color:#116329}.chroma .nb{color:#0550ae}.chroma .bp{color:#6e7781}.chroma .nc{color:#953800;font-weight:700}.chroma .no{color:#0550ae}.chroma .nd{color:#6639ba}.chroma .ni{color:#116329}.chroma .ne{color:#953800;font-weight:700}.chroma .nf{color:#8250df}.chroma .fm{}.chroma .nl{color:#8250df}.chroma .nn{color:#953800}.chroma .nx{}.chroma .py{}.chroma .nt{color:#116329}.chroma .nv{color:#0550ae}.chroma .vc{color:#0550ae}.chroma .vg{color:#0550ae}.chroma .vi{color:#0550ae}.chroma .vm{}.chroma .l{}.chroma .ld{color:#0a3069}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069;font-style:italic}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069;font-weight:700}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#116329}.chroma .s1{color:#0a3069}.chroma .ss{color:#6639ba}.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:#cf222e;font-weight:700}.chroma .ow{color:#cf222e;font-weight:700}.chroma .p{}.chroma .c{color:#6e7781;font-style:italic}.chroma .ch{color:#6e7781;font-style:italic}.chroma .cm{color:#6e7781;font-style:italic}.chroma .c1{color:#6e7781;font-style:italic}.chroma .cs{color:#6e7781;font-weight:700;font-style:italic}.chroma .cp{color:#6e7781;font-weight:700}.chroma .cpf{color:#6e7781;font-weight:700}.chroma .g{}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{font-style:italic}.chroma .gr{}.chroma .gh{color:#6e7781}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#6e7781}.chroma .gp{color:#0550ae}.chroma .gs{font-weight:700}.chroma .gu{color:#6e7781}.chroma .gt{color:#82071e}.chroma .gl{text-decoration:underline}.chroma .w{color:#bbb}[data-theme=dark] .bg{color:#e6edf3;background-color:var(--color-code-bg)}[data-theme=dark] .chroma{color:#e6edf3;background-color:var(--color-code-bg)}[data-theme=dark] .chroma .err{color:#f85149;background-color:#490202}[data-theme=dark] .chroma .hl{background-color:#1f2d3d}[data-theme=dark] .chroma .lnt{color:#6e7781}[data-theme=dark] .chroma .ln{color:#6e7781}[data-theme=dark] .chroma .k{color:#ff7b72;font-weight:700}[data-theme=dark] .chroma .kc{color:#ff7b72;font-weight:700}[data-theme=dark] .chroma .kd{color:#79c0ff}[data-theme=dark] .chroma .kn{color:#ff7b72;font-weight:700}[data-theme=dark] .chroma .kp{color:#ff7b72}[data-theme=dark] .chroma .kr{color:#ff7b72;font-weight:700}[data-theme=dark] .chroma .kt{color:#79c0ff;font-weight:700}[data-theme=dark] .chroma .na{color:#7ee787}[data-theme=dark] .chroma .nb{color:#79c0ff}[data-theme=dark] .chroma .bp{color:#8b949e}[data-theme=dark] .chroma .nc{color:#ffa657;font-weight:700}[data-theme=dark] .chroma .no{color:#79c0ff}[data-theme=dark] .chroma .nd{color:#d2a8ff}[data-theme=dark] .chroma .ni{color:#7ee787}[data-theme=dark] .chroma .ne{color:#ffa657;font-weight:700}[data-theme=dark] .chroma .nf{color:#d2a8ff}[data-theme=dark] .chroma .nl{color:#d2a8ff}[data-theme=dark] .chroma .nn{color:#ffa657}[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 .ld{color:#a5d6ff}[data-theme=dark] .chroma .s{color:#a5d6ff}[data-theme=dark] .chroma .sa{color:#a5d6ff}[data-theme=dark] .chroma .sb{color:#a5d6ff}[data-theme=dark] .chroma .sc{color:#a5d6ff}[data-theme=dark] .chroma .dl{color:#a5d6ff}[data-theme=dark] .chroma .sd{color:#a5d6ff;font-style:italic}[data-theme=dark] .chroma .s2{color:#a5d6ff}[data-theme=dark] .chroma .se{color:#a5d6ff;font-weight:700}[data-theme=dark] .chroma .sh{color:#a5d6ff}[data-theme=dark] .chroma .si{color:#a5d6ff}[data-theme=dark] .chroma .sx{color:#a5d6ff}[data-theme=dark] .chroma .sr{color:#7ee787}[data-theme=dark] .chroma .s1{color:#a5d6ff}[data-theme=dark] .chroma .ss{color:#d2a8ff}[data-theme=dark] .chroma .m{color:#79c0ff}[data-theme=dark] .chroma .mb{color:#79c0ff}[data-theme=dark] .chroma .mf{color:#79c0ff}[data-theme=dark] .chroma .mh{color:#79c0ff}[data-theme=dark] .chroma .mi{color:#79c0ff}[data-theme=dark] .chroma .il{color:#79c0ff}[data-theme=dark] .chroma .mo{color:#79c0ff}[data-theme=dark] .chroma .o{color:#ff7b72;font-weight:700}[data-theme=dark] .chroma .ow{color:#ff7b72;font-weight:700}[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:700;font-style:italic}[data-theme=dark] .chroma .cp{color:#8b949e;font-weight:700}[data-theme=dark] .chroma .cpf{color:#8b949e;font-weight:700}[data-theme=dark] .chroma .gd{color:#ffa198;background-color:#490202}[data-theme=dark] .chroma .ge{font-style:italic}[data-theme=dark] .chroma .gi{color:#56d364;background-color:#0f2d1a}[data-theme=dark] .chroma .go{color:#8b949e}[data-theme=dark] .chroma .gp{color:#79c0ff}[data-theme=dark] .chroma .gs{font-weight:700}[data-theme=dark] .chroma .gu{color:#8b949e}[data-theme=dark] .chroma .gt{color:#f85149}[data-theme=dark] .chroma .gl{text-decoration:underline}[data-theme=dark] .chroma .w{color:#6e7781}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .bg{color:#e6edf3;background-color:var(--color-code-bg)}:root:not([data-theme=light]) .chroma{color:#e6edf3;background-color:var(--color-code-bg)}:root:not([data-theme=light]) .chroma .err{color:#f85149;background-color:#490202}:root:not([data-theme=light]) .chroma .hl{background-color:#1f2d3d}:root:not([data-theme=light]) .chroma .lnt{color:#6e7781}:root:not([data-theme=light]) .chroma .ln{color:#6e7781}:root:not([data-theme=light]) .chroma .k{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .kc{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .kd{color:#79c0ff}:root:not([data-theme=light]) .chroma .kn{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .kp{color:#ff7b72}:root:not([data-theme=light]) .chroma .kr{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .kt{color:#79c0ff;font-weight:700}:root:not([data-theme=light]) .chroma .na{color:#7ee787}:root:not([data-theme=light]) .chroma .nb{color:#79c0ff}:root:not([data-theme=light]) .chroma .nc{color:#ffa657;font-weight:700}:root:not([data-theme=light]) .chroma .no{color:#79c0ff}:root:not([data-theme=light]) .chroma .nd{color:#d2a8ff}:root:not([data-theme=light]) .chroma .ne{color:#ffa657;font-weight:700}:root:not([data-theme=light]) .chroma .nf{color:#d2a8ff}:root:not([data-theme=light]) .chroma .nl{color:#d2a8ff}:root:not([data-theme=light]) .chroma .nn{color:#ffa657}:root:not([data-theme=light]) .chroma .nt{color:#7ee787}:root:not([data-theme=light]) .chroma .nv{color:#79c0ff}:root:not([data-theme=light]) .chroma .ld{color:#a5d6ff}:root:not([data-theme=light]) .chroma .s{color:#a5d6ff}:root:not([data-theme=light]) .chroma .s2{color:#a5d6ff}:root:not([data-theme=light]) .chroma .s1{color:#a5d6ff}:root:not([data-theme=light]) .chroma .se{color:#a5d6ff;font-weight:700}:root:not([data-theme=light]) .chroma .sr{color:#7ee787}:root:not([data-theme=light]) .chroma .ss{color:#d2a8ff}:root:not([data-theme=light]) .chroma .m{color:#79c0ff}:root:not([data-theme=light]) .chroma .mi{color:#79c0ff}:root:not([data-theme=light]) .chroma .o{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .ow{color:#ff7b72;font-weight:700}:root:not([data-theme=light]) .chroma .c{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .c1{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .cm{color:#8b949e;font-style:italic}:root:not([data-theme=light]) .chroma .gd{color:#ffa198;background-color:#490202}:root:not([data-theme=light]) .chroma .gi{color:#56d364;background-color:#0f2d1a}:root:not([data-theme=light]) .chroma .go{color:#8b949e}:root:not([data-theme=light]) .chroma .gs{font-weight:700}}.discuss-link{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);font-size:.9375rem}.discuss-link a{display:inline-flex;align-items:center;gap:var(--spacing-sm);color:var(--color-link);font-family:var(--font-mono);font-size:.875rem;font-weight:400;text-decoration:none;transition:color var(--transition)}.discuss-link a::before{content:"> ";color:var(--color-border)}.discuss-link a:hover{color:var(--color-accent);text-decoration:underline}.post-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-md);max-width:var(--max-prose)}.post-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-lg);transition:border-color var(--transition);border-left:3px solid var(--color-border)}.post-card:hover{border-left-color:var(--color-accent);border-color:var(--color-border);border-left-color:var(--color-accent)}.post-card-title{font-family:var(--font-serif);font-size:1.125rem;font-weight:600;margin-bottom:var(--spacing-sm);margin-top:0;line-height:1.3}.post-card-title a{color:var(--color-text);text-decoration:none;transition:color var(--transition)}.post-card-title a:hover{color:var(--color-link)}.post-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm)var(--spacing-md);font-family:var(--font-mono);font-size:.75rem;color:var(--color-muted);margin-bottom:var(--spacing-sm)}.post-card-desc{font-size:.9375rem;color:var(--color-muted);margin:0;max-width:none;line-height:1.6}.home-hero{margin-bottom:var(--spacing-2xl);max-width:var(--max-prose)}.home-hero h1{font-size:clamp(1.875rem,5vw,2.625rem);margin-bottom:var(--spacing-md)}.home-hero-lead{font-size:1.0625rem;color:var(--color-muted);max-width:55ch;margin-bottom:0}.home-section-title{font-family:var(--font-mono);font-size:.75rem;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.home-section-title::before{content:"## ";color:var(--color-border)}.section-header{margin-bottom:var(--spacing-xl)}.section-header h1{margin-bottom:var(--spacing-sm)}.section-header p{color:var(--color-muted);max-width:55ch}.error-page{text-align:center;padding-block:var(--spacing-2xl);max-width:var(--max-prose);margin-inline:auto}.error-page .error-code{font-family:var(--font-mono);font-size:3.5rem;color:var(--color-muted);display:block;margin-bottom:var(--spacing-md);line-height:1;letter-spacing:-.04em}.error-page .error-code::before{content:"exit ";font-size:1.5rem;color:var(--color-border);vertical-align:middle}.error-page h1{margin-bottom:var(--spacing-md)}.error-page p{color:var(--color-muted);margin-inline:auto}.tag-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);list-style:none;padding:0;margin-bottom:var(--spacing-md)}.tag-item a{display:inline-block;padding:.2em .6em;font-size:.75rem;font-family:var(--font-mono);background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-muted);text-decoration:none;transition:border-color var(--transition),color var(--transition);letter-spacing:.02em}.tag-item a:hover{border-color:var(--color-accent);color:var(--color-accent)}.article-tags{margin-top:var(--spacing-lg)}.category-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:0;list-style:none;padding:0}.category-item a{font-family:var(--font-mono);font-size:.75rem;color:var(--color-accent);text-decoration:none;font-weight:400;letter-spacing:.02em;transition:color var(--transition)}.category-item a:hover{color:var(--color-link)}.category-link{font-family:var(--font-mono);font-size:.75rem;color:var(--color-accent);text-decoration:none;font-weight:400;letter-spacing:.02em;transition:color var(--transition)}.category-link:hover{color:var(--color-link)}@media(max-width:640px){.site-header .container{gap:var(--spacing-sm)}.site-nav{gap:var(--spacing-md)}.article-meta{gap:var(--spacing-sm)}.tested-on{flex-direction:column;gap:var(--spacing-sm)}.site-footer .container{flex-direction:column;gap:var(--spacing-sm)}.toc{max-width:100%}}@media(max-width:480px){.site-header .container{flex-direction:column;align-items:flex-start}}@media print{.site-header,.site-footer,.toc,.copy-btn,.theme-toggle,.discuss-link{display:none}body{color:#000;background:#fff}a{color:#000;text-decoration:underline}a[href]::after{content:" (" attr(href)")";font-size:.8em;color:#666}}