:root{--color-background:#f8fafc;--color-background-secondary:#fff;--color-surface:#fff;--color-text:#0f172a;--color-text-secondary:#64748b;--color-primary:#42b883;--color-primary-hover:#369c70;--color-border:#e2e8f0;--container-width:1120px;--radius-small:6px;--radius-medium:12px;--transition-fast:.15s ease}:root[data-theme=dark]{--color-background:#0f172a;--color-background-secondary:#111827;--color-surface:#1e293b;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-border:#334155}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-background);min-width:320px;min-height:100vh;color:var(--color-text);transition:background-color var(--transition-fast), color var(--transition-fast);margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}ul{margin:0;padding:0;list-style:none}.container{width:min(var(--container-width), 90%);margin-inline:auto}.section{padding:7rem 0}.page{min-height:calc(100vh - 160px)}.navbar{z-index:100;border-bottom:1px solid var(--color-border);background:var(--color-background);width:100%;position:sticky;top:0}.navbar__inner{align-items:center;gap:2rem;height:72px;display:flex;position:relative}.navbar__logo{color:var(--color-text);transition:color var(--transition-fast);flex-shrink:0;font-size:1.2rem;font-weight:700;text-decoration:none}.navbar__logo:hover{color:var(--color-primary)}.navbar__navigation{align-items:center;gap:2rem;margin-left:auto;display:flex}.navbar__navigation a{color:var(--color-text-secondary);transition:color var(--transition-fast);padding:.5rem 0;font-weight:500;text-decoration:none;position:relative}.navbar__navigation a:hover{color:var(--color-text)}.navbar__navigation a:after{content:"";background:var(--color-primary);transform-origin:50%;width:100%;height:2px;transition:transform var(--transition-fast);border-radius:999px;position:absolute;bottom:0;left:0;transform:scaleX(0)}.navbar__navigation a:hover:after{transform:scaleX(1)}.navbar__navigation a.router-link-exact-active{color:var(--color-primary)}.navbar__navigation a.router-link-exact-active:after{transform:scaleX(1)}.navbar__controls{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.navbar__theme-button{border:1px solid var(--color-border);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:inline-flex}.navbar__theme-button:hover{border-color:var(--color-primary);transform:translateY(-1px)}.language-switch{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast);border-radius:999px;align-items:center;gap:.25rem;padding:.25rem;display:inline-flex}.language-switch:hover{border-color:var(--color-primary);transform:translateY(-1px)}.language-switch__option{text-align:center;min-width:34px;transition:background-color var(--transition-fast), color var(--transition-fast);border-radius:999px;padding:.35rem .55rem;font-size:.8rem;font-weight:600}.language-switch__option--active{background:var(--color-primary);color:#0f172a}.language-switch__divider{background:var(--color-border);width:1px;height:16px}.navbar__menu-button{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);cursor:pointer;transition:border-color var(--transition-fast), transform var(--transition-fast);justify-content:center;align-items:center;font-size:1.4rem;display:none}.navbar__menu-button:hover{border-color:var(--color-primary);transform:translateY(-1px)}.navbar a:focus-visible,.navbar button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.hero{align-items:center;min-height:calc(100vh - 72px);display:flex}.hero__content{max-width:850px}.hero__eyebrow,.section-heading__eyebrow{color:var(--color-primary);font-weight:600}.hero__title{max-width:900px;margin-bottom:2rem;font-size:clamp(3rem,8vw,6rem);line-height:1}.hero__title span{color:var(--color-primary)}.hero__description{max-width:650px;color:var(--color-text-secondary);font-size:1.2rem;line-height:1.7}.hero__details{color:var(--color-text-secondary);flex-wrap:wrap;gap:1rem;margin-top:1.5rem;display:flex}.hero__detail{align-items:center;gap:.4rem;font-size:.95rem;display:inline-flex}.hero__actions,.contact__actions{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.base-button{border-radius:var(--radius-small);cursor:pointer;min-height:44px;transition:transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;padding:.75rem 1.4rem;font-weight:600;text-decoration:none;display:inline-flex}.base-button:hover{transform:translateY(-2px)}.base-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.base-button--primary{background:var(--color-primary);color:#0f172a}.base-button--primary:hover{background:var(--color-primary-hover)}.base-button--secondary{border-color:var(--color-border);color:var(--color-text);background:0 0}.base-button--secondary:hover{border-color:var(--color-primary)}.section-heading{max-width:700px;margin-bottom:3rem}.section-heading__title{margin-bottom:1rem;font-size:clamp(2rem,5vw,3rem)}.section-heading__description{color:var(--color-text-secondary);line-height:1.7}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;display:grid}.project-card{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);transition:transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex;overflow:hidden}.project-card:hover{border-color:var(--color-primary);transform:translateY(-5px);box-shadow:0 12px 30px #00000014}.project-card__image{object-fit:cover;width:100%;height:220px}.project-card__content{flex-direction:column;flex:1;padding:1.5rem;display:flex}.project-card__title{margin-bottom:1rem;font-size:1.4rem}.project-card__description{color:var(--color-text-secondary);line-height:1.7}.project-card__actions{flex-wrap:wrap;gap:.75rem;margin-top:auto;padding-top:1.5rem;display:flex}.technology-list{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.technology-list__item{border-radius:var(--radius-small);background:color-mix(in srgb, var(--color-primary) 15%, transparent);color:var(--color-primary);padding:.4rem .7rem;font-size:.85rem;font-weight:500}.about{grid-template-columns:1fr 1fr;gap:5rem;display:grid}.about__description{color:var(--color-text-secondary);line-height:1.8}.about__description p+p{margin-top:1rem}.skills{flex-direction:column;gap:2rem;display:flex}.skills h2{font-size:1.2rem}.cv-downloads{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.cv-downloads .base-button{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);min-width:230px;color:var(--color-text);text-align:left;transition:transform var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);justify-content:flex-start;gap:.9rem;padding:.9rem 1.1rem}.cv-downloads .base-button:hover{border-color:var(--color-primary);transform:translateY(-3px);box-shadow:0 10px 25px #00000014}.cv-button__icon{background:color-mix(in srgb, var(--color-primary) 15%, transparent);width:38px;height:38px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;font-weight:700;display:flex}.cv-button__content{flex-direction:column;gap:.2rem;display:flex}.cv-button__label{color:var(--color-text);font-size:.95rem;font-weight:600}.cv-button__meta{color:var(--color-text-secondary);letter-spacing:.04em;font-size:.75rem;font-weight:500}.section__actions{text-align:center;margin-top:3rem}.not-found{align-items:center;min-height:calc(100vh - 160px);display:flex}.not-found__content{text-align:center;max-width:650px}.not-found__code{color:var(--color-primary);letter-spacing:-.05em;margin-bottom:.5rem;font-size:clamp(5rem,15vw,9rem);font-weight:800;line-height:1}.not-found__title{color:var(--color-text);margin-bottom:1rem;font-size:clamp(2rem,5vw,3rem)}.not-found__description{max-width:500px;color:var(--color-text-secondary);margin:0 auto 2rem;font-size:1.05rem;line-height:1.7}.footer{border-top:1px solid var(--color-border)}.footer__content{min-height:80px;color:var(--color-text-secondary);justify-content:space-between;align-items:center;gap:1rem;display:flex}@media (width<=700px){.section{padding:5rem 0}.navbar__inner{gap:.75rem;height:64px}.navbar__navigation{border-bottom:1px solid var(--color-border);background:var(--color-background);flex-direction:column;align-items:flex-start;gap:0;width:111.1%;margin-left:0;padding:1rem 5% 1.5rem;display:none;position:absolute;top:64px;left:-5.55%}.navbar__navigation--open{display:flex}.navbar__navigation a{width:100%;padding:.9rem 0}.navbar__navigation a:after{transform-origin:0;width:32px;bottom:.4rem}.navbar__menu-button{display:inline-flex}.navbar__controls{margin-left:auto}.hero{min-height:auto;padding:5rem 0}.hero__title{font-size:clamp(2.8rem,14vw,4.5rem)}.hero__description{font-size:1.05rem}.hero__actions{align-items:flex-start}.about{grid-template-columns:1fr;gap:3rem}.cv-downloads{flex-direction:column}.cv-downloads .base-button{width:100%}.footer__content{text-align:center;flex-direction:column;justify-content:center;gap:.5rem;padding:1rem 0}}@media (width<=480px){.navbar__inner{gap:.5rem}.navbar__logo{font-size:1.05rem}.language-switch__option{min-width:30px;padding:.3rem .4rem;font-size:.75rem}.navbar__theme-button,.navbar__menu-button{width:38px;height:38px}.hero__details{flex-direction:column;gap:.6rem}.hero__actions,.contact__actions{flex-direction:column;align-items:stretch}.hero__actions .base-button,.contact__actions .base-button{width:100%}.projects-grid{grid-template-columns:1fr}}
