:root{--bg-primary:#0c1120;--bg-surface:#111827;--bg-elevated:#1e293b;--bg-hover:#263348;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--accent:#38bdf8;--accent-hover:#7dd3fc;--accent-subtle:#38bdf81a;--border:#1e293b;--border-subtle:#152033;--warning:#fbbf24;--font-display:"Sora",sans-serif;--font-body:"DM Sans",sans-serif;--font-mono:"JetBrains Mono",monospace;--container:860px;--container-padding:24px;--ease:cubic-bezier(0.16,1,0.3,1);--duration:0.4s}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0c1120;background-color:var(--bg-primary);color:#f1f5f9;color:var(--text-primary);font-family:DM Sans,sans-serif;font-family:var(--font-body);line-height:1.6;margin:0}code{font-family:JetBrains Mono,monospace;font-family:var(--font-mono)}h1,h2,h3,h4,h5,h6{font-family:Sora,sans-serif;font-family:var(--font-display);font-weight:600;line-height:1.2}a{color:inherit;text-decoration:none}img{height:auto;max-width:100%}button{font-family:inherit}ol,ul{list-style:none}::selection{background-color:#38bdf8;background-color:var(--accent);color:#0c1120;color:var(--bg-primary)}:focus{outline:2px solid #38bdf8;outline:2px solid var(--accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid #38bdf8;outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.pdf-mode .certificate-card:before,.pdf-mode .download-resume-btn,.pdf-mode .education-card:before,.pdf-mode .expand-icon,.pdf-mode .experience-icon,.pdf-mode .header-nav,.pdf-mode .projects,.pdf-mode .scroll-to-top,.pdf-mode .section-title:before,.pdf-mode .skill-category:before,.pdf-mode .skip-link,.pdf-mode footer{display:none!important}.pdf-mode .animated-section{opacity:1!important;transform:none!important}.pdf-mode,.pdf-mode .App{background:#fff!important;background-image:none!important}.pdf-mode .App:before{display:none!important}.pdf-mode main{margin:0!important;padding:0!important}.pdf-mode .header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important;border-bottom:2px solid #000!important;box-shadow:none!important;padding:8px 0 12px!important;position:relative!important}.pdf-mode .header,.pdf-mode .header *{color:#000!important}.pdf-mode .header-main{margin-bottom:8px!important}.pdf-mode .header-info h1{-webkit-text-fill-color:#000!important;background:none!important;font-size:1.8em!important;margin-bottom:4px!important}.pdf-mode .header-info .title{color:#333!important;font-size:1.1em!important;margin-bottom:6px!important;max-height:none!important;opacity:1!important}.pdf-mode .contact-quick{display:flex!important;font-size:.85em!important;margin-bottom:0!important;max-height:none!important;opacity:1!important}.pdf-mode .header-social{display:none!important}.pdf-mode section{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important;margin-bottom:8px!important;padding:12px 0 8px!important}.pdf-mode section,.pdf-mode section *{color:#000!important}.pdf-mode .section-title{border-bottom:2px solid #38bdf8;color:#222!important;font-size:1.6em!important;margin-bottom:12px!important;padding-bottom:6px!important}.pdf-mode .container{padding:0 15px!important}.pdf-mode .experience-item{background-color:#fff!important;border:1px solid #ddd!important;border-left:3px solid #38bdf8!important;border-radius:0!important;margin-bottom:10px!important;opacity:1!important;padding:12px 15px!important}.pdf-mode .responsibilities,.pdf-mode .responsibilities.hide,.pdf-mode .responsibilities.show{animation:none!important;margin:8px 0 0!important;padding:0!important}.pdf-mode .responsibilities,.pdf-mode .responsibilities.hide,.pdf-mode .responsibilities.show,.pdf-mode .sub-projects,.pdf-mode .sub-projects.hide,.pdf-mode .sub-projects.show{display:block!important;max-height:none!important;opacity:1!important;overflow:visible!important}.pdf-mode .sub-projects-label{border-top-color:#ddd!important;color:#555!important;margin-top:12px!important;padding-top:10px!important}.pdf-mode .sub-project-card{background:#fff!important;border:1px solid #ddd!important}.pdf-mode .tech-rust{background-color:#ce422b1a!important;color:#a83218!important}.pdf-mode .tech-go{background-color:#00add81a!important;color:#07a!important}.pdf-mode .tech-nodejs{background-color:#3399331a!important;color:#262!important}.pdf-mode .sub-project-name{color:#000!important}.pdf-mode .sub-project-desc{color:#333!important}.pdf-mode .responsibilities li{color:#333!important;font-size:.88em!important;line-height:1.5!important;margin-bottom:5px!important;padding-left:18px!important}.pdf-mode .responsibilities li:before{background-color:#38bdf8!important}.pdf-mode .experience-header{cursor:default!important;margin-bottom:8px!important}.pdf-mode .experience-item h3{color:#000!important;font-size:1.2em!important;margin-bottom:2px!important}.pdf-mode .company-info{color:#333!important;font-size:.95em!important;margin-bottom:2px!important}.pdf-mode .period{color:#555!important;font-size:.85em!important;margin:0!important}.pdf-mode .about-summary{border-left-color:#38bdf8!important}.pdf-mode .skill-category{margin-bottom:10px!important}.pdf-mode .certificates-grid,.pdf-mode .languages-grid,.pdf-mode .skills-grid{gap:8px!important}.pdf-mode .skill-badge{background:#fff!important;border:1px solid #ddd!important;color:#000!important;font-size:.82em!important;margin:2px!important;padding:3px 8px!important}.pdf-mode .certificate-card,.pdf-mode .education-card,.pdf-mode .language-card{background:#fff!important;border:1px solid #ddd!important;border-left:3px solid #38bdf8!important;margin-bottom:8px!important;padding:10px!important}.pdf-mode .education-card.in-progress{border-left-color:#fbbf24!important}.pdf-mode *{box-shadow:none!important;text-shadow:none!important}.pdf-mode a{color:#06c!important;text-decoration:none!important}.pdf-mode .contact-link{color:#000!important}@media print{body{background:#fff;color:#000}.certificate-card:before,.download-resume-btn,.education-card:before,.expand-icon,.experience-icon,.header-nav,.projects,.scroll-to-top,.section-title:before,.skill-category:before,.skip-link,footer{display:none!important}.animated-section{opacity:1!important;transform:none!important}.App{background:#fff!important}.App:before{display:none!important}.header{background:#fff!important;border-bottom:2px solid #000;box-shadow:none;position:relative}.header *{color:#000!important}.header-info h1{-webkit-text-fill-color:#000!important}.contact-quick,.header-info .title{max-height:none!important;opacity:1!important}.header-social{display:none}section{background:#fff!important}section,section *{color:#000!important}.responsibilities,.responsibilities.hide,.responsibilities.show,.sub-projects,.sub-projects.hide,.sub-projects.show{display:block!important;max-height:none!important;opacity:1!important;overflow:visible!important}.sub-project-card{background:#fff!important;border:1px solid #ddd!important}.tech-badge{background-color:#f0f0f0!important;color:#333!important}.sub-project-name{color:#000!important}.sub-project-desc{color:#333!important}*{box-shadow:none!important;text-shadow:none!important}@page{size:A4;margin:1.5cm 1cm}}.header{background-color:var(--bg-primary);border-bottom:1px solid var(--border);color:var(--text-primary);padding:32px 0;position:-webkit-sticky;position:sticky;top:0;transition:all var(--duration) var(--ease);z-index:100}.header.scrolled{padding:10px 0}.header-container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding)}.header-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px;transition:all var(--duration) var(--ease)}.header.scrolled .header-main{margin-bottom:0}.header-info h1{-webkit-text-fill-color:unset;background:none;color:var(--text-primary);font-family:var(--font-display);font-size:2.8em;font-weight:700;letter-spacing:-.02em;margin:0 0 8px;transition:all var(--duration) var(--ease)}.header.scrolled .header-info h1{font-size:1.5em;margin:0}.header-info .title{color:var(--accent);font-family:var(--font-mono);font-size:1.1em;font-weight:500;margin:0 0 12px;max-height:50px;opacity:1;overflow:hidden;transition:all var(--duration) var(--ease)}.header.scrolled .header-info .title{margin:0;max-height:0;opacity:0}.contact-quick{align-items:center;color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:.9em;gap:8px;max-height:100px;opacity:1;overflow:hidden;transition:all var(--duration) var(--ease)}.header.scrolled .contact-quick{max-height:0;opacity:0}.contact-link{align-items:center;color:var(--text-secondary);display:inline-flex;gap:6px;text-decoration:none;transition:color var(--duration) var(--ease)}.contact-link:hover{color:var(--accent)}.contact-link svg{font-size:.9em}.separator{color:var(--text-muted);margin:0 4px}.header-social{gap:12px}.header-social,.social-link{align-items:center;display:flex}.social-link{background-color:initial;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:1.2em;height:42px;justify-content:center;text-decoration:none;transition:all var(--duration) var(--ease);width:42px}.header.scrolled .social-link{font-size:1em;height:34px;width:34px}.social-link:hover{background-color:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.download-resume-btn{align-items:center;background-color:var(--accent);border:none;border-radius:8px;color:var(--bg-primary);cursor:pointer;display:flex;font-family:var(--font-mono);font-size:.9em;font-weight:600;gap:8px;padding:10px 22px;transition:all var(--duration) var(--ease)}.header.scrolled .download-resume-btn{font-size:.85em;padding:6px 14px}.download-resume-btn:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.download-resume-btn:active{transform:translateY(0)}.download-resume-btn:disabled{cursor:wait;opacity:.7}.spin-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.download-resume-btn .btn-text{transition:all var(--duration) var(--ease)}.header.scrolled .download-resume-btn .btn-text{display:none}.header-nav{border-top:1px solid var(--border-subtle);display:flex;gap:28px;justify-content:flex-start;padding-top:16px;transition:all var(--duration) var(--ease)}.header.scrolled .header-nav{border-top:none;gap:18px;padding-top:0}.header-nav a{color:var(--text-secondary);font-family:var(--font-mono);font-size:.8em;font-weight:500;letter-spacing:.08em;padding:6px 0;position:relative;text-decoration:none;text-transform:uppercase;transition:color var(--duration) var(--ease)}.header.scrolled .header-nav a{font-size:.75em;padding:4px 0}.header-nav a:hover{background:none;color:var(--accent)}.header-nav a:after{background-color:var(--accent);bottom:0;content:"";height:1px;left:0;position:absolute;transition:width var(--duration) var(--ease);width:0}.header-nav a:hover:after{width:100%}@media (max-width:768px){.header{padding:20px 0}.header.scrolled{padding:6px 0}.header-main{align-items:flex-start;flex-direction:column;margin-bottom:16px}.header-info h1{font-size:2em}.header.scrolled .header-info h1{font-size:1.3em}.header-info .title{font-size:.95em}.contact-quick{font-size:.8em;margin-bottom:12px}.contact-quick .separator{display:none}.contact-link{flex-basis:100%}.header-social{gap:10px;margin-top:10px}.header.scrolled .header-social{margin-top:0}.social-link{font-size:1.1em;height:38px;width:38px}.header.scrolled .social-link{font-size:.9em;height:30px;width:30px}.header-nav{flex-wrap:wrap;gap:14px;padding-top:12px}.header.scrolled .header-nav{gap:10px}.header-nav a{font-size:.75em;padding:4px 0}.header.scrolled .header-nav a{font-size:.7em}}.about{background-color:initial;color:var(--text-primary);counter-increment:section-counter;margin-bottom:0;margin-top:0;padding:72px 0;scroll-margin:120px}.about .container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding)}.about .section-title{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:.85em;font-weight:500;letter-spacing:.12em;margin-bottom:40px;padding-bottom:12px;text-transform:uppercase}.about .section-title:before{color:var(--accent);content:counter(section-counter,decimal-leading-zero) " / ";font-family:var(--font-mono)}.about-content{align-items:flex-start;display:flex;gap:40px}.about-image{flex-shrink:0;height:200px;width:160px}.profile-img{border-radius:4px;filter:grayscale(.2);height:100%;object-fit:cover;transition:filter var(--duration) var(--ease);width:100%}.profile-img:hover{filter:grayscale(0)}.about-summary{background:none;border-left:2px solid var(--accent);border-radius:0;margin-bottom:24px;padding:0 0 0 20px}.about-summary .highlight{color:var(--text-primary);font-size:1.15em;font-weight:400;line-height:1.7;margin:0}.about-text{flex:1 1}.about-text p{color:var(--text-secondary);font-size:1em;line-height:1.8;margin-bottom:16px}.about-text p:last-child{margin-bottom:0}@media (max-width:768px){.about{padding:48px 0}.about .section-title{margin-bottom:28px}.about-content{align-items:center;flex-direction:column;gap:24px}.about-image{height:162px;width:130px}.about-text{text-align:left}.about-summary{padding:0 0 0 16px}.about-summary .highlight{font-size:1.05em}.about-text p{font-size:.95em}}.experience{background-color:initial;color:var(--text-primary);counter-increment:section-counter;margin-bottom:0;padding:72px 0;scroll-margin:82px}.experience .container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding)}.experience .section-title{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:.85em;font-weight:500;letter-spacing:.12em;margin-bottom:40px;padding-bottom:12px;text-transform:uppercase}.experience .section-title:before{color:var(--accent);content:counter(section-counter,decimal-leading-zero) " / ";font-family:var(--font-mono)}.experience-timeline{position:relative}.experience-item{background-color:var(--bg-surface);border-left:3px solid #0000;border-radius:6px;margin-bottom:16px;padding:24px;transition:all var(--duration) var(--ease)}.experience-item.expanded{border-left-color:var(--accent)}.experience-item:hover{background-color:var(--bg-elevated)}.experience-header{align-items:flex-start;cursor:pointer;display:flex;justify-content:space-between;-webkit-user-select:none;user-select:none}.experience-item.collapsed .experience-header{margin-bottom:0}.experience-item.expanded .experience-header{margin-bottom:20px}.experience-right{gap:12px}.expand-icon,.experience-right{align-items:center;display:flex}.expand-icon{background-color:initial;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.9em;height:32px;justify-content:center;transition:all var(--duration) var(--ease);width:32px}.experience-header:hover .expand-icon{border-color:var(--accent);color:var(--accent)}.experience-title-section{flex:1 1}.experience-item h3{color:var(--text-primary);font-family:var(--font-display);font-size:1.5em;font-weight:600;margin-bottom:6px}.company-info{color:var(--text-secondary);font-size:1.05em;margin-bottom:6px}.company-name{color:var(--text-primary);font-weight:600}.company-description{color:var(--text-muted);font-style:italic}.period{color:var(--text-muted);font-family:var(--font-mono);font-size:.85em;font-weight:500;margin:0}.experience-icon{flex-shrink:0}.experience-icon img{background-color:var(--bg-elevated);border-radius:6px;height:52px;object-fit:contain;padding:8px;transition:transform var(--duration) var(--ease);width:52px}.experience-header:hover .experience-icon img{transform:scale(1.05)}.responsibilities{list-style-type:none;margin:0;overflow:hidden;padding:0;transition:max-height .3s ease-out,opacity .3s ease-out}.responsibilities.hide{margin:0;max-height:0;opacity:0}.responsibilities.show{animation:slideDown .3s ease-out;max-height:2000px;opacity:1}@keyframes slideDown{0%{max-height:0;opacity:0;transform:translateY(-10px)}to{max-height:2000px;opacity:1;transform:translateY(0)}}.responsibilities li{color:var(--text-secondary);font-size:.95em;line-height:1.7;margin-bottom:10px;padding-left:20px;position:relative}.responsibilities li:before{background-color:var(--accent);border-radius:50%;content:"";height:5px;left:4px;position:absolute;top:10px;width:5px}.sub-projects{overflow:hidden;transition:max-height .3s ease-out,opacity .3s ease-out}.sub-projects.hide{max-height:0;opacity:0}.sub-projects.show{max-height:600px;opacity:1}.sub-projects-label{border-top:1px solid var(--border-subtle);color:var(--text-muted);font-family:var(--font-mono);font-size:.78em;letter-spacing:.1em;margin:20px 0 10px;padding-top:16px;text-transform:uppercase}.sub-projects-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.sub-project-card{background-color:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:6px;padding:12px 14px;transition:border-color var(--duration) var(--ease)}.sub-project-card:hover{border-color:var(--border)}.tech-badge{border-radius:4px;display:inline-block;font-family:var(--font-mono);font-size:.72em;font-weight:600;letter-spacing:.05em;margin-bottom:8px;padding:2px 8px;text-transform:uppercase}.tech-rust{background-color:#ce422b26;color:#ce422b}.tech-go{background-color:#00add826;color:#00add8}.tech-nodejs{background-color:#33993326;color:#393}.sub-project-name{color:var(--text-primary);font-size:.88em;font-weight:600;margin:0 0 5px}.sub-project-desc{color:var(--text-secondary);font-size:.82em;line-height:1.55;margin:0}@media (max-width:768px){.experience{padding:48px 0}.experience .section-title{margin-bottom:28px}.experience-item{margin-bottom:12px;padding:16px}.experience-header{flex-direction:row;flex-wrap:wrap}.experience-title-section{flex-basis:100%;margin-bottom:10px}.experience-right{gap:10px;justify-content:flex-end;width:100%}.experience-icon img{height:40px;width:40px}.expand-icon{font-size:.8em;height:28px;width:28px}.experience-item h3{font-size:1.2em}.company-info{font-size:.95em}.responsibilities li{font-size:.9em;padding-left:18px}.sub-projects-grid{grid-template-columns:1fr}}.skills{background-color:initial;color:var(--text-primary);counter-increment:section-counter;margin-bottom:0;padding:72px 0;scroll-margin:120px}.skills .container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding)}.skills .section-title{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:.85em;font-weight:500;letter-spacing:.12em;margin-bottom:40px;padding-bottom:12px;text-transform:uppercase}.skills .section-title:before{color:var(--accent);content:counter(section-counter,decimal-leading-zero) " / ";font-family:var(--font-mono)}.skills-categories{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.skill-category{background-color:var(--bg-surface);border-radius:6px;border-top:none;overflow:hidden;padding:24px;position:relative}.skill-category:before{background:linear-gradient(90deg,var(--accent) 0,#0000 100%);content:"";height:2px;left:0;position:absolute;right:0;top:0}.category-title{color:var(--text-primary);font-family:var(--font-display);font-size:1.15em;font-weight:600;margin-bottom:18px;text-align:left}.skills-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.skill-badge{background-color:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);font-family:var(--font-mono);font-size:.82em;font-weight:500;padding:6px 14px;transition:all var(--duration) var(--ease)}.skill-badge:hover{border-color:var(--accent);color:var(--accent)}.skill-name{color:var(--text-primary);font-weight:500}.skill-level{display:none}@media (max-width:768px){.skills{padding:48px 0}.skills .section-title{margin-bottom:28px}.skills-categories{gap:16px;grid-template-columns:1fr}.skill-category{padding:20px}.category-title{font-size:1.05em;margin-bottom:14px}.skill-badge{font-size:.78em;padding:5px 10px}}.animated-section{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition:opacity .7s var(--ease,cubic-bezier(.16,1,.3,1)),transform .7s var(--ease,cubic-bezier(.16,1,.3,1))}.animated-section.visible{opacity:1}.animated-section.fade-up{transform:translateY(24px)}.animated-section.fade-up.visible{transform:translateY(0)}.animated-section.fade-in,.animated-section.fade-in.visible{transform:none}.animated-section.fade-left{transform:translateX(24px)}.animated-section.fade-left.visible{transform:translateX(0)}.animated-section.fade-right{transform:translateX(-24px)}.animated-section.fade-right.visible{transform:translateX(0)}.animated-section.scale{transform:scale(.95)}.animated-section.scale.visible{transform:scale(1)}.projects{background-color:initial;counter-increment:section-counter;padding:72px 0}.projects .container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding)}.projects .section-title{align-items:center;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);display:flex;font-family:var(--font-mono);font-size:.85em;font-weight:500;gap:12px;letter-spacing:.12em;margin-bottom:40px;padding-bottom:12px;text-transform:uppercase}.projects .section-title:before{color:var(--accent);content:counter(section-counter,decimal-leading-zero) " / ";font-family:var(--font-mono)}.projects .title-icon{color:var(--accent);font-size:1.2em}.projects-grid{grid-gap:24px;display:grid;gap:24px}.project-card{background-color:var(--bg-surface);border-left:3px solid var(--accent);border-radius:6px;padding:32px;transition:all var(--duration) var(--ease)}.project-card:hover{background-color:var(--bg-elevated)}.project-header{margin-bottom:20px}.project-name{color:var(--text-primary);font-family:var(--font-display);font-size:1.6em;font-weight:700;margin-bottom:6px}.project-tagline{color:var(--accent);font-family:var(--font-mono);font-size:.9em;font-style:normal;margin:0}.project-description{color:var(--text-secondary);font-size:1em;line-height:1.7;margin-bottom:24px}.project-highlights{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:24px}.highlight-item{align-items:center;background-color:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);display:flex;font-size:.88em;gap:10px;padding:10px 14px;transition:all var(--duration) var(--ease)}.highlight-item:hover{border-color:var(--accent);color:var(--text-primary)}.highlight-icon{color:var(--accent);flex-shrink:0;font-size:1.1em}.project-features{margin-bottom:24px}.project-features h4{color:var(--text-primary);font-family:var(--font-display);font-size:1.05em;font-weight:600;margin-bottom:12px}.project-features ul{list-style:none;margin:0;padding:0}.project-features li{color:var(--text-secondary);font-size:.92em;line-height:1.7;margin-bottom:8px;padding-left:20px;position:relative}.project-features li:before{background-color:var(--accent);border-radius:50%;content:"";height:5px;left:4px;position:absolute;top:10px;width:5px}.project-tech{margin-bottom:24px}.project-tech h4{color:var(--text-primary);font-family:var(--font-display);font-size:1.05em;font-weight:600;margin-bottom:12px}.tech-tags{display:flex;flex-wrap:wrap;gap:8px}.tech-tag{background-color:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);display:inline-block;font-family:var(--font-mono);font-size:.82em;font-weight:500;padding:5px 12px;transition:all var(--duration) var(--ease)}.tech-tag:hover{border-color:var(--accent);color:var(--accent)}.project-links{display:flex;flex-wrap:wrap;gap:12px}.project-link{align-items:center;border:1px solid #0000;border-radius:6px;display:inline-flex;font-family:var(--font-mono);font-size:.85em;font-weight:600;gap:8px;padding:10px 22px;text-decoration:none;transition:all var(--duration) var(--ease)}.live-link{background-color:var(--accent);border-color:var(--accent);color:var(--bg-primary)}.live-link:hover{background-color:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px)}.github-link{background-color:initial;border-color:var(--border);color:var(--text-secondary)}.github-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}@media print{.project-card{box-shadow:none!important;page-break-inside:avoid}.project-card,.project-link{border:1px solid #ddd!important}.project-link{color:#06c!important}}@media (max-width:768px){.projects{padding:48px 0}.projects .section-title{margin-bottom:28px}.project-card{padding:24px}.project-name{font-size:1.3em}.project-tagline{font-size:.85em}.project-description{font-size:.95em}.project-highlights{grid-template-columns:1fr}.project-links{flex-direction:column}.project-link{justify-content:center;width:100%}}.education{background-color:initial;color:var(--text-primary);counter-increment:section-counter;margin-bottom:0;padding:72px 0;scroll-margin:120px}.education .container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding)}.education .section-title{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:.85em;font-weight:500;letter-spacing:.12em;margin-bottom:40px;padding-bottom:12px;text-transform:uppercase}.education .section-title:before{color:var(--accent);content:counter(section-counter,decimal-leading-zero) " / ";font-family:var(--font-mono)}.education-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.education-card{background-color:var(--bg-surface);border-left:3px solid var(--accent);border-radius:6px;display:flex;gap:20px;overflow:hidden;padding:24px;position:relative;transition:all var(--duration) var(--ease)}.education-card.in-progress{border-left-color:var(--warning)}.education-card:before{background:linear-gradient(90deg,var(--accent-subtle) 0,#0000 100%);content:"";height:100%;left:0;position:absolute;top:0;transition:width var(--duration) var(--ease);width:0;z-index:0}.education-card.in-progress:before{background:linear-gradient(90deg,#e2b3400f,#0000)}.education-card:hover:before{width:100%}.education-card:hover,.education-icon{background-color:var(--bg-elevated)}.education-icon{align-items:center;border:1px solid var(--border);border-radius:8px;color:var(--accent);display:flex;flex-shrink:0;font-size:1.6em;height:56px;justify-content:center;transition:all var(--duration) var(--ease);width:56px;z-index:1}.education-card.in-progress .education-icon{border-color:#e2b3404d;color:var(--warning)}.education-card:hover .education-icon{transform:scale(1.05)}.education-content{flex:1 1;z-index:1}.education-degree{color:var(--text-primary);font-family:var(--font-display);font-size:1.3em;font-weight:600;line-height:1.3;margin:0 0 8px}.education-institution{font-size:1em;margin-bottom:6px}.institution-name{color:var(--text-primary);font-weight:600}.education-period,.institution-location{color:var(--text-muted)}.education-period{align-items:center;display:flex;font-family:var(--font-mono);font-size:.85em;font-weight:500;gap:10px;margin:0 0 12px}.status-badge{background-color:#e2b3401f;border:1px solid #e2b3404d;border-radius:4px;color:var(--warning);display:inline-block;font-family:var(--font-mono);font-size:.8em;font-weight:600;padding:3px 10px}.education-description{color:var(--text-secondary);font-size:.95em;line-height:1.7;margin:0}@media (max-width:768px){.education{padding:48px 0}.education .section-title{margin-bottom:28px}.education-grid{gap:16px;grid-template-columns:1fr}.education-card{align-items:center;flex-direction:column;padding:20px;text-align:center}.education-icon{font-size:1.4em;height:48px;width:48px}.education-degree{font-size:1.15em}.education-institution{font-size:.95em}.education-period{flex-direction:column;font-size:.8em;gap:4px}.education-description{font-size:.9em}}.languages{background-color:initial;counter-increment:section-counter;padding:72px 0}.languages .container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding)}.languages .section-title{align-items:center;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);display:flex;font-family:var(--font-mono);font-size:.85em;font-weight:500;gap:12px;letter-spacing:.12em;margin-bottom:40px;padding-bottom:12px;text-transform:uppercase}.languages .section-title:before{color:var(--accent);content:counter(section-counter,decimal-leading-zero) " / ";font-family:var(--font-mono)}.languages .title-icon{color:var(--accent);font-size:1.2em}.languages-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:0 auto;max-width:700px}.language-card{background-color:var(--bg-surface);border-left:3px solid var(--accent);border-radius:6px;padding:24px;transition:all var(--duration) var(--ease)}.language-card:hover{background-color:var(--bg-elevated)}.language-card h3{color:var(--text-primary);font-family:var(--font-display);font-size:1.4em;font-weight:600;margin-bottom:6px}.proficiency-level{color:var(--text-muted);font-family:var(--font-mono);font-size:.85em;margin-bottom:0}@media (max-width:768px){.languages{padding:48px 0}.languages .section-title{margin-bottom:28px}.languages-grid{gap:14px;grid-template-columns:1fr}.language-card{padding:20px}.language-card h3{font-size:1.2em}}.footer{background-color:var(--bg-surface);border-top:1px solid var(--border);color:var(--text-primary);margin-top:40px;padding:40px 0}.footer-container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding);text-align:left}.footer-content{margin-bottom:16px}.footer-text{align-items:center;color:var(--text-secondary);display:flex;font-size:.95em;gap:8px;margin:0 0 8px}.code-icon,.heart-icon{color:var(--accent)}.footer-copyright{color:var(--text-muted);font-family:var(--font-mono);font-size:.8em;margin:0}.footer-message{border-top:1px solid var(--border-subtle);padding-top:16px}.footer-message p{color:var(--accent);font-family:var(--font-mono);font-size:.85em;font-weight:500;margin:0}@media (max-width:768px){.footer{padding:28px 0}.footer-text{flex-wrap:wrap;font-size:.9em}.footer-message p{font-size:.8em}}.certificates{background-color:initial;color:var(--text-primary);counter-increment:section-counter;margin-bottom:0;padding:72px 0;scroll-margin:120px}.certificates .container{margin:0 auto;max-width:var(--container);padding:0 var(--container-padding)}.certificates .section-title{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:.85em;font-weight:500;letter-spacing:.12em;margin-bottom:40px;padding-bottom:12px;text-transform:uppercase}.certificates .section-title:before{color:var(--accent);content:counter(section-counter,decimal-leading-zero) " / ";font-family:var(--font-mono)}.certificate-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.certificate-card{align-items:center;background-color:var(--bg-surface);border-left:3px solid #0000;border-radius:6px;display:flex;gap:14px;overflow:hidden;padding:18px;position:relative;text-decoration:none;transition:all var(--duration) var(--ease)}.certificate-card:before{background:linear-gradient(90deg,var(--accent-subtle) 0,#0000 100%);content:"";height:100%;left:0;position:absolute;top:0;transition:width var(--duration) var(--ease);width:0;z-index:0}.certificate-card:hover:before{width:100%}.certificate-card:hover{background-color:var(--bg-elevated);border-left-color:var(--accent)}.certificate-card.highlight{border-left-color:var(--warning)}.certificate-card.highlight .certificate-icon{color:var(--warning)}.certificate-icon{color:var(--accent);flex-shrink:0;font-size:2em;opacity:.7;transition:all var(--duration) var(--ease);z-index:1}.certificate-card:hover .certificate-icon{opacity:1}.certificate-content{flex:1 1;z-index:1}.certificate-title{color:var(--text-primary);font-family:var(--font-display);font-size:1.05em;font-weight:600;line-height:1.3;margin:0 0 6px}.certificate-organization{color:var(--text-secondary);font-size:.9em;font-weight:500;margin:0 0 4px}.certificate-date{color:var(--text-muted);font-family:var(--font-mono);font-size:.8em;margin:0}.certificate-link-icon{color:var(--accent);flex-shrink:0;font-size:1em;opacity:0;transition:all var(--duration) var(--ease);z-index:1}.certificate-card:hover .certificate-link-icon{opacity:.8;transform:translate(2px,-2px)}@media (max-width:768px){.certificates{padding:48px 0}.certificates .section-title{margin-bottom:28px}.certificate-grid{gap:12px;grid-template-columns:1fr}.certificate-card{gap:12px;padding:14px}.certificate-icon{font-size:1.6em}.certificate-title{font-size:.95em}.certificate-organization{font-size:.85em}.certificate-date{font-size:.75em}}.scroll-to-top{align-items:center;animation:fadeIn .3s ease-in-out;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;bottom:28px;color:var(--accent);cursor:pointer;display:flex;font-size:18px;height:44px;justify-content:center;position:fixed;right:28px;transition:all var(--duration) var(--ease);width:44px;z-index:999}.scroll-to-top:hover{background-color:var(--accent);border-color:var(--accent);color:var(--bg-primary)}.scroll-to-top:active{transform:translateY(-1px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.scroll-to-top{bottom:18px;font-size:16px;height:40px;right:18px;width:40px}}.skip-link{background-color:#38bdf8;background-color:var(--accent,#38bdf8);border-radius:0 0 4px 0;color:#0c1120;color:var(--bg-primary,#0c1120);font-family:JetBrains Mono,monospace;font-family:var(--font-mono,"JetBrains Mono",monospace);font-size:.85em;font-weight:600;left:0;padding:8px 16px;position:absolute;text-decoration:none;top:-40px;transition:top .3s ease;z-index:1000}.skip-link:focus{outline:3px solid #f1f5f9;outline:3px solid var(--text-primary,#f1f5f9);outline-offset:2px;top:0}@media (max-width:768px){.skip-link{font-size:.8em;padding:6px 12px}}.App{background-color:var(--bg-primary);min-height:100vh;position:relative}.App:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;bottom:0;content:"";left:0;opacity:.025;pointer-events:none;position:fixed;right:0;top:0;z-index:9999}main{counter-reset:section-counter}html{scroll-behavior:smooth}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-hover)}
/*# sourceMappingURL=main.3b873f9b.css.map*/