.cv-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:40px 20px}.cv-actions{max-width:1000px;margin:0 auto 20px;display:flex;justify-content:flex-end}.cv-print-btn{padding:12px 24px;background:#fff;color:#667eea;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #00000026}.cv-print-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0003}.cv-loading,.cv-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;color:#fff;font-size:1.2rem}.cv-loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:cv-spin 1s linear infinite;margin-bottom:20px}@keyframes cv-spin{to{transform:rotate(360deg)}}.cv-container{max-width:1000px;margin:0 auto;background:#fff;box-shadow:0 20px 60px #0000004d;border-radius:12px;overflow:hidden}.cv-header{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;padding:40px 30px}.cv-header-content{max-width:100%}.cv-name{font-size:36px;font-weight:700;margin-bottom:8px;letter-spacing:-.5px}.cv-title{font-size:18px;font-weight:400;margin-bottom:12px;opacity:.95}.cv-tagline{font-size:14px;font-weight:300;margin-bottom:20px;opacity:.9;max-width:650px;line-height:1.6}.cv-contact-info{display:flex;flex-wrap:wrap;gap:12px 20px}.cv-contact-item{display:flex;align-items:center;font-size:13px;transition:transform .2s}.cv-contact-item:hover{transform:translateY(-2px)}.cv-contact-icon{margin-right:8px;font-size:16px}.cv-header a{color:#fff;text-decoration:none}.cv-header a:hover{text-decoration:underline}.cv-content{display:flex;padding:0}.cv-left-column{flex:1;background:#f8fafc;padding:30px 25px;border-right:1px solid #e2e8f0}.cv-right-column{flex:2;padding:30px 25px}.cv-section{margin-bottom:30px}.cv-section-title{color:#4f46e5;font-size:16px;font-weight:600;margin-bottom:18px;padding-bottom:8px;border-bottom:2px solid #e0e7ff;text-transform:uppercase;letter-spacing:.5px}.cv-summary{font-size:13.5px;line-height:1.6;color:#475569}.cv-tech-skills{display:flex;flex-direction:column;gap:16px}.cv-tech-category{width:100%}.cv-tech-category-title{font-weight:600;margin-bottom:8px;font-size:14px;color:#4338ca}.cv-tech-list{list-style:none;padding:0;margin:0}.cv-tech-list li{font-size:12.5px;margin-bottom:5px;padding-left:14px;color:#64748b;position:relative}.cv-tech-list li:before{content:"•";position:absolute;left:0;color:#10b981;font-weight:700}.cv-core-skills{display:flex;flex-direction:column;gap:14px}.cv-skill-item{width:100%}.cv-skill-header{display:flex;justify-content:space-between;margin-bottom:6px}.cv-skill-name{font-weight:500;font-size:13px;color:#475569}.cv-skill-level-text{color:#4f46e5;font-size:12px;font-weight:400}.cv-skill-bar{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.cv-skill-level{height:100%;background:linear-gradient(90deg,#4f46e5,#7c3aed);border-radius:3px;transition:width 1s ease-in-out}.cv-education{display:flex;flex-direction:column;gap:16px}.cv-education-item{width:100%}.cv-education-header{display:flex;justify-content:space-between;margin-bottom:6px;align-items:baseline}.cv-education-institution{font-weight:600;color:#4f46e5;font-size:14px}.cv-education-date{color:#64748b;font-size:12px;background:#f1f5f9;padding:3px 8px;border-radius:10px;white-space:nowrap}.cv-education-degree{font-weight:500;color:#475569;font-size:13px;margin-bottom:4px}.cv-education-location{color:#64748b;font-size:12px}.cv-experience{display:flex;flex-direction:column;gap:25px}.cv-job{padding-bottom:20px;border-bottom:1px solid #e2e8f0}.cv-job:last-child{border-bottom:none}.cv-job-header{display:flex;justify-content:space-between;margin-bottom:10px;align-items:flex-start}.cv-job-company{font-weight:600;font-size:16px;color:#4f46e5}.cv-job-location{font-weight:400;font-style:italic;color:#64748b;margin-top:3px;font-size:12.5px}.cv-job-date{color:#64748b;background:#f1f5f9;padding:4px 10px;border-radius:10px;font-size:12px;font-weight:500;white-space:nowrap}.cv-job-title{font-weight:600;margin-bottom:10px;color:#475569;font-size:14px}.cv-job-description{margin:0;padding-left:18px;list-style:none}.cv-job-description li{margin-bottom:7px;color:#64748b;font-size:13px;line-height:1.5;position:relative}.cv-job-description li:before{content:"▸";position:absolute;left:-18px;color:#4f46e5;font-weight:700}.cv-projects{display:flex;flex-direction:column;gap:16px}.cv-project{padding:16px;border-radius:8px;background:#f8fafc;border-left:3px solid #818cf8;transition:all .2s ease}.cv-project:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4f46e51a;border-left-color:#4f46e5}.cv-project-title{font-weight:600;margin-bottom:6px;font-size:15px;color:#4338ca}.cv-project-tech{display:inline-block;margin-bottom:8px;color:#059669;font-weight:500;font-size:11.5px}.cv-project-description{font-size:12.5px;line-height:1.5;color:#64748b;margin:0}@media screen and (max-width: 768px){.cv-page{padding:20px 10px}.cv-header{padding:30px 20px;text-align:center}.cv-name{font-size:28px}.cv-title{font-size:16px}.cv-tagline{font-size:13px}.cv-contact-info{justify-content:center;gap:8px 15px}.cv-content{flex-direction:column}.cv-left-column,.cv-right-column{flex:none;width:100%;padding:20px}.cv-left-column{border-right:none;border-bottom:1px solid #e2e8f0}.cv-job-header{flex-direction:column;gap:6px}.cv-job-date{align-self:flex-start}.cv-education-header{flex-direction:column;gap:4px}}@media screen and (max-width: 480px){.cv-page{padding:10px 5px}.cv-header{padding:20px 15px}.cv-name{font-size:24px}.cv-title{font-size:14px}.cv-tagline{font-size:12px}.cv-left-column,.cv-right-column{padding:15px}.cv-section-title{font-size:14px}}@media print{.cv-actions{display:none}.cv-page{background:#fff;padding:0}.cv-container{box-shadow:none;border-radius:0;max-width:100%}.cv-header{background-color:#4f46e5!important;color:#fff!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.cv-left-column{background:#f8fafc!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.cv-section-title{color:#4f46e5!important;border-bottom-color:#e0e7ff!important}.cv-skill-level{background:#4f46e5!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.cv-project{border-left:3px solid #818cf8!important;background:#f8fafc!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}a{text-decoration:none;color:inherit!important}.cv-job,.cv-project,.cv-education-item,.cv-skill-item{break-inside:avoid}.cv-header,.cv-section{break-after:avoid}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #3b82f6;--secondary: #0f172a;--secondary-hover: #1e293b;--accent: #64748b;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--text-primary: #0f172a;--text-secondary: #334155;--text-tertiary: #64748b;--text-light: #94a3b8;--border-color: #e2e8f0;--border-light: #f1f5f9;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 16px 40px rgba(0, 0, 0, .15);--bg-hero: var(--primary);--bg-card-hover: var(--bg-secondary);--bg-skill: var(--bg-tertiary)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;font-size:16px}.App{min-height:100vh;background:var(--bg-secondary);transition:background .3s ease}.App.dark{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-card: #1e293b;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--text-light: #64748b;--border-color: #334155;--border-light: #1e293b;--primary: #3b82f6;--primary-hover: #2563eb;--primary-light: #60a5fa;--secondary: #f1f5f9;--secondary-hover: #e2e8f0}::-webkit-scrollbar{width:8px}body.showing-cv .navbar{display:none}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-hover)}.navbar{position:fixed;top:0;left:0;right:0;height:70px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);z-index:1000;transition:all .3s ease}.App.dark .navbar{background:#0f172af2;border-bottom-color:var(--border-color)}.nav-container{max-width:1400px;margin:0 auto;height:100%;padding:0 32px;display:flex;justify-content:space-between;align-items:center}@media (max-width: 768px){.navbar{height:60px}.nav-container{padding:0 16px}.logo-icon{width:32px;height:32px;font-size:1rem}.logo-text-main{font-size:1.1rem}.logo-text-sub{font-size:.6rem}.nav-cv-btn{padding:8px 14px;font-size:.85rem}.theme-toggle{width:36px;height:36px}.theme-toggle svg{width:18px;height:18px}}@media (max-width: 480px){.nav-container{padding:0 12px}.logo-text-sub{display:none}.logo-icon{width:28px;height:28px}}.logo{font-size:1.5rem;font-weight:800;color:var(--primary);cursor:pointer;display:flex;align-items:center;gap:8px;letter-spacing:-.02em;transition:all .2s ease;text-decoration:none}.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--primary) 0%,#1e40af 100%);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:1.2rem;box-shadow:0 4px 12px #2563eb4d;transition:all .3s ease}.logo:hover{color:var(--primary-hover);transform:translateY(-2px)}.logo:hover .logo-icon{transform:scale(1.1) rotate(5deg);box-shadow:0 6px 16px #2563eb66}.logo-text{display:flex;flex-direction:column;line-height:1.2}.logo-text-main{font-size:1.3rem;font-weight:800;color:var(--text-primary)}.logo-text-sub{font-size:.7rem;font-weight:600;color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase}.logo-bracket{font-size:1.75rem;color:var(--secondary)}.nav-actions{display:flex;align-items:center;gap:16px}.nav-cv-btn{padding:10px 20px;border-radius:10px;border:2px solid var(--primary);background:transparent;color:var(--primary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.nav-cv-btn:hover{background:var(--primary);color:#fff;transform:translateY(-1px)}.theme-toggle{width:44px;height:44px;border-radius:12px;border:2px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{border-color:var(--primary);background:var(--bg-tertiary)}.theme-toggle svg{width:20px;height:20px}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--primary);position:relative;overflow:hidden;padding:90px 32px 50px}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:40px 40px;opacity:1}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(255,255,255,.1) 2px,transparent 2px);background-size:40px 40px;background-position:0 0,20px 20px;opacity:1}.hero-content{max-width:800px;text-align:center;color:#fff;position:relative;z-index:1;animation:fadeInUp .8s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero-name{font-size:4rem;font-weight:900;margin-bottom:16px;line-height:1.1;letter-spacing:-.03em}.hero-subtitle{font-size:1.5rem;font-weight:500;margin-bottom:16px;opacity:.95}.hero-description{font-size:1.1rem;line-height:1.8;margin-bottom:32px;opacity:.9;max-width:600px;margin-left:auto;margin-right:auto;font-weight:300}.hero-skills{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:40px}.skill-tag{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 20px;border-radius:8px;font-size:.85rem;font-weight:600;border:1px solid rgba(255,255,255,.3);transition:all .2s ease;letter-spacing:.02em}.skill-tag:hover{background:#ffffff4d;transform:translateY(-2px)}.hero-stats{display:flex;gap:24px;justify-content:center;flex-wrap:wrap}.stat-item{display:flex;align-items:center;gap:16px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px 28px;border-radius:12px;border:1px solid rgba(255,255,255,.2);transition:all .2s ease}.stat-item:hover{background:#ffffff40;transform:translateY(-2px)}.stat-icon{width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#ffffff40;border-radius:10px;color:#fff}.stat-icon svg{width:24px;height:24px}.stat-content{text-align:left}.stat-number{font-size:2rem;font-weight:800;line-height:1;letter-spacing:-.02em}.stat-label{font-size:.8rem;opacity:.9;margin-top:4px;font-weight:500}section{padding:80px 32px}.section-header{text-align:center;margin-bottom:60px;position:relative;z-index:2}.section-tag{display:inline-block;background:var(--primary);color:#fff;padding:8px 20px;border-radius:8px;font-size:.8rem;font-weight:700;margin-bottom:16px;letter-spacing:.05em;text-transform:uppercase;position:relative;z-index:2}.section-title{font-size:2.5rem;font-weight:800;margin-bottom:16px;color:var(--text-primary);letter-spacing:-.03em;position:relative;z-index:2}.section-description{color:var(--text-tertiary);font-size:1.05rem;max-width:600px;margin:0 auto;line-height:1.7;position:relative;z-index:2}.projects-section{max-width:1400px;margin:0 auto;position:relative}.projects-section:before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background-image:linear-gradient(var(--border-color) 1px,transparent 1px),linear-gradient(90deg,var(--border-color) 1px,transparent 1px),linear-gradient(rgba(37,99,235,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.03) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-1px -1px,-1px -1px,-1px -1px,-1px -1px;opacity:1;pointer-events:none}.filters{margin-bottom:50px;position:relative;z-index:1}.category-filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:30px}.category-btn{padding:10px 20px;border:2px solid var(--border-color);background:var(--bg-card);border-radius:8px;font-size:.9rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;letter-spacing:.01em}.category-btn:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.category-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.search-box{max-width:500px;margin:0 auto;position:relative}.search-icon-wrapper{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.search-icon-wrapper svg{width:18px;height:18px}.search-input{width:100%;padding:14px 16px 14px 50px;border:2px solid var(--border-color);border-radius:12px;font-size:1rem;background:var(--bg-card);color:var(--text-primary);transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.search-input::placeholder{color:var(--text-tertiary)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:30px;position:relative;z-index:1}.project-card{background:var(--bg-card);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md);transition:all .3s ease;cursor:pointer;animation:fadeInUp .5s ease both;border:1px solid var(--border-color)}.project-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:var(--primary)}.project-image{position:relative;height:240px;overflow:hidden;background:var(--primary)}.project-image:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),radial-gradient(circle,rgba(255,255,255,.08) 1px,transparent 1px);background-size:20px 20px,20px 20px,10px 10px;opacity:1}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;position:relative;z-index:1}.project-card:hover .project-image img{transform:scale(1.05)}.project-image-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:1rem;gap:12px;position:relative;z-index:1}.project-image-placeholder svg{width:48px;height:48px;opacity:.9}.card-image-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;background:#2563ebf2;border:2px solid white;border-radius:50%;font-size:22px;font-weight:700;color:#fff;cursor:pointer;z-index:100;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 4px 16px #00000080;pointer-events:auto!important;opacity:0}.project-card:hover .card-image-nav{opacity:1}.card-image-nav:hover{background:#2563eb;transform:translateY(-50%) scale(1.15);box-shadow:0 6px 20px #0009}.card-image-nav.card-prev{left:12px}.card-image-nav.card-next{right:12px}.card-image-indicators{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:100;pointer-events:auto!important;opacity:0;transition:opacity .3s ease}.project-card:hover .card-image-indicators{opacity:1}.card-image-indicators span{width:8px;height:8px;border-radius:50%;background:#fff9;border:2px solid white;transition:all .3s ease;cursor:pointer;pointer-events:auto!important}.card-image-indicators span.active{background:var(--primary);width:24px;border-radius:4px}.project-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#6366f1eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;z-index:4;pointer-events:none}.project-card:hover .project-overlay{opacity:1}.view-btn{background:#fff;color:var(--primary);padding:12px 28px;border-radius:8px;font-weight:700;border:none;cursor:pointer;font-size:1rem;transition:all .2s ease;display:flex;align-items:center;gap:8px;pointer-events:auto!important;position:relative;z-index:15}.view-btn:hover{transform:scale(1.05)}.view-btn svg{width:18px;height:18px}.project-content{padding:24px}.project-category{display:inline-block;background:var(--primary);color:#fff;padding:6px 14px;border-radius:6px;font-size:.75rem;font-weight:700;margin-bottom:14px;letter-spacing:.05em;text-transform:uppercase}.project-title{font-size:1.35rem;font-weight:700;margin-bottom:10px;color:var(--text-primary);line-height:1.3;transition:color .2s ease}.project-title.clickable{cursor:pointer}.project-title.clickable:hover{color:var(--primary)}} .project-description{color:var(--text-tertiary);font-size:.95rem;line-height:1.7;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-tech{display:flex;gap:8px;flex-wrap:wrap}.tech-tag{background:var(--bg-tertiary);color:var(--primary);padding:6px 12px;border-radius:6px;font-size:.8rem;font-weight:600;border:1px solid var(--border-color)}.no-results{text-align:center;padding:80px 32px;color:var(--text-tertiary);position:relative;z-index:1}.no-results-icon{width:64px;height:64px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:50%;color:var(--primary)}.no-results-icon svg{width:32px;height:32px}.no-results h3{font-size:1.5rem;margin-bottom:10px;color:var(--text-primary)}.skills-section{background:var(--bg-secondary);position:relative}.skills-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--border-color) 1px,transparent 1px),linear-gradient(90deg,var(--border-color) 1px,transparent 1px);background-size:30px 30px;opacity:.3;pointer-events:none}.skills-section:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(37,99,235,.08) 2px,transparent 2px),radial-gradient(circle,rgba(37,99,235,.05) 3px,transparent 3px);background-size:60px 60px,90px 90px;background-position:0 0,30px 30px;opacity:1;pointer-events:none}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;max-width:1400px;margin:0 auto;position:relative;z-index:1}@media (max-width: 1024px){.skills-grid{grid-template-columns:repeat(2,1fr);gap:20px}}@media (max-width: 640px){.skills-grid{grid-template-columns:1fr;gap:16px}.skill-category{padding:24px}.skill-category-icon{width:48px;height:48px;margin-bottom:16px}.skill-category-icon svg{width:24px;height:24px}.skill-category-title{font-size:1.1rem;margin-bottom:16px}.skill-item{font-size:.85rem;padding:6px 12px}}.skill-category{background:var(--bg-card);padding:32px;border-radius:16px;border:1px solid var(--border-color);transition:all .2s ease}.skill-category:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary)}.skill-category-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--primary);border-radius:12px;margin-bottom:20px;color:#fff;transition:all .3s ease}.skill-category-icon:hover{transform:scale(1.1) rotate(5deg)}.skill-category-icon svg{width:28px;height:28px}.skill-category-title{font-size:1.25rem;font-weight:700;margin-bottom:20px;color:var(--text-primary)}.skill-list{display:flex;flex-wrap:wrap;gap:10px}.skill-item{background:var(--bg-tertiary);padding:8px 16px;border-radius:6px;font-size:.9rem;font-weight:600;color:var(--text-secondary);border:1px solid var(--border-color);transition:all .2s ease}.skill-item:hover{color:var(--primary);border-color:var(--primary);background:var(--bg-secondary)}.contact-section{background:var(--secondary);color:#fff;text-align:center;position:relative;overflow:hidden}.contact-section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.02) 2px,transparent 2px),linear-gradient(90deg,rgba(255,255,255,.02) 2px,transparent 2px),radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);background-size:60px 60px,60px 60px,15px 15px;opacity:1}.contact-section:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.01) 2px,rgba(255,255,255,.01) 4px);opacity:.5}.contact-content{max-width:600px;margin:0 auto;position:relative;z-index:1}.contact-info h2{font-size:2.5rem;font-weight:800;margin-bottom:16px;letter-spacing:-.03em}.contact-info>p{font-size:1.1rem;opacity:.9;margin-bottom:40px;line-height:1.7}.contact-links{display:flex;flex-direction:column;gap:16px;align-items:center}.contact-link{display:flex;align-items:center;gap:16px;color:#fff;text-decoration:none;padding:18px 28px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(255,255,255,.15);transition:all .2s ease;min-width:350px;font-weight:600;font-size:1rem}.contact-link:hover{background:#ffffff26;transform:translateY(-2px);border-color:#ffffff40}.contact-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:10px}.contact-icon svg{width:20px;height:20px}.footer{background:var(--bg-card);color:var(--text-tertiary);text-align:center;padding:32px;font-size:.9rem;border-top:1px solid var(--border-color)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172af2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:32px;animation:fadeIn .3s ease}.modal-content{background:var(--bg-card);border-radius:24px;max-width:1000px;width:100%;max-height:92vh;overflow:hidden;position:relative;animation:slideUp .4s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-xl);border:1px solid var(--border-color);display:flex;flex-direction:column}@keyframes slideUp{0%{transform:translateY(60px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-close{position:absolute;top:20px;right:20px;width:48px;height:48px;border-radius:50%;background:#0009;color:#fff;border:none;cursor:pointer;z-index:20;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0000004d}.modal-close:hover{background:#000c;transform:rotate(90deg) scale(1.1);box-shadow:0 6px 20px #0006}.modal-close svg{width:24px;height:24px}.modal-image{height:450px;overflow:hidden;background:var(--primary);position:relative}.modal-image:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.03) 2px,rgba(255,255,255,.03) 4px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px);background-size:100% 100%,40px 40px,40px 40px;opacity:1}.modal-image img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1;transition:opacity .3s ease}.image-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;background:#ffffffe6;border:none;border-radius:50%;font-size:24px;font-weight:700;color:var(--primary);cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 10px #0003}.image-nav:hover{background:#fff;transform:translateY(-50%) scale(1.1);box-shadow:0 4px 15px #0000004d}.image-nav.prev{left:16px}.image-nav.next{right:16px}.image-indicators{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:3}.image-dot{width:10px;height:10px;border-radius:50%;background:#ffffff80;border:2px solid rgba(255,255,255,.8);cursor:pointer;transition:all .3s ease}.image-dot:hover{background:#fffc}.image-dot.active{background:#fff;width:24px;border-radius:5px}.modal-image-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;gap:16px;position:relative;z-index:1}.modal-image-placeholder svg{width:64px;height:64px;opacity:.9}.modal-body{padding:40px;overflow-y:auto}.modal-category{display:inline-block;background:var(--gradient-primary);color:#fff;padding:10px 20px;border-radius:25px;font-size:.85rem;font-weight:700;margin-bottom:20px;text-transform:uppercase;letter-spacing:.05em}.modal-title{font-size:2.25rem;font-weight:800;margin-bottom:20px;color:var(--text-primary);line-height:1.2}.modal-description{color:var(--text-tertiary);font-size:1.05rem;line-height:1.8;margin-bottom:32px}.modal-tech h4{font-size:1.1rem;margin-bottom:16px;color:var(--text-primary);font-weight:700}.tech-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}.tech-tag-large{background:var(--bg-tertiary);color:var(--primary);padding:10px 18px;border-radius:10px;font-size:.95rem;font-weight:700;border:1px solid var(--border-color);transition:all .2s ease}.tech-tag-large:hover{border-color:var(--primary);background:var(--bg-secondary);transform:translateY(-2px)}.modal-actions{display:flex;gap:16px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--border-color)}.btn{padding:14px 32px;border-radius:8px;font-weight:700;text-decoration:none;transition:all .2s ease;display:inline-flex;align-items:center;gap:10px;font-size:1rem}.btn-primary{background:var(--primary);color:#fff;border:none}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:2px solid var(--border-color)}.btn-secondary:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}@media (max-width: 768px){.hero-name{font-size:3rem}.hero-subtitle{font-size:1.25rem}.hero-description{font-size:1rem}.hero-stats{gap:16px}.stat-item{padding:16px 20px}.stat-number{font-size:1.75rem}.section-title{font-size:2rem}.projects-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:repeat(2,1fr)}.modal-image{height:250px}.modal-content{max-height:95vh;border-radius:16px}.modal-title{font-size:1.6rem}.modal-body{padding:24px}.btn{width:100%;text-align:center}.modal-actions{flex-direction:column}.btn{width:100%;justify-content:center}.contact-link{min-width:100%}}@media (max-width: 480px){section{padding:60px 20px}.hero-name{font-size:2.5rem}.section-title{font-size:1.75rem}.nav-container{padding:0 20px}.logo{font-size:1.25rem}.hero{padding:80px 20px 40px}}.fullscreen-btn{position:absolute;bottom:12px;right:12px;width:40px;height:40px;background:#000000b3;border:2px solid white;border-radius:8px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:20;opacity:0}.modal-image:hover .fullscreen-btn{opacity:1}.fullscreen-btn:hover{background:#000000e6;transform:scale(1.1)}.fullscreen-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease;cursor:pointer}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fullscreen-image{max-width:95vw;max-height:90vh;object-fit:contain;cursor:default;animation:zoomIn .3s ease}@keyframes zoomIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.fullscreen-close{position:absolute;top:20px;right:20px;width:48px;height:48px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:10001}.fullscreen-close:hover{background:#fff3;border-color:#ffffff80;transform:scale(1.1)}.fullscreen-nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;font-size:32px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:10001}.fullscreen-nav:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-50%) scale(1.1)}.fullscreen-prev{left:40px}.fullscreen-next{right:40px}.fullscreen-indicators{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;gap:12px;z-index:10001}.fullscreen-dot{width:12px;height:12px;border-radius:50%;background:#ffffff4d;border:2px solid rgba(255,255,255,.5);cursor:pointer;transition:all .3s ease}.fullscreen-dot:hover{background:#ffffff80}.fullscreen-dot.active{background:#fff;width:36px;border-radius:6px}.fullscreen-counter{position:absolute;top:20px;left:50%;transform:translate(-50%);color:#fff;font-size:1rem;font-weight:600;background:#0009;padding:8px 16px;border-radius:20px;z-index:10001}@media (max-width: 768px){.section-header{margin-bottom:40px}.section-tag{padding:6px 16px;font-size:.75rem}.section-title{font-size:1.75rem}.skills-section{padding:60px 20px}}@media (max-width: 480px){.section-header{margin-bottom:32px}.section-tag{padding:5px 14px;font-size:.7rem}.section-title{font-size:1.5rem;margin-bottom:12px}.skills-section{padding:40px 16px}.skills-grid{gap:12px}.skill-category{padding:20px}.skill-category-icon{width:44px;height:44px;margin-bottom:12px}.skill-category-icon svg{width:22px;height:22px}.skill-category-title{font-size:1rem;margin-bottom:12px}.skill-list{gap:8px}.skill-item{font-size:.8rem;padding:5px 10px}.fullscreen-close{top:12px;right:12px;width:40px;height:40px}.fullscreen-close svg{width:20px;height:20px}.fullscreen-image{max-width:100vw;max-height:85vh}.fullscreen-indicators{bottom:16px}.fullscreen-dot{width:8px;height:8px}.fullscreen-counter{bottom:40px;font-size:.85rem}}}{}
