@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{color-scheme:light;--bg:#fff;--panel:#f6f6f5;--ink:#191919;--muted:#666;--line:#dededb;--soft:#ebebe8}html[data-theme=dark]{color-scheme:dark;--bg:#141414;--panel:#1e1e1d;--ink:#eee;--muted:#aaa;--line:#383837;--soft:#2b2b29}@media(prefers-color-scheme:dark){html:not([data-theme=light]){color-scheme:dark;--bg:#141414;--panel:#1e1e1d;--ink:#eee;--muted:#aaa;--line:#383837;--soft:#2b2b29}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}a:hover{text-decoration:underline;text-underline-offset:5px}.eyebrow,.button,.tags,.project-link,nav,.availability,footer a{font:11px/1.6 'IBM Plex Mono',monospace;letter-spacing:1px;text-transform:uppercase}.eyebrow{color:var(--muted)}aside{position:fixed;inset:0 auto 0 0;width:255px;background:var(--panel);border-right:1px solid var(--line);padding:32px 24px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;font-size:12px;line-height:1.5;font-weight:600}.brand small{display:block;color:var(--muted);font-size:10px;font-weight:400}.monogram{display:grid;place-items:center;width:40px;height:43px;background:var(--ink);color:var(--bg);font-size:15px;flex-shrink:0}nav{margin-top:50px;display:grid;gap:7px;letter-spacing:.7px}.nav-link{display:flex;align-items:center;gap:14px;padding:12px 10px;border-left:2px solid transparent;color:var(--muted)}.nav-link span{font:18px Arial;width:19px;text-align:center}.nav-link.active,.nav-link:hover{color:var(--ink);background:var(--soft);border-left-color:var(--ink);text-decoration:none}.sidebar-bottom{margin-top:auto}.sidebar-bottom>a{display:flex;justify-content:space-between;font:10px/1.8 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:6px 0}.theme-row{display:flex;align-items:center;justify-content:space-between;margin-top:23px}#theme{border:1px solid var(--line);background:transparent;color:var(--ink);width:34px;height:34px;font-size:22px}main{margin-left:255px;padding:0 64px;max-width:1600px}section{padding:72px 0;border-bottom:1px solid var(--line)}.hero{padding-top:57px}.hero-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.availability{font-size:9px;letter-spacing:.8px;display:flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid var(--line);padding:6px 10px}.availability i{width:5px;height:5px;border-radius:50%;background:var(--ink)}h1{font-size:clamp(48px,5.6vw,82px);line-height:1.02;letter-spacing:-4px;font-weight:550;margin:43px 0 24px}.period{color:var(--muted)}.role{font-size:19px;line-height:1.5;font-weight:450;letter-spacing:-.4px;margin:0 0 27px}.intro{max-width:720px;color:var(--muted);font-size:16px;line-height:1.8}p{margin:0 0 18px}.intro p:last-child{color:var(--ink)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;gap:20px;padding:12px 17px;border:1px solid var(--line);background:transparent;color:var(--ink);letter-spacing:.5px}.button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.button:disabled{cursor:not-allowed;color:var(--muted);border-style:dashed}.placeholder-note{font-size:11px;color:var(--muted);margin-top:10px}.facts{display:grid;grid-template-columns:1fr 1.2fr 1.3fr;gap:24px;padding-top:30px;margin-top:36px;border-top:1px solid var(--line)}.facts p{font-size:12px;line-height:1.6;margin:7px 0 0}.section-head{margin-bottom:32px}.section-head h2{font-size:32px;font-weight:500;letter-spacing:-1px;margin:7px 0 0;line-height:1.3}.projects{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project-card{border:1px solid var(--line);min-width:0}.project-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.1fr}.project-image{background:var(--panel);min-height:210px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden}.project-card:first-child .project-image{border-bottom:0;border-right:1px solid var(--line);padding:20px}.project-image img{display:block;width:100%;height:auto;max-height:550px;object-fit:contain}.image-placeholder{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:13px;background:var(--panel);width:100%;color:var(--muted)}[hidden]{display:none!important}.image-placeholder strong{font-size:30px;font-weight:450;letter-spacing:-1px;color:var(--ink)}.image-placeholder small{font:11px 'IBM Plex Mono',monospace}.project-body{padding:27px}.project-body h3{font-size:25px;font-weight:500;letter-spacing:-.8px;margin:10px 0 16px}.project-body p,.project-body li{font-size:13px;line-height:1.8;color:var(--muted)}.project-status{border-left:2px solid var(--ink);padding-left:12px}.project-body ul{padding-left:18px}.tags{display:flex;flex-wrap:wrap;gap:7px;letter-spacing:.2px;font-size:9px}.tags span{border:1px solid var(--line);padding:4px 8px}.project-link{display:flex;justify-content:space-between;margin-top:25px;border-top:1px solid var(--line);padding-top:17px;font-size:10px}.job{display:grid;grid-template-columns:.9fr 1.4fr;gap:35px;border-top:1px solid var(--line);padding:29px 0}.job h3{font-size:18px;line-height:1.5;font-weight:500;margin:8px 0}.job-meta{font-size:12px;color:var(--muted)}.job ul{padding-left:17px;margin:0}.job li,.job>div>p:not(.job-meta){font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:8px}.earlier{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;font-size:13px}.earlier summary{cursor:pointer;display:flex;justify-content:space-between}.earlier summary span{font:10px 'IBM Plex Mono',monospace;color:var(--muted)}.earlier li{margin-bottom:12px;color:var(--muted)}.credentials{display:grid;grid-template-columns:1fr 1.5fr;gap:40px;margin-top:30px;font-size:12px}.credentials p{margin-top:12px}.credentials ul{padding-left:16px}.credentials li{margin-bottom:9px}.muted{color:var(--muted)}.section-intro{font-size:14px;color:var(--muted)}.incident{display:grid;grid-template-columns:30px 1fr 20px;gap:18px;border-top:1px solid var(--line);padding:24px 0}.incident:hover{text-decoration:none}.incident:hover h3{text-decoration:underline;text-underline-offset:4px}.incident h3{font-size:19px;font-weight:500;line-height:1.5;letter-spacing:-.3px;margin:0 0 10px}.incident p{font-size:13px;color:var(--muted);max-width:740px;margin-bottom:12px}.incident .eyebrow{font-size:9px}.stack-group{display:grid;grid-template-columns:210px 1fr;gap:35px;padding:24px 0;border-top:1px solid var(--line)}.stack-group h3{font-size:14px;font-weight:500;margin:0}.stack-group .tags{font-size:10px;line-height:1.7;text-transform:none;letter-spacing:0}.stack-group .tags span{padding:6px 10px}.about-grid{display:grid;grid-template-columns:190px 1fr;gap:40px}.about-monogram{background:var(--panel);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:60px;letter-spacing:-5px;min-height:200px;align-self:start}.about-monogram span{font:9px 'IBM Plex Mono',monospace;letter-spacing:1px;margin-top:20px;color:var(--muted)}.about-grid p{font-size:14px;color:var(--muted)}.about-grid .contact{color:var(--ink)}.contact a{text-decoration:underline}footer{display:flex;justify-content:space-between;padding:25px 0 40px;color:var(--muted);font-size:11px}.skip{position:fixed;left:270px;top:-80px;background:var(--ink);color:var(--bg);padding:12px;z-index:20}.skip:focus{top:10px}@media(min-width:1600px){main{margin-right:auto}}@media(max-width:1100px){aside{width:220px;padding:25px 18px}main{margin-left:220px;padding:0 35px}.hero-top{flex-direction:column}.project-card:first-child{display:block}.project-card:first-child .project-image{border-right:0;border-bottom:1px solid var(--line);max-height:400px}.project-card:first-child img{max-height:350px}.job{grid-template-columns:1fr;gap:10px}.stack-group{grid-template-columns:1fr;gap:15px}}@media(max-width:700px){html{scroll-padding-top:130px}aside{position:sticky;top:0;width:100%;height:auto;padding:12px 18px;border-right:0;border-bottom:1px solid var(--line);display:block}.brand{font-size:11px;padding-right:40px}.brand small{font-size:9px}.monogram{width:32px;height:34px;font-size:12px}nav{margin-top:13px;display:flex;overflow-x:auto;gap:4px;padding-bottom:2px}.nav-link{padding:7px 8px;font-size:9px;white-space:nowrap;border-left:0;border-bottom:2px solid transparent}.nav-link span{display:none}.nav-link.active{border-bottom-color:var(--ink)}.sidebar-bottom>a{display:none}.theme-row{position:absolute;right:18px;top:12px;margin:0}.theme-row .eyebrow{display:none}main{margin:0;padding:0 22px}.hero{padding-top:35px}.hero-top .eyebrow{font-size:9px}.availability{font-size:8px}h1{font-size:54px;letter-spacing:-2.8px;margin-top:30px}.role{font-size:17px}.intro{font-size:14px}.button{font-size:9px;padding:11px 12px}.facts{grid-template-columns:1fr;gap:17px;margin-top:25px}.facts p{margin-top:3px}section{padding:45px 0}.section-head h2{font-size:29px}.projects{grid-template-columns:1fr}.project-card:first-child{grid-column:auto}.project-body{padding:22px}.project-image{min-height:170px}.credentials{grid-template-columns:1fr;gap:18px}.incident{grid-template-columns:20px 1fr 12px;gap:9px}.incident h3{font-size:17px}.about-grid{grid-template-columns:1fr;gap:24px}.about-monogram{display:none}.skip{left:10px}.stack-group{gap:12px}footer{font-size:10px}footer a{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
