@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;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:300;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:300;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:300;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: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_b6296e{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_b6296e{--font-sans:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}:root{--bg:#030712;--bg-soft:#080f25;--bg-softer:#0e1738;--accent:#38bdf8;--accent-soft:#0ea5e9;--accent-purple:#818cf8;--accent-indigo:#6366f1;--accent-cyan:#22d3ee;--subtle:#94a3b8;--muted:#64748b;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--text-50:#f8fafc;--text-100:#f1f5f9;--text-200:#e2e8f0;--text-300:#cbd5e1;--text-500:#64748b;--text-600:#475569;--emerald:#34d399;--border-soft:rgba(255,255,255,0.08);--border-strong:rgba(255,255,255,0.15);--shadow-soft:0 10px 30px rgba(0,0,0,0.5);--shadow-glow:0 0 20px rgba(56,189,248,0.15)}[data-bs-theme=dark]{--bs-body-bg:var(--bg);--bs-body-color:var(--text-100);--bs-border-color:var(--slate-800);--bs-secondary-color:var(--subtle);--bs-link-color:var(--accent);--bs-link-hover-color:var(--accent-cyan)}html{scroll-behavior:smooth}body.site-body{background-color:var(--bg);background-image:radial-gradient(at 0 0,rgba(99,102,241,.05) 0,transparent 50%),radial-gradient(at 100% 0,rgba(56,189,248,.05) 0,transparent 50%),radial-gradient(at 50% 100%,rgba(129,140,248,.05) 0,transparent 50%);background-attachment:fixed;color:var(--text-100);font-family:var(--font-sans),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;min-height:100vh;position:relative;overflow-x:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.glow-blob{position:fixed;border-radius:9999px;filter:blur(140px);z-index:-10;pointer-events:none;opacity:.16;animation:pulse-glow 25s ease-in-out infinite alternate}.glow-blob-1{width:600px;height:600px;top:-10%;right:-5%;background:radial-gradient(circle,var(--accent-indigo),var(--accent) 70%)}.glow-blob-2{width:500px;height:500px;bottom:5%;left:-10%;background:radial-gradient(circle,var(--accent-purple),#db2777 70%);animation-delay:-7s}.glow-blob-3{width:400px;height:400px;top:40%;left:45%;background:radial-gradient(circle,var(--emerald),var(--accent-cyan) 70%);animation-delay:-14s}@keyframes pulse-glow{0%{transform:scale(1) translate(0)}50%{transform:scale(1.15) translate(40px,-30px)}to{transform:scale(.9) translate(-30px,40px)}}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-gradient{background:linear-gradient(135deg,var(--text-50) 20%,var(--accent-purple) 60%,var(--accent) 100%);-webkit-background-clip:text;background-clip:text}.text-gradient,.text-gradient-cyan{-webkit-text-fill-color:transparent}.text-gradient-cyan{background:linear-gradient(135deg,var(--accent-cyan) 0,var(--accent-indigo) 100%);-webkit-background-clip:text;background-clip:text}.text-xxs{font-size:10px;line-height:1.5}.text-xs{font-size:11px;line-height:1.55}.text-sm{font-size:12px;line-height:1.55}.text-md{font-size:14px;line-height:1.55}.text-lg{font-size:18px;line-height:1.4}.text-xl{font-size:20px;line-height:1.3}.text-2xl{font-size:24px;line-height:1.25}.text-3xl{font-size:30px;line-height:1.2}.text-4xl{font-size:36px;line-height:1.15}.text-5xl{font-size:48px;line-height:1.1}.tracking-tight{letter-spacing:-.02em}.tracking-wide{letter-spacing:.12em}.tracking-wider{letter-spacing:.14em}.tracking-widest{letter-spacing:.16em}.text-balance{text-wrap:balance}.lh-snug{line-height:1.4}.lh-relaxed{line-height:1.625}.text-slate-50{color:var(--text-50)!important}.text-slate-100{color:var(--text-100)!important}.text-slate-200{color:var(--text-200)!important}.text-slate-300{color:var(--text-300)!important}.text-slate-500{color:var(--text-500)!important}.text-slate-600{color:var(--text-600)!important}.text-subtle{color:var(--subtle)!important}.text-muted-alt{color:var(--muted)!important}.text-accent{color:var(--accent)!important}.text-emerald{color:var(--emerald)!important}.bg-app{background-color:var(--bg)!important}.bg-app-soft{background-color:var(--bg-soft)!important}.bg-accent{background-color:var(--accent)!important}.border-soft{border-color:var(--border-soft)!important}.border-strong{border-color:var(--slate-800)!important}.border-slate-700{border-color:var(--slate-700)!important}.border-slate-800{border-color:var(--slate-800)!important}.container-portfolio{width:100%;max-width:72rem;margin-left:auto;margin-right:auto}.scroll-mt-24{scroll-margin-top:6rem}.shadow-soft-lg{box-shadow:var(--shadow-soft)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;border-bottom:1px solid var(--border-soft);background-color:rgba(3,7,18,.75);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:all .25s cubic-bezier(.16,1,.3,1)}.site-header.scrolled{box-shadow:0 10px 30px rgba(0,0,0,.4),inset 0 -1px 0 rgba(255,255,255,.05);border-color:rgba(56,189,248,.12);background-color:rgba(3,7,18,.85)}.logo-badge{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid rgba(56,189,248,.25);background:linear-gradient(135deg,rgba(8,15,37,.9),rgba(99,102,241,.15));color:var(--accent);font-size:11px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;box-shadow:0 0 15px rgba(56,189,248,.1)}.nav-link-portfolio{color:var(--subtle);text-decoration:none;font-size:12px;font-weight:500;padding:.25rem .5rem;border-radius:6px;position:relative;transition:all .18s ease}.nav-link-portfolio:hover{color:var(--text-100);background-color:rgba(255,255,255,.04)}.nav-link-portfolio.is-active{color:var(--text-50);background-color:rgba(56,189,248,.08)}.nav-link-portfolio.is-active:after{content:"";position:absolute;left:15%;right:15%;bottom:0;height:2px;background:var(--accent);border-radius:9999px;box-shadow:0 0 8px var(--accent)}.nav-link-pill{border:1px solid rgba(56,189,248,.3);border-radius:9999px;padding:.35rem 1rem;color:var(--accent);text-decoration:none;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;background:rgba(56,189,248,.04);transition:all .18s ease}.nav-link-pill:hover{background:var(--accent);color:var(--bg)!important;border-color:var(--accent);box-shadow:0 0 15px rgba(56,189,248,.35)}.hero-backdrop{position:relative;isolation:isolate}.live-dot{position:relative;display:inline-block;height:6px;width:6px;border-radius:9999px;background-color:var(--emerald)}.live-dot:after{content:"";position:absolute;inset:-3px;border-radius:9999px;background-color:rgba(52,211,153,.45);animation:live-pulse 2.4s ease-out infinite;z-index:-1}@keyframes live-pulse{0%{transform:scale(.6);opacity:.7}80%,to{transform:scale(1.8);opacity:0}}.chip{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.08);background-color:rgba(11,17,36,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:9999px;padding:.35rem .95rem;font-size:11px;font-weight:500;color:var(--text-200)}.chip,.chip-mini{text-transform:uppercase;letter-spacing:.12em}.chip-mini{display:inline-block;border:1px solid rgba(56,189,248,.15);background-color:rgba(56,189,248,.06);border-radius:9999px;padding:.15rem .6rem;font-size:10px;font-weight:600;color:var(--accent)}.btn-accent{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,var(--accent) 0,var(--accent-cyan) 100%);color:var(--bg);border:none;border-radius:9999px;padding:.6rem 1.25rem;font-size:12px;font-weight:600;text-decoration:none;box-shadow:0 4px 15px rgba(56,189,248,.25);transition:all .25s cubic-bezier(.16,1,.3,1);cursor:pointer}.btn-accent:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(56,189,248,.4);color:var(--bg)}.btn-accent:active{transform:translateY(0)}.btn-outline-soft{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.02);color:var(--text-100);border:1px solid rgba(255,255,255,.08);border-radius:9999px;padding:.6rem 1.1rem;font-size:12px;font-weight:500;text-decoration:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s ease}.btn-outline-soft:hover{border-color:var(--accent);background:rgba(56,189,248,.05);color:var(--accent);box-shadow:0 0 15px rgba(56,189,248,.1)}.btn-outline-muted{display:inline-flex;align-items:center;gap:.5rem;background:transparent;color:var(--subtle);border:1px solid rgba(255,255,255,.08);border-radius:9999px;padding:.6rem 1.1rem;font-size:12px;font-weight:500;text-decoration:none;transition:all .2s ease}.btn-outline-muted:hover{border-color:var(--text-500);color:var(--text-200);background:rgba(255,255,255,.02)}.tag-link{display:inline-flex;align-items:center;gap:.25rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.01);border-radius:9999px;padding:.3rem .75rem;font-size:11px;font-weight:500;color:var(--text-200);text-decoration:none;transition:all .2s ease}.tag-link:hover{border-color:var(--accent);color:var(--accent);background:rgba(56,189,248,.04)}.card-surface{position:relative;background:rgba(8,15,37,.45);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.06);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.05);transition:all .3s cubic-bezier(.16,1,.3,1)}.card-surface:hover{transform:translateY(-4px);border-color:rgba(56,189,248,.25);background:rgba(10,19,46,.55);box-shadow:0 15px 40px rgba(0,0,0,.5),0 0 25px rgba(56,189,248,.08),inset 0 1px 0 rgba(255,255,255,.08)}.card-surface:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}.card-static{position:relative;background:rgba(8,15,37,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.06);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.05)}.label-eyebrow{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:.35rem}.input-dark{width:100%;border-radius:10px;border:1px solid rgba(255,255,255,.08);background-color:rgba(5,10,26,.6);padding:.65rem .95rem;font-size:12.5px;color:var(--text-100);transition:all .18s ease;outline:none}.input-dark::placeholder{color:var(--text-600)}.input-dark:focus{border-color:rgba(56,189,248,.45);background-color:rgba(5,10,26,.85);box-shadow:0 0 0 3px rgba(56,189,248,.12)}.section-divider-x{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 50%,transparent)}.section-top-border{border-top:1px solid rgba(255,255,255,.06)}.timeline{position:relative;border-left:2px solid rgba(56,189,248,.15);padding-left:1.5rem;list-style:none;margin:0}.timeline-item{position:relative;margin-bottom:2rem}.timeline-item:last-child{margin-bottom:0}.timeline-dot{position:absolute;left:-2.05rem;top:5px;height:14px;width:14px;border-radius:9999px;border:2px solid rgba(255,255,255,.2);background-color:var(--bg);transition:all .25s ease;z-index:2}.timeline-dot.is-active{border-color:var(--accent);background-color:var(--accent);box-shadow:0 0 10px var(--accent)}.timeline-item:hover .timeline-dot:not(.is-active){border-color:var(--accent-purple);background-color:var(--bg-soft)}.timeline-bullet{display:inline-block;margin-top:8px;height:2px;width:12px;flex:none;background-color:var(--accent)}.reveal{opacity:0;transform:translateY(8px);transition:opacity .6s ease-out,transform .6s ease-out;will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}.skill-dot{display:inline-block;margin-top:6px;height:6px;width:6px;flex:none;border-radius:9999px;background-color:var(--text-500);transition:background-color .2s ease}.skill-card:hover .skill-dot{background-color:var(--accent);box-shadow:0 0 8px var(--accent)}.dot-emerald{display:inline-block;height:6px;width:6px;border-radius:9999px;background-color:var(--emerald)}.gradient-divider{height:1px;background:linear-gradient(90deg,rgba(255,255,255,.02),rgba(255,255,255,.08) 50%,rgba(255,255,255,.02))}.pulse-node{animation:pulse-node-active 2.5s ease-in-out infinite}.packet-flow{stroke-dasharray:6,8;animation:flow-packet 22s linear infinite}@keyframes flow-packet{to{stroke-dashoffset:-300}}@keyframes pulse-node-active{0%,to{filter:drop-shadow(0 0 2px rgba(56,189,248,.4))}50%{filter:drop-shadow(0 0 10px rgba(56,189,248,.8))}}@property --chat-angle{syntax:"<angle>";initial-value:0deg;inherits:false}.ask-strip{position:relative;border-radius:16px;background:linear-gradient(180deg,rgba(8,15,37,.6),rgba(5,10,26,.4));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.06);box-shadow:var(--shadow-soft);overflow:hidden}.ask-strip:before{content:"";position:absolute;inset:-40% -10% auto auto;width:360px;height:220px;background:radial-gradient(closest-side,rgba(56,189,248,.1),transparent 70%);pointer-events:none}.chat-input-wrap{position:relative;display:block;padding:1.5px;border-radius:9999px;background:conic-gradient(from var(--chat-angle,0deg),#38bdf8 0deg,#818cf8 80deg,#6ee7b7 160deg,#38bdf8 240deg,#6366f1 320deg,#38bdf8 1turn);animation:chat-border-rotate 5s linear infinite;box-shadow:0 8px 28px rgba(56,189,248,.1)}@keyframes chat-border-rotate{to{--chat-angle:360deg}}@supports not (background:paint(something)){.chat-input-wrap{background:linear-gradient(90deg,#38bdf8,#818cf8,#6ee7b7,#6366f1,#38bdf8);background-size:300% 100%;animation:chat-border-flow 4.5s linear infinite}@keyframes chat-border-flow{0%{background-position:0 50%}to{background-position:-300% 50%}}}.chat-input-inner{background-color:rgba(5,10,26,.94);border-radius:9999px;padding:.45rem .5rem .45rem 1.1rem}.chat-icon{color:var(--accent);flex:none}.chat-input{background:transparent;border:none;outline:none;color:var(--text-100);font-size:13px;padding:.45rem .25rem;min-width:0;width:100%}.chat-input::placeholder{color:var(--text-500)}.chat-send{flex:none;background:linear-gradient(135deg,var(--accent) 0,var(--accent-cyan) 100%);color:var(--bg);border:none;border-radius:9999px;padding:.45rem 1.25rem;font-size:12px;font-weight:700;letter-spacing:.01em;cursor:pointer;box-shadow:0 0 0 1px rgba(56,189,248,.2),0 6px 18px -6px rgba(56,189,248,.4);transition:all .2s ease}.chat-send:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 0 0 1px rgba(56,189,248,.35),0 10px 24px -8px rgba(56,189,248,.5)}.chat-send:active:not(:disabled){transform:translateY(0)}.chat-send:disabled{background:rgba(255,255,255,.08);color:rgba(255,255,255,.3);box-shadow:none;cursor:not-allowed}.chat-resume-btn{background:transparent;border:1px dashed rgba(255,255,255,.15);border-radius:9999px;color:var(--subtle);font-size:11px;padding:.35rem .95rem;cursor:pointer;transition:all .18s ease}.chat-resume-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(56,189,248,.04)}.chat-overlay{position:fixed;inset:0;z-index:100;background-color:rgba(3,7,18,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:grid;grid-template-rows:auto 1fr auto;animation:chat-overlay-in .25s cubic-bezier(.16,1,.3,1)}@keyframes chat-overlay-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.chat-overlay-glow{position:absolute;inset:-10% -10% auto auto;height:480px;width:720px;background:radial-gradient(closest-side,rgba(56,189,248,.12),rgba(99,102,241,.03) 60%,transparent 75%);pointer-events:none;z-index:0}.chat-overlay-header{position:relative;z-index:1;height:68px;border-bottom:1px solid rgba(255,255,255,.06);background-color:rgba(3,7,18,.8)}.chat-avatar{border-radius:9999px;border:1px solid rgba(56,189,248,.35);background-color:rgba(8,15,37,.8);color:var(--accent)}.chat-avatar,.chat-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px}.chat-close{border-radius:9999px;border:1px solid rgba(255,255,255,.1);background-color:rgba(255,255,255,.02);color:var(--text-200);cursor:pointer;transition:all .2s ease}.chat-close:hover{border-color:var(--accent);color:var(--accent);transform:rotate(90deg);background-color:rgba(56,189,248,.05)}.chat-overlay-body{position:relative;z-index:1;overflow-y:auto}.chat-thread{width:100%;max-width:820px;margin:0 auto}.chat-empty{border:1px dashed rgba(255,255,255,.1);border-radius:12px;padding:2.5rem;background-color:rgba(255,255,255,.01)}.chat-bubble{max-width:85%;padding:.8rem 1.1rem;border-radius:16px;font-size:13.5px;line-height:1.55;border:1px solid rgba(255,255,255,.06);animation:chat-bubble-in .25s cubic-bezier(.16,1,.3,1)}@keyframes chat-bubble-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.chat-bubble-user{background:linear-gradient(135deg,rgba(56,189,248,.15),rgba(99,102,241,.1));border-color:rgba(56,189,248,.3);color:var(--text-100);border-top-right-radius:4px}.chat-bubble-bot{background-color:rgba(8,15,37,.6);border-color:rgba(255,255,255,.06);color:var(--text-200);border-top-left-radius:4px}.chat-typing{display:inline-flex;gap:4px;padding:.8rem 1.1rem;align-items:center}.chat-typing span{width:6px;height:6px;border-radius:9999px;background-color:var(--text-500);animation:chat-typing-bounce 1.2s ease-in-out infinite}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-3px);opacity:1}}.chat-overlay-footer{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.06);background-color:rgba(3,7,18,.9)}.chat-cursor{display:inline-block;width:2px;height:1.1em;margin-left:2px;vertical-align:text-bottom;background-color:var(--accent);animation:chat-cursor-blink 1s steps(2,start) infinite}@keyframes chat-cursor-blink{to{visibility:hidden}}.chat-stop{background:linear-gradient(135deg,rgba(239,68,68,.25),rgba(220,38,38,.18))!important;border:1px solid rgba(239,68,68,.4)!important;color:rgb(254,226,226)!important}.chat-stop:hover{filter:brightness(1.1);box-shadow:0 0 15px rgba(239,68,68,.2)!important}