@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/jetbrains-mono-latin-700-normal.BYuf6tUa.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-700-normal.D3wTyLJW.woff)format("woff")}:root{--bg:#1e1e2e;--surface:#313244;--raised:#45475a;--border:#45475a;--border-strong:#585b70;--text:#cdd6f4;--text-dim:#a6adc8;--text-muted:#6c7086;--accent:#89b4fa;--accent-dim:#1e90ff;--warn:#f38ba8;--ok:#a6e3a1;--danger:#f38ba8;--info:#74c7ec;--mocha-rosewater:#f5e0dc;--mocha-flamingo:#f2cdcd;--mocha-pink:#f5c2e7;--mocha-mauve:#cba6f7;--mocha-peach:#fab387;--mocha-yellow:#f9e2af;--mocha-teal:#94e2d5;--mocha-sapphire:#74c7ec;--mocha-lavender:#b4befe;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--unit:8px;--maxw:1280px}[data-theme=light]{--bg:#f4f1ea;--surface:#ede8dd;--raised:#e4dece;--border:#d6ceb8;--border-strong:#b8ae92;--text:#1a1815;--text-dim:#3d3930;--text-muted:#6b6455;--accent:#1f6feb;--accent-dim:#0e4bb0}[data-theme=dark]{--bg:#0a0a0a;--surface:#0d1117;--raised:#12171f;--border:#1f2630;--border-strong:#30363d;--text:#e6edf3;--text-dim:#9aa5b1;--text-muted:#6e7681;--accent:#3b9dff;--accent-dim:#1f6feb;--warn:#d29922;--ok:#3fb950;--danger:#f85149}[data-bg=offblack]{--bg:#0d1117;--surface:#161b22;--raised:#1c2129}[data-bg=navy]{--bg:#0b1220;--surface:#111a2e;--raised:#172340}[data-font=jetbrains]{--font-mono:"JetBrains Mono", ui-monospace, monospace}[data-accent=blue]{--accent:#89b4fa;--accent-dim:#1e90ff}[data-accent=rosewater]{--accent:#f5e0dc;--accent-dim:#f2cdcd}[data-accent=flamingo]{--accent:#f2cdcd;--accent-dim:#f5c2e7}[data-accent=pink]{--accent:#f5c2e7;--accent-dim:#cba6f7}[data-accent=mauve]{--accent:#cba6f7;--accent-dim:#b4befe}[data-accent=red]{--accent:#f38ba8;--accent-dim:#f5c2e7}[data-accent=maroon]{--accent:#eba0ac;--accent-dim:#f38ba8}[data-accent=peach]{--accent:#fab387;--accent-dim:#f9e2af}[data-accent=yellow]{--accent:#f9e2af;--accent-dim:#fab387}[data-accent=green]{--accent:#a6e3a1;--accent-dim:#94e2d5}[data-accent=teal]{--accent:#94e2d5;--accent-dim:#74c7ec}[data-accent=sky]{--accent:#74c7ec;--accent-dim:#89dceb}[data-accent=sapphire]{--accent:#74c7ec;--accent-dim:#89b4fa}[data-accent=lavender]{--accent:#b4befe;--accent-dim:#cba6f7}html,body{background:var(--bg);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;font-feature-settings:"liga" 0, "calt" 0;font-size:14px;line-height:1.55}body{min-height:100vh;overflow-x:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip-link{z-index:9999;background:var(--accent);color:var(--bg);border-radius:0 0 4px 4px;padding:8px 16px;font-size:12px;font-weight:600;text-decoration:none;position:absolute;top:-100%;left:8px}.skip-link:focus{top:0}img,video{max-width:100%;display:block}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}input,textarea{font-family:inherit;font-size:inherit;color:inherit}.dim{color:var(--text-dim)}.muted{color:var(--text-muted)}.accent{color:var(--accent)}.uppercase{text-transform:uppercase;letter-spacing:.08em}.small{font-size:11px}.xsmall{font-size:10px}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:50;background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 32px;font-size:12px;display:flex;position:sticky;top:0}.topbar .brand{color:var(--text);align-items:center;gap:8px;font-weight:500;text-decoration:none;display:flex}.topbar .brand .cursor{background:var(--accent);vertical-align:-2px;width:8px;height:14px;animation:1.1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.topbar nav{align-items:center;gap:2px;display:flex}.topbar nav a{color:var(--text-muted);padding:6px 12px;font-size:12px;text-decoration:none;transition:color .15s;position:relative}.topbar nav a:hover{color:var(--text)}.topbar nav a.active{color:var(--accent)}.topbar nav a.active:before{content:"> ";color:var(--accent)}.topbar .right{color:var(--text-muted);align-items:center;gap:16px;font-size:11px;display:flex}.topbar .kbd{border:1px solid var(--border-strong);color:var(--text-dim);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:2px 6px;font-family:inherit;font-size:10px;display:inline-flex}.topbar .kbd:hover{color:var(--text);border-color:var(--text-muted)}.page{max-width:var(--maxw);flex:1;width:100%;margin:0 auto;padding:48px 32px 80px}.man-h{color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:8px;font-size:11px}.prompt:before{content:"$ ";color:var(--accent)}.pathline{color:var(--text-muted);margin-bottom:6px;font-size:11px}.pathline .slash{color:var(--border-strong)}.footer{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;padding:20px 32px;font-size:11px;display:flex}.footer .links{gap:20px;display:flex}.footer a:hover{color:var(--text)}.hero{border-bottom:1px dashed var(--border);margin-bottom:40px;padding:40px 0 56px}.hero .kicker{color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;margin-bottom:24px;font-size:11px}.hero h1{letter-spacing:-.04em;margin-bottom:24px;font-size:clamp(44px,7vw,88px);font-weight:600;line-height:1.02}.hero h1 .highlight{color:var(--accent)}.hero .lede{max-width:560px;color:var(--text-dim);margin-bottom:32px;font-size:14px;line-height:1.6}.hero .stats{border-top:1px solid var(--border);gap:32px;padding-top:20px;font-size:11px;display:flex}.hero .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.hero .stat-val{color:var(--text);font-size:14px}.hero .stat-val .accent{color:var(--accent)}.hero-with-scrub{align-items:center;gap:48px;display:flex}.hero-with-scrub .hero-text{flex:1;min-width:0}.impact{border:1px solid var(--border);background:var(--surface);margin-bottom:40px;padding:24px}.impact-label{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-bottom:20px;font-size:10px}.impact-stats{flex-wrap:wrap;gap:32px;margin-bottom:16px;display:flex}.impact-stats .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;font-size:11px}.impact-stats .stat-val{color:var(--text);font-size:20px}.impact-stats .stat-val .accent{color:var(--accent)}.impact-ctx{color:var(--text-dim);margin-bottom:16px;font-size:13px;line-height:1.6}.impact-link{color:var(--accent);letter-spacing:.05em;font-size:12px;text-decoration:none;transition:transform .15s;display:inline-block}.impact-link:hover{transform:translate(4px)}.callout{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:inherit;align-items:center;gap:16px;margin-bottom:40px;padding:16px 20px;text-decoration:none;transition:border-color .15s;display:flex}.callout:hover{border-color:var(--accent)}.callout .glyph{color:var(--warn);flex-shrink:0;font-size:16px}.callout .content{flex:1}.callout .title{color:var(--text);margin-bottom:2px;font-size:13px}.callout .sub{color:var(--text-muted);font-size:11px}.callout .arrow{color:var(--text-muted);transition:transform .15s,color .15s}.callout:hover .arrow{color:var(--accent);transform:translate(4px)}.filters{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:32px;display:flex}.filters .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;margin-right:8px;font-size:10px}.filters button{color:var(--text-dim);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:11px;transition:all .15s;display:inline-flex}.filters button .count{color:var(--text-muted);font-size:10px}.filters button:hover{color:var(--text);border-color:var(--border-strong)}.filters button.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.filters button.active .count{color:var(--bg);opacity:.7}.filters button .key{color:var(--text-muted);border:1px solid var(--border);margin-right:2px;padding:0 3px;font-size:9px}.filters button.active .key{color:var(--bg);border-color:#0003}.grid{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:32px;display:grid}.card{background:var(--bg);cursor:pointer;min-height:230px;color:inherit;flex-direction:column;gap:12px;padding:22px 22px 20px;text-decoration:none;transition:background .15s;display:flex;position:relative}.card-cover{flex-shrink:0;height:140px;margin:-22px -22px 0;overflow:hidden}.card-cover img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.card:hover .card-cover img{transform:scale(1.03)}.card:hover{background:var(--surface)}.card:hover .card-title{color:var(--accent)}.card .tag{background:var(--raised);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--border);align-self:flex-start;align-items:center;gap:4px;padding:3px 8px;font-size:10px;display:inline-flex}.card-title{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:600;line-height:1.35;transition:color .15s}.card-sub{color:var(--text-muted);flex:1;font-size:12px;line-height:1.55}.card-meta{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;border-top:1px dashed var(--border);justify-content:space-between;align-items:center;padding-top:12px;font-size:10px;display:flex}.card-meta .read{color:var(--accent);align-items:center;gap:6px;display:inline-flex}.card:hover .read:after{transform:translate(4px)}.card-meta .read:after{content:"→";transition:transform .15s}.card .idx{color:var(--text-muted);letter-spacing:.1em;font-size:10px;position:absolute;top:22px;right:22px}.show-more{justify-content:center;padding:32px 0;display:flex}.show-more button{border:1px solid var(--border-strong);color:var(--text-dim);text-transform:uppercase;letter-spacing:.15em;cursor:pointer;background:0 0;padding:12px 32px;font-family:inherit;font-size:11px;transition:all .15s}.show-more button:hover{border-color:var(--accent);color:var(--accent)}.index-contact{border:1px solid var(--border);background:var(--surface);flex-direction:column;align-items:flex-start;gap:12px;margin-top:64px;padding:32px;display:flex}.index-contact-label{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);font-size:10px}.index-contact-text{color:var(--text-dim);font-size:14px;line-height:1.5}.index-contact-btn{border:1px solid var(--accent);color:var(--accent);letter-spacing:.05em;align-items:center;gap:8px;padding:12px 20px;font-family:inherit;font-size:12px;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.index-contact-btn:hover{background:var(--accent);color:var(--bg)}.palette-backdrop{z-index:100;background:#000000b3;place-items:start center;padding-top:15vh;animation:.15s ease-out fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.palette{background:var(--bg);border:1px solid var(--border-strong);width:min(640px,90vw);animation:.15s ease-out slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.palette .search{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:16px 20px;display:flex}.palette .search:before{content:"$";color:var(--accent);font-weight:600}.palette input{background:0 0;border:none;outline:none;flex:1;font-size:14px}.palette input::placeholder{color:var(--text-muted)}.palette .results{max-height:400px;padding:8px 0;overflow-y:auto}.palette .section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;padding:10px 20px 4px;font-size:10px}.palette .result{cursor:pointer;color:inherit;justify-content:space-between;align-items:center;padding:10px 20px;text-decoration:none;transition:background .1s;display:flex}.palette .result:hover,.palette .result.active{background:var(--surface)}.palette .result:hover .name,.palette .result.active .name{color:var(--accent)}.palette .result .name{font-size:13px}.palette .result .meta{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.palette .footer-bar{border-top:1px solid var(--border);color:var(--text-muted);gap:20px;padding:10px 20px;font-size:10px;display:flex}.palette .footer-bar .kbd{border:1px solid var(--border-strong);margin-right:4px;padding:2px 5px}.manpage{max-width:760px;margin:0 auto;font-size:14px;line-height:1.7}.manpage .back{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:32px;font-size:11px;text-decoration:none;transition:color .15s;display:inline-flex}.manpage .back:hover{color:var(--accent)}.article-cover{border:1px solid var(--border);max-height:340px;margin:24px 0 32px;overflow:hidden}.article-cover img{object-fit:cover;width:100%;height:100%;display:block}.manpage h1{letter-spacing:-.02em;margin:8px 0 16px;font-size:32px;font-weight:600;line-height:1.2}.manpage .lede{color:var(--text-dim);margin-bottom:32px;font-size:15px;line-height:1.65}.manpage .meta-row{color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:24px;margin-bottom:40px;padding:12px 0;font-size:11px;display:flex}.manpage .meta-row span strong{color:var(--text);font-weight:500}.manpage h2{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);border-bottom:1px solid var(--border);margin:40px 0 16px;padding-bottom:8px;font-size:11px}.manpage h3{color:var(--text);margin:24px 0 10px;font-size:13px;font-weight:600}.manpage p{color:var(--text-dim);margin-bottom:16px}.manpage ul,.manpage ol{color:var(--text-dim);margin:0 0 16px 20px;list-style:outside}.manpage ol{list-style:decimal}.manpage li{margin-bottom:6px}.manpage pre{background:var(--surface);border:1px solid var(--border);color:var(--text);margin:16px 0 24px;padding:16px 20px;font-size:12.5px;line-height:1.6;overflow-x:auto}.manpage code{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:1px 6px;font-size:12.5px}.manpage pre code{background:0 0;border:none;padding:0}.manpage a{color:var(--accent);text-decoration:underline #3b9dff66;transition:text-decoration-color .15s}.manpage a:hover{text-decoration-color:var(--accent)}.manpage blockquote{border-left:2px solid var(--accent);background:var(--surface);color:var(--text-dim);margin:16px 0;padding:10px 16px;font-size:13px}.manpage table{border-collapse:collapse;width:100%;margin:16px 0 24px;font-size:13px}.manpage th,.manpage td{border:1px solid var(--border);text-align:left;padding:8px 12px}.manpage th{background:var(--raised);color:var(--text);font-weight:600}.manpage td{color:var(--text-dim)}.manpage img{border:1px solid var(--border);margin:16px 0}.manpage hr{border:none;border-top:1px solid var(--border);margin:40px 0}.manpage :global(.callout){border:1px solid var(--border);cursor:default;background:var(--surface);margin:16px 0 24px}.manpage :global(.callout-title){letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--border);padding:8px 14px;font-size:11px;font-weight:700}.manpage :global(.callout-content){padding:12px 14px}.manpage :global(.callout-content p:last-child){margin-bottom:0}.manpage :global(.callout-warning){border-left:2px solid var(--warn)}.manpage :global(.callout-warning .callout-title){color:var(--warn)}.manpage :global(.callout-danger){border-left:2px solid var(--danger)}.manpage :global(.callout-danger .callout-title){color:var(--danger)}:is(.manpage :global(.callout-note),.manpage :global(.callout-info)){border-left:2px solid var(--accent)}:is(.manpage :global(.callout-note .callout-title),.manpage :global(.callout-info .callout-title)){color:var(--accent)}:is(.manpage :global(.callout-tip),.manpage :global(.callout-success)){border-left:2px solid var(--ok)}:is(.manpage :global(.callout-tip .callout-title),.manpage :global(.callout-success .callout-title)){color:var(--ok)}.manpage :global(.wiki-link){color:var(--accent);text-decoration:underline #3b9dff66}.cv{grid-template-columns:200px 1fr;gap:48px;display:grid}.cv aside{color:var(--text-muted);align-self:start;font-size:11px;position:sticky;top:80px}.cv aside .block{margin-bottom:24px}.cv aside .block-title{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:6px;font-size:10px}.cv aside .block-val{color:var(--text);font-size:12px;line-height:1.5}.cv main{max-width:720px}.cv .section{margin-bottom:48px}.cv .section-head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:10px;font-size:11px}.cv .entry{border-bottom:1px dashed var(--border);grid-template-columns:100px 1fr;gap:24px;padding:14px 0;display:grid}.cv .entry:last-child{border-bottom:none}.cv .entry .date{color:var(--text-muted);padding-top:2px;font-size:11px}.cv .entry .role{color:var(--text);margin-bottom:3px;font-size:14px;font-weight:500}.cv .entry .org{color:var(--accent);margin-bottom:6px;font-size:12px}.cv .entry .desc{color:var(--text-dim);font-size:12.5px;line-height:1.6}.cv .skill-grid{grid-template-columns:repeat(2,1fr);gap:16px 32px;display:grid}.cv .skill-cat-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-size:10px}.cv .skill-list{color:var(--text);font-size:12.5px;line-height:1.7}.cv .download{border:1px solid var(--border-strong);text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);cursor:pointer;background:0 0;align-items:center;gap:10px;padding:10px 16px;font-family:inherit;font-size:11px;text-decoration:none;transition:all .15s;display:inline-flex}.cv .download:hover{border-color:var(--accent);color:var(--accent)}.cv .cv-download-wrap{flex-direction:column;gap:8px;margin-top:16px;display:flex}.cta-contact{background:var(--accent);text-transform:uppercase;letter-spacing:.1em;padding:9px 14px;font-size:11px;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-block;color:#000!important}.cta-contact:hover{opacity:.85}.cv .kpi-strip{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.cv .kpi-item{background:var(--surface);text-align:center;padding:16px 18px}.cv .kpi-value{color:var(--accent);letter-spacing:-.02em;margin-bottom:6px;font-size:22px;font-weight:700;line-height:1}.cv .kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;line-height:1.4}.cv .entry-items{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.cv .entry-items li{color:var(--text-dim);padding-left:14px;font-size:12.5px;line-height:1.6;position:relative}.cv .entry-items li:before{content:"—";color:var(--text-muted);font-size:10px;position:absolute;top:3px;left:0}.cv .gains-table{border:1px solid var(--border);background:var(--border);flex-direction:column;gap:1px;margin-top:12px;display:flex}.cv .gains-row{background:var(--surface);justify-content:space-between;align-items:baseline;gap:16px;padding:6px 12px;display:flex}.cv .gains-label{color:var(--text-muted);font-size:11px}.cv .gains-value{color:var(--accent);white-space:nowrap;font-size:11px;font-weight:600}.cv .entry-note{color:var(--text-muted);margin-top:8px;font-size:11px;font-style:italic;line-height:1.5}.cv .entry-maturity{border:1px solid var(--border);color:var(--accent);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-top:8px;padding:3px 7px;font-size:9px;font-weight:700;display:inline-block}.about{max-width:680px;margin:0 auto;font-size:14.5px;line-height:1.75}.about p{color:var(--text-dim);margin-bottom:18px}.about p strong{color:var(--text);font-weight:500}.about p .accent{color:var(--accent)}.about code{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:1px 6px;font-size:12.5px}.projects-list{border:1px solid var(--border);flex-direction:column;display:flex}.project-row{border-bottom:1px solid var(--border);cursor:pointer;grid-template-columns:60px 1fr 160px 120px 24px;align-items:center;gap:24px;padding:22px 24px;transition:background .15s;display:grid}.project-row:last-child{border-bottom:none}.project-row .num{color:var(--text-muted);font-size:11px}.project-row .name{color:var(--text);letter-spacing:-.01em;margin-bottom:4px;font-size:16px;font-weight:500}.project-row:hover .name{color:var(--accent)}.project-row .desc{color:var(--text-muted);font-size:12px}.project-row .stack{color:var(--text-dim);font-size:11px}.project-row .status{text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--border);color:var(--text-muted);padding:3px 8px;font-size:10px;display:inline-block}.project-row .status.live{color:var(--ok);border-color:var(--ok)}.project-row .status.wip{color:var(--warn);border-color:var(--warn)}.project-row .arrow{color:var(--text-muted);transition:transform .15s,color .15s}.project-row:hover .arrow{color:var(--accent);transform:translate(3px)}.arrow-tuto{white-space:nowrap;font-size:11px;text-decoration:none;color:var(--accent)!important}.arrow-tuto:hover{text-decoration:underline}.arrow-none{color:var(--text-muted);opacity:.4}.now{max-width:680px;margin:0 auto}.now .now-meta{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:10px;font-size:11px}.now h2{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin:30px 0 12px;font-size:11px}.now p{color:var(--text-dim);margin-bottom:14px;font-size:14px;line-height:1.7}.now ul{color:var(--text-dim);margin-left:20px;font-size:13.5px;line-height:1.8;list-style:outside}.now li strong{color:var(--text);font-weight:500}.now .accent-box{border-left:2px solid var(--accent);background:var(--surface);margin:16px 0;padding:10px 16px;font-size:13px}.contact{max-width:680px;margin:0 auto}.contact h1{letter-spacing:-.03em;margin-bottom:20px;font-size:40px;font-weight:600}.contact .lede{color:var(--text-dim);max-width:520px;margin-bottom:28px;font-size:14px;line-height:1.7}.contact .mailto-cta{border:1px solid var(--accent);color:var(--accent);letter-spacing:.05em;align-items:center;gap:10px;margin-bottom:36px;padding:14px 24px;font-family:inherit;font-size:13px;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.contact .mailto-cta:hover{background:var(--accent);color:var(--bg)}.contact-lines{border-top:1px solid var(--border)}.contact-line{border-bottom:1px solid var(--border);grid-template-columns:120px 1fr 120px;align-items:center;gap:20px;padding:16px 0;font-size:13px;display:grid}.contact-line .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;font-size:10px}.contact-line .value{color:var(--text)}.contact-line .action{color:var(--text-muted);text-align:right;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:10px;transition:color .15s}.contact-line .action:hover{color:var(--accent)}.page-transition{animation:.25s ease-out pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.grid{grid-template-columns:repeat(2,1fr)}.cv{grid-template-columns:1fr}.cv aside{position:static}.project-row{grid-template-columns:40px 1fr 32px}.project-row .stack,.project-row .status{display:none}.hero h1{font-size:48px}.topbar{padding:12px 16px}.topbar nav{gap:0}.topbar nav a{padding:4px 6px;font-size:11px}.topbar .right{display:none}.page{padding:32px 16px 60px}}@media (width<=600px){.grid{grid-template-columns:1fr}.cv .entry{grid-template-columns:1fr;gap:4px}.cv .skill-grid,.cv .kpi-strip{grid-template-columns:1fr}.contact-line{grid-template-columns:1fr;gap:4px}.contact-line .action{text-align:left}}@media print{@page{size:A4 portrait;margin:16mm 18mm}.topbar,.footer,.pathline,.cv-download-wrap,.cta-contact,.page-transition,.command-palette{display:none!important}*,:before,:after{box-shadow:none!important;text-shadow:none!important}body,html{print-color-adjust:exact;color:#111!important;background:#fff!important;font-size:10pt!important;line-height:1.5!important}a{color:inherit!important;text-decoration:none!important}.shell{max-width:none!important}.page{max-width:none!important;padding:0!important}.cv{grid-template-columns:140pt 1fr!important;gap:24pt!important;display:grid!important}.cv aside{border-right:.5pt solid #ccc;padding-right:16pt;font-size:8.5pt!important;position:static!important}.cv main{max-width:none!important}.cv aside .block{margin-bottom:14pt!important}.cv aside .block-title{text-transform:uppercase;letter-spacing:.12em;color:#888!important;margin-bottom:3pt!important;font-size:7pt!important}.cv aside .block-val{color:#111!important;font-size:8.5pt!important}.cv .section{margin-bottom:18pt!important}.cv .section-head{text-transform:uppercase;letter-spacing:.15em;color:#555!important;border-bottom:.5pt solid #bbb!important;margin-bottom:10pt!important;padding-bottom:5pt!important;font-size:7.5pt!important}.cv .entry{page-break-inside:avoid;break-inside:avoid;border-bottom:.5pt dashed #ddd!important;grid-template-columns:72pt 1fr!important;gap:12pt!important;padding:8pt 0!important;display:grid!important}.cv .entry:last-child{border-bottom:none!important}.cv .entry .date{color:#888!important;padding-top:1pt!important;font-size:8pt!important}.cv .entry .role{color:#111!important;margin-bottom:2pt!important;font-size:10pt!important;font-weight:600!important}.cv .entry .org{color:#1a56db!important;margin-bottom:5pt!important;font-size:8.5pt!important}.cv .entry-items{gap:3pt!important}.cv .entry-items li{color:#333!important;padding-left:12pt!important;font-size:9pt!important;line-height:1.45!important}.cv .entry-items li:before{color:#aaa!important;font-size:8pt!important}.cv .gains-table{page-break-inside:avoid;break-inside:avoid;background:#e8e8e8!important;border:.5pt solid #ccc!important;margin-top:8pt!important}.cv .gains-row{background:#f7f7f7!important;padding:4pt 10pt!important}.cv .gains-label{color:#555!important;font-size:8.5pt!important}.cv .gains-value{color:#1a56db!important;font-size:8.5pt!important;font-weight:600!important}.cv .entry-note{color:#666!important;margin-top:5pt!important;font-size:8pt!important}.cv .kpi-strip{page-break-inside:avoid;break-inside:avoid;background:#e0e0e0!important;border:.5pt solid #ccc!important}.cv .kpi-item{background:#f5f5f5!important;padding:10pt 12pt!important}.cv .kpi-value{color:#1a56db!important;font-size:16pt!important}.cv .kpi-label{color:#666!important;font-size:7.5pt!important}.cv .skill-grid{gap:10pt 24pt!important}.cv .skill-cat-title{color:#888!important;font-size:7.5pt!important}.cv .skill-list{font-size:9pt!important}.cv .section:nth-child(3){page-break-before:always;break-before:always}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.topbar .brand .cursor,.hero-scroll-hint{opacity:1;animation:none!important}.page-transition{animation:none!important}}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-500-normal.lFbtlQH6.woff2)format("woff2"),url(/_astro/space-grotesk-latin-500-normal.CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-latin-600-normal.DjKNqYRj.woff2)format("woff2"),url(/_astro/space-grotesk-latin-600-normal.BflQw4A9.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-latin-700-normal.RjhwGPKo.woff2)format("woff2"),url(/_astro/space-grotesk-latin-700-normal.CwsQ-cCU.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/manrope-latin-400-normal.PaqtzbVb.woff2)format("woff2"),url(/_astro/manrope-latin-400-normal.8tf8FM3T.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/manrope-latin-500-normal.BYYD-dBL.woff2)format("woff2"),url(/_astro/manrope-latin-500-normal.DMZssgOp.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/manrope-latin-600-normal.4f0koTD-.woff2)format("woff2"),url(/_astro/manrope-latin-600-normal.BqgrALkZ.woff)format("woff")}:root{--bg:#24273a;--bg2:#1e2030;--bg3:#181926;--s0:#363a4f;--s1:#494d64;--s2:#5b6078;--ink:#cad3f5;--ink2:#b8c0e0;--ink3:#a5adcb;--ink4:#8087a2;--ink5:#6e738d;--blue:#8aadf4;--sapphire:#7dc4e4;--sky:#91d7e3;--mauve:#c6a0f6;--peach:#f5a97f;--green:#a6da95;--yellow:#eed49f;--red:#ed8796;--lavender:#b7bdf8;--rule:#cad3f51a;--rule2:#cad3f530;--rule3:#cad3f54d;--glow-b:#8aadf46b;--glow-s:#7dc4e457;--f-blue:#8caaee;--f-sapphire:#85c1dc;--f-sky:#99d1db;--f-teal:#81c8be;--f-green:#a6d189;--f-yellow:#e5c890;--f-peach:#ef9f76;--f-maroon:#ea999c;--f-red:#e78284;--f-pink:#f4b8e4;--f-mauve:#ca9ee6;--f-lavender:#babbf1;--f-flamingo:#eebebe;--f-rosewater:#f2d5cf;--acc:var(--blue);--surface:var(--bg2);--raised:var(--s0);--border:var(--rule2);--border-strong:var(--rule3);--text:var(--ink);--text-dim:var(--ink3);--text-muted:var(--ink5);--accent:var(--blue);--accent-dim:var(--sapphire);--ok:var(--green);--warn:var(--yellow);--danger:var(--red);--font-mono:var(--mono);--disp:"Space Grotesk", system-ui, sans-serif;--sans:"Manrope", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--s1u:4px;--s2u:8px;--s3u:12px;--s4u:16px;--s5u:24px;--s6u:32px;--s7u:48px;--s8u:72px;--s9u:112px;--s10u:160px;--maxw:1320px;--gut:34px;--e1:cubic-bezier(.22, .68, 0, 1);--e2:cubic-bezier(.16, 1, .3, 1);--t1:.14s;--t2:.28s;--t3:.56s;--t4:.9s}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-size:16px;line-height:1.62;overflow-x:hidden}::selection{background:var(--blue);color:var(--bg3)}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input{font:inherit;color:inherit}svg{display:block}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--blue);outline-offset:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg3)}::-webkit-scrollbar-thumb{background:var(--s1)}::-webkit-scrollbar-thumb:hover{background:var(--s2)}.display{font-family:var(--disp);letter-spacing:-.035em;font-weight:600;line-height:.94}.d0{letter-spacing:-.045em;font-size:clamp(46px,9vw,138px);font-weight:700;line-height:.88}.d1{font-size:clamp(34px,5vw,74px)}.d2{letter-spacing:-.03em;margin-bottom:-.14em;padding-bottom:.14em;font-size:clamp(28px,3.4vw,50px);line-height:1.02}.d3{letter-spacing:-.025em;font-size:clamp(22px,2.2vw,32px);line-height:1.06}.h1{font-family:var(--disp);letter-spacing:-.02em;font-size:26px;font-weight:600;line-height:1.14}.h2{font-family:var(--disp);letter-spacing:-.015em;font-size:20px;font-weight:600;line-height:1.2}.lede{color:var(--ink2);max-width:56ch;font-size:18px;font-weight:400;line-height:1.58}.body{color:var(--ink2);font-size:16px;line-height:1.68}.small{color:var(--ink3);font-size:14px;line-height:1.6}.rail{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink4);font-size:10.5px;font-weight:500}.rail-acc{color:color-mix(in srgb, var(--acc) 80%, var(--ink2))}.meta{font-family:var(--mono);letter-spacing:.06em;color:var(--ink4);font-size:11.5px}.mono{font-family:var(--mono)}strong{color:var(--ink);font-weight:700}em{font-style:italic}.hl{color:var(--blue)}.hl-s{color:var(--sapphire)}.shell{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.wrap{width:100%;max-width:var(--maxw);padding:0 var(--gut);margin:0 auto}.view{flex:1}.act{padding:var(--s8u) 0;position:relative}.act-head{align-items:end;gap:var(--s5u);padding-bottom:var(--s5u);border-bottom:1px solid var(--rule);margin-bottom:var(--s6u);grid-template-columns:minmax(0,1fr) auto;display:grid}.act-num{font-family:var(--mono);letter-spacing:.2em;color:var(--ink5);text-align:right;white-space:nowrap;font-size:10.5px}.hair{background:var(--rule);border:0;height:1px}.field{z-index:0;pointer-events:none;display:block;position:fixed;inset:0}.vign{z-index:0;pointer-events:none;background:radial-gradient(120% 80% at 50% 0,#0000 40%,#1819268c 100%),linear-gradient(#0000 60%,#181926b3 100%);position:fixed;inset:0}.scan{z-index:0;pointer-events:none;opacity:.35;background:repeating-linear-gradient(#cad3f507 0 1px,#0000 1px 3px);position:fixed;inset:0}.masthead{z-index:60;background:color-mix(in srgb, var(--bg) 94%, var(--bg3));border-bottom:1px solid var(--rule);position:sticky;top:0}.masthead .bar{justify-content:space-between;align-items:center;gap:var(--s5u);height:62px;display:flex}.wordmark{white-space:nowrap;align-items:center;gap:10px;display:flex}.wordmark .dot{background:var(--blue);width:7px;height:7px;box-shadow:0 0 0 3px #8aadf429, 0 0 14px var(--glow-b);border-radius:50%}.wordmark .nm{font-family:var(--disp);letter-spacing:-.02em;font-size:15px;font-weight:600}.wordmark .tag{font-family:var(--mono);letter-spacing:.2em;color:var(--ink5);text-transform:uppercase;font-size:10px}.mini{font-family:var(--disp);letter-spacing:-.01em;color:var(--ink3);opacity:calc((var(--hp,0) - .55) * 3);pointer-events:none;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.mnav{align-items:center;gap:var(--s5u);display:flex}.mnav a{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink4);transition:color var(--t1) var(--e1);padding:6px 0;font-size:10.5px;font-weight:500;position:relative}.mnav a:hover,.mnav a.on{color:var(--ink)}.mnav a.on:after{content:"";background:var(--blue);height:1px;box-shadow:0 0 10px var(--glow-b);position:absolute;bottom:0;left:0;right:0}.kbd{font-family:var(--mono);letter-spacing:.1em;color:var(--ink4);border:1px solid var(--rule2);transition:color var(--t1), border-color var(--t1), box-shadow var(--t1);justify-content:center;align-items:center;padding:5px 9px;font-size:10px;display:inline-flex}.kbd:hover{color:var(--ink);border-color:var(--blue);box-shadow:0 0 18px -6px var(--glow-b)}.kbd-mob{display:none}.mnav-m{z-index:55;background:color-mix(in srgb, var(--bg) 94%, var(--bg3));border-bottom:1px solid var(--rule);scrollbar-width:none;gap:2px;padding:0 14px;display:none;position:sticky;top:62px;overflow-x:auto}.mnav-m::-webkit-scrollbar{display:none}.mnav-m a{min-height:46px;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink4);white-space:nowrap;flex:none;align-items:center;padding:0 14px;font-size:10.5px;font-weight:500;display:flex;position:relative}.mnav-m a.on{color:var(--ink)}.mnav-m a.on:after{content:"";background:var(--blue);height:1px;box-shadow:0 0 10px var(--glow-b);position:absolute;bottom:0;left:12px;right:12px}.prail{z-index:50;pointer-events:none;flex-direction:column;gap:14px;display:none;position:fixed;top:50%;left:22px;transform:translateY(-50%)}@media (width>=1560px){.prail{display:flex}}.prail .p{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink5);align-items:center;gap:9px;font-size:9px;display:flex}.prail .p i{background:var(--s1);width:16px;height:1px;transition:background var(--t2), width var(--t2);display:block}.prail .p.on{color:var(--sapphire)}.prail .p.on i{background:var(--sapphire);width:26px;box-shadow:0 0 10px var(--glow-s)}.prail .bar{background:var(--rule);z-index:-1;width:1px;position:absolute;top:-26px;bottom:-26px;left:3px}.prail .bar:after{content:"";width:1px;height:calc(var(--sp,0) * 100%);background:linear-gradient(180deg, var(--blue), var(--sapphire));box-shadow:0 0 12px var(--glow-b);position:absolute;top:0;left:0}.hero{height:172svh;position:relative}.hero-stick{grid-template-rows:1fr auto;align-content:center;height:100svh;padding:74px 0 30px;display:grid;position:sticky;top:0;overflow:hidden}.hero-in{transform-origin:0;will-change:transform;transform:translate3d(0, calc(var(--hp,0) * -34vh), 0) scale(calc(1 - .54 * var(--hp,0)))}.hero-eyebrow{margin-bottom:var(--s5u);opacity:calc(1 - var(--hp,0) * 2.4);align-items:center;gap:12px;display:flex}.hero-eyebrow .ln{background:linear-gradient(90deg, var(--blue), transparent);width:52px;height:1px}.hero-title{max-width:14ch;margin-bottom:var(--s5u)}.hero-title .l2{display:block;position:relative}.hero-lede{max-width:50ch;color:var(--ink2);opacity:calc(1 - var(--hp,0) * 2.6);font-size:17.5px;line-height:1.56}.hero-lede strong{color:var(--ink)}.hero-copy{align-self:center;width:100%}.hero-hud{justify-content:space-between;align-items:flex-end;gap:var(--s6u);padding:0 var(--gut);opacity:calc(1 - var(--hp,0) * 2.2);pointer-events:none;display:flex;position:relative}.hud-stats{gap:var(--s7u);display:flex}.hud-stats .st .k{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink5);margin-bottom:7px;font-size:9.5px}.hud-stats .st .v{font-family:var(--disp);letter-spacing:-.03em;color:var(--ink);font-size:27px;font-weight:600;line-height:1}.hud-stats .st .bars{gap:3px;margin-top:9px;display:flex}.hud-stats .st .bars i{background:var(--s1);width:12px;height:2px;display:block}.hud-stats .st .bars i.a{background:var(--blue);box-shadow:0 0 8px var(--glow-b)}.scrollcue{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--ink4);align-items:center;gap:12px;font-size:9.5px;display:flex}.scrollcue .tube{background:var(--rule2);width:1px;height:46px;position:relative;overflow:hidden}.scrollcue .tube:after{content:"";background:linear-gradient(180deg, transparent, var(--blue));width:1px;height:16px;animation:drip 2.1s var(--e1) infinite;position:absolute;top:0;left:0}@keyframes drip{0%{transform:translateY(-18px)}70%,to{transform:translateY(48px)}}.frag{border:1px solid var(--rule2);background:color-mix(in srgb, var(--bg2) 90%, var(--bg3));font-family:var(--mono);color:var(--ink3);pointer-events:none;opacity:calc(1 - var(--hp,0) * 1.8);padding:12px 14px;font-size:10.5px;line-height:1.75;position:absolute}.frag .hd{letter-spacing:.2em;text-transform:uppercase;color:var(--ink5);justify-content:space-between;gap:18px;margin-bottom:8px;font-size:9px;display:flex}.frag .ok{color:var(--green)}.frag .bl{color:var(--blue)}.frag-a{top:13vh;right:calc(var(--gut) + 8px);width:262px;transform:translate3d(0, calc(var(--hp,0) * -110px), 0)}.frag-b{width:210px;transform:translate3d(0, calc(var(--hp,0) * 70px), 0);bottom:24vh;left:calc(50% + 40px)}.frag-c{top:26vh;right:calc(var(--gut) + 300px);width:176px;transform:translate3d(0, calc(var(--hp,0) * -54px), 0)}.frag .meter{gap:2px;margin-top:6px;display:flex}.frag .meter i{background:var(--s1);flex:1;height:3px}.frag .meter i.a{background:var(--sapphire)}.chips{flex-wrap:wrap;gap:10px;display:flex}.chip{border:1px solid var(--rule2);background:color-mix(in srgb, var(--bg2) 70%, transparent);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);min-height:44px;transition:color var(--t2) var(--e1), border-color var(--t2) var(--e1), box-shadow var(--t2) var(--e1), transform var(--t2) var(--e1);align-items:center;gap:10px;padding:11px 16px;font-size:10.5px;display:inline-flex;position:relative}.chip .b{background:color-mix(in srgb, var(--acc) 55%, var(--s2));width:6px;height:6px;transition:background var(--t2), box-shadow var(--t2);border-radius:50%}.chip .n{color:var(--ink5);font-size:9.5px}.chip:hover{color:var(--ink);border-color:color-mix(in srgb, var(--acc) 46%, var(--rule3));transform:translateY(-2px)}.chip:hover .b{background:var(--acc);box-shadow:0 0 12px color-mix(in srgb, var(--acc) 55%, transparent)}.chip.on{color:var(--bg3);background:var(--acc);border-color:var(--acc);box-shadow:0 0 34px -10px color-mix(in srgb, var(--acc) 60%, transparent)}.chip.on .b{background:var(--bg3);box-shadow:none}.chip.on .n{color:#1819269e}.feat{gap:var(--s8u);cursor:pointer;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start;display:grid}.feat-side{gap:var(--s5u);flex-direction:column;display:flex}.feat-visual{aspect-ratio:4/3;border:1px solid var(--rule2);background:color-mix(in srgb, var(--bg2) 80%, var(--bg3));width:100%;position:relative}.feat-visual:after{content:"";pointer-events:none;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--acc,var(--peach)) 20%, transparent);position:absolute;inset:0}.feat-visual image-slot{--is-accent:var(--acc)}.feat-tag{margin-bottom:var(--s5u);align-items:center;gap:11px;display:flex}.feat-tag .b{background:var(--peach);border-radius:50%;width:7px;height:7px;box-shadow:0 0 14px #f5a97f99}.feat h2{font-family:var(--disp);letter-spacing:-.038em;color:var(--ink);transition:color var(--t2) var(--e1);margin-bottom:-.14em;padding-bottom:.14em;font-size:clamp(30px,4.2vw,62px);font-weight:600;line-height:1.06}.feat:hover h2{color:var(--blue)}.feat .sub{margin-top:var(--s5u);color:var(--ink3);max-width:48ch;font-size:17px;line-height:1.58}.feat .go{margin-top:var(--s6u);font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--blue);align-items:center;gap:12px;font-size:10.5px;display:inline-flex}.feat .go .arw{transition:transform var(--t2) var(--e1)}.feat:hover .go .arw{transform:translate(7px)}.feat-panel{border:1px solid var(--rule2);background:color-mix(in srgb, var(--bg2) 72%, transparent);padding:var(--s5u)}.feat-panel .r{justify-content:space-between;gap:var(--s4u);border-bottom:1px solid var(--rule);font-family:var(--mono);padding:9px 0;font-size:11px;display:flex}.feat-panel .r:last-of-type{border-bottom:0}.feat-panel .r .k{color:var(--ink5);letter-spacing:.16em;text-transform:uppercase;font-size:9.5px}.feat-panel .r .v{color:var(--ink2)}.pathmap{margin-top:var(--s4u);padding-top:var(--s4u);border-top:1px solid var(--rule)}.pathmap .cap{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink5);margin-bottom:14px;font-size:9.5px}.pathmap svg text{font-family:var(--mono);letter-spacing:.1em;fill:var(--ink3);font-size:9px}.pathmap .edge{stroke:var(--s2);stroke-width:1px}.pathmap .flow{stroke:var(--sapphire);stroke-width:1.4px;stroke-dasharray:5 34;filter:drop-shadow(0 0 5px var(--glow-s));animation:2.6s linear infinite flow}@keyframes flow{to{stroke-dashoffset:-78px}}.pathmap .nd{fill:var(--bg);stroke:var(--blue);stroke-width:1.3px}.signal-path{gap:11px;margin:0;padding:0 0 0 24px;list-style:none;display:grid;position:relative}.signal-path:before{content:"";background:linear-gradient(var(--s2), var(--sapphire));width:1px;box-shadow:0 0 6px var(--glow-s);position:absolute;top:7px;bottom:7px;left:4px}.signal-path li{font-family:var(--mono);letter-spacing:.1em;color:var(--ink3);font-size:9px;position:relative}.signal-path li:before{content:"";border:1px solid var(--blue);background:var(--bg2);border-radius:50%;width:7px;height:7px;position:absolute;top:.45em;left:-23px}.index{padding-left:var(--s7u);position:relative}.index:before{content:"";background:linear-gradient(180deg, transparent, var(--rule2) 8%, var(--rule2) 92%, transparent);width:1px;position:absolute;top:6px;bottom:6px;left:9px}.irow{gap:var(--s5u);padding:var(--s6u) var(--s5u) var(--s6u) var(--s5u);border-top:1px solid var(--rule);cursor:pointer;transition:background var(--t2) var(--e1), transform var(--t2) var(--e1);grid-template-columns:54px 168px minmax(0,1fr) 150px;align-items:start;display:grid;position:relative}.ithumb{aspect-ratio:4/3;border:1px solid var(--rule);background:color-mix(in srgb, var(--bg2) 80%, var(--bg3));width:100%;transition:border-color var(--t2) var(--e1);position:relative}.irow:hover .ithumb{border-color:color-mix(in srgb, var(--acc) 44%, var(--rule2))}.ithumb .cnr{border-left:1px solid var(--acc);border-top:1px solid var(--acc);opacity:.55;z-index:2;pointer-events:none;width:14px;height:14px;position:absolute;top:0;left:0}.irow.off{margin-left:9%}.irow:last-child{border-bottom:1px solid var(--rule)}.irow:after{content:"";left:calc(var(--s7u) * -1 + 5px);top:calc(var(--s6u) + 6px);background:var(--bg);border:1px solid var(--s2);width:9px;height:9px;transition:background var(--t2), border-color var(--t2), box-shadow var(--t2);border-radius:50%;position:absolute}.irow:hover{background:color-mix(in srgb, var(--bg2) 62%, transparent)}.irow:hover:after{background:var(--acc);border-color:var(--acc);box-shadow:0 0 16px color-mix(in srgb, var(--acc) 55%, transparent)}.irow .ino{font-family:var(--mono);letter-spacing:.14em;color:var(--ink5);padding-top:6px;font-size:11px}.irow:hover .ino{color:var(--acc)}.irow .ittl{font-family:var(--disp);letter-spacing:-.025em;color:var(--ink);transition:color var(--t2) var(--e1);font-size:clamp(20px,1.9vw,27px);font-weight:600;line-height:1.14}.irow:hover .ittl{color:var(--blue)}.irow .isub{color:var(--ink4);max-width:58ch;margin-top:11px;font-size:14.5px;line-height:1.6}.itags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.itags span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink5);border:1px solid var(--rule);padding:3px 7px;font-size:9.5px}.irow:hover .itags span{border-color:color-mix(in srgb, var(--acc) 30%, var(--rule2));color:var(--ink3)}.irow .imeta{text-align:right;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink5);flex-direction:column;gap:5px;padding-top:6px;font-size:10.5px;display:flex}.irow .imeta .cat{color:color-mix(in srgb, var(--acc) 78%, var(--ink2));justify-content:flex-end;align-items:center;gap:7px;display:inline-flex}.irow .imeta .cat:before{content:"";background:var(--acc);border-radius:50%;flex:none;width:5px;height:5px}.real-cover,.ithumb{overflow:hidden}.real-cover img,.ithumb img{object-fit:cover;width:100%;height:100%;transition:transform var(--t3) var(--e2), filter var(--t3) var(--e1);display:block}.feat:hover .real-cover img,.irow:hover .ithumb img{filter:saturate(1.08);transform:scale(1.025)}.cover-fallback{padding:var(--s4u);font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;text-align:center;color:var(--ink5);background:linear-gradient(135deg, color-mix(in srgb, var(--acc) 9%, var(--bg2)), var(--bg3));place-items:center;font-size:10px;display:grid;position:absolute;inset:0}.lit{isolation:isolate;position:relative}.lit:before{content:"";z-index:-1;opacity:0;transition:opacity var(--t2) var(--e1);background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--acc) 15%, transparent), transparent 68%);position:absolute;inset:0}.lit:hover:before{opacity:1}.cmap{width:100%;overflow:visible}.cmap text{font-family:var(--mono);letter-spacing:.08em;fill:var(--ink4);font-size:10.5px}.cmap .lbl-h{fill:var(--ink5);letter-spacing:.2em;font-size:9px}.cmap .edge{stroke:var(--s1);stroke-width:1px;fill:none;transition:stroke var(--t2), stroke-width var(--t2), opacity var(--t2);opacity:.75}.cmap .edge.hot{stroke:var(--blue);stroke-width:1.5px;opacity:1;filter:drop-shadow(0 0 6px var(--glow-b))}.cmap .dot{fill:var(--s2);transition:fill var(--t2), r var(--t2)}.cmap .dot.hot{fill:var(--sapphire)}.cmap .theme{cursor:pointer}.cmap .theme rect{fill:color-mix(in srgb, var(--bg2) 80%, transparent);stroke:var(--rule2);transition:stroke var(--t2), fill var(--t2)}.cmap .theme:hover rect,.cmap .theme.hot rect{stroke:var(--blue);fill:color-mix(in srgb, var(--blue) 12%, var(--bg2))}.cmap .theme text{fill:var(--ink2)}.cmap .theme:hover text,.cmap .theme.hot text{fill:var(--blue)}.cmap .node-t.hot,.cmap .node-p.hot{fill:var(--ink)}.clegend{gap:var(--s6u);margin-top:var(--s5u);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink5);font-size:9.5px;display:flex}.clegend span{align-items:center;gap:8px;display:inline-flex}.clegend i{border-radius:50%;width:7px;height:7px;display:block}.catkeys{margin-top:var(--s5u);padding-top:var(--s4u);border-top:1px solid var(--rule);flex-wrap:wrap;gap:8px 22px;display:flex}.catkeys span{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink4);align-items:center;gap:8px;font-size:9.5px;display:inline-flex}.catkeys i{flex:none;width:14px;height:2px;display:block}.cmap-mobile{display:none}.tiles{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.tile{background:var(--bg);padding:var(--s6u) var(--s5u) var(--s5u);justify-content:space-between;gap:var(--s6u);min-height:214px;transition:background var(--t2) var(--e1), transform var(--t2) var(--e1);flex-direction:column;display:flex}.tile:hover{background:var(--bg2)}.tile .t{font-family:var(--disp);letter-spacing:-.03em;color:var(--ink);transition:color var(--t2);font-size:26px;font-weight:600}.tile:hover .t{color:var(--acc,var(--blue))}.tile .ic{border:1px solid var(--acc);width:24px;height:24px;margin-bottom:var(--s4u);border-radius:50%;position:relative}.tile .ic:after{content:"";background:var(--acc);box-shadow:0 0 14px color-mix(in srgb, var(--acc) 60%, transparent);border-radius:50%;position:absolute;inset:7px}.tile .d{color:var(--ink4);max-width:30ch;margin-top:10px;font-size:14px;line-height:1.55}.tile .f{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink5);justify-content:space-between;align-items:center;font-size:10px;display:flex}.tile:hover .f{color:var(--acc,var(--sapphire))}.quiet{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);border:1px solid var(--rule2);min-height:44px;transition:color var(--t2), border-color var(--t2), box-shadow var(--t2);align-items:center;gap:11px;padding:13px 24px;font-size:10.5px;display:inline-flex}.quiet:hover{color:var(--blue);border-color:var(--blue);box-shadow:0 0 30px -10px var(--glow-b)}.center{padding:var(--s7u) 0 0;justify-content:center;display:flex}.empty-state{padding:var(--s8u) 0;text-align:center}.proof-grid{background:var(--rule);border:1px solid var(--rule);grid-template-columns:1.25fr repeat(2,minmax(0,1fr));gap:1px;display:grid}.proof-main,.proof-stat{min-height:230px;padding:var(--s6u);background:color-mix(in srgb, var(--bg) 88%, transparent);--acc:var(--sapphire);flex-direction:column;justify-content:space-between;display:flex}.proof-main{--acc:var(--blue)}.proof-grid strong{font-family:var(--disp);letter-spacing:-.05em;color:var(--acc);font-size:clamp(46px,5.2vw,76px);font-weight:600;line-height:.9}.proof-stat strong{font-size:clamp(40px,3.8vw,56px)}.proof-grid strong span{letter-spacing:-.02em;font-size:.36em}.proof-grid p{color:var(--ink3);max-width:34ch;font-size:15px;line-height:1.6}.proof-link{margin-top:var(--s5u);font-family:var(--mono);letter-spacing:.17em;text-transform:uppercase;color:var(--ink3);align-items:center;gap:12px;font-size:10.5px;display:inline-flex}.proof-link:hover{color:var(--blue)}.proof-link span{transition:transform var(--t2) var(--e1)}.proof-link:hover span{transform:translate(6px)}.relations-strip{margin-top:var(--s8u);padding:var(--s5u);border:1px solid var(--rule2);align-items:center;gap:var(--s5u);background:color-mix(in srgb, var(--bg2) 70%, transparent);grid-template-columns:auto 1fr auto 1fr;display:grid}.relations-strip>div{flex-wrap:wrap;gap:8px;display:flex}.relations-strip>div span,.relations-strip>div a{border:1px solid var(--rule);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink4);align-items:center;gap:7px;padding:5px 8px;font-size:9px;display:inline-flex}.relations-strip>div span i{background:var(--acc);width:5px;height:5px;box-shadow:0 0 8px color-mix(in srgb, var(--acc) 60%, transparent);border-radius:50%}.relations-strip>div a:hover{border-color:var(--blue);color:var(--blue)}.relations-strip>b{font-family:var(--mono);color:var(--sapphire);font-weight:400}.phead{align-items:end;gap:var(--s5u);padding:var(--s8u) 0 var(--s5u);border-bottom:1px solid var(--rule);margin-bottom:var(--s7u);grid-template-columns:minmax(0,1fr) auto;display:grid}.phead .eyebrow{margin-bottom:var(--s4u);align-items:center;gap:12px;display:flex}.phead .eyebrow .ln{background:linear-gradient(90deg, var(--blue), transparent);width:44px;height:1px}.idx-note{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink5);text-align:right;font-size:10.5px;line-height:1.9}.ledger{padding-left:var(--s7u);position:relative}.ledger:before{content:"";background:linear-gradient(180deg, transparent, var(--rule2) 6%, var(--rule2) 94%, transparent);width:1px;position:absolute;top:0;bottom:0;left:9px}.prow{gap:var(--s5u);padding:var(--s6u) var(--s5u);border-top:1px solid var(--rule);transition:background var(--t2) var(--e1);grid-template-columns:64px minmax(0,1fr) 200px 132px;align-items:start;display:grid;position:relative}.prow:last-child{border-bottom:1px solid var(--rule)}.prow:after{content:"";left:calc(var(--s7u) * -1 + 5px);top:calc(var(--s6u) + 8px);background:var(--bg);border:1px solid var(--s2);width:9px;height:9px;transition:background var(--t2), border-color var(--t2), box-shadow var(--t2);border-radius:50%;position:absolute}.prow:hover{background:color-mix(in srgb, var(--bg2) 62%, transparent)}.prow:hover:after{background:var(--sapphire);border-color:var(--sapphire);box-shadow:0 0 16px var(--glow-s)}.prow .num{font-family:var(--mono);letter-spacing:.14em;color:var(--ink5);padding-top:7px;font-size:11px}.prow .nm{font-family:var(--disp);letter-spacing:-.032em;color:var(--ink);transition:color var(--t2);font-size:clamp(24px,2.4vw,34px);font-weight:600;line-height:1}.prow:hover .nm{color:var(--blue)}.prow .ds{color:var(--ink3);max-width:52ch;margin-top:12px;font-size:15px;line-height:1.6}.prow .rel{font-family:var(--mono);letter-spacing:.1em;color:var(--ink5);flex-wrap:wrap;gap:6px 10px;margin-top:14px;font-size:10px;display:flex}.prow .rel b{color:var(--ink5);letter-spacing:.18em;text-transform:uppercase;font-size:9px;font-weight:400}.prow .rel a{color:var(--ink3);border-bottom:1px solid var(--rule2)}.prow .rel a:hover{color:var(--blue);border-color:var(--blue)}.stackcol{font-family:var(--mono);letter-spacing:.08em;color:var(--ink4);flex-direction:column;gap:5px;padding-top:6px;font-size:10.5px;display:flex}.stackcol span{align-items:center;gap:8px;display:flex}.stackcol span:before{content:"";background:var(--s2);flex:none;width:4px;height:4px}.marker{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink5);align-items:center;gap:9px;padding-top:7px;font-size:9.5px;display:inline-flex}.marker .b{background:var(--s2);border-radius:50%;flex:none;width:7px;height:7px}.marker.production{color:var(--green)}.marker.production .b{background:var(--green);box-shadow:0 0 12px #a6da9580}.marker.pilot{color:var(--yellow)}.marker.pilot .b{background:var(--yellow);box-shadow:0 0 12px #eed49f73}.marker.lab{color:var(--sapphire)}.marker.lab .b{background:var(--sapphire)}.split{gap:var(--s9u);grid-template-columns:264px minmax(0,1fr);display:grid}.siderail{align-self:start;gap:var(--s5u);flex-direction:column;display:flex;position:sticky;top:96px}.sidecard{border:1px solid var(--rule2);background:color-mix(in srgb, var(--bg2) 70%, transparent);padding:var(--s5u)}.sidecard .hd{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink5);border-bottom:1px solid var(--rule);justify-content:space-between;margin-bottom:14px;padding-bottom:12px;font-size:9px;display:flex}.siderail .blk .k{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink5);margin-bottom:6px;font-size:9px}.siderail .blk .v{color:var(--ink2);font-size:13.5px;line-height:1.5}.siderail .blk .v.m{font-family:var(--mono);color:var(--ink3);font-size:11.5px}.siderail .blk+.blk{margin-top:var(--s4u)}.essay{max-width:64ch;color:var(--ink2);font-size:16.5px;line-height:1.72}.essay p{margin-bottom:var(--s5u)}.essay .lead-p{font-family:var(--disp);letter-spacing:-.022em;color:var(--ink);margin-bottom:var(--s6u);font-size:clamp(21px,2vw,28px);font-weight:500;line-height:1.32}.essay code{font-family:var(--mono);color:var(--sky);background:color-mix(in srgb, var(--bg2) 80%, transparent);border:1px solid var(--rule);padding:2px 7px;font-size:.82em}.pullquote{font-family:var(--disp);letter-spacing:-.028em;color:var(--ink);border-left:2px solid var(--blue);padding:6px 0 6px var(--s5u);margin:var(--s7u) 0;box-shadow:-14px 0 40px -30px var(--glow-b);font-size:clamp(22px,2.4vw,32px);font-weight:500;line-height:1.24}.marginnote{font-family:var(--mono);letter-spacing:.04em;color:var(--ink5);border-left:1px solid var(--rule2);margin:calc(var(--s5u) * -.4) 0 var(--s5u);padding-left:14px;font-size:10.5px;line-height:1.8}.stackmap{margin:var(--s7u) 0;border:1px solid var(--rule2);background:color-mix(in srgb, var(--bg2) 62%, transparent);padding:var(--s5u)}.stackmap .cap{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink5);margin-bottom:var(--s4u);font-size:9px}.stackmap svg text{font-family:var(--mono);letter-spacing:.06em;fill:var(--ink3);font-size:10px}.stackmap svg .hub{fill:color-mix(in srgb, var(--blue) 16%, var(--bg2));stroke:var(--blue)}.stackmap svg .box{fill:#0000;stroke:var(--rule2)}.stackmap svg .ln{stroke:var(--s2);stroke-width:1px}.stackmap svg .ln.a{stroke:var(--sapphire);stroke-dasharray:4 26;animation:3s linear infinite flow}.colophon{margin-top:var(--s7u);padding-top:var(--s5u);border-top:1px solid var(--rule);font-family:var(--mono);color:var(--ink5);font-size:11px;line-height:1.95}.colophon a{color:var(--ink3);border-bottom:1px solid var(--rule2)}.colophon a:hover{color:var(--blue);border-color:var(--blue)}.reading{max-width:70ch;padding-top:var(--s8u);margin:0 auto}.backlink{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink4);margin-bottom:var(--s7u);transition:color var(--t1);gap:9px;font-size:10.5px;display:inline-flex}.backlink:hover{color:var(--blue)}.reading h1{font-family:var(--disp);letter-spacing:-.036em;margin:var(--s3u) 0 var(--s5u);font-size:clamp(30px,4vw,54px);font-weight:600;line-height:1}.rdhero{aspect-ratio:21/9;border:1px solid var(--rule2);background:color-mix(in srgb, var(--bg2) 80%, var(--bg3));width:100%;margin-bottom:var(--s5u);position:relative}.rdhero .cnr{z-index:2;pointer-events:none;opacity:.6;width:16px;height:16px;position:absolute}.rdhero .cnr.tl{border-left:1px solid var(--acc);border-top:1px solid var(--acc);top:0;left:0}.rdhero .cnr.br{border-right:1px solid var(--acc);border-bottom:1px solid var(--acc);bottom:0;right:0}.rdcap{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink5);margin-bottom:var(--s6u);align-items:center;gap:10px;font-size:10px;display:flex}.rdcap:before{content:"";background:var(--acc);flex:none;width:22px;height:1px}.rdfig{margin:var(--s6u) 0}.rdfig .box{aspect-ratio:16/9;border:1px solid var(--rule);background:color-mix(in srgb, var(--bg2) 80%, var(--bg3));width:100%;position:relative}.rdfig figcaption{font-family:var(--mono);letter-spacing:.08em;color:var(--ink5);border-left:2px solid var(--acc);margin-top:11px;padding-left:11px;font-size:10.5px}.reading .lede{color:var(--ink3);max-width:56ch;margin-bottom:var(--s6u);font-size:18px}.byline{gap:var(--s6u);padding:var(--s4u) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:var(--s8u);flex-wrap:wrap;display:flex}.byline .k{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink5);margin-bottom:5px;font-size:9px}.byline .v{font-family:var(--mono);color:var(--ink2);font-size:12px}.sechead{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--ink5);margin:var(--s8u) 0 var(--s4u);padding-bottom:var(--s3u);border-bottom:1px solid var(--rule);align-items:center;gap:12px;font-size:10px;display:flex}.sechead:after{content:"";background:linear-gradient(90deg, var(--rule2), transparent);flex:1;height:1px}.prose{color:var(--ink2);font-size:16.5px;line-height:1.74}.prose p{margin-bottom:var(--s4u)}.prose ul{margin:0 0 var(--s4u) 22px}.prose li{margin-bottom:9px}.prose code,.cline .v code{font-family:var(--mono);color:var(--sky);background:color-mix(in srgb, var(--bg2) 80%, transparent);border:1px solid var(--rule);padding:2px 7px;font-size:.83em}pre{background:color-mix(in srgb, var(--bg3) 74%, transparent);border:1px solid var(--rule);border-left:2px solid var(--blue);padding:var(--s4u) var(--s5u);margin:var(--s4u) 0 var(--s5u);font-family:var(--mono);color:var(--ink2);font-size:12.5px;line-height:1.8;overflow-x:auto}pre .c{color:var(--ink5)}pre .k{color:var(--mauve)}pre .s{color:var(--green)}pre .p{color:var(--blue);user-select:none}.cvsec{margin-bottom:var(--s8u)}.cvsec .head{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--ink5);padding-bottom:var(--s3u);margin-bottom:var(--s5u);border-bottom:1px solid var(--rule);font-size:10px}.entry{gap:var(--s5u);padding:var(--s4u) 0;border-bottom:1px solid var(--rule);grid-template-columns:116px minmax(0,1fr);display:grid}.entry:last-child{border-bottom:0}.entry .when{font-family:var(--mono);letter-spacing:.06em;color:var(--ink5);padding-top:6px;font-size:11px}.entry .role{font-family:var(--disp);letter-spacing:-.02em;color:var(--ink);font-size:19px;font-weight:600;line-height:1.2}.entry .org{font-family:var(--mono);letter-spacing:.08em;color:var(--sapphire);margin:6px 0 9px;font-size:11px}.entry .ds{color:var(--ink3);font-size:15px;line-height:1.65}.skillgrid{gap:var(--s5u) var(--s7u);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.skillgrid .k{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink5);margin-bottom:7px;font-size:9px}.skillgrid .v{font-family:var(--mono);color:var(--ink2);font-size:12.5px;line-height:1.8}.clines{border-top:1px solid var(--rule)}.cline{gap:var(--s5u);padding:var(--s4u) 0;border-bottom:1px solid var(--rule);grid-template-columns:132px minmax(0,1fr) 108px;align-items:center;min-height:56px;display:grid}.cline .k{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink5);font-size:9px}.cline .v{color:var(--ink2);font-size:15px}.cline .v.m{font-family:var(--mono);font-size:12.5px}.cline .act-btn{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink5);text-align:right;cursor:pointer;transition:color var(--t1);font-size:9.5px}.cline .act-btn:hover{color:var(--blue)}.note{margin-top:var(--s7u);padding:var(--s5u);border:1px solid var(--rule);background:color-mix(in srgb, var(--bg2) 62%, transparent);color:var(--ink3);font-size:14.5px;line-height:1.66}.note .k{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink5);margin-bottom:11px;font-size:9px}.page{width:100%;max-width:var(--maxw);padding:var(--s8u) var(--gut) var(--s9u);flex:1;margin:0 auto}.page>.pathline{font-family:var(--mono);letter-spacing:.17em;text-transform:uppercase;color:var(--ink5);font-size:10px}.page>.pathline .slash{color:var(--blue)}.page>h1,.page>h2{font-family:var(--disp);color:var(--ink)}.projects-list{border-color:var(--rule2);background:color-mix(in srgb, var(--bg2) 52%, transparent)}.project-row{border-color:var(--rule);transition:background var(--t2) var(--e1)}.project-row:hover{background:color-mix(in srgb, var(--bg2) 78%, transparent)}.project-row .num,.project-row .stack,.project-row .status,.project-row .arrow{font-family:var(--mono)}.project-row .name{font-family:var(--disp);font-size:19px;font-weight:600}.manpage{min-width:0}.manpage .callout{width:100%;min-width:0;margin:var(--s4u) 0 var(--s5u);cursor:default;background:var(--surface);padding:0;display:block}.manpage .callout:hover{border-color:var(--border)}.manpage .callout-title{border-bottom:1px solid var(--border);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:9px 14px;font-size:10px;font-weight:600}.manpage .callout-content{min-width:0;padding:12px 14px}.manpage .callout-content>:last-child{margin-bottom:0}.manpage .callout-warning{border-left:2px solid var(--warn)}.manpage .callout-warning .callout-title{color:var(--warn)}.manpage .callout-danger{border-left:2px solid var(--danger)}.manpage .callout-danger .callout-title{color:var(--danger)}.manpage .callout-note,.manpage .callout-info{border-left:2px solid var(--accent)}.manpage .callout-note .callout-title,.manpage .callout-info .callout-title{color:var(--accent)}.manpage .callout-tip,.manpage .callout-success{border-left:2px solid var(--ok)}.manpage .callout-tip .callout-title,.manpage .callout-success .callout-title{color:var(--ok)}.pback{z-index:100;animation:fade var(--t2) var(--e1);background:#181926db;place-items:start center;padding-top:13vh;display:grid;position:fixed;inset:0}.pbox{background:var(--bg2);border:1px solid var(--rule2);width:min(660px,92vw);animation:rise var(--t2) var(--e1);box-shadow:0 40px 90px -40px #000c}.pbox .q{padding:var(--s4u) var(--s5u);border-bottom:1px solid var(--rule);align-items:center;gap:12px;display:flex}.pbox .q .sig{font-family:var(--mono);color:var(--blue);font-size:14px}.pbox input{background:0 0;border:none;outline:none;flex:1;font-size:16px}.pbox input::placeholder{color:var(--ink5)}.pbox .res{max-height:min(52vh,420px);padding:var(--s2u) 0;overflow-y:auto}.pbox .grp{padding:var(--s3u) var(--s5u) var(--s2u);font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink5);font-size:9px}.pbox .r{justify-content:space-between;align-items:center;gap:var(--s5u);padding:12px var(--s5u);cursor:pointer;min-height:46px;display:flex}.pbox .r .nm{color:var(--ink2);text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;overflow:hidden}.pbox .r .mt{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink5);flex:none;font-size:9.5px}.pbox .r.on{background:color-mix(in srgb, var(--blue) 12%, transparent)}.pbox .r.on .nm{color:var(--blue)}.pbox .ft{border-top:1px solid var(--rule);padding:11px var(--s5u);gap:var(--s5u);font-family:var(--mono);letter-spacing:.1em;color:var(--ink5);font-size:9.5px;display:flex}.pbox .ft b{border:1px solid var(--rule2);margin-right:7px;padding:2px 6px;font-weight:400}.foot{border-top:1px solid var(--rule);margin-top:var(--s9u);background:color-mix(in srgb, var(--bg3) 60%, transparent)}.foot .in{justify-content:space-between;align-items:flex-start;gap:var(--s7u);padding:var(--s7u) 0;display:flex}.foot .cred{font-family:var(--mono);color:var(--ink5);max-width:52ch;font-size:10.5px;line-height:2}.foot .cred a{color:var(--ink3);border-bottom:1px solid var(--rule2)}.foot .cred a:hover{color:var(--blue);border-color:var(--blue)}.foot .lks{text-align:right;flex-direction:column;gap:9px;display:flex}.foot .lks a{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink5);font-size:10px}.foot .lks a:hover{color:var(--blue)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}[data-rv]{--rvd:0s}[data-rv=rise]{opacity:0;transition:opacity var(--t3) var(--e1) var(--rvd), transform var(--t3) var(--e1) var(--rvd);transform:translateY(30px)}[data-rv=slide-l]{opacity:0;transition:opacity var(--t3) var(--e1) var(--rvd), transform .7s var(--e2) var(--rvd);transform:translate(-46px)}[data-rv=slide-r]{opacity:0;transition:opacity var(--t3) var(--e1) var(--rvd), transform .7s var(--e2) var(--rvd);transform:translate(46px)}[data-rv=depth]{opacity:0;filter:blur(7px);transition:opacity var(--t3) var(--e1) var(--rvd), transform var(--t4) var(--e2) var(--rvd), filter var(--t4) var(--e2) var(--rvd);transform:scale(.955)translateY(22px)}[data-rv=mask]{position:relative;overflow:hidden}[data-rv=mask]:after{content:"";background:var(--bg);transform-origin:100%;transition:transform var(--t4) var(--e2) var(--rvd);position:absolute;inset:-2px}[data-rv=mask].in:after{transform:scaleX(0)}[data-rv=clipup]{position:relative;overflow:hidden}[data-rv=clipup]:after{content:"";background:var(--bg);transform-origin:bottom;transition:transform var(--t4) var(--e2) var(--rvd);position:absolute;inset:-2px}[data-rv=clipup].in:after{transform:scaleY(0)}[data-rv=line]{transform-origin:0;transition:transform .8s var(--e2) var(--rvd);transform:scaleX(0)}[data-rv].in{opacity:1;filter:none;transform:none}[data-rv].rv-done,[data-rv].rv-done:after{transition:none}[data-rv=line].in{transform:scaleX(1)}@media (height<=720px){.hud-stats .st .v{font-size:20px}.hud-stats{gap:var(--s6u)}.frag-c{display:none}.hero-lede{font-size:15.5px}}@media (width<=1180px){.frag-c{display:none}.irow{grid-template-columns:54px 132px minmax(0,1fr) 128px}.split{gap:var(--s7u);grid-template-columns:224px minmax(0,1fr)}}@media (width<=980px){:root{--gut:22px;--s8u:56px;--s9u:76px;--s10u:96px}.mnav{display:none}.mnav-m{display:flex}.hero-stick{padding:118px 0 26px}.kbd{min-width:44px;min-height:44px;padding:0 12px}.kbd-full{display:none}.kbd-mob{display:inline}.hero{height:148svh}.hero-in{transform:translate3d(0, calc(var(--hp,0) * -28vh), 0) scale(calc(1 - .42 * var(--hp,0)))}.frag-a,.frag-b{display:none}.hero-hud{align-items:flex-start;gap:var(--s5u);flex-direction:column}.hud-stats{gap:var(--s6u)}.feat{gap:var(--s6u);grid-template-columns:1fr}.index{padding-left:var(--s6u)}.irow{gap:var(--s4u);padding:var(--s5u) var(--s4u);grid-template-columns:48px minmax(0,1fr)}.irow.off{margin-left:0}.irow .ithumb,.irow .ibody{grid-column:2}.irow .ithumb{aspect-ratio:16/9;margin-bottom:var(--s3u)}.irow .imeta{text-align:left;flex-flow:wrap;grid-column:2;gap:14px;padding-top:14px}.irow .imeta .cat{justify-content:flex-start}.rdhero{aspect-ratio:16/9}.ledger{padding-left:var(--s6u)}.prow{gap:var(--s4u);padding:var(--s5u) var(--s4u);grid-template-columns:48px minmax(0,1fr)}.stackcol{flex-flow:wrap;grid-column:2;gap:6px 16px;padding-top:14px}.marker{grid-column:2;padding-top:12px}.split{gap:var(--s6u);grid-template-columns:1fr}.siderail{position:static}.tiles,.proof-grid{grid-template-columns:1fr}.proof-main,.proof-stat{min-height:220px}.relations-strip{grid-template-columns:1fr}.relations-strip>b{width:max-content;transform:rotate(90deg)}.cmap{display:none}.cmap-mobile{display:block}.foot .in{gap:var(--s5u);flex-direction:column}.foot .lks{gap:var(--s4u);text-align:left;flex-flow:wrap}.reading{padding-top:var(--s6u)}}@media (width<=640px){.phead,.act-head{grid-template-columns:1fr}.idx-note,.act-num{text-align:left}.hud-stats{gap:var(--s5u) var(--s6u);flex-wrap:wrap}.entry{grid-template-columns:1fr;gap:7px}.skillgrid{grid-template-columns:1fr}.cline{padding:var(--s3u) 0;grid-template-columns:1fr;gap:5px}.cline .act-btn{text-align:left}.byline{gap:var(--s5u)}.pullquote{padding-left:var(--s4u)}.index{padding-left:28px;overflow-x:clip}.irow{grid-template-columns:32px minmax(0,1fr);padding-right:0}.irow:after{left:-23px}.hero-title{font-size:clamp(44px,15vw,68px)}.hero-hud{padding:0 var(--gut)}.scrollcue{display:none}.proof-main,.proof-stat{padding:var(--s5u);min-height:200px}.relations-strip{padding:var(--s4u)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-rv]{opacity:1!important;filter:none!important;clip-path:none!important;transform:none!important}[data-rv=mask]:after,[data-rv=clipup]:after{display:none}.hero{height:100svh}.hero-in,.frag{transform:none!important}.hero-stick{position:relative}}@media print{.masthead,.foot,.field,.vign,.scan,.prail,.pback,.noprint{display:none!important}html,body{color:#1a1a1a;background:#fff;font-size:11pt}.split{grid-template-columns:170px 1fr;gap:26px}.siderail{position:static}.sidecard{background:0 0;border-color:#ddd}.entry .role,.siderail .blk .v{color:#111}.entry .org{color:#2f4f7a}.entry .ds,.skillgrid .v{color:#333}.cvsec .head,.entry .when,.siderail .blk .k,.skillgrid .k{color:#555}.entry,.cvsec .head,.phead{border-color:#ddd}}
