@font-face{font-family:Fira Code;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/FiraCode-Regular.woff2)format("woff2"),url(/fonts/FiraCode-Regular.woff)format("woff"),url(/fonts/FiraCode-Regular.ttf)format("truetype")}:root{--blue:#368bc1;--yellow:#f2bb18;--gray-100:#f8f9fa;--gray-200:#ebebeb;--gray-900:#222;--bg:#f5f0e1;--fg:var(--gray-900);--accent:var(--blue);--muted:rgb(from var(--fg) r g b / .75);--rule:rgb(from var(--fg) r g b / .15);--code-bg:#faf7ef;--quote-bg:rgb(from var(--accent) r g b / .1);--max:48rem;color-scheme:light;font-family:Lato,system-ui,-apple-system,Segoe UI,sans-serif;font-size:1.05rem;line-height:1.6}code,pre,kbd,samp{font-family:Fira Code,ui-monospace,Menlo,monospace}:root[data-theme=dark]{--bg:#141517;--fg:#e0e0e0;--accent:var(--yellow);--code-bg:#2b2d31;--quote-bg:rgb(from var(--yellow) r g b / .1);color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141517;--fg:#e0e0e0;--accent:var(--yellow);--code-bg:#2b2d31;--quote-bg:rgb(from var(--yellow) r g b / .1);color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--fg);flex-direction:column;margin:0;display:flex}::selection{background:var(--accent);color:var(--bg)}a{color:var(--accent)}h1,h2,h3,h4,h5,h6{color:var(--accent);line-height:1.25}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}article h1,article h2,article h3{margin-top:2em;margin-bottom:.6em;font-size:1em;font-weight:700}article h1:first-of-type{margin-top:.5em}article h1{font-size:1.6rem}blockquote{color:var(--accent);background:var(--quote-bg);border-radius:3px;margin:2em;padding:.1em 1em}hr{border:0;border-top:1px solid var(--rule)}.site-header,main{width:100%;max-width:var(--max);margin:0 auto;padding:0 1rem}.site-header{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;padding-top:1.25rem;padding-bottom:1rem;display:flex}.site-title{color:var(--accent);font-size:1.25rem;font-weight:400;text-decoration:none}.site-header nav{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.site-header nav a{color:var(--muted);text-decoration:none}.site-header nav a:hover{color:var(--accent)}.site-header nav .icon-link{color:var(--muted);display:flex}.site-header nav .icon-link:hover{color:var(--accent)}.theme-toggle{width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle:hover{color:var(--accent)}.theme-toggle svg{width:1.1rem;height:1.1rem}.theme-toggle .icon-sun,.theme-toggle[data-next=dark] .icon-sun{display:none}.theme-toggle[data-next=dark] .icon-moon{display:block}.theme-toggle[data-next=light] .icon-moon{display:none}.theme-toggle[data-next=light] .icon-sun{display:block}main{flex:1;width:100%;padding-top:2rem;padding-bottom:3rem}.site-footer{border-top:1px solid var(--rule);width:100%;margin-top:auto;font-size:.9rem}.site-footer nav{flex-wrap:wrap;justify-content:center;gap:1.5rem;padding:1.25rem 1rem;display:flex}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--accent)}.about-head{flex-wrap:wrap;align-items:center;gap:1.5rem;margin-bottom:1.5rem;display:flex}.about-head>div{flex:14rem;min-width:0}.about-head h1{margin:0}.about-tagline{color:var(--muted);margin:.25rem 0 0}.about .avatar{border-radius:50%;flex:none}.about p{margin:.75rem 0}.listing{border-collapse:collapse;width:100%}.listing th,.listing td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);padding:.6rem .75rem .6rem 0}.listing th{color:var(--muted);font-size:.85rem;font-weight:400}.listing .date{white-space:nowrap;color:var(--muted);font-size:.9rem}.listing .description{color:var(--muted);margin-top:.25rem;font-size:.9rem;display:block}.post-meta{color:var(--muted);font-size:.85rem}.tag{color:var(--accent);border:1px solid var(--accent);background:0 0;border-radius:4px;margin-left:.5rem;padding:0 .4rem;font-size:.75rem}@media (width<=40rem){.listing thead{display:none}.listing,.listing tbody,.listing tr,.listing td{width:100%;display:block}.listing tr{border-bottom:1px solid var(--rule);padding:.6rem 0}.listing td{border:0;padding:.1rem 0}}code{font-size:.9em}:not(pre)>code{background:var(--code-bg);border-radius:3px;padding:.1em .3em}pre{background:var(--code-bg);border-radius:6px;padding:1rem;font-size:.9rem;overflow-x:auto}pre.astro-code{color:var(--shiki-light);background-color:var(--code-bg)}pre.astro-code span{color:var(--shiki-light);background-color:#0000}:root[data-theme=dark] pre.astro-code,:root[data-theme=dark] pre.astro-code span{color:var(--shiki-dark)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) pre.astro-code,:root:not([data-theme=light]) pre.astro-code span{color:var(--shiki-dark)}}img{max-width:100%}.cv{text-align:left;font-family:Inter,system-ui,sans-serif;font-size:.98rem}.cv h1{text-align:center;color:var(--fg);margin:0 0 .25rem;font-size:2.4rem;font-weight:700}.cv-contacts{text-align:center;margin:.25rem 0 0}.cv h2{color:var(--fg);border-bottom:1px solid var(--accent);margin:1.75rem 0 .75rem;padding-bottom:.2rem;font-size:1.2rem;font-weight:700}.role-head{text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 1rem;margin-top:1rem;display:flex}.role-head em{color:var(--accent)}.role-date{color:var(--accent);white-space:nowrap;border:1px solid var(--accent);background:0 0;border-radius:4px;align-self:center;padding:0 .45rem;font-size:.7rem;font-style:normal;line-height:1.5}.role-summary{text-align:left;margin:.1rem 0 .4rem}.cv ul:has(>.edu-row){padding-left:0;list-style:none}.edu-row{text-align:left;flex-wrap:wrap;justify-content:space-between;gap:0 1rem;display:flex}.skill-line{text-align:left;margin:.2rem 0}.cv .project h3{color:var(--fg);margin:1.25rem 0 .35rem;font-size:1.05rem;font-weight:700}.listing th button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0}.listing th button:hover{color:var(--accent)}.listing th[aria-sort=ascending] button:after{content:" ▲";font-size:.7em}.listing th[aria-sort=descending] button:after{content:" ▼";font-size:.7em}.listing td .tag{margin:0 .3rem .25rem 0;font-size:.7rem;line-height:1.5;display:inline-block}.listing button.tag{font:inherit;cursor:pointer;font-size:.7rem;line-height:1.5}.listing button.tag:hover{background:var(--quote-bg)}.listing button.tag[aria-pressed=true]{color:var(--bg);background:var(--accent)}.filter-bar{color:var(--muted);margin:0 0 1rem}.filter-name{color:var(--accent)}.filter-clear{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:.5rem;font-size:.85rem;text-decoration:underline}.katex-display{overflow:auto hidden}article .katex-display{text-align:left;font-size:.9em}@media (width>=40rem){.listing{table-layout:fixed}.listing th:first-child,.listing td:first-child{width:8.5rem}.listing th:nth-child(3),.listing td:nth-child(3){width:15rem}}.margin-note{color:var(--muted);border-left:3px solid var(--rule);margin:1rem 0 1rem 1rem;padding:.1rem 0 .1rem .9rem;font-size:.92rem}.pair{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}.pair>div{min-width:0}@media (width<=40rem){.pair{grid-template-columns:1fr}}table.stats{border-collapse:collapse;margin:1rem auto 1.5rem;font-size:.95rem}table.stats th,table.stats td{text-align:left;border-bottom:1px solid var(--rule);padding:.35rem 1rem}table.stats td:not(:first-child),table.stats th:not(:first-child){text-align:right}.callout{background:var(--quote-bg);border-left:4px solid var(--accent);border-radius:4px;margin:1.25rem 0;padding:.75rem 1rem}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}article table{border-collapse:collapse;width:100%;margin:1.25rem 0;font-size:.95rem}article th,article td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);padding:.5rem .75rem}article thead th{color:var(--accent);border-bottom:2px solid var(--accent);font-weight:700}pre{position:relative}.copy-code{width:1.8rem;height:1.8rem;color:var(--muted);background:var(--bg);border:1px solid var(--rule);cursor:pointer;opacity:0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:opacity .15s;display:flex;position:absolute;top:.4rem;right:.4rem}.copy-code svg{width:1rem;height:1rem}pre:hover .copy-code,.copy-code:focus-visible{opacity:1}.copy-code:hover{color:var(--accent)}.social-icon[data-astro-cid-g5kwm3ld]{width:1.25rem;height:1.25rem;display:block}
