:root{--bg-main: #020617;--bg-card: #0b1220;--bg-navbar: #020617;--bg-footer: #020617;--text-main: #f8fafc;--text-muted: rgba(255, 255, 255, .75);--border-soft: rgba(255, 255, 255, .08);--accent: #60a5fa;--bg-hero: linear-gradient(135deg, #020617, #312e81);--bg-section: #020617;--bg-section-alt: #0b1220;--bg-highlight: #020617}body[data-theme=light]{--bg-main: #f8fafc;--bg-card: #ffffff;--bg-navbar: #ffffff;--bg-footer: #f1f5f9;--text-main: #020617;--text-muted: #475569;--border-soft: rgba(2, 6, 23, .1);--accent: #2563eb}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg-main);color:var(--text-main);transition:background .3s ease,color .3s ease;padding-top:80px}#root{min-height:100vh}a{color:inherit;text-decoration:none}.nav-desktop{display:flex;gap:24px}.nav-burger{display:none;background:none;border:none;color:#fff;font-size:1.6rem;cursor:pointer}.nav-mobile{display:flex;flex-direction:column;padding:16px 24px;background-color:#020617;border-top:1px solid #1e293b}nav a{transition:opacity .2s ease,transform .2s ease}nav a:hover{opacity:1;transform:translateY(-1px)}@media(max-width:768px){.nav-desktop{display:none}.nav-burger{display:block}}.projects-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:32px}.project-card{border-radius:18px;border:1px solid rgba(255,255,255,.08);min-height:420px;display:flex;flex-direction:column;padding:28px;position:relative;overflow:hidden;transition:transform .7s cubic-bezier(.23,1,.32,1),box-shadow .7s cubic-bezier(.23,1,.32,1);box-shadow:0 10px 25px -5px #0000004d,0 0 0 1px #ffffff0d;will-change:transform;backface-visibility:hidden}.project-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(800px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(255,255,255,.12),rgba(255,255,255,.05) 30%,transparent 50%);opacity:0;transition:opacity .7s cubic-bezier(.23,1,.32,1);pointer-events:none;border-radius:18px;z-index:1;transform:translateZ(0)}.project-card>*{position:relative;z-index:2}@media(hover:none)and (pointer:coarse){.project-card{transform:none!important}.project-card:before{display:none}}.project-bar{height:5px;border-radius:999px;margin-bottom:20px}.project-content h3{color:#fff;margin-bottom:12px;font-size:1.05rem}.project-description{line-height:1.6;margin-bottom:18px}.project-tags span{background:#ffffff1f;color:#e5e7eb;padding:6px 10px;border-radius:999px;font-size:.75rem}.project-actions{margin-top:auto;display:flex;justify-content:center}.project-github-btn{width:100%;text-align:center;padding:14px 0;margin-top:26px;color:#f9fafb;border-radius:14px;font-weight:600;font-size:.95rem;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.project-card:hover .project-github-btn{transform:translateY(-3px);box-shadow:0 12px 30px #ffffff1f}.project-github-btn:hover{background:#ffffff26;transform:translateY(-2px)}.project-card:nth-child(1) .project-bar{background:var(--project-accent-1)}.project-card:nth-child(2) .project-bar{background:var(--project-accent-2)}.project-card:nth-child(3) .project-bar{background:var(--project-accent-3)}.project-card:nth-child(4) .project-bar{background:var(--project-accent-4)}.project-card:nth-child(5) .project-bar{background:var(--project-accent-5)}.project-card:nth-child(6) .project-bar{background:var(--project-accent-6)}.contact-actions{display:flex;justify-content:center;gap:24px;margin-top:32px;flex-wrap:wrap}.btn-contact-primary{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;color:#fff;font-weight:600;border-radius:14px;transition:transform .25s ease,box-shadow .25s ease;box-shadow:0 12px 30px #2563eb59}.btn-contact-primary:hover{transform:translateY(-3px);box-shadow:0 18px 40px #2563eb73}.btn-contact-outline{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:14px;background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35);transition:all .25s ease}.btn-contact-outline:hover{background:#ffffff14;transform:translateY(-2px);border-color:#fff}.project-bar{animation:projectBarMove 3s linear infinite}@keyframes projectBarMove{0%{background-position:0% 50%}to{background-position:200% 50%}}.project-card{position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;inset:0;background:radial-gradient(600px circle at var(--x, 50%) var(--y, 50%),rgba(255,255,255,.12),transparent 40%);opacity:0;transition:opacity .3s ease;pointer-events:none}.project-card:hover:before{opacity:1}.project-content,.project-actions{transform-style:preserve-3d}.soft-skills-container{margin-top:70px;padding:32px;max-width:1100px;margin-left:auto;margin-right:auto;background:var(--bg-card);border:1px solid var(--border-soft);border-radius:18px}.soft-skills-container h3{text-align:center;margin-bottom:24px;font-size:1.1rem;color:var(--text-main)}.soft-skills-list{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.soft-skill-badge{padding:10px 18px;border-radius:999px;background:var(--bg-main);border:1px solid var(--border-soft);font-size:.85rem;font-weight:500;color:var(--text-main, #0f172a);transition:transform .25s ease,background .25s ease}.soft-skill-badge:hover{transform:translateY(-2px)}.tool-card{border-radius:16px;padding:26px 18px;display:flex;flex-direction:column;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 30px #00000073;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.tool-card:hover{transform:translateY(-6px);box-shadow:0 20px 45px #0009;border-color:#3b82f666}.tool-icon{font-size:2.2rem;line-height:1}.tool-name{font-size:.95rem;font-weight:500;color:#e5e7eb}.skills-section{background:var(--bg-main);padding:100px 20px}.skills-container{max-width:1100px;margin:0 auto}.skills-title{text-align:center;margin-bottom:48px;color:var(--text-main)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px}.skill-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:14px;padding:28px 20px;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--text-main);transition:transform .25s ease,box-shadow .25s ease}.skill-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #0000001f}.skill-card span{font-size:.95rem;color:var(--text-muted)}.skill-card span{opacity:1}.skills-section .skill-card span{color:var(--text-main);opacity:1}.tools-grid{max-width:1100px;margin:0 auto 80px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px}.tool-card{border-radius:18px;padding:22px 0;text-align:center;font-weight:600;font-size:.95rem;transition:transform .25s ease,box-shadow .25s ease}.tool-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #0006}.soft-skills-title{text-align:center;margin-bottom:28px;font-size:1.4rem}.soft-skills-list{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;max-width:1100px;margin:0 auto}.soft-skill-pill{padding:12px 20px;border-radius:999px;font-size:.85rem;font-weight:500;background:#ffffff1a;color:#e5e7eb;transition:background .25s ease,transform .25s ease}.soft-skill-pill:hover{background:#ffffff2e;transform:translateY(-2px)}.tool-icon{width:34px;height:34px;margin:0 auto 10px}.tool-icon svg{width:100%;height:100%}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 20% 20%,#1e3a8a,transparent 40%),radial-gradient(circle at 80% 80%,#6d28d9,transparent 40%),linear-gradient(180deg,#020617,#020617);color:#fff;position:relative;overflow:hidden;padding-top:80px}.hero-content{max-width:900px;padding:0 20px}.hero-badge{display:inline-block;margin-bottom:18px;padding:8px 16px;border-radius:999px;font-size:.8rem;background:#3b82f626;color:#93c5fd;border:1px solid rgba(59,130,246,.35)}.hero-intro{opacity:.8;margin-bottom:8px}.hero-name{font-size:clamp(3rem,6vw,4.5rem);font-weight:800;line-height:1.1;margin-bottom:10px}.hero-name span{background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.hero-title{font-size:1.4rem;font-weight:500;margin-bottom:20px;opacity:.9}.hero-description{max-width:720px;margin:0 auto 36px;font-size:1rem;opacity:.85;line-height:1.6}.hero-actions{display:flex;justify-content:center;gap:16px;margin-bottom:32px;flex-wrap:wrap}.btn-primary{padding:14px 26px;border-radius:999px;color:#fff;font-weight:600;transition:transform .25s ease,box-shadow .25s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 40px #3b82f666}.btn-secondary{padding:14px 26px;border-radius:999px;border:1px solid rgba(255,255,255,.3);color:#fff;transition:background .25s ease,transform .25s ease}.btn-secondary:hover{background:#ffffff14;transform:translateY(-2px)}.hero-socials{display:flex;justify-content:center;gap:14px;margin-bottom:30px}.hero-socials a{width:40px;height:40px;border-radius:50%;background:#ffffff14;display:flex;align-items:center;justify-content:center;font-weight:700}.hero-scroll{opacity:.6;font-size:.85rem}.hero-scroll{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:28px;font-size:.85rem;letter-spacing:.08em;color:#ffffffbf;animation:scrollBounce 1.8s ease-in-out infinite}.scroll-text{font-size:.75rem;opacity:.85}.scroll-arrow{width:22px;height:22px}@keyframes scrollBounce{0%{transform:translateY(0);opacity:.4}50%{transform:translateY(12px);opacity:1}to{transform:translateY(0);opacity:.4}}.scroll-indicator{width:2px;height:24px;border-radius:999px;animation:scrollMove 1.6s ease-in-out infinite}@keyframes scrollMove{0%{transform:translateY(0);opacity:.3}50%{transform:translateY(10px);opacity:1}to{transform:translateY(0);opacity:.3}}section[id]{scroll-margin-top:90px}.navbar{position:fixed;top:0;left:0;width:100%;height:80px;z-index:9999;background:var(--bg-navbar);border-bottom:1px solid var(--border-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.navbar-inner{max-width:1100px;height:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.navbar-links{display:flex;gap:24px}.navbar-actions{display:flex;align-items:center;gap:16px}.navbar-logo{color:var(--text-main);font-weight:700}.navbar-links a{color:var(--text-main);opacity:.85}.navbar-links a:hover{opacity:1}.about-photo{display:flex;justify-content:center}.about-photo img{width:240px;height:240px;object-fit:cover;border-radius:50%;border:3px solid rgba(99,102,241,.9);box-shadow:0 0 40px #6366f159,0 0 80px #a855f740}@media(max-width:900px){.about-photo{margin-bottom:40px}}.hero-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:999px;font-size:.9rem;font-weight:500;color:#4ade80;background:#22c55e1f;border:1px solid rgba(34,197,94,.45);box-shadow:0 0 12px #22c55e59,inset 0 0 0 1px #22c55e40}.status-dot{width:10px;height:10px;border-radius:50%;background-color:#22c55e;box-shadow:0 0 8px #22c55ee6;animation:pulse-green 1.4s infinite}@keyframes pulse-green{0%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}to{transform:scale(1);opacity:1}}.footer{margin-top:120px;padding:80px 20px 40px;background:#020617f2;border-top:1px solid rgba(255,255,255,.08)}.footer-container{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px}.footer-col h3,.footer-col h4{color:#fff;margin-bottom:16px}.footer-role{font-weight:500;opacity:.85;margin-bottom:12px}.footer-desc{opacity:.7;line-height:1.6}.footer-col ul{list-style:none;padding:0;margin:0}.footer-col li{margin-bottom:10px}.footer-col a{text-decoration:none;transition:color .2s ease}.footer-col a:hover{color:#fff}.footer-links{margin-top:12px;display:flex;gap:16px}.footer-bottom{margin-top:60px;padding-top:20px;text-align:center;font-size:.85rem;opacity:.5;border-top:1px solid rgba(255,255,255,.08)}@media(max-width:900px){.footer-container{grid-template-columns:1fr;text-align:center}.footer-links{justify-content:center}}.scroll-top-btn{position:fixed;bottom:32px;right:32px;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;color:#fff;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px #2563eb73;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .3s ease,transform .3s ease}.scroll-top-btn.show{opacity:1;transform:translateY(0);pointer-events:auto}.scroll-top-btn:hover{transform:translateY(-4px);box-shadow:0 18px 40px #2563eb99}.navbar-lang button.lang-active{background:#2563eb;border-color:#2563eb}.about-section{padding:120px 20px}.about-text{max-width:720px}.about-text p{line-height:1.8;margin-bottom:18px;opacity:.9;max-width:720px}.about-wrapper{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:280px 1fr;gap:60px;align-items:center}.soft-skills-container{max-width:1100px;margin:60px auto 0;text-align:center}.tool-card{transition:transform .25s ease,box-shadow .25s ease}.tool-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px #00000059}.tool-highlight:hover{box-shadow:0 0 40px #6366f159}.soft-skill-pill{transition:transform .2s ease,background .2s ease}.soft-skill-pill:hover{transform:scale(1.05);background:#ffffff1f}.contact-section{padding:100px 20px;color:#fff}.contact-wrapper{max-width:1100px;margin:0 auto}.contact-header{max-width:820px;margin:0 auto 50px;text-align:center}.contact-header p{max-width:680px;margin:0 auto;opacity:.85;line-height:1.6}.contact-cta{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:60px}.contact-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}.contact-info-card{padding:24px;border-radius:14px;box-shadow:0 15px 30px #0006}.contact-info-header{display:flex;align-items:center;gap:12px}.contact-info-icon{font-size:1.4rem;color:#60a5fa}.contact-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}body{background:var(--bg-main);color:var(--text-main)}.navbar{background:var(--bg-navbar);border-bottom:1px solid var(--border-soft)}.footer{background:var(--bg-footer);border-top:1px solid var(--border-soft)}.navbar-lang{display:flex;gap:8px}.navbar-lang button{background:transparent;border:1px solid var(--border-soft);color:var(--text-main);padding:4px 8px;border-radius:6px;cursor:pointer;font-size:.8rem}.navbar-lang button.lang-active{background:var(--accent);color:#fff;border-color:var(--accent)}.theme-toggle{background:transparent;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-main)}.tool-name{color:var(--text-main);opacity:1;font-weight:500}.tool-card{background:var(--bg-card);border:1px solid var(--border-soft)}.tool-name{color:var(--text-muted)}.soft-skills-container{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:18px}.soft-skills-subtitle{text-align:center;margin-bottom:24px;color:var(--text-main)}.soft-skill-pill{padding:10px 18px;border-radius:999px;background:var(--bg-main);border:1px solid var(--border-soft);font-size:.85rem;font-weight:500;color:var(--text-main);opacity:1;mix-blend-mode:normal;transition:transform .25s ease}.soft-skill-pill:hover{transform:translateY(-2px)}.projects-section{background:var(--bg-main);padding:100px 20px}.projects-container{max-width:1100px;margin:0 auto}.projects-title{text-align:center;margin-bottom:48px;color:var(--text-main)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px}.project-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:14px;transition:transform .25s ease,box-shadow .25s ease}.project-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px #0000001f}.project-title{font-size:1.05rem;font-weight:600;color:var(--text-main)}.project-desc{font-size:.92rem;color:var(--text-muted);line-height:1.6}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tag{padding:6px 10px;border-radius:999px;background:var(--bg-main);border:1px solid var(--border-soft);font-size:.75rem;color:var(--text-main)}.project-actions{display:flex;gap:12px;margin-top:auto}.project-link{font-size:.85rem;color:var(--text-main);text-decoration:none;border-bottom:1px solid var(--border-soft)}.project-link:hover{opacity:.8}.project-content h3{color:var(--text-main)}.project-description{color:var(--text-muted);line-height:1.6}.project-tags span{color:var(--text-main);border:1px solid var(--border-soft);background:var(--bg-main);padding:4px 10px;border-radius:999px;font-size:.75rem}.project-actions a{color:var(--text-main);text-decoration:none;border-bottom:1px solid var(--border-soft)}.project-actions a:hover{opacity:.8}.contact-container{max-width:1100px;margin:0 auto;text-align:center}.contact-title{color:var(--text-main);margin-bottom:16px}.contact-subtitle{color:var(--text-muted);margin-bottom:40px}.contact-actions{display:flex;justify-content:center;gap:14px;margin-bottom:48px}.contact-btn{padding:12px 22px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border-soft);color:var(--text-main);text-decoration:none;font-size:.9rem}.contact-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}.contact-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:18px;padding:28px 20px;color:var(--text-main)}.contact-card p{color:var(--text-muted)}.contact-container h2,.contact-container h3{color:var(--text-main)}.contact-container p{color:var(--text-muted);font-size:1rem}.contact-container p strong{color:var(--text-main)}.contact-container p{color:var(--text-main);opacity:.85}.contact-section{background:var(--bg-main);padding:120px 20px}.contact-wrapper{max-width:1100px;margin:0 auto;padding:80px 40px;background:var(--bg-card);border:1px solid var(--border-soft);border-radius:24px;text-align:center}.contact-header h2{color:var(--text-main);font-size:1.8rem;font-weight:600;margin-bottom:16px}.contact-header p{color:var(--text-muted);font-size:1rem;line-height:1.6;max-width:720px;margin:0 auto}.contact-cta{display:flex;justify-content:center;gap:16px;margin-top:32px}.contact-cta a{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .25s ease}.btn-primary{background:var(--accent-primary);color:#fff;border:none}.btn-secondary{background:transparent;color:var(--text-main);border:1px solid var(--border-soft)}.btn-secondary:hover{background:var(--bg-main)}.btn-primary{background:var(--accent-primary);color:#fff;border:none;box-shadow:0 8px 20px #3b82f640}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:999px;padding:12px 22px;font-size:.9rem;font-weight:500;box-shadow:0 8px 20px #00000026;transition:all .25s ease}.btn-primary:hover{opacity:.9}.footer{background:var(--bg-footer);color:var(--text-main)}.footer h3,.footer-title{color:var(--text-main);font-weight:600;margin-bottom:16px}.footer p{color:var(--text-muted)}.footer a{color:var(--text-main);text-decoration:none}.footer a:hover{opacity:.8}.footer h2,.footer h3,.footer h4,.footer .footer-title{color:var(--text-main);font-weight:600}.hero-name,.hero-name span{color:var(--text-main);-webkit-text-fill-color:var(--text-main);background:none}.hero .btn-secondary{color:var(--text-main);border:1px solid var(--border-soft);background:transparent}.hero .btn-secondary:hover{background:var(--bg-card)}.hero{color:#f8fafc}.hero h1,.hero .hero-name,.hero .hero-name span{color:#f8fafc;-webkit-text-fill-color:#f8fafc}.hero .btn-secondary{color:#f8fafc;border:1px solid rgba(255,255,255,.35);background:transparent}.hero .btn-secondary:hover{background:#ffffff1f}.scroll-top-btn{background:var(--bg-card);color:var(--text-main);border:1px solid var(--border-soft);box-shadow:0 8px 20px #00000026}.scroll-top-btn:hover{background:var(--bg-main)}.scroll-top-btn{background:#2563eb;color:#fff;border:none;box-shadow:0 10px 25px #2563eb59}.scroll-top-btn:hover{background:#1d4ed8}.scroll-top-btn svg,.scroll-top-btn i{color:#fff;fill:currentColor}.footer{color:var(--text-main)}.footer h3,.footer h4{color:var(--text-main);font-weight:600;margin-bottom:14px}.footer p,.footer span{color:var(--text-muted);line-height:1.7}.footer a{color:var(--text-muted);text-decoration:none}.footer a:hover{color:var(--text-main)}section{scroll-margin-top:90px}.navbar-links{display:flex;gap:28px}.navbar-links .nav-link{background:none;border:none;padding:0;color:var(--text-main);font-size:.95rem;font-weight:500;cursor:pointer;position:relative;transition:color .3s ease}.navbar-links .nav-link:after{content:"";position:absolute;left:0;bottom:-6px;width:0%;height:2px;background:var(--accent);transition:width .3s ease}.navbar-links .nav-link:hover{color:var(--accent)}.navbar-links .nav-link:hover:after{width:100%}.navbar-links button{all:unset;cursor:pointer;color:var(--text-main)}.navbar-logo{font-size:1.1rem;font-weight:600;color:var(--text-main);text-decoration:none;background:none;border:none;padding:0;cursor:pointer;transition:color .3s ease}.navbar-logo:hover{color:var(--accent)}@media(max-width:768px){.hero-content{padding:0 20px;text-align:center}.hero-name{font-size:2.2rem}.hero-title{font-size:1.3rem}.hero-description{font-size:.95rem}.hero-actions{flex-direction:column;gap:12px;align-items:center}.hero-actions button{width:100%;max-width:280px}}@media(max-width:768px){.navbar-inner{padding:0 16px}.navbar-links{display:none}.navbar-actions{gap:8px}}@media(max-width:768px){.footer-container{flex-direction:column;gap:32px;text-align:center}.footer-col{align-items:center}}
