*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #ffffff;--bg2: #f8f8f6;--text: #1a1a1a;--muted: #555555;--border: #e5e5e3;--accent: #1a1a1a;--focus-ring: #0066cc}[data-theme=dark]{--bg: #1a1a1a;--bg2: #2a2a2a;--text: #ffffff;--muted: #cccccc;--border: #404040;--accent: #ffffff;--focus-ring: #4a9eff}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:var(--text);color:#fff;padding:.75rem 1.5rem;border-radius:0 0 6px 6px;font-size:14px;font-weight:500;z-index:200;transition:top .2s}.skip-link:focus{top:0;outline:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}:focus:not(:focus-visible){outline:none}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;font-size:16px}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}.nav{position:fixed;top:0;left:0;right:0;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:.5px solid var(--border);z-index:100;padding:0 1.5rem}[data-theme=dark] .nav{background:#1a1a1aeb}.nav-inner{max-width:760px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:56px}.nav-controls{display:flex;align-items:center;gap:1rem}.theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:none;color:var(--text);cursor:pointer;border-radius:6px;transition:background .2s ease,color .2s ease}.theme-toggle:hover,.theme-toggle:active{background:var(--bg2)}.theme-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.nav-name{font-size:15px;font-weight:500;text-decoration:none}.nav-name:hover{color:var(--muted)}.nav-name:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:2px}.nav-links{display:flex;gap:2rem;list-style:none;margin:0;padding:0}.nav-links li{margin:0;padding:0}.nav-links a{font-size:14px;color:var(--muted);transition:color .2s;padding:.5rem 0;display:block;position:relative}.nav-links a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--text);transition:width .3s ease}.nav-links a:hover:after,.nav-links a:focus:after,.nav-links a:active:after{width:100%}.nav-links a:hover{color:var(--text)}.nav-links a:focus-visible{color:var(--text);outline:2px solid var(--focus-ring);outline-offset:2px}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;min-width:44px;min-height:44px;align-items:center;justify-content:center;border-radius:6px}.nav-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.nav-toggle span{display:block;width:20px;height:2px;background:var(--text);position:relative;transition:background .2s}.nav-toggle span:before,.nav-toggle span:after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--text);transition:transform .2s}.nav-toggle span:before{top:-6px}.nav-toggle span:after{top:6px}.nav-toggle[aria-expanded=true] span{background:transparent}.nav-toggle[aria-expanded=true] span:before{transform:rotate(45deg) translate(4px,4px)}.nav-toggle[aria-expanded=true] span:after{transform:rotate(-45deg) translate(4px,-4px)}.main{max-width:760px;margin:0 auto;padding:0 1.5rem}.section{padding:72px 0;border-bottom:.5px solid var(--border)}.section-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2.5rem}.hero{padding:100px 0 80px;border-bottom:.5px solid var(--border)}.hero-header{display:flex;align-items:center;gap:2rem;margin-bottom:2rem;flex-wrap:wrap}.hero-photo{width:140px;height:140px;border-radius:50%;object-fit:cover;border:.5px solid var(--border);opacity:0;transition:opacity .3s ease}.hero-photo.loaded{opacity:1}.hero-photo-fallback{display:flex;align-items:center;justify-content:center;background:var(--bg2);color:var(--muted);font-size:3rem;font-weight:500;opacity:1}.eyebrow{font-size:13px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.2rem}.hero h1{font-size:clamp(2rem,5vw,3.2rem);font-weight:500;line-height:1.15;letter-spacing:-.02em}.tagline{font-size:1.05rem;color:var(--muted);max-width:520px;margin-bottom:2rem}.hero-links{display:flex;gap:1rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 20px;border:.5px solid var(--border);border-radius:6px;font-size:14px;color:var(--text);background:transparent;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:pointer;min-height:44px;text-decoration:none}.btn:hover,.btn:active{transform:scale(1.02);box-shadow:0 4px 12px #00000026;border-color:var(--text)}.hero-links a:nth-child(2):hover,.hero-links a:nth-child(2):active{background:#0077b5;color:#fff;border-color:#0077b5}.hero-links a:nth-child(3):hover,.hero-links a:nth-child(3):active{background:#6f42c1;color:#fff;border-color:#6f42c1}.hero-links a:nth-child(4):hover,.hero-links a:nth-child(4):active{background:#ea4335;color:#fff;border-color:#ea4335}.btn:focus-visible{background:var(--bg2);border-color:var(--focus-ring);outline:2px solid var(--focus-ring);outline-offset:2px}.btn-primary{background:var(--text);color:#fff;border-color:var(--text);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}[data-theme=dark] .btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.btn-primary:hover,.btn-primary:active{background:#333;border-color:#333;transform:scale(1.02);box-shadow:0 4px 12px #0000004d}[data-theme=dark] .btn-primary:hover,[data-theme=dark] .btn-primary:active{background:#1d4ed8;border-color:#1d4ed8;box-shadow:0 4px 12px #00000080}.btn-primary:focus-visible{background:#333;border-color:#333;outline:2px solid var(--focus-ring);outline-offset:2px}[data-theme=dark] .btn-primary:focus-visible{background:#1d4ed8;border-color:#1d4ed8}.contact-links a:nth-child(2):hover,.contact-links a:nth-child(2):active{background:#0077b5;color:#fff;border-color:#0077b5}.contact-links a:nth-child(3):hover{background:#6f42c1;color:#fff;border-color:#6f42c1}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.about-text p{color:var(--muted);font-size:15px;margin-bottom:1rem}.about-text p:last-child{margin-bottom:0}.stats{display:flex;flex-direction:column;gap:1.5rem;border-left:.5px solid var(--border);padding-left:2rem}.stat-val{font-size:2rem;font-weight:500;letter-spacing:-.02em}.stat-label{font-size:13px;color:var(--muted)}.skills-section{margin-top:3rem}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none}.tag{font-size:12px;padding:4px 10px;border:.5px solid var(--border);border-radius:20px;color:var(--muted);display:inline-flex;align-items:center;gap:.35rem}.tag-icon{font-size:.85em;flex-shrink:0}.btn-icon{font-size:1em;flex-shrink:0;margin-right:.4rem}.skill-group h3{font-size:13px;font-weight:500;margin-bottom:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.work-list{display:flex;flex-direction:column;gap:1.5rem}.work-card{border:.5px solid var(--border);border-radius:10px;padding:1.5rem;transition:border-color .2s}.work-card:hover{border-color:#bbb}.work-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.work-title{font-size:16px;font-weight:500;margin:0}.work-period{font-size:13px;color:var(--muted)}.work-company{font-size:14px;color:var(--muted);margin-bottom:.8rem}.work-desc{font-size:14px;color:var(--muted);line-height:1.65}.work-bullets{margin:.8rem 0 0;padding-left:1.2rem}.work-bullets li{font-size:13px;color:var(--muted);margin-bottom:.35rem;line-height:1.55}.work-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem;list-style:none;padding:0}.contact-inner{max-width:480px}.contact-inner>p{color:var(--muted);font-size:15px;margin-bottom:2rem}.contact-links{display:flex;gap:1rem;flex-wrap:wrap}.contact-location{margin-top:1.2rem;font-size:13px;color:var(--muted)}.footer{padding:2rem 0;text-align:center;font-size:13px;color:var(--muted)}.footer-content{max-width:760px;margin:0 auto;padding:0 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-links{display:flex;gap:1rem}.footer-link{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--bg2);color:var(--muted);transition:background .2s ease,color .2s ease,transform .2s ease;text-decoration:none}.footer-links a:nth-child(1){background:#0077b5;color:#fff}.footer-links a:nth-child(2){background:#6f42c1;color:#fff}.footer-links a:nth-child(3){background:#ea4335;color:#fff}.footer-link:hover,.footer-link:active{transform:scale(1.1)}.footer-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.error-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.error-page h1{font-size:2rem;font-weight:500;margin-bottom:1rem}.error-page p{color:var(--muted);margin-bottom:2rem;max-width:400px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.stats .stat-val,.stats .stat-label{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.section.in-view .stats .stat-val,.section.in-view .stats .stat-label{opacity:1;transform:translateY(0);transition-delay:.6s}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important;opacity:1!important;transform:none!important}}.photo-wrapper{position:relative;display:inline-block}.hero-photo{opacity:0;transform:scale(.85);transition:opacity .7s ease-out,transform .7s ease-out;border-radius:50%}.hero.in-view .hero-photo{opacity:1;transform:scale(1);transition-delay:.2s}.ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:2px solid rgba(0,123,255,.3);border-radius:50%;width:160px;height:160px;opacity:0;transition:opacity .5s ease}.ring-outer{width:160px;height:160px}.ring-inner{width:180px;height:180px}.hero.in-view .ring{opacity:1}.hero.in-view .ring-outer{animation:spin-clockwise 3s linear infinite;animation-delay:.2s}.hero.in-view .ring-inner{animation:spin-counter-clockwise 5s linear infinite;animation-delay:.2s}@keyframes spin-clockwise{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes spin-counter-clockwise{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(-360deg)}}.pulse-dot{position:absolute;bottom:10px;right:10px;width:12px;height:12px;background:#28a745;border-radius:50%;opacity:0;transition:opacity .5s ease}.hero.in-view .pulse-dot{opacity:1;animation:pulse 2s ease-in-out infinite;animation-delay:.2s}@keyframes pulse{0%,to{box-shadow:0 0 #28a745b3}50%{box-shadow:0 0 0 8px #28a74500}}@media (max-width: 768px){.nav-toggle{display:flex}.nav-links{position:absolute;top:100%;left:0;right:0;background:#fffffffa;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);flex-direction:column;gap:0;padding:0;border-bottom:.5px solid var(--border);display:none}[data-theme=dark] .nav-links{background:#1a1a1afa}.nav-links.open{display:flex}.nav-links li{border-bottom:.5px solid var(--border)}.nav-links li:last-child{border-bottom:none}.nav-links a{padding:1rem 1.5rem}.hero{padding:80px 0 60px}.hero-header{flex-direction:column;align-items:flex-start;gap:1.5rem}.hero-photo{width:100px;height:100px}.ring-outer{width:110px;height:110px}.ring-inner{width:130px;height:130px}.pulse-dot{bottom:5px;right:5px;width:10px;height:10px}.about-grid{grid-template-columns:1fr}.stats{border-left:none;padding-left:0;border-top:.5px solid var(--border);padding-top:1.5rem;flex-direction:row;flex-wrap:wrap;gap:1.5rem 2rem}.section{padding:48px 0}.skills-grid{grid-template-columns:repeat(2,1fr)}.work-header{flex-direction:column}.hero-links{width:100%}.hero-links .btn{flex:1;min-width:calc(50% - .5rem)}.contact-links{flex-direction:column}.contact-links .btn{width:100%}}@media (max-width: 480px){.main,.nav{padding:0 1rem}.skills-grid{grid-template-columns:1fr}.hero-links .btn{width:100%;min-width:100%}}
