:root{--bg-primary: #0a192f;--bg-secondary: #112240;--bg-card: #112240;--bg-card-hover: #1d3461;--text-primary: #ccd6f6;--text-secondary: #8892b0;--text-heading: #e6f1ff;--accent: #64ffda;--accent-muted: rgba(100, 255, 218, .1);--border: rgba(100, 255, 218, .15);--shadow: 0 10px 30px -15px rgba(2, 12, 27, .7);--nav-bg: rgba(10, 25, 47, .85);--tag-bg: rgba(100, 255, 218, .1);--tag-text: #64ffda;--scrollbar-thumb: #233554}[data-theme=light]{--bg-primary: #f8f9fc;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-card-hover: #f0f2f7;--text-primary: #334155;--text-secondary: #64748b;--text-heading: #0f172a;--accent: #0ea5e9;--accent-muted: rgba(14, 165, 233, .08);--border: rgba(14, 165, 233, .2);--shadow: 0 10px 30px -15px rgba(0, 0, 0, .1);--nav-bg: rgba(248, 249, 252, .85);--tag-bg: rgba(14, 165, 233, .08);--tag-text: #0284c7;--scrollbar-thumb: #cbd5e1}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--bg-primary)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.7;transition:background-color .3s ease,color .3s ease;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;transition:opacity .2s}a:hover{opacity:.8}::selection{background-color:var(--accent-muted);color:var(--accent)}.app{max-width:1100px;margin:0 auto;padding:0 25px}section{padding:100px 0}.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--nav-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);transition:background .3s ease}.nav-inner{max-width:1100px;margin:0 auto;padding:0 25px;height:70px;display:flex;align-items:center;justify-content:space-between}.nav-logo{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600;color:var(--accent)}.nav-links{display:flex;align-items:center;gap:32px;list-style:none}.nav-links a{font-family:JetBrains Mono,monospace;font-size:.82rem;color:var(--text-secondary);transition:color .2s;letter-spacing:.5px}.nav-links a:hover{color:var(--accent);opacity:1}.nav-links .nav-num{color:var(--accent);margin-right:4px;font-size:.75rem}.theme-toggle{background:none;border:1px solid var(--border);border-radius:8px;padding:8px 10px;cursor:pointer;color:var(--accent);font-size:1.1rem;display:flex;align-items:center;transition:all .2s}.theme-toggle:hover{background:var(--accent-muted)}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:70px}.hero-greeting{font-family:JetBrains Mono,monospace;color:var(--accent);font-size:1rem;margin-bottom:20px;letter-spacing:1px}.hero-name{font-size:clamp(40px,8vw,72px);font-weight:700;color:var(--text-heading);line-height:1.1;margin-bottom:8px}.hero-subtitle{font-size:clamp(28px,5vw,52px);font-weight:600;color:var(--text-secondary);line-height:1.1;margin-bottom:24px}.hero-description{max-width:780px;font-size:1.05rem;color:var(--text-secondary);line-height:1.8;margin-bottom:40px;white-space:pre-line}.hero-links{display:flex;gap:16px}.hero-link{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:1px solid var(--accent);border-radius:6px;font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--accent);transition:all .2s}.hero-link:hover{background:var(--accent-muted);opacity:1}.hero-link.filled{background:var(--accent);color:var(--bg-primary)}.hero-link.filled:hover{opacity:.9}.section-header{display:flex;align-items:center;gap:12px;margin-bottom:40px}.section-number{font-family:JetBrains Mono,monospace;color:var(--accent);font-size:1.1rem}.section-title{font-size:1.6rem;font-weight:700;color:var(--text-heading);white-space:nowrap}.section-line{flex:1;height:1px;background:var(--border);max-width:300px}.about-content{max-width:780px;color:var(--text-secondary);font-size:1rem;line-height:1.9}.about-content p{margin-bottom:16px}.experience-list{display:flex;flex-direction:column;gap:0}.experience-item{display:grid;grid-template-columns:160px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--border);transition:background .2s}.experience-item:last-child{border-bottom:none}.experience-period{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-secondary);padding-top:4px;white-space:nowrap}.experience-company{font-size:1.1rem;font-weight:600;color:var(--text-heading);margin-bottom:2px}.experience-role{font-size:.9rem;color:var(--accent);margin-bottom:10px}.experience-desc{font-size:.92rem;color:var(--text-secondary);line-height:1.7;margin-bottom:12px}.experience-tags{display:flex;flex-wrap:wrap;gap:6px}.project-filter{display:flex;gap:12px;margin-bottom:32px}.filter-btn{font-family:JetBrains Mono,monospace;font-size:.8rem;padding:8px 16px;border:1px solid var(--border);border-radius:20px;background:none;color:var(--text-secondary);cursor:pointer;transition:all .2s}.filter-btn:hover,.filter-btn.active{color:var(--accent);border-color:var(--accent);background:var(--accent-muted)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;align-items:stretch}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:28px;transition:all .3s ease;display:flex;flex-direction:column;min-height:320px}.project-card:hover{transform:translateY(-5px);background:var(--bg-card-hover);box-shadow:var(--shadow)}.project-category-badge{font-family:JetBrains Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:12px}.project-title{font-size:1.15rem;font-weight:600;color:var(--text-heading);margin-bottom:12px}.project-desc{font-size:.88rem;color:var(--text-secondary);line-height:1.7;margin-bottom:8px;flex:1}.project-detail{font-size:.82rem;color:var(--text-secondary);line-height:1.6;margin-bottom:16px;padding:12px;background:var(--accent-muted);border-radius:6px;border-left:3px solid var(--accent)}.project-detail strong{color:var(--text-primary)}.project-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:auto}.project-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-family:JetBrains Mono,monospace;font-size:.72rem;padding:4px 10px;border-radius:12px;background:var(--tag-bg);color:var(--tag-text)}.project-links{display:flex;gap:10px}.project-links a{color:var(--text-secondary);font-size:1.1rem;transition:color .2s}.project-links a:hover{color:var(--accent);opacity:1}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}.skill-group{padding:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;transition:all .2s}.skill-group:hover{border-color:var(--accent)}.skill-group-title{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--accent);margin-bottom:16px;letter-spacing:.5px}.skill-group-items{display:flex;flex-direction:column;gap:8px}.skill-group-items span{font-size:.88rem;color:var(--text-secondary)}.contact-section{text-align:center;padding:100px 0 150px}.contact-title{font-size:2rem;font-weight:700;color:var(--text-heading);margin-bottom:16px}.contact-desc{max-width:480px;margin:0 auto 40px;color:var(--text-secondary);font-size:1rem;line-height:1.7}.contact-link{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border:1px solid var(--accent);border-radius:6px;font-family:JetBrains Mono,monospace;font-size:.9rem;color:var(--accent);transition:all .2s}.contact-link:hover{background:var(--accent-muted);opacity:1}.footer{text-align:center;padding:24px 0;border-top:1px solid var(--border)}.footer p{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text-secondary)}.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:768px){section{padding:60px 0}.nav-links{display:none}.experience-item{grid-template-columns:1fr;gap:4px}.projects-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:repeat(2,1fr)}.hero-links{flex-direction:column}}@media(max-width:480px){.app{padding:0 16px}.skills-grid{grid-template-columns:1fr}}
