:root{--bg:#0a0a0a;--surface:#111;--surface-hover:#161616;--fg:#ededed;--muted:#8b8b8b;--line-strong:#333;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--gutter:clamp(1.25rem, 5vw, 4rem);--max:72rem}:root[data-theme=light]{--bg:#fafafa;--surface:#f0f0f0;--surface-hover:#e9e9e9;--fg:#111;--muted:#6b6b6b;--line-strong:#c8c8c8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;transition:background .2s,color .2s}body,h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}.site{flex-direction:column;min-height:100dvh;display:flex}.footer,.header,.main{width:100%;max-width:var(--max);padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.header{justify-content:space-between;height:4.5rem;animation:.6s both fade}.header,.header__actions{align-items:center;display:flex}.header__actions{gap:.25rem;margin-right:-.5rem}.locale-toggle,.theme-toggle{height:2.25rem;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:color .2s,background .2s;display:inline-flex}.theme-toggle{width:2.25rem}.locale-toggle{letter-spacing:.04em;padding:0 .75rem;font-size:.8rem;font-weight:500}.locale-toggle:hover,.theme-toggle:hover{color:var(--fg);background:var(--surface)}.locale-toggle:focus-visible,.theme-toggle:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.wordmark{letter-spacing:-.01em;font-size:1.05rem;font-weight:600}.main{flex:1;padding-top:clamp(4rem,12vh,8rem);padding-bottom:clamp(4rem,10vh,7rem)}.intro{max-width:40rem;animation:.7s .1s both rise}.intro__title{letter-spacing:-.025em;font-size:clamp(1.9rem,4vw,3rem);font-weight:500;line-height:1.15}.section-title{color:var(--muted);letter-spacing:.02em;padding-bottom:1rem;font-size:.8rem;font-weight:500}.projects{margin-top:clamp(4rem,10vh,6.5rem)}.projects .section-title{animation:.7s .2s both rise}.projects__grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.card{background:var(--surface);min-height:15rem;animation:rise .7s ease calc(.3s + var(--i)*70ms) both;border-radius:.75rem;flex-direction:column;padding:1.75rem 1.75rem 1.5rem;transition:background .25s;display:flex}.card:hover{background:var(--surface-hover)}.card__name{letter-spacing:-.02em;font-size:1.5rem;font-weight:500}.card__desc{color:var(--muted);max-width:28rem;margin-top:.75rem;font-size:.95rem;line-height:1.55}.card__links{flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:auto;padding-top:2rem;font-size:.9rem;display:flex}.card__links a{color:var(--fg);align-items:center;gap:.3rem;transition:color .2s;display:inline-flex}.card__links a span{border-bottom:1px solid var(--line-strong);transition:border-color .2s}.card__links a:hover span{border-color:var(--fg)}.card__links svg{color:var(--muted);transition:color .2s,transform .2s}.card__links a:hover svg{color:var(--fg);transform:translate(1px,-1px)}.footer{height:4.5rem;color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;font-size:.85rem;display:flex}.footer a{transition:color .2s}.footer a:hover{color:var(--fg)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}@media (width<=700px){.projects__grid{grid-template-columns:1fr}.card{min-height:0;padding:1.5rem 1.25rem}.card__links{padding-top:1.5rem}}
