:root{--bg-primary:#090714;--bg-secondary:#110d24;--bg-card:rgba(18,14,38,0.75);--bg-card-hover:rgba(28,21,60,0.9);--bg-glass:rgba(18,14,38,0.65);--border-color:rgba(168,85,247,0.18);--border-hover:rgba(168,85,247,0.55);--purple-primary:#8b5cf6;--purple-hover:#7c3aed;--purple-dark:#6d28d9;--purple-light:#c084fc;--purple-glow:rgba(147,51,234,0.45);--purple-subtle:rgba(147,51,234,0.12);--indigo-accent:#6366f1;--text-primary:#ffffff;--text-secondary:#94a3b8;--text-muted:#64748b;--gradient-main:linear-gradient(135deg,#a855f7,#8b5cf6 50%,#6366f1);--gradient-purple:linear-gradient(135deg,#c084fc,#8b5cf6 50%,#6d28d9);--gradient-card:linear-gradient(135deg,rgba(168,85,247,0.08),rgba(99,102,241,0.03));--navbar-bg:rgba(9,7,20,0.85);--shadow-card:0 10px 30px -5px rgba(0,0,0,0.4);--shadow-glow:0 10px 35px -5px rgba(139,92,246,0.35);--ambient-blur-1:rgba(139,92,246,0.14);--ambient-blur-2:rgba(99,102,241,0.12);--grid-line:rgba(255,255,255,0.025)}[data-theme=light]{--bg-primary:#faf8ff;--bg-secondary:#f3effc;--bg-card:rgba(255,255,255,0.92);--bg-card-hover:#ffffff;--bg-glass:rgba(255,255,255,0.85);--border-color:rgba(124,58,237,0.15);--border-hover:rgba(124,58,237,0.45);--purple-primary:#7c3aed;--purple-hover:#6d28d9;--purple-dark:#5b21b6;--purple-light:#9333ea;--purple-glow:rgba(124,58,237,0.25);--purple-subtle:rgba(124,58,237,0.08);--indigo-accent:#4f46e5;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--gradient-main:linear-gradient(135deg,#7c3aed,#6366f1 50%,#4f46e5);--gradient-purple:linear-gradient(135deg,#7c3aed,#6d28d9 50%,#4c1d95);--gradient-card:linear-gradient(135deg,rgba(255,255,255,0.98),rgba(246,242,254,0.95));--navbar-bg:rgba(250,248,255,0.9);--shadow-card:0 10px 30px -5px rgba(124,58,237,0.08);--shadow-glow:0 10px 30px -5px rgba(124,58,237,0.22);--ambient-blur-1:rgba(139,92,246,0.08);--ambient-blur-2:rgba(99,102,241,0.07);--grid-line:rgba(124,58,237,0.035)}*{box-sizing:border-box;padding:0;margin:0}html{scroll-behavior:smooth;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body,html{background-color:var(--bg-primary);transition:background-color .3s ease,color .3s ease}body{color:var(--text-primary);min-height:100vh;overflow-x:hidden;line-height:1.6;position:relative}body:before{background:radial-gradient(circle at 15% 20%,var(--ambient-blur-1) 0,transparent 45%),radial-gradient(circle at 85% 65%,var(--ambient-blur-2) 0,transparent 50%),radial-gradient(circle at 50% 90%,var(--ambient-blur-1) 0,transparent 45%)}body:after,body:before{content:"";position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:0}body:after{background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at center,black 40%,transparent 85%);-webkit-mask-image:radial-gradient(ellipse at center,black 40%,transparent 85%)}.text-gradient{background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-purple{color:var(--purple-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.section-tag{display:inline-flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:700;color:var(--purple-primary);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.75rem;padding:.35rem .85rem;border-radius:999px;background:var(--purple-subtle);border:1px solid var(--border-color)}.section-tag-dot{width:7px;height:7px;border-radius:50%;background:var(--purple-primary);box-shadow:0 0 8px var(--purple-primary)}.section-title{font-size:clamp(2rem,3.8vw,2.9rem);font-weight:800;letter-spacing:-.025em;line-height:1.2;margin-bottom:.85rem}.section-subtitle{font-size:1.05rem;color:var(--text-secondary);max-width:680px;margin:0 auto;line-height:1.7}.glass-card{background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:1.1rem;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.glass-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(168,85,247,.25),transparent)}.glass-card:hover{transform:translateY(-4px);border-color:var(--border-hover);box-shadow:var(--shadow-glow)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.85rem;font-size:.92rem;font-weight:700;border-radius:10px;background:var(--gradient-main);color:#ffffff!important;text-decoration:none;border:none;cursor:pointer;transition:all .28s ease;box-shadow:0 4px 20px -2px var(--purple-glow);letter-spacing:.01em}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px 0 var(--purple-glow);filter:brightness(1.08)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.75rem;font-size:.92rem;font-weight:600;border-radius:10px;background:var(--bg-glass);color:var(--text-primary);text-decoration:none;border:1px solid var(--border-color);cursor:pointer;transition:all .25s ease}.btn-secondary:hover{background:var(--purple-subtle);border-color:var(--purple-primary);color:var(--purple-primary);transform:translateY(-2px)}.btn-sm{padding:.55rem 1.15rem;font-size:.85rem;border-radius:8px}.container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem;position:relative;z-index:1}.section-py{padding-top:6.5rem;padding-bottom:6.5rem;position:relative}.section-header{text-align:center;margin-bottom:3.75rem}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.floating-element{animation:float 4s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.cursor-blink{display:inline-block;color:var(--purple-primary);margin-left:3px;font-weight:400;animation:blink .85s infinite}@keyframes pulseRing{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(139,92,246,.5)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(139,92,246,0)}to{transform:scale(.95);box-shadow:0 0 0 0 rgba(139,92,246,0)}}.pulse-status{width:9px;height:9px;border-radius:50%;background:#10b981;box-shadow:0 0 10px #10b981}.desktop-nav,.desktop-only{display:none}.mobile-toggle{display:flex}@media (min-width:860px){.desktop-nav{display:flex!important}.desktop-only{display:inline-flex!important}.mobile-toggle{display:none!important}}.hero-grid{display:grid;grid-template-columns:1fr;grid-gap:3.5rem;gap:3.5rem;align-items:center}@media (min-width:992px){.hero-grid{grid-template-columns:1.25fr .9fr!important}}.services-grid{display:grid;grid-template-columns:1fr;grid-gap:1.75rem;gap:1.75rem}@media (min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr)!important}}@media (min-width:1024px){.services-grid{grid-template-columns:repeat(4,1fr)!important}}.experience-grid{display:grid;grid-template-columns:1fr;grid-gap:2.5rem;gap:2.5rem;max-width:1050px;margin:0 auto}@media (min-width:900px){.experience-grid{grid-template-columns:1fr 1fr!important}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:rgba(168,85,247,.25);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--purple-primary)}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.96) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content{animation:modalFadeIn .25s cubic-bezier(.16,1,.3,1) forwards}.heatmap-container{overflow-x:auto;padding-bottom:.75rem}.heatmap-container::-webkit-scrollbar{height:6px}.heatmap-container::-webkit-scrollbar-track{background:rgba(255,255,255,.03);border-radius:4px}.heatmap-container::-webkit-scrollbar-thumb{background:rgba(168,85,247,.3);border-radius:4px}.heatmap-cell{width:12px;height:12px;border-radius:2px;transition:all .15s ease;cursor:pointer}.heatmap-cell:hover{outline:2px solid var(--purple-light);outline-offset:-1px;transform:scale(1.2);z-index:10}.redacted-bar{display:inline-block;background:rgba(168,85,247,.15);color:var(--purple-light)!important;font-family:monospace;font-size:.85rem;letter-spacing:.05em;padding:.2rem .6rem;border-radius:4px;border:1px dashed rgba(168,85,247,.5);position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .3s ease}.repo-card{transition:all .25s ease;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px}.repo-card:hover{border-color:var(--purple-primary)!important;box-shadow:0 10px 30px -5px var(--purple-glow)!important;transform:translateY(-3px)}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_a11773{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_a11773{--font-plus-jakarta:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}