/*! © 2026 Huascar Trinidad · TrinaxCode. Todos los derechos reservados / All rights reserved. Uso: https://trinaxcode.com/terminos/ */
html[lang=es] body [lang=en],html[lang=en] body [lang=es]{display:none!important}.cv-page{overflow-x:clip}.cvbar{position:relative;z-index:50;padding:var(--s-4) var(--pad);background:none}.cvbar__inner{display:flex;align-items:center;gap:var(--s-2)}.cvbar__back{margin-right:auto;--od-icon-size: 18px}.cvbar .nav__word{display:inline-flex!important}.cvbar__back .od-icon{color:var(--ink-3);transition:transform var(--d-fast) var(--ease-out),color var(--d-fast)}@media(hover:hover){.cvbar__back:hover .od-icon{transform:translate(-3px);color:var(--blue-hi)}}.cvbar__pdf{min-height:44px;padding:0 var(--s-4);font-size:15px}.cv{position:relative;z-index:1;padding:var(--s-7) var(--pad) var(--s-9)}.eyebrow{display:inline-flex;align-items:center;gap:var(--s-3);color:var(--blue-hi);text-transform:uppercase;letter-spacing:.16em}.eyebrow i{width:28px;height:1px;background:currentColor}.cover__name{margin-top:var(--s-4);font-family:var(--f-display);font-weight:800;font-size:clamp(40px,7.4vw,88px);line-height:.92;letter-spacing:-.045em}.cover__line{display:block}.cover__line--blue{color:var(--blue-hi)}.cover__name .w{display:inline-block;white-space:nowrap;overflow:visible}.cover__name .ch{display:inline-block}.js:not(.is-print) .cover__line[data-chars]:not(.is-split){visibility:hidden}.js:not(.is-print) .cover__name .ch{opacity:0;filter:blur(16px);transform:translateY(.28em) scale(1.12)}.js.is-ready:not(.is-print) .cover__name .ch{animation:ch-in 1.1s var(--ease-out) forwards;animation-delay:calc(var(--i) * 34ms + .22s)}@keyframes ch-in{0%{opacity:0;filter:blur(16px);transform:translateY(.28em) scale(1.12)}55%{opacity:1}to{opacity:1;filter:blur(0);transform:none}}.cover__title{margin-top:var(--s-5);font-family:var(--f-display);font-weight:600;font-size:clamp(18px,2vw,24px);letter-spacing:-.01em;color:var(--ink);max-width:40ch}.cover__title b{color:var(--blue-hi);font-weight:400;margin-inline:2px}.cover__contact{margin-top:var(--s-5);display:flex;flex-wrap:wrap;gap:var(--s-2)}.pill{display:inline-flex;align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-4);border-radius:999px;border:1px solid rgba(238,240,243,.14);background:transparent;font-family:var(--f-mono);font-size:13px;color:var(--ink-2);--od-icon-size: 15px;transition:border-color var(--d-fast),color var(--d-fast),background-color var(--d-fast),transform var(--d-med) var(--ease-out)}.pill .od-icon{color:var(--blue-hi)}@media(hover:hover){a.pill:hover{border-color:var(--blue-hi);color:var(--ink);background:#4aa8f014;transform:translateY(-2px)}}.cover__avail{margin-top:var(--s-5);display:flex;align-items:center;gap:var(--s-3);color:var(--ink-2);font-size:15px}.cover__avail b{color:var(--ink);font-weight:600}.dot{position:relative;width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none}.dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--ok);animation:ping 2s var(--ease-out) infinite}@keyframes ping{0%{transform:scale(1);opacity:.7}to{transform:scale(3);opacity:0}}.doc{position:relative;margin-top:var(--s-8)}.doc:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line);transform-origin:0 50%}.js:not(.is-print) .doc:before{transform:scaleX(0)}.js.is-ready:not(.is-print) .doc:before{transform:scaleX(1);transition:transform 1.6s var(--ease-out) 1.5s}.sec{position:relative;display:grid;gap:var(--s-4);padding:var(--s-6) 0}.sec>*{min-width:0}.sec+.sec:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line);transform-origin:0 50%}.js:not(.is-print) .sec+.sec:before{transform:scaleX(0);transition:transform 1.2s var(--ease-out)}.js:not(.is-print) .sec+.sec.is-in:before{transform:scaleX(1)}.sec__h{position:relative;display:flex;align-items:baseline;gap:var(--s-3);font-family:var(--f-display);font-weight:700;font-size:clamp(20px,2vw,24px);letter-spacing:-.015em;line-height:1.2}.sec__h .mono{color:var(--blue-hi);font-size:12px}@media(min-width:900px){.sec{grid-template-columns:minmax(220px,22%) 1fr;gap:var(--s-7);padding:var(--s-7) 0}.sec__h{flex-direction:column;gap:var(--s-2);position:sticky;top:32px;align-self:start}}.lead{max-width:110ch;color:var(--ink-2);font-size:17px;line-height:1.7}.hls{display:grid;gap:var(--s-3)}.hls li{position:relative;padding-left:var(--s-5);color:var(--ink-2);line-height:1.6}.hls li:before{content:"";position:absolute;left:0;top:.72em;width:12px;height:2px;border-radius:2px;background:var(--blue-hi)}.skills{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-4)}.sk h3{font-family:var(--f-mono);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--s-2)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips li{max-width:100%;white-space:normal}.chips li{padding:5px 12px;border-radius:999px;font-size:14px;color:var(--ink);background:#eef0f30d;border:1px solid var(--line-2);transition:border-color var(--d-fast),background-color var(--d-fast),transform var(--d-med) var(--ease-out)}@media(hover:hover){.chips li:hover{border-color:var(--blue-hi);background:#4aa8f01f;transform:translateY(-2px)}}.sk-note{grid-column:1 / -1;display:flex;gap:var(--s-3);margin-top:var(--s-2);padding:var(--s-3) var(--s-4);border-left:2px solid var(--blue-hi);border-radius:0 10px 10px 0;background:#4aa8f00f;color:var(--ink-3);font-size:14px;line-height:1.6;font-style:italic}.langs{display:grid;gap:var(--s-3)}@media(min-width:600px){.langs{grid-template-columns:1fr 1fr}}.lng{padding:var(--s-4) var(--s-5);border:1px solid var(--line);border-radius:14px;background:#0d121b66}.lng__k{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.lng__v{margin-top:2px;font-family:var(--f-display);font-weight:700;font-size:22px}.lng__note{margin-top:var(--s-2);font-size:14px;color:var(--ink-2)}.cv-link{display:inline-flex;align-items:center;gap:6px;max-width:100%;margin-top:var(--s-2);font-family:var(--f-mono);font-size:13px;color:var(--blue-hi);overflow-wrap:anywhere;--od-icon-size: 14px;background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat;transition:background-size var(--d-med) var(--ease-out)}.cv-link .od-icon{transition:transform var(--d-fast) var(--ease-out)}.cv-link b{flex:none;color:var(--ink-3);font-weight:500;margin-right:2px}@media(hover:hover){.cv-link:hover{background-size:100% 1px}.cv-link:hover .od-icon{transform:translate(2px,-2px)}}.lng__note .cv-link{margin-top:0}.job{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-2) var(--s-4)}.job h3{font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:-.01em}.job__date{padding:4px 12px;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap}.job__org{margin-top:var(--s-1);color:var(--ink-3);font-style:italic;font-size:15px}.xpl{position:relative;margin-top:var(--s-5);display:grid;gap:var(--s-5);padding-left:28px}.xpl__rail{position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--line);border-radius:2px}.xpl__rail span{display:block;height:100%;background:linear-gradient(var(--blue-hi),#2fd0e6);transform-origin:50% 0;transform:scaleY(var(--p, 0));border-radius:2px}.xpl__item{position:relative}.xpl__item:before{content:"";position:absolute;left:-28px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--line-2);transition:border-color .4s,background-color .4s,box-shadow .4s}.xpl__item.is-lit:before{border-color:var(--blue-hi);background:var(--blue-hi);box-shadow:0 0 0 4px #4aa8f02e}.xpl__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px var(--s-3);margin-bottom:4px}.xpl__head b{font-family:var(--f-display);font-weight:700;font-size:18px;color:var(--ink)}.xpl__head .mono{color:var(--ink-3);font-size:12px}.xpl__item>p:not(.xpl__head){color:var(--ink-2);font-size:16px;line-height:1.65}.prods{display:grid;gap:var(--s-3)}.prod p{max-width:62ch}.prod{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:var(--s-5);border:1px solid var(--line);border-radius:16px;background:#0d121b73;transition:border-color var(--d-med),transform var(--d-med) var(--ease-out),box-shadow var(--d-med)}.prod:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity var(--d-med);background:radial-gradient(400px circle at var(--mx, 50%) var(--my, 0%),rgba(74,168,240,.14),transparent 60%)}.prod h3{font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:-.01em;margin-bottom:var(--s-2)}.prod p{color:var(--ink-2);font-size:15px;line-height:1.6;flex:1}.prod .cv-link{margin-top:var(--s-4);align-self:flex-start}@media(hover:hover){.prod:hover{border-color:var(--line-2);transform:translateY(-4px);box-shadow:0 24px 60px -30px #0074b699}.prod:hover:before{opacity:1}}.edu{display:grid;gap:var(--s-4)}.edu li{padding-left:var(--s-4);border-left:2px solid var(--line-2);transition:border-color var(--d-med)}@media(hover:hover){.edu li:hover{border-left-color:var(--blue-hi)}}.edu h3{font-family:var(--f-display);font-weight:700;font-size:17px;letter-spacing:-.005em;line-height:1.35}.edu p{margin-top:2px;color:var(--ink-2);font-size:15px}.edu__links{display:grid;justify-items:start}.edu__links .cv-link{margin-top:4px}@media(min-width:1200px){.skills,.prods,.edu{grid-template-columns:1fr 1fr;gap:var(--s-5) var(--s-6)}.prods{gap:var(--s-4)}.prod p{max-width:none}.hls{grid-template-columns:1fr 1fr;gap:var(--s-4) var(--s-7)}}.cv-page .footer{position:relative;z-index:1}.cv-page .footer .wrap{max-width:none;padding-inline:var(--pad)}.cvfoot{margin-top:var(--s-7);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2)}.js:not(.is-print) .intro{opacity:0;transform:translateY(16px);filter:blur(8px)}.js:not(.is-print) .intro--down{transform:translateY(-100%);filter:none}.js.is-ready:not(.is-print) .intro{opacity:1;transform:none;filter:none;transition:opacity .8s var(--ease-out) var(--d, 0ms),transform .9s var(--ease-out) var(--d, 0ms),filter .8s var(--ease-out) var(--d, 0ms)}.js:not(.is-print) .eyebrow i{transform:scaleX(0);transform-origin:0 50%}.js.is-ready:not(.is-print) .eyebrow i{transform:scaleX(1);transition:transform .9s var(--ease-out) .3s}.js:not(.is-print) .gl{opacity:0}.js.is-ready:not(.is-print) .gl{opacity:1;transition:opacity 1.8s ease .1s}.js:not(.is-print) .chips li{opacity:0;transform:translateY(8px) scale(.94)}.js:not(.is-print) .sk.is-in .chips li{opacity:1;transform:none;transition:opacity .5s var(--ease-out),transform .6s var(--ease-out),border-color var(--d-fast),background-color var(--d-fast);transition-delay:calc(var(--d, 0ms) + var(--c, 0) * 40ms + .15s)}@media(hover:hover){.js .sk.is-in .chips li:hover{transition-delay:0ms}}.js:not(.is-print) .hls li:before{transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--ease-out) calc(var(--d, 0ms) + .25s)}.js:not(.is-print) .hls li.is-in:before{transform:scaleX(1)}.js:not(.is-print) .reveal{opacity:0;transform:translateY(24px);filter:blur(6px);transition:opacity .7s var(--ease-out),transform .8s var(--ease-out),filter .7s var(--ease-out);transition-delay:calc(var(--d, 0ms) + var(--lag, 0ms))}.js:not(.is-print) .reveal.is-in{opacity:1;transform:none;filter:none}.js .prod.reveal.is-in{transition:opacity .7s var(--ease-out),transform var(--d-med) var(--ease-out),filter .7s var(--ease-out),border-color var(--d-med),box-shadow var(--d-med)}@media(prefers-reduced-motion:reduce){.js .reveal,.js .intro,.js .cover__name .ch,.js .chips li,.js .gl{opacity:1!important;transform:none!important;filter:none!important;animation:none!important;transition:none!important}.js .sec+.sec:before,.js .doc:before,.js .eyebrow i,.js .hls li:before{transform:none!important}.dot:after{animation:none}}@media(max-width:640px){.cvbar{padding:var(--s-3) var(--pad)}.cvbar__back .od-icon{display:none}.cvbar__back{gap:6px;font-size:17px}.cvbar__back img{width:30px}.cvbar .lang{padding:0 6px}.cvbar__pdf{min-height:40px;padding:0 var(--s-3);font-size:14px}.cv{padding-top:var(--s-5);padding-bottom:var(--s-8)}.cover__name{font-size:min(44px,calc((100vw - 2 * var(--pad)) / 9))}.cover__line{white-space:nowrap}.cover__title{margin-top:var(--s-4);font-size:17px;line-height:1.45}.cover__contact{display:grid;gap:0;margin-top:var(--s-5);border:1px solid rgba(238,240,243,.14);border-radius:14px;overflow:hidden}.cover__contact li+li{border-top:1px solid rgba(238,240,243,.08)}.pill{display:flex;width:100%;min-height:46px;padding:0 var(--s-4);gap:var(--s-3);border:0;border-radius:0;font-size:13px;overflow-wrap:anywhere}.pill .od-icon{--od-icon-size: 16px}a.pill:after{content:"↗";margin-left:auto;color:var(--ink-3);font-size:12px}.cover__avail{margin-top:var(--s-4);align-items:flex-start;font-size:14px}.cover__avail .dot{margin-top:6px}.doc{margin-top:var(--s-6)}.sec{padding:var(--s-6) 0;gap:var(--s-4)}.sec__h{font-size:21px}.lead{font-size:16px;line-height:1.65}.hls li{font-size:15px}.chips li{font-size:13px;padding:4px 10px}.sk-note{font-size:13px}.lng{padding:var(--s-4)}.job h3{font-size:18px}.xpl{padding-left:24px;gap:var(--s-5)}.xpl__item:before{left:-24px}.xpl__head{flex-direction:column;gap:2px}.xpl__head b{font-size:17px}.xpl__item>p:not(.xpl__head){font-size:15px}.prod{padding:var(--s-4)}.prod h3{font-size:18px}.prod p,.edu p{font-size:14px}.edu h3{font-size:16px}.cv-link{font-size:12px}.cvfoot{display:grid;justify-content:stretch}.cvfoot .btn{width:100%;min-height:48px;font-size:15px}}@media print{.no-print,.vignette,.gl,.pt,.xpl__rail,.xpl__item:before{display:none!important}body{background:#fff!important;color:#111}.doc{border:0}.reveal,.intro,.cover__name .ch,.chips li{opacity:1!important;transform:none!important;filter:none!important}.cover__line--blue{color:#2b4c8c}}.cvkey{margin-top:var(--s-5)}.cvkey strong{color:var(--ink);font-weight:600}.xpl__pts{display:grid;gap:6px;color:var(--ink-2);font-size:16px;line-height:1.6}.xpl__pts li{position:relative;padding-left:18px}.xpl__pts li:before{content:"";position:absolute;left:0;top:.74em;width:8px;height:2px;border-radius:2px;background:var(--blue-hi)}@media(max-width:640px){.xpl__pts{font-size:15px}}.skills .sk:last-child:nth-child(odd){grid-column:1 / -1}
