@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap);body{-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}html{scroll-behavior:smooth}.seo-static{background:#f6f7f9;color:#1e2235;font-family:Plus Jakarta Sans,Inter,system-ui,sans-serif;line-height:1.65;margin:0 auto;max-width:72ch;padding:3rem 1.25rem}.seo-static h1{font-size:2rem;line-height:1.2;margin-bottom:.75rem}.seo-static h2{font-size:1.35rem;margin:2rem 0 .75rem}.seo-static h3{font-size:1.05rem;margin:1.25rem 0 .35rem}.seo-static p,.seo-static ul{margin-bottom:.75rem}.seo-static ul{padding-left:1.25rem}.seo-static a{color:#1d5fd1}.seo-static img{height:auto;max-width:100%}@media (prefers-color-scheme:dark){.seo-static{background:#0b0d11;color:#d3dae7}.seo-static a{color:#5aa9ff}}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f6f7f9;--bg2:#eceef2;--surface:#fdfdfe;--surface2:#f0f2f5;--text:#1e2235;--text-soft:#3b4056;--muted:#5c6178;--heading:#0d0f1a;--border:#e3e5ef;--accent:#1d5fd1;--accent2:#1d5fd1;--green:#10b981;--glow:#1d5fd11a;--r-sm:8px;--r-md:14px;--r-lg:20px;--r-xl:28px;--sh-sm:0 1px 4px #0000000f,0 2px 8px #0000000a;--sh-md:0 4px 20px #00000014;--sh-lg:0 12px 40px #00000021;--sh-xl:0 24px 60px #0000002e}[data-theme=dark]{--bg:#0b0d11;--bg2:#101318;--surface:#14171d;--surface2:#1a1e26;--text:#d3dae7;--text-soft:#b3bccd;--muted:#8b96ab;--heading:#eef1f8;--border:#ffffff12;--accent:#5aa9ff;--accent2:#5aa9ff;--green:#34d399;--glow:#5aa9ff1a;--sh-sm:0 1px 4px #0006;--sh-md:0 4px 20px #00000080;--sh-lg:0 12px 40px #0009}body{-webkit-font-smoothing:antialiased;background:#f6f7f9;background:var(--bg);color:#1e2235;color:var(--text);font-family:Plus Jakarta Sans,Inter,system-ui,sans-serif;line-height:1.65;transition:background .25s,color .25s}.App{min-height:100vh}.header{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);background:#0000;border-bottom:1px solid #0000;position:fixed;top:0;transition:all .35s ease;width:100%;z-index:1000}.header.scrolled{backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);background:color-mix(in srgb,#f6f7f9 88%,#0000);background:color-mix(in srgb,var(--bg) 88%,#0000);border-bottom:1px solid #e3e5ef;border-bottom:1px solid var(--border);box-shadow:0 1px 4px #0000000f,0 2px 8px #0000000a;box-shadow:var(--sh-sm)}.header-content{justify-content:space-between;margin:0 auto;max-width:1200px;padding:.9rem 2rem}.header-content,.header-right{align-items:center;display:flex}.header-right{gap:.75rem}.logo{align-items:center;display:flex;font-size:1.4rem;font-weight:800;gap:.1rem;letter-spacing:-.03em;text-decoration:none}.logo-text{color:#0d0f1a;color:var(--heading)}.logo-dot{color:#1d5fd1;color:var(--accent);font-size:1.8rem;line-height:1}.desktop-nav{display:block}.nav{align-items:center;display:flex;gap:.15rem;list-style:none}.nav a{border-radius:8px;border-radius:var(--r-sm);color:#5c6178;color:var(--muted);font-size:.88rem;font-weight:600;letter-spacing:.01em;padding:.5rem .9rem;text-decoration:none;transition:color .2s,background .2s}.nav a:hover{background:#f0f2f5;background:var(--surface2);color:#0d0f1a;color:var(--heading)}.nav a.active{background:#1d5fd11a;background:var(--glow);color:#1d5fd1;color:var(--accent)}.theme-toggle{align-items:center;background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:50%;color:#5c6178;color:var(--muted);cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:38px;justify-content:center;transition:all .25s;width:38px}.theme-toggle:hover{background:#1d5fd11a;background:var(--glow);border-color:#1d5fd1;border-color:var(--accent);color:#1d5fd1;color:var(--accent);transform:rotate(15deg)}.mobile-menu-btn{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:.4rem;z-index:1001}.mobile-menu-btn span{background:#0d0f1a;background:var(--heading);border-radius:2px;display:block;height:2px;transition:all .3s;width:22px}.mobile-menu-btn.open span:first-child{background:#1d5fd1;background:var(--accent);transform:rotate(45deg) translate(5px,5px)}.mobile-menu-btn.open span:nth-child(2){opacity:0}.mobile-menu-btn.open span:nth-child(3){background:#1d5fd1;background:var(--accent);transform:rotate(-45deg) translate(5px,-5px)}.mobile-nav{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:color-mix(in srgb,#f6f7f9 97%,#0000);background:color-mix(in srgb,var(--bg) 97%,#0000);border-left:1px solid #e3e5ef;border-left:1px solid var(--border);display:none;height:100vh;padding:5rem 1.25rem 2rem;position:fixed;right:-100%;top:0;transition:right .35s cubic-bezier(.4,0,.2,1);width:260px;z-index:999}.mobile-nav.open{right:0}.mobile-nav ul{display:flex;flex-direction:column;gap:.3rem;list-style:none}.mobile-nav a{border-radius:14px;border-radius:var(--r-md);color:#1e2235;color:var(--text);display:block;font-size:.95rem;font-weight:600;padding:.8rem 1rem;text-decoration:none;transition:all .2s}.mobile-nav a.active,.mobile-nav a:hover{background:#1d5fd11a;background:var(--glow);color:#1d5fd1;color:var(--accent)}.hero{align-items:center;background:#f6f7f9;background:var(--bg);display:flex;min-height:100vh;overflow:hidden;padding:7rem 2rem 4rem;position:relative}.hero:before{background:radial-gradient(ellipse 70% 60% at 0 50%,color-mix(in srgb,#1d5fd1 6%,#0000) 0,#0000 65%),radial-gradient(ellipse 50% 50% at 100% 20%,color-mix(in srgb,#1d5fd1 4%,#0000) 0,#0000 60%);background:radial-gradient(ellipse 70% 60% at 0 50%,color-mix(in srgb,var(--accent) 6%,#0000) 0,#0000 65%),radial-gradient(ellipse 50% 50% at 100% 20%,color-mix(in srgb,var(--accent) 4%,#0000) 0,#0000 60%)}.hero:before,[data-theme=dark] .hero:after{content:"";inset:0;pointer-events:none;position:absolute}[data-theme=dark] .hero:after{background-image:radial-gradient(hsla(0,0%,100%,.045) 1px,#0000 0);background-size:28px 28px}.hero-grid{grid-gap:5rem;align-items:center;display:grid;gap:5rem;grid-template-columns:1fr 340px;margin:0 auto;max-width:1100px;position:relative;width:100%;z-index:1}.hero-badge{align-items:center;background:color-mix(in srgb,#10b981 10%,#0000);background:color-mix(in srgb,var(--green) 10%,#0000);border:1px solid color-mix(in srgb,#10b981 30%,#0000);border:1px solid color-mix(in srgb,var(--green) 30%,#0000);border-radius:2rem;color:#10b981;color:var(--green);display:inline-flex;font-size:.8rem;font-weight:700;gap:.5rem;letter-spacing:.04em;margin-bottom:1.75rem;padding:.35rem .9rem;text-transform:uppercase}.hero-badge-dot{animation:blink 2s ease infinite;background:#10b981;background:var(--green);border-radius:50%;height:7px;width:7px}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.hero-greeting{color:#5c6178;color:var(--muted);font-size:1.1rem;font-weight:600;letter-spacing:.01em;margin-bottom:.5rem}.hero-name{color:#0d0f1a;color:var(--heading);font-size:clamp(2.75rem,5.5vw,4.5rem);font-weight:900;letter-spacing:-.04em;line-height:1.05;margin-bottom:1.25rem}.hero-name-accent{color:#1d5fd1;color:var(--accent)}.hero-role{color:#0d0f1a;color:var(--heading);font-size:1.15rem;font-weight:700;letter-spacing:.01em;margin-bottom:1rem}.hero-tagline{color:#5c6178;color:var(--muted);font-size:1.025rem;line-height:1.75;margin-bottom:2.25rem;max-width:500px}.hero-stats{align-items:center;background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:20px;border-radius:var(--r-lg);display:flex;gap:2rem;margin-bottom:2.5rem;padding:1.25rem 1.5rem;width:-webkit-fit-content;width:fit-content}.hero-stat{text-align:center}.hero-stat-num{font-feature-settings:"tnum";color:#0d0f1a;color:var(--heading);display:block;font-size:2rem;font-variant-numeric:tabular-nums;font-weight:900;letter-spacing:-.03em;line-height:1}.hero-stat-label{color:#5c6178;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.08em;margin-top:.25rem;text-transform:uppercase;white-space:nowrap}.hero-stat-sep{background:#e3e5ef;background:var(--border);flex-shrink:0;height:36px;width:1px}.hero-ctas{display:flex;flex-wrap:wrap;gap:.875rem;margin-bottom:2rem}.hero-socials{align-items:center;display:flex;gap:.625rem}.hero-socials-label{color:#5c6178;color:var(--muted);font-size:.8rem;font-weight:600;letter-spacing:.06em;margin-right:.25rem;text-transform:uppercase}.hero-social-link{align-items:center;background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:50%;color:#5c6178;color:var(--muted);display:flex;font-size:.95rem;height:36px;justify-content:center;text-decoration:none;transition:all .25s;width:36px}.hero-social-link:hover{background:#1d5fd1;background:var(--accent);border-color:#1d5fd1;border-color:var(--accent);color:#fff;transform:translateY(-2px)}.hero-photo-col{align-items:center;display:flex;flex-direction:column;gap:1.5rem}.hero-avatar-wrap{height:280px;position:relative;width:280px}.hero-avatar-ring{background:#1d5fd1;background:var(--accent);border-radius:50%;inset:-3px;position:absolute;z-index:0}@keyframes spin-ring{to{transform:rotate(1turn)}}.hero-avatar-inner{background:#f0f2f5;background:var(--surface2);border:3px solid #f6f7f9;border:3px solid var(--bg);border-radius:50%;inset:3px;overflow:hidden;position:absolute;z-index:1}.hero-avatar-inner img{height:100%;object-fit:cover;width:100%}.hero-avatar-fallback{align-items:center;color:#1d5fd1;color:var(--accent);display:flex;font-size:4.5rem;font-weight:900;height:100%;justify-content:center;width:100%}.hero-tech-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.hero-tech-pill{background:#f0f2f5;background:var(--surface2);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:2rem;color:#5c6178;color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.01em;padding:.3rem .75rem}.btn{align-items:center;border:none;border-radius:14px;border-radius:var(--r-md);cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:700;gap:.45rem;letter-spacing:.01em;padding:.7rem 1.5rem;text-decoration:none;transition:all .22s cubic-bezier(.4,0,.2,1);white-space:nowrap}.btn-primary{background:#1d5fd1;background:var(--accent);box-shadow:0 4px 14px #1d5fd11a;box-shadow:0 4px 14px var(--glow);color:#fff}.btn-primary:hover{background:color-mix(in srgb,#1d5fd1 80%,#000);background:color-mix(in srgb,var(--accent) 80%,#000);box-shadow:0 8px 24px #1d5fd11a;box-shadow:0 8px 24px var(--glow);transform:translateY(-2px)}.btn-ghost{background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);color:#1e2235;color:var(--text)}.btn-ghost:hover{background:#f0f2f5;background:var(--surface2);border-color:color-mix(in srgb,#1d5fd1 40%,#e3e5ef);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:#0d0f1a;color:var(--heading);transform:translateY(-2px)}.btn-outline{background:#0000;border:1.5px solid #1d5fd1;border:1.5px solid var(--accent);color:#1d5fd1;color:var(--accent)}.btn-outline:hover{background:#1d5fd1;background:var(--accent);color:#fff;transform:translateY(-2px)}.section{margin:0 auto;max-width:1200px;padding:5.5rem 2rem}.section-alt{background:#eceef2;background:var(--bg2)}.section-inner{margin:0 auto;max-width:1200px;padding:5.5rem 2rem}.section-label{align-items:center;color:#1d5fd1;color:var(--accent);display:flex;font-size:.72rem;font-weight:800;gap:.4rem;letter-spacing:.14em;margin-bottom:.75rem;text-transform:uppercase}.section-label:before{content:"//";font-family:Fira Code,Cascadia Code,monospace;font-weight:700;opacity:.7}.section-title{color:#0d0f1a;color:var(--heading);font-size:clamp(1.9rem,3.5vw,2.75rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;margin-bottom:3.5rem}.section-title span{color:#1d5fd1;color:var(--accent)}.about-stats-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin-bottom:3rem}.about-stat-card{background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:20px;border-radius:var(--r-lg);overflow:hidden;padding:1.75rem 1.25rem;position:relative;text-align:center;transition:transform .25s,box-shadow .25s,border-color .25s}.about-stat-card:hover{border-color:color-mix(in srgb,#1d5fd1 30%,#e3e5ef);border-color:color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:0 4px 20px #00000014;box-shadow:var(--sh-md);transform:translateY(-4px)}.about-stat-num{font-size:2.75rem;font-weight:900;letter-spacing:-.05em;line-height:1;margin-bottom:.375rem}.about-stat-label,.about-stat-num{color:#0d0f1a;color:var(--heading);display:block}.about-stat-label{font-size:.82rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.2rem}.about-stat-desc{color:#5c6178;color:var(--muted);display:block;font-size:.75rem}.about-main-grid{grid-gap:3.5rem;display:grid;gap:3.5rem;grid-template-columns:1fr 1fr}.about-description{color:#1e2235;color:var(--text);font-size:1rem;line-height:1.9;margin-bottom:1.5rem}.about-quick-facts{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.75rem}.about-fact{align-items:center;color:#1e2235;color:var(--text);display:flex;font-size:.9rem;gap:.625rem}.about-fact a{color:#1d5fd1;color:var(--accent);text-decoration:none}.about-fact a:hover{text-decoration:underline}.about-sub-title{color:#0d0f1a;color:var(--heading);font-size:.85rem;font-weight:800;letter-spacing:.1em;margin-bottom:.875rem;text-transform:uppercase}.about-list{list-style:none}.about-list li{align-items:center;border-bottom:1px solid #e3e5ef;border-bottom:1px solid var(--border);color:#1e2235;color:var(--text);display:flex;font-size:.925rem;gap:.75rem;padding:.6rem 0}.about-list li:last-child{border-bottom:none}.about-interests{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}.about-interest-tag{align-items:center;background:#f0f2f5;background:var(--surface2);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:2rem;color:#1e2235;color:var(--text);display:inline-flex;font-size:.82rem;font-weight:600;gap:.4rem;padding:.35rem .875rem}.about-available-card{align-items:center;background:color-mix(in srgb,#10b981 8%,#fdfdfe);background:color-mix(in srgb,var(--green) 8%,var(--surface));border:1px solid color-mix(in srgb,#10b981 25%,#e3e5ef);border:1px solid color-mix(in srgb,var(--green) 25%,var(--border));border-radius:14px;border-radius:var(--r-md);display:flex;gap:1rem;margin-top:1.5rem;padding:1.125rem 1.25rem}.about-available-dot{animation:blink 2s ease infinite;background:#10b981;background:var(--green);border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,#10b981 20%,#0000);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 20%,#0000);flex-shrink:0;height:10px;width:10px}.skills-two-col{grid-gap:2rem 3rem;display:grid;gap:2rem 3rem;grid-template-columns:1fr 1fr}.skills-col{display:flex;flex-direction:column;gap:2.25rem}.skill-group-title{align-items:center;color:#0d0f1a;color:var(--heading);display:flex;font-size:.95rem;font-weight:800;gap:.75rem;letter-spacing:-.01em;margin-bottom:.875rem}.skill-group-icon{align-items:center;border-radius:8px;border-radius:var(--r-sm);display:flex;flex-shrink:0;font-size:1rem;height:34px;justify-content:center;width:34px}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:8px;border-radius:var(--r-sm);color:#1e2235;color:var(--text);cursor:default;font-size:.825rem;font-weight:600;padding:.4rem .875rem;transition:all .2s}.skill-tag:hover{background:#1d5fd11a;background:var(--glow);border-color:#1d5fd1;border-color:var(--accent);color:#1d5fd1;color:var(--accent);transform:translateY(-2px)}.showcase-list{display:flex;flex-direction:column;gap:6rem;margin-bottom:6rem}.showcase{grid-gap:3.5rem;align-items:center;display:grid;gap:3.5rem;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.showcase--reverse .showcase-visual{order:2}.showcase-visual{aspect-ratio:5/4;background:radial-gradient(120% 90% at 85% 0,color-mix(in srgb,var(--brand) 42%,#0000) 0,#0000 55%),radial-gradient(90% 70% at 0 100%,color-mix(in srgb,var(--brand) 16%,#0000) 0,#0000 60%),var(--visual-bg);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:28px;border-radius:var(--r-xl);display:grid;overflow:hidden;padding:2.5rem;place-items:center;position:relative}.showcase-visual>img{filter:drop-shadow(0 24px 40px rgba(0,0,0,.45));height:100%;object-fit:contain;transition:transform .5s cubic-bezier(.22,1,.36,1);width:100%}.showcase:hover .browser-frame,.showcase:hover .showcase-visual>img{transform:translateY(-6px)}.browser-frame{background:#1f2126;border-radius:12px;box-shadow:0 30px 60px #00000080,0 0 0 1px #ffffff14;overflow:hidden;transition:transform .5s cubic-bezier(.22,1,.36,1);width:100%}.browser-bar{align-items:center;background:#2a2c32;display:flex;gap:6px;padding:10px 14px}.browser-bar span{background:#4a4d55;border-radius:50%;height:10px;width:10px}.browser-bar p{background:#1f2126;border-radius:6px;color:#b9bcc6;flex:1 1;font-size:.72rem;margin-left:10px;overflow:hidden;padding:3px 10px;text-overflow:ellipsis;white-space:nowrap}.browser-frame img{display:block;height:auto;width:100%}.showcase-content{min-width:0}.showcase-brand{align-items:center;display:flex;gap:1rem;margin-bottom:1.25rem}.showcase-brand img{background:#faf4ea;border-radius:14px;flex-shrink:0;height:52px;object-fit:contain;width:52px}.showcase-brand h3{color:#0d0f1a;color:var(--heading);font-size:1.9rem;font-weight:900;letter-spacing:-.035em;line-height:1.1}.showcase-brand p{color:#3b4056;color:var(--text-soft);font-size:.9rem;line-height:1.4;margin-top:.2rem}.showcase-tagline{color:#0d0f1a;color:var(--heading);font-size:1.2rem;font-weight:600;line-height:1.45;margin-bottom:1.75rem;max-width:38ch}.showcase-metrics{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1.75rem}.showcase-metrics div{border-top:2px solid var(--brand);padding-top:.65rem}.showcase-metrics dt{color:#0d0f1a;color:var(--heading);font-size:1.75rem;font-weight:900;letter-spacing:-.03em;line-height:1}.showcase-metrics dd{color:#5c6178;color:var(--muted);font-size:.78rem;line-height:1.4;margin-top:.35rem}.showcase-highlights{grid-gap:.6rem;display:grid;gap:.6rem;list-style:none;margin-bottom:1.5rem}.showcase-highlights li{align-items:baseline;color:#1e2235;color:var(--text);display:flex;font-size:.925rem;gap:.65rem;line-height:1.55}.showcase-highlights svg{color:var(--brand);flex-shrink:0;font-size:.8rem;transform:translateY(1px)}.showcase-content .project-stack{margin-bottom:1.75rem}.showcase-ctas{display:flex;flex-wrap:wrap;gap:.75rem}.showcase-btn{align-items:center;border-radius:8px;border-radius:var(--r-sm);display:inline-flex;font-size:.9rem;font-weight:700;gap:.5rem;min-height:44px;padding:.7rem 1.25rem;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s,transform .2s}.showcase-btn--brand{background:var(--brand);color:var(--brand-ink)}.showcase-btn--brand:hover{background:color-mix(in srgb,var(--brand) 85%,#fff);transform:translateY(-1px)}.showcase-btn--ghost{background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);color:#0d0f1a;color:var(--heading)}.showcase-btn--ghost:hover{border-color:var(--brand)}.showcase-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.more-work-title{color:#0d0f1a;color:var(--heading);font-size:1.35rem;font-weight:800;letter-spacing:-.02em;margin-bottom:1.5rem}.projects-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.project-card{background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:20px;border-radius:var(--r-lg);box-shadow:inset 0 3px 0 var(--brand);display:flex;flex-direction:column;overflow:hidden;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.project-card:hover{border-color:color-mix(in srgb,var(--brand) 40%,var(--border));box-shadow:inset 0 3px 0 var(--brand),0 12px 40px #00000021;box-shadow:inset 0 3px 0 var(--brand),var(--sh-lg);transform:translateY(-4px)}.project-header{align-items:flex-start;display:flex;gap:.9rem;padding:1.4rem 1.4rem .9rem}.project-icon-wrap{align-items:center;border-radius:14px;border-radius:var(--r-md);color:#fff;display:flex;flex-shrink:0;font-size:1.25rem;height:44px;justify-content:center;width:44px}.project-logo-wrap{background:#faf4ea;overflow:hidden;padding:4px}.detail-hero-logo img,.project-logo-wrap img{display:block;height:100%;object-fit:contain;width:100%}.detail-screenshot{margin:0;overflow:hidden;padding:0}.detail-screenshot img{display:block;height:auto;width:100%}.detail-screenshot--mockup{padding:2rem}.project-header-info{flex:1 1;min-width:0}.project-title{color:#0d0f1a;color:var(--heading);font-size:1.1rem;font-weight:800;letter-spacing:-.02em;line-height:1.25}.project-subtitle{color:#3b4056;color:var(--text-soft);font-size:.84rem;line-height:1.45;margin-top:.25rem}.project-body{flex:1 1;padding:0 1.4rem 1.1rem}.project-meta{color:#5c6178;color:var(--muted);font-size:.78rem;margin-bottom:.65rem}.project-description{-webkit-line-clamp:4;-webkit-box-orient:vertical;color:#1e2235;color:var(--text);display:-webkit-box;font-size:.9rem;line-height:1.65;overflow:hidden}.project-footer{border-top:1px solid #e3e5ef;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.875rem;padding:1rem 1.4rem 1.25rem}.project-stack{display:flex;flex-wrap:wrap;gap:.4rem}.tech-tag{background:#f0f2f5;background:var(--surface2);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:2rem;color:#3b4056;color:var(--text-soft);font-size:.75rem;font-weight:600;padding:.25rem .65rem;transition:color .2s,border-color .2s,background-color .2s}.tech-tag:hover{background:#1d5fd11a;background:var(--glow);border-color:#1d5fd1;border-color:var(--accent);color:#1d5fd1;color:var(--accent)}.tech-tag--more{color:#5c6178;color:var(--muted)}.project-btns{display:flex;gap:.625rem}.btn-sm{align-items:center;border:none;border-radius:8px;border-radius:var(--r-sm);cursor:pointer;display:inline-flex;flex:1 1;font-size:.825rem;font-weight:700;gap:.35rem;justify-content:center;letter-spacing:.01em;min-height:40px;padding:.55rem .875rem;text-decoration:none;transition:all .22s}.btn-sm-primary{background:#1d5fd1;background:var(--accent);box-shadow:0 3px 10px #1d5fd11a;box-shadow:0 3px 10px var(--glow);color:#fff}.btn-sm-primary:hover{background:color-mix(in srgb,#1d5fd1 80%,#000);background:color-mix(in srgb,var(--accent) 80%,#000);transform:translateY(-1px)}.btn-sm-ghost{background:#f0f2f5;background:var(--surface2);border:1px solid #e3e5ef;border:1px solid var(--border);color:#1e2235;color:var(--text);flex:0 0 44px}.btn-sm-ghost:hover{background:#1d5fd11a;background:var(--glow);border-color:#1d5fd1;border-color:var(--accent);color:#1d5fd1;color:var(--accent)}@media (max-width:900px){.showcase{gap:2rem;grid-template-columns:1fr}.showcase--reverse .showcase-visual{order:0}.showcase-list{gap:4.5rem;margin-bottom:4.5rem}}@media (max-width:480px){.showcase-visual{aspect-ratio:4/3;padding:1.25rem}.showcase-brand h3{font-size:1.6rem}.showcase-tagline{font-size:1.08rem}.showcase-metrics{gap:.75rem}.showcase-metrics dt{font-size:1.45rem}.showcase-btn{flex:1 1;justify-content:center}}@media (prefers-reduced-motion:reduce){.browser-frame,.project-card,.showcase-visual>img{transition:none}.showcase:hover .browser-frame,.showcase:hover .showcase-visual>img{transform:none}}.education-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.education-card{background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:20px;border-radius:var(--r-lg);display:flex;gap:1.25rem;padding:1.75rem;transition:transform .25s,box-shadow .25s}.education-card:hover{box-shadow:0 4px 20px #00000014;box-shadow:var(--sh-md);transform:translateY(-4px)}.education-icon{align-items:center;background:#1d5fd11a;background:var(--glow);border-radius:14px;border-radius:var(--r-md);color:#1d5fd1;color:var(--accent);display:flex;flex-shrink:0;font-size:1.5rem;height:-webkit-fit-content;height:fit-content;justify-content:center;padding:.875rem}.education-degree{color:#0d0f1a;color:var(--heading);font-size:1.05rem;font-weight:800;line-height:1.35;margin-bottom:.4rem}.education-institution{color:#1d5fd1;color:var(--accent);font-size:.9rem;font-weight:600;margin-bottom:.625rem}.education-meta{color:#5c6178;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.82rem;gap:1rem}.education-meta span{align-items:center;display:flex;gap:.35rem}.certifications-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.certification-card{align-items:flex-start;background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:20px;border-radius:var(--r-lg);display:flex;gap:1rem;padding:1.375rem;transition:transform .25s,border-color .25s,box-shadow .25s}.certification-card:hover{border-color:#10b981;border-color:var(--green);box-shadow:0 8px 24px color-mix(in srgb,#10b981 12%,#0000);box-shadow:0 8px 24px color-mix(in srgb,var(--green) 12%,#0000);transform:translateY(-3px)}.certification-badge{align-items:center;background:color-mix(in srgb,#10b981 10%,#0000);background:color-mix(in srgb,var(--green) 10%,#0000);border-radius:14px;border-radius:var(--r-md);color:#10b981;color:var(--green);display:flex;flex-shrink:0;font-size:1.5rem;justify-content:center;padding:.75rem}.certification-name{color:#0d0f1a;color:var(--heading);font-size:1rem;font-weight:800;line-height:1.35;margin-bottom:.3rem}.certification-issuer{color:#5c6178;color:var(--muted);font-size:.85rem;margin-bottom:.3rem}.certification-date{align-items:center;color:#10b981;color:var(--green);display:flex;font-size:.8rem;font-weight:700;gap:.35rem}.contact{background:#eceef2;background:var(--bg2)}.contact-inner{margin:0 auto;max-width:700px;padding:5.5rem 2rem;text-align:center}.contact-subtitle{color:#5c6178;color:var(--muted);font-size:1.05rem;line-height:1.75;margin:0 auto 2.5rem;max-width:520px}.contact-cards{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:2.5rem}.contact-card{align-items:center;background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:14px;border-radius:var(--r-md);color:#1e2235;color:var(--text);display:flex;font-size:.9rem;font-weight:600;gap:.75rem;padding:.875rem 1.25rem;text-decoration:none;transition:all .22s}.contact-card:hover{background:#1d5fd11a;background:var(--glow);border-color:#1d5fd1;border-color:var(--accent);box-shadow:0 1px 4px #0000000f,0 2px 8px #0000000a;box-shadow:var(--sh-sm);color:#1d5fd1;color:var(--accent);transform:translateY(-2px)}.contact-card svg{flex-shrink:0;font-size:1.1rem}.social-links{gap:.875rem}.social-link,.social-links{display:flex;justify-content:center}.social-link{align-items:center;background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:50%;color:#5c6178;color:var(--muted);font-size:1.15rem;height:44px;text-decoration:none;transition:all .25s;width:44px}.social-link:hover{box-shadow:0 1px 4px #0000000f,0 2px 8px #0000000a;box-shadow:var(--sh-sm);transform:translateY(-3px)}.social-link.github:hover{background:#333;border-color:#555;color:#fff}.social-link.gitlab:hover{background:#fc6d26;border-color:#fc6d26;color:#fff}.social-link.linkedin:hover{background:#0077b5;border-color:#0077b5;color:#fff}.social-link.twitter:hover{background:#1d9bf0;border-color:#1d9bf0;color:#fff}.footer{border-top:1px solid #e3e5ef;border-top:1px solid var(--border);color:#5c6178;color:var(--muted);font-size:.85rem;padding:2rem;text-align:center}.footer,.project-detail-page{background:#f6f7f9;background:var(--bg)}.project-detail-page{min-height:100vh}.project-detail-container{margin:0 auto;max-width:820px;padding:7rem 2rem 5rem}.back-btn{align-items:center;background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:8px;border-radius:var(--r-sm);color:#1e2235;color:var(--text);display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;margin-bottom:2.25rem;padding:.5rem 1rem;text-decoration:none;transition:all .22s}.back-btn:hover{background:#1d5fd11a;background:var(--glow);border-color:#1d5fd1;border-color:var(--accent);color:#1d5fd1;color:var(--accent)}.detail-hero{--brand:var(--accent);--visual-bg:#101318;background:radial-gradient(70% 120% at 100% 0,color-mix(in srgb,var(--brand) 38%,#0000) 0,#0000 60%),radial-gradient(50% 80% at 0 100%,color-mix(in srgb,var(--brand) 12%,#0000) 0,#0000 70%),var(--visual-bg);border:1px solid color-mix(in srgb,var(--brand) 25%,#ffffff0f);border-radius:28px;border-radius:var(--r-xl);color:#f2f4f8;margin-bottom:2rem;overflow:hidden;padding:2.75rem 2.5rem;position:relative}.detail-hero-top{align-items:center;display:flex;gap:1.25rem;margin-bottom:1.75rem}.detail-hero-icon{align-items:center;background:var(--brand);border-radius:18px;box-shadow:0 0 0 1px #ffffff14,0 12px 32px color-mix(in srgb,var(--brand) 35%,#0000);color:#fff;display:flex;flex-shrink:0;font-size:1.9rem;height:72px;justify-content:center;overflow:hidden;width:72px}.detail-hero-logo{background:#faf4ea;padding:6px}.detail-hero h1{color:#fff;font-size:clamp(1.75rem,3.5vw,2.4rem);font-weight:900;letter-spacing:-.035em;line-height:1.1;margin-bottom:.4rem}.detail-hero-subtitle{color:#c3c9d4;font-size:1rem;line-height:1.45}.detail-hero-meta{display:flex;flex-wrap:wrap;font-size:.82rem;gap:.5rem}.detail-hero-meta span{align-items:center;background:#ffffff0f;border:1px solid #ffffff14;border-radius:2rem;color:#d6dbe4;display:inline-flex;gap:.4rem;padding:.35rem .75rem}.detail-hero-meta svg{color:var(--brand)}.detail-hero-tagline{color:#fff;font-size:1.1rem;font-weight:600;line-height:1.45;margin:-.5rem 0 1.5rem;max-width:52ch}.detail-hero-cta{align-items:center;background:var(--brand);border-radius:8px;border-radius:var(--r-sm);color:#fff;color:var(--brand-ink,#fff);display:inline-flex;font-size:.9rem;font-weight:700;gap:.5rem;margin-top:1.5rem;min-height:44px;padding:.7rem 1.25rem;text-decoration:none;transition:background-color .2s,transform .2s}.detail-hero-cta:hover{background:color-mix(in srgb,var(--brand) 85%,#fff);transform:translateY(-1px)}.detail-body{display:flex;flex-direction:column;gap:1.5rem}.detail-card{background:#fdfdfe;background:var(--surface);border:1px solid #e3e5ef;border:1px solid var(--border);border-radius:20px;border-radius:var(--r-lg);padding:2rem}.detail-card h2{align-items:center;color:#0d0f1a;color:var(--heading);display:flex;font-size:1.1rem;font-weight:800;gap:.625rem;margin-bottom:1.25rem}.detail-card p{color:#1e2235;color:var(--text);font-size:1rem;line-height:1.8}.detail-achievements{display:flex;flex-direction:column;gap:.6rem;list-style:none}.detail-achievements li{align-items:flex-start;color:#1e2235;color:var(--text);display:flex;font-size:.95rem;gap:.75rem;line-height:1.6}.detail-achievements li:before{color:#10b981;color:var(--green);content:"✓";flex-shrink:0;font-size:.85rem;font-weight:700;margin-top:.1rem}.detail-stack{display:flex;flex-wrap:wrap;gap:.5rem}.detail-links{gap:.875rem}.detail-links,.detail-nav{display:flex;flex-wrap:wrap}.detail-nav{gap:1rem;justify-content:space-between;margin-top:3rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:none}}.animate-fade-in-up{animation:fadeInUp .7s ease both}.animate-fade-in-down{animation:fadeInDown .7s ease both}.animate-fade-in-left{animation:fadeInLeft .7s ease both}.animate-fade-in-right{animation:fadeInRight .7s ease both}.animate-fade-in{animation:fadeIn .7s ease both}.animate-scale-in{animation:scaleIn .7s ease both}.animate-on-scroll{opacity:0}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.stagger-children>*{opacity:0}.stagger-children.animated>:first-child{animation:fadeInUp .55s ease .05s both}.stagger-children.animated>:nth-child(2){animation:fadeInUp .55s ease .12s both}.stagger-children.animated>:nth-child(3){animation:fadeInUp .55s ease .19s both}.stagger-children.animated>:nth-child(4){animation:fadeInUp .55s ease .26s both}.stagger-children.animated>:nth-child(5){animation:fadeInUp .55s ease .33s both}.stagger-children.animated>:nth-child(6){animation:fadeInUp .55s ease .4s both}.stagger-children.animated>:nth-child(7){animation:fadeInUp .55s ease .47s both}.stagger-children.animated>:nth-child(8){animation:fadeInUp .55s ease .54s both}.hover-lift{transition:transform .25s ease,box-shadow .25s ease}.hover-lift:hover{box-shadow:0 12px 40px #00000021;box-shadow:var(--sh-lg);transform:translateY(-6px)}@media (max-width:968px){.desktop-nav{display:none}.mobile-menu-btn{display:flex}.mobile-nav{display:block}}@media (max-width:800px){.hero-grid{gap:3rem;grid-template-columns:1fr;text-align:center}.hero-photo-col{order:-1}.hero-avatar-wrap{height:180px;width:180px}.hero-stats{margin:0 auto 2.25rem}.hero-ctas,.hero-socials{justify-content:center}.hero-tagline{margin-left:auto;margin-right:auto;max-width:100%}.hero-badge{margin:0 auto 1.5rem}}@media (max-width:768px){.header-content{padding:.875rem 1.25rem}.contact-inner,.section,.section-inner{padding:3.5rem 1.25rem}.about-stats-row{grid-template-columns:repeat(3,1fr)}.about-main-grid{gap:2rem}.about-main-grid,.about-stats-row,.certifications-grid,.education-grid,.projects-grid,.skills-two-col{grid-template-columns:1fr}.section-title{margin-bottom:2.5rem}}@media (max-width:480px){.hero h1,.hero-name{font-size:2.25rem}.hero-stats{gap:1.25rem;padding:1rem 1.125rem}.hero-stat-num{font-size:1.6rem}.about-stats{grid-template-columns:1fr}.project-header{flex-wrap:wrap}.hero-ctas{flex-direction:column}.hero-ctas .btn{justify-content:center;width:100%}}
/*# sourceMappingURL=main.c3d4e579.css.map*/