:root{--kw-bg:#22232d;--kw-ink:#fff;--kw-gold:#ffc857;--kw-green:#1fe187;--kw-cyan:#0ea9f1;--kw-magenta:#cca0fe;--kw-muted:hsla(0,0%,100%,.7);--kw-faint:hsla(0,0%,100%,.5);--kw-line:hsla(0,0%,100%,.18);--kw-glow-cyan-line:rgba(14,169,241,.8);--kw-glow-cyan:0 0 20px rgba(14,169,241,.18);--kw-glow-green-line:rgba(31,225,135,.7);--kw-glow-green:0 0 18px rgba(31,225,135,.18);--text-color:var(--kw-ink);--bg-color:var(--kw-bg);--border-color:var(--kw-line);--kw-font:"DM Mono","Courier New",Courier,monospace;--kw-weight-body:300;--kw-weight-strong:500;--kw-text-hero:3rem;--kw-text-h1:2rem;--kw-text-h2:1.5rem;--kw-text-h3:1.15rem;--kw-text-body:1rem;--kw-text-small:0.875rem;--kw-text-micro:0.75rem;--kw-leading:1.6;--kw-leading-tight:1.25;--kw-gutter:40px;--kw-header-pad:18px;--kw-section-pad:56px;--kw-main-width:1200px;--kw-content-width:900px;--kw-radius:6px}@media (max-width:820px){:root{--kw-gutter:28px;--kw-header-pad:16px;--kw-section-pad:36px}}@media (max-width:520px){:root{--kw-gutter:20px;--kw-header-pad:14px;--kw-section-pad:24px;--kw-text-hero:1.75rem;--kw-text-h1:1.6rem;--kw-text-h2:1.25rem}}*{box-sizing:border-box}html{overflow-x:clip}body,html{padding:0;margin:0;min-height:100vh;background-color:var(--bg-color);color:var(--text-color);font-family:var(--kw-font);font-size:var(--kw-text-body);font-weight:var(--kw-weight-body);font-style:normal;line-height:var(--kw-leading)}h1,h2,h3,h4,h5,h6{font-weight:var(--kw-weight-strong);line-height:var(--kw-leading-tight);text-wrap:balance}h1{font-size:var(--kw-text-h1)}h2{font-size:var(--kw-text-h2)}h3{font-size:var(--kw-text-h3)}h4,h5,h6{font-size:var(--kw-text-body)}.kw-hero-title{font-size:var(--kw-text-hero);text-align:center}p{text-wrap:pretty}.kw-small,small{font-size:var(--kw-text-small)}.kw-meta{font-size:var(--kw-text-micro);letter-spacing:.05em;color:var(--text-color,var(--kw-ink))}.kw-muted{color:var(--kw-muted)}.kw-faint{color:var(--kw-faint)}ul{margin:1rem;-webkit-padding-start:2rem;padding-inline-start:2rem}.gold{--text-color:var(--kw-gold)}.green{--text-color:var(--kw-green)}.cyan{--text-color:var(--kw-cyan)}.magenta{--text-color:var(--kw-magenta)}a,button{color:var(--text-color,currentColor);background-color:var(--bg-color);padding:0;margin:0;cursor:pointer;font-size:inherit;font-family:var(--kw-font);font-weight:var(--kw-weight-strong);font-style:normal}a{text-decoration:underline}a.noLinkStyles{font-weight:var(--kw-weight-body);text-decoration:none}.button,button{display:inline-block;border:none;text-decoration:none}.button:before,button:before{content:"[";display:inline-block;text-decoration:none!important}.button:after,button:after{content:"]";display:inline-block;text-decoration:none!important}.button:not([disabled]):focus-visible,.button:not([disabled]):hover,a:hover,a:not([disabled]):focus-visible,button:not(:disabled):focus-visible,button:not(:disabled):hover{background-color:var(--text-color);outline:.1rem solid var(--text-color);color:var(--bg-color);outline-offset:0}.button:not([disabled]):active,button:not(:disabled):active{text-decoration:underline}a:not([disabled]):active{text-decoration:none}.button[disabled],button:disabled{cursor:not-allowed;opacity:.5}.kw-btn-row{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:8px}.kw-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:var(--kw-header-pad) var(--kw-gutter);border-bottom:1px solid var(--border-color)}.kw-header--end{justify-content:flex-end}.kw-brand{text-decoration:none;white-space:nowrap}.kw-brand,.kw-nav{letter-spacing:1px}.kw-nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap;justify-content:flex-end}.kw-nav a:not(.button){color:var(--text-color,var(--kw-ink));background:none;text-decoration:underline}.kw-nav a:not(.button):focus-visible,.kw-nav a:not(.button):hover{background:var(--text-color,var(--kw-ink));color:var(--bg-color);outline:.1rem solid var(--text-color,var(--kw-ink));text-decoration:none}.kw-tagline{text-align:center;padding:14px var(--kw-gutter);border-bottom:1px solid var(--border-color);letter-spacing:2px;color:var(--kw-muted);width:100vw;max-width:100vw;margin:0 0 0 50%;translate:-50%}.kw-tagline p{margin:0}@media (max-width:520px){.kw-nav{gap:16px}.kw-nav a.kw-hide-mobile{display:none}.kw-tagline{letter-spacing:1.5px;padding:11px 16px}}.kw-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 24px;padding:16px var(--kw-gutter);border-top:1px solid var(--border-color);letter-spacing:1px;color:var(--kw-faint);font-size:var(--kw-text-small)}.kw-footer--center{justify-content:center;text-align:center}.kw-footer a{color:var(--kw-muted)}.kw-footer a:focus-visible,.kw-footer a:hover{color:var(--bg-color)}.kw-footer--stacked{flex-direction:column;align-items:center;text-align:center;gap:8px;padding-top:32px;padding-bottom:32px;line-height:var(--kw-leading)}.kw-footer p{margin:0;max-width:70ch}@media (max-width:520px){.kw-footer{flex-direction:column;align-items:center;text-align:center;gap:5px}}.kw-page{display:flex;flex-direction:column;min-height:100vh;overflow-x:clip}.kw-page>main{flex:1 1}main{width:100%;max-width:var(--kw-main-width);margin-inline:auto}.kw-bleed{width:100vw;max-width:100vw;margin-inline:50% 0;translate:-50%}.kw-container{width:100%;max-width:var(--kw-content-width);margin-inline:auto;padding-inline:var(--kw-gutter)}.kw-section{padding:var(--kw-section-pad) var(--kw-gutter)}.kw-section-title{color:var(--text-color,var(--kw-ink))}.kw-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:20px;gap:20px}.kw-grid--3{grid-template-columns:repeat(3,1fr)}.kw-grid--auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.kw-stack{display:flex;flex-direction:column;gap:20px}@media (max-width:820px){.kw-grid{gap:14px}}@media (max-width:620px){.kw-grid,.kw-grid--3,.kw-grid--auto{grid-template-columns:1fr;gap:12px}}.kw-card{display:flex;flex-direction:column;gap:8px;padding:20px 24px;border:1px solid var(--border-color);border-radius:var(--kw-radius);color:var(--kw-ink);text-align:left;text-decoration:none;background:none;transition:border-color .15s,box-shadow .15s}a.kw-card:focus-visible,a.kw-card:hover{border-color:var(--kw-glow-cyan-line);box-shadow:var(--kw-glow-cyan);background:var(--bg-color);color:var(--kw-ink);text-decoration:none}a.kw-card:focus-visible{outline:2px solid var(--kw-cyan);outline-offset:2px}.kw-card:not(a):focus-within{border-color:var(--kw-glow-green-line);box-shadow:var(--kw-glow-green)}.kw-card-title{margin:0;color:var(--text-color,var(--kw-ink))}.kw-card-desc{flex:1 1;margin:0;color:var(--kw-muted)}.kw-card-desc p{margin:0 0 8px}.kw-notice{border:1px solid var(--text-color,var(--kw-green));border-radius:var(--kw-radius);padding:calc(1rem - 1px);margin:2rem 0;color:var(--kw-ink)}.kw-notice p{margin:0}.kw-notice p+p{margin-top:1rem}hr{width:100vw;max-width:100vw;height:1px;border:0;background:var(--border-color);margin:2rem 0 2rem 50%;translate:-50%}pre{overflow-x:auto;padding:1rem 0;border-radius:1rem;border:1px solid var(--border-color);cursor:text;margin:2rem 0}pre ::selection{background-color:#4b4e6c}pre [data-line]{padding:0 1rem}code{font-family:var(--kw-font)}table{width:100%;border-collapse:collapse;margin:2rem auto}table td,table th{padding:.25rem;border:1px solid var(--border-color);text-align:left}.kw-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}figure.invisible,figure[data-rehype-pretty-code-figure]{margin:0}[data-blog] time{font-size:var(--kw-text-small);font-style:italic;text-align:end;display:block}[data-blog=card]{display:flex;flex-direction:column;gap:6px}[data-blog=card] time{text-align:start}[data-blog] blockquote{border:1px solid var(--kw-green);padding:calc(1rem - 4px);margin:2rem 1rem}[data-blog] blockquote p{margin:0}[data-blog] blockquote p+p{margin-top:1rem}[data-blog] .highlighted blockquote{border:4px solid var(--kw-gold);padding:calc(1.5rem - 6px)}[data-blog] .cyan blockquote{border-color:var(--kw-cyan)}[data-blog] .magenta blockquote{border-color:var(--kw-magenta)}[data-blog] img{max-width:100%!important;display:block;margin:2rem auto}