@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/edb5f85793adc1bb-s.0v2ipp7s07_p9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/92b6de9cb55945e2-s.p.44ks8kcggj012.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/237858b39a32779d-s.p.1ii7211jqpzi_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.Qol5va_className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.Qol5va_variable{--font-display:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/46a9e2f250689b4a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6131cbbf5549afa2-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/45462fd7b7c12654-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.p.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.YoOUPq_className{font-family:Inter,Inter Fallback;font-style:normal}.YoOUPq_variable{--font-body:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/258bd0ab5fdd762a-s.3bz3aq452sydg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/99a2019bdfa8519b-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/44e0cb21b0d052b7-s.343obqi851wr5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/f9cd5a77d065db98-s.40kcwrf1wub16.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/954d21e04331b2ae-s.p.200l3jur7oygh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/53897e768d329f66-s.p.269kn9uafm0ti.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}._6N5LqW_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}._6N5LqW_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--ink:#f6f7f9;--surface:#fff;--surface-2:#eef1f5;--line:#0f1e361f;--line-strong:#0f1e363d;--grid:#0f1e360d;--text:#0f1e36;--muted:#4a5568;--cyan:#0b5cad;--cyan-strong:#084987;--iris:#5a4ab5;--mint:#0f7a5c;--gold:#a26a12;--danger:#b42318;--on-accent:#fff;--shadow:0 1px 2px #0f1e360a, 0 8px 24px -12px #0f1e361f;--font-display:"Space Grotesk";--font-body:"Inter";--font-mono:"JetBrains Mono";--ff-display:var(--font-display), "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--ff-body:var(--font-body), "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--ff-mono:var(--font-mono), "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4rem;--s9:6rem;--s10:8rem;--radius:14px;--radius-sm:8px;--container:1200px;--gutter:clamp(1rem, .5rem + 2.5vw, 2.5rem);--header-h:64px;--t-fast:.16s;--t-med:.22s;--t-enter:.45s;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);background:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--ink);color:var(--text);font-family:var(--ff-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.65;overflow-x:hidden}body.menu-open{overflow:hidden}img,svg{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--ff-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600;line-height:1.1}p{text-wrap:pretty;margin:0}ul,ol{margin:0;padding:0;list-style:none}dl,dd{margin:0}a{color:inherit;-webkit-text-decoration-color:color-mix(in srgb, var(--cyan) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--cyan) 60%, transparent);text-underline-offset:.2em}button,input,select,textarea{font:inherit;color:inherit}::selection{background:color-mix(in srgb, var(--cyan) 35%, transparent)}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}main:focus{outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--s4);z-index:100;padding:var(--s3) var(--s4);background:var(--cyan);color:var(--on-accent);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:var(--s3)}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.mono{font-family:var(--ff-mono);letter-spacing:.04em;font-size:.78rem}.label{font-family:var(--ff-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.muted{color:var(--muted)}.eyebrow{align-items:center;gap:var(--s2) var(--s3);color:var(--cyan);text-transform:uppercase;letter-spacing:.1em;flex-wrap:wrap;font-size:.75rem;display:flex}.eyebrow.iris{color:var(--iris)}.dot{width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);background:currentColor;border-radius:50%}.display{letter-spacing:-.035em;font-size:clamp(2.4rem,1.5rem + 4.2vw,5.25rem);font-weight:600;line-height:1.02}.display-sm{letter-spacing:-.03em;font-size:clamp(2rem,1.4rem + 3vw,3.75rem);line-height:1.05}.h2{font-size:clamp(1.75rem,1.3rem + 1.8vw,2.75rem)}.h3{font-size:1.3rem}.h4{letter-spacing:-.01em;font-size:1.08rem}.lede{color:var(--muted);max-width:60ch;font-size:clamp(1.08rem,1rem + .35vw,1.25rem);line-height:1.6}.prose{max-width:68ch}.prose p+p{margin-top:var(--s4)}.list li{padding-left:1.25rem;position:relative}.list li+li{margin-top:var(--s2)}.list li:before{content:"";background:var(--cyan);width:7px;height:1px;position:absolute;top:.72em;left:0}.btn{justify-content:center;align-items:center;gap:var(--s2);cursor:pointer;min-height:48px;transition:background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), color var(--t-fast);border:1px solid #0000;border-radius:999px;padding:.7rem 1.3rem;font-size:.98rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn-small{min-height:44px;padding:.5rem 1rem;font-size:.9rem}.btn-primary{background:var(--cyan);color:var(--on-accent);box-shadow:0 1px 2px #0b5cad40}.btn-primary:hover{background:var(--cyan-strong)}.btn-ghost{border-color:var(--line-strong);color:var(--text);background:0 0}.btn-ghost:hover{border-color:var(--cyan);background:#0b5cad0f}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.6}.cta-row{gap:var(--s3);flex-wrap:wrap;display:flex}.text-link{align-items:center;gap:var(--s2);min-height:44px;color:var(--cyan);font-weight:500;text-decoration:none;display:inline-flex}.text-link:hover{text-decoration:underline}.site-header{z-index:50;background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:var(--s4);height:var(--header-h);display:flex}.brand{align-items:center;gap:var(--s3);min-width:0;min-height:44px;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid color-mix(in srgb, var(--cyan) 55%, transparent);width:36px;height:36px;font-family:var(--ff-display);letter-spacing:-.04em;border-radius:10px;flex:none;place-items:center;font-size:.95rem;font-weight:700;display:grid}.brand-name{font-family:var(--ff-display);white-space:nowrap;text-overflow:ellipsis;font-size:.98rem;font-weight:600;overflow:hidden}.nav-desktop ul{gap:var(--s1);display:flex}.nav-link{min-height:44px;color:var(--muted);transition:color var(--t-fast), background-color var(--t-fast);border-radius:999px;align-items:center;padding:0 .85rem;font-size:.95rem;text-decoration:none;display:inline-flex}.nav-link:hover{color:var(--text)}.nav-link[aria-current=page]{color:var(--text);background:#0f1e360f}.header-actions{align-items:center;gap:var(--s2);display:flex}.menu-toggle{border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:12px;place-items:center;width:44px;height:44px;display:none}.menu-icon{width:18px;height:12px;display:block;position:relative}.menu-icon span{background:var(--text);height:1.5px;transition:transform var(--t-med) var(--ease), top var(--t-med) var(--ease);position:absolute;left:0;right:0}.menu-icon span:first-child{top:2px}.menu-icon span:last-child{top:9px}.menu-icon[data-open=true] span:first-child{top:5.5px;transform:rotate(45deg)}.menu-icon[data-open=true] span:last-child{top:5.5px;transform:rotate(-45deg)}.mobile-menu{border-top:1px solid var(--line);background:var(--ink);padding:var(--s3) var(--gutter) var(--s6);height:calc(100dvh - var(--header-h));overflow-y:auto}.mobile-menu[hidden]{display:none}.mobile-link{min-height:56px;font-family:var(--ff-display);border-bottom:1px solid var(--line);align-items:center;font-size:1.6rem;font-weight:500;text-decoration:none;display:flex}.mobile-link[aria-current=page]{color:var(--cyan)}@media (max-width:860px){.nav-desktop{display:none}.menu-toggle{display:grid}}@media (min-width:861px){.mobile-menu{display:none!important}}@media (max-width:420px){.brand-name{display:none}}.hero{padding-block:clamp(2rem, 1rem + 4vw, 5rem) var(--s6);position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(55% 60% at 85% 30%,#0b5cad12,#0000 70%),radial-gradient(40% 40% at 5% 95%,#a26a120d,#0000 70%);position:absolute;inset:0}.hero-grid{gap:var(--s7);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;display:grid;position:relative}.hero-copy{gap:var(--s4);display:grid}.hero-name{align-items:center;gap:var(--s3);font-family:var(--ff-display);color:var(--text);letter-spacing:-.01em;font-size:clamp(1.1rem,1rem + .6vw,1.5rem);font-weight:500;display:flex}.hero .display{max-width:13ch}.hero .cta-row{margin-top:var(--s2)}.availability{color:var(--mint)}.hero-visual{animation:rise var(--t-enter) var(--ease) 80ms both;position:relative}.hero-diagram{width:100%;height:auto}.svg-label{font-family:var(--ff-mono);letter-spacing:.12em;fill:var(--muted);font-size:11px}.svg-small{font-family:var(--ff-body);fill:var(--text);font-size:12px}.svg-small.strong{font-weight:600}.svg-tiny{font-family:var(--ff-mono);letter-spacing:.06em;fill:var(--muted);font-size:9.5px}.svg-tiny.caption{letter-spacing:.12em;font-size:9px}.hd-row rect{fill:#4a556814;stroke:#4a556847}.hd-hot rect{fill:#0b5cad24;stroke:var(--cyan)}.hd-edge line{stroke:#4a556829;stroke-width:1px}.hd-node{fill:var(--ink);stroke:#4a556880;stroke-width:1.5px}.hd-node-hot{fill:var(--cyan);stroke:var(--cyan)}.hd-card rect{fill:#ffffffe6;stroke:var(--line-strong)}.hd-card line,.hd-card-hot line{stroke:#4a55684d}.hd-card-hot rect{fill:#fffffff2;stroke:var(--cyan)}.hd-path-base,.hd-path-iris,.hd-trace{fill:none;stroke-linecap:round;stroke-linejoin:round}.hd-path-base{stroke:#0b5cad59;stroke-width:1.5px;stroke-dasharray:3 5}.hd-path-iris{stroke:#5a4ab573;stroke-width:1.25px;stroke-dasharray:2 6}.hd-trace{stroke:var(--cyan);stroke-width:2.25px;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(0 0 3px #0b5cad40);animation:trace 1.8s var(--ease) .35s forwards}.hd-end{fill:var(--mint)}.proof-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(2rem,1rem + 3vw,4rem);display:grid;position:relative}.proof-strip li{gap:var(--s1);padding:var(--s4) var(--s4) var(--s4) 0;font-size:.98rem;display:grid}.proof-strip li+li{padding-left:var(--s4);border-left:1px solid var(--line)}.scroll-cue{align-items:center;gap:var(--s3);min-height:44px;margin-top:var(--s5);color:var(--muted);text-decoration:none;display:inline-flex}.scroll-cue:hover{color:var(--text)}.scroll-cue-line{background:var(--line-strong);width:1px;height:28px;position:relative;overflow:hidden}.scroll-cue-line:after{content:"";background:var(--cyan);width:1px;height:40%;animation:drip 2.4s var(--ease) 1.2s 3;position:absolute;top:-40%;left:0}@media (max-width:960px){.hero-grid{gap:var(--s5);grid-template-columns:1fr}.hero-visual{max-width:520px}.proof-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.proof-strip li:nth-child(3){border-left:0;padding-left:0}.proof-strip li:nth-child(n+3){border-top:1px solid var(--line)}}@media (max-width:520px){.proof-strip{grid-template-columns:1fr}.proof-strip li,.proof-strip li+li{border-left:0;padding-left:0}.proof-strip li+li{border-top:1px solid var(--line)}.hero .cta-row .btn{flex:100%}.scroll-cue{display:none}}.section{padding-block:clamp(3.5rem,2rem + 5vw,7rem)}.pt-0{padding-top:0}.section-head{gap:var(--s3);max-width:760px;margin-bottom:clamp(2rem,1.5rem + 2vw,3.5rem);display:grid}.section-head.split{grid-template-columns:1fr auto;align-items:end;max-width:none}.section-intro{max-width:62ch}.section-label{margin-bottom:var(--s5)}.section-foot{margin-top:var(--s6)}.page-hero{padding-block:clamp(3rem,2rem + 5vw,6.5rem) clamp(2rem,1.5rem + 3vw,4rem)}.page-hero .container{gap:var(--s4);display:grid}.page-hero .display{max-width:18ch}.project-list{gap:clamp(1.5rem,1rem + 2vw,2.5rem);display:grid}.project-card{--accent:var(--cyan);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);transition:border-color var(--t-med) var(--ease), transform var(--t-med) var(--ease);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);display:grid;position:relative;overflow:hidden}.project-card:nth-child(2n){grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.project-card:nth-child(2n) .project-card-visual{border-right:0;border-left:1px solid var(--line);order:2}.project-card:hover,.project-card:focus-within{border-color:color-mix(in srgb, var(--accent) 50%, transparent);transform:translateY(-2px)}.accent-iris{--accent:var(--iris)}.accent-mint{--accent:var(--mint)}.accent-cyan{--accent:var(--cyan)}.project-card-visual{padding:var(--s5);background:radial-gradient(70% 70% at 50% 50%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 75%), var(--surface-2);border-right:1px solid var(--line);place-items:center;display:grid}.project-card-visual .project-visual{width:100%;height:auto}.project-card-body{align-content:start;gap:var(--s4);padding:clamp(1.5rem,1rem + 2vw,2.5rem);display:grid}.project-card .eyebrow{color:var(--accent)}.project-card .eyebrow span+span:before{content:"·";margin-right:var(--s3);color:var(--muted)}.project-title{gap:var(--s1);font-size:clamp(1.6rem,1.3rem + 1.2vw,2.25rem);display:grid}.project-subtitle{font-family:var(--ff-body);color:var(--muted);letter-spacing:0;font-size:1rem;font-weight:500}.project-problem{color:var(--muted);border-left:1px solid color-mix(in srgb, var(--accent) 60%, transparent);padding-left:var(--s4);font-size:.96rem}.project-problem .label{margin-bottom:2px;display:block}.tags{gap:var(--s2);flex-wrap:wrap;display:flex}.tags li{font-family:var(--ff-mono);border:1px solid var(--line-strong);color:var(--text);border-radius:999px;padding:.3rem .65rem;font-size:.75rem}.card-actions{gap:var(--s4);flex-wrap:wrap;align-items:center;display:flex}.card-link{align-items:center;gap:var(--s2);min-height:44px;color:var(--accent);font-weight:600;text-decoration:none;display:inline-flex}.card-link:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.card-link:hover{text-decoration:underline}.card-link:focus-visible{outline:none}.card-link:focus-visible:after{outline:2px solid var(--accent);outline-offset:-2px}.card-secondary{z-index:1;min-height:44px;color:var(--muted);align-items:center;display:inline-flex;position:relative}@media (max-width:860px){.project-card,.project-card:nth-child(2n){grid-template-columns:1fr}.project-card-visual,.project-card:nth-child(2n) .project-card-visual{border:0;border-bottom:1px solid var(--line);order:0}}.project-visual .pv-doc rect{fill:#0f1e3608;stroke:var(--line-strong)}.project-visual .pv-doc line{stroke:#4a556859;stroke-width:3px;stroke-linecap:round}.pv-arrow{fill:none;stroke:var(--muted);stroke-width:1.25px}.pv-careergenai .pv-arrow{stroke:var(--cyan)}.pv-skill .track{fill:#4a556824}.pv-have .fill{fill:var(--cyan)}.pv-grow .fill{fill:var(--iris)}.pv-gap .fill{fill:var(--mint)}.pv-spine{stroke:#0b5cad66;stroke-dasharray:3 4}.pv-step circle{fill:var(--ink);stroke:var(--cyan);stroke-width:1.5px}.pv-step .num{fill:var(--cyan);font-size:9px}.pv-trail path{fill:none;stroke:#5a4ab547;stroke-width:1px;stroke-dasharray:2 4}.pv-swap path{fill:none;stroke:var(--iris);stroke-width:1.75px}.pv-swap.alt path{stroke:var(--cyan)}.pv-city circle{fill:var(--ink);stroke:#4a55688c;stroke-width:1.5px}.pv-city.hot circle{fill:#5a4ab538;stroke:var(--iris)}.pv-legend{fill:#ffffffe6;stroke:var(--line)}.pv-bubble rect,.pv-bubble path{fill:#0f7a5c14;stroke:var(--mint)}.pv-sense circle{fill:var(--mint)}.pv-sense path{fill:none;stroke:#0f7a5c80;stroke-width:1.5px}.pv-receptionist .pv-arrow{stroke:var(--mint)}.pv-decide path,.pv-out rect{fill:#ffffffe6;stroke:var(--line-strong)}.pv-out.ok rect{stroke:var(--mint)}.pv-out.hand rect{stroke:var(--iris)}.section-research{border-block:1px solid var(--line);background:radial-gradient(50% 80% at 85% 50%, #5a4ab514, transparent 70%), var(--surface-2)}.research-teaser{gap:var(--s7);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);display:grid}.research-teaser>div:first-child{gap:var(--s4);align-content:start;display:grid}.research-teaser>div:last-child{gap:var(--s4);display:grid}.question{font-family:var(--ff-display);letter-spacing:-.01em;padding-left:var(--s5);border-left:2px solid var(--iris);margin:0;font-size:clamp(1.25rem,1.05rem + .9vw,1.75rem);line-height:1.35}.question.large{font-size:clamp(1.35rem,1.1rem + 1.2vw,2.1rem)}@media (max-width:860px){.research-teaser{gap:var(--s5);grid-template-columns:1fr}}.capabilities{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.capability{gap:var(--s3);padding:var(--s6) var(--s5) var(--s6) 0;align-content:start;display:grid;position:relative}.capability+.capability{padding-left:var(--s5);border-left:1px solid var(--line)}.capability:before{content:"";background:var(--sig);width:48px;height:2px;position:absolute;top:-1px;left:0}.capability+.capability:before{left:var(--s5)}.signal-cyan{--sig:var(--cyan)}.signal-iris{--sig:var(--iris)}.signal-mint{--sig:var(--mint)}.cap-index{color:var(--sig)}@media (max-width:860px){.capabilities{grid-template-columns:1fr}.capability,.capability+.capability{padding:var(--s5) 0;border-left:0;border-top:1px solid var(--line)}.capability+.capability:before{left:0}}.exp-rows li{gap:var(--s4);padding-block:var(--s4);border-top:1px solid var(--line);grid-template-columns:11rem minmax(0,1fr) minmax(0,1.4fr);align-items:baseline;display:grid}.exp-rows li:last-child{border-bottom:1px solid var(--line)}.exp-org{font-family:var(--ff-display);font-size:1.15rem;font-weight:600}@media (max-width:760px){.section-head.split{grid-template-columns:1fr}.exp-rows li{grid-template-columns:1fr;gap:2px}}.cta-final{border-top:1px solid var(--line);background:radial-gradient(60% 80% at 50% 100%,#0b5cad17,#0000 70%)}.cta-final-inner{gap:var(--s5);justify-items:start;display:grid}.cta-final .display-sm{max-width:16ch}.exp-grid{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));display:grid}.exp-card{gap:var(--s2);padding:var(--s5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);align-content:start;display:grid}.methods{color:var(--cyan)}.exp-card{position:relative}.exp-link{color:var(--cyan);margin-top:var(--s1)}.exp-card:has(.exp-link):hover{border-color:color-mix(in srgb, var(--cyan) 45%, transparent)}.exp-role{gap:2px;display:grid}.exp-highlight{color:var(--mint);font-size:.92rem}.hobbies{gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));display:grid}.hobby{gap:var(--s2);padding:var(--s5);border:1px solid var(--line);border-top:2px solid var(--sig);border-radius:var(--radius);background:var(--surface);align-content:start;display:grid}.case{--accent:var(--cyan)}.case-hero{padding-top:clamp(1.5rem,1rem + 2vw,3rem)}.breadcrumb{gap:var(--s2);color:var(--muted);margin-bottom:var(--s5);display:flex}.breadcrumb a{min-height:44px;color:var(--text);align-items:center;margin-block:-12px;display:inline-flex}.case-hero .eyebrow{color:var(--accent)}.case-hero-grid{gap:var(--s7);grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);align-items:end;display:grid}.case-hero-grid>div:first-child{gap:var(--s4);display:grid}.case-meta{gap:var(--s4);padding:var(--s5);border:1px solid var(--line);border-radius:var(--radius);background:#fff9;display:grid}.case-meta dd{margin-top:2px}.case-links{gap:var(--s3);flex-wrap:wrap;display:flex}.case-visual{margin-top:var(--s6);border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(60% 70% at 50% 50%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 75%), var(--surface-2);padding:clamp(1rem,.5rem + 2vw,2.5rem)}.case-visual .project-visual{width:100%;max-width:860px;height:auto;margin-inline:auto}.case-body{padding-block:var(--s7);gap:0;display:grid}.case-section{gap:var(--s5);padding-block:var(--s6);border-top:1px solid var(--line);grid-template-columns:minmax(0,.32fr) minmax(0,1fr);display:grid}.case-h{color:var(--text);font-size:1.25rem}.case-h:before{content:"";width:24px;height:2px;margin-bottom:var(--s3);background:var(--accent);display:block}.team-note{margin-top:var(--s4);padding:var(--s4);border-radius:var(--radius-sm);color:var(--muted);background:#0f1e360a;font-size:.96rem}@media (max-width:860px){.case-hero-grid,.case-section{gap:var(--s4);grid-template-columns:1fr}}.pipeline{margin:var(--s5) 0 0}.pipeline-steps{grid-template-columns:repeat(var(--n,4), minmax(0, 1fr));border:1px solid var(--line);border-radius:var(--radius);gap:0;display:grid;overflow:hidden}.pipeline-step{gap:var(--s2);padding:var(--s5) var(--s4);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#ffffff8c;align-content:start;display:grid;position:relative}.pipeline-index{color:var(--accent)}.pipeline-name{font-family:var(--ff-display);font-weight:600}.pipeline-detail{color:var(--muted);font-size:.9rem;line-height:1.5}.pipeline-step:after{content:"";top:calc(var(--s5) + .45rem);background:var(--ink);border:1.5px solid var(--accent);z-index:1;border-radius:50%;width:9px;height:9px;position:absolute;right:-5px}.pipeline-step:last-child:after{display:none}.pipeline-step:last-child{border-right:0}@media (max-width:1100px){.pipeline-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.pipeline-step:after{display:none}}@media (max-width:560px){.pipeline-steps{grid-template-columns:1fr}}.pipeline-text{margin-top:var(--s3);color:var(--muted);max-width:80ch;font-size:.88rem}.tradeoffs,.show-grid,.eval-grid{gap:var(--s4);display:grid}.show-grid,.eval-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.tradeoff,.show-item{gap:var(--s3);padding:var(--s5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:grid}.tradeoff .label{min-width:3rem;color:var(--accent);display:inline-block}.sample{margin:var(--s5) 0 0;border:1px solid color-mix(in srgb, var(--cyan) 35%, transparent);border-radius:var(--radius);overflow:hidden}.sample-cap{gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);color:var(--muted);background:#0b5cad0f;flex-wrap:wrap;align-items:center;font-size:.88rem;display:flex}.badge{border:1px solid var(--line-strong);font-family:var(--ff-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.68rem;display:inline-flex}.sample-cap .badge{border-color:var(--cyan);color:var(--cyan)}.badge-cert{border-color:var(--mint);color:var(--mint)}.sample-grid{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.sample-col{gap:var(--s3);padding:var(--s5);align-content:start;display:grid}.sample-col+.sample-col{border-left:1px solid var(--line)}.sample-col h4{font-family:var(--ff-mono);font-weight:500}.kv{gap:var(--s1) var(--s3);grid-template-columns:auto 1fr;font-size:.92rem;display:grid}.kv dt{color:var(--muted)}.sample-excerpt{color:var(--muted);padding:var(--s3);border-radius:var(--radius-sm);background:#0f1e360a;font-size:.9rem}.skill-list li{justify-content:space-between;gap:var(--s3);padding-block:var(--s2);border-bottom:1px solid var(--line);font-size:.94rem;display:flex}.skill-list .level{font-family:var(--ff-mono);color:var(--cyan);font-size:.75rem}.skill-list [data-level=working] .level{color:var(--iris)}.skill-list [data-level=gap] .level{color:var(--mint)}.roadmap{counter-reset:r;gap:var(--s3);display:grid}.roadmap li{counter-increment:r;gap:2px;padding-left:2rem;font-size:.92rem;display:grid;position:relative}.roadmap li:before{content:counter(r);border:1px solid var(--cyan);width:1.4rem;height:1.4rem;color:var(--cyan);font-family:var(--ff-mono);border-radius:50%;place-items:center;font-size:.7rem;display:grid;position:absolute;top:0;left:0}.roadmap span{color:var(--muted)}@media (max-width:860px){.sample-grid{grid-template-columns:1fr}.sample-col+.sample-col{border-left:0;border-top:1px solid var(--line)}}.case-next{justify-content:space-between;align-items:center;gap:var(--s5);padding-block:var(--s6) var(--s8);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.next-link{gap:var(--s1);text-decoration:none;display:grid}.next-title{font-family:var(--ff-display);letter-spacing:-.02em;transition:color var(--t-fast);font-size:clamp(1.5rem,1.2rem + 1.2vw,2.25rem);font-weight:600}.next-link:hover .next-title{color:var(--cyan)}.research-hero{background:radial-gradient(50% 70% at 85% 30%,#5a4ab51a,#0000 70%)}.research-body{--accent:var(--iris);padding-bottom:var(--s8)}.research-body .case-h:before{background:var(--iris)}.layers{margin:var(--s4) 0 0}.layers ol{gap:var(--s2);display:grid}.layers li{gap:var(--s4);padding:var(--s4) var(--s5);border:1px solid var(--line);border-left:2px solid var(--iris);border-radius:var(--radius-sm);background:rgba(90, 74, 181, calc(.03 + var(--i) * .025));margin-left:calc(var(--i) * 12px);grid-template-columns:5.5rem 12rem minmax(0,1fr);align-items:baseline;display:grid}@media (max-width:760px){.layers li{grid-template-columns:1fr;gap:2px;margin-left:0}}.about-hero{grid-template-columns:minmax(0,1fr) auto;align-items:end}.portrait{aspect-ratio:1;border:1px solid var(--line-strong);background:radial-gradient(70% 70% at 30% 20%, #0b5cad29, transparent 70%), var(--surface);border-radius:24px;place-items:center;width:clamp(120px,18vw,220px);display:grid;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.portrait.has-photo{aspect-ratio:4/5;border-color:color-mix(in srgb, var(--cyan) 35%, transparent);width:clamp(180px,22vw,280px);box-shadow:0 24px 60px -30px #0b5cad59}.hero-avatar{object-fit:cover;object-position:50% 22%;border:1px solid color-mix(in srgb, var(--cyan) 55%, transparent);border-radius:50%;flex:none;width:48px;height:48px}.gallery{gap:var(--s4);grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.gallery figure{gap:var(--s2);margin:0;display:grid}.gallery img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);width:100%;height:auto}.gallery figcaption{color:var(--muted);font-size:.72rem;line-height:1.5}@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr}.gallery li:first-child{grid-column:1/-1}}.portrait-mark{font-family:var(--ff-display);letter-spacing:-.06em;color:var(--text);font-size:clamp(2.5rem,2rem + 3vw,5rem);font-weight:700}.about-body{padding-bottom:var(--s8);gap:clamp(3rem,2rem + 3vw,5rem);display:grid}.about-prose{font-size:1.12rem}.about-section{gap:var(--s5);display:grid}.timeline{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));display:grid}.timeline li{gap:var(--s1);padding:var(--s5) var(--s4) var(--s4) 0;align-content:start;display:grid;position:relative}.timeline li:before{content:"";background:var(--ink);border:1.5px solid var(--dotc,var(--cyan));border-radius:50%;width:9px;height:9px;position:absolute;top:-5px;left:0}.timeline li[data-place=ist]{--dotc:var(--iris)}.timeline li[data-place=dc]{--dotc:var(--cyan)}.t-year{color:var(--text);font-size:1rem}.t-place{color:var(--dotc)}.timeline strong{font-family:var(--ff-display);margin-top:var(--s2);font-weight:600}.timeline .muted{font-size:.92rem}.honor{padding:var(--s5);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--mint) 40%, transparent);background:#0f7a5c0d;gap:2px;max-width:520px;display:grid}.honor .label{color:var(--mint)}.honor strong{font-family:var(--ff-display);font-size:1.3rem}.cred-list,.mini-list{display:grid}.cred-list li,.mini-list li{gap:var(--s4);padding-block:var(--s3);border-bottom:1px solid var(--line);grid-template-columns:10.5rem minmax(0,1fr) auto;align-items:baseline;display:grid}.mini-list li{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 9rem}.mini-list li>:last-child,.cred-list li>:last-child{text-align:right}.cred-list .badge{justify-self:start}@media (max-width:760px){.about-hero{grid-template-columns:1fr}.portrait{order:-1}.cred-list li,.mini-list li{gap:var(--s1);grid-template-columns:1fr}.mini-list li>:last-child,.cred-list li>:last-child{text-align:left}}.about-cta{gap:var(--s3) var(--s5);flex-wrap:wrap;align-items:center;display:flex}.social-links{gap:var(--s2) var(--s4);flex-wrap:wrap;display:flex}.social-links a{align-items:center;gap:var(--s1);min-height:44px;color:var(--text);text-decoration:none;display:inline-flex}.social-links a:hover{color:var(--cyan)}.social-links .ext{color:var(--cyan);font-size:.85em}.social-links.stacked{gap:0;display:grid}.resume-wrap{padding-block:var(--s6) var(--s8)}.resume-toolbar{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.resume{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-width:880px;box-shadow:var(--shadow);margin-inline:auto;padding:clamp(1.25rem,.5rem + 4vw,3.5rem);font-size:.98rem;line-height:1.55}.resume-head{gap:var(--s2);padding-bottom:var(--s5);border-bottom:1px solid var(--line-strong);display:grid}.resume-head h1{font-size:clamp(1.9rem,1.5rem + 1.5vw,2.6rem)}.resume-head p{color:var(--muted)}.resume-links{gap:var(--s1) var(--s5);flex-wrap:wrap;display:flex}.resume-links a{gap:var(--s2);word-break:break-all;align-items:baseline;min-height:32px;display:inline-flex}.resume-links .mono{color:var(--cyan)}.resume section{padding-top:var(--s5)}.resume h2{font-family:var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);padding-bottom:var(--s2);margin-bottom:var(--s3);border-bottom:1px solid var(--line);font-size:.78rem;font-weight:500}.r-item+.r-item{margin-top:var(--s4)}.r-line{justify-content:space-between;gap:0 var(--s4);flex-wrap:wrap;align-items:baseline;display:flex}.r-line h3{font-family:var(--ff-body);letter-spacing:0;font-size:1.02rem;font-weight:650}.r-line h3 a{text-decoration:none}.r-sub{color:var(--muted);font-weight:400}.r-date{font-family:var(--ff-mono);color:var(--muted);white-space:nowrap;font-size:.78rem}.r-org{color:var(--muted);font-size:.92rem}.r-item ul{margin-top:var(--s1)}.r-item ul li{padding-left:1rem;position:relative}.r-skills{gap:var(--s2);display:grid}.r-skills div{gap:var(--s3);grid-template-columns:10rem minmax(0,1fr);display:grid}.r-skills dt{font-weight:650}.r-creds li+li{margin-top:var(--s1)}.r-kind{color:var(--muted)}@media (max-width:560px){.r-skills div{grid-template-columns:1fr;gap:0}}@media print{@page{margin:14mm}:root{--text:#0b1020;--muted:#3d475a;--cyan:#0b5f6b;--line:#c9cfd9;--line-strong:#9aa3b2}html,body{color:#0b1020;font-size:10.5pt;background:#fff!important}.site-header,.site-footer,.skip-link,.no-print{display:none!important}.resume-wrap{max-width:none;padding:0}.resume{background:#fff;border:0;max-width:none;padding:0;font-size:10.5pt}.resume a{color:#0b1020;text-decoration:none}.r-item{break-inside:avoid}.resume h2{break-after:avoid}}.contact-grid{padding-bottom:var(--s8);grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr);gap:clamp(2rem,1rem + 3vw,4rem);display:grid}.contact-card{gap:var(--s5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-content:start;padding:clamp(1.25rem,.75rem + 2vw,2.5rem);display:grid}.contact-side{gap:var(--s6);align-content:start;display:grid}.side-block{gap:var(--s3);display:grid}.faq{gap:var(--s4);display:grid}.faq dt{font-weight:600}.faq dd{margin-top:var(--s1);font-size:.96rem}.privacy{font-size:.86rem;line-height:1.55}.privacy strong{color:var(--text)}@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}.contact-form{gap:var(--s4);display:grid}.field-row{gap:var(--s4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:600px){.field-row{grid-template-columns:1fr}}.field{gap:var(--s2);min-width:0;display:grid}.field label{font-size:.95rem;font-weight:550}.field input,.field select,.field textarea{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:48px;color:var(--text);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:.7rem .9rem;font-size:1rem}.field textarea{resize:vertical;min-height:150px;line-height:1.5}.field select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:2.5rem}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px #0b5cad40}.field [aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.9rem}.field-hint{color:var(--muted);justify-self:end;font-size:.72rem}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form-mode{padding:var(--s3) var(--s4);border-radius:var(--radius-sm);border:1px dashed var(--line-strong);color:var(--muted);font-size:.88rem}.form-mode.mode-unavailable{border-color:var(--danger)}.form-status{min-height:1.5em;font-weight:500}.form-status:focus{outline:none}.status-success{color:var(--mint)}.status-error{color:var(--danger)}.site-footer{border-top:1px solid var(--line);padding-block:var(--s7) var(--s5);background:var(--surface-2)}.footer-inner{gap:var(--s5);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.footer-name{font-family:var(--ff-display);font-size:1.15rem;font-weight:600}.footer-meta{justify-content:space-between;gap:var(--s2);margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;display:flex}.not-found{align-items:center;min-height:60vh;display:grid}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes trace{to{stroke-dashoffset:0}}@keyframes drip{0%{top:-40%}60%,to{top:110%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.hd-trace{stroke-dashoffset:0;animation:none}.project-card:hover,.project-card:focus-within{transform:none}}.resume-head.centered{text-align:center;justify-items:center}.resume-contact{color:var(--muted);font-size:.92rem}.resume-contact a{color:var(--cyan)}.resume-headline{font-weight:600;color:var(--text)!important}.r-right{text-align:right;margin-top:-2px}.resume section>p+p{margin-top:var(--s2)}.r-list li{padding-left:1rem;position:relative}.r-list li+li{margin-top:2px}.r-list li:before,.r-item ul li:before{content:"•";color:var(--muted);position:absolute;left:0}.resume .r-item h3 a{text-decoration:none}@media print{.resume-contact a{color:#0b1020}}
