@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/JetBrainsMono-Regular.woff2)format('woff2')}@font-face{font-family:jetbrains mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/JetBrainsMono-Italic.woff2)format('woff2')}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/JetBrainsMono-Medium.woff2)format('woff2')}@font-face{font-family:jetbrains mono;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/JetBrainsMono-MediumItalic.woff2)format('woff2')}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/JetBrainsMono-SemiBold.woff2)format('woff2')}@font-face{font-family:jetbrains mono;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/JetBrainsMono-SemiBoldItalic.woff2)format('woff2')}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/JetBrainsMono-Bold.woff2)format('woff2')}@font-face{font-family:jetbrains mono;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/JetBrainsMono-BoldItalic.woff2)format('woff2')}@font-face{font-family:inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Inter-Regular.woff2)format('woff2')}@font-face{font-family:inter;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/Inter-Italic.woff2)format('woff2')}@font-face{font-family:inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Inter-SemiBold.woff2)format('woff2')}@font-face{font-family:inter;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/Inter-SemiBoldItalic.woff2)format('woff2')}@font-face{font-family:inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Inter-Bold.woff2)format('woff2')}@font-face{font-family:inter;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/Inter-BoldItalic.woff2)format('woff2')}:root{--font-mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-sans:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--border-radius-sm:4px;--border-radius-md:6px;--border-radius-lg:10px;--page-max:880px}body.ph-dark{--c-bg:#0e0e10;--c-page-bg:#0a0a0c;--c-surface:#16161a;--c-border:rgba(255, 255, 255, 0.08);--c-border-strong:rgba(255, 255, 255, 0.16);--c-text:#e6e6e6;--c-text-dim:#8a8a92;--c-text-faint:#5a5a62;--c-brand:#40cb63;--c-bit:#d4a574;--c-byte:#6ea8d4;--c-nibble:#7fb069;--c-tag-bg:rgba(110, 168, 212, 0.12)}body.ph-light{--c-bg:#faf8f3;--c-page-bg:#f4f1ea;--c-surface:#ffffff;--c-border:rgba(0, 0, 0, 0.08);--c-border-strong:rgba(0, 0, 0, 0.16);--c-text:#1a1a1a;--c-text-dim:#6a6a6a;--c-text-faint:#9a9a9a;--c-brand:#cc2222;--c-bit:#8b5a2b;--c-byte:#2c5d8a;--c-nibble:#4a7c3a;--c-tag-bg:rgba(44, 93, 138, 0.10)}*,*::before,*::after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-mono);background:var(--c-page-bg);color:var(--c-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}body.ph-dark .ph-mol-light{display:none}body.ph-light .ph-mol-dark{display:none}.ph-wrap{max-width:var(--page-max);margin:40px auto;padding:0 20px}.ph-page{background:var(--c-bg);border:.5px solid var(--c-border);border-radius:var(--border-radius-lg);padding:32px 40px 36px}@media(max-width:600px){.ph-wrap{margin:20px auto;padding:0 12px}.ph-page{padding:22px 20px 26px}}.ph-nav{display:flex;align-items:center;gap:22px;padding:0 0 24px;border-bottom:.5px solid var(--c-border);margin:0 0 36px;flex-wrap:wrap}.ph-brand{display:inline-flex;align-items:center;gap:12px}.ph-mol-nav{width:32px;height:32px;flex-shrink:0;display:block}.ph-logo{font-size:14px;font-weight:500;color:var(--c-text);letter-spacing:-.01em}.ph-logo-accent{color:var(--c-brand)}.ph-nav-spacer{flex:1}.ph-nav-link{font-size:12px;color:var(--c-text-dim)}.ph-nav-link:hover{color:var(--c-text)}.ph-nav-link.ph-active{color:var(--c-brand)}.ph-nav-link.ph-active-byte{color:var(--c-byte)}.ph-nav-link.ph-active-nibble{color:var(--c-nibble)}.ph-nav-link.ph-active-bit{color:var(--c-bit)}.ph-toggle{background:0 0;border:.5px solid var(--c-border-strong);color:var(--c-text-dim);font-family:var(--font-mono);font-size:11px;padding:4px 9px;border-radius:var(--border-radius-sm);cursor:pointer}.ph-toggle:hover{color:var(--c-text);border-color:var(--c-text-dim)}.ph-h1{font-family:var(--font-mono);font-size:24px;font-weight:500;color:var(--c-text);margin:0 0 10px;letter-spacing:-.01em;line-height:1.35}.ph-h1-glyph{color:var(--c-brand)}.ph-h1-slash-byte{color:var(--c-byte)}.ph-h1-slash-nibble{color:var(--c-nibble)}.ph-h1-slash-bit{color:var(--c-bit)}.ph-h1-slash-plain{color:var(--c-text-dim)}.ph-tagline{font-size:14px;color:var(--c-text-dim);margin:0 0 8px;line-height:1.55;max-width:540px}.ph-tagline>p{margin:0}.ph-tagline del,.ph-tagline s,.ph-tagline-strike{text-decoration:line-through;color:var(--c-text-faint)}.ph-tagline strong,.ph-tagline-hl{color:var(--c-brand);font-weight:inherit}.ph-byline{font-size:13px;color:var(--c-text-faint);margin:0 0 40px;line-height:1.55;max-width:540px}.ph-byline>p{margin:0}.ph-byline a{color:var(--c-brand)}.ph-sub{font-size:13px;color:var(--c-text-dim);margin:0 0 32px;max-width:540px;line-height:1.55}.ph-crumb{font-size:12px;color:var(--c-text-faint);margin:0 0 12px}.ph-crumb a{color:var(--c-text-faint)}.ph-crumb a:hover{color:var(--c-text-dim)}.ph-crumb-here{color:var(--c-text-dim)}.ph-crumb-here-byte{color:var(--c-byte)}.ph-crumb-here-nibble{color:var(--c-nibble)}.ph-crumb-here-bit{color:var(--c-bit)}.ph-section-h{display:flex;align-items:baseline;gap:10px;font-size:12px;color:var(--c-text-dim);margin:0 0 14px;letter-spacing:.04em}.ph-section-h-arrow{color:var(--c-brand)}.ph-section-h-rule{flex:1;height:1px;background:var(--c-border)}.ph-section-h-count{color:var(--c-text-faint);font-size:11px}.ph-types{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 40px}.ph-type-card{background:var(--c-surface);border:.5px solid var(--c-border-strong);border-radius:var(--border-radius-md);padding:14px 16px;display:block;color:inherit;transition:border-color 120ms ease,box-shadow 120ms ease}.ph-type-card.ph-byte:hover{border-color:var(--c-byte);box-shadow:0 0 0 1px var(--c-byte)}.ph-type-card.ph-nibble:hover{border-color:var(--c-nibble);box-shadow:0 0 0 1px var(--c-nibble)}.ph-type-card.ph-bit:hover{border-color:var(--c-bit);box-shadow:0 0 0 1px var(--c-bit)}.ph-type-card-name{font-size:14px;font-weight:500;margin:0 0 6px}.ph-type-card.ph-byte .ph-type-card-name{color:var(--c-byte)}.ph-type-card.ph-nibble .ph-type-card-name{color:var(--c-nibble)}.ph-type-card.ph-bit .ph-type-card-name{color:var(--c-bit)}.ph-type-card-desc{font-size:12px;color:var(--c-text-dim);line-height:1.5;margin:0}@media(max-width:600px){.ph-types{grid-template-columns:1fr}}.ph-recent-block{margin-bottom:32px}.ph-recent-list{list-style:none;padding:0;margin:0}.ph-recent-item{display:flex;align-items:baseline;gap:12px;padding:9px 0;border-bottom:.5px dashed var(--c-border);font-size:13px}.ph-recent-item:last-child{border-bottom:none}.ph-recent-marker{color:var(--c-text-faint);width:10px;flex-shrink:0}.ph-recent-title{color:var(--c-text);flex:1}.ph-recent-title:hover{color:var(--c-brand)}.ph-recent-date{color:var(--c-text-faint);font-size:11px;white-space:nowrap}.ph-recent-block.ph-bytes .ph-recent-marker{color:var(--c-byte)}.ph-recent-block.ph-nibbles .ph-recent-marker{color:var(--c-nibble)}.ph-recent-block.ph-bits .ph-recent-marker{color:var(--c-bit)}.ph-empty{font-size:12px;color:var(--c-text-faint);font-style:italic;padding:7px 0;margin:0}.ph-list{display:flex;flex-direction:column;gap:10px}.ph-card{background:var(--c-surface);border:.5px solid var(--c-border-strong);border-radius:var(--border-radius-md);padding:14px 16px;display:block;color:inherit;cursor:pointer;transition:border-color 120ms ease,box-shadow 120ms ease}.ph-card:hover{border-color:var(--c-text-dim);box-shadow:0 0 0 1px var(--c-text-dim)}.ph-card.ph-byte:hover{border-color:var(--c-byte);box-shadow:0 0 0 1px var(--c-byte)}.ph-card.ph-nibble:hover{border-color:var(--c-nibble);box-shadow:0 0 0 1px var(--c-nibble)}.ph-card.ph-bit:hover{border-color:var(--c-bit);box-shadow:0 0 0 1px var(--c-bit)}.ph-card-h{display:flex;align-items:baseline;gap:12px;margin:0 0 6px}.ph-card-num{font-size:11px;color:var(--c-text-faint);width:28px;flex-shrink:0}.ph-card-title{font-size:14px;font-weight:500;color:var(--c-text);flex:1}.ph-card-date{font-size:11px;color:var(--c-text-faint);white-space:nowrap}.ph-card-excerpt{font-size:12px;color:var(--c-text-dim);line-height:1.6;margin:0;padding-left:40px}@media(max-width:600px){.ph-card-excerpt{padding-left:0}}.ph-draft-banner{margin:0 0 12px}.ph-draft{display:inline-block;font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border:.5px solid var(--c-brand);border-radius:3px;color:var(--c-brand);background:0 0;vertical-align:2px;line-height:1.3;flex-shrink:0}.ph-bit-card{cursor:default}.ph-bit-card-title{text-decoration:none;color:var(--c-text)}.ph-bit-card-title:hover{color:var(--c-bit)}.ph-bit-card-body{padding-left:40px;font-size:13px;line-height:1.65;max-width:640px;margin-top:8px}.ph-bit-card-body>:first-child{margin-top:0}.ph-bit-card-body>:last-child{margin-bottom:0}@media(max-width:600px){.ph-bit-card-body{padding-left:0}}.ph-pagination{display:flex;gap:12px;margin:24px 0 0;font-size:12px;color:var(--c-text-faint);justify-content:space-between;align-items:center}.ph-pagination a{color:var(--c-text-dim)}.ph-pagination a:hover{color:var(--c-text)}.ph-pagination-spacer{flex:1}.ph-single-meta{display:flex;align-items:baseline;gap:12px;margin:0 0 28px;font-size:11px;color:var(--c-text-faint)}.ph-single-num{width:28px;flex-shrink:0}.ph-single-date{white-space:nowrap}.ph-single-rule{flex:1;height:1px;background:var(--c-border)}.ph-content{font-family:var(--font-sans);font-size:15px;color:var(--c-text);line-height:1.65;max-width:680px}.ph-content p{margin:0 0 1.2em}.ph-content>:first-child{margin-top:0}.ph-content>:last-child{margin-bottom:0}.ph-content h1,.ph-content h2,.ph-content h3,.ph-content h4,.ph-content h5,.ph-content h6{font-family:var(--font-sans);font-weight:600;letter-spacing:-.015em;margin:2em 0 .6em;line-height:1.3;color:var(--c-text)}.ph-content h1{font-size:22px}.ph-content h2{font-size:19px}.ph-content h3{font-size:17px}.ph-content h4,.ph-content h5,.ph-content h6{font-size:15px;color:var(--c-text-dim)}.ph-content a{color:var(--c-brand);text-decoration:underline;text-decoration-thickness:.5px;text-underline-offset:2px}.ph-content a:hover{text-decoration-thickness:1px}.ph-content strong{font-weight:600}.ph-content em{font-style:italic}.ph-content ul,.ph-content ol{padding-left:1.4em;margin:0 0 1.2em}.ph-content li{margin:.25em 0}.ph-content blockquote{margin:1.2em 0;padding:.4em 0 .4em 16px;border-left:2px solid var(--c-border-strong);color:var(--c-text-dim)}.ph-content hr{border:0;border-top:.5px solid var(--c-border);margin:2em 0}.ph-content code{font-family:var(--font-mono);font-size:.92em;background:var(--c-surface);border:.5px solid var(--c-border);padding:1px 5px;border-radius:var(--border-radius-sm)}.ph-content pre{background:var(--c-surface);border:.5px solid var(--c-border);border-radius:var(--border-radius-md);padding:14px 16px;overflow-x:auto;font-size:12px;line-height:1.55;margin:1.2em 0}.ph-content pre code{background:0 0;border:0;padding:0;font-size:inherit}.ph-content img{border-radius:var(--border-radius-md);border:.5px solid var(--c-border);margin:1.2em 0}.ph-content figure{margin:1.2em 0}.ph-content figcaption{font-size:11px;color:var(--c-text-faint);margin-top:6px}.ph-content table{border-collapse:collapse;width:100%;font-size:12px;margin:1.2em 0}.ph-content th,.ph-content td{border-bottom:.5px solid var(--c-border);padding:6px 10px;text-align:left}.ph-content th{color:var(--c-text-dim);font-weight:500}.ph-lede{font-size:13px;font-style:italic;color:var(--c-text-dim);line-height:1.6;max-width:640px;margin:0 0 24px}.ph-lede a{color:var(--c-brand);text-decoration:underline;text-decoration-thickness:.5px;text-underline-offset:2px}.ph-toc{background:var(--c-surface);border:.5px solid var(--c-border);border-radius:var(--border-radius-md);padding:12px 16px;margin:0 0 28px;font-size:12px}.ph-toc-label{color:var(--c-text-dim);font-size:11px;letter-spacing:.04em;margin:0 0 6px}.ph-toc nav ul{list-style:none;padding-left:0;margin:0}.ph-toc nav ul ul{padding-left:1.2em}.ph-toc nav li{margin:2px 0}.ph-toc nav a{color:var(--c-text-dim)}.ph-toc nav a:hover{color:var(--c-text)}.ph-callout{background:var(--c-surface);border:.5px solid var(--c-border-strong);border-radius:var(--border-radius-md);padding:12px 16px;margin:1.2em 0;font-size:13px;line-height:1.55;color:var(--c-text);display:flex;gap:12px;align-items:flex-start}.ph-callout-emoji{flex-shrink:0}.ph-callout-body{flex:1}.ph-callout-title{font-weight:500;margin:0 0 4px;color:var(--c-text)}.ph-callout-text{margin:0;color:var(--c-text-dim)}.ph-footer{margin:40px 0 0;padding:20px 0 0;border-top:.5px solid var(--c-border);font-size:11px;color:var(--c-text-faint);display:flex;gap:16px;align-items:center;flex-wrap:wrap}.ph-footer-spacer{flex:1}.ph-footer a{color:var(--c-text-faint)}.ph-footer a:hover{color:var(--c-text-dim)}.ph-mol-footer{width:22px;height:22px;flex-shrink:0;display:block}.ph-content .highlight,.ph-content pre.chroma{background:var(--c-surface);border:.5px solid var(--c-border);border-radius:var(--border-radius-md);padding:0;margin:1.2em 0;overflow:hidden}.ph-content .highlight pre,.ph-content pre.chroma{background:0 0;border:0;border-radius:0;margin:0;padding:14px 16px}.chroma{color:var(--c-text)}.chroma .lntable{border-spacing:0;padding:0;margin:0;width:auto;overflow:auto;display:block}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntd:first-child{padding-right:12px}.chroma .ln,.chroma .lnt{color:var(--c-text-faint);user-select:none}.chroma .hl{background:var(--c-tag-bg);display:block}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--c-text-faint);font-style:italic}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:var(--c-brand)}.chroma .n{color:var(--c-text)}.chroma .na{color:var(--c-byte)}.chroma .nb{color:var(--c-byte)}.chroma .nc,.chroma .nn{color:var(--c-byte)}.chroma .nd{color:var(--c-bit)}.chroma .ne{color:var(--c-brand)}.chroma .nf,.chroma .fm{color:var(--c-byte)}.chroma .nl{color:var(--c-text-dim)}.chroma .nt{color:var(--c-brand)}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi{color:var(--c-text)}.chroma .nx{color:var(--c-text)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--c-nibble)}.chroma .se{color:var(--c-bit)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:var(--c-bit)}.chroma .o,.chroma .ow{color:var(--c-text-dim)}.chroma .p{color:var(--c-text-dim)}.chroma .err{color:var(--c-brand);border-bottom:1px dotted var(--c-brand)}.chroma .gd{color:var(--c-brand);background:rgba(204,34,34,6%)}.chroma .gi{color:var(--c-nibble);background:rgba(127,176,105,6%)}.chroma .gh,.chroma .gu{color:var(--c-byte);font-weight:600}.chroma .gs{font-weight:600}.chroma .ge{font-style:italic}.chroma .gr{color:var(--c-brand)}.chroma .gt{color:var(--c-text-dim)}.ph-404{text-align:left}.ph-404-code{font-size:48px;font-weight:600;color:var(--c-brand);margin:0 0 6px;letter-spacing:-.02em}.ph-404-msg{font-size:14px;color:var(--c-text-dim);margin:0 0 24px}