@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-300-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-400-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-500-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-600-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-700-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-800-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-400-italic.woff2)format("woff2")}:root{--black:#010409;--bg:#0d1117;--surface:#161b22;--surface-2:#1c2430;--surface-3:#21262d;--overlay:#0d1117f2;--border:#30363d;--border-muted:#21262d;--border-strong:#3d444d;--text:#e6edf3;--text-muted:#8b949e;--text-faint:#5a636d;--text-on-accent:#04130b;--accent:#0f8;--accent-dim:#00cc6e;--accent-soft:#0f82;--accent-faint:#00ff880f;--accent-line:#0f85;--blue:#58a6ff;--blue-dim:#388bfd;--blue-soft:#58a6ff1f;--success:#3fb950;--warning:#d29922;--danger:#f85149;--danger-soft:#f851491f;--dot-red:#ff5f56;--dot-amber:#ffbd2e;--dot-green:#27c93f;--tech-python:#ffd43b;--tech-fastapi:#05998b;--tech-grpc:#4285f4;--tech-postgres:#4169e1;--tech-docker:#2496ed;--tech-redis:#ff4438;--color-bg:var(--bg);--surface-card:var(--surface);--surface-inset:var(--surface-3);--text-body:var(--text);--text-secondary:var(--text-muted);--link:var(--blue);--focus-ring:var(--accent);--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", "Fira Code", Menlo, Consolas, monospace;--font-body:var(--font-mono);--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--fs-2xs:.6875rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1.0625rem;--fs-lg:1.375rem;--fs-xl:1.75rem;--fs-2xl:2.5rem;--fs-3xl:3.5rem;--fs-4xl:4.75rem;--lh-tight:1.1;--lh-snug:1.3;--lh-normal:1.6;--lh-relaxed:1.75;--ls-tight:-.02em;--ls-normal:0;--ls-wide:.04em;--ls-wider:.14em;--text-display:var(--fw-bold) var(--fs-3xl)/var(--lh-tight) var(--font-mono);--text-h1:var(--fw-bold) var(--fs-2xl)/var(--lh-tight) var(--font-mono);--text-h2:var(--fw-semibold) var(--fs-xl)/var(--lh-snug) var(--font-mono);--text-lead:var(--fw-regular) var(--fs-md)/var(--lh-relaxed) var(--font-mono);--text-default:var(--fw-regular) var(--fs-base)/var(--lh-normal) var(--font-mono);--text-caption:var(--fw-regular) var(--fs-xs)/var(--lh-snug) var(--font-mono);--text-kicker:var(--fw-medium) var(--fs-xs)/var(--lh-snug) var(--font-mono);--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--radius-xs:3px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--border-width:1px;--border-default:var(--border-width) solid var(--border);--container:1080px;--container-wide:1240px;--gutter:var(--space-5);--shadow-xs:0 1px 2px #01040980;--shadow-sm:0 2px 6px #0104098c;--shadow-md:0 8px 24px #01040999;--shadow-lg:0 16px 48px #010409b3;--glow-accent:0 0 0 1px var(--accent-line), 0 0 16px -2px var(--accent-soft);--glow-accent-strong:0 0 0 1px var(--accent), 0 0 24px -4px #00ff8873;--glow-text:0 0 12px #00ff8873;--glow-blue:0 0 16px -2px #58a6ff66;--ring:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--inset-top:inset 0 1px 0 #ffffff08;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur:.2s;--dur-slow:.36s;--transition:var(--dur) var(--ease-out);--blink:1.1s step-end infinite;--grid-line:#ffffff05;--scanline:#00ff8804}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes term-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 0 1px var(--accent-line), 0 0 10px -4px var(--accent-soft)}50%{box-shadow:0 0 0 1px var(--accent), 0 0 20px -2px #0f86}}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-300-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-400-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-500-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-600-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-700-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-800-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/jetbrains-mono@latest/latin-400-italic.woff2)format("woff2")}:root{--black:#010409;--bg:#0d1117;--surface:#161b22;--surface-2:#1c2430;--surface-3:#21262d;--overlay:#0d1117f2;--border:#30363d;--border-muted:#21262d;--border-strong:#3d444d;--text:#e6edf3;--text-muted:#8b949e;--text-faint:#5a636d;--text-on-accent:#04130b;--accent:#0f8;--accent-dim:#00cc6e;--accent-soft:#0f82;--accent-faint:#00ff880f;--accent-line:#0f85;--blue:#58a6ff;--blue-dim:#388bfd;--blue-soft:#58a6ff1f;--success:#3fb950;--warning:#d29922;--danger:#f85149;--danger-soft:#f851491f;--dot-red:#ff5f56;--dot-amber:#ffbd2e;--dot-green:#27c93f;--tech-python:#ffd43b;--tech-fastapi:#05998b;--tech-grpc:#4285f4;--tech-postgres:#4169e1;--tech-docker:#2496ed;--tech-redis:#ff4438;--color-bg:var(--bg);--surface-card:var(--surface);--surface-inset:var(--surface-3);--text-body:var(--text);--text-secondary:var(--text-muted);--link:var(--blue);--focus-ring:var(--accent);--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Code", "Fira Code", Menlo, Consolas, monospace;--font-body:var(--font-mono);--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--fs-2xs:.6875rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1.0625rem;--fs-lg:1.375rem;--fs-xl:1.75rem;--fs-2xl:2.5rem;--fs-3xl:3.5rem;--fs-4xl:4.75rem;--lh-tight:1.1;--lh-snug:1.3;--lh-normal:1.6;--lh-relaxed:1.75;--ls-tight:-.02em;--ls-normal:0;--ls-wide:.04em;--ls-wider:.14em;--text-display:var(--fw-bold) var(--fs-3xl)/var(--lh-tight) var(--font-mono);--text-h1:var(--fw-bold) var(--fs-2xl)/var(--lh-tight) var(--font-mono);--text-h2:var(--fw-semibold) var(--fs-xl)/var(--lh-snug) var(--font-mono);--text-lead:var(--fw-regular) var(--fs-md)/var(--lh-relaxed) var(--font-mono);--text-default:var(--fw-regular) var(--fs-base)/var(--lh-normal) var(--font-mono);--text-caption:var(--fw-regular) var(--fs-xs)/var(--lh-snug) var(--font-mono);--text-kicker:var(--fw-medium) var(--fs-xs)/var(--lh-snug) var(--font-mono);--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--radius-xs:3px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--border-width:1px;--border-default:var(--border-width) solid var(--border);--container:1080px;--container-wide:1240px;--gutter:var(--space-5);--shadow-xs:0 1px 2px #01040980;--shadow-sm:0 2px 6px #0104098c;--shadow-md:0 8px 24px #01040999;--shadow-lg:0 16px 48px #010409b3;--glow-accent:0 0 0 1px var(--accent-line), 0 0 16px -2px var(--accent-soft);--glow-accent-strong:0 0 0 1px var(--accent), 0 0 24px -4px #00ff8873;--glow-text:0 0 12px #00ff8873;--glow-blue:0 0 16px -2px #58a6ff66;--ring:0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--inset-top:inset 0 1px 0 #ffffff08;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur:.2s;--dur-slow:.36s;--transition:var(--dur) var(--ease-out);--blink:1.1s step-end infinite;--grid-line:#ffffff05;--scanline:#00ff8804}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:var(--text-default);font-feature-settings:"liga" 1, "calt" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4{font-family:var(--font-mono);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--text);margin:0}p{line-height:var(--lh-normal);margin:0}a{color:var(--link);transition:color var(--transition);text-decoration:none}code,pre,kbd{font-family:var(--font-mono)}::selection{background:var(--accent-soft);color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);border:3px solid var(--bg)}::-webkit-scrollbar-track{background:0 0}:focus-visible{box-shadow:var(--ring);outline:none}.term-grid{background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:32px 32px}:root{--gr:#4ade80;--gr-soft:#4ade801f;--gr-line:#4ade8066}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html,body{margin:0;padding:0}body{color:#e6edf3;font-family:var(--font-mono);background:#0a0e17;overflow-x:hidden}a{color:#58a6ff;text-decoration:none}a:hover{color:var(--gr)}img{max-width:100%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes aiglow{0%,to{box-shadow:0 0 14px #22d3ee73,0 0 30px #4ade804d}50%{box-shadow:0 0 22px #22d3eed9,0 0 48px #4ade808c}}@keyframes fadeup{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes glowpulse{0%,to{opacity:.4}50%{opacity:.8}}.nav-link:hover{color:var(--gr)}.lang-btn:focus-visible{outline:2px solid var(--gr);outline-offset:-2px}.btn-primary:hover{box-shadow:0 0 0 1px var(--gr), 0 10px 28px -6px #4ade8099;background:#5eea90}.btn-primary:active{transform:translateY(1px)}.btn-primary:focus-visible{outline:2px solid var(--gr);outline-offset:3px}.btn-ghost:hover{color:var(--gr);border-color:var(--gr);box-shadow:0 0 20px -4px #4ade8066}.btn-ghost:active{transform:translateY(1px)}.btn-ghost:focus-visible{outline:2px solid var(--gr);outline-offset:3px}.card:hover{border-color:var(--gr-line);transform:translateY(-4px);box-shadow:0 0 24px -6px #4ade8040}.card:focus-visible{outline:2px solid var(--gr);outline-offset:2px}.contact-card:hover{border-color:var(--gr-line);box-shadow:0 0 20px -6px #4ade8033}.contact-card:focus-visible{outline:2px solid var(--gr);outline-offset:2px}.media-tile:hover{border-color:#4ade804d;box-shadow:0 0 20px -6px #4ade8033}.tab:hover{border-color:var(--gr);color:var(--gr)}.tab:focus-visible{outline:2px solid var(--gr);outline-offset:2px}.field:focus{border-color:var(--gr);box-shadow:0 0 0 2px #4ade8026}.field::placeholder{color:#5a636d}.send-btn:not(:disabled):hover{background:#5eea90;box-shadow:0 10px 28px -6px #4ade8080}.send-btn:focus-visible{outline:2px solid var(--gr);outline-offset:3px}.dot:focus-visible{outline:2px solid var(--gr);outline-offset:2px}.ai-btn:focus-visible{outline:2px solid var(--gr);outline-offset:4px}.skeleton{background:linear-gradient(90deg,#161b22 0%,#1c2430 40%,#161b22 80%) 0 0/400px 100%;animation:1.4s linear infinite shimmer}
