@font-face{font-family:inter;src:url(../media/inter_latin_wght_normal-s.p.0gsaq8ukbf34m.woff2)format("woff2");font-display:swap}@font-face{font-family:inter Fallback;src:local(Arial);ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.0%;size-adjust:107.89%}.inter_db84d9df-module__MuXK3W__className{font-family:inter,inter Fallback}.inter_db84d9df-module__MuXK3W__variable{--font-inter:"inter", "inter Fallback"}
@font-face{font-family:space;src:url(../media/space_grotesk_latin_wght_normal-s.p.092gko6h6levo.woff2)format("woff2");font-display:swap}@font-face{font-family:space Fallback;src:local(Arial);ascent-override:88.78%;descent-override:26.34%;line-gap-override:0.0%;size-adjust:110.84%}.space_35146c94-module__DPEdqW__className{font-family:space,space Fallback}.space_35146c94-module__DPEdqW__variable{--font-space:"space", "space Fallback"}
@font-face{font-family:mono;src:url(../media/jetbrains_mono_latin_wght_normal-s.2rmhnsrc80fag.woff2)format("woff2");font-display:swap}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.mono_be096532-module__kGf2xa__className{font-family:mono,mono Fallback}.mono_be096532-module__kGf2xa__variable{--font-mono:"mono", "mono Fallback"}
:root{--bg:#14181c;--surface:#1a2025;--raised:#20282e;--line:#303a42;--text:#edf2f5;--muted:#a5b0b8;--subtle:#84939e;--accent:#b3d5e7;--accent-ink:#13232d;--art:#18252e;--art-paper:#1d2e39;--art-front:#2b4251;--header:#14181ced;--focus:#b3d5e7;--display:var(--font-space),sans-serif;--sans:var(--font-inter),sans-serif;--mono:var(--font-mono),monospace;--z-nav:40;--z-modal:60;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f8fafb;--surface:#fff;--raised:#edf2f5;--line:#d5dde3;--text:#18232b;--muted:#536570;--subtle:#62727e;--accent:#285c79;--accent-ink:#fff;--art:#e6eef3;--art-paper:#f4f8fa;--art-front:#d3e3ed;--header:#f8fafbf0;--focus:#285c79;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{background:var(--bg);color:var(--text);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea{touch-action:manipulation}button{color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.7}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.035em;font-weight:500;line-height:1.2}h1{font-size:clamp(2.75rem,5.4vw,4.7rem)}h2{font-size:clamp(1.9rem,3vw,2.4rem)}h3{font-size:1.25rem}p{color:var(--muted)}svg{flex-shrink:0}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:5px;border-radius:3px}a:hover{color:var(--accent)}.container{width:min(1160px,100% - 80px);margin-inline:auto}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:4px;padding:10px 20px;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header{z-index:var(--z-nav);background:var(--header);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid #0000;height:88px;position:sticky;top:0}.site-header.scrolled{border-color:var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:30px;width:min(1280px,100% - 80px);height:100%;margin:auto;display:flex}.wordmark{font:600 31px/1 var(--display);letter-spacing:-2px}.wordmark span{color:var(--accent)}.desktop-nav{align-items:center;gap:30px;height:100%;margin-left:65px;display:flex}.desktop-nav a{color:var(--muted);padding:12px 0;font-size:14px;position:relative}.desktop-nav a[aria-current=page]{color:var(--text)}.desktop-nav a[aria-current=page]:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:2px;left:0;right:0}.desktop-nav a:hover{color:var(--text)}.header-actions{align-items:center;gap:22px;display:flex}.icon-button{width:40px;height:40px;color:var(--muted);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{color:var(--text);background:var(--raised)}.header-resume{align-items:center;gap:8px;font-size:14px;display:flex}.theme-toggle .moon{display:none}[data-theme=light] .theme-toggle .moon{display:block}[data-theme=light] .theme-toggle .sun,.mobile-menu{display:none}.menu-overlay{z-index:var(--z-modal);background:#0009;position:fixed;inset:0}.menu-sheet{width:min(360px,88vw);z-index:calc(var(--z-modal) + 1);background:var(--surface);border-left:1px solid var(--line);padding:24px 28px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.menu-heading{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.menu-heading h2{margin:0;font-size:20px}.menu-sheet nav{flex-direction:column;display:flex}.menu-sheet nav a{font:500 24px var(--display);border-bottom:1px solid var(--line);padding:14px 0}.menu-sheet nav a[aria-current=page]{color:var(--accent)}.menu-sheet p{margin-top:40px;font-size:14px}.menu-sheet p span{color:var(--subtle)}.hero{grid-template-columns:1.25fr 1fr;align-items:center;gap:64px;padding:100px 0 82px;display:grid}.hero-location{align-items:center;gap:24px;margin-bottom:28px;font-size:14px;display:flex}.hero-location>span:first-child{color:var(--accent)}.hero-location>span:last-child{color:var(--subtle);align-items:center;gap:5px;display:flex}.hero h1{letter-spacing:-.06em;margin-bottom:26px;line-height:1.05}.hero-copy>p{max-width:520px;margin-bottom:30px;font-size:16px;line-height:1.85}.hero-actions{align-items:center;gap:12px;display:flex}.button{border:1px solid var(--line);white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;gap:12px;min-height:46px;padding:12px 19px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.button.primary:hover{filter:brightness(1.08);color:var(--accent-ink)}.button.secondary{color:var(--text);background:0 0}.button.secondary:hover{background:var(--raised);border-color:var(--subtle)}.hero-github{color:var(--muted);margin-left:2px;padding:12px;display:flex}.hero-scroll{font:400 12px var(--mono);color:var(--subtle);align-items:center;gap:10px;margin-top:45px;display:inline-flex}.hero-system{border:1px solid var(--line);background:var(--surface);border-radius:9px;overflow:hidden;box-shadow:0 12px 48px #0000000a}.system-caption{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:9px;padding:16px 20px;font-size:12px;display:flex}.system-caption svg{color:var(--accent)}.system-index{font:10px var(--mono);color:var(--subtle);margin-left:auto}.system-content{padding:23px 24px 26px}.system-input{border:1px solid var(--line);border-radius:4px;padding:15px 17px}.system-step{font:11px var(--mono);color:var(--subtle)}.system-input p{color:var(--text);margin:5px 0 0;font-size:13px}.system-connector{background:var(--line);width:1px;height:22px;margin:auto}.system-gate{border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:color-mix(in srgb,var(--accent) 5%,transparent);border-radius:4px;align-items:center;gap:12px;padding:14px 16px;display:flex}.system-gate svg{color:var(--accent)}.system-gate strong{font:500 13px var(--sans);display:block}.system-gate span:not(.system-tick){color:var(--muted);margin-top:3px;font-size:11px;display:block}.system-tick{color:var(--accent);margin-left:auto;font-size:13px}.system-fork{background:linear-gradient(var(--line),var(--line)) center top/1px 11px no-repeat;height:22px;position:relative}.system-fork:after{content:"";border:1px solid var(--line);border-bottom:none;height:11px;position:absolute;top:11px;left:24%;right:24%}.system-branches{grid-template-columns:1fr 1fr;gap:12px;display:grid}.system-branches>div{border:1px solid var(--line);text-align:center;border-radius:4px;padding:15px 8px}.system-branches svg{color:var(--subtle);margin-bottom:4px}.system-branches strong{font:500 11px var(--sans);display:block}.system-branches span{font:10px var(--sans);color:var(--subtle);margin-top:6px;display:block}.system-output{border:1px dashed var(--line);color:var(--muted);border-radius:4px;justify-content:center;align-items:center;gap:7px;padding:11px 8px;font-size:11px;display:flex}.system-output svg{color:var(--accent)}.system-note{border-top:1px solid var(--line);font:10px var(--mono);color:var(--subtle);justify-content:space-between;padding:12px 18px;display:flex}.experience-strip{border-block:1px solid var(--line);align-items:center;gap:35px;padding:24px 0;display:flex}.experience-strip>span{color:var(--subtle);flex-shrink:0;width:170px;font-size:12px}.experience-strip>div{flex:1;justify-content:space-between;align-items:center;gap:24px;display:flex}.company-name{font:500 21px var(--display);color:var(--muted);letter-spacing:-.5px}.section{padding:83px 0}.section-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px;display:flex}.section-label{color:var(--subtle);margin-bottom:13px;font-size:13px;line-height:1.5}.section-heading h2{margin:0;font-size:30px}.text-link{align-items:center;gap:9px;padding-block:5px;font-size:14px;line-height:1.5;display:inline-flex}.section-heading .text-link{color:var(--muted)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;display:grid}.project-card{border:1px solid var(--line);background:var(--surface);border-radius:7px;flex-direction:column;transition:border-color .2s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--subtle);color:var(--text)}.project-art{aspect-ratio:16/9;background:var(--art);color:var(--accent);border-bottom:1px solid var(--line);overflow:hidden}.project-art svg{width:100%;height:100%;display:block}.art-paper{fill:var(--art-paper);stroke:currentColor;stroke-opacity:.25}.art-paper.front{fill:var(--art-front);stroke-opacity:.6}.art-mono{font:10px var(--mono);fill:currentColor;opacity:.55;letter-spacing:1px}.art-code{font:12px var(--mono);fill:currentColor;opacity:.8}.project-card-body{flex-direction:column;flex:1;padding:23px 24px 24px;display:flex}.card-category{font:11px var(--mono);color:var(--subtle);justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;display:flex}.card-category svg{color:var(--muted)}.project-card h3{margin-bottom:9px;font-size:22px}.project-card p{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:47px;margin-bottom:21px;font-size:14px;line-height:1.7;display:-webkit-box;overflow:hidden}.tags{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.tags span,.tag-link{font:10px/1.5 var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:3px;padding:4px 7px}.tag-link:hover{border-color:var(--accent)}.experience-section{border-top:1px solid var(--line);grid-template-columns:1fr 1.1fr;gap:100px;display:grid}.experience-intro h2{font-size:32px;line-height:1.3}.experience-intro>p:not(.section-label){max-width:400px;font-size:15px}.experience-intro .text-link{margin-top:8px}.compact-role{gap:20px;padding:0 0 26px;display:flex;position:relative}.compact-role:not(:last-child):before{content:"";background:var(--line);width:1px;position:absolute;top:12px;bottom:0;left:4px}.timeline-dot{border:2px solid var(--subtle);background:var(--bg);border-radius:50%;flex-shrink:0;width:9px;height:9px;margin-top:6px;position:relative}.compact-role:first-child .timeline-dot{border-color:var(--accent)}.compact-role h3{letter-spacing:-.02em;margin:0 0 5px;font-size:19px}.compact-role p{max-width:260px;margin:0;font-size:12px}.role-date{font:11px var(--mono);color:var(--subtle);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;padding-top:5px}.writing-section{padding-top:0}.post-row{border-top:1px solid var(--line);grid-template-columns:105px 1fr 24px;align-items:start;gap:28px;padding:25px 0;display:grid}.post-row:last-child{border-bottom:1px solid var(--line)}.post-row time{font:11px var(--mono);color:var(--subtle);padding-top:6px}.post-row h3{letter-spacing:-.025em;margin:0 0 7px;font-size:21px}.post-row p{margin:0 0 10px;font-size:14px}.post-row>svg{color:var(--muted);margin-top:4px}.post-meta{color:var(--subtle);align-items:center;gap:16px;font-size:11px;display:flex}.post-topic{border-left:1px solid var(--line);padding-left:16px}.site-footer{border-top:1px solid var(--line);background:var(--surface);margin-top:22px}.footer-top{justify-content:space-between;gap:30px;padding:65px 0 52px;display:flex}.footer-top h2{margin-bottom:18px;font-size:34px;line-height:1.25}.footer-top .text-link{color:var(--accent)}.footer-links{flex-direction:column;gap:16px;min-width:145px;padding-top:21px;display:flex}.footer-links a{color:var(--muted);align-items:center;gap:9px;font-size:13px;display:flex}.footer-links a svg:last-child{margin-left:auto}.footer-bottom{border-top:1px solid var(--line);color:var(--subtle);justify-content:space-between;gap:16px;padding:22px 0;font-size:11px;display:flex}.page-header{max-width:760px;padding:76px 0 45px}.page-header .section-label{color:var(--accent)}.page-header h1{letter-spacing:-.045em;margin-bottom:19px;font-size:clamp(2.5rem,4.2vw,3.6rem)}.page-header>p:last-child{max-width:650px;margin:0;font-size:17px;line-height:1.8}.breadcrumb{color:var(--subtle);align-items:center;gap:8px;margin-bottom:27px;font-size:13px;display:inline-flex}.page-section{padding:40px 0 65px}.about-layout{grid-template-columns:1.4fr .7fr;gap:90px;padding-bottom:58px;display:grid}.about-prose p{font-size:17px;line-height:1.9}.about-aside{border-left:1px solid var(--line);padding-left:30px}.aside-label{font:11px var(--mono);color:var(--subtle);margin-bottom:12px}.about-aside p{font-size:14px}.interest-list{margin:0 0 25px;padding:0;list-style:none}.interest-list li{color:var(--muted);margin-bottom:9px;font-size:13px}.divider-section{border-top:1px solid var(--line);padding:60px 0}.divider-section>h2{margin-bottom:36px;font-size:29px}.experience-entry{border-bottom:1px solid var(--line);grid-template-columns:180px 1fr;gap:36px;margin-bottom:40px;padding-bottom:43px;display:grid}.experience-entry:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.experience-period{font:12px/1.8 var(--mono);color:var(--subtle);padding-top:4px}.experience-content h3{margin-bottom:4px;font-size:25px}.experience-content .job-role{color:var(--accent);margin-bottom:20px;font-size:14px}.experience-content ul{color:var(--muted);margin:0 0 20px;padding-left:18px;font-size:15px;line-height:1.85}.experience-content li{margin-bottom:10px;padding-left:5px}.skill-grid{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.skill-group h3{margin-bottom:20px;font-size:18px}.skill-group ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.skill-group li{color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:5px 9px;font-size:12px}.education-grid{grid-template-columns:1fr 1fr;gap:35px;display:grid}.education-grid h3{margin-bottom:7px;font-size:19px}.education-grid p{margin-bottom:7px;font-size:14px}.education-grid time{font:12px var(--mono);color:var(--subtle)}.principle-grid{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.principle-number{font:12px var(--mono);color:var(--subtle);margin-bottom:18px;display:block}.principle-grid h3{font-size:20px}.principle-grid p{font-size:14px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 30px;display:flex}.filter-chip{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:5px;min-height:38px;padding:8px 13px;font-size:12px}.filter-chip:hover{border-color:var(--subtle);color:var(--text)}.filter-chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.project-count{font:11px var(--mono);color:var(--subtle);margin-left:auto}.project-listing{padding-bottom:80px}.project-listing .project-grid{row-gap:28px}.search-input{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:5px;width:100%;padding:11px 14px;font-size:14px}.search-wrap{max-width:400px;margin-bottom:20px;position:relative}.search-wrap svg{color:var(--subtle);position:absolute;top:13px;left:12px}.search-wrap input{padding-left:38px}.empty-state{border:1px dashed var(--line);text-align:center;border-radius:7px;padding:60px 28px}.empty-state h2{font-size:24px}.empty-state p{font-size:15px}.case-header{max-width:none;padding-bottom:30px}.case-title-row{justify-content:space-between;align-items:flex-end;gap:30px;display:flex}.case-title-row h1{margin-bottom:10px}.case-title-row p{max-width:700px;margin:0;font-size:18px}.case-actions{flex-shrink:0;gap:8px;display:flex}.case-art{margin-bottom:48px}.case-art .project-art{aspect-ratio:1160/390;border:1px solid var(--line);border-radius:8px}.case-art svg{max-height:390px}.case-layout{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:60px;display:grid}.case-aside{position:sticky;top:120px}.case-aside h2{font:12px var(--mono);color:var(--subtle);letter-spacing:0;margin-bottom:16px}.case-aside .tags{margin-bottom:28px}.case-aside a{align-items:center;gap:7px;font-size:12px;display:flex}.case-body{max-width:780px}.case-body section{margin-bottom:47px;scroll-margin-top:110px}.case-body h2{margin-bottom:18px;font-size:27px}.case-body p,.case-body li{color:var(--muted);font-size:16px;line-height:1.9}.case-body ol{padding-left:22px}.case-body li{margin-bottom:15px;padding-left:9px}.flow-diagram{background:var(--surface);border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;padding:22px;display:flex}.flow-node{font:11px var(--mono);border:1px solid var(--line);color:var(--accent);background:var(--raised);border-radius:3px;padding:10px}.flow-arrow{color:var(--subtle);display:flex}.source-links{flex-wrap:wrap;gap:10px;display:flex}.source-links a{color:var(--muted);text-underline-offset:4px;font-size:12px;text-decoration:underline}.related-projects{border-top:1px solid var(--line);margin-top:30px;padding:50px 0 80px}.related-projects h2{margin-bottom:25px;font-size:28px}.writing-tags{flex-wrap:wrap;gap:8px;margin-bottom:35px;display:flex}.writing-tags a{padding:5px 11px;font-size:12px}.article-header{max-width:850px}.article-header h1{font-size:clamp(2.25rem,4vw,3.4rem);line-height:1.15}.article-meta{font:12px var(--mono);color:var(--subtle);flex-wrap:wrap;align-items:center;gap:22px;margin:22px 0;display:flex}.article-layout{grid-template-columns:minmax(0,740px) 1fr;gap:65px;padding-bottom:45px;display:grid}.prose{min-width:0;color:var(--muted);font-size:16px;line-height:1.95}.prose h2{color:var(--text);margin-top:45px;margin-bottom:19px;scroll-margin-top:110px;font-size:27px}.prose h3{color:var(--text);margin-top:30px;font-size:22px}.prose p{margin-bottom:22px}.prose a{color:var(--accent);text-underline-offset:4px;overflow-wrap:anywhere;text-decoration:underline}.prose strong{color:var(--text);font-weight:500}.prose ul,.prose ol{padding-left:23px}.prose li{margin-bottom:10px;padding-left:6px}.prose blockquote{border-left:2px solid var(--accent);margin:30px 0;padding:4px 0 4px 22px}.prose blockquote p{margin:0}.prose :not(pre)>code{font:13px var(--mono);background:var(--raised);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:3px;padding:2px 5px}.code-block{margin:28px 0;position:relative}.code-block pre{border:1px solid var(--line);background:var(--surface);font:12px/1.8 var(--mono);border-radius:6px;padding:44px 22px 22px;overflow-x:auto}.copy-code{background:var(--raised);border:1px solid var(--line);color:var(--muted);border-radius:4px;align-items:center;gap:5px;padding:3px 7px;font-size:11px;display:flex;position:absolute;top:8px;right:10px}.article-toc{border-left:1px solid var(--line);align-self:start;padding-left:22px;position:sticky;top:120px}.article-toc h2{font:12px var(--mono);color:var(--subtle);letter-spacing:0;margin-bottom:15px}.article-toc nav{flex-direction:column;gap:13px;display:flex}.article-toc a{color:var(--muted);font-size:12px;line-height:1.7}.article-toc a:hover{color:var(--accent)}.article-toc a.depth-3{padding-left:12px}.article-pagination{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:30px;padding:25px 0 55px;display:grid}.article-pagination>a{flex-direction:column;gap:9px;display:flex}.article-pagination span{font:11px var(--mono);color:var(--subtle)}.article-pagination strong{font:500 19px var(--display)}.article-pagination>a.next-note{text-align:right;grid-column:2}.contact-grid{grid-template-columns:.9fr 1.1fr;gap:85px;padding-bottom:80px;display:grid}.contact-grid h2{font-size:25px}.contact-grid p{font-size:15px;line-height:1.85}.contact-method{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:18px 0;display:flex}.contact-method svg{color:var(--accent)}.contact-method>div{flex-direction:column;display:flex}.contact-method span{color:var(--subtle);font-size:12px}.contact-method a{overflow-wrap:anywhere;font-size:14px}.contact-form{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:28px}.contact-form label{color:var(--text);margin-bottom:7px;font-size:13px;display:block}.contact-form input,.contact-form textarea{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--line);border-radius:4px;margin-bottom:18px;padding:10px 12px;font-size:14px;display:block}.contact-form textarea{resize:vertical;min-height:155px}.contact-form .form-note{margin:15px 0 0;font-size:12px;line-height:1.7}.form-status{color:var(--accent);margin-top:12px;font-size:13px}.form-buttons{flex-wrap:wrap;gap:10px;display:flex}.resume-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px;display:flex}.resume-toolbar p{margin:0;font-size:14px}.resume-frame{background:var(--raised);border:1px solid var(--line);border-radius:6px;margin-bottom:30px;padding:15px}.resume-frame object{width:100%;height:850px;display:block}.resume-frame a{color:var(--accent);text-decoration:underline}.resume-summary{padding-bottom:55px}.resume-summary summary{cursor:pointer;color:var(--muted);padding:10px 0;font-size:15px}.resume-summary>div{max-width:800px;padding:25px 0}.resume-summary h2{font-size:23px}.resume-summary h3{font-size:18px}.resume-summary li{color:var(--muted);margin-bottom:8px;font-size:14px}.activity-overview{border:1px solid var(--line);border-radius:7px;grid-template-columns:repeat(3,1fr);margin-bottom:30px;display:grid;overflow:hidden}.activity-stat{background:var(--surface);border-right:1px solid var(--line);padding:25px}.activity-stat:last-child{border-right:0}.activity-stat strong{font:500 32px var(--display);margin-bottom:7px;display:block}.activity-stat span{color:var(--muted);font-size:13px}.activity-stat small{color:var(--subtle);margin-top:7px;font-size:11px;display:block}.activity-toolbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.activity-toolbar p{margin:0;font-size:12px}.activity-event{border-top:1px solid var(--line);grid-template-columns:30px 1fr 90px;gap:15px;padding:20px 0;display:grid}.activity-event>svg{color:var(--subtle);margin-top:4px}.activity-event h3{font:500 15px var(--sans);letter-spacing:0;overflow-wrap:anywhere;margin:0 0 6px}.activity-event p{margin:0;font-size:13px}.activity-event time{font:11px var(--mono);color:var(--subtle);text-align:right;padding-top:4px}.activity-note{color:var(--subtle);padding:25px 0;font-size:12px}.error-panel{border:1px solid var(--line);border-radius:7px;padding:30px}.error-panel h2{font-size:24px}.error-panel p{font-size:15px}.loading-line{background:var(--surface);border-bottom:1px solid var(--line);height:80px}.not-found{max-width:700px;padding:110px 0 140px}.not-found h1{font-size:52px}.not-found .section-label{color:var(--accent)}.not-found p{font-size:17px}.not-found .button{margin-top:16px}.noscript-message{background:var(--surface);border:1px solid var(--line);margin-bottom:20px;padding:16px;font-size:14px}.noscript-message a{text-decoration:underline}.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}@media (min-width:1450px){.hero{padding-top:115px;padding-bottom:95px}.container{width:min(1220px,100% - 120px)}.hero-system{max-width:480px}.hero{gap:90px}.hero h1{font-size:80px}}@media (max-width:1100px){.container,.header-inner{width:calc(100% - 56px)}.hero{gap:35px;padding-top:65px}.hero h1{font-size:57px}.hero-location{gap:14px;font-size:12px}.system-content{padding:20px 15px}.project-card-body{padding:20px 18px}.project-card h3{font-size:20px}.experience-section{gap:50px}.desktop-nav{gap:23px;margin-left:20px}.article-layout,.case-layout{gap:35px}.case-actions{flex-direction:column}.contact-grid{gap:45px}.hero-actions{gap:8px}.hero-actions .button{padding:11px 14px}}@media (max-width:800px){.container,.header-inner{width:calc(100% - 40px)}.site-header{height:74px}.desktop-nav{gap:18px;margin-left:0}.desktop-nav a{font-size:12px}.header-actions{gap:8px}.header-resume{font-size:12px}.hero{grid-template-columns:1fr;gap:42px;padding-top:55px;padding-bottom:50px}.hero h1{font-size:68px}.hero-copy>p{max-width:590px}.hero-system{width:100%;max-width:520px;margin:auto}.hero-scroll{margin-top:28px}.hero-location{font-size:13px}.system-content{padding:24px}.system-branches strong{font-size:13px}.system-branches span{font-size:11px}.system-output{font-size:12px}.system-caption{font-size:13px}.system-note{font-size:11px}.experience-strip{flex-direction:column;align-items:flex-start;gap:22px;padding:24px 0}.experience-strip>span{width:auto}.experience-strip>div{width:100%}.company-name{font-size:21px}.section{padding:58px 0}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.section .project-grid>.project-card:last-child:nth-child(3){grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid}.section .project-grid>.project-card:last-child:nth-child(3) .project-art{aspect-ratio:auto;border-right:1px solid var(--line);border-bottom:none;height:100%}.experience-section{grid-template-columns:1fr 1fr;gap:36px}.experience-intro h2{font-size:28px}.compact-role{gap:15px}.role-date{font-size:10px}.compact-role p{font-size:11px}.compact-role h3{font-size:18px}.writing-section{padding-top:0}.footer-top h2{font-size:29px}.about-layout{grid-template-columns:1.3fr 1fr;gap:35px}.about-aside{padding-left:22px}.skill-grid{gap:20px}.experience-entry{grid-template-columns:140px 1fr;gap:20px}.article-layout{grid-template-columns:1fr;gap:0}.article-toc{display:none}.case-title-row{display:block}.case-actions{flex-direction:row;margin-top:23px}.case-layout{grid-template-columns:1fr;gap:30px}.case-aside{flex-direction:column;display:flex;position:static}.case-aside .tags{margin-bottom:10px}.case-art .project-art{aspect-ratio:16/7}.related-projects .project-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-details{max-width:560px}.page-header{padding-top:55px}.principle-grid{gap:22px}.resume-frame object{height:680px}}@media (max-width:600px){.container{width:calc(100% - 40px)}.desktop-nav{display:none}.mobile-menu{display:inline-flex}.header-actions{gap:10px}.header-resume{font-size:13px}.site-header{height:70px}.wordmark{font-size:28px}.hero{gap:37px;padding-top:36px}.hero-location{justify-content:space-between;margin-bottom:22px;font-size:12px}.hero h1{letter-spacing:-.055em;font-size:clamp(2.6rem,11.8vw,4.1rem)}.hero-copy>p{margin-bottom:24px;font-size:15px;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:8px}.hero-actions .button{padding:11px 14px;font-size:12px}.hero-github{margin-left:0;padding:10px}.hero-scroll{font-size:11px}.hero-system{border-radius:6px}.system-caption{padding:13px 15px;font-size:11px}.system-content{padding:18px}.system-input p{font-size:12px}.system-branches strong{font-size:11px}.system-branches span,.system-output{font-size:10px}.system-note{padding-inline:13px;font-size:9px}.system-index{font-size:9px}.experience-strip>div{grid-template-columns:repeat(2,1fr);gap:16px 25px;display:grid}.experience-strip>span{font-size:11px}.company-name{font-size:22px}.section{padding:45px 0}.section-heading{align-items:flex-start;gap:20px;margin-bottom:24px}.section-heading h2{max-width:240px;font-size:24px}.section-label{margin-bottom:9px;font-size:12px}.section-heading .text-link{white-space:nowrap;gap:5px;margin-top:25px;font-size:11px}.section-heading .text-link svg{width:14px}.project-grid{grid-template-columns:1fr;gap:22px}.section .project-grid>.project-card:last-child:nth-child(3){grid-column:auto;display:flex}.section .project-grid>.project-card:last-child:nth-child(3) .project-art{aspect-ratio:16/9;border-right:none;border-bottom:1px solid var(--line);height:auto}.project-card-body{padding:23px}.project-card h3{font-size:24px}.project-card p{font-size:14px}.project-card .tags span{font-size:10px}.card-category{font-size:11px}.experience-section{grid-template-columns:1fr;gap:35px}.experience-intro h2{font-size:30px}.compact-role h3{font-size:20px}.compact-role p{max-width:230px;font-size:12px}.compact-role .role-date{font-size:10px}.writing-section{padding-top:0}.post-row{grid-template-columns:1fr 20px;gap:12px;padding:22px 0}.post-row time{grid-column:1/-1;padding:0;font-size:11px}.post-row h3{font-size:20px;line-height:1.4}.post-row p{font-size:13px}.post-row>svg{grid-area:2/2}.footer-top{flex-direction:column;gap:25px;padding:40px 0 35px}.footer-top h2{font-size:30px}.footer-links{grid-template-columns:1fr 1fr;gap:16px 35px;padding:0;display:grid}.footer-bottom{grid-template-columns:1fr auto;gap:10px;font-size:10px;display:grid}.footer-bottom>span:nth-child(2){grid-area:2/1/auto/-1}.footer-bottom>a{grid-area:1/2}.page-header{padding:42px 0 30px}.page-header h1{font-size:39px}.page-header>p:last-child{font-size:15px}.about-layout{grid-template-columns:1fr;gap:23px;padding-bottom:35px}.about-prose p{font-size:16px}.about-aside{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}.interest-list{grid-template-columns:1fr 1fr;gap:8px;display:grid}.interest-list li{margin-bottom:2px;font-size:12px}.divider-section{padding:40px 0}.divider-section>h2{margin-bottom:28px;font-size:27px}.experience-entry{grid-template-columns:1fr;gap:12px;margin-bottom:30px;padding-bottom:30px}.experience-period{font-size:11px}.experience-content h3{font-size:25px}.experience-content li{font-size:14px}.skill-grid{grid-template-columns:1fr;gap:28px}.skill-group h3{margin-bottom:14px}.education-grid{grid-template-columns:1fr;gap:28px}.principle-grid{grid-template-columns:1fr;gap:24px}.principle-grid h3{margin-bottom:10px}.principle-grid p{margin:0}.principle-number{margin-bottom:10px}.filter-bar{gap:6px;margin-bottom:24px}.filter-chip{padding:7px 10px;font-size:11px}.project-count{width:100%;margin:8px 0 0}.project-listing{padding-bottom:40px}.case-title-row h1{font-size:38px}.case-title-row p{font-size:16px}.case-actions .button{padding:10px 14px;font-size:12px}.case-art{margin-bottom:28px}.case-art .project-art{aspect-ratio:16/9}.case-body section{margin-bottom:35px}.case-body h2{font-size:25px}.case-body p,.case-body li{font-size:15px}.flow-diagram{gap:6px;padding:15px}.flow-node{padding:9px;font-size:10px}.flow-arrow svg{width:14px}.related-projects{padding:30px 0 40px}.related-projects .project-grid{grid-template-columns:1fr}.article-header h1{font-size:35px}.article-meta{gap:15px;font-size:10px}.prose{font-size:15px}.prose h2{margin-top:32px;font-size:25px}.prose h3{font-size:21px}.code-block pre{padding-inline:15px;font-size:11px}.article-pagination{gap:20px}.article-pagination strong{font-size:16px;line-height:1.5}.article-pagination span{font-size:10px}.contact-grid{padding-bottom:40px}.contact-form{padding:22px}.contact-method a{font-size:13px}.form-buttons .button{padding-inline:12px;font-size:12px}.resume-frame{padding:5px}.resume-frame object{height:570px}.resume-toolbar .button{font-size:12px}.resume-toolbar p{font-size:13px}.activity-overview{grid-template-columns:1fr}.activity-stat{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:75px 1fr;align-items:center;padding:20px;display:grid}.activity-stat:last-child{border-bottom:0}.activity-stat strong{grid-row:1/3;margin:0}.activity-stat small{margin-top:2px}.activity-event{grid-template-columns:23px 1fr;gap:12px}.activity-event time{text-align:left;grid-column:2;padding:0}.activity-event h3{font-size:14px}.activity-toolbar{flex-wrap:wrap}.not-found{padding:70px 0 100px}.not-found h1{font-size:39px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{.site-header,.site-footer,.resume-toolbar,.resume-frame,.skip-link{display:none!important}body{color:#000;background:#fff}.resume-summary,.resume-summary>div{display:block}.resume-summary summary{display:none}}.home-contributions{padding:0 0 75px}.contribution-panel{--level-0:var(--raised);--level-1:#304b57;--level-2:#486f80;--level-3:#77a8bc;--level-4:#b3d5e7;border:1px solid var(--line);background:var(--surface);border-radius:10px;min-width:0;padding:28px 30px}[data-theme=light] .contribution-panel{--level-0:#e9eef1;--level-1:#bfd8e2;--level-2:#7eafc1;--level-3:#497f98;--level-4:#285c79}.contribution-heading,.contribution-title{align-items:center;gap:14px;display:flex}.contribution-heading{justify-content:space-between;gap:20px}.calendar-icon{background:var(--raised);border:1px solid var(--line);width:42px;height:42px;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;display:flex}.contribution-title h2{margin:0 0 4px;font-size:22px}.contribution-title p{margin:0;font-size:12px}.contribution-heading>.text-link{font:11px var(--mono);color:var(--muted)}.contribution-summary{justify-content:space-between;align-items:center;gap:20px;margin:31px 0 25px;display:flex}.contribution-summary>strong{font:500 26px var(--display)}.contribution-summary>strong>span{font:13px var(--sans);color:var(--muted);margin-left:4px}.contribution-summary>div{font:11px var(--mono);color:var(--muted);gap:25px;display:flex}.contribution-summary b{color:var(--text);font-weight:500}.calendar-scroll{scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:4px 3px 8px;overflow-x:auto}.calendar-body{grid-template-rows:22px auto;grid-template-columns:30px 1fr;column-gap:8px;min-width:700px;display:grid}.calendar-months{grid-column:2;grid-template-columns:repeat(var(--weeks),minmax(0,1fr));font:10px var(--mono);color:var(--subtle);gap:4px;display:grid}.calendar-months span{white-space:nowrap}.calendar-weekdays{font:9px var(--mono);color:var(--subtle);grid-area:2/1;grid-template-rows:repeat(7,1fr);gap:4px;display:grid}.calendar-weekdays span:first-child{grid-row:2}.calendar-weekdays span:nth-child(2){grid-row:4}.calendar-weekdays span:nth-child(3){grid-row:6}.calendar-cells{grid-area:2/2;grid-template-columns:repeat(var(--weeks),minmax(0,1fr));grid-template-rows:repeat(7,1fr);gap:4px;display:grid}.calendar-day{aspect-ratio:1;border:1px solid color-mix(in srgb,var(--text) 7%,transparent);border-radius:3px;min-width:0;padding:0}.level-0{background:var(--level-0)}.level-1{background:var(--level-1)}.level-2{background:var(--level-2)}.level-3{background:var(--level-3)}.level-4{background:var(--level-4)}.calendar-day:hover,.calendar-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.calendar-footer{justify-content:space-between;align-items:center;gap:20px;min-height:23px;margin-top:14px;display:flex}.calendar-footer p{margin:0;font-size:11px}.calendar-footer strong{color:var(--text);font-weight:500}.calendar-legend{font:9px var(--mono);color:var(--muted);flex-shrink:0;align-items:center;gap:4px;display:flex}.calendar-legend i{border:1px solid var(--line);border-radius:2px;width:11px;height:11px}.calendar-legend span:first-child{margin-right:4px}.calendar-legend span:last-child{margin-left:4px}.calendar-source{color:var(--subtle);margin:21px 0 0;font-size:10px}.calendar-source a{text-underline-offset:3px;text-decoration:underline}.calendar-state{padding:30px 0 10px}.calendar-state p{font-size:13px}.calendar-state .text-link{margin-left:20px}.calendar-placeholder{background:repeating-linear-gradient(90deg,transparent 0 12px,var(--surface) 12px 16px),repeating-linear-gradient(0deg,var(--raised) 0 12px,var(--surface) 12px 16px);border-radius:4px;height:110px}.recent-activity{margin-top:60px}.recent-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.recent-heading h2{margin-bottom:8px;font-size:31px}.recent-heading>div>p:last-child{margin-bottom:0;font-size:14px}.recent-heading .section-label{margin-bottom:10px;font-size:11px}.refresh-activity{min-height:38px;padding:8px 13px;font-size:12px}.activity-summary-bar{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:25px;margin-top:9px;padding:21px 0;font-size:12px;display:flex}.activity-summary-bar>span{align-items:center;gap:7px;display:flex}.activity-summary-bar strong{color:var(--text);font-weight:500}.activity-summary-bar .activity-updated{font:10px var(--mono);margin-left:auto}.activity-updated i{background:var(--accent);border-radius:50%;width:6px;height:6px}.event-filters{flex-wrap:wrap;align-items:center;gap:7px;padding:24px 0 28px;display:flex}.event-filters>span{font:11px var(--mono);color:var(--subtle);margin-left:auto}.event-day-group{grid-template-columns:115px minmax(0,1fr);gap:24px;display:grid}.event-date{font:500 14px var(--sans);letter-spacing:0;margin:0;padding-top:19px}.event-date span{font:10px var(--mono);color:var(--subtle);margin-top:8px;display:block}.event-day-list{border-left:1px solid var(--line);padding-bottom:25px;padding-left:24px;position:relative}.event-day-list:before{content:"";background:var(--accent);border:3px solid var(--bg);outline:1px solid var(--line);border-radius:50%;width:7px;height:7px;position:absolute;top:24px;left:-4px}.event-card{background:var(--surface);border:1px solid var(--line);border-radius:7px;align-items:flex-start;gap:16px;margin-bottom:9px;padding:20px 22px;transition:border-color .15s;display:flex}.event-card:hover{border-color:var(--subtle)}.event-card:last-child{margin-bottom:0}.event-icon{background:var(--raised);width:34px;height:34px;color:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.event-review{color:#c7b2df;background:#b897d313}.event-other{color:#d3bc8e;background:#d3bc8e13}[data-theme=light] .event-review{color:#735095}[data-theme=light] .event-other{color:#7c601f}.event-content{flex:1;min-width:0}.event-eyebrow{color:var(--muted);justify-content:space-between;gap:15px;margin-bottom:7px;font-size:11px;display:flex}.event-eyebrow time{font:10px var(--mono);color:var(--subtle);white-space:nowrap}.event-content h4{font:500 16px/1.5 var(--display);letter-spacing:-.015em;overflow-wrap:anywhere;margin:0}.event-content h4 a>span{color:var(--subtle);font-weight:400}.event-content h4 svg{vertical-align:middle;color:var(--subtle);margin-left:7px;display:inline}.event-content p{font:11px/1.7 var(--mono);overflow-wrap:anywhere;margin:8px 0 0}.more-events{margin:5px auto 0;font-size:12px;display:flex}.event-skeleton{padding-top:25px}.event-skeleton>div{background:var(--surface);border:1px solid var(--line);border-radius:7px;grid-template-columns:34px 1fr;gap:10px 16px;margin-bottom:10px;padding:22px;display:grid}.event-skeleton i{background:var(--raised);border-radius:8px;grid-row:span 2;height:34px}.event-skeleton span{background:var(--raised);border-radius:3px;max-width:260px;height:10px}.event-skeleton span:last-child{max-width:400px}.recent-activity .error-panel{margin-top:25px}.recent-activity .empty-state h3{margin-top:15px}.refresh-spinning{animation:1.5s linear infinite refresh-spin}@keyframes refresh-spin{to{transform:rotate(360deg)}}@media (max-width:600px){.home-contributions{padding-bottom:40px}.contribution-panel{padding:20px 17px}.contribution-heading{align-items:flex-start}.contribution-title{gap:10px}.calendar-icon{display:none}.contribution-title h2{font-size:20px}.contribution-title p{font-size:10px}.contribution-heading>.text-link{gap:4px;padding-top:5px;font-size:9px}.contribution-summary{flex-direction:column;align-items:flex-start;gap:12px;margin:24px 0 20px}.contribution-summary>strong{font-size:25px}.contribution-summary>div{gap:20px;font-size:10px}.calendar-footer{flex-direction:column;align-items:flex-start;gap:10px}.calendar-footer p{min-height:17px;font-size:10px}.calendar-source{margin-top:17px;font-size:9px;line-height:1.8}.recent-activity{margin-top:40px}.recent-heading h2{font-size:27px}.recent-heading>div>p:last-child{max-width:210px;font-size:12px}.recent-heading{align-items:flex-start}.refresh-activity{margin-top:28px;padding:7px 10px;font-size:10px}.activity-summary-bar{flex-wrap:wrap;gap:10px 20px;padding:17px 0;font-size:11px}.activity-summary-bar .activity-updated{width:100%;margin:0;font-size:9px}.event-filters{gap:6px;padding:20px 0}.event-filters .filter-chip{min-height:34px;padding:6px 8px;font-size:10px}.event-filters>span{width:100%;margin:5px 0 0;font-size:9px}.event-day-group{grid-template-columns:1fr;gap:12px}.event-date{align-items:baseline;gap:10px;padding-top:0;font-size:12px;display:flex}.event-date span{margin:0;font-size:9px}.event-day-list{margin-left:3px;padding-bottom:22px;padding-left:15px}.event-day-list:before{top:20px}.event-card{gap:10px;padding:16px 12px}.event-icon{border-radius:6px;width:27px;height:27px}.event-icon svg{width:14px}.event-eyebrow{flex-wrap:wrap;gap:7px;font-size:10px}.event-eyebrow time{font-size:9px}.event-content h4{font-size:14px}.event-content p,.activity-note{font-size:10px}.calendar-state .text-link{margin:12px 0 0;display:flex}}.calendar-day{position:relative}:root{--matte-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23808080' opacity='.17' filter='url(%23grain)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");--matte-blend:soft-light}[data-theme=light]{--matte-blend:multiply}body,.site-footer,.menu-sheet{background-image:var(--matte-grain);background-blend-mode:var(--matte-blend);background-repeat:repeat;background-size:180px 180px}@media print{body,.site-footer,.menu-sheet{background-image:none}}.hiring-intro{border-left:2px solid var(--accent);max-width:530px;margin:0 0 27px;padding:2px 0 2px 16px}.hiring-intro>span{font:500 11px var(--mono);color:var(--accent)}.hiring-intro>p{margin:8px 0 0;font-size:13px;line-height:1.8}.calendar-scroll-hint{display:none}@media (max-width:800px){.calendar-scroll-hint{color:var(--subtle);margin:0 0 8px;font-size:10px;display:block}}.experience-header{max-width:960px}.experience-context{grid-template-columns:1fr 1fr;gap:60px;margin:0 0 35px;display:grid}.experience-context h2{font-size:23px}.experience-context p{font-size:15px;line-height:1.9}.experience-diagram{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin:0 0 60px;overflow:hidden}.diagram-label{border-bottom:1px solid var(--line);font:11px var(--mono);color:var(--subtle);justify-content:space-between;padding:17px 24px;display:flex}.diagram-scroll{padding:10px 15px;overflow-x:auto}.diagram-scroll svg{width:100%;min-width:700px;color:var(--accent);display:block}.sketch-node{fill:var(--art-paper);stroke:var(--accent);stroke-width:1.2px}.sketch-echo{fill:none;stroke:var(--accent);stroke-width:.6px;opacity:.35}.sketch-text{font:15px var(--mono);fill:var(--text)}.sketch-number{font:10px var(--mono);fill:var(--subtle)}.sketch-footnote{font:11px var(--mono);fill:var(--muted)}.experience-diagram figcaption{color:var(--muted);border-top:1px solid var(--line);padding:15px 24px 20px;font-size:12px;line-height:1.8}.experience-story{grid-template-columns:220px minmax(0,1fr);gap:70px;padding-bottom:45px;display:grid}.experience-story>aside{align-self:start;position:sticky;top:115px}.experience-story nav{flex-direction:column;gap:16px;margin-bottom:30px;display:flex}.experience-story nav a{color:var(--muted);font-size:12px}.experience-story .prose section:first-child h2{margin-top:0}.experience-story section{scroll-margin-top:110px}.experience-related{flex-wrap:wrap;gap:20px;display:flex}.experience-related a{align-items:center;gap:8px;font-size:14px;display:flex}.experience-next{border-top:1px solid var(--line);flex-wrap:wrap;gap:25px;padding:30px 0 55px;display:flex}.experience-next a{align-items:center;gap:8px;font-size:14px;display:flex}.experience-scope{max-width:750px;font-size:13px;line-height:1.8}.master-role{margin:30px 0 45px}.master-role h3{margin-bottom:8px}.master-scope{border-left:2px solid var(--line);padding-left:14px;font-size:13px!important}.resume-summary .master-summary{max-width:850px}.resume-summary .master-summary h2{margin-top:35px}.prototype-note{border:1px solid var(--line);border-radius:5px;margin:18px 0;padding:18px}.prototype-note strong{color:var(--accent);font-size:12px}@media (max-width:800px){.experience-context{grid-template-columns:1fr;gap:15px}.experience-story{grid-template-columns:1fr;gap:30px}.experience-story>aside{position:static}.experience-story nav{display:none}.experience-diagram{margin-bottom:35px}.experience-next{gap:20px}.experience-context p{font-size:14px}.diagram-label,.experience-diagram figcaption{padding-inline:17px}.experience-header h1{font-size:36px}}.diagram-scroll-hint{display:none}@media (max-width:800px){.diagram-scroll-hint{font:10px var(--mono);color:var(--subtle);margin:0;padding:14px 17px 0;display:block}.experience-story>aside>.aside-label{display:none}}.architecture-figure{--diagram-service:#243743;--diagram-data:#203c38;--diagram-control:#3b3243;--diagram-person:#303842;--diagram-data-ink:#8acdb6;--diagram-control-ink:#c9b0df;--diagram-person-ink:#c7cdd4;background:var(--surface)}[data-theme=light] .architecture-figure,[data-theme=light] .architecture-modal{--diagram-service:#e5eff5;--diagram-data:#e4f1eb;--diagram-control:#efe9f5;--diagram-person:#edf0f3;--diagram-data-ink:#397a60;--diagram-control-ink:#77519a;--diagram-person-ink:#647381}.architecture-toolbar{justify-content:space-between;align-items:center;gap:25px;padding:26px 28px 18px;display:flex}.architecture-kicker{font:10px var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.architecture-toolbar h2{margin:10px 0 9px;font-size:23px}.architecture-toolbar p{max-width:650px;margin:0;font-size:12px}.diagram-expand{min-height:38px;padding:9px 12px;font-size:11px}.architecture-legend{font:10px var(--mono);color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:22px;padding:0 28px 22px;display:flex}.architecture-legend>span{align-items:center;gap:7px;display:flex}.architecture-legend i{border-top:2px solid var(--accent);width:20px;display:inline-block}.architecture-legend .legend-async{border-color:var(--diagram-data-ink);border-top-style:dashed}.architecture-legend .legend-control{border-color:var(--diagram-control-ink);border-top-style:dotted}.architecture-legend .architecture-mobile-hint{display:none}.architecture-canvas{padding:14px}.architecture-canvas svg{min-width:1000px}.architecture-dot{fill:var(--subtle);opacity:.22}.architecture-boundary{fill:var(--bg);fill-opacity:.7;stroke:var(--line);stroke-width:1px;stroke-dasharray:5 4}.architecture-group-title{fill:var(--accent);font:11px var(--mono);letter-spacing:.7px}.architecture-group-subtitle{fill:var(--muted);font:11px var(--sans)}.architecture-edge{fill:none;stroke:var(--accent);stroke-width:1.6px}.architecture-edge.async{stroke:var(--diagram-data-ink);stroke-dasharray:6 4}.architecture-edge.control{stroke:var(--diagram-control-ink);stroke-dasharray:3 4}.architecture-arrow.main{color:var(--accent)}.architecture-arrow.async{color:var(--diagram-data-ink)}.architecture-arrow.control{color:var(--diagram-control-ink)}.architecture-edge-label{font:10px var(--mono);fill:var(--muted);paint-order:stroke;stroke:var(--bg);stroke-width:5px;stroke-linejoin:round}.architecture-node rect{fill:var(--diagram-service);stroke:var(--line);stroke-width:1.1px}.architecture-node.data rect{fill:var(--diagram-data)}.architecture-node.control rect{fill:var(--diagram-control)}.architecture-node.person rect{fill:var(--diagram-person)}.node-accent{stroke:var(--accent);stroke-width:3px}.data .node-accent{stroke:var(--diagram-data-ink)}.control .node-accent{stroke:var(--diagram-control-ink)}.person .node-accent{stroke:var(--diagram-person-ink)}.data-curve{fill:none;stroke:var(--diagram-data-ink);opacity:.3}.architecture-node-title{fill:var(--text);font:500 14px var(--display)}.architecture-node-line{fill:var(--muted);font:11px var(--sans)}.architecture-node .architecture-badge-bg{fill:var(--accent);stroke:none}.architecture-badge{fill:var(--accent-ink);font:9px var(--mono)}.architecture-note{fill:var(--muted);font:11px var(--mono)}.architecture-outline{border-top:1px solid var(--line);padding:18px 28px}.architecture-outline summary{color:var(--muted);cursor:pointer;font-size:12px}.architecture-outline p,.architecture-outline li{color:var(--muted);font-size:13px;line-height:1.85}.architecture-outline p{margin-top:16px}.architecture-outline ul{padding-left:20px}.architecture-outline strong{color:var(--text);font-weight:500}.architecture-overlay{z-index:80;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000b;position:fixed;inset:0}.architecture-modal{--diagram-service:#243743;--diagram-data:#203c38;--diagram-control:#3b3243;--diagram-person:#303842;--diagram-data-ink:#8acdb6;--diagram-control-ink:#c9b0df;--diagram-person-ink:#c7cdd4;z-index:81;background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;position:fixed;inset:3vh 3vw;overflow:hidden}.architecture-modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:18px 24px;display:flex}.architecture-modal-header h2{margin:0 0 5px;font-size:19px}.architecture-modal-header p{margin:0;font-size:11px}.architecture-zoom{border-bottom:1px solid var(--line);align-items:center;gap:7px;padding:7px 20px;display:flex}.architecture-zoom>span{font:11px var(--mono);text-align:center;min-width:42px;color:var(--muted)}.architecture-modal-scroll{flex:1;min-height:0;padding:15px;overflow:auto}.architecture-modal-scroll svg{width:100%;display:block}@media (max-width:800px){.architecture-toolbar{flex-direction:column;align-items:flex-start;gap:17px;padding:20px}.architecture-toolbar h2{font-size:21px}.architecture-legend{gap:12px 18px;padding:0 20px 18px;font-size:9px}.architecture-legend .architecture-mobile-hint{width:100%;display:flex}.architecture-canvas{padding:10px}.architecture-outline{padding:17px 20px}.architecture-modal{inset:10px}.architecture-modal-header{padding:15px}.architecture-modal-header h2{font-size:16px}.architecture-modal-scroll{padding:8px}}
