.header[data-astro-cid-3ef6ksr2]{position:fixed;left:0;top:0;height:100vh;width:200px;border-right:var(--border-width-thick) solid var(--border);background-color:var(--bg);z-index:100;display:flex;flex-direction:column}.nav[data-astro-cid-3ef6ksr2]{padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;height:100%;justify-content:center}.nav-list[data-astro-cid-3ef6ksr2]{display:flex;flex-direction:column;gap:var(--space-4);list-style:none;padding:0;margin:0}.nav-list[data-astro-cid-3ef6ksr2] li[data-astro-cid-3ef6ksr2]{margin:0}.nav-list[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;color:var(--fg);text-decoration:none;display:block;position:relative;transition:filter var(--motion-fast)}.nav-list[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{filter:blur(8px)}.nav-list[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:var(--accent)}.nav-list[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(max-width:1024px){.header[data-astro-cid-3ef6ksr2]{position:relative;width:100%;height:auto;border-right:none;border-bottom:var(--border-width-thick) solid var(--border)}.nav[data-astro-cid-3ef6ksr2]{flex-direction:row;align-items:center;justify-content:flex-start;padding:var(--space-4) var(--gutter);gap:var(--space-8)}.nav-list[data-astro-cid-3ef6ksr2]{flex-direction:row;gap:var(--space-6)}.nav-list[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-size:var(--text-lg)}}@media(max-width:768px){.nav[data-astro-cid-3ef6ksr2]{flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--gutter)}.nav-list[data-astro-cid-3ef6ksr2]{width:100%;gap:var(--space-3)}.nav-list[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-size:var(--text-base)}}.skip-link[data-astro-cid-hoe5mouk]{position:absolute;top:var(--space-4);left:var(--space-4);z-index:1000;padding:var(--space-3) var(--space-6);font-weight:600;color:var(--bg);background-color:var(--fg);border:var(--border-width) solid var(--fg);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 0 var(--fg);transform:translateY(-200%);transition:transform var(--motion-base)}.skip-link[data-astro-cid-hoe5mouk]:focus{transform:translateY(0)}.polygon-background[data-astro-cid-shulg5zz]{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:hidden}.polygon-background[data-astro-cid-shulg5zz] canvas[data-astro-cid-shulg5zz]{display:block;width:100%;height:100%}@media(prefers-reduced-motion:reduce){.polygon-background[data-astro-cid-shulg5zz]{display:none}}main[data-astro-cid-5hce7sga]#main-content{margin-left:200px}@media(max-width:1024px){main[data-astro-cid-5hce7sga]#main-content{margin-left:0}}:root{--bg: hsl(0 0% 6%);--fg: hsl(0 0% 96%);--muted: hsl(0 0% 60%);--border: hsl(0 0% 88%);--accent: hsl(358 85% 50%);--font-sans: "Fira Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.75rem;--text-4xl: 3.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--max-content: 65rem;--gutter: 1rem;--border-width: 2px;--border-width-thick: 3px;--shadow-offset: 4px;--shadow-offset-lg: 6px;--motion-fast: .1s;--motion-base: .15s}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-base: 0ms}}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gutter)}.grid-8{grid-column:span 8}.grid-10{grid-column:span 10}.grid-12{grid-column:span 12}@media(max-width:768px){.grid-8,.grid-10{grid-column:span 12}}.container{width:100%;max-width:var(--max-content);margin-left:auto;margin-right:auto;padding-left:var(--gutter);padding-right:var(--gutter)}.container-wide{max-width:100%}@media(min-width:768px){:root{--gutter: 1.5rem}}@media(min-width:1024px){:root{--gutter: 1.5rem}}@media(max-width:480px){:root{--gutter: 1rem}}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.flex-wrap{flex-wrap:wrap}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-top:auto;margin-bottom:auto}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--fg);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition{z-index:9999}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}::view-transition-old(root),::view-transition-new(root){animation:none}}body{min-height:100vh;font-size:var(--text-base);line-height:1.6;background-color:transparent}@media(max-width:768px){html,body{overflow-y:hidden}body:has(.projects-page),body:has(.project-page){overflow-y:auto}}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--fg)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{margin-bottom:var(--space-6);max-width:70ch}a{color:var(--fg);text-decoration:none;transition:color var(--motion-fast)}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}ul,ol{margin-bottom:var(--space-6);padding-left:var(--space-8)}li{margin-bottom:var(--space-2)}code{font-family:var(--font-mono);font-size:.9em;padding:.125em .25em;background-color:var(--bg);border:var(--border-width) solid var(--border)}pre{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-6);margin-bottom:var(--space-6);background-color:var(--bg);border:var(--border-width) solid var(--border);overflow-x:auto}pre code{padding:0;border:none;background:transparent}img{max-width:100%;height:auto;display:block}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background-color:var(--accent);color:var(--bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.mono{font-family:var(--font-mono)}.text-muted{color:var(--muted)}.accent{color:var(--accent)}
