:root{--bg: #f7f8f7;--surface: #ffffff;--text: #16201b;--muted: #5b6862;--border: #e2e7e4;--accent: #14a06a;--accent-ink: #ffffff;--accent-soft: #e3f5ed;--radius: 14px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f1412;--surface: #161d1a;--text: #e8eeeb;--muted: #9aa8a1;--border: #25302b;--accent: #3ddc97;--accent-ink: #0b1310;--accent-soft: #173326;color-scheme:dark}}:root[data-theme=dark]{--bg: #0f1412;--surface: #161d1a;--text: #e8eeeb;--muted: #9aa8a1;--border: #25302b;--accent: #3ddc97;--accent-ink: #0b1310;--accent-soft: #173326;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;font-family:var(--font);font-size:16px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,h4{line-height:1.2;margin:0}.container{width:100%;max-width:1120px;margin-inline:auto;padding-inline:20px}.header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}.logo{font-weight:700;font-size:1.25rem}.logo span{color:var(--accent)}.nav{display:flex;gap:28px;font-size:.95rem;color:var(--muted)}.nav a:hover{color:var(--text)}.header-actions{display:flex;gap:8px}.icon-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.lang-btn{display:flex;gap:6px;width:auto;padding:0 10px;font:600 .75rem/1 JetBrains Mono,monospace;letter-spacing:.04em}.flag{border-radius:2px;box-shadow:0 0 0 1px var(--border)}.menu-btn{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-weight:600;font-size:.95rem;transition:transform .15s ease,border-color .15s ease}.btn:hover{transform:translateY(-1px);border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.hero{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:48px;padding-block:96px 64px}.eyebrow{font-family:var(--mono);color:var(--accent);margin:0 0 12px}.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.02em}.hero-role{font-size:clamp(1.2rem,2.5vw,1.6rem);color:var(--muted);margin:12px 0 20px}.hero-lead{max-width:48ch;margin:0 0 32px}.hero-cta{display:flex;flex-wrap:wrap;gap:12px}.hero-photo{width:100%;max-width:380px;justify-self:center;height:auto;aspect-ratio:1;object-fit:cover;border-radius:28px;border:1px solid var(--border);box-shadow:16px 16px 0 var(--accent-soft)}.section{padding-block:64px}.section-title{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:32px}.section-title:after{content:"";display:block;width:48px;height:4px;margin-top:12px;border-radius:2px;background:var(--accent)}.section-lead{color:var(--muted);margin:-16px 0 24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.about{display:grid;grid-template-columns:1fr 1fr;gap:40px}.about-text p{margin:0 0 16px;font-size:1.05rem}.skills{display:grid;gap:16px}.skills h3{font-size:1.05rem;margin-bottom:14px}.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.chips li{padding:6px 12px;border-radius:999px;background:var(--accent-soft);font-size:.875rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px}.sub-title{font-size:1.15rem;margin-bottom:20px;color:var(--muted)}.timeline{list-style:none;margin:0;padding:0 0 0 24px;border-left:2px solid var(--border)}.timeline li{position:relative;padding-bottom:28px}.timeline li:before{content:"";position:absolute;left:-31px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}.timeline .period{font-family:var(--mono);font-size:.8rem;color:var(--accent)}.timeline h4{font-size:1.05rem;margin-top:4px}.timeline .org{color:var(--muted);margin:2px 0 8px;font-size:.95rem}.timeline p{margin:0}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.filters button{padding:8px 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;cursor:pointer}.filters button.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:20px}.project{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .2s ease,border-color .2s ease}.project:hover{transform:translateY(-4px);border-color:var(--accent)}.project-media{aspect-ratio:16 / 10;background:var(--accent-soft);overflow:hidden}.project-media img{width:100%;height:100%;object-fit:cover;object-position:top}.project-body{padding:20px}.project h3{font-size:1.1rem;margin:8px 0}.project p{margin:0;color:var(--muted);font-size:.925rem}.tags{display:flex;gap:6px}.tags span{font-family:var(--mono);font-size:.75rem;color:var(--accent)}.contact{text-align:center;padding:56px 24px}.contact h2{font-size:clamp(1.6rem,3vw,2.2rem)}.contact>p{color:var(--muted);margin:12px 0 28px}.socials{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;color:var(--muted)}.socials a:hover{color:var(--accent)}.footer{padding-block:32px;color:var(--muted);font-size:.875rem;text-align:center}@media(max-width:860px){.hero,.about,.two-col{grid-template-columns:1fr}.hero{padding-block:48px 32px}.hero-photo{order:-1;max-width:240px;justify-self:start}.menu-btn{display:grid}.nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;padding:8px 20px 16px;background:var(--bg);border-bottom:1px solid var(--border)}.nav.is-open{display:flex}.nav a{padding:12px 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
