@font-face{font-family:Ubuntu;font-style:normal;font-weight:400;font-display:swap;src:url(../media/49f63022355b874d-s.11nl9zxewxe-t.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu;font-style:normal;font-weight:400;font-display:swap;src:url(../media/da99beadb68683ca-s.0ro0jt0v1wa6o.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c8480d661ce86a95-s.0pcfim0vq1i7w.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Ubuntu;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ed4419e06e4417f3-s.0708_2rb.kkfm.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu;font-style:normal;font-weight:400;font-display:swap;src:url(../media/35dab0372a508468-s.0kq0~qg37cqid.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu;font-style:normal;font-weight:400;font-display:swap;src:url(../media/216579b50e548914-s.p.0f15lb3k5m3.h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(../media/62298de840807b3a-s.006~0drdw3gxp.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5b6b955c86e93082-s.039h-t36yu~_f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e9a2cc13e71c7659-s.0~fdcud0u~xfu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(../media/80b5d2606701f988-s.0keo5~of5c52o.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5427b945d5902666-s.0qkn~99ebxcis.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3df2de83712245dd-s.p.09xh26xjk1va7.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url(../media/893ae83aca20c19d-s.0uo_jh8dhmqu-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c02ac0fa909c6aa5-s.017tr7xckzqr0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url(../media/dd1c5fae9520065d-s.0s6j4aoxs._03.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ae8db9675a5da745-s.15g05.jjgjxu..woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url(../media/798f80a4b3a62ae7-s.0.9l-646sag1..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1bc7fc94203521e3-s.p.053z1y05dxnuy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu Fallback;src:local(Arial);ascent-override:91.32%;descent-override:18.52%;line-gap-override:2.74%;size-adjust:102.06%}.ubuntu_e956fc0c-module__O19c7W__className{font-family:Ubuntu,Ubuntu Fallback;font-style:normal}.ubuntu_e956fc0c-module__O19c7W__variable{--font-ubuntu:"Ubuntu", "Ubuntu Fallback"}
@font-face{font-family:Ubuntu Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fde4e88984614a46-s.15jsxw4uf7-vb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cd8868152a8e05a2-s.17.4fitn6gzru.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/13384cdee973a464-s.0ywhrfvtl.xl1.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Ubuntu Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e550f72b5719cd90-s.0.9y2y9uk_n37.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5044bd7c23e87b-s.0d64.vh-.xt30.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f993dba6660b9bd1-s.p.0ptrdda7lwqxw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu Mono Fallback;src:local(Arial);ascent-override:74.0%;descent-override:15.16%;line-gap-override:0.0%;size-adjust:112.16%}.ubuntu_mono_4c4697cd-module__wc-eCW__className{font-family:Ubuntu Mono,Ubuntu Mono Fallback;font-style:normal;font-weight:400}.ubuntu_mono_4c4697cd-module__wc-eCW__variable{--font-ubuntu-mono:"Ubuntu Mono", "Ubuntu Mono Fallback"}
:root{--bg:#fafaf9;--text:#1a1a1a;--muted:#6b6b6b;--rule:#e5e4e1;--accent:#6d28d9;--accent-soft:#ddd6fe}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}html,body{background:var(--bg);color:var(--text)}body{letter-spacing:-.005em;font-size:1rem;line-height:1.7}::selection{background:var(--text);color:var(--bg)}a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--accent-soft);text-decoration-color:var(--accent-soft);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color .16s,color .16s}a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--text);outline-offset:4px;border-radius:2px}.mono{font-family:var(--font-ubuntu-mono), ui-monospace, SFMono-Regular, Menlo, monospace}.page{flex-direction:column;gap:3rem;max-width:38rem;margin:0 auto;padding:clamp(3rem,8vw,6rem) 1.5rem;display:flex}.hero h1{letter-spacing:-.02em;font-size:2.25rem;font-weight:500;line-height:1.1}.subtitle{color:var(--muted);margin-top:.25rem;font-size:1rem}.prose{flex-direction:column;gap:1rem;display:flex}.section-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:.75rem;font-weight:500;display:flex}.section-label:after{content:"";background:var(--rule);flex:1;height:1px}.projects{flex-direction:column;gap:1.25rem;list-style:none;display:flex}.projects li{flex-direction:column;gap:.25rem;display:flex}.projects a{width:fit-content;color:var(--muted);align-items:baseline;gap:.5rem;text-decoration:none;transition:color .16s;display:inline-flex}.projects .project-name{color:var(--text);border-bottom:1px solid var(--accent-soft);padding-bottom:1px;font-size:.95rem;transition:border-color .16s,color .16s}.projects .arrow{color:var(--muted);opacity:0;font-size:.85rem;transition:opacity .16s,transform .16s,color .16s;display:inline-block;transform:translate(-2px,2px)}.projects a:hover .arrow{opacity:1;color:var(--accent);transform:translate(0)}.projects a:hover .project-name{border-color:var(--accent);color:var(--accent)}.projects .description{color:var(--muted);font-size:.95rem;line-height:1.6}.projects .languages{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;opacity:.75;font-size:.8rem}.elsewhere{flex-wrap:wrap;gap:.5rem 1.25rem;list-style:none;display:flex}.elsewhere a{border-bottom:1px solid var(--accent-soft);align-items:baseline;gap:.25rem;padding-bottom:1px;text-decoration:none;transition:border-color .16s,color .16s;display:inline-flex}.elsewhere a:hover{border-color:var(--accent);color:var(--accent)}.elsewhere .arrow{color:var(--muted);font-size:.8rem;transition:color .16s,transform .16s;display:inline-block}.elsewhere a:hover .arrow{color:var(--accent);transform:translate(1px,-1px)}.team{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;list-style:none;display:grid}.team-card{border:1px solid var(--rule);background:#fff;border-radius:.75rem;flex-direction:column;gap:.15rem;padding:1.25rem;transition:border-color .16s,transform .16s;display:flex}.team-card:hover{border-color:var(--accent-soft);transform:translateY(-1px)}.team-role{background:var(--accent-soft);width:fit-content;color:var(--accent);letter-spacing:.12em;border-radius:999px;margin-bottom:.5rem;padding:.1rem .5rem;font-size:.7rem;font-weight:600}.team-name{letter-spacing:-.01em;font-size:1.1rem;font-weight:500}.team-email{width:fit-content;color:var(--muted);word-break:break-all;font-size:.85rem}.team-support{color:var(--muted);margin-top:1.25rem;font-size:.95rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
