:root{--palette-1:#000e57;--palette-2:#000333;--palette-3:#2d2c30;--palette-4:#000;--palette-5:#fff;--botticelli-blue:#b7c9d8;--accent-blue:#508dc8;--background-primary:#000714;--background-secondary:#071629;--glass-background:#0f1c31a6;--glass-border:#ffffff24;--text-primary:#fff;--text-secondary:#b7c9d8;--text-muted:#9caec0;--surface:#0d1a2b;--window:#091424e3;--sidebar:#152436a8;--toolbar:#1f2c3dd6;--panel:#162538bf;--hover:#b7c9d817;--active:#6c95ba2b;--line:#b7c9d81f;--button-bg:#305e8c;--button-hover:#3a6d9f;--link:#a6c9eb;--success:#95c4b0;--shadow:0 30px 100px #0008, 0 2px 8px #0005;--radius:12px;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;color-scheme:dark}:root[data-theme=light]{--background-primary:#c8d5e0;--background-secondary:#e4ebf1;--glass-background:#f2f7fbbf;--glass-border:#2039522e;--text-primary:#12283d;--text-secondary:#425b70;--text-muted:#506679;--surface:#e9f0f5;--window:#f4f8fced;--sidebar:#dbe6efd1;--toolbar:#e8eff6e6;--panel:#ffffffbf;--hover:#325a7d12;--active:#508dc826;--line:#2d475f26;--link:#285d8c;--success:#286349;--shadow:0 30px 100px #0b203533, 0 2px 8px #0b203522;color-scheme:light}*,:before,:after{box-sizing:border-box}html{min-width:320px;scroll-padding-top:24px}body{color:var(--text-primary);background:var(--background-primary);font:15px/1.6 var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button{color:inherit}img{max-width:100%;display:block}svg{vertical-align:middle;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.18}h1{letter-spacing:-.055em;font-size:clamp(2.4rem,4.5vw,3.7rem);font-weight:650}h2{letter-spacing:-.035em;font-size:27px;font-weight:600}h3{letter-spacing:-.02em;font-size:17px;font-weight:600}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:5px;border-radius:3px}[hidden]{display:none!important}::selection{color:var(--text-primary);background:#508dc866}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--surface);border:1px solid var(--glass-border);border-radius:8px;padding:10px 18px;position:fixed;top:10px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.landscape{z-index:-1;background:radial-gradient(at 65% 20%,#627d9566,#0000 58%),linear-gradient(155deg,#000714 10%,#142e49 60%,#08111e);position:fixed;inset:0;overflow:hidden}.mountain{position:absolute;inset:0}.mountain-back{clip-path:polygon(0 53%,13% 48%,29% 22%,34% 19%,48% 44%,57% 48%,74% 9%,83% 28%,100% 42%,100% 100%,0 100%);opacity:.55;background:linear-gradient(150deg,#b7c9d8 12%,#5b768e 45%,#233b51 72%)}.mountain-mid{clip-path:polygon(0 70%,21% 42%,29% 45%,39% 29%,47% 38%,56% 64%,68% 51%,81% 41%,100% 67%,100% 100%,0 100%);background:linear-gradient(120deg,#243c55,#758b9e 47%,#192f45 63%)}.mountain-front{clip-path:polygon(0 49%,7% 50%,17% 64%,30% 72%,39% 67%,58% 82%,72% 66%,85% 57%,100% 63%,100% 100%,0 100%);background:linear-gradient(135deg,#293e52 10%,#0b2036 57%,#000714)}.mountain-near{clip-path:polygon(0 85%,15% 94%,31% 87%,47% 96%,64% 83%,82% 88%,100% 76%,100% 100%,0 100%);background:linear-gradient(15deg,#000714 15%,#11263a 85%)}[data-theme=light] .landscape{background:linear-gradient(150deg,#d9e4ed,#9aafc0)}[data-theme=light] .mountain{opacity:.33}.desktop-label{color:#d4e0ea;align-items:center;gap:9px;max-width:1440px;margin:37px auto 17px;padding:0 6px;font-size:12px;font-weight:500;display:flex}.desktop-label-right{color:#c1cfdd;margin-left:auto;font-weight:400}.app-window{border:1px solid var(--glass-border);background:var(--surface);max-width:1440px;box-shadow:var(--shadow);border-radius:16px;margin:0 auto;overflow:clip}.window-body{grid-template-columns:210px minmax(0,1fr);min-height:770px;display:grid}main{min-width:0;padding:48px 44px 34px}.window-footer{border-top:1px solid var(--line);background:var(--sidebar);color:var(--text-muted);justify-content:space-between;align-items:center;gap:20px;padding:13px 24px;font-size:11px;display:flex}.window-footer>span:nth-child(2),.window-footer a{align-items:center;gap:7px;display:flex}.window-footer a:hover{color:var(--text-primary)}.desktop-footer{text-align:center;color:#c0cedb;letter-spacing:.025em;margin:22px 20px 32px;font-size:11px}[data-theme=light] .desktop-label,[data-theme=light] .desktop-label-right,[data-theme=light] .desktop-footer{color:#263e52}.eyebrow{color:var(--text-muted);letter-spacing:.2em;font-size:10px;font-weight:600;line-height:1.5}.heading-dot{color:var(--accent-blue)}.muted{color:var(--text-secondary)}.page-header{max-width:780px;margin:14px 0 38px}.page-header .eyebrow{margin-bottom:18px}.page-header>p:not(.eyebrow){color:var(--text-secondary);max-width:610px;margin-top:22px;font-size:17px;line-height:1.8}.page-header .tags{margin-top:24px}.page-header .post-meta{margin-bottom:22px}.glass-panel{border:1px solid var(--glass-border);background:var(--panel);border-radius:var(--radius);padding:28px}.glass-panel h2{margin-bottom:14px;font-size:22px}.glass-panel p{color:var(--text-secondary)}.prose{color:var(--text-secondary);line-height:1.9}.prose h2,.prose h3{color:var(--text-primary);margin-top:32px;margin-bottom:16px}.prose p,.prose ul,.prose ol{margin:0 0 20px}.prose li{margin-bottom:8px}.prose a{color:var(--link);text-underline-offset:4px;text-decoration:underline}.prose code{font:.88em var(--font-mono);background:var(--hover);border-radius:4px;padding:2px 5px}.prose pre{border-radius:10px;max-width:100%;padding:20px;overflow:auto}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:2px solid var(--accent-blue);margin:24px 0;padding:4px 0 4px 24px}.back-link{color:var(--text-secondary);margin-bottom:16px;font-size:13px;display:inline-block}.back-link:hover{color:var(--text-primary)}@supports (backdrop-filter:blur(20px)){.app-window{background:var(--window);-webkit-backdrop-filter:blur(28px)}}@media (width>=1550px){.desktop-label{margin-top:65px}}@media (width<=1510px){.app-window,.desktop-label{margin-left:36px;margin-right:36px}}@media (width<=1200px){.window-body{grid-template-columns:185px minmax(0,1fr)}main{padding:36px 30px}}@media (width<=1000px){.app-window,.desktop-label{margin-left:22px;margin-right:22px}.window-body{grid-template-columns:165px minmax(0,1fr)}main{padding:30px 24px}.window-footer>span:nth-child(2){display:none}}@media (width<=760px){.desktop-label{margin:20px 16px 12px}.app-window{border-radius:13px;margin:0 12px}.window-body{min-height:0;display:block}main{padding:32px 22px}.desktop-label-right{display:none}.window-footer{flex-wrap:wrap;gap:12px;padding:14px 18px}.page-header{margin-top:8px}.page-header>p:not(.eyebrow){font-size:16px}.glass-panel{padding:24px}}@media (width<=380px){main{padding:28px 16px}.app-window{margin:0 8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (prefers-reduced-transparency:reduce){.app-window{-webkit-backdrop-filter:none;background:var(--surface)}}@media (prefers-contrast:more){:root{--text-muted:var(--text-primary);--text-secondary:var(--text-primary);--glass-border:currentColor;--line:currentColor}}.window-controls{flex-shrink:0;align-items:center;gap:7px;display:flex}.window-controls span{background:#ee6b64;border-radius:50%;width:11px;height:11px;box-shadow:inset 0 0 0 1px #0001}.window-controls span:nth-child(2){background:#e9bd58}.window-controls span:nth-child(3){background:#79bc86}.topbar{border-bottom:1px solid var(--glass-border);background:var(--toolbar);align-items:center;gap:24px;min-height:66px;padding:12px 22px;display:flex}.window-heading{align-items:center;gap:20px;min-width:165px;display:flex}.window-heading>span{color:var(--text-secondary);font-size:11px}.top-nav{justify-content:center;gap:8px;margin:0 auto;display:flex}.top-nav a{color:var(--text-secondary);border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;padding:8px 15px;font-size:12px;display:flex}.top-nav a[aria-current=page]{color:var(--text-primary);background:var(--active);border-color:var(--line);box-shadow:0 1px 3px #0001}.top-nav a:hover,.icon-button:hover{background:var(--hover);color:var(--text-primary)}.icon-button{border:1px solid var(--line);width:36px;height:36px;color:var(--text-secondary);background:0 0;border-radius:8px;flex-shrink:0;place-items:center;padding:0;display:grid}.theme-moon,[data-theme=light] .theme-sun{display:none}[data-theme=light] .theme-moon{display:inline}.sidebar{background:var(--sidebar);border-right:1px solid var(--line);flex-direction:column;padding:29px 17px 22px;display:flex}.brand{letter-spacing:-.04em;align-items:center;gap:10px;margin-bottom:38px;padding-left:7px;font-size:17px;font-weight:600;display:flex}.brand-icon{width:32px;height:32px;color:var(--botticelli-blue);background:#28445f;border:1px solid #69829a55;border-radius:8px;place-items:center;display:grid}.sidebar-label{color:var(--text-muted);letter-spacing:.13em;margin-bottom:12px;padding-left:11px;font-size:9px;font-weight:600;display:block}.sidebar nav{gap:5px;display:grid}.sidebar nav a{color:var(--text-secondary);border-radius:7px;align-items:center;gap:12px;padding:10px 11px;font-size:13px;display:flex}.sidebar nav a:hover{background:var(--hover)}.sidebar nav a[aria-current=page]{background:var(--active);color:var(--text-primary)}.sidebar nav a[aria-current=page]>svg{color:var(--link)}.nav-shortcut{color:var(--text-muted);margin-left:auto;font-size:10px}.sidebar-bottom{margin-top:auto;padding-top:85px}.sidebar-detail{margin-bottom:25px}.sidebar-detail .sidebar-label{margin-bottom:8px}.sidebar-detail p{color:var(--text-secondary);align-items:center;gap:8px;padding-left:11px;font-size:11px;display:flex}.status-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.status-dot.busy{background:var(--text-secondary)}.social-links{gap:8px;margin:28px 0 22px 4px;display:flex}.social-links a{width:34px;height:34px;color:var(--text-secondary);border-radius:6px;place-items:center;display:grid}.social-links a:hover{background:var(--hover);color:var(--text-primary)}.sidebar-signoff{border-top:1px solid var(--line);color:var(--text-muted);margin:0 11px;padding-top:19px;font-size:10px;line-height:1.9}.home-intro{grid-template-columns:1fr 1fr;align-items:center;gap:35px;margin-bottom:55px;display:grid}.hero{padding:3px 0}.availability{width:fit-content;color:var(--text-secondary);border:1px solid var(--line);background:var(--hover);border-radius:20px;align-items:center;gap:7px;margin-bottom:29px;padding:4px 10px;font-size:10px;display:flex}.hero .eyebrow{margin-bottom:10px}.hero h1{font-size:clamp(2.7rem,4.3vw,4.2rem)}.hero-subtitle{color:var(--text-secondary);letter-spacing:-.025em;margin-top:16px;font-size:clamp(16px,1.55vw,21px);font-weight:400}.hero-description{max-width:340px;color:var(--text-muted);margin-top:15px;font-size:13px;line-height:1.85}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.button{border:1px solid var(--glass-border);border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 14px;font-size:11px;font-weight:500;transition:background .16s;display:inline-flex}.button-primary{background:var(--button-bg);color:#fff;border-color:#6796c255;box-shadow:inset 0 1px #ffffff0d,0 2px 5px #0002}.button-primary:hover{background:var(--button-hover)}.button-secondary{background:var(--hover);color:var(--text-secondary)}.button-secondary:hover{background:var(--active);color:var(--text-primary)}.hero-note{color:var(--text-muted);align-items:center;gap:7px;margin-top:24px;font-size:10px;display:flex}.terminal{color:#d3dce5;min-width:0;font-family:var(--font-mono);background:#09121ee8;border:1px solid #a5c0d333;border-radius:11px;overflow:hidden;box-shadow:0 12px 36px #0003}.terminal-titlebar{background:#c5d9ed0b;border-bottom:1px solid #ffffff0e;align-items:center;gap:12px;padding:12px 13px;display:flex}.terminal-titlebar h2{color:#b0becc;letter-spacing:0;white-space:nowrap;margin:0 auto;font-size:10px;font-weight:400}.terminal-titlebar>svg{color:#9dabb9}.terminal .window-controls{gap:5px}.terminal .window-controls span{width:8px;height:8px}.terminal-body{padding:19px 20px 17px;font-size:11px;line-height:1.8}.terminal-output{scrollbar-width:thin;scrollbar-color:#536b80 transparent;height:244px;overflow:auto}.terminal-output pre{font:inherit;color:#b7c9d8;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 14px}.terminal-command{overflow-wrap:anywhere;color:#cad6e3}.terminal-command>span:first-child,.terminal-form label>span:first-child{color:#91b8db}.terminal-command .command-name{color:#c2d8ec}.terminal-entry{margin-bottom:10px}.terminal-entry a{color:#acd0ef;text-underline-offset:4px;text-decoration:underline;display:inline-block}.terminal-form{align-items:center;gap:8px;padding-top:8px;display:flex}.terminal-form label{flex-shrink:0}.terminal-form input{color:#f0f5fa;caret-color:#b7c9d8;background:0 0;border:0;border-radius:2px;width:100%;min-width:0;padding:4px 2px;font-size:12px}.terminal-run{color:#b7c9d8;background:0 0;border:1px solid #b7c9d82b;border-radius:4px;flex-shrink:0;width:28px;height:28px;padding:0}.terminal-run:hover{background:#b7c9d817}.terminal-footer{color:#a6b7c8;font:9px var(--font-sans);background:#c5d9ed05;border-top:1px solid #ffffff0e;justify-content:space-between;align-items:center;gap:10px;padding:9px 14px;display:flex}.terminal-footer>span:first-child{align-items:center;gap:6px;display:flex}.terminal-footer .status-dot{background:#95c4b0;width:4px;height:4px}.terminal-footer kbd{color:#d3dce5;font-family:var(--font-mono)}.section-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.section-heading .eyebrow{margin-bottom:7px}.text-link{color:var(--text-secondary);align-items:center;gap:8px;padding:7px 0;font-size:11px;display:inline-flex}.text-link:hover{color:var(--text-primary)}.project-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--glass-border);background:var(--panel);border-radius:10px;min-width:0;transition:border-color .15s,background .15s;overflow:hidden}.project-card:hover{background:var(--hover);border-color:#7f9ebc80}.project-image-link{padding:11px 11px 0;display:block}.project-image-link img{aspect-ratio:1.6;object-fit:cover;background:#102238;border-radius:5px;width:100%}.project-content{padding:15px 14px 16px}.project-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px;display:flex}.project-title h3{font-size:14px}.project-title svg{color:var(--text-muted)}.project-title a:hover{color:var(--link)}.project-content>p{color:var(--text-secondary);font-size:11px;line-height:1.8}.tags{flex-wrap:wrap;gap:5px;margin:14px 0 0;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--line);background:var(--hover);color:var(--text-secondary);font:9px/1.5 var(--font-mono);border-radius:4px;padding:2px 6px}.sample-note{color:var(--text-muted);margin-top:14px;font-size:10px}.journal-preview{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:center;gap:30px;margin-top:35px;padding-top:27px;display:grid}.journal-preview h2{margin-top:8px;font-size:18px;font-weight:500}.journal-links{gap:10px;display:grid}.journal-links a{color:var(--text-secondary);justify-content:space-between;gap:15px;padding:5px 0;font-size:11px;display:flex}.journal-links a:hover{color:var(--text-primary)}.about-grid{grid-template-columns:1.1fr 1fr;gap:22px;display:grid}.panel-stack{gap:22px;display:grid}.panel-icon{color:var(--link)}.large-tags{gap:9px}.large-tags li{padding:6px 10px;font-size:11px}.page-cta{margin-top:28px}.experience,.experience article{margin-top:24px}.experience article h3{margin:8px 0}.collection-heading{border-bottom:1px solid var(--line);color:var(--text-muted);justify-content:space-between;gap:15px;margin-bottom:24px;padding-bottom:16px;font-size:11px;display:flex}.all-projects{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.all-projects .project-title h3{font-size:18px}.all-projects .project-content{padding:20px}.all-projects .project-content>p{font-size:13px}.project-content .project-status{color:var(--text-muted);margin-top:18px;font-size:10px}.project-links{color:var(--link);flex-wrap:wrap;gap:16px;margin-top:18px;font-size:12px;display:flex}.project-links a{align-items:center;gap:5px;display:inline-flex}.project-cover{border:1px solid var(--glass-border);border-radius:12px;width:100%;max-width:800px;height:auto}.project-overview{max-width:720px;margin-top:32px}.post-list{gap:22px;display:grid}.post-card{border:1px solid var(--glass-border);background:var(--panel);border-radius:12px;padding:28px}.post-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:11px;display:flex}.post-card h2{margin:17px 0 14px;font-size:25px}.post-card h2 a{justify-content:space-between;align-items:center;gap:20px;display:flex}.post-card h2 a:hover{color:var(--link)}.post-card>p{color:var(--text-secondary);font-size:14px}.blog-article{max-width:760px;margin:0 auto}.blog-article h1{font-size:clamp(2rem,3.5vw,3.2rem)}.blog-cover{border-radius:12px;width:100%;height:auto;margin-bottom:30px}.contact-panel{max-width:800px;padding:35px}.contact-panel h2{font-size:24px}.email-link{overflow-wrap:anywhere;color:var(--link);letter-spacing:-.035em;flex-wrap:wrap;align-items:center;gap:20px;margin:14px 0 28px;font-size:clamp(21px,3vw,38px);display:inline-flex}.email-link:hover{color:var(--text-primary)}.contact-links{flex-wrap:wrap;gap:12px;display:flex}.contact-location{border-top:1px solid var(--line);align-items:center;gap:8px;margin-top:24px;padding-top:24px;font-size:12px;display:flex}@media (width<=1250px){.home-intro{gap:25px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-image-link{padding:14px 14px 0}.project-content{padding:18px}.project-title h3{font-size:17px}.project-content>p{font-size:13px}.tags li{font-size:10px}.window-heading>span{display:none}.window-heading{min-width:75px}}@media (width<=1080px){.home-intro{grid-template-columns:1fr;gap:32px}.hero h1{font-size:58px}.hero-description{max-width:450px}.hero-subtitle{font-size:21px}.hero-note{margin-top:20px}.hero .availability{margin-bottom:24px}.terminal-output{height:244px}.terminal-titlebar h2{font-size:11px}.terminal-body{font-size:12px}.terminal-footer{font-size:10px}.about-grid{grid-template-columns:1fr}}@media (width<=1000px){.sidebar{padding-left:12px;padding-right:12px}.brand{gap:7px;padding-left:0;font-size:14px}.brand-icon{width:28px;height:28px}.nav-shortcut{display:none}.sidebar nav a{gap:9px}.sidebar-detail p{font-size:10px}.top-nav{gap:3px}.top-nav a{padding:8px 10px}.journal-preview{grid-template-columns:1fr;gap:18px}}@media (width<=760px){.sidebar{display:none}.topbar{flex-wrap:wrap;gap:14px;padding:13px 16px 0}.window-heading{flex:1}.window-heading>span{display:inline}.theme-toggle{order:0;width:40px;height:40px}.top-nav{border-top:1px solid var(--line);flex-basis:calc(100% + 32px);order:1;justify-content:space-around;gap:3px;margin:0 -16px;padding:8px}.top-nav a{gap:6px;min-height:44px;padding:9px 10px;font-size:11px}.home-intro{margin-bottom:38px}.hero h1{font-size:clamp(44px,9vw,64px)}.hero-subtitle{font-size:19px}.hero-description{font-size:14px}.button{min-height:44px;font-size:12px}.hero-note,.hero .availability{font-size:11px}.section-heading h2{font-size:27px}.text-link{min-height:44px;font-size:12px}.contact-panel{padding:24px}.contact-panel h2{font-size:21px}.contact-location{align-items:flex-start}.terminal-form input{font-size:16px}.terminal-run{width:36px;height:36px}.terminal-form{gap:7px}.terminal-body{padding:16px}.post-card{padding:22px}.post-card h2{font-size:22px}}@media (width<=520px){.project-grid{grid-template-columns:1fr}.top-nav a{flex-direction:column;gap:3px;padding:6px 10px;font-size:10px}.project-image-link{padding:14px 14px 0}.project-content{padding:20px}.project-title h3{font-size:20px}.project-content>p{font-size:14px}.tags li{font-size:11px}.terminal-titlebar{gap:8px;padding:12px 10px}.terminal-titlebar h2{font-size:9px}.terminal-titlebar>svg{display:none}.terminal-body{padding:14px 12px;font-size:10px}.terminal-footer{padding:10px;font-size:8px}.collection-heading{flex-wrap:wrap}.sample-note{font-size:11px}.hero-actions{gap:8px}.hero-actions .button{padding:10px 12px}}
