/* ═══ SKILLSBUNDLE V2 — polish layer (suma, nunca sustituye) ═══ */
h1,h2,h3{letter-spacing:-.02em}
.btn-primary,.btn,.cta,a[class*="btn"]{transition:transform .15s ease, box-shadow .2s ease, background .2s}
a.btn-primary:hover,.btn.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(220,38,38,.32)}
.skill-card,.vertical-card,.plat-card,.top-card,.usar-card,.blog-card,.card{transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease}
.skill-card:hover,.vertical-card:hover,.plat-card:hover,.top-card:hover,.usar-card:hover,.blog-card:hover,.card:hover{transform:translateY(-3px);box-shadow:0 14px 38px rgba(17,24,39,.12)}
nav{backdrop-filter:blur(14px) saturate(1.35)}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #DC2626;outline-offset:2px;border-radius:4px}
.filter-pill{cursor:pointer;transition:all .15s}
.filter-pill:hover{transform:translateY(-1px)}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease, transform .55s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}
@media print{nav,footer,.hero canvas{display:none!important}}
