:root{--color-primary:#2f5373;--color-primary-contrast:#fff;--color-accent:#4f7fa8;--color-bg:#fff;--color-bg-alt:#f3f6f9;--color-text:#1f2933;--color-muted:#5b6b7a;--color-border:#dde3ea;--hero-image:url(/images/hero.jpg);--hero-fallback:linear-gradient(135deg, #2f5373 0%, #4f7fa8 60%, #a9c3da 100%);--radius:12px;--max-width:1040px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--color-text);background:var(--color-bg);margin:0;line-height:1.6}img{max-width:100%;display:block}a{color:var(--color-primary)}h1,h2,h3{margin:0 0 .5em;line-height:1.2}h2{color:var(--color-primary);margin-bottom:1.5rem;font-size:clamp(1.6rem,3vw,2rem)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1.25rem}.topbar{z-index:10;backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);background:#ffffffd9;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex;position:fixed;inset:0 0 auto}.topbar__nav{gap:1.25rem;display:flex;overflow-x:auto}.topbar__nav a{color:var(--color-text);white-space:nowrap;font-size:.95rem;font-weight:500;text-decoration:none}.topbar__nav a:hover{color:var(--color-primary)}.lang-switch{border:1px solid var(--color-primary);border-radius:999px;flex-shrink:0;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex;overflow:hidden}.lang-switch span{color:var(--color-primary);padding:.25rem .7rem}.lang-switch span.active{background:var(--color-primary);color:var(--color-primary-contrast)}.hero__cover{background-image:var(--hero-image), var(--hero-fallback);background-position:50% 30%;background-size:cover;height:clamp(220px,38vw,380px)}.hero__body{text-align:center;padding-bottom:3rem}.hero__avatar{object-fit:cover;border:5px solid var(--color-bg);background:var(--color-bg);border-radius:50%;width:160px;height:160px;margin:-80px auto 1rem;position:relative;box-shadow:0 6px 20px #00000026}.hero h1{margin-bottom:.2rem;font-size:clamp(2rem,5vw,2.75rem)}.hero__role{color:var(--color-primary);margin:0 0 1rem;font-size:1.15rem;font-style:italic}.hero__intro{max-width:620px;color:var(--color-muted);margin:0 auto 1rem}.hero__intro:last-of-type{margin-bottom:1.75rem}.hero__actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.btn{border-radius:999px;padding:.7rem 1.4rem;font-weight:600;text-decoration:none;transition:transform .15s,background .15s;display:inline-block}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--color-primary);color:var(--color-primary-contrast)}.btn--primary:hover{background:var(--color-accent)}.btn--ghost{border:2px solid var(--color-primary);color:var(--color-primary)}.section{padding-top:4rem;padding-bottom:4rem;scroll-margin-top:3.5rem}.section--alt{background:var(--color-bg-alt)}.projects{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.project{border:1px solid var(--color-border);border-radius:var(--radius);color:inherit;background:var(--color-bg);flex-direction:column;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.project:hover{transform:translateY(-4px);box-shadow:0 10px 25px #00000014}.project__preview{aspect-ratio:16/10;background:var(--color-bg-alt);place-items:center;display:grid;overflow:hidden}.project__preview img{object-fit:cover;object-position:top;width:100%;height:100%}.project__placeholder{color:var(--color-accent);opacity:.5;font-size:3rem;font-weight:700}.project__body{flex-direction:column;flex:1;padding:1.25rem;display:flex}.project__body p{color:var(--color-muted);margin:0 0 1rem}.project__link{color:var(--color-primary);margin-top:auto;font-weight:600}.tags{flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.tags li{background:var(--color-bg-alt);color:var(--color-primary);border:1px solid var(--color-border);border-radius:999px;padding:.2rem .65rem;font-size:.82rem}.skills{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;display:grid}.skill-group{background:var(--color-bg);border-radius:var(--radius);border:1px solid var(--color-border);padding:1.25rem}.skill-group h3{font-size:1.05rem}.skill-group .tags{margin:0}.timeline{border-left:2px solid var(--color-border);margin:0 0 2rem;padding:0;list-style:none}.timeline__item{padding:0 0 2rem 1.5rem;position:relative}.timeline__item:before{content:"";background:var(--color-primary);border-radius:50%;width:12px;height:12px;position:absolute;top:.4rem;left:-7px}.timeline__period{color:var(--color-accent);margin:0;font-size:.9rem}.timeline__item h3{margin:.15rem 0 .4rem;font-size:1.15rem}.timeline__item h3 span{color:var(--color-muted);font-style:italic;font-weight:400}.timeline__item p:last-child{color:var(--color-muted);margin:0}.contact{text-align:center}.contact p{color:var(--color-muted);margin-bottom:1.5rem}.footer{text-align:center;color:var(--color-muted);padding-top:1.5rem;padding-bottom:1.5rem;font-size:.9rem}@media (width<=520px){.topbar__nav{gap:.9rem}.topbar__nav a{font-size:.85rem}}
