:root{--text:#1c1c1e;--muted:#55555c;--accent:#0b57d0;--surface:#f3f4f6;--border:#d9dbe0;--control-border:#80838a;--bg:#fff;--on-accent:#fff;--error:#b3261e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#e6e6e9;--muted:#a8a8b0;--accent:#8ab4f8;--surface:#23252a;--border:#3a3d44;--control-border:#8a8d94;--bg:#16171a;--on-accent:#0b1a33;--error:#f2b8b5}}*{box-sizing:border-box}body{margin:0}.page{max-width:60rem;margin:0 auto;padding:2rem 1rem 4rem}h1{margin:0 0 1rem;font-size:clamp(1.75rem,5vw,2.75rem);line-height:1.2}h2{border-bottom:2px solid var(--border);margin:3rem 0 1rem;padding-bottom:.25rem;font-size:1.5rem}h3{margin:0 0 .25rem;font-size:1.125rem}a{color:var(--accent)}.about{color:var(--muted);white-space:pre-line;max-width:45rem;font-size:1.125rem}.projects,.experience,.tags,.links{margin:0;padding:0;list-style:none}.projects{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;display:grid}.projects article{border:1px solid var(--border);border-radius:.5rem;height:100%;padding:1rem}.projects img{aspect-ratio:16/10;object-fit:cover;background:var(--surface);border-radius:.25rem;width:100%;display:block}.project-links{gap:1rem;display:flex}.experience li+li{margin-top:1.5rem}.experience p{white-space:pre-line;margin:.25rem 0}.dates{color:var(--muted);font-size:.875rem}.skills{margin:0}.skills dt{font-weight:600}.skills dd{margin:.25rem 0 1rem}.tags,.links{flex-wrap:wrap;gap:.5rem;display:flex}.tags li{background:var(--surface);border-radius:999px;padding:.125rem .625rem;font-size:.875rem}.links{gap:1.5rem}.links a{text-transform:capitalize;padding:.5rem 0;display:inline-block}@media (width>=48rem){.page{padding:4rem 2rem}}.top{justify-content:flex-end;margin-bottom:1.5rem;display:flex}.top button{font:inherit;border:1px solid var(--control-border);background:var(--bg);color:var(--text);cursor:pointer;padding:.25rem .625rem;font-size:.875rem}.top button[aria-pressed=true]{background:var(--text);color:var(--bg)}.contact-form{gap:1rem;max-width:36rem;display:grid}.contact-form label{gap:.25rem;font-weight:600;display:grid}.contact-form input,.contact-form textarea{font:inherit;border:1px solid var(--control-border);border-radius:.375rem;width:100%;padding:.5rem .625rem;font-weight:400}.contact-form textarea{resize:vertical}.contact-form button{font:inherit;background:var(--accent);color:var(--on-accent);cursor:pointer;border:0;border-radius:.375rem;justify-self:start;padding:.5rem 1.25rem}.contact-form button:disabled{opacity:.6;cursor:wait}.contact-form p{margin:0}.contact-form [role=alert]{color:var(--error)}.trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form{gap:1rem;max-width:24rem;display:grid}.form label{gap:.25rem;font-weight:600;display:grid}.form input{font:inherit;border:1px solid var(--control-border);border-radius:.375rem;padding:.5rem}.form button{justify-self:start}.project-form{max-width:none}.project-form .langs{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem;display:grid}.project-form fieldset{border:1px solid var(--border);border-radius:.375rem;gap:1rem;display:grid}.project-form textarea{font:inherit;border:1px solid var(--border);resize:vertical;border-radius:.375rem;padding:.5rem}.project-form .check{align-items:center;gap:.5rem;display:flex}.project-images ul{flex-wrap:wrap;gap:1rem;padding:0;list-style:none;display:flex}.project-images li{justify-items:start;gap:.5rem;display:grid}.project-images img{border:1px solid var(--border);border-radius:.375rem;width:12rem;height:auto}.muted{color:var(--muted)}.form{gap:.75rem;margin-bottom:1.5rem;display:grid}.form label{gap:.25rem;display:grid}.form input,.form textarea,.form select{font:inherit;border:1px solid var(--border);border-radius:.375rem;width:100%;padding:.5rem}.form.card{border:1px solid var(--border);border-radius:.5rem;padding:1rem}.bilingual{gap:.75rem;display:grid}@media (width>=40rem){.bilingual{grid-template-columns:1fr 1fr}.form.row{grid-template-columns:2fr 1fr 1fr auto auto;align-items:end}}.message{border-top:1px solid;padding:1rem 0}.message-unread h2{font-weight:700}.message-text{white-space:pre-wrap}.visits{border-collapse:collapse}.visits th,.visits td{text-align:left;padding:.25rem .75rem}
