.site-header{position:sticky;top:0;z-index:100;width:100%;background:#ffffffd1;backdrop-filter:blur(18px);border-bottom:1px solid rgba(209,209,214,.55)}[data-theme=dark] .site-header{background:#0f1115d1;border-bottom-color:#2b303bbf}.navbar{position:relative;width:min(1120px,calc(100% - 2rem));min-height:72px;margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem}.navbar-logo{font-size:1rem;font-weight:750;letter-spacing:-.03em;color:var(--text-primary)}.navbar-logo span{color:var(--blue-primary)}.navbar-links{display:flex;justify-content:center;align-items:center;gap:2rem;list-style:none}.navbar-links a{position:relative;color:var(--text-secondary);font-size:.95rem;font-weight:500;text-decoration:none;transition:color var(--transition)}.navbar-links a:after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:2px;border-radius:999px;background:var(--text-primary);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.navbar-links a:hover,.navbar-links a.active{color:var(--text-primary)}.navbar-links a:hover:after,.navbar-links a.active:after{transform:scaleX(1)}.navbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem}.lang-toggle{min-width:42px;height:30px;border:1px solid var(--border-soft);border-radius:999px;background:transparent;color:var(--text-secondary);font-size:.75rem;font-weight:700;cursor:pointer;transition:color var(--transition),border-color var(--transition),background var(--transition)}.lang-toggle:hover{color:var(--text-primary);border-color:var(--text-primary);background:var(--bg-soft)}.theme-toggle{position:relative;width:54px;height:30px;border:1px solid var(--border-soft);border-radius:999px;background:#1c1c1e;cursor:pointer;padding:0;transition:background var(--transition),border-color var(--transition),transform var(--transition)}.theme-toggle:hover{transform:translateY(-1px)}.theme-toggle-thumb{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform var(--transition),background var(--transition)}.theme-toggle-icon{position:absolute;top:50%;transform:translateY(-50%);font-size:.75rem;line-height:1;transition:opacity var(--transition)}.theme-toggle-icon.sun{right:8px;color:#fff;opacity:1}.theme-toggle-icon.moon{left:8px;color:#1c1c1e;opacity:0}[data-theme=dark] .theme-toggle{background:#f5f5f7}[data-theme=dark] .theme-toggle-thumb{transform:translate(24px);background:#1c1c1e}[data-theme=dark] .theme-toggle-icon.sun{opacity:0}[data-theme=dark] .theme-toggle-icon.moon{opacity:1}.navbar-toggle{display:none;width:42px;height:42px;border:1px solid var(--border-soft);border-radius:999px;background:var(--bg-main);cursor:pointer}.navbar-toggle span{display:block;width:18px;height:2px;margin:5px auto;border-radius:999px;background:var(--text-primary);transition:transform var(--transition)}.navbar-toggle.active span:first-child{transform:translateY(3.5px) rotate(45deg)}.navbar-toggle.active span:last-child{transform:translateY(-3.5px) rotate(-45deg)}@media(max-width:820px){.navbar{min-height:64px;grid-template-columns:auto auto}.navbar-links{position:absolute;top:calc(100% + .7rem);right:0;width:min(280px,calc(100vw - 2rem));padding:1rem;display:none;flex-direction:column;align-items:stretch;gap:.2rem;border-radius:22px;background:#fffffff5;box-shadow:0 24px 60px #0000001a}[data-theme=dark] .navbar-links{background:#171a21f5}.navbar-links.active{display:flex}.navbar-links a{display:block;padding:.8rem .9rem;border-radius:14px}.navbar-links a:after{display:none}.navbar-links a:hover,.navbar-links a.active{background:var(--bg-soft)}.navbar-toggle{display:block}}@media(max-width:460px){.navbar{width:min(100% - 1.4rem,1120px);gap:.8rem}.navbar-logo{font-size:.95rem}.lang-toggle{min-width:38px;height:28px;font-size:.7rem}.theme-toggle{width:50px;height:28px}.theme-toggle-thumb{width:22px;height:22px}[data-theme=dark] .theme-toggle-thumb{transform:translate(22px)}.navbar-toggle{width:40px;height:40px}}:root{--bg-main: #ffffff;--bg-soft: #f8f9fb;--bg-light: #f2f2f7;--card-bg: #ffffff;--button-bg: #ffffff;--button-text: #1c1c1e;--text-primary: #1c1c1e;--text-secondary: #6e6e73;--text-muted: #a1a1a6;--blue-primary: #1e2dbf;--blue-dark: #121a77;--accent-orange: #f97316;--border-soft: #d1d1d6;--radius-md: 12px;--transition: .3s ease;--primary-button-bg: #1c1c1e;--primary-button-text: #ffffff}[data-theme=dark]{--bg-main: #0f1115;--bg-soft: #171a21;--bg-light: #222631;--card-bg: #171a21;--button-bg: #222631;--button-text: #f5f5f7;--text-primary: #f5f5f7;--text-secondary: #b6bac3;--text-muted: #8d939f;--blue-primary: #6c7dff;--blue-dark: #4f63e6;--accent-orange: #fb923c;--border-soft: #2b303b;--primary-button-bg: #f5f5f7;--primary-button-text: #0f1115}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;min-height:100%}html{scroll-behavior:smooth}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-main);color:var(--text-primary);transition:background var(--transition),color var(--transition)}a{color:inherit;text-decoration:none}main{width:100%}.hero{padding:6rem 1.5rem 3.5rem;background:var(--bg-main)}.hero-container{max-width:720px;margin:0 auto;text-align:center}.hero-eyebrow{color:var(--blue-primary);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.hero-name{margin-top:.8rem;color:var(--text-primary);font-size:clamp(2.7rem,7vw,4.8rem);font-weight:780;line-height:1.02;letter-spacing:-.06em}.hero-subtitle{max-width:620px;margin:1.4rem auto 0;color:var(--text-secondary);font-size:clamp(1rem,2vw,1.15rem);line-height:1.75}.hero-description{max-width:560px;margin:.7rem auto 0;color:var(--text-muted);font-size:.95rem;line-height:1.7}.hero-actions{margin-top:1.8rem;display:flex;justify-content:center;align-items:center;gap:.85rem;flex-wrap:wrap}.hero-icon{position:relative;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-soft);background:transparent;color:var(--text-secondary);font-size:1rem;transition:transform var(--transition),color var(--transition),border-color var(--transition),background var(--transition),box-shadow var(--transition)}.hero-icon:hover{transform:translateY(-2px);color:var(--text-primary);border-color:var(--text-primary);background:var(--bg-light);box-shadow:0 10px 24px #0000000f}.hero-tooltip{position:absolute;bottom:-32px;left:50%;transform:translate(-50%) translateY(6px);font-size:.7rem;padding:.25rem .5rem;border-radius:6px;background:var(--text-primary);color:var(--bg-main);white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s ease}.hero-icon-cv:hover .hero-tooltip{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:640px){.hero{padding:4.8rem 1.2rem 4rem}.hero-name{font-size:2.8rem}.hero-subtitle,.hero-description{font-size:.95rem}}.projects{padding:4rem 1.5rem 6rem;background:var(--bg-soft)}.projects-container{max-width:1150px;margin:0 auto}.projects-header{max-width:680px;margin:0 auto;text-align:center}.projects-eyebrow{color:var(--blue-primary);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.projects-title{margin-top:.6rem;color:var(--text-primary);font-size:clamp(2rem,4vw,3rem);font-weight:750;letter-spacing:-.04em}.projects-grid{margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.project-card{display:flex;flex-direction:column;overflow:hidden;border-radius:20px;background:var(--card-bg);box-shadow:0 10px 35px #0000000e;transition:transform var(--transition),box-shadow var(--transition)}.project-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 18px 45px #00000017}.project-card.featured{box-shadow:0 14px 42px #1e2dbf17}[data-theme=dark] .project-card{box-shadow:0 10px 35px #00000047}[data-theme=dark] .project-card:hover{box-shadow:0 18px 50px #00000061}.project-image{width:100%;aspect-ratio:16 / 10;border:0;background:var(--bg-light);cursor:zoom-in;padding:0;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:contain;display:block;transition:transform var(--transition)}.project-card:hover .project-image img{transform:scale(1.02)}.project-content{padding:1.1rem;display:flex;flex-direction:column;flex:1}.project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.project-category{display:block;color:var(--text-muted);font-size:.68rem;font-weight:760;letter-spacing:.04em;text-transform:uppercase}.project-header h3{margin-top:.45rem;color:var(--text-primary);font-size:1.18rem;font-weight:720;letter-spacing:-.03em}.project-tech-icons{display:flex;align-items:center;gap:.5rem}.project-tech-icons img{width:20px;height:20px;object-fit:contain;opacity:.85;transition:transform var(--transition),opacity var(--transition),filter var(--transition)}.project-tech-icons img:hover{transform:scale(1.15);opacity:1}[data-theme=dark] .project-tech-icons img{filter:brightness(.9)}[data-theme=dark] img[src*=github]{filter:invert(1)}.project-content p{margin-top:.8rem;color:var(--text-secondary);font-size:.92rem;opacity:.85;line-height:1.65;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.project-links{margin-top:auto;padding-top:1rem;display:flex;gap:1rem}.project-links a{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-secondary);font-size:.84rem;font-weight:700;transition:color var(--transition),transform var(--transition)}.project-links a:hover{color:var(--text-primary);transform:translateY(-1px)}.project-links i{font-size:.82rem}.image-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(1000px,calc(100% - 2rem));max-height:90vh;border:0;border-radius:22px;padding:1rem;background:var(--card-bg);overflow:visible;box-shadow:0 30px 80px #00000040}.image-modal::backdrop{background:#1c1c1e8c;backdrop-filter:blur(8px)}.image-modal img{width:100%;max-height:75vh;object-fit:contain;border-radius:16px;background:var(--bg-light)}.image-modal p{margin-top:.8rem;color:var(--text-secondary);font-size:.9rem;text-align:center}.modal-close{position:absolute;top:-.9rem;right:-.9rem;width:38px;height:38px;border:1px solid var(--border-soft);border-radius:999px;background:var(--card-bg);color:var(--text-primary);font-size:1.4rem;line-height:1;cursor:pointer;box-shadow:0 10px 30px #0000001f}@media(max-width:980px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.projects{padding:5rem 1.2rem}.projects-grid{grid-template-columns:1fr}.project-header{flex-direction:column}.project-tech-icons{justify-content:flex-start}.image-modal{width:calc(100% - 1.5rem);padding:.7rem;border-radius:18px}.image-modal img{border-radius:14px}.modal-close{top:.6rem;right:.6rem}}.expertise{padding:5rem 1.5rem;background:var(--bg-main)}.expertise-container{max-width:1100px;margin:0 auto}.expertise-header{max-width:640px;margin:0 auto;text-align:center}.expertise-title{color:var(--text-primary);font-size:clamp(2rem,4vw,3rem);font-weight:760;letter-spacing:-.045em}.expertise-subtitle{margin-top:.75rem;color:var(--text-secondary);font-size:.98rem;line-height:1.7}.expertise-grid{margin-top:2.8rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.expertise-card{padding:1.5rem;background:var(--card-bg);border-radius:14px;box-shadow:0 6px 20px #0000000a}.expertise-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #0000000f}.expertise-card h3{color:var(--text-primary);font-size:1.05rem;font-weight:720;letter-spacing:-.025em;margin-bottom:1.2rem;text-align:center}.expertise-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:1rem .8rem}.expertise-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;text-align:center;color:var(--text-secondary);transition:transform var(--transition),color var(--transition)}.expertise-item:hover{transform:translateY(-2px);color:var(--text-primary)}[data-theme=dark] .invert-on-dark{filter:brightness(0) invert(1)}.expertise-item img{width:28px;height:28px;object-fit:contain;opacity:.9;transition:transform var(--transition),opacity var(--transition)}.expertise-item:hover img{transform:scale(1.1);opacity:1}.expertise-item span{font-size:.72rem;font-weight:600;line-height:1.2}@media(max-width:820px){.expertise-grid{grid-template-columns:1fr}}@media(max-width:480px){.expertise{padding:4rem 1.2rem}.expertise-card{padding:1.2rem}.expertise-items{grid-template-columns:repeat(3,1fr)}.expertise-item img{width:26px;height:26px}.expertise-item span{font-size:.68rem}}.contact{padding:5.5rem 1.5rem;background:var(--bg-main)}.contact-container{max-width:720px;margin:0 auto;text-align:center}.contact-title{color:var(--text-primary);font-size:clamp(2rem,4vw,3rem);font-weight:760;letter-spacing:-.045em}.contact-text{margin-top:1rem;color:var(--text-secondary);font-size:1rem;line-height:1.7}.contact-actions{margin-top:1.8rem;display:flex;justify-content:center;gap:.9rem}.contact-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-soft);background:transparent;color:var(--text-secondary);font-size:1rem;transition:transform var(--transition),color var(--transition),border-color var(--transition),background var(--transition),box-shadow var(--transition)}.contact-icon:hover{transform:translateY(-2px);color:var(--text-primary);border-color:var(--text-primary);background:var(--bg-light);box-shadow:0 10px 24px #0000000f}[data-theme=dark] .contact-icon{color:var(--text-secondary);border-color:var(--border-soft)}[data-theme=dark] .contact-icon:hover{color:var(--text-primary);border-color:var(--text-primary);background:var(--bg-light)}@media(max-width:640px){.contact{padding:4.5rem 1.2rem}.contact-text{font-size:.95rem}}.footer{padding:2.5rem 1.5rem;margin-top:2rem;background:var(--bg-main);border-top:1px solid var(--border-soft)}.footer-container{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.footer-brand{display:flex;flex-direction:column;gap:.2rem}.footer-name{font-size:.95rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.footer-name span{color:var(--blue-primary)}.footer-copy{font-size:.75rem;color:var(--text-muted)}.footer-nav{display:flex;align-items:center;gap:1.4rem}.footer-nav a{font-size:.8rem;color:var(--text-secondary);font-weight:600;transition:color var(--transition)}.footer-nav a:hover{color:var(--text-primary)}@media(max-width:640px){.footer-container{flex-direction:column;align-items:center;text-align:center;gap:1.2rem}.footer-nav{gap:1rem}}
