:root{--navy:#081b2c;--harbor:#102a43;--slate:#3c5a72;--parchment:#e9e4d6;--sand:#c7bfae;--white:#fff;--black:#000;--bg:var(--parchment);--panel:var(--sand);--surface:color-mix(in srgb, var(--white) 55%, var(--parchment));--inset:var(--parchment);--ink:var(--navy);--text:var(--harbor);--muted:var(--slate);--line:color-mix(in srgb, var(--slate) 70%, var(--parchment));--line-soft:var(--sand);--accent:var(--slate);--accent-fill:var(--sand);--invert-bg:var(--navy);--invert-fg:var(--parchment);--font-sans:"IBM Plex Sans", system-ui, "Segoe UI", sans-serif;--font-display:"Instrument Serif", Georgia, serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Code", monospace;--radius:2px;--sidebar:272px;--max:1040px;--prose:68ch;--gutter:clamp(16px, 4vw, 48px);color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);margin:0;font-size:17px;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px;text-decoration-color:var(--ink)}::selection{background:var(--invert-bg);color:var(--invert-fg)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}h1,h2,h3,h4{color:var(--ink);margin:0 0 .5em}h1{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(2.5rem,6vw,4.2rem);font-weight:400;line-height:1.02}h2{font-family:var(--font-sans);letter-spacing:-.01em;margin-top:2.2em;font-size:clamp(1.3rem,2.4vw,1.6rem);font-weight:600;line-height:1.25}h3{font-family:var(--font-sans);margin-top:1.8em;font-size:1.1rem;font-weight:600;line-height:1.3}p{margin:0 0 1em}hr{border:0;border-top:1px solid var(--line);margin:3rem 0}.container{width:100%;max-width:var(--max);padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:12px;margin:0 0 1rem;font-size:.75rem;font-weight:500;display:flex}.eyebrow:before{content:"";background:var(--accent);flex:none;width:28px;height:1px}.lede{color:var(--muted);max-width:60ch;font-size:1.15rem}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-size:.85em}.section{padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(40px,6vw,72px)}.page-head{margin-bottom:clamp(28px,4vw,48px);padding-top:clamp(48px,8vw,96px)}.page-head:after{content:"";background:var(--line);height:1px;margin-top:clamp(28px,4vw,44px);display:block}.stripe{gap:3px;width:100%;display:grid}.stripe span{height:3px;display:block}.stripe span:first-child{background:var(--navy)}.stripe span:nth-child(2){background:var(--slate)}.stripe span:nth-child(3){background:var(--parchment)}.grid{gap:24px;display:grid}.grid-2{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}a.card:hover{border-color:var(--ink)}a.card:hover h3{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}.card-body{flex-direction:column;flex:1;gap:8px;padding:20px 22px 22px;display:flex}.card-body h3{margin:0;font-size:1.15rem}.card-body p{color:var(--muted);margin:0;font-size:.95rem}.card-body .eyebrow{margin-bottom:4px}.card-media{aspect-ratio:16/9;background:var(--inset);border-bottom:1px solid var(--line);overflow:hidden}.card-media img{object-fit:cover;object-position:center 65%;width:100%;height:100%;display:block}.tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tag{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line);border-radius:var(--radius);color:var(--text);white-space:nowrap;padding:2px 8px;font-size:.7rem}.tag.accent{background:var(--invert-bg);border-color:var(--invert-bg);color:var(--invert-fg)}.tag.warm{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--ink)}.tag.ok{border-color:var(--accent);color:var(--accent)}.btn{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--ink);border-radius:var(--radius);color:var(--ink);background:0 0;align-items:center;gap:10px;padding:11px 18px;font-size:.8rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-fill)}.btn.primary{background:var(--invert-bg);color:var(--invert-fg)}.btn.primary:hover{background:var(--slate);border-color:var(--slate)}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.placeholder{text-align:center;width:100%;height:100%;min-height:160px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;background:linear-gradient(var(--line-soft) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--line-soft) 1px, transparent 1px) 0 0 / 24px 24px, var(--inset);place-items:center;padding:16px;font-size:.75rem;display:grid}.prose{max-width:var(--prose)}.prose h2{border-top:1px solid var(--line);margin-top:1.6em;padding-top:1.4em}.prose>h2:first-child{border-top:0;margin-top:0;padding-top:0}.prose ul,.prose ol{margin:0 0 1em;padding-left:1.3em}.prose li{margin:.35em 0}.prose ul li::marker{content:"—  ";color:var(--accent)}.prose strong{color:var(--ink);font-weight:600}.prose blockquote{border-left:2px solid var(--accent);background:var(--surface);color:var(--text);margin:1.5em 0;padding:1em 1.3em}.prose blockquote p:last-child{margin:0}.prose code{font-family:var(--font-mono);background:var(--surface);padding:.1em .35em;font-size:.88em}.prose table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.93rem;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px}.prose th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.72rem;font-weight:500}.prose img{border:1px solid var(--line);margin:1.5em 0}.todo{border:1px dashed var(--accent);background:color-mix(in srgb, var(--sand) 35%, transparent);color:var(--text);font-size:.85rem;font-family:var(--font-mono);margin:1.2em 0;padding:.9em 1.1em}.todo:before{content:"TO ADD — ";letter-spacing:.08em;color:var(--ink);font-weight:500}@media (prefers-reduced-motion:no-preference){.page-main{animation:.18s ease-out both fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}}.diagram{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:1.6em 0;padding:16px}.diagram svg{width:100%;height:auto;display:block}.diagram figcaption{color:var(--muted);margin-top:10px;font-size:.85rem}.skip[data-astro-cid-hkbrpulz]{background:var(--invert-bg);color:var(--invert-fg);z-index:100;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip[data-astro-cid-hkbrpulz]:focus{left:8px}.sidebar[data-astro-cid-hkbrpulz]{width:var(--sidebar);z-index:40;background:var(--panel);border-right:1px solid var(--slate);--side-line:color-mix(in srgb, var(--slate) 55%, var(--sand));flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.side-top[data-astro-cid-hkbrpulz]{padding:40px 28px 28px}.identity[data-astro-cid-hkbrpulz]{color:inherit;flex-direction:column;align-items:flex-start;gap:18px;text-decoration:none;display:flex}.avatar[data-astro-cid-hkbrpulz]{border:1px solid var(--navy);border-radius:50%;flex:none;width:96px;height:96px;padding:4px;display:block}.avatar[data-astro-cid-hkbrpulz] img,.monogram[data-astro-cid-hkbrpulz]{object-fit:cover;border-radius:50%;place-items:center;width:100%;height:100%;display:grid}.monogram[data-astro-cid-hkbrpulz]{background:var(--invert-bg);color:var(--invert-fg);font-family:var(--font-display);letter-spacing:.02em;font-size:2.2rem}.id-text[data-astro-cid-hkbrpulz]{flex-direction:column;gap:6px;display:flex}.id-name[data-astro-cid-hkbrpulz]{font-family:var(--font-display);color:var(--ink);font-size:2rem;line-height:1}.id-role[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--harbor);font-size:.72rem;line-height:1.6}.identity[data-astro-cid-hkbrpulz]:hover .id-name[data-astro-cid-hkbrpulz]{text-decoration:underline;text-decoration-color:var(--slate);text-underline-offset:5px;text-decoration-thickness:1px}.side-panel[data-astro-cid-hkbrpulz]{flex-direction:column;flex:1;padding:0 28px 28px;display:flex}.menu-btn[data-astro-cid-hkbrpulz]{display:none}.nav[data-astro-cid-hkbrpulz]{margin:28px 0 24px}.nav[data-astro-cid-hkbrpulz] ol[data-astro-cid-hkbrpulz]{border-top:1px solid var(--side-line);margin:0;padding:0;list-style:none}.nav[data-astro-cid-hkbrpulz] li[data-astro-cid-hkbrpulz]{border-bottom:1px solid var(--side-line)}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{color:var(--text);border-left:2px solid #0000;grid-template-columns:30px 1fr;align-items:baseline;gap:6px;margin-left:-12px;padding:12px 0 12px 12px;text-decoration:none;display:grid}.n-num[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);color:var(--harbor);font-size:.7rem}.n-text[data-astro-cid-hkbrpulz]{flex-direction:column;display:flex}.n-label[data-astro-cid-hkbrpulz]{color:var(--ink);font-size:.98rem;font-weight:500}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover .n-label[data-astro-cid-hkbrpulz]{text-decoration:underline;text-decoration-color:var(--slate);text-underline-offset:4px}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz][aria-current=page]{border-left-color:var(--navy);background:var(--parchment)}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz][aria-current=page] .n-label[data-astro-cid-hkbrpulz]{font-weight:600}.side-foot[data-astro-cid-hkbrpulz]{margin-top:auto;font-size:.82rem}.mail[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);color:var(--ink);word-break:break-all;margin-bottom:10px;font-size:.76rem;display:block}.links[data-astro-cid-hkbrpulz]{flex-wrap:wrap;gap:4px 14px;margin:0 0 18px;padding:0;list-style:none;display:flex}.links[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{color:var(--harbor);font-size:.82rem;text-decoration:none}.links[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover{color:var(--ink);text-decoration:underline}.coords[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);letter-spacing:.08em;color:var(--harbor);text-transform:uppercase;white-space:pre;margin:0;font-size:.66rem}.page[data-astro-cid-hkbrpulz]{margin-left:var(--sidebar);flex-direction:column;min-height:100vh;display:flex}.page-main[data-astro-cid-hkbrpulz]{flex:1}.site-footer[data-astro-cid-hkbrpulz]{border-top:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:72px;padding-top:20px;padding-bottom:32px;font-size:.7rem;display:flex}@media (width<=900px){.sidebar[data-astro-cid-hkbrpulz]{top:0;border-right:0;border-bottom:1px solid var(--slate);width:100%;height:auto;max-height:100vh;position:sticky;inset:auto;overflow:visible}.side-top[data-astro-cid-hkbrpulz]{justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.identity[data-astro-cid-hkbrpulz]{flex-direction:row;align-items:center;gap:12px}.avatar[data-astro-cid-hkbrpulz]{width:44px;height:44px;padding:2px}.monogram[data-astro-cid-hkbrpulz]{font-size:1.05rem}.id-name[data-astro-cid-hkbrpulz]{font-size:1.35rem}.id-role[data-astro-cid-hkbrpulz]{display:none}.menu-btn[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border:1px solid var(--ink);cursor:pointer;background:0 0;padding:8px 14px;font-size:.75rem;display:block}.side-panel[data-astro-cid-hkbrpulz]{max-height:calc(100vh - 69px);padding:0 16px 24px;display:none;overflow-y:auto}.nav-open .side-panel[data-astro-cid-hkbrpulz]{display:flex}.nav[data-astro-cid-hkbrpulz]{margin:20px 0}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{padding:14px 0 14px 12px}.page[data-astro-cid-hkbrpulz]{margin-left:0}}
