:root{--accent:#38bdf8;--text:#ffffff;--muted:#cbd5e1;--line:#475569;--surface:rgba(15, 23, 42, 0.55)}.site-wrap{width:100%}@media(min-width:1280px){.site-wrap{width:min(100% - 2rem,62rem)}}.skip-link{position:absolute;left:-9999px;top:.75rem;z-index:100;padding:.5rem 1rem;background:#0f172a;border:1px solid var(--accent)}.skip-link:focus{left:1rem}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-brand-name{line-height:1.1}.site-tagline{font-size:.875rem;color:var(--muted)}@media(min-width:1024px){.site-tagline{white-space:nowrap}}.menu-toggle{background:0 0;border:0;padding:0;cursor:pointer}.lang-switch a{display:inline-block;padding:.5rem .25rem;color:var(--muted);text-decoration:underline;text-underline-offset:.25em}.lang-switch a:hover{color:var(--accent)}.nav-button{min-width:7rem}.home-intro{max-width:62ch;text-align:center;color:var(--muted);line-height:1.75}.home-intro p{margin:0 0 1rem}.home-intro strong{color:var(--text)}.home-intro a,.text-link{color:var(--accent);text-decoration:underline;text-underline-offset:.25em}.home-intro a:hover,.text-link:hover{color:var(--text)}.cv-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem 1rem}.cv-links .cv-label{color:var(--muted)}.cv-links a{border:1px solid var(--accent);padding:.35rem .75rem;font-weight:700}.cv-links a:hover{background:var(--accent);color:#0f172a}.cv-links--start{justify-content:flex-start}.site-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;padding:2rem 0 1.5rem;color:var(--muted);font-size:.875rem}.site-footer a{text-decoration:underline;text-underline-offset:.25em}.site-footer a:hover{color:var(--accent)}.site-footer ul{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1rem}.page-lead{color:var(--muted);max-width:70ch;line-height:1.7}.page-lead a{color:var(--accent);text-decoration:underline;text-underline-offset:.25em}.project-list{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:1024px){.project-list{grid-template-columns:1fr 1fr}}.project{display:flex;flex-direction:column;gap:.9rem;padding:1.5rem;border:1px solid var(--line);background:var(--surface)}.project h2{font-size:1.25rem;font-weight:700;color:var(--text)}.project-summary{color:var(--text);line-height:1.65}.project-details{display:flex;flex-direction:column;gap:.5rem;color:var(--muted);font-size:.9rem;line-height:1.65;padding-left:1.1rem;list-style:square}.project-details li::marker{color:var(--accent)}.tech-list{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.8rem;color:var(--muted)}.tech-list li{border:1px solid var(--line);padding:.1rem .45rem}.project-links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:auto;padding-top:.25rem}.project-links a{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:.25em}.project-links a:hover{color:var(--text)}.post-meta{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;color:var(--muted);font-size:.9rem}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.875rem}.tag-list a{border:1px solid var(--accent);padding:.1rem .5rem}.tag-list a:hover{background:var(--accent);color:#0f172a}.prose pre,.highlight pre{border:1px solid #334155;border-radius:.375rem}.home-page{min-height:100dvh}.home-main{padding-block:2.5rem}@media(max-width:639px){.site-brand-name{font-size:1.875rem}}@media(min-width:1024px){.menu-list{align-items:center}}@media(max-width:1023px){.dropdown-menu.max-lg\:-top-full{visibility:hidden}}