:root{--bg: #f5f5f7;--bg-alt: #fbfbfd;--surface: rgba(255, 255, 255, .72);--surface-2: rgba(249, 249, 249, .72);--glass: rgba(255, 255, 255, .78);--glass-dark: rgba(28, 28, 30, .82);--blue: #0071e3;--blue-hover: #0077ed;--blue-tint: #f0f6ff;--blue-mid: rgba(0, 113, 227, .12);--purple: #af52de;--green: #34c759;--orange: #ff9500;--t1: #1d1d1f;--t2: #3d3d3f;--t3: #6e6e73;--t4: #aeaeb2;--line: rgba(0, 0, 0, .07);--line-md: rgba(0, 0, 0, .11);--s0: 0 1px 2px rgba(0,0,0,.03);--s1: 0 2px 8px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--s2: 0 8px 24px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.04);--s3: 0 20px 48px rgba(0,0,0,.1), 0 6px 16px rgba(0,0,0,.05);--s4: 0 36px 72px rgba(0,0,0,.13), 0 12px 24px rgba(0,0,0,.07);--r-xl: 20px;--r: 16px;--r-sm: 10px;--r-xs: 6px;--ease: cubic-bezier(.25, .46, .45, .94);--spring: cubic-bezier(.34, 1.56, .64, 1);--t: .22s;--section-offset: 7rem 0}[data-theme=dark]{--bg: #0d0d0f;--bg-alt: #050505;--surface: rgba(28, 28, 30, .48);--surface-2: rgba(44, 44, 46, .48);--glass: rgba(20, 20, 25, .75);--glass-dark: rgba(10, 10, 12, .85);--blue: #0a84ff;--blue-hover: #409cff;--blue-tint: rgba(10, 132, 255, .1);--blue-mid: rgba(10, 132, 255, .18);--purple: #bf5af2;--green: #30d158;--orange: #ff9f0a;--t1: #f5f5f7;--t2: #d1d1d6;--t3: #a1a1a6;--t4: #636366;--line: rgba(255, 255, 255, .09);--line-md: rgba(255, 255, 255, .16);--s0: 0 1px 2px rgba(0,0,0,.3);--s1: 0 2px 8px rgba(0,0,0,.45), 0 1px 2px rgba(0,0,0,.3);--s2: 0 8px 24px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.3);--s3: 0 20px 48px rgba(0,0,0,.65), 0 6px 16px rgba(0,0,0,.45);--s4: 0 36px 72px rgba(0,0,0,.75), 0 12px 24px rgba(0,0,0,.55)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;background-color:var(--bg);color:var(--t1);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:var(--t1);line-height:1.1;font-weight:700;letter-spacing:-.025em}h1{font-size:clamp(2.8rem,6vw,4.5rem);font-weight:800;margin-bottom:1.25rem}h2{font-size:clamp(2rem,4vw,2.8rem);font-weight:700;margin-bottom:1.5rem}h3{font-size:1.2rem;font-weight:600;margin-bottom:.6rem}p{color:var(--t3);line-height:1.75;margin-bottom:1rem;font-size:1rem}a{text-decoration:none;color:inherit;transition:color var(--t) var(--ease)}ul{list-style:none}.container{max-width:1160px;margin:0 auto;padding:0 2rem}.section-offset{padding:var(--section-offset)}main{width:100%;min-height:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem 1.6rem;border-radius:980px;font-weight:500;font-size:.95rem;font-family:inherit;letter-spacing:-.01em;transition:all var(--t) var(--ease);cursor:pointer;border:none;white-space:nowrap}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 2px 12px #0071e34d}.btn-primary:hover{background:var(--blue-hover);box-shadow:0 4px 20px #0071e366;transform:translateY(-1px)}.btn-primary:active{transform:scale(.98)}.btn-outline{background:#0071e312;color:var(--blue);border:1px solid rgba(0,113,227,.22)}.btn-outline:hover{background:#0071e31f;border-color:#0071e366;transform:translateY(-1px)}.section-title{font-size:clamp(1.8rem,3vw,2.2rem);font-weight:700;margin-bottom:3rem;text-align:center;color:var(--t1);letter-spacing:-.03em;position:relative}.section-title:after{content:"";display:block;width:32px;height:3px;background:var(--blue);border-radius:2px;margin:.65rem auto 0;opacity:.7}.section-label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--blue);margin-bottom:.6rem;text-align:center}.section-title-dark{color:#fff}.section-title-dark:after{background:#fff9}header{position:fixed;top:0;width:100%;z-index:1000;padding:.85rem 0;background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line);transition:background var(--t) var(--ease)}nav{display:flex;justify-content:space-between;align-items:center}.logo{font-family:JetBrains Mono,monospace;font-weight:600;font-size:1.2rem;color:var(--t1);letter-spacing:-.03em;display:flex;align-items:center;gap:0}.logo span{color:var(--blue)}.nav-links{display:flex;align-items:center;gap:.25rem;list-style:none}.nav-links a{font-size:.875rem;font-weight:500;color:var(--t3);padding:.45rem .9rem;border-radius:980px;transition:all var(--t) var(--ease);letter-spacing:-.01em}.nav-links a:hover{color:var(--t1);background:#0000000d}.nav-links .btn.btn-primary{font-size:.85rem;padding:.5rem 1.2rem;color:#fff!important;margin-left:.5rem}.hero{padding:8rem 0 5rem;min-height:100vh;display:flex;align-items:center;background:var(--bg-alt);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:900px;height:900px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,113,227,.07) 0%,transparent 65%);top:-200px;right:-200px;pointer-events:none}.hero:after{content:"";position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(ellipse,rgba(175,82,222,.04) 0%,transparent 60%);bottom:-100px;left:-100px;pointer-events:none}.hero-content{display:grid;grid-template-columns:1.1fr .9fr;gap:5rem;align-items:center;position:relative;z-index:1}.hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;letter-spacing:.01em;color:var(--t2);background:var(--surface);border:1px solid var(--line-md);border-radius:980px;padding:.4rem 1rem;margin-bottom:1.75rem;box-shadow:var(--s1)}.hero-eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;box-shadow:0 0 0 2px #34c75940;animation:blink 2.5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.hero-text h1{font-size:clamp(3rem,6.5vw,4.8rem);font-weight:800;letter-spacing:-.04em;line-height:1.05;margin-bottom:1.5rem;color:var(--t1)}.hero-text .highlight{color:var(--blue);position:relative}.hero-text p{font-size:1.15rem;color:var(--t3);max-width:460px;line-height:1.7;font-weight:400}.hero-image{position:relative}.hero-image img{width:100%;border-radius:var(--r-xl);box-shadow:var(--s4);border:1px solid var(--line);display:block;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}.hero-image:hover img{transform:scale(1.02);box-shadow:0 48px 80px #00000029,0 16px 32px #00000014}.code-block{position:absolute;bottom:-28px;left:-32px;width:310px;background:#1c1c1e;color:#d1d1d6;font-family:JetBrains Mono,monospace;font-size:.8rem;line-height:1.6;padding:0 0 1rem;border-radius:var(--r);box-shadow:var(--s4);z-index:10;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.code-block:before{content:"";display:block;height:36px;background:#2c2c2e;background-image:radial-gradient(circle 5px at 18px 18px,#ff5f57 0% 100%),radial-gradient(circle 5px at 38px 18px,#ffbd2e 0% 100%),radial-gradient(circle 5px at 58px 18px,#28ca40 0% 100%);background-repeat:no-repeat;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:1rem}.code-block .code-line{display:block;padding:0 1.25rem;margin-bottom:.2rem;line-height:1.7}.c-purple{color:#cf9fff}.c-blue{color:#79c0ff}.c-green{color:#7ee787}.c-gray{color:#8b949e}.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}.about{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:5rem;align-items:start}.about-text p{font-size:1.05rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem}.about-text strong{color:var(--t1);font-weight:600}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.75rem 1.5rem;text-align:center;transition:transform var(--t) var(--spring),box-shadow var(--t) var(--ease);position:relative;overflow:hidden;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--purple));opacity:0;transition:opacity var(--t) var(--ease)}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--s3)}.stat-card:hover:before{opacity:1}.stat-number{font-size:2.6rem;font-weight:800;letter-spacing:-.04em;color:var(--blue);display:block;line-height:1;margin-bottom:.5rem}.stat-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--t4);display:block}.skills{background:var(--bg)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.25rem}.skill-category{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.75rem;box-shadow:var(--s0);transition:transform var(--t) var(--spring),box-shadow var(--t) var(--ease);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.skill-category:hover{transform:translateY(-4px);box-shadow:var(--s2)}.skill-category h3{font-size:.93rem;font-weight:600;color:var(--t1);letter-spacing:-.01em;margin-bottom:1.1rem;display:flex;align-items:center;gap:.65rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.4rem}.skill-tag{background:var(--blue-tint);color:var(--blue);border:1px solid rgba(0,113,227,.15);padding:.28rem .75rem;border-radius:980px;font-size:.78rem;font-weight:500;transition:background var(--t) var(--ease)}.skill-tag:hover{background:#0071e326}.experience{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.timeline{position:relative;max-width:740px;margin:0 auto}.timeline:before{content:"";position:absolute;left:0;top:8px;height:calc(100% - 8px);width:1px;background:linear-gradient(to bottom,var(--blue) 0%,rgba(0,113,227,.08) 100%)}.timeline-item{position:relative;padding-left:2.25rem;padding-bottom:3rem}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-5px;top:6px;width:11px;height:11px;background:var(--surface);border:2px solid var(--blue);border-radius:50%;box-shadow:0 0 0 3px #0071e321;transition:transform var(--t) var(--spring),box-shadow var(--t) var(--ease)}.timeline-item:hover .timeline-dot{transform:scale(1.4);box-shadow:0 0 0 5px #0071e326}.timeline-date{font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--t4);margin-bottom:.35rem;font-family:JetBrains Mono,monospace;text-transform:uppercase}.timeline-title{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--t1);margin-bottom:.25rem}.timeline-company{display:block;font-size:.875rem;font-weight:500;color:var(--blue);margin-bottom:.75rem}.timeline-desc{font-size:.93rem;color:var(--t3);line-height:1.8}.projects{background:var(--bg)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.project-card{background:var(--surface);border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);box-shadow:var(--s1);transition:transform var(--t) var(--spring),box-shadow var(--t) var(--ease);display:flex;flex-direction:column;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.project-card:hover{transform:translateY(-6px);box-shadow:var(--s3)}.project-content{padding:1.5rem;flex:1;display:flex;flex-direction:column}.project-title{font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--t1);margin-bottom:.5rem}.project-desc{font-size:.875rem;color:var(--t3);line-height:1.75;margin-bottom:1.1rem;flex:1}.project-tech{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1.1rem}.project-tech span{font-size:.72rem;font-family:JetBrains Mono,monospace;font-weight:500;background:var(--bg-alt);color:var(--t3);border:1px solid var(--line);padding:.2rem .55rem;border-radius:var(--r-xs)}.project-links{display:flex;flex-wrap:wrap;gap:.75rem;padding-top:.9rem;border-top:1px solid var(--line)}.link-text{font-size:.8rem;font-weight:600;color:var(--blue);display:inline-flex;align-items:center;gap:.3rem}.contact{background:linear-gradient(170deg,#f0f4ff,#fbfbfd 55%,#f5f0ff);text-align:center;border-top:1px solid var(--line)}.contact h2,.contact .section-title-dark{color:var(--t1)!important}.contact .section-title-dark:after{background:var(--blue);opacity:.7}.contact p{color:var(--t3);max-width:560px;margin:0 auto}.contact-form{max-width:460px;margin:0 auto;text-align:left}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.4rem;font-size:.85rem;font-weight:500;color:var(--t2)}.form-control{width:100%;padding:.7rem 1rem;background:var(--surface);border:1px solid var(--line-md);border-radius:var(--r-sm);color:var(--t1);font-family:inherit;font-size:.95rem;transition:all var(--t) var(--ease);box-shadow:var(--s0);outline:none}.form-control::placeholder{color:var(--t4)}.form-control:focus{border-color:var(--blue);box-shadow:0 0 0 4px #0071e31f,var(--s0)}footer{background:var(--surface);border-top:1px solid var(--line);padding:2.25rem 0;text-align:center;font-size:.85rem}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease),transform .6s var(--ease)}.fade-in.visible{opacity:1;transform:translateY(0)}::selection{background:#0071e326;color:var(--t1)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#00000040}@media(max-width:768px){:root{--section-offset: 5rem 0}.container{padding:0 1.5rem}.hero-content{grid-template-columns:1fr;text-align:center;gap:3rem}.hero-text h1{font-size:2.8rem}.hero-text p{margin:0 auto;max-width:100%}.hero-eyebrow{margin:0 auto 1.5rem}.hero-actions{justify-content:center}.hero-image,.code-block{display:none}.about-grid{grid-template-columns:1fr;gap:2.5rem}.stats-grid{grid-template-columns:1fr 1fr}.skills-grid{grid-template-columns:1fr}.nav-links{display:none}.mobile-menu-btn{display:block}.nav-links.is-open{display:flex}}@media(max-width:480px){.container{padding:0 1rem}.hero{padding:6.5rem 0 3rem}.stats-grid{grid-template-columns:1fr 1fr;gap:.75rem}.section-offset{padding:4rem 0}.project-card{border-radius:var(--r)}}[data-theme=dark] body{background-color:var(--bg);color:var(--t1)}[data-theme=dark] .contact{background:linear-gradient(170deg,#16161a,#0d0d0f 55%,#121017)}[data-theme=dark] .hero:before{background:radial-gradient(ellipse,rgba(10,132,255,.12) 0%,transparent 65%)}[data-theme=dark] .hero:after{background:radial-gradient(ellipse,rgba(191,90,242,.08) 0%,transparent 60%)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#fff3}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff59}[data-theme=dark] ::selection{background:#0a84ff40;color:var(--t1)}[data-theme=dark] .nav-links a:hover{background:#ffffff14}
