<!DOCTYPE html>
<html lang="es" class="scroll-smooth">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>yercode.cl | Yerko - Backend & DevOps</title>
    <meta name="description" content="Yerko - Backend Developer & DevOps Engineer. Linux, Docker, Go, .NET Core, SQL Server, PostgreSQL.">
    <!-- Favicon -->
    <link rel="icon" type="image/svg+xml" href="/favicon.svg">
    <!-- Open Graph / WhatsApp / Social -->
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://yercode.cl/">
    <meta property="og:title" content="yercode.cl | Yerko - Backend & DevOps">
    <meta property="og:description" content="Backend Developer & DevOps Engineer. Go, .NET Core, Docker, Linux, SQL Server, PostgreSQL.">
    <meta property="og:image" content="https://yercode.cl/og-image.png">
    <meta property="og:image:type" content="image/png">
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="630">
    <!-- Twitter Card -->
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="yercode.cl | Yerko - Backend & DevOps">
    <meta name="twitter:description" content="Backend Developer & DevOps Engineer. Go, .NET Core, Docker, Linux.">
    <meta name="twitter:image" content="https://yercode.cl/og-image.png">
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Syne:wght@400;500;600;700;800&display=swap" rel="stylesheet">
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    fontFamily: {
                        mono: ['IBM Plex Mono', 'monospace'],
                        display: ['Syne', 'sans-serif'],
                    },
                    colors: {
                        phosphor: '#00ff41',
                        cyan: '#00d4ff',
                        crt: {
                            dark: '#0a0a0f',
                            darker: '#050508',
                            surface: '#0f0f1a',
                            border: '#1a1a2e',
                        }
                    },
                    animation: {
                        'blink': 'blink 1s step-end infinite',
                        'glow-pulse': 'glow-pulse 2s ease-in-out infinite alternate',
                        'scanline': 'scanline 8s linear infinite',
                        'flicker': 'flicker 0.15s infinite',
                        'fade-up': 'fade-up 0.6s ease-out forwards',
                        'slide-in': 'slide-in 0.5s ease-out forwards',
                    },
                    keyframes: {
                        blink: { '0%, 100%': { opacity: '1' }, '50%': { opacity: '0' } },
                        'glow-pulse': {
                            '0%': { textShadow: '0 0 4px #00ff41, 0 0 11px #00ff41, 0 0 19px #00ff41' },
                            '100%': { textShadow: '0 0 4px #00ff41, 0 0 20px #00ff41, 0 0 40px #00ff41, 0 0 80px #00ff41' }
                        },
                        scanline: {
                            '0%': { transform: 'translateY(-100%)' },
                            '100%': { transform: 'translateY(100vh)' }
                        },
                        flicker: {
                            '0%': { opacity: '0.97' },
                            '5%': { opacity: '0.95' },
                            '10%': { opacity: '0.97' },
                            '15%': { opacity: '0.94' },
                            '20%': { opacity: '0.98' },
                            '100%': { opacity: '0.98' }
                        },
                        'fade-up': {
                            '0%': { opacity: '0', transform: 'translateY(30px)' },
                            '100%': { opacity: '1', transform: 'translateY(0)' }
                        },
                        'slide-in': {
                            '0%': { opacity: '0', transform: 'translateX(-20px)' },
                            '100%': { opacity: '1', transform: 'translateX(0)' }
                        }
                    }
                }
            }
        }
    </script>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }

        html { background: #050508; }

        body {
            background: #0a0a0f;
            color: #b4bfb8;
            font-family: 'IBM Plex Mono', monospace;
            overflow-x: hidden;
        }

        /* CRT Screen Effect */
        .crt-overlay {
            pointer-events: none;
            position: fixed;
            inset: 0;
            z-index: 9999;
            background: repeating-linear-gradient(
                0deg,
                transparent,
                transparent 2px,
                rgba(0, 0, 0, 0.08) 2px,
                rgba(0, 0, 0, 0.08) 4px
            );
        }

        .crt-overlay::after {
            content: '';
            position: fixed;
            inset: 0;
            background: radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.4) 100%);
        }

        /* Scanline sweep */
        .scanline-sweep {
            pointer-events: none;
            position: fixed;
            left: 0;
            width: 100%;
            height: 100px;
            background: linear-gradient(
                180deg,
                transparent 0%,
                rgba(0, 255, 65, 0.03) 50%,
                transparent 100%
            );
            animation: scanline 8s linear infinite;
            z-index: 9998;
        }

        /* Phosphor glow text */
        .glow-text {
            color: #00ff41;
            text-shadow: 0 0 4px #00ff41, 0 0 11px #00ff41, 0 0 19px rgba(0, 255, 65, 0.4);
        }

        .glow-text-cyan {
            color: #00d4ff;
            text-shadow: 0 0 4px #00d4ff, 0 0 11px #00d4ff, 0 0 19px rgba(0, 212, 255, 0.4);
        }

        .glow-text-subtle {
            color: #00ff41;
            text-shadow: 0 0 4px rgba(0, 255, 65, 0.6);
        }

        /* Cursor blink */
        .cursor-block {
            display: inline-block;
            width: 10px;
            height: 1.2em;
            background: #00ff41;
            vertical-align: text-bottom;
            animation: blink 1s step-end infinite;
            box-shadow: 0 0 6px #00ff41;
        }

        /* Terminal window chrome */
        .terminal-window {
            border: 1px solid #1a1a2e;
            border-radius: 8px;
            overflow: hidden;
            background: rgba(10, 10, 15, 0.9);
            backdrop-filter: blur(10px);
        }

        .terminal-titlebar {
            background: #0f0f1a;
            padding: 8px 16px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-bottom: 1px solid #1a1a2e;
        }

        .terminal-controls {
            display: flex;
            align-items: center;
            gap: 6px;
            font-family: 'IBM Plex Mono', monospace;
            font-size: 11px;
        }

        .terminal-controls span {
            color: #444;
            cursor: default;
            transition: color 0.2s;
        }

        .terminal-controls span:hover {
            color: #00ff41;
        }

        /* Blog card hover effect */
        .blog-card {
            position: relative;
            transition: all 0.3s ease;
            border: 1px solid #1a1a2e;
        }

        .blog-card::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: inherit;
            padding: 1px;
            background: linear-gradient(135deg, transparent 40%, #00ff41 50%, #00d4ff 60%, transparent 70%);
            -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            -webkit-mask-composite: xor;
            mask-composite: exclude;
            opacity: 0;
            transition: opacity 0.4s ease;
        }

        .blog-card:hover::before {
            opacity: 1;
        }

        .blog-card:hover {
            border-color: transparent;
            transform: translateY(-4px);
            box-shadow: 0 10px 40px rgba(0, 255, 65, 0.08);
        }

        /* Skill bar */
        .skill-bar-fill {
            height: 100%;
            border-radius: 2px;
            transition: width 1.5s cubic-bezier(0.22, 1, 0.36, 1);
            box-shadow: 0 0 8px rgba(0, 255, 65, 0.4);
        }

        /* Matrix rain canvas */
        #matrix-canvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
            opacity: 0.04;
            pointer-events: none;
        }

        /* Scroll reveal */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: all 0.7s cubic-bezier(0.22, 1, 0.36, 1);
        }

        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Nav link hover */
        .nav-link {
            position: relative;
        }

        .nav-link::after {
            content: '';
            position: absolute;
            bottom: -2px;
            left: 0;
            width: 0;
            height: 1px;
            background: #00ff41;
            box-shadow: 0 0 6px #00ff41;
            transition: width 0.3s ease;
        }

        .nav-link:hover::after {
            width: 100%;
        }

        /* Tag pill */
        .tag-pill {
            border: 1px solid rgba(0, 255, 65, 0.2);
            transition: all 0.2s ease;
        }

        .tag-pill:hover {
            border-color: #00ff41;
            box-shadow: 0 0 8px rgba(0, 255, 65, 0.2);
            color: #00ff41;
        }

        /* ASCII art responsive */
        .ascii-art {
            font-size: clamp(0.35rem, 1.2vw, 0.75rem);
            line-height: 1.2;
            letter-spacing: 0.05em;
        }

        /* Noise texture */
        .noise-bg {
            position: fixed;
            inset: 0;
            z-index: 1;
            pointer-events: none;
            opacity: 0.015;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
            background-repeat: repeat;
            background-size: 256px;
        }

        /* Selection color */
        ::selection {
            background: rgba(0, 255, 65, 0.25);
            color: #00ff41;
        }

        /* Scrollbar */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: #050508; }
        ::-webkit-scrollbar-thumb { background: #1a1a2e; border-radius: 3px; }
        ::-webkit-scrollbar-thumb:hover { background: #00ff41; }

        /* Mobile adjustments */
        @media (max-width: 768px) {
            .ascii-art { display: none; }
        }

        /* Stagger children animation */
        .stagger-children > * {
            opacity: 0;
            transform: translateY(20px);
        }

        .stagger-children.visible > *:nth-child(1) { animation: fade-up 0.5s 0.1s ease-out forwards; }
        .stagger-children.visible > *:nth-child(2) { animation: fade-up 0.5s 0.2s ease-out forwards; }
        .stagger-children.visible > *:nth-child(3) { animation: fade-up 0.5s 0.3s ease-out forwards; }
        .stagger-children.visible > *:nth-child(4) { animation: fade-up 0.5s 0.4s ease-out forwards; }
    </style>
</head>
<body class="relative">

    <!-- Background effects -->
    <canvas id="matrix-canvas"></canvas>
    <div class="noise-bg"></div>
    <div class="crt-overlay"></div>
    <div class="scanline-sweep"></div>

    <!-- Navigation -->
    <nav id="navbar" class="fixed top-0 left-0 right-0 z-50 transition-all duration-500" style="background: rgba(5,5,8,0);">
        <div class="max-w-6xl mx-auto px-6 py-4 flex items-center justify-between">
            <a href="#hero" class="font-display font-bold text-lg glow-text tracking-wide">
                ~/yercode<span class="animate-blink">_</span>
            </a>
            <div class="hidden md:flex items-center gap-8 text-sm">
                <a href="#blog" class="nav-link text-gray-400 hover:text-phosphor transition-colors">
                    <span class="text-phosphor/60">01.</span> blog
                </a>
                <a href="#about" class="nav-link text-gray-400 hover:text-phosphor transition-colors">
                    <span class="text-phosphor/60">02.</span> about
                </a>
                <a href="#stack" class="nav-link text-gray-400 hover:text-phosphor transition-colors">
                    <span class="text-phosphor/60">03.</span> stack
                </a>
                <a href="#contact" class="nav-link text-gray-400 hover:text-phosphor transition-colors">
                    <span class="text-phosphor/60">04.</span> contact
                </a>
            </div>
            <!-- Mobile menu button -->
            <button id="mobile-menu-btn" class="md:hidden text-phosphor p-2">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
                    <path d="M3 12h18M3 6h18M3 18h18"/>
                </svg>
            </button>
        </div>
        <!-- Mobile menu -->
        <div id="mobile-menu" class="md:hidden hidden bg-crt-darker/95 backdrop-blur-lg border-t border-crt-border">
            <div class="px-6 py-4 flex flex-col gap-4 text-sm">
                <a href="#blog" class="text-gray-400 hover:text-phosphor transition-colors">01. blog</a>
                <a href="#about" class="text-gray-400 hover:text-phosphor transition-colors">02. about</a>
                <a href="#stack" class="text-gray-400 hover:text-phosphor transition-colors">03. stack</a>
                <a href="#contact" class="text-gray-400 hover:text-phosphor transition-colors">04. contact</a>
            </div>
        </div>
    </nav>

    <main class="relative z-10">

        <!-- ==================== HERO ==================== -->
        <section id="hero" class="min-h-screen flex items-center justify-center px-6 pt-20">
            <div class="max-w-4xl w-full">
                <!-- ASCII Art -->
                <div class="ascii-art glow-text-subtle mb-8 text-center opacity-60 select-none" aria-hidden="true">
<pre>
                 _                    _            _
 _   _  ___ _ __| | _____ ___  ___  __| | _____   _| |
| | | |/ _ \ '__| |/ / __/ _ \/ __|/ _` |/ _ \ \ / / |
| |_| |  __/ |  |   | (_| (_) \__ \ (_| |  __/\ V /| |
 \__, |\___|_|  |_|\_\___\___/|___/\__,_|\___| \_/ |_|
 |___/
</pre>
                </div>

                <!-- Terminal Window -->
                <div class="terminal-window max-w-3xl mx-auto">
                    <div class="terminal-titlebar">
                        <span class="text-xs text-gray-500 font-mono">yerko@server:~</span>
                        <div class="terminal-controls">
                            <span>[_]</span>
                            <span>[&square;]</span>
                            <span>[x]</span>
                        </div>
                    </div>
                    <div class="p-6 md:p-8 font-mono">
                        <div class="mb-4">
                            <span class="text-phosphor/70">yerko@server</span><span class="text-gray-500">:</span><span class="text-cyan/70">~</span><span class="text-gray-500">$</span>
                            <span id="typed-command" class="text-gray-300 ml-1"></span>
                            <span id="cursor-1" class="cursor-block"></span>
                        </div>
                        <div id="typed-output" class="hidden">
                            <div class="mt-6 space-y-3">
                                <p class="text-2xl md:text-4xl font-display font-bold text-white leading-tight">
                                    Hola, soy <span class="glow-text">Yerko</span>
                                </p>
                                <p class="text-lg md:text-xl text-gray-400 font-display">
                                    Backend Developer <span class="glow-text-cyan">&</span> DevOps Engineer
                                </p>
                                <p class="text-sm text-gray-500 mt-4 leading-relaxed max-w-lg">
                                    Construyo sistemas robustos con Go, .NET Core, Docker y Linux.<br>
                                    Arquitectura, bases de datos y automatizacion de infraestructura.
                                </p>
                            </div>
                            <div class="mt-8 flex flex-wrap gap-3">
                                <a href="#blog" class="inline-flex items-center gap-2 px-5 py-2.5 bg-phosphor/10 border border-phosphor/30 text-phosphor text-sm rounded hover:bg-phosphor/20 hover:border-phosphor/60 transition-all duration-300 hover:shadow-[0_0_20px_rgba(0,255,65,0.15)]">
                                    <span>cat blog.md</span>
                                    <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/></svg>
                                </a>
                                <a href="#about" class="inline-flex items-center gap-2 px-5 py-2.5 border border-crt-border text-gray-400 text-sm rounded hover:border-cyan/40 hover:text-cyan transition-all duration-300">
                                    <span>whoami</span>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>

                <!-- Scroll indicator -->
                <div class="mt-16 text-center opacity-40">
                    <div class="inline-flex flex-col items-center gap-2 text-xs text-gray-500">
                        <span>scroll</span>
                        <svg class="w-4 h-4 animate-bounce" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 14l-7 7m0 0l-7-7m7 7V3"/>
                        </svg>
                    </div>
                </div>
            </div>
        </section>

        <!-- ==================== BLOG ==================== -->
        <section id="blog" class="py-24 md:py-32 px-6">
            <div class="max-w-6xl mx-auto">
                <div class="reveal mb-16">
                    <div class="flex items-center gap-4 mb-2">
                        <span class="text-phosphor/50 font-mono text-sm">01</span>
                        <h2 class="font-display font-bold text-3xl md:text-4xl text-white">Blog</h2>
                        <div class="flex-1 h-px bg-gradient-to-r from-crt-border to-transparent"></div>
                    </div>
                    <p class="text-gray-500 text-sm mt-2 ml-10">Notas sobre backend, DevOps y tecnologia en general.</p>
                </div>

                <div class="grid md:grid-cols-2 gap-6 stagger-children">

                    <!-- Post 1 -->
                    <article class="blog-card rounded-lg bg-crt-surface/50 p-6 group">
                        <div class="flex items-center gap-2 mb-4 text-xs text-gray-500">
                            <span class="text-phosphor/50">$</span>
                            <time>2026-02-01</time>
                            <span class="text-crt-border">|</span>
                            <span class="tag-pill px-2 py-0.5 rounded-full text-gray-400">Docker</span>
                            <span class="tag-pill px-2 py-0.5 rounded-full text-gray-400">DevOps</span>
                        </div>
                        <h3 class="font-display font-semibold text-lg text-white mb-3 group-hover:text-phosphor transition-colors">
                            Docker Multi-Stage Builds: Imagenes 10x mas Livianas
                        </h3>
                        <p class="text-sm text-gray-400 leading-relaxed mb-4">
                            Como reduje una imagen de Go de 1.2GB a 12MB usando multi-stage builds.
                            El truco esta en separar el build environment del runtime y usar scratch o alpine como base final.
                        </p>
                        <div class="flex items-center gap-2 text-xs text-phosphor/60 group-hover:text-phosphor/80 transition-colors">
                            <span>cat post.md</span>
                            <svg class="w-3 h-3 transform group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>
                        </div>
                    </article>

                    <!-- Post 2 -->
                    <article class="blog-card rounded-lg bg-crt-surface/50 p-6 group">
                        <div class="flex items-center gap-2 mb-4 text-xs text-gray-500">
                            <span class="text-phosphor/50">$</span>
                            <time>2026-01-20</time>
                            <span class="text-crt-border">|</span>
                            <span class="tag-pill px-2 py-0.5 rounded-full text-gray-400">.NET Core</span>
                            <span class="tag-pill px-2 py-0.5 rounded-full text-gray-400">API</span>
                        </div>
                        <h3 class="font-display font-semibold text-lg text-white mb-3 group-hover:text-phosphor transition-colors">
                            APIs en .NET Core con SQL Server: Clean Architecture en la Practica
                        </h3>
                        <p class="text-sm text-gray-400 leading-relaxed mb-4">
                            Estructurando una Web API en .NET Core siguiendo Clean Architecture,
                            Entity Framework con SQL Server, y por que separar capas no es overengineering.
                        </p>
                        <div class="flex items-center gap-2 text-xs text-phosphor/60 group-hover:text-phosphor/80 transition-colors">
                            <span>cat post.md</span>
                            <svg class="w-3 h-3 transform group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>
                        </div>
                    </article>

                    <!-- Post 3 -->
                    <article class="blog-card rounded-lg bg-crt-surface/50 p-6 group">
                        <div class="flex items-center gap-2 mb-4 text-xs text-gray-500">
                            <span class="text-phosphor/50">$</span>
                            <time>2026-01-08</time>
                            <span class="text-crt-border">|</span>
                            <span class="tag-pill px-2 py-0.5 rounded-full text-gray-400">Linux</span>
                            <span class="tag-pill px-2 py-0.5 rounded-full text-gray-400">Security</span>
                        </div>
                        <h3 class="font-display font-semibold text-lg text-white mb-3 group-hover:text-phosphor transition-colors">
                            Hardening de Servidores Linux: Checklist para Produccion
                        </h3>
                        <p class="text-sm text-gray-400 leading-relaxed mb-4">
                            SSH keys, fail2ban, UFW, usuarios no-root, y todas las cosas que deberias
                            configurar ANTES de exponer tu servidor a internet. Aprendi por las malas.
                        </p>
                        <div class="flex items-center gap-2 text-xs text-phosphor/60 group-hover:text-phosphor/80 transition-colors">
                            <span>cat post.md</span>
                            <svg class="w-3 h-3 transform group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>
                        </div>
                    </article>

                    <!-- Post 4 -->
                    <article class="blog-card rounded-lg bg-crt-surface/50 p-6 group">
                        <div class="flex items-center gap-2 mb-4 text-xs text-gray-500">
                            <span class="text-phosphor/50">$</span>
                            <time>2025-12-15</time>
                            <span class="text-crt-border">|</span>
                            <span class="tag-pill px-2 py-0.5 rounded-full text-gray-400">Go</span>
                            <span class="tag-pill px-2 py-0.5 rounded-full text-gray-400">Backend</span>
                        </div>
                        <h3 class="font-display font-semibold text-lg text-white mb-3 group-hover:text-phosphor transition-colors">
                            Por que Go es mi Nuevo Lenguaje Favorito para APIs
                        </h3>
                        <p class="text-sm text-gray-400 leading-relaxed mb-4">
                            Viniendo de Python/Django, Go se siente como descubrir que tu auto tenia
                            un modo turbo escondido. Goroutines, compilacion a binario, y 0 dependencias.
                        </p>
                        <div class="flex items-center gap-2 text-xs text-phosphor/60 group-hover:text-phosphor/80 transition-colors">
                            <span>cat post.md</span>
                            <svg class="w-3 h-3 transform group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>
                        </div>
                    </article>

                </div>
            </div>
        </section>

        <!-- ==================== ABOUT ==================== -->
        <section id="about" class="py-24 md:py-32 px-6">
            <div class="max-w-6xl mx-auto">
                <div class="reveal mb-16">
                    <div class="flex items-center gap-4 mb-2">
                        <span class="text-phosphor/50 font-mono text-sm">02</span>
                        <h2 class="font-display font-bold text-3xl md:text-4xl text-white">About</h2>
                        <div class="flex-1 h-px bg-gradient-to-r from-crt-border to-transparent"></div>
                    </div>
                </div>

                <div class="reveal grid md:grid-cols-5 gap-12 items-start">
                    <!-- Profile Info -->
                    <div class="md:col-span-3 space-y-6">
                        <div class="terminal-window">
                            <div class="terminal-titlebar">
                                <span class="text-xs text-gray-500 font-mono">whoami.sh</span>
                                <div class="terminal-controls">
                                    <span>[_]</span>
                                    <span>[&square;]</span>
                                    <span>[x]</span>
                                </div>
                            </div>
                            <div class="p-6 space-y-4 text-sm">
                                <div>
                                    <span class="text-phosphor/70">$</span>
                                    <span class="text-gray-300 ml-2">whoami</span>
                                </div>
                                <div class="pl-4 border-l-2 border-phosphor/20 space-y-3">
                                    <p class="text-gray-300 leading-relaxed">
                                        Soy <span class="text-white font-semibold">Yerko</span>, desarrollador backend y DevOps
                                        con base en Chile. Me apasiona construir sistemas que sean rapidos,
                                        seguros y con arquitectura limpia.
                                    </p>
                                    <p class="text-gray-400 leading-relaxed">
                                        Mi dia a dia involucra escribir APIs en <span class="text-cyan">Go</span> y
                                        <span class="text-cyan">.NET Core</span>, containerizar todo con
                                        <span class="text-cyan">Docker</span>, y administrar servidores
                                        <span class="text-cyan">Linux</span> en <span class="text-cyan">Digital Ocean</span>.
                                    </p>
                                    <p class="text-gray-400 leading-relaxed">
                                        Bases de datos con <span class="text-cyan">SQL Server</span> y
                                        <span class="text-cyan">PostgreSQL</span>. Nociones solidas de arquitectura
                                        de software. Mi editor favorito es <span class="text-cyan">Vim</span>.
                                    </p>
                                </div>
                                <div class="pt-2">
                                    <span class="text-phosphor/70">$</span>
                                    <span class="text-gray-300 ml-2">cat interests.txt</span>
                                </div>
                                <div class="flex flex-wrap gap-2 pl-4">
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">Linux</span>
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">Docker</span>
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">Go</span>
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">.NET Core</span>
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">SQL Server</span>
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">PostgreSQL</span>
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">Arquitectura</span>
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">Digital Ocean</span>
                                    <span class="tag-pill px-3 py-1 rounded text-xs text-gray-400">Vim</span>
                                </div>
                            </div>
                        </div>
                    </div>

                    <!-- Stats / Quick Info -->
                    <div class="md:col-span-2 space-y-4">
                        <div class="border border-crt-border rounded-lg p-5 bg-crt-surface/30">
                            <div class="text-xs text-gray-500 mb-1 uppercase tracking-wider">Location</div>
                            <div class="text-gray-300 flex items-center gap-2">
                                <span class="text-phosphor">></span> Chile
                            </div>
                        </div>
                        <div class="border border-crt-border rounded-lg p-5 bg-crt-surface/30">
                            <div class="text-xs text-gray-500 mb-1 uppercase tracking-wider">Focus</div>
                            <div class="text-gray-300 flex items-center gap-2">
                                <span class="text-phosphor">></span> Backend & DevOps
                            </div>
                        </div>
                        <div class="border border-crt-border rounded-lg p-5 bg-crt-surface/30">
                            <div class="text-xs text-gray-500 mb-1 uppercase tracking-wider">OS</div>
                            <div class="text-gray-300 flex items-center gap-2">
                                <span class="text-phosphor">></span> Linux (btw)
                            </div>
                        </div>
                        <div class="border border-crt-border rounded-lg p-5 bg-crt-surface/30">
                            <div class="text-xs text-gray-500 mb-1 uppercase tracking-wider">Editor</div>
                            <div class="text-gray-300 flex items-center gap-2">
                                <span class="text-phosphor">></span> Vim
                            </div>
                        </div>
                        <div class="border border-crt-border rounded-lg p-5 bg-crt-surface/30">
                            <div class="text-xs text-gray-500 mb-1 uppercase tracking-wider">Status</div>
                            <div class="text-phosphor flex items-center gap-2 text-sm">
                                <span class="w-2 h-2 rounded-full bg-phosphor animate-pulse"></span>
                                Disponible para proyectos
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- ==================== STACK ==================== -->
        <section id="stack" class="py-24 md:py-32 px-6">
            <div class="max-w-6xl mx-auto">
                <div class="reveal mb-16">
                    <div class="flex items-center gap-4 mb-2">
                        <span class="text-phosphor/50 font-mono text-sm">03</span>
                        <h2 class="font-display font-bold text-3xl md:text-4xl text-white">Stack</h2>
                        <div class="flex-1 h-px bg-gradient-to-r from-crt-border to-transparent"></div>
                    </div>
                </div>

                <div class="reveal grid md:grid-cols-2 gap-8">
                    <!-- Languages & Frameworks -->
                    <div class="space-y-5">
                        <h3 class="text-sm text-gray-500 uppercase tracking-wider mb-6 flex items-center gap-2">
                            <span class="text-phosphor">#</span> Languages & Frameworks
                        </h3>

                        <div class="space-y-4">
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">Go</span>
                                    <span class="text-phosphor/60">88%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-phosphor/80 to-phosphor" data-width="88"></div>
                                </div>
                            </div>
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">C# / .NET Core</span>
                                    <span class="text-phosphor/60">85%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-cyan/80 to-cyan" data-width="85"></div>
                                </div>
                            </div>
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">SQL Server / PostgreSQL</span>
                                    <span class="text-phosphor/60">85%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-phosphor/80 to-phosphor" data-width="85"></div>
                                </div>
                            </div>
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">Bash / Shell</span>
                                    <span class="text-phosphor/60">82%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-cyan/80 to-cyan" data-width="82"></div>
                                </div>
                            </div>
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">Arquitectura de Software</span>
                                    <span class="text-phosphor/60">78%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-phosphor/80 to-phosphor" data-width="78"></div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <!-- Tools & Infra -->
                    <div class="space-y-5">
                        <h3 class="text-sm text-gray-500 uppercase tracking-wider mb-6 flex items-center gap-2">
                            <span class="text-phosphor">#</span> Tools & Infrastructure
                        </h3>

                        <div class="space-y-4">
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">Docker</span>
                                    <span class="text-phosphor/60">90%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-phosphor/80 to-phosphor" data-width="90"></div>
                                </div>
                            </div>
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">Linux / Sysadmin</span>
                                    <span class="text-phosphor/60">88%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-cyan/80 to-cyan" data-width="88"></div>
                                </div>
                            </div>
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">Digital Ocean</span>
                                    <span class="text-phosphor/60">82%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-phosphor/80 to-phosphor" data-width="82"></div>
                                </div>
                            </div>
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">Nginx</span>
                                    <span class="text-phosphor/60">80%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-cyan/80 to-cyan" data-width="80"></div>
                                </div>
                            </div>
                            <div>
                                <div class="flex justify-between text-sm mb-1.5">
                                    <span class="text-gray-300">Git / CI-CD</span>
                                    <span class="text-phosphor/60">80%</span>
                                </div>
                                <div class="h-1.5 bg-crt-surface rounded-full overflow-hidden">
                                    <div class="skill-bar-fill bg-gradient-to-r from-phosphor/80 to-phosphor" data-width="80"></div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- ==================== CONTACT ==================== -->
        <section id="contact" class="py-24 md:py-32 px-6">
            <div class="max-w-3xl mx-auto text-center">
                <div class="reveal">
                    <div class="flex items-center justify-center gap-4 mb-2">
                        <div class="flex-1 h-px bg-gradient-to-l from-crt-border to-transparent max-w-[100px]"></div>
                        <span class="text-phosphor/50 font-mono text-sm">04</span>
                        <h2 class="font-display font-bold text-3xl md:text-4xl text-white">Contacto</h2>
                        <div class="flex-1 h-px bg-gradient-to-r from-crt-border to-transparent max-w-[100px]"></div>
                    </div>
                </div>

                <div class="reveal mt-10">
                    <div class="terminal-window max-w-lg mx-auto text-left">
                        <div class="terminal-titlebar">
                            <span class="text-xs text-gray-500 font-mono">contact.sh</span>
                            <div class="terminal-controls">
                                <span>[_]</span>
                                <span>[&square;]</span>
                                <span>[x]</span>
                            </div>
                        </div>
                        <div class="p-6 text-sm space-y-3">
                            <div>
                                <span class="text-phosphor/70">$</span>
                                <span class="text-gray-300 ml-2">echo $EMAIL</span>
                            </div>
                            <div class="text-cyan pl-4">yerko@yercode.cl</div>

                            <div class="pt-2">
                                <span class="text-phosphor/70">$</span>
                                <span class="text-gray-300 ml-2">cat socials.json</span>
                            </div>
                            <div class="pl-4 text-gray-400">
                                <span class="text-gray-500">{</span><br>
                                <span class="pl-4"><span class="text-phosphor">"github"</span>: <span class="text-cyan">"github.com/yerko"</span>,</span><br>
                                <span class="pl-4"><span class="text-phosphor">"linkedin"</span>: <span class="text-cyan">"linkedin.com/in/yerko"</span></span><br>
                                <span class="text-gray-500">}</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>

    </main>

    <!-- ==================== FOOTER ==================== -->
    <footer class="relative z-10 border-t border-crt-border py-8 px-6">
        <div class="max-w-6xl mx-auto flex flex-col md:flex-row items-center justify-between gap-4 text-xs text-gray-600">
            <div class="flex items-center gap-2">
                <span class="glow-text-subtle text-xs">></span>
                <span>Hecho con caffeine && linux</span>
            </div>
            <div>
                <span class="text-gray-500">&copy; 2026 yercode.cl</span>
            </div>
            <div class="flex items-center gap-1">
                <span class="w-1.5 h-1.5 rounded-full bg-phosphor/50 animate-pulse"></span>
                <span>All systems operational</span>
            </div>
        </div>
    </footer>

    <!-- ==================== SCRIPTS ==================== -->
    <script>
    // ========== Matrix Rain Background ==========
    (function() {
        const canvas = document.getElementById('matrix-canvas');
        const ctx = canvas.getContext('2d');

        function resize() {
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;
        }
        resize();
        window.addEventListener('resize', resize);

        const chars = 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン01';
        const fontSize = 14;
        const columns = Math.floor(canvas.width / fontSize);
        const drops = Array(columns).fill(1);

        function draw() {
            ctx.fillStyle = 'rgba(10, 10, 15, 0.05)';
            ctx.fillRect(0, 0, canvas.width, canvas.height);
            ctx.fillStyle = '#00ff41';
            ctx.font = fontSize + 'px monospace';

            for (let i = 0; i < drops.length; i++) {
                const text = chars[Math.floor(Math.random() * chars.length)];
                ctx.fillText(text, i * fontSize, drops[i] * fontSize);
                if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
                    drops[i] = 0;
                }
                drops[i]++;
            }
        }

        setInterval(draw, 50);
    })();

    // ========== Typing Animation ==========
    (function() {
        const command = 'cat welcome.md';
        const el = document.getElementById('typed-command');
        const cursor = document.getElementById('cursor-1');
        const output = document.getElementById('typed-output');
        let i = 0;

        function typeChar() {
            if (i < command.length) {
                el.textContent += command[i];
                i++;
                setTimeout(typeChar, 80 + Math.random() * 60);
            } else {
                setTimeout(() => {
                    cursor.style.display = 'none';
                    output.classList.remove('hidden');
                    output.style.animation = 'fade-up 0.6s ease-out forwards';
                }, 400);
            }
        }

        setTimeout(typeChar, 800);
    })();

    // ========== Scroll Reveal ==========
    (function() {
        const observer = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.classList.add('visible');
                }
            });
        }, { threshold: 0.1, rootMargin: '0px 0px -50px 0px' });

        document.querySelectorAll('.reveal, .stagger-children').forEach(el => {
            observer.observe(el);
        });
    })();

    // ========== Skill Bar Animation ==========
    (function() {
        const observer = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    const bars = entry.target.querySelectorAll('.skill-bar-fill');
                    bars.forEach(bar => {
                        const width = bar.dataset.width;
                        bar.style.width = width + '%';
                    });
                }
            });
        }, { threshold: 0.2 });

        document.querySelectorAll('#stack').forEach(el => observer.observe(el));
    })();

    // ========== Navbar Background on Scroll ==========
    (function() {
        const nav = document.getElementById('navbar');
        window.addEventListener('scroll', () => {
            if (window.scrollY > 50) {
                nav.style.background = 'rgba(5, 5, 8, 0.9)';
                nav.style.backdropFilter = 'blur(12px)';
                nav.style.borderBottom = '1px solid rgba(26, 26, 46, 0.5)';
            } else {
                nav.style.background = 'rgba(5, 5, 8, 0)';
                nav.style.backdropFilter = 'none';
                nav.style.borderBottom = 'none';
            }
        });
    })();

    // ========== Mobile Menu Toggle ==========
    (function() {
        const btn = document.getElementById('mobile-menu-btn');
        const menu = document.getElementById('mobile-menu');
        btn.addEventListener('click', () => {
            menu.classList.toggle('hidden');
        });
        menu.querySelectorAll('a').forEach(link => {
            link.addEventListener('click', () => menu.classList.add('hidden'));
        });
    })();
    </script>

</body>
</html>
