@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-700-normal.Bxkt5Cjx.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-700-normal.Bth3BMcD.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-ext-700-normal.aMgXseD4.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-700-normal.DZH6Xh-4.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff) format("woff")}:root{--khiip-beige-50: #faf6ee;--khiip-beige-100: #f6f1e7;--khiip-beige-200: #efe8da;--khiip-teal-900: #073634;--khiip-teal-800: #0a4744;--khiip-teal-700: #0e5e5a;--khiip-teal-500: #2f9089;--khiip-teal-300: #6fc3bc;--khiip-teal-100: #cfe8e5;--khiip-rope-tan: #b08d57;--khiip-ink: #1b1a17;--khiip-font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--khiip-font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}:root{--bg: var(--khiip-beige-50);--bg-tint: var(--khiip-beige-100);--border: var(--khiip-beige-200);--text: var(--khiip-ink);--text-muted: #5b574e;--accent: var(--khiip-teal-700);--accent-strong: var(--khiip-teal-900);--accent-tint: var(--khiip-teal-100);--mark: var(--khiip-teal-700);--btn-fill: var(--khiip-teal-700);--btn-fill-hover: var(--khiip-teal-900)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg: #0f1413;--bg-tint: #161f1d;--border: #243230;--text: #e7efed;--text-muted: #9aa8a4;--accent: var(--khiip-teal-300);--accent-strong: #cfe8e5;--accent-tint: #15302c;--mark: var(--khiip-teal-300);--btn-fill: #157f7a;--btn-fill-hover: var(--khiip-teal-500)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--khiip-font-sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.container{width:100%;max-width:52rem;margin:0 auto;padding:0 1.25rem}.container--wide{max-width:64rem}h1,h2,h3,h4{line-height:1.2;font-weight:600;color:var(--text);text-wrap:balance}h1{font-size:clamp(1.9rem,1.3rem + 2.6vw,2.9rem);letter-spacing:-.02em}h2{font-size:clamp(1.45rem,1.1rem + 1.4vw,1.85rem);letter-spacing:-.01em;margin-top:2.75rem}h3{font-size:1.2rem;margin-top:2rem}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--accent-strong)}code,pre,kbd{font-family:var(--khiip-font-mono);font-size:.9em}:not(pre)>code{background:var(--bg-tint);border:1px solid var(--border);border-radius:.25rem;padding:.1em .35em}blockquote{margin:1.5rem 0;padding:.25rem 0 .25rem 1.1rem;border-left:3px solid var(--khiip-rope-tan);color:var(--text-muted)}hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.btn{display:inline-block;font-weight:500;font-size:.95rem;padding:.55rem 1.1rem;border-radius:.4rem;text-decoration:none;border:1px solid var(--accent);transition:background-color .12s ease,color .12s ease}.btn--primary{background:var(--btn-fill);border-color:var(--btn-fill);color:#fff}.btn--primary:hover{background:var(--btn-fill-hover);border-color:var(--btn-fill-hover);color:#fff}.btn--ghost{background:transparent;color:var(--accent)}.btn--ghost:hover{background:var(--accent-tint);color:var(--accent-strong)}.site-header{border-bottom:1px solid var(--border);background:var(--bg-tint)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;max-width:64rem;margin:0 auto}.site-title{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:1.15rem;color:var(--mark);text-decoration:none;border-bottom:2px solid var(--khiip-rope-tan);padding-bottom:.05rem}.site-title__mark{width:1.6rem;height:1.6rem;color:var(--mark);flex:none}.site-nav{display:flex;gap:1.1rem;align-items:center;font-size:.95rem}.site-nav a{text-decoration:none}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;padding:.3rem;margin:-.3rem 0;border:0;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:.35rem;line-height:0;transition:color .15s ease,background .15s ease}.theme-toggle:hover{color:var(--text);background:var(--bg-tint)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle__sun{display:none}.theme-toggle__moon{display:block}:root[data-theme=dark] .theme-toggle__sun{display:block}:root[data-theme=dark] .theme-toggle__moon{display:none}.site-footer{border-top:1px solid var(--border);margin-top:4rem;background:var(--bg-tint);color:var(--text-muted);font-size:.9rem}.site-footer__inner{max-width:64rem;margin:0 auto;padding:2rem 1.25rem 2.5rem}.site-footer__cols{display:flex;flex-wrap:wrap;gap:2.5rem}.site-footer ul{list-style:none;margin:.5rem 0 0;padding:0}.site-footer li{margin:.3rem 0}.site-footer h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0}.site-footer__quiet{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--border);font-size:.85rem}main{padding:2.5rem 0 1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
