html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background:#fff;letter-spacing:-.025rem}body{margin:0;padding:0;max-width:100%;overflow-x:hidden}main{width:90%;max-width:1200px;margin:auto;padding:4rem 1rem}h1,h2,h3,h4{margin-bottom:1rem;font-weight:600}p{color:#555;font-size:1rem;line-height:1.5;margin-bottom:1rem}@media (max-width: 768px){main{width:95%;padding:2rem 1rem}h1{font-size:1.8rem}h2{font-size:1.5rem}p{font-size:.9rem}}@media (max-width: 480px){h1{font-size:1.5rem;text-align:center}h2{font-size:1.3rem}p{font-size:.85rem}}@media print{.section,li{page-break-inside:avoid}h2{page-break-after:avoid}}@media print{.no-print{display:none}}section[data-astro-cid-sh445jdo]{max-width:700px;margin:0 auto 38px}h2[data-astro-cid-sh445jdo]{margin-bottom:8px;font-weight:700;line-height:1.5;font-size:1.5rem}li[data-astro-cid-d3t3ua6l]{display:flex;flex-direction:column;gap:32px}article[data-astro-cid-d3t3ua6l] h3[data-astro-cid-d3t3ua6l]{font-weight:500;color:#111}article[data-astro-cid-d3t3ua6l] h4[data-astro-cid-d3t3ua6l]{color:#222;font-weight:400}header[data-astro-cid-d3t3ua6l]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}time[data-astro-cid-d3t3ua6l]{color:#555;font-size:.85rem}.section[data-astro-cid-hm7leqfg]{padding:4rem 0;max-width:800px;margin:auto}ul[data-astro-cid-hm7leqfg]{display:flex;flex-direction:column;gap:32px;padding:0}li[data-astro-cid-hm7leqfg]{display:flex;flex-direction:column;gap:16px}article[data-astro-cid-hm7leqfg] h3[data-astro-cid-hm7leqfg]{font-size:1.4rem;font-weight:600;color:#111}article[data-astro-cid-hm7leqfg] h4[data-astro-cid-hm7leqfg]{font-size:1.2rem;color:#444;font-weight:500}header[data-astro-cid-hm7leqfg]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}time[data-astro-cid-hm7leqfg]{color:#666;font-size:.9rem}@media (max-width: 768px){header[data-astro-cid-hm7leqfg]{flex-direction:column}time[data-astro-cid-hm7leqfg]{margin-top:4px;font-size:.8rem}article[data-astro-cid-hm7leqfg] h3[data-astro-cid-hm7leqfg]{font-size:1.2rem}article[data-astro-cid-hm7leqfg] h4[data-astro-cid-hm7leqfg]{font-size:1rem}}@media (max-width: 480px){.section[data-astro-cid-hm7leqfg]{padding:2rem 0}article[data-astro-cid-hm7leqfg] h3[data-astro-cid-hm7leqfg]{font-size:1.1rem}article[data-astro-cid-hm7leqfg] h4[data-astro-cid-hm7leqfg]{font-size:.95rem}}.container[data-astro-cid-txibpiox]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem}.info[data-astro-cid-txibpiox]{display:flex;flex-direction:column;gap:.5rem;padding-right:32px}h1[data-astro-cid-txibpiox]{font-size:2rem}h2[data-astro-cid-txibpiox]{color:#555;font-weight:500;font-size:1.1rem;text-wrap:balance}img[data-astro-cid-txibpiox]{aspect-ratio:1 / 1;object-fit:cover;width:500px;border-radius:19px}span[data-astro-cid-txibpiox]{color:#666;display:flex;align-items:center;gap:1rem;font-size:1rem;letter-spacing:-.05rem}footer[data-astro-cid-txibpiox]{color:#555;font-size:1rem;display:flex;gap:4px;margin-top:8px}footer[data-astro-cid-txibpiox] a[data-astro-cid-txibpiox]{color:#777;display:inline-flex;justify-content:center;border:1px solid #eee;padding:4px;height:32px;width:32px;border-radius:6px;transition:all .3s ease}footer[data-astro-cid-txibpiox] a[data-astro-cid-txibpiox]:hover{background:#eee;border:1px solid #ddd}@media (max-width: 768px){.container[data-astro-cid-txibpiox]{flex-direction:column;text-align:left;align-items:center}.info[data-astro-cid-txibpiox]{padding-right:0}footer[data-astro-cid-txibpiox]{justify-content:center}img[data-astro-cid-txibpiox]{width:96px}}ul[data-astro-cid-4okiw54i]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;padding:0;list-style:none}article[data-astro-cid-4okiw54i]{border-radius:8px;border:1px solid #f2f2f2;display:flex;flex-direction:column;padding:16px;height:100%;background-color:#fff;transition:transform .2s ease-in-out}article[data-astro-cid-4okiw54i]:hover{transform:scale(1.02)}}--- import "hotkeypad/reset.css" import "hotkeypad/index.css" import{type SocialIcon}from "@/types"; import{basics}from "@cv" const{profiles}= basics const SOCIAL_ICONS: SocialIcon ={GitHub:`<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="margin-right: 8px" ><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" ></path></svg >`,LinkedIn: `<svg height="16" width="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="margin-right: 8px" ><title>LinkedIn</title><path fill="currentColor" d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" ></path></svg >`,X: `<svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="margin-right: 8px" ><title>X</title><path fill="currentColor" d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z" ></path></svg > `}const profilesInfo = profiles.map(({network,url}) => {const icon = SOCIAL_ICONS[network as keyof SocialIcon]; const firstLetter = network[0].toUpperCase() return {id: network,section: "Social",title: `Visitar ${network}`,url,icon,hotkey: `ctrl+${firstLetter}`}}) --- <footer id="normal-footer" class="no-print"> Pulsa <kbd>Cmd</kbd> + <kbd>K</kbd> para abrir la paleta de comandos. </footer> <div id="footer-button" class="no-print"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-command" width="32" height="32" viewBox="0 0 24 24" stroke-width="1.5" stroke="#777" fill="none" stroke-linecap="round" stroke-linejoin="round" > <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M7 9a2 2 0 1 1 2 -2v10a2 2 0 1 1 -2 -2h10a2 2 0 1 1 -2 2v-10a2 2 0 1 1 2 2h-10" ></path> </svg> </div> <div id="hotkeypad" data-placeholder="Buscar comando" data-info={JSON.stringify(profilesInfo)}> </div> <script> interface Info{id:string section: string title: string url: string icon: string hotkey: string handler?: () => void}import HotKeyPad from "hotkeypad" const hotkeypad = new HotKeyPad() const info = hotkeypad.instance.getAttribute("data-info") ?? "[]" const parsedInfo = JSON.parse(info) as Info[] const data = parsedInfo.map(({url,hotkey,icon,id,section,title}) => {return {id,title,icon,hotkey,section,handler: () => {window.open(url,"_blank")}}}) hotkeypad.setCommands([{id: "print",title: "Imprimir",icon: `<svg style="margin-right: 8px" width="16" height="16" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M6.72 13.829c-.24.03-.48.062-.72.096m.72-.096a42.415 42.415 0 0 1 10.56 0m-10.56 0L6.34 18m10.94-4.171c.24.03.48.062.72.096m-.72-.096L17.66 18m0 0 .229 2.523a1.125 1.125 0 0 1-1.12 1.227H7.231c-.662 0-1.18-.568-1.12-1.227L6.34 18m11.318 0h1.091A2.25 2.25 0 0 0 21 15.75V9.456c0-1.081-.768-2.015-1.837-2.175a48.055 48.055 0 0 0-1.913-.247M6.34 18H5.25A2.25 2.25 0 0 1 3 15.75V9.456c0-1.081.768-2.015 1.837-2.175a48.041 48.041 0 0 1 1.913-.247m10.5 0a48.536 48.536 0 0 0-10.5 0m10.5 0V3.375c0-.621-.504-1.125-1.125-1.125h-8.25c-.621 0-1.125.504-1.125 1.125v3.659M18 10.5h.008v.008H18V10.5Zm-3 0h.008v.008H15V10.5Z" /> </svg>`,hotkey: "ctrl+P",section: "Acciones",handler: () => {window.print()}},...data]) const footerButton = document.getElementById("footer-button") footerButton?.addEventListener("click",() => {var event = new KeyboardEvent("keydown",{key: "K",code: "KeyK",keyCode: 75,which: 75,ctrlKey: true,altKey: false,shiftKey: false,metaKey: false}) document.dispatchEvent(event)}) </script> <style> @keyframes fadeIn{from{opacity:0}to{opacity:1}}@media (min-width: 601px){#normal-footer[data-astro-cid-4okiw54i]{display:block}#footer-button[data-astro-cid-4okiw54i]{display:none}}@media (max-width: 600px){#normal-footer[data-astro-cid-4okiw54i]{display:none}#footer-button[data-astro-cid-4okiw54i]{background:#fff;position:fixed;border:1px solid #eee;right:10px;bottom:10px;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}}@media (max-width: 768px){ul[data-astro-cid-4okiw54i]{grid-template-columns:1fr}article[data-astro-cid-4okiw54i]{padding:12px}h3[data-astro-cid-4okiw54i]{font-size:1rem}p[data-astro-cid-4okiw54i]{font-size:.85rem}}footer[data-astro-cid-4okiw54i]{background:#fdfdfd;border-top:1px solid #eee;position:fixed;bottom:0;width:100%;padding-block:8px;text-align:center;font-size:.85rem;view-timeline-name:--revealing;view-timeline-axis:block;animation:linear .3s fadeIn;animation-timeline:--revealing;animation-range:entry 100% cover 10%}kbd[data-astro-cid-4okiw54i]{background:#eee;border-radius:4px;padding:2px 4px;font-size:12px}article[data-astro-cid-4okiw54i] header[data-astro-cid-4okiw54i]{flex:1}article[data-astro-cid-4okiw54i] h3[data-astro-cid-4okiw54i]{font-size:1.2rem;margin-bottom:8px}article[data-astro-cid-4okiw54i] a[data-astro-cid-4okiw54i]{color:#111}article[data-astro-cid-4okiw54i] a[data-astro-cid-4okiw54i]:hover{text-decoration:underline}article[data-astro-cid-4okiw54i] p[data-astro-cid-4okiw54i]{font-size:.9rem;line-height:1.2rem;margin-bottom:4px;color:#666}article[data-astro-cid-4okiw54i] h3[data-astro-cid-4okiw54i] span[data-astro-cid-4okiw54i]{color:#07b533}footer[data-astro-cid-4okiw54i]{display:flex;flex-wrap:wrap;gap:4px;font-size:.6rem}footer[data-astro-cid-4okiw54i] span[data-astro-cid-4okiw54i]{border-radius:6px;background:#eee;color:#444;font-size:.6rem;font-weight:500;padding:.2rem .6rem}ul[data-astro-cid-pd6r4zz5]{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:0;margin-top:1rem}li[data-astro-cid-pd6r4zz5]{border-radius:6px;background:#eee;color:#000;font-size:.9rem;font-weight:500;padding:.4rem .8rem;text-align:center;white-space:nowrap}@media (max-width: 768px){li[data-astro-cid-pd6r4zz5]{font-size:.8rem;padding:.3rem .6rem}}@media (max-width: 480px){ul[data-astro-cid-pd6r4zz5]{gap:6px}li[data-astro-cid-pd6r4zz5]{font-size:.75rem;padding:.3rem .5rem}}.section[data-astro-cid-mzpjul7m]{padding:2rem 0;max-width:700px;margin:auto;text-align:left}h2[data-astro-cid-mzpjul7m]{font-size:1.8rem;margin-bottom:1rem;text-align:left}ul[data-astro-cid-mzpjul7m]{list-style:none;padding:0;display:flex;flex-direction:column;align-items:flex-start;color:#666}li[data-astro-cid-mzpjul7m]{margin-bottom:.8rem;font-size:1.1rem}@media (max-width: 768px){.section[data-astro-cid-mzpjul7m]{padding:1.5rem 0}h2[data-astro-cid-mzpjul7m]{font-size:1.5rem}li[data-astro-cid-mzpjul7m]{font-size:1rem}}@media (max-width: 480px){h2[data-astro-cid-mzpjul7m]{font-size:1.3rem}li[data-astro-cid-mzpjul7m]{font-size:.9rem}}ul[data-astro-cid-ehtricgn]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}article[data-astro-cid-ehtricgn]{border-left:4px solid #007acc;padding-left:12px}h3[data-astro-cid-ehtricgn]{font-size:1.2rem;font-weight:700}p[data-astro-cid-ehtricgn]{color:#444;font-size:1rem}time[data-astro-cid-ehtricgn]{color:#666;font-size:.9rem}ul[data-astro-cid-z6pkgi4j]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}article[data-astro-cid-z6pkgi4j]{padding-left:12px}h3[data-astro-cid-z6pkgi4j]{font-size:1.2rem;font-weight:700}p[data-astro-cid-z6pkgi4j]{color:#555;font-size:1rem}*:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg *,symbol *)){all:unset;display:revert}*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}a,button{cursor:revert}ol,ul,menu,summary{list-style:none}img{max-inline-size:100%;max-block-size:100%}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{-webkit-appearance:revert;appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable=true]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}::-webkit-details-marker{display:none}#hotkeypad{--hotkeypad-bg-kbd: #f9fafb;--hotkeypad-bg-backdrop: #fff;--hotkeypad-bg-container: #fff;--hotkeypad-bg-item-hover: #f3f4f6;--hotkeypad-border-container: #d1d5db;--hotkeypad-border-container-hover: #9ca3af;--hotkeypad-fg-muted: #4b5563;--hotkeypad-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;visibility:hidden;opacity:0;transition:opacity .2s,visibility .2s}#hotkeypad.dark{--hotkeypad-bg-kbd: #1f2937;--hotkeypad-bg-backdrop: #000;--hotkeypad-bg-container: #1f2937;--hotkeypad-bg-item-hover: #161e2e;--hotkeypad-border-container: #374151;--hotkeypad-border-container-hover: #9ca3af;--hotkeypad-fg-muted: #d1d5db}#hotkeypad [data-backdrop]{position:fixed;inset:0;background-color:var(--hotkeypad-bg-backdrop);opacity:0;z-index:10}#hotkeypad [data-container]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:640px;background:var(--hotkeypad-bg-container);border:1px solid var(--hotkeypad-border-container);border-radius:.5rem;filter:drop-shadow(0 35px 35px rgb(0 0 0 / .3));z-index:20}#hotkeypad [data-container] header{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem}#hotkeypad [data-container] header span{margin-left:-2px;padding-inline:6px;width:fit-content;width:-moz-fit-content;color:var(--hotkeypad-fg-muted);background-color:var(--hotkeypad-bg-item-hover);border-radius:.25rem;font-size:.875rem}#hotkeypad [data-container] header input{width:100%;color:var(--hotkeypad-fg-muted);background-color:var(--hotkeypad-bg-container);font-size:1.25rem}#hotkeypad [data-container] header input::placeholder{color:var(--hotkeypad-fg-muted);opacity:.75}#hotkeypad [data-container] header input:focus{outline:none}#hotkeypad [data-sections]{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0;border-block:1px solid var(--hotkeypad-border-container)}#hotkeypad [data-section]{display:flex;flex-direction:column}#hotkeypad [data-section] h4{padding-left:1.25rem;color:var(--hotkeypad-fg-muted);font-size:.875rem;text-transform:capitalize}#hotkeypad [data-hotkey]{position:relative;display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;cursor:pointer;transition:background-color .15s}#hotkeypad [data-hotkey][data-active]{background-color:var(--hotkeypad-bg-item-hover);outline:none}#hotkeypad [data-hotkey]:before{content:"";position:absolute;left:0;width:2px;height:100%;background-color:transparent;transition:background-color .15s}#hotkeypad [data-active]:before{background-color:var(--hotkeypad-fg-muted)}#hotkeypad [data-hotkey] span{width:1.5rem;height:1.5rem;color:var(--hotkeypad-fg-muted)}#hotkeypad [data-hotkey] span:has(img) img{width:100%;height:100%;object-fit:contain}#hotkeypad [data-hotkey] p{flex-grow:1;color:var(--hotkeypad-fg-muted);text-transform:capitalize}#hotkeypad [data-hotkey] div{display:flex;gap:.25rem}#hotkeypad [data-hotkey] div span{padding-block:2px;padding-inline:6px;width:fit-content;width:-moz-fit-content;color:var(--hotkeypad-fg-muted);background-color:var(--hotkeypad-bg-item-hover);border:1px solid var(--hotkeypad-border-container);border-radius:.25rem;font-size:.875rem;font-family:var(--hotkeypad-font-mono);pointer-events:none;user-select:none;-webkit-user-select:none;text-transform:capitalize}#hotkeypad [data-hotkey]:hover div span,#hotkeypad [data-active] div span{background-color:var(--hotkeypad-border-container);border-color:var(--hotkeypad-border-container-hover)}#hotkeypad [data-container] footer{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .8rem;padding:.75rem 1.25rem}#hotkeypad [data-container] footer p{display:flex;gap:.25rem;color:var(--hotkeypad-fg-muted);font-size:.875rem}#hotkeypad [data-container] footer kbd{padding-inline:6px;color:var(--hotkeypad-fg-muted);background-color:var(--hotkeypad-bg-kbd);border:1px solid var(--hotkeypad-border-container-hover);border-radius:.25rem;font-size:.875rem;pointer-events:none;user-select:none;-webkit-user-select:none}@media screen and (min-width: 648px){#hotkeypad [data-container] footer{justify-content:space-between}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (min-width: 601px){#normal-footer[data-astro-cid-5uazswxx]{display:block}#footer-button[data-astro-cid-5uazswxx]{display:none}}@media (max-width: 600px){#normal-footer[data-astro-cid-5uazswxx]{display:none}#footer-button[data-astro-cid-5uazswxx]{background:#fff;position:fixed;border:1px solid #eee;right:10px;bottom:10px;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}}footer[data-astro-cid-5uazswxx]{background:#fdfdfd;border-top:1px solid #eee;position:fixed;bottom:0;width:100%;padding-block:8px;text-align:center;font-size:.85rem;view-timeline-name:--revealing;view-timeline-axis:block;animation:linear .3s fadeIn;animation-timeline:--revealing;animation-range:entry 100% cover 10%}kbd[data-astro-cid-5uazswxx]{background:#eee;border-radius:4px;padding:2px 4px;font-size:12px}main[data-astro-cid-j7pv25f6]{padding:4rem 1rem;margin:auto;width:100%;max-width:1200px}@media (width <= 700px){main[data-astro-cid-j7pv25f6]{padding:2rem 1rem}}
