@import "https://fonts.googleapis.com/css2?family=Archivo:wght@400;600;800&family=JetBrains+Mono:wght@400;500;700&display=swap";@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{--color-bg:#f6f7f9;--color-surface:#ffffffb8;--color-surface-hover:#ffffffe6;--color-text:#16181d;--color-text-muted:#5e6573;--color-accent:#c44727;--color-accent-hover:#a8381a;--color-accent-600:#a8381a;--color-accent-700:#c44727;--color-accent-subtle:#c4472714;--color-divider:#e2e5eb;--color-border:#d3d7e0;--color-badge-bg:#ebedf2bf;--color-badge-text:#242934;--color-grid-dot:#16181d12;--color-btn-primary-bg:#16181d;--color-btn-primary-text:#fff;--color-btn-primary-hover:#262b34;--font-heading:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", monospace;--astro-code-background:#edf0f5bf;--astro-code-foreground:#16181d;--astro-code-color-background:#edf0f5bf;--astro-code-color-text:#16181d;--astro-code-token-constant:#c44727;--astro-code-token-string:#0969da;--astro-code-token-comment:#6e7781;--astro-code-token-keyword:#c44727;--astro-code-token-parameter:#16181d;--astro-code-token-function:#8250df;--astro-code-token-string-expression:#0969da;--astro-code-token-punctuation:#24292f;--astro-code-token-link:#c44727}[data-theme=dark]{--color-bg:#0d0f13;--color-surface:#14171db8;--color-surface-hover:#1b2029e6;--color-text:#e8ecf2;--color-text-muted:#8b94a5;--color-accent:#e56847;--color-accent-hover:#ff7f5e;--color-accent-600:#ff7f5e;--color-accent-700:#e56847;--color-accent-subtle:#e568471f;--color-divider:#232731;--color-border:#2d3340;--color-badge-bg:#1c202abf;--color-badge-text:#d2d8e4;--color-grid-dot:#e8ecf20e;--color-btn-primary-bg:#e8ecf2;--color-btn-primary-text:#0d0f13;--color-btn-primary-hover:#fff;--astro-code-background:#14171dbf;--astro-code-foreground:#e8ecf2;--astro-code-color-background:#14171dbf;--astro-code-color-text:#e8ecf2;--astro-code-token-constant:#e56847;--astro-code-token-string:#79c0ff;--astro-code-token-comment:#6e7681;--astro-code-token-keyword:#e56847;--astro-code-token-parameter:#e8ecf2;--astro-code-token-function:#d2a8ff;--astro-code-token-string-expression:#79c0ff;--astro-code-token-punctuation:#c9d1d9;--astro-code-token-link:#e56847}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;line-height:1.55;transition:background-color .15s,color .15s;display:flex}main{z-index:1;background:0 0;flex:1 0 auto;position:relative}.bg-canvas{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--color-text);font-weight:800;line-height:1.15}a{color:var(--color-accent);text-decoration:none;transition:color .12s}a:hover{color:var(--color-accent-hover)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.nav{view-transition-name:site-nav}.site-footer{view-transition-name:site-footer}main{view-transition-name:main-content}::view-transition-group(site-nav){z-index:1000}::view-transition-group(site-footer){z-index:50}::view-transition-group(main-content){z-index:100;overflow:clip}::view-transition-old(root),::view-transition-new(root){animation:none}@keyframes iosStashOut{0%{opacity:1;filter:brightness();transform:scale(1)translateY(0)}to{opacity:0;filter:brightness(.8);transform:scale(.96)translateY(-10px)}}@keyframes iosStashIn{0%{opacity:0;filter:drop-shadow(0 -10px 24px #00000026);transform:translateY(32px)scale(.985)}to{opacity:1;filter:drop-shadow(0 0 #0000);transform:translateY(0)scale(1)}}::view-transition-old(main-content){background:var(--color-bg);animation:.24s cubic-bezier(.32,.72,0,1) both iosStashOut}::view-transition-new(main-content){background:var(--color-bg);animation:.28s cubic-bezier(.22,1,.36,1) both iosStashIn}@media (prefers-reduced-motion:reduce){*,::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.project-card,.writing-item,.post-card,.value-cell,.cv-project-card,.cv-scope-box{backdrop-filter:blur(10px);position:relative;overflow:hidden}.project-card>*,.writing-item>*,.post-card>*,.value-cell>*,.cv-project-card>*,.cv-scope-box>*{z-index:2;position:relative}.project-card:before,.writing-item:before,.post-card:before,.value-cell:before,.cv-project-card:before,.cv-scope-box:before{content:"";border-radius:inherit;background:radial-gradient(240px circle at var(--mouse-x,-999px) var(--mouse-y,-999px), var(--color-accent-subtle), transparent 70%);opacity:0;pointer-events:none;z-index:1;transition:opacity .2s;position:absolute;inset:0}.project-card:after,.writing-item:after,.post-card:after,.value-cell:after,.cv-project-card:after,.cv-scope-box:after{content:"";border-radius:inherit;background:radial-gradient(180px circle at var(--mouse-x,-999px) var(--mouse-y,-999px), var(--color-accent), transparent 70%);-webkit-mask-composite:xor;pointer-events:none;opacity:0;z-index:3;padding:1px;transition:opacity .2s;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.project-card:hover:before,.writing-item:hover:before,.post-card:hover:before,.value-cell:hover:before,.cv-project-card:hover:before,.cv-scope-box:hover:before,.project-card:hover:after,.writing-item:hover:after,.post-card:hover:after,.value-cell:hover:after,.cv-project-card:hover:after,.cv-scope-box:hover:after{opacity:1}@media print{:root,html,html[data-theme=dark],html[data-theme=light],body{color-scheme:light!important;color:#111827!important;--color-bg:#fff!important;--color-surface:#fff!important;--color-surface-hover:#fff!important;--color-text:#16181d!important;--color-text-muted:#5e6573!important;--color-divider:#e2e5eb!important;--color-border:#d3d7e0!important;--color-accent:#c44727!important;background:#fff!important}.bg-canvas{display:none!important}}.nav{z-index:1000;border-bottom:1px solid var(--color-divider);background:color-mix(in srgb, var(--color-bg) 48%, transparent);backdrop-filter:blur(5px);align-items:center;gap:28px;padding:18px 96px;transition:transform .28s cubic-bezier(.16,1,.3,1),background-color .2s,border-color .2s,box-shadow .2s;display:flex;position:sticky;top:0}.nav.nav--hidden{transform:translateY(-100%)}.nav.nav--scrolled{background:color-mix(in srgb, var(--color-bg) 64%, transparent);backdrop-filter:blur(8px);box-shadow:0 4px 20px #0000000a}[data-theme=dark] .nav.nav--scrolled{box-shadow:0 4px 20px #00000040}.nav-brand{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--color-text);white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;margin-right:auto;font-size:16px;font-weight:800;transition:color .15s;display:inline-flex}.nav-brand-logo{flex-shrink:0;transition:transform .35s cubic-bezier(.34,1.56,.64,1);display:block}.nav-brand-logo .logo-hex{stroke:var(--color-border);transition:stroke .2s}.nav-brand-logo .logo-axes{stroke:var(--color-border);transition:stroke-opacity .2s,stroke .2s}.nav-brand-logo .logo-trace{transition:stroke .2s,filter .2s}.nav-brand-logo .logo-core{transition:r .3s cubic-bezier(.34,1.56,.64,1),filter .2s}.nav-brand:hover .nav-brand-logo{transform:scale(1.08)rotate(12deg)}.nav-brand:hover .nav-brand-logo .logo-hex{stroke:var(--color-text-muted)}.nav-brand:hover .nav-brand-logo .logo-axes{stroke-opacity:.6}.nav-brand:hover .nav-brand-logo .logo-core{r:2.2;filter:drop-shadow(0 0 4px var(--color-accent))}.nav-brand:hover .nav-brand-name{color:var(--color-accent)}.nav-brand-tag{font-family:var(--font-mono);background:var(--color-accent-subtle);color:var(--color-accent);letter-spacing:.02em;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;transition:transform .15s,background-color .15s}.nav-brand:hover .nav-brand-tag{background:color-mix(in srgb, var(--color-accent) 18%, transparent);transform:scale(1.05)}.nav-links{align-items:center;gap:24px;display:flex}.nav a{color:var(--color-text-muted);font-size:14px;font-weight:500}.nav a[aria-current=page]{color:var(--color-accent);font-weight:600}.nav a:hover{color:var(--color-text)}.theme-toggle{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:all .15s;display:inline-flex}.theme-toggle:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-surface-hover)}.theme-toggle:active{transform:scale(.92)}.theme-toggle svg{width:15px;height:15px;transition:transform .25s cubic-bezier(.2,0,0,1)}.theme-toggle:hover svg{transform:rotate(20deg)}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}.site-footer{color:var(--color-text-muted);background:color-mix(in srgb, var(--color-bg) 48%, transparent);backdrop-filter:blur(5px);border-top:1px solid var(--color-divider);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:32px 96px;font-size:13px;display:flex}.site-footer-links{flex-wrap:wrap;gap:20px;display:flex}.site-footer a{color:var(--color-text-muted);transition:color .12s}.telemetry-pill{font-family:var(--font-mono);letter-spacing:.04em;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);backdrop-filter:blur(8px);border-radius:4px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;display:inline-flex}.telemetry-pill:before{content:"";background:#10b981;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite telemetryPulse;box-shadow:0 0 6px #10b98199}@keyframes telemetryPulse{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.2)}}.site-footer a:hover{color:var(--color-accent)}@media (width<=768px){.site-footer{flex-direction:column;align-items:flex-start;padding:24px}}.btn{font-family:var(--font-heading);cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:10px 20px;font-size:14px;font-weight:700;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.98)}.btn-primary{background:var(--color-btn-primary-bg,var(--color-text));color:var(--color-btn-primary-text,var(--color-bg));border-color:var(--color-btn-primary-bg,var(--color-text))}.btn-primary:hover{background:var(--color-btn-primary-hover,var(--color-text));color:var(--color-btn-primary-text,var(--color-bg));border-color:var(--color-btn-primary-hover,var(--color-text))}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover);color:var(--color-accent);border-color:var(--color-accent)}.hero{border-bottom:1px solid var(--color-divider);padding:96px 96px 72px}.hero-kicker{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--color-accent);align-items:center;gap:8px;margin-bottom:20px;font-size:11px;font-weight:500;display:inline-flex}.hero h1{letter-spacing:-.02em;max-width:860px;margin:0 0 24px;font-size:clamp(32px,5vw,56px);line-height:1.12}.hero-bio{max-width:680px;color:var(--color-text-muted);margin:0 0 32px;font-size:18px;line-height:1.6}.hero-metrics{flex-wrap:wrap;gap:10px;margin-bottom:36px;display:flex}.metric-badge{font-family:var(--font-mono);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);backdrop-filter:blur(8px);border-radius:4px;align-items:center;padding:6px 12px;font-size:11.5px;display:inline-flex}.metric-badge strong{color:var(--color-accent);margin-right:6px}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.home-section{border-bottom:1px solid var(--color-divider);padding:64px 96px}.section-header-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:32px;display:flex}.section-header-row h2{letter-spacing:-.01em;font-size:22px}.section-header-row a{font-size:13px;font-weight:600}.projects-grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.project-card{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:6px;flex-direction:column;padding:24px;text-decoration:none;transition:all .15s;display:flex}.project-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.project-card-top{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.project-card-top h3{margin:0;font-size:18px}.project-card-badge{font-family:var(--font-mono);color:var(--color-text-muted);font-size:10.5px}.project-card p{color:var(--color-text-muted);flex-grow:1;margin:0 0 16px;font-size:13.5px;line-height:1.55}.project-card-footer{color:var(--color-accent);font-size:12px;font-weight:600}.writing-list{flex-direction:column;gap:16px;display:flex}.writing-item{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:6px;padding:20px 24px;text-decoration:none;transition:all .15s}.writing-item:hover{border-color:var(--color-accent);transform:translate(4px)}.writing-item-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:6px;display:flex}.writing-item h3{margin:0;font-size:17px}.writing-item-date{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;font-size:12px}.writing-item p{color:var(--color-text-muted);margin:0 0 12px;font-size:13.5px;line-height:1.5}.writing-item-tags{flex-wrap:wrap;gap:8px;display:flex}.writing-tag{font-family:var(--font-mono);background:var(--color-badge-bg);color:var(--color-badge-text);border-radius:3px;padding:2px 6px;font-size:10px}@media (width<=768px){.hero{padding:64px 24px 48px}.home-section{padding:48px 24px}}.section{border-bottom:1px solid var(--color-divider);padding:64px 96px}.section-intro{border-bottom:1px solid var(--color-divider);padding:80px 96px}.section-intro h1{margin-bottom:24px;font-size:40px}.section-intro p{opacity:.85;max-width:680px;font-size:17px}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-bottom:28px;font-size:14px}.chips{flex-wrap:wrap;gap:10px;display:flex}.chip{font-family:var(--font-mono);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);backdrop-filter:blur(8px);border-radius:4px;padding:6px 12px;font-size:12.5px;transition:all .15s}.chip:hover{border-color:var(--color-accent);transform:translateY(-1px)}.value-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.value-cell{background:var(--color-surface);border:1px solid var(--color-border);backdrop-filter:blur(10px);border-radius:6px;padding:24px}.value-cell h3{margin-bottom:10px;font-size:19px}.value-cell p{opacity:.75;font-size:14px}.reading-list{flex-wrap:wrap;gap:10px;margin-bottom:24px;list-style:none;display:flex}.reading-list:last-child{margin-bottom:0}.reading-list li{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);backdrop-filter:blur(8px);border-radius:4px;padding:8px 14px;font-size:13.5px;transition:all .15s}.reading-list li:hover{border-color:var(--color-accent);transform:translateY(-1px)}.reading-sublabel{text-transform:uppercase;letter-spacing:.08em;opacity:.55;margin:24px 0 12px;font-size:13px}.blog-header{border-bottom:1px solid var(--color-divider);padding:80px 96px 40px}.blog-header h1{margin-bottom:12px;font-size:40px}.blog-header p{color:var(--color-text-muted);font-size:16px}.blog-grid-wrap{padding:48px 96px 96px}.blog-grid{flex-direction:column;gap:16px;max-width:780px;margin:0 auto;display:flex}.post-card{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:6px;padding:20px 24px;text-decoration:none;transition:all .15s;display:block}.post-card:hover{border-color:var(--color-accent);transform:translate(4px)}.post-card-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:6px;display:flex}.post-card h3{color:var(--color-text);margin:0;font-size:17px;transition:color .15s}.post-card:hover h3{color:var(--color-accent)}.post-card-date{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;font-size:12px}.post-card p{color:var(--color-text-muted);margin:0 0 12px;font-size:13.5px;line-height:1.5}.post-card-tags{flex-wrap:wrap;gap:8px;display:flex}.post-tag{font-family:var(--font-mono);background:var(--color-badge-bg);color:var(--color-badge-text);border-radius:3px;padding:2px 6px;font-size:10px}.article-header{border-bottom:1px solid var(--color-divider);padding:72px 0 40px}.article-header-inner{max-width:780px;margin:0 auto;padding:0 24px}.article-header-inner h1{letter-spacing:-.02em;margin-bottom:16px;font-size:clamp(28px,4vw,42px);line-height:1.18}.post-meta-row{font-family:var(--font-mono);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.post-meta-date{color:var(--color-text-muted);font-weight:500}.post-meta-divider{color:var(--color-border);user-select:none;font-size:10px}.post-meta-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.post-meta-tags .post-tag{font-family:var(--font-mono);background:var(--color-badge-bg);color:var(--color-badge-text);border:1px solid var(--color-border);letter-spacing:.01em;border-radius:4px;padding:3px 8px;font-size:11px}.article-body{padding:48px 0 96px}.article-body-inner{max-width:780px;margin:0 auto;padding:0 24px}.prose{max-width:100%;font-size:16.5px;line-height:1.75}.prose>:first-child{margin-top:0}.prose p{margin:0 0 20px}.prose h2{margin:40px 0 16px;font-size:26px}.prose h3{margin:32px 0 12px;font-size:20px}.prose h4{margin:24px 0 10px;font-size:17px}.prose strong{font-weight:800}.prose ul,.prose ol{margin:0 0 20px;padding-left:24px}.prose li{margin-bottom:8px}.prose a{text-underline-offset:3px;text-decoration:underline}.prose code{font-family:var(--font-mono,monospace);background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:2px 6px;font-size:.85em}.prose pre{background:var(--color-surface);border:1px solid var(--color-border);backdrop-filter:blur(10px);border-radius:6px;margin:0 0 24px;padding:16px 20px;position:relative;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0;font-size:13px;line-height:1.6}.prose blockquote{background:var(--color-surface);border-left:3px solid var(--color-accent);backdrop-filter:blur(10px);border-radius:0 6px 6px 0;margin:0 0 24px;padding:14px 20px;font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.prose img{border:1px solid var(--color-border);border-radius:6px;max-width:100%;margin:8px 0 24px}.prose hr{background:var(--color-divider);border:0;height:1px;margin:40px 0}.prose table{border-collapse:collapse;border:1px solid var(--color-border);background:var(--color-surface);backdrop-filter:blur(10px);border-radius:6px;margin:0 0 24px;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--color-divider);text-align:left;white-space:nowrap;padding:8px 12px}.prose th{background:var(--color-surface);font-weight:800}.reading-progress{background:var(--color-accent);transform-origin:0;z-index:1001;pointer-events:none;width:100%;height:2.5px;transition:transform 50ms linear;position:fixed;top:0;left:0;transform:scaleX(0)}.code-copy-btn{font-family:var(--font-mono);background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;opacity:0;z-index:5;border-radius:4px;justify-content:center;align-items:center;padding:3px 8px;font-size:11px;transition:all .15s;display:inline-flex;position:absolute;top:8px;right:8px}.prose pre:hover .code-copy-btn,.code-copy-btn:focus-visible{opacity:1}.code-copy-btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-surface-hover)}.code-copy-btn.copied{color:#10b981;opacity:1;border-color:#10b981}@media (hover:none){.code-copy-btn{opacity:.85}}.cv-container{max-width:880px;margin:0 auto;padding:48px 32px 64px}.cv-actions{justify-content:flex-end;gap:12px;margin-bottom:24px;display:flex}.cv-paper{color:#18181b;-webkit-font-smoothing:antialiased;background:#fff;border-radius:4px;padding:48px 56px;font-family:Archivo,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13.5px;line-height:1.55;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000d}.cv-paper h1,.cv-paper h2,.cv-paper h3,.cv-paper h4{color:#09090b;font-family:Archivo,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:800;line-height:1.25}.cv-paper a{color:#09090b;border-bottom:1px solid #d4d4d8;text-decoration:none}.cv-paper a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.cv-paper code{background:#f4f4f5;border-radius:3px;padding:1px 4px;font-family:SF Mono,Fira Code,Fira Mono,monospace;font-size:.9em}.cv-paper .muted{color:#52525b}.cv-paper header{border-bottom:1.5px solid #18181b;margin-bottom:18px;padding-bottom:14px}.cv-paper .header-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.cv-paper .header-top h1{letter-spacing:-.02em;margin-bottom:0;font-size:28px}.cv-paper .location{color:#71717a;font-size:13px;font-weight:500}.cv-paper .subtitle{color:#3f3f46;margin-bottom:8px;font-size:13.5px;font-weight:600}.cv-paper .links{color:#52525b;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12px;display:flex}.cv-paper .links a{color:#18181b}.cv-paper .cv-scope-box{background:#fafafa;border:1px solid #e4e4e7;border-left:3.5px solid #18181b;border-radius:3px;margin-bottom:22px;padding:18px 22px}.cv-paper .cv-scope-box h2{letter-spacing:.08em;text-transform:uppercase;color:#09090b;border-bottom:1px solid #e4e4e7;margin-bottom:10px;padding-bottom:4px;font-size:12px}.cv-paper .cv-scope-box ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cv-paper .cv-scope-box li{color:#27272a;padding-left:14px;font-size:13.5px;line-height:1.55;position:relative}.cv-paper .cv-scope-box li:before{content:"▪";color:#71717a;font-size:9px;position:absolute;top:1px;left:0}.cv-paper .cv-scope-box strong{color:#09090b;font-weight:800}.cv-paper .cv-year-nav{background:#f4f4f5;border:1px solid #e4e4e7;border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px;padding:10px 14px;display:flex}.cv-paper .cv-year-nav a{color:#52525b;background:#fff;border:1px solid #d4d4d8;border-radius:3px;padding:4px 10px;font-family:SF Mono,Fira Code,monospace;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s}.cv-paper .cv-year-nav a:hover{color:#09090b;background:#f4f4f5;border-color:#18181b}.cv-paper .cv-year-section{margin-bottom:32px}.cv-paper .cv-year-heading{break-after:avoid;page-break-after:avoid;border-bottom:1.5px solid #18181b;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;padding-bottom:4px;display:flex}.cv-paper .cv-year-heading h2{letter-spacing:.04em;text-transform:uppercase;color:#09090b;margin:0;font-size:18px}.cv-paper .cv-role-badge{color:#52525b;font-size:12.5px;font-weight:600}.cv-paper .cv-context-quote{color:#3f3f46;break-inside:avoid;page-break-inside:avoid;background:#fafafa;border-left:2.5px solid #71717a;border-radius:0 2px 2px 0;margin-bottom:16px;padding:10px 16px;font-size:13px;font-style:italic;line-height:1.55}.cv-paper .cv-milestone{break-inside:avoid;page-break-inside:avoid;border-bottom:1px dashed #e4e4e7;margin-bottom:16px;padding-bottom:14px}.cv-paper .cv-milestone:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.cv-paper .cv-milestone h3{color:#09090b;break-after:avoid;page-break-after:avoid;margin-bottom:6px;font-size:14px;font-weight:800}.cv-paper .cv-milestone ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.cv-paper .cv-milestone li{break-inside:avoid;page-break-inside:avoid;color:#27272a;padding-left:14px;font-size:13px;line-height:1.52;position:relative}.cv-paper .cv-milestone li:before{content:"▪";color:#71717a;font-size:9px;position:absolute;top:2px;left:0}.cv-paper .cv-milestone strong{color:#09090b;font-weight:800}.cv-paper .cv-intro-text{color:#27272a;margin-bottom:12px;font-size:13.5px;line-height:1.55}.cv-paper .cv-projects-grid{flex-direction:column;gap:10px;display:flex}.cv-paper .cv-project-card{break-inside:avoid;page-break-inside:avoid;background:#fafafa;border:1px solid #e4e4e7;border-radius:3px;padding:12px 16px}.cv-paper .cv-project-header{align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.cv-paper .cv-project-header h3{margin:0;font-size:13.5px}.cv-paper .cv-project-header h3 a{color:#09090b;font-weight:800}.cv-paper .cv-tag{color:#52525b;font-size:11.5px}.cv-paper .cv-project-card p{color:#27272a;margin:0;font-size:12.5px;line-height:1.48}.cv-paper .cv-skills-list{flex-direction:column;gap:6px;display:flex}.cv-paper .cv-skill-row{color:#27272a;grid-template-columns:180px 1fr;column-gap:12px;font-size:13px;line-height:1.48;display:grid}.cv-paper .cv-skill-category{letter-spacing:.04em;text-transform:uppercase;color:#09090b;font-size:11.5px;font-weight:800}.cv-paper .cv-education-row{break-inside:avoid;page-break-inside:avoid;border-top:1px dashed #e4e4e7;justify-content:space-between;margin-top:12px;padding-top:10px;font-size:13px;display:flex}@media print{@page{size:letter;margin:.42in .5in}*{print-color-adjust:exact!important}html,body{color-scheme:light!important;color:#18181b!important;background:#fff!important;margin:0!important;padding:0!important;font-size:11px!important;line-height:1.4!important}.nav,.cv-actions,.cv-year-nav,.site-footer,.bg-canvas{display:none!important}.cv-container{max-width:100%!important;margin:0!important;padding:0!important}.cv-paper{box-shadow:none!important;border-radius:0!important;padding:0!important;font-size:11px!important;line-height:1.4!important}.cv-paper header{margin-bottom:10px!important;padding-bottom:8px!important}.cv-paper .header-top{justify-content:space-between!important;align-items:baseline!important;margin-bottom:2px!important;display:flex!important}.cv-paper .header-top h1{margin-bottom:0!important;font-size:22px!important}.cv-paper .location{color:#71717a!important;font-size:10.5px!important}.cv-paper .subtitle{margin-bottom:4px!important;font-size:11px!important}.cv-paper .links{font-size:10px!important}.cv-paper a{color:#09090b!important;border-bottom:1px solid #d4d4d8!important}.cv-paper .cv-scope-box{margin-bottom:14px!important;padding:12px 14px!important}.cv-paper .cv-scope-box li{font-size:10px!important;line-height:1.38!important}.cv-paper .cv-year-section{margin-bottom:18px!important}.cv-paper .cv-year-heading{margin-bottom:8px!important;padding-bottom:2px!important}.cv-paper .cv-year-heading h2{font-size:14px!important}.cv-paper .cv-role-badge{font-size:10px!important}.cv-paper .cv-context-quote{margin-bottom:10px!important;padding:6px 10px!important;font-size:10px!important;line-height:1.38!important}.cv-paper .cv-milestone{margin-bottom:10px!important;padding-bottom:8px!important}.cv-paper .cv-milestone h3{margin-bottom:3px!important;font-size:11px!important}.cv-paper .cv-milestone li{font-size:10px!important;line-height:1.36!important}.cv-paper .cv-project-card{padding:6px 10px!important}.cv-paper .cv-project-header h3{font-size:11px!important}.cv-paper .cv-project-card p{font-size:9.5px!important;line-height:1.32!important}.cv-paper .cv-skill-row{font-size:10px!important;line-height:1.35!important}.cv-paper .cv-education-row{font-size:10.5px!important}}@media (width<=600px){.cv-container{padding:24px 16px}.cv-paper{padding:24px 18px}.cv-skill-row{grid-template-columns:1fr;gap:2px}.cv-year-heading{flex-direction:column;gap:2px}}.resume-container{max-width:880px;margin:0 auto;padding:48px 32px 64px}.resume-actions{justify-content:flex-end;gap:12px;margin-bottom:24px;display:flex}.resume-paper{color:#18181b;-webkit-font-smoothing:antialiased;background:#fff;border-radius:4px;padding:48px 56px;font-family:Archivo,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13.5px;line-height:1.52;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000d}.resume-paper h1,.resume-paper h2,.resume-paper h3,.resume-paper h4{color:#09090b;font-family:Archivo,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:800;line-height:1.25}.resume-paper a{color:#09090b;border-bottom:1px solid #d4d4d8;text-decoration:none}.resume-paper a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.resume-paper code{background:#f4f4f5;border-radius:3px;padding:1px 4px;font-family:SF Mono,Fira Code,Fira Mono,monospace;font-size:.9em}.resume-paper .muted{color:#52525b}.resume-paper header{border-bottom:1.5px solid #18181b;margin-bottom:16px;padding-bottom:12px}.resume-paper .header-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.resume-paper .header-top h1{letter-spacing:-.02em;margin-bottom:0;font-size:28px}.resume-paper .location{color:#71717a;font-size:13px;font-weight:500}.resume-paper .subtitle{color:#3f3f46;margin-bottom:8px;font-size:14px;font-weight:600}.resume-paper .links{color:#52525b;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;display:flex}.resume-paper .links a{color:#18181b}.resume-paper section{margin-bottom:18px}.resume-paper section>h2{letter-spacing:.08em;text-transform:uppercase;color:#09090b;border-bottom:1px solid #18181b;margin-bottom:8px;padding-bottom:3px;font-size:12px}.resume-paper h2,.resume-paper h3,.resume-paper h4{break-after:avoid;page-break-after:avoid}.resume-paper .bio p{color:#27272a;font-size:13px;line-height:1.5}.resume-paper .skills-grid{grid-template-columns:160px 1fr;gap:5px 12px;font-size:12.5px;line-height:1.45;display:grid}.resume-paper .skill-label{letter-spacing:.04em;text-transform:uppercase;color:#09090b;font-size:11px;font-weight:800}.resume-paper .company{break-inside:auto}.resume-paper .company-meta{break-inside:avoid;page-break-inside:avoid;justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.resume-paper .company-meta h3{font-size:16px}.resume-paper .company-location{color:#71717a;font-size:12px;font-weight:600}.resume-paper .roles-bar{color:#3f3f46;break-inside:avoid;page-break-inside:avoid;border-bottom:1px dashed #e4e4e7;margin-bottom:12px;padding-bottom:6px;font-size:12px;font-weight:600}.resume-paper .domain-group{break-inside:avoid;page-break-inside:avoid;margin-bottom:14px}.resume-paper .domain-group:last-child{margin-bottom:0}.resume-paper .domain-group h4{color:#09090b;margin-bottom:6px;font-size:13.5px}.resume-paper .domain-group ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.resume-paper .domain-group li{break-inside:avoid;page-break-inside:avoid;color:#27272a;padding-left:14px;font-size:12.5px;line-height:1.48;position:relative}.resume-paper .domain-group li:before{content:"▪";color:#71717a;font-size:9px;position:absolute;top:2px;left:0}.resume-paper .domain-group strong{color:#09090b;font-weight:800}.resume-paper .projects-grid{flex-direction:column;gap:10px;display:flex}.resume-paper .project{break-inside:avoid;page-break-inside:avoid}.resume-paper .project-header{align-items:baseline;gap:10px;margin-bottom:3px;display:flex}.resume-paper .project-header a{color:#09090b;font-size:13px;font-weight:800}.resume-paper .project-header .muted{font-size:11.5px}.resume-paper .project p{color:#27272a;margin:0;font-size:12.5px;line-height:1.45}.resume-paper .education-row{break-inside:avoid;page-break-inside:avoid;justify-content:space-between;font-size:13px;display:flex}@media print{@page{size:letter;margin:.42in .5in}*{print-color-adjust:exact!important}html,body{color-scheme:light!important;color:#18181b!important;background:#fff!important;margin:0!important;padding:0!important;font-size:11.5px!important;line-height:1.42!important}.nav,.resume-actions,.site-footer,.bg-canvas{display:none!important}.resume-container{max-width:100%!important;margin:0!important;padding:0!important}.resume-paper{box-shadow:none!important;border-radius:0!important;padding:0!important;font-size:11.5px!important;line-height:1.42!important}.resume-paper header{margin-bottom:12px!important;padding-bottom:10px!important}.resume-paper .header-top{justify-content:space-between!important;align-items:baseline!important;margin-bottom:2px!important;display:flex!important}.resume-paper .header-top h1{margin-bottom:0!important;font-size:24px!important}.resume-paper .location{color:#71717a!important;font-size:11px!important}.resume-paper .subtitle{margin-bottom:6px!important;font-size:13px!important}.resume-paper .links{gap:4px 10px!important;font-size:11px!important}.resume-paper section{margin-bottom:12px!important}.resume-paper section>h2{margin-bottom:6px!important;padding-bottom:2px!important;font-size:11px!important}.resume-paper .bio p{font-size:11px!important;line-height:1.42!important}.resume-paper .skills-grid{grid-template-columns:140px 1fr!important;gap:3px 8px!important;font-size:10.5px!important;line-height:1.35!important}.resume-paper .skill-label{font-size:10px!important}.resume-paper .company-meta h3{font-size:14px!important}.resume-paper .company-location{font-size:11px!important}.resume-paper .roles-bar{margin-bottom:8px!important;padding-bottom:4px!important;font-size:11px!important}.resume-paper .domain-group{margin-bottom:9px!important}.resume-paper .domain-group h4{margin-bottom:4px!important;font-size:11.5px!important}.resume-paper .domain-group ul{gap:4px!important}.resume-paper .domain-group li{padding-left:12px!important;font-size:10.5px!important;line-height:1.38!important}.resume-paper .domain-group li:before{font-size:8px!important}.resume-paper .projects-grid{gap:6px!important}.resume-paper .project-header{gap:8px!important;margin-bottom:2px!important}.resume-paper .project-header a{font-size:11.5px!important}.resume-paper .project-header .muted{font-size:10.5px!important}.resume-paper .project p{font-size:10.5px!important;line-height:1.35!important}.resume-paper .education-row{font-size:11px!important}.resume-paper a{color:#09090b!important;border-bottom:1px solid #d4d4d8!important}}@media (width<=600px){.resume-container{padding:24px 16px}.resume-paper{padding:24px 18px}.resume-paper .skills-grid{grid-template-columns:1fr;row-gap:6px}.resume-paper .company-meta,.resume-paper .education-row{flex-direction:column;gap:2px}}@media (width<=700px){.nav,.hero,.home-section,.section,.section-intro,.blog-header,.blog-grid-wrap,.site-footer,.article-header-inner,.article-body-inner{padding-left:24px;padding-right:24px}.hero{padding-top:72px;padding-bottom:56px}.hero h1{font-size:40px}.value-grid{grid-template-columns:1fr;gap:16px}.value-cell{padding:20px}.site-footer{flex-direction:column;align-items:flex-start}}
