
:root{--bg:#07111f;--bg2:#0f172a;--card:rgba(15,23,42,.72);--card2:rgba(30,41,59,.68);--text:#e5f0ff;--muted:#90a4bd;--line:rgba(148,163,184,.22);--cyan:#38bdf8;--blue:#2563eb;--green:#34d399;--shadow:0 24px 80px rgba(0,0,0,.35)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Segoe UI",Inter,system-ui,Arial,sans-serif;background:radial-gradient(circle at top left,#12325e 0,#07111f 35%,#050816 100%);color:var(--text);line-height:1.65;min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),rgba(0,0,0,.15));z-index:-1}.shell{width:min(1180px,88vw);margin:auto}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px 6vw;background:rgba(2,6,23,.76);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.logo{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}.logo img{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 0 18px rgba(56,189,248,.35))}.logo strong{letter-spacing:.01em}.nav-links{display:flex;gap:18px}.nav-links a{color:#cbd5e1;text-decoration:none;font-weight:700}.nav-links a:hover,.nav-links a.active{color:var(--cyan)}.nav-toggle{display:none;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;border-radius:12px;padding:8px 12px}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:center;padding:78px 0 54px}.hero-copy{padding:34px;border-radius:34px;background:linear-gradient(135deg,rgba(15,23,42,.62),rgba(15,23,42,.18));border:1px solid var(--line);box-shadow:var(--shadow)}.kicker,.section-label{color:var(--cyan);font-size:.8rem;text-transform:uppercase;font-weight:900;letter-spacing:.16em}.hero h1{font-size:clamp(3rem,7vw,6.6rem);line-height:.92;margin:10px 0 20px;letter-spacing:-.08em}.lead{font-size:1.22rem;color:#dbeafe;max-width:820px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:999px;text-decoration:none;font-weight:850}.btn.primary{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#04111f}.btn.ghost{color:#e2e8f0;border:1px solid var(--line);background:rgba(255,255,255,.06)}.hero-panel{min-height:520px;border-radius:36px;padding:22px;background-image:linear-gradient(rgba(2,6,23,.1),rgba(2,6,23,.82)),url('../images/hero-ops.png');background-size:cover;background-position:center;box-shadow:var(--shadow);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.status-card,.terminal-card{background:rgba(2,6,23,.74);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(14px);border-radius:24px;padding:20px}.live-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 18px var(--green);margin-right:8px}.status-card p{color:#cbd5e1;margin-bottom:0}.terminal-header{display:flex;gap:8px;margin-bottom:14px}.terminal-header span{width:12px;height:12px;border-radius:50%;background:#fb7185}.terminal-header span:nth-child(2){background:#fbbf24}.terminal-header span:nth-child(3){background:#34d399}pre{margin:0;white-space:pre-wrap;color:#cef0ff;font-size:.92rem}.page-content{padding:28px 0 80px}.grid{display:grid;gap:24px}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.glass-card,.experience-card,.metrics div{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow);backdrop-filter:blur(14px)}.glass-card h2,.timeline-modern h2{font-size:clamp(1.8rem,3vw,3rem);line-height:1.05;margin:8px 0 18px;letter-spacing:-.04em}.task-list{list-style:none;padding-left:0}.task-list li{position:relative;padding-left:28px;margin:10px 0;color:#d6e3f4}.task-list li:before{content:"";position:absolute;left:0;top:.72em;width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--green));box-shadow:0 0 18px rgba(56,189,248,.5)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:24px 0}.metrics strong{display:block;font-size:2rem;letter-spacing:-.05em;color:#fff}.metrics span{color:var(--muted)}.feature-grid,.stack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.feature-grid article,.stack-grid article,.mini-card{background:var(--card2);border:1px solid var(--line);border-radius:22px;padding:22px}.feature-grid h3,.stack-grid h3,.mini-card h3{margin-top:0}.chip-wrap{display:flex;flex-wrap:wrap;gap:10px}.chip{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(56,189,248,.12);color:#bdefff;border:1px solid rgba(56,189,248,.25);font-weight:800;font-size:.9rem}.timeline-modern{position:relative}.experience-card{display:grid;grid-template-columns:170px 1fr;gap:24px;margin:18px 0}.exp-date{font-weight:950;color:var(--cyan)}.company{color:#93c5fd;font-weight:850}.cards-list{display:grid;gap:14px}.mini-card span{color:var(--cyan);font-weight:900}.mini-card a{color:#bfdbfe}.contact-box{padding:16px 0;border-bottom:1px solid var(--line);display:grid;gap:3px}.contact-box span{color:var(--muted);font-size:.9rem}.contact-box a,.contact-box strong{color:#e0f2fe;text-decoration:none;font-size:1.08rem}.footer{border-top:1px solid var(--line);padding:28px 6vw;text-align:center;color:var(--muted);background:rgba(2,6,23,.45)}.reveal{opacity:0;transform:translateY(18px);animation:rise .7s ease forwards}.reveal:nth-child(2){animation-delay:.08s}.reveal:nth-child(3){animation-delay:.16s}@keyframes rise{to{opacity:1;transform:none}}.blog-promo{margin-top:24px}.blog-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:20px;margin:24px 0}.post-card{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:26px;box-shadow:var(--shadow);backdrop-filter:blur(14px)}.post-card h2{font-size:1.45rem;line-height:1.15;margin:12px 0}.post-card h2 a{color:#eaf4ff;text-decoration:none}.post-card h2 a:hover{color:var(--cyan)}.featured-post{background:linear-gradient(135deg,rgba(56,189,248,.18),rgba(15,23,42,.72))}.muted-post{opacity:.82}.post-meta{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.post-meta span{font-size:.78rem;font-weight:850;color:#bdefff;border:1px solid rgba(56,189,248,.24);background:rgba(56,189,248,.10);border-radius:999px;padding:7px 10px}.read-more{color:var(--cyan);font-weight:850;text-decoration:none}.article-layout{max-width:920px;margin:auto;background:var(--card);border:1px solid var(--line);border-radius:34px;padding:38px;box-shadow:var(--shadow);backdrop-filter:blur(14px)}.article-header h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.02;letter-spacing:-.05em;margin:12px 0}.article-intro{font-size:1.16rem;color:#dbeafe}.article-layout section{margin:34px 0}.article-layout h3{font-size:1.6rem;margin-bottom:10px}.article-layout h4{margin:0 0 8px}.article-code{background:#020617;border:1px solid var(--line);border-radius:22px;padding:20px;color:#dff6ff;overflow:auto}.article-note{background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.20);border-radius:24px;padding:24px}@media(max-width:920px){.nav-toggle{display:block}.nav-links{display:none;position:absolute;top:69px;left:0;right:0;flex-direction:column;background:rgba(2,6,23,.96);padding:20px 6vw;border-bottom:1px solid var(--line)}body.nav-open .nav-links{display:flex}.hero,.cols-2,.feature-grid,.stack-grid,.experience-card{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.hero-panel{min-height:430px}.shell{width:min(94vw,1180px)}.blog-grid{grid-template-columns:1fr}.article-layout{padding:24px;border-radius:24px}}@media(max-width:560px){.metrics{grid-template-columns:1fr}.hero h1{font-size:3.2rem}.hero-copy,.glass-card,.experience-card{padding:22px;border-radius:24px}.topbar{padding:12px 4vw}.logo strong{display:none}}
/* =========================
   CONTACTO - MAPA LOCAL
   ========================= */

.location-map{
    margin-top:30px;
    padding-top:10px;
}

.location-map h3{
    margin-bottom:12px;
    color:var(--cyan);
}

.location-description{
    color:#d6e3f4;
    margin-bottom:18px;
    line-height:1.7;
}

.map-container{
    overflow:hidden;
    border-radius:20px;
    border:1px solid var(--line);
    box-shadow:var(--shadow);
}

.map-container iframe{
    width:100%;
    height:400px;
    border:none;
    display:block;
}

.location-note{
    margin-top:12px;
    color:var(--muted);
    font-size:.95rem;
    text-align:center;
}