:root{color-scheme:light;--background: #ffffff;--text: #0a0a0a;--muted: #666666;--soft: #6d6d6d;--line: #e7e7e7;--line-strong: #d8d8d8;--surface: #fafafa;--surface-strong: #f4f4f4;--accent: #111111;--focus: #2563eb;--content-width: 42rem}*{box-sizing:border-box}html{background:var(--background);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;scroll-behavior:smooth;text-rendering:optimizeLegibility}body{margin:0;background:var(--background);color:var(--text);font-size:16px;line-height:1.65}body,button,input,textarea{letter-spacing:0}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.skip-link{position:absolute;left:1rem;top:1rem;z-index:20;transform:translateY(-150%);background:var(--text);color:var(--background);padding:.5rem .75rem;text-decoration:none}.skip-link:focus{transform:translateY(0)}.site-shell{width:min(100%,var(--content-width));min-height:100vh;margin:0 auto;border-left:1px dotted var(--line-strong);border-right:1px dotted var(--line-strong);padding:1.95rem 2rem 4rem}.site-nav{display:flex;align-items:center;gap:1.15rem;margin-bottom:2.6rem;white-space:nowrap;overflow-x:auto;scrollbar-width:none}.site-nav::-webkit-scrollbar{display:none}.site-nav a{color:var(--muted);font-size:.92rem;line-height:1;text-decoration:none}.site-nav a[aria-current=page]{color:var(--text);font-weight:600}.site-nav a:hover{color:var(--text)}main{width:100%}.page-stack{display:flex;flex-direction:column;gap:2.35rem}.hero,.prose{display:flex;flex-direction:column;gap:1rem}h1,h2,h3,p,ul,ol,figure,blockquote,pre{margin:0}h1{max-width:15ch;font-size:1.95rem;line-height:1.16;font-weight:650}.identity-heading{display:flex;align-items:center;gap:.75rem;max-width:100%}.profile-avatar{width:3rem;height:3rem;flex:0 0 auto;border:1px solid var(--line-strong);border-radius:50%;object-fit:cover}h2{font-size:1rem;line-height:1.2;font-weight:650}h3{font-size:1rem;line-height:1.35;font-weight:600}p,li{color:var(--muted);font-size:1.02rem}.lede{max-width:39rem;color:var(--muted);font-size:1.08rem}.inline-link,.prose a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line-strong)}.inline-link:hover,.prose a:hover{border-bottom-color:var(--text)}.section{border-top:1px solid var(--line);padding-top:1.9rem}.section-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.15rem}.section-title{display:flex;align-items:baseline;gap:.55rem}.section-kicker,.row-meta,.entry-meta,.small-note{color:var(--soft);font-size:.82rem;line-height:1.35}.section-kicker{font-variant-numeric:tabular-nums}.section-count{color:var(--soft);font-size:.78rem}.link-row,.timeline-row,.project-row,.skill-row,.contact-row{display:grid;gap:1rem;border-top:1px solid var(--line);padding:1.2rem 0}.link-row:first-of-type,.timeline-row:first-of-type,.project-row:first-of-type,.skill-row:first-of-type,.contact-row:first-of-type{border-top:0}.link-row,.timeline-row{grid-template-columns:8.5rem minmax(0,1fr)}.project-row{grid-template-columns:minmax(0,1fr)}.project-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.label-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.work-label{border:1px solid var(--line-strong);background:var(--surface);color:var(--text);border-radius:999px;padding:.12rem .5rem;font-size:.72rem;font-weight:650;line-height:1.45}.project-title,.entry-title{color:var(--text);font-weight:600}.project-title{text-decoration:none}.project-title:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.project-summary,.entry-summary,.timeline-points{margin-top:.35rem}.timeline-points{padding-left:1rem}.timeline-points li+li{margin-top:.35rem}.tag-list{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem;padding:0;list-style:none}.tag-list li{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:.16rem .5rem;font-size:.78rem;line-height:1.5}.case-tags{margin-top:0}.text-link-row{display:flex;flex-wrap:wrap;gap:.7rem 1rem;margin-top:.75rem}.text-link-row a{color:var(--text);font-size:.88rem;text-decoration:none;border-bottom:1px solid var(--line-strong)}.text-link-row a:hover{border-bottom-color:var(--text)}.skill-row{grid-template-columns:9rem minmax(0,1fr)}.skill-row p{font-size:.96rem}.cta-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.3rem}.button-link{display:inline-flex;align-items:center;min-height:2.15rem;border:1px solid var(--text);border-radius:999px;padding:.35rem .78rem;background:var(--text);color:var(--background);font-size:.88rem;font-weight:600;line-height:1;text-decoration:none}.button-link.secondary{background:var(--background);color:var(--text);border-color:var(--line-strong)}.button-link:hover{transform:translateY(-1px)}.social-grid{display:flex;flex-wrap:wrap;gap:.7rem 1rem;margin-top:.85rem}.social-grid a{color:var(--text);font-size:.92rem;text-decoration:none;border-bottom:1px solid var(--line-strong)}.social-grid a:hover{border-bottom-color:var(--text)}.article-list{display:grid;gap:0}.article-layout{display:grid;gap:2rem}.toc{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0}.toc ul{display:grid;gap:.35rem;padding-left:1rem}.toc a{color:var(--muted);font-size:.9rem;text-decoration:none}.toc a:hover{color:var(--text)}.prose{gap:1.05rem}.prose h2{padding-top:1.1rem;font-size:1.18rem}.prose h3{padding-top:.7rem}.prose ul,.prose ol{padding-left:1.2rem}.prose li+li{margin-top:.35rem}.prose img,.prose video{max-width:100%;height:auto;border:1px solid var(--line);border-radius:8px}.prose pre{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:1rem;font-size:.9rem}.footer{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.2rem}.footer p{font-size:.86rem}@media(max-width:720px){.site-shell{width:100%;border-left:0;border-right:0;padding:1.4rem 1.2rem 3rem}.site-nav{margin-bottom:2rem;flex-wrap:wrap;gap:.75rem .95rem;overflow-x:visible;white-space:normal}.link-row,.timeline-row,.skill-row{grid-template-columns:1fr;gap:.3rem}.project-head,.label-row,.section-header{align-items:flex-start;flex-direction:column;gap:.35rem}h1{max-width:100%}}
