:root{color-scheme:light;--bg: #ffffff;--fg: #0b0d12;--muted: rgba(11,13,18,.62);--border: rgba(11,13,18,.1);--card: rgba(11,13,18,.02);--accent: #0284C7;--accent-soft: rgba(2,132,199,.15);--link: var(--accent);--max: 820px;--radius: 14px;--font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:linear-gradient(135deg,#f5f9fc,#0284c71f),repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(2,132,199,.05) 2px,rgba(2,132,199,.05) 4px);background-attachment:fixed;color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:17px;line-height:1.7}a{color:inherit;text-decoration:underline;text-underline-offset:.16em;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--fg) 32%,transparent);transition:text-decoration-color .15s ease,color .15s ease}a:hover,.page a,.page a:hover{color:var(--accent);text-decoration-color:var(--accent)}a:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px;border-radius:8px}.wrap{max-width:var(--max);margin:0 auto;padding:34px 18px 56px;background:var(--bg)}.muted{color:var(--muted)}h1,h2,h3{letter-spacing:-.025em;font-weight:650;margin:0}h1{font-size:clamp(34px,4.2vw,44px);line-height:1.08;margin-bottom:16px}h2{font-size:20px;line-height:1.25;margin-top:34px;margin-bottom:14px}h3{font-size:16px;line-height:1.35;margin-top:20px;margin-bottom:8px}p{line-height:1.75;margin:12px 0}ul{line-height:1.75;margin:12px 0;padding-left:20px}li{margin:8px 0}.prose{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif;font-size:1.08rem;line-height:1.85;color:var(--fg, #111)}.prose p{margin:0 0 1.15rem}.prose ul{margin:0 0 1.2rem;padding-left:1.15rem}.prose li{margin:.5rem 0}.card{border:1px solid var(--border);background:transparent;border-radius:var(--radius);padding:16px}.grid{display:grid;gap:16px}code{font-family:var(--font-mono);font-size:.95em}.hr{border-top:1px solid var(--border);margin:34px 0}.site-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.brand-link{display:flex;align-items:center;gap:14px;text-decoration:none;min-width:0}.avatar{width:80px;height:80px;border-radius:999px;border:1.5px solid var(--border);background:color-mix(in srgb,var(--card),transparent 10%);flex-shrink:0}.brand-identity{font-size:14px;margin-top:6px;color:var(--muted);max-width:560px}.brand-text{min-width:0}.brand-name{font-weight:900;font-size:22px;line-height:1.2;color:var(--accent, #0284c7);font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.brand-role{font-size:14px;margin-top:6px;color:var(--muted);white-space:nowrap}.brand-focus{font-size:14px;margin-top:2px;color:var(--muted);white-space:nowrap}.site-nav{display:flex;align-items:center;gap:16px;flex-wrap:nowrap}.nav-link,.resume-link{font-size:15px;text-decoration:none;color:var(--muted);transition:color .15s,text-decoration-color .15s,border-color .15s}.nav-link:hover,.resume-link:hover{color:var(--fg);text-decoration:underline;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,var(--fg) 55%,transparent)}.nav-link.active{color:var(--fg);font-weight:750;border-bottom:2px solid var(--accent);text-decoration:none}.resume-link{margin-left:6px;padding:7px 11px;border:1px solid var(--border);border-radius:999px}.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;z-index:1000}.hamburger{display:block;width:24px;height:2px;background:var(--fg);position:relative;transition:background .3s ease}.hamburger:before,.hamburger:after{content:"";position:absolute;width:24px;height:2px;background:var(--fg);transition:transform .3s ease}.hamburger:before{top:-7px}.hamburger:after{top:7px}.menu-open .hamburger{background:transparent}.menu-open .hamburger:before{transform:rotate(45deg) translate(5px,5px)}.menu-open .hamburger:after{transform:rotate(-45deg) translate(5px,-5px)}.contact{max-width:820px}.contact>h2{margin-top:0;margin-bottom:.5rem}.contact-intro{color:var(--muted);margin:1rem 0 2.75rem}.contact-primary{margin-bottom:2.25rem}.contact-secondary{margin-top:2.25rem}.label{display:block;font-size:.9rem;color:var(--muted);margin-bottom:.35rem}.email{font-size:1.25rem;font-weight:600}.links{font-size:1rem;color:var(--muted)}.links a{color:inherit}.dot{margin:0 .5rem;color:var(--muted)}.links a:last-child{opacity:.95}@media(max-width:720px){body{font-size:16px}.site-header{flex-direction:row;align-items:center;justify-content:space-between;position:relative}.menu-toggle{display:block}.site-nav{position:absolute;top:100%;left:0;right:0;background:var(--bg);border-top:1px solid var(--border);padding:1rem;margin-top:0;flex-direction:column;align-items:flex-start;gap:.5rem;display:none;box-shadow:0 4px 6px #0000000d}.site-nav.nav-open{display:flex}.nav-link{width:100%;padding:.5rem 0}.brand-subtitle{max-width:100%}}.work{max-width:820px}.work-intro{color:var(--fg);margin-top:.9rem;margin-bottom:2.25rem}.exp{max-width:820px}.exp-intro{color:var(--fg);margin-top:.9rem;margin-bottom:2.25rem}.exp-list{display:flex;flex-direction:column;gap:1rem}.exp-item{padding:.75rem 0;border-top:1px solid var(--border)}.exp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.exp-title{font-size:1.35rem;line-height:1.25;margin:0}.exp-subtitle{margin:.45rem 0 0;color:var(--muted)}.exp-desc{margin:1rem 0 0}.exp-tags{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}.tag{font-size:.85rem;color:var(--muted);border:1px solid var(--border);padding:.18rem .55rem;border-radius:999px}.exp-meta{margin-top:.15rem;flex-shrink:0}.pill{font-size:.85rem;color:var(--muted);border:1px solid var(--border);padding:.22rem .65rem;border-radius:999px}.exp-links{margin-top:1.05rem}.exp-links ul{margin:0;padding-left:1.1rem}.exp-links li{margin:.3rem 0}.exp-more{margin:.85rem 0 0}.book-title{font-weight:650;text-decoration:none}.book-title:hover{color:var(--accent);text-decoration:underline;text-underline-offset:.16em;text-decoration-color:var(--accent)}.agentic-hero{margin-top:1.35rem;border:1px solid var(--border);border-radius:var(--radius);padding:1.05rem}.agentic-image{width:100%;height:auto;display:block;border-radius:calc(var(--radius) - 4px)}.agentic-caption{margin-top:.85rem}.page{max-width:820px;margin:0 auto;padding:0 18px 4.5rem}.intro{margin-bottom:1.75rem;margin-top:.5rem}.title{margin:0;font-size:clamp(2rem,4.6vw,2.85rem);line-height:1.08;letter-spacing:-.03em;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji"}.subtitle{margin:.6rem 0 0;font-size:.95rem;letter-spacing:.02em;text-transform:uppercase;color:var(--muted, rgba(0, 0, 0, .62));font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji"}.lede{margin:1rem 0 1.15rem;font-size:1.12rem;line-height:1.6;color:var(--fg, #111);font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.nav{margin:0;font-size:1rem;color:var(--muted, rgba(0, 0, 0, .62));font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji"}.sep{margin:0 .35rem;opacity:.7}.home-avatar{float:right;margin:0 0 1.5rem 1.5rem}.home-avatar img{width:160px;height:160px;border-radius:999px;border:1px solid var(--border);background:#fff}@media(max-width:480px){.page{padding:.1rem 1.05rem 4rem}.prose{font-size:1.02rem;line-height:1.8}.home-avatar img{width:120px;height:120px}}@media(max-width:380px){.home-avatar{float:none;margin:0 auto 1.5rem;display:block;text-align:center}.home-avatar img{width:100px;height:100px}}
