@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:optional;font-weight:400 700;src:url(/_astro/instrument-sans.BbzFLZTg.woff2)format("woff2-variations")}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:optional;font-weight:100 800;src:url(/_astro/jetbrains-mono.B9CIFXIH.woff2)format("woff2-variations")}:root{color-scheme:dark;--font-sans:"Instrument Sans Variable", "Avenir Next", "Avenir", "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;font-family:var(--font-sans);--background:#0d1119;--panel:#151b26;--text:#ecedf1;--muted:#a8b1c2;--accent:#b6caf7;--warm:#d4ad79;--line:#303b4e;background:var(--background);color:var(--text);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}body{min-width:0;margin:0;line-height:1.7}[hidden]{display:none!important}.shell{width:min(1160px,100% - 96px);margin-inline:auto}a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--warm);outline-offset:5px}.skip-link{z-index:5;background:var(--panel);padding:10px 20px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{z-index:1;background:var(--background);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:108px;display:flex;position:relative}.wordmark{align-items:center;gap:16px;text-decoration:none;display:flex}.brand-mark{letter-spacing:-.07em;font-size:1.15rem;font-weight:700}.brand-mark span{color:var(--warm);padding-inline:4px}.brand-name{color:var(--muted);font-size:.78rem}.site-header nav{gap:28px;font-size:.8rem;display:flex}.site-header :where(nav) a{padding-block:10px;text-decoration:none}main{z-index:1;position:relative}.hero{flex-direction:column;justify-content:center;align-items:flex-start;min-height:min(730px,86svh);padding-block:84px 108px;display:flex;position:relative}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 20px;font-size:.68rem;font-weight:600}.hero :where(.eyebrow) span{color:var(--warm);margin-inline:12px}h1,h2,h3,h4,p{overflow-wrap:anywhere}.hero h1{letter-spacing:-.055em;margin:0 0 24px;font-size:clamp(2.8rem,6.1vw,5.1rem);font-weight:500;line-height:1.08}.hero :where(h1)>span{display:block}.accent-dot{color:var(--warm)}.portrait-trigger{display:none}@supports (anchor-name:--a){.accent-dot{anchor-name:--portrait-anchor}.portrait-trigger{position-anchor:--portrait-anchor;inset:anchor(top) anchor(right) anchor(bottom) anchor(left);background:0 0;border:0;padding:0;display:block;position:absolute}}.portrait-overlay{background:0 0;border:0;max-width:none;max-height:none;padding:0}.portrait-overlay::backdrop{backdrop-filter:blur(6px);background:#0d1119d6}.portrait-overlay img{border:1px solid var(--line);border-radius:6px;width:auto;max-width:min(92vw,560px);height:auto;max-height:82svh;display:block;box-shadow:0 24px 80px #0000008c}.tagline{max-width:36rem;color:var(--accent);margin:0;font-size:clamp(1rem,2vw,1.3rem)}.hero-intro{color:var(--muted);margin-bottom:28px;font-size:.85rem}.text-link{color:var(--text);text-decoration-color:var(--warm);font-size:.85rem}.text-link span{color:var(--warm);margin-left:18px}.activities{border-top:1px solid var(--line);padding-block:44px 0}.activities[data-pending]{visibility:hidden}@media (scripting:none){.activities[data-pending]{display:none}}.activities-table{border-collapse:collapse;border-top:1px solid var(--line);width:100%;font-size:.82rem;display:block;overflow-x:auto}.activities-table td{border-bottom:1px solid var(--line);vertical-align:baseline;padding-block:8px}.act-when{padding-right:16px}.act-when time{font-family:var(--font-mono);color:var(--muted);font-size:.68rem}.act-group{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);padding-right:16px;font-size:.58rem;font-weight:600}.act-role{color:var(--muted);padding-right:16px;font-size:.7rem}.act-title{color:var(--text)}.act-today td{border-top:2px solid var(--warm);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--warm);border-bottom:0;padding-block:3px;font-size:.58rem;font-weight:600}.activities-table tr[data-status=recent] .act-title{color:var(--muted)}.portfolio-section{border-top:1px solid var(--line);padding-block:44px 88px;scroll-margin-top:24px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:40px;display:flex}.section-heading .eyebrow{margin-bottom:8px}.section-heading h2{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.2}.section-index{font-family:var(--font-mono);color:var(--muted);font-size:.75rem}.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.portfolio-card{border:1px solid var(--line);background:#151b26d9;border-radius:3px;min-width:0;padding:30px;scroll-margin-top:24px}.card-topline{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.card-topline .eyebrow{margin-bottom:24px;font-size:.58rem}.card-topline>span{font-family:var(--font-mono);color:var(--muted);font-size:.62rem}.portfolio-card h3{letter-spacing:-.025em;margin:0 0 20px;font-size:1.5rem;font-weight:500;line-height:1.2}.prose{color:var(--muted);font-size:.86rem}.prose ul{margin:0;padding:0;list-style:none}.prose li{margin-block:8px}.prose a{text-decoration-color:var(--line)}.entry-more{display:inline}.entry-more>summary{cursor:pointer;font-family:var(--font-mono);color:var(--warm);margin-left:6px;font-size:.68rem;list-style:none;display:inline}.entry-more>summary::marker,.entry-more>summary::-webkit-details-marker{content:"";display:none}.entry-more>summary:hover{text-decoration:underline}.entry-note{color:var(--muted);margin-block:6px 10px;font-size:.8rem;line-height:1.5;display:block}.activities-table a{color:var(--text);text-decoration-color:var(--line)}.prose a:hover,.activities-table a:hover{text-decoration-color:var(--accent)}.prose h4{color:var(--text);margin-block:24px 8px;font-size:.9rem;font-weight:600}.prose h4:first-child{margin-top:0}:where(.email-contact) button{min-height:44px;color:inherit;font:inherit;text-underline-offset:.25em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}:where(.email-contact) button:hover{color:var(--accent)}.legal-copy img{max-width:100%;height:auto;display:block}.site-footer{z-index:1;background:var(--background);border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;padding-block:16px 84px;font-size:.72rem;display:flex;position:relative}body:has(#motion-reason:not([hidden])) .site-footer{padding-bottom:180px}.footer-links{flex-wrap:wrap;gap:16px;display:flex}.footer-sep{color:#daa520}.preview-note{margin:0;font-size:.65rem}.build-id{color:inherit;font-family:var(--font-mono);overflow-wrap:anywhere;text-align:right;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:.6rem}.build-id:hover,.build-id[aria-expanded=true]{color:var(--accent)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.preferences{z-index:3;flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:8px;max-width:calc(100% - 24px);display:flex;position:fixed;bottom:20px;right:24px}.preferences button{border:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:24px;padding:8px 14px;font-size:.7rem}.preferences button[data-active=true]{border-color:var(--accent);color:var(--accent)}.preferences button:disabled{color:var(--muted);cursor:default}#motion-reason{background:var(--background);max-width:260px;color:var(--muted);text-align:right;border-radius:3px;padding:6px 10px;font-size:.7rem}#attractor{z-index:0;pointer-events:none;opacity:.85;width:100%;height:100%;position:fixed;inset:0;mask-image:linear-gradient(90deg,#0000 30%,#000 85%)}.attractor-panel{z-index:4;pointer-events:none;visibility:hidden;font-family:var(--font-mono);justify-content:center;transition:visibility .35s;display:flex;position:fixed;inset:auto 0 22px}.attractor-panel.shown{visibility:visible}.panel-card{pointer-events:auto;border:1px solid var(--line);backdrop-filter:blur(10px);width:min(560px,100% - 48px);color:var(--muted);opacity:0;visibility:hidden;background:#0d1119d9;border-radius:12px;padding:14px 18px 10px;font-size:.68rem;line-height:1.6;transition:opacity .35s,transform .35s,visibility .35s;transform:translateY(12px)}.attractor-panel.shown .panel-card{opacity:1;visibility:visible;transform:none}.panel-name{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.6rem;font-weight:600}.panel-about{color:var(--text);margin:6px 0 10px}.panel-ode{color:var(--accent);background:#ffffff0a;border-radius:6px;margin-bottom:10px;padding:8px 10px;font-size:.66rem;line-height:1.9}.panel-ode code{display:block}.panel-row{flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-block:2px;display:flex}.panel-label{width:56px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;opacity:.6;flex:none;font-size:.55rem}.panel-row code{color:var(--text);padding:2px 4px}.panel-row sub{color:var(--warm);padding-left:2px}.panel-meta{color:var(--muted)}.panel-link{color:var(--accent)}.panel-link:hover{color:var(--warm)}.panel-legend{border-top:1px solid var(--line);opacity:.75;margin:8px 0 0;padding-top:8px;font-size:.58rem}@media (prefers-reduced-motion:reduce){.panel-card{transition:none;transform:none}}@media (width<=700px){.panel-legend{display:none}}.legal-page{background:var(--background);max-width:760px;min-height:70svh;padding-block:64px 100px}.legal-page>.eyebrow{margin-top:60px}.legal-page h1{letter-spacing:-.04em;margin-block:0 30px;font-size:clamp(2.4rem,7vw,4rem);font-weight:500;line-height:1.1}.legal-copy{font-size:1rem}.legal-copy h2{color:var(--text);margin-top:32px;font-size:1.2rem;font-weight:500}.draft-notice{border-left:2px solid var(--warm);background:var(--panel);color:var(--muted);padding:12px 20px;font-size:.85rem}@media (width<=960px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand-name{display:none}}@media (width<=600px){.shell{width:calc(100% - 40px)}.site-header{min-height:80px}.hero{min-height:620px;padding-block:70px 100px}.portfolio-grid{grid-template-columns:minmax(0,1fr)}.portfolio-card{padding:26px}.preferences{bottom:12px;right:12px}}
