:root{--bg: #f4f6fb;--bg-alt: #e9edf7;--surface: #ffffff;--text: #16213e;--muted: #55607d;--accent: #3347c4;--accent-text: #ffffff;--border: #d3d9ea;--error: #b3261e;--success: #1b6b3a;--radius: 10px;--nav-height: 64px;color-scheme:light}:root[data-theme=dark]{--bg: #0e1424;--bg-alt: #141c31;--surface: #1a2340;--text: #e7ecf8;--muted: #a3aecb;--accent: #8ea2ff;--accent-text: #0e1424;--border: #2a355a;--error: #ff9a92;--success: #7fd69c;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{margin:0;font-family:IBM Plex Sans,system-ui,sans-serif;line-height:1.65;background:var(--bg);color:var(--text)}h1,h2,h3{font-family:Bricolage Grotesque,system-ui,sans-serif;line-height:1.15;margin:0 0 .5em}img{max-width:100%;height:auto;display:block}a{color:inherit}ul{list-style:none;margin:0;padding:0}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.container{width:min(1120px,100% - 2rem);margin-inline:auto}.container--narrow{width:min(640px,100% - 2rem)}.section{padding:5rem 0}.section--alt{background:var(--bg-alt)}.section__title{font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:1.5rem}.btn{display:inline-block;padding:.75rem 1.4rem;border-radius:var(--radius);border:2px solid var(--accent);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}.btn--primary{background:var(--accent);color:var(--accent-text)}.btn--primary:hover{filter:brightness(1.1)}.btn--ghost{background:transparent;color:var(--accent)}.btn--ghost:hover{background:var(--accent);color:var(--accent-text)}.btn--small{padding:.45rem 1rem;font-size:.9rem}.navbar{position:fixed;inset:0 0 auto 0;height:var(--nav-height);background:var(--bg);border-bottom:1px solid var(--border);z-index:50}.navbar__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}.navbar__logo{font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:1.4rem;text-decoration:none}.navbar__links{display:flex;gap:1.5rem}.navbar__links a{text-decoration:none;color:var(--muted);font-weight:500;padding:.25rem 0;border-bottom:2px solid transparent}.navbar__links a:hover{color:var(--text)}.navbar__links a.is-active{color:var(--text);border-bottom-color:var(--accent)}.navbar__actions{display:flex;gap:.5rem}.icon-button{font:inherit;font-weight:600;padding:.4rem .9rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.navbar__toggle{display:none}.hero{padding:calc(var(--nav-height) + 4rem) 0 5rem}.hero__inner{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:3rem}.hero__greeting{color:var(--muted);margin:0}.hero__name{font-size:clamp(3rem,9vw,6rem);font-weight:800;letter-spacing:-.03em;margin-bottom:.1em}.hero__title{font-family:Bricolage Grotesque,sans-serif;font-size:1.5rem;color:var(--accent);margin:0 0 1rem}.hero__intro{max-width:52ch;color:var(--muted);font-size:1.1rem}.hero__buttons{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}.hero__photo{justify-self:center;width:min(320px,70%);border-radius:50%;border:4px solid var(--accent);background:var(--surface)}.about__grid{display:grid;grid-template-columns:1.6fr 1fr;gap:3rem;align-items:start}.about__lead{font-size:1.15rem;max-width:65ch}.about__subtitle{font-size:1.2rem;margin-top:2rem}.education li{display:flex;flex-direction:column;margin-bottom:.8rem}.education span{color:var(--muted)}.profile-card{margin:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.5rem}.profile-card__row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.profile-card__row:last-child{border-bottom:0}.profile-card dt{color:var(--muted)}.profile-card dd{margin:0;font-weight:500;text-align:right}.skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem 3rem}.skill__head{display:flex;justify-content:space-between;font-weight:600;margin-bottom:.4rem}.skill__bar{height:10px;background:var(--border);border-radius:99px;overflow:hidden}.skill__fill{height:100%;background:var(--accent);border-radius:99px}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.filter{font:inherit;padding:.35rem 1rem;border-radius:99px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.filter.is-selected{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.project-card__image{width:100%;aspect-ratio:16 / 9;object-fit:cover}.project-card__body{padding:1.2rem;display:flex;flex-direction:column;gap:.6rem;flex:1}.project-card__body h3{margin:0;font-size:1.25rem}.project-card__body p{margin:0;color:var(--muted);font-size:.95rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tags li{font-size:.8rem;padding:.15rem .6rem;border-radius:99px;background:var(--bg-alt)}.project-card__buttons{display:flex;gap:.6rem;margin-top:auto;padding-top:.5rem}.form{display:grid;gap:1.1rem}.form__group{display:grid;gap:.35rem}.form label{font-weight:600}.form input,.form textarea{font:inherit;padding:.7rem .9rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);width:100%}.form [aria-invalid=true]{border-color:var(--error)}.form__error{margin:0;color:var(--error);font-size:.9rem}.form__success{margin:0;color:var(--success);font-weight:600}.form .btn{justify-self:start}.footer{padding:2.5rem 0;border-top:1px solid var(--border)}.footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.footer__name{font-family:Bricolage Grotesque,sans-serif;font-weight:700;margin:0}.footer__social{display:flex;gap:1.2rem}.footer__copy{margin:0;color:var(--muted);font-size:.9rem}.scroll-top{position:fixed;right:1.2rem;bottom:1.2rem;z-index:40;padding:.7rem 1rem;border-radius:var(--radius);border:0;background:var(--accent);color:var(--accent-text);font:inherit;font-weight:600;cursor:pointer}@media (max-width: 860px){.navbar__toggle{display:inline-block}.navbar__links{display:none;position:absolute;top:var(--nav-height);left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--border);padding:.5rem 1rem 1rem}.navbar__links--open{display:flex}.navbar__links a{padding:.8rem 0}.hero__inner,.about__grid{grid-template-columns:1fr}.hero__photo{order:-1;width:200px}.section{padding:3.5rem 0}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important}}
