.track-fullstack{--fs-bg:#E4E0F0;--fs-surface:#FFFFFF;--fs-elevated:#F0EDF9;--fs-border:#CFC8E4;--fs-hairline:#EAE6F3;--fs-text:#1B1730;--fs-text-muted:#635B7D;--fs-accent:#7A5A00;--fs-accent-vivid:#F2C300;--fs-on-accent:#FFFFFF;--fs-on-vivid:#1B1730;--fs-rejected:#C81E3A;--fs-flagged:#B5540A;--fs-verified:#1E7A4C;--fs-connected:#2563A6;--fs-offline:#8B8296;--fs-r-panel:22px;--fs-r-media:16px;--fs-r-pill:999px;--fs-font-display:var(--font-fs-display,"Bricolage Grotesque"),system-ui,sans-serif;--fs-font-body:var(--font-fs-body,"Spline Sans"),system-ui,sans-serif;--fs-font-mono:var(--font-fs-mono,"Spline Sans Mono"),ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--fs-bg);color:var(--fs-text);font-family:var(--fs-font-body)}.track-fullstack h1,.track-fullstack h2,.track-fullstack h3{font-family:var(--fs-font-display)}.track-fullstack .font-mono{font-family:var(--fs-font-mono)}.track-fullstack .fs-panel{border-radius:var(--fs-r-panel);border:1px solid var(--fs-border);background:var(--fs-surface)}.track-fullstack .fs-panel--elevated{background:var(--fs-elevated)}.track-fullstack .fs-eyebrow{font-family:var(--fs-font-mono);font-size:.75rem;line-height:1;text-transform:uppercase;letter-spacing:.14em;color:var(--fs-text-muted)}.track-fullstack .fs-eyebrow--num{color:var(--fs-accent)}.track-fullstack .fs-dial{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:2px solid}.track-fullstack .fs-dial:after{content:"";display:block;width:8px;height:8px;border-radius:50%;background:currentColor}.track-fullstack .fs-resume{display:flex;flex-direction:column;gap:.625rem;list-style:none;margin:0;padding:0;color:var(--fs-text-muted)}.track-fullstack .fs-resume li{position:relative;padding-left:1.25rem}.track-fullstack .fs-resume li:before{content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;border-radius:50%;background:var(--fs-accent)}.track-fullstack .fs-areas{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--fs-border);border-radius:var(--fs-r-pill);background:var(--fs-surface)}.track-fullstack .fs-areas a{min-height:44px;display:inline-flex;align-items:center;padding:0 1.3rem;border-radius:var(--fs-r-pill);text-decoration:none;font-size:.8rem;font-weight:600;color:var(--fs-text-muted);transition:color .16s ease}.track-fullstack .fs-areas a:hover{color:var(--fs-text)}.track-fullstack .fs-areas a[aria-current=page]{background:var(--fs-accent-vivid);color:var(--fs-on-vivid);border:2px solid var(--fs-text)}.track-fullstack .fs-xp{display:flex;flex-direction:column;gap:.5rem}.track-fullstack .fs-xp-row{border-radius:var(--fs-r-panel);border:1px solid var(--fs-border);background:var(--fs-surface);overflow:hidden}.track-fullstack .fs-xp-sum{min-height:44px;display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;cursor:pointer;list-style:none}.track-fullstack .fs-xp-sum::-webkit-details-marker{display:none}.track-fullstack .fs-xp-sum-when{flex:0 0 auto;min-width:11rem;color:var(--fs-text-muted)}.track-fullstack .fs-xp-sum-que{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;min-width:0}.track-fullstack .fs-xp-sum-que span{color:var(--fs-text-muted)}.track-fullstack .fs-xp-chevron{margin-left:auto;flex:0 0 auto;font-family:var(--fs-font-mono);font-size:1.1rem;line-height:1;color:var(--fs-text-muted);transition:transform .18s ease}.track-fullstack .fs-xp-row[open] .fs-xp-chevron{transform:rotate(45deg)}.track-fullstack .fs-xp-sum:focus-visible .fs-xp-chevron,.track-fullstack .fs-xp-sum:hover .fs-xp-chevron{color:var(--fs-text)}@media (max-width:640px){.track-fullstack .fs-xp-sum{flex-wrap:wrap;gap:.35rem .75rem}.track-fullstack .fs-xp-sum-when{min-width:100%}}.track-fullstack .fs-xp-body{display:flex;flex-direction:column;gap:.6rem;border-top:1px solid var(--fs-hairline);margin-top:.25rem;padding:1rem 1.25rem 1.25rem}.track-fullstack .fs-xp-body .fs-resume{max-width:62ch}.track-fullstack .fs-xp-now{display:inline-flex;align-items:center;align-self:flex-start;padding:.1rem .5rem;border-radius:var(--fs-r-pill);font-family:var(--fs-font-mono);font-size:.75rem;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.track-fullstack .fs-justify{text-align:justify;hyphens:auto}.track-fullstack .fs-case-stats{display:grid;grid-template-columns:1fr;gap:1px;margin:2.5rem 0 0;overflow:hidden;border:1px solid var(--fs-border);border-radius:var(--fs-r-panel);background:var(--fs-border)}@media (min-width:480px){.track-fullstack .fs-case-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}.track-fullstack .fs-case-stats>div{display:grid;gap:.25rem;align-content:start;padding:1.1rem 1.2rem;background:var(--fs-surface)}.track-fullstack .fs-case-item{display:grid;gap:.75rem;padding:1.3rem 1.5rem;border-top:1px solid var(--fs-hairline)}.track-fullstack .fs-case-item:first-child{border-top:0}@media (min-width:768px){.track-fullstack .fs-case-item{grid-template-columns:12rem 1fr;gap:1.5rem;align-items:start}}.track-fullstack .fs-case-gallery{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.track-fullstack .fs-case-wide{grid-column:1/-1}.track-fullstack .fs-tabla{border-collapse:collapse;min-width:620px;font-size:.86rem}.track-fullstack .fs-tabla th{text-align:left;font-family:var(--fs-font-mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:400;color:var(--fs-text-muted);padding:.8rem 1.1rem;border-bottom:1px solid var(--fs-border)}.track-fullstack .fs-tabla td{padding:.85rem 1.1rem;border-bottom:1px solid var(--fs-hairline);vertical-align:top}.track-fullstack .fs-tabla tr:last-child td{border-bottom:0}.track-fullstack .fs-diagrama{overflow-x:auto;border-radius:var(--fs-r-media);background:var(--fs-elevated);padding:1rem}.track-fullstack .fs-diagrama svg{max-height:460px;height:auto;margin-inline:auto}.dark .track-fullstack{--fs-bg:#17132A;--fs-surface:#302754;--fs-elevated:#423672;--fs-border:#544A86;--fs-hairline:#2A2247;--fs-text:#F1EEFA;--fs-text-muted:#B3A9D1;--fs-accent:#F5CC33;--fs-on-accent:#17132A;--fs-rejected:#E8637C;--fs-flagged:#E08A42;--fs-verified:#4FBE84;--fs-connected:#4C9FE0}.track-fullstack .fs-vivid{background:var(--fs-accent-vivid);color:var(--fs-on-vivid);border:2px solid var(--fs-text)}html[data-track=fullstack]{--fs-page-bg:#E4E0F0}html[data-track=fullstack].dark{--fs-page-bg:#17132A}html[data-track=fullstack] body{background:var(--fs-page-bg)}html[data-track=fullstack] .geometric-shapes,html[data-track=fullstack] .mk-platform{display:none}#casos,#contacto,#experiencia,#metodo,#otra-mitad,#sobre-mi{scroll-margin-top:12rem}@media (prefers-reduced-motion:reduce){.track-fullstack *,.track-fullstack :after,.track-fullstack :before{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (min-width:1024px){.track-fullstack .fs-hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:2.5rem;padding-bottom:2.5rem}.track-fullstack .fs-hero h1{font-size:clamp(1.9rem,2.8vw,2.5rem)}.track-fullstack .fs-hero svg{max-height:232px;width:auto;margin-inline:auto}}.sc--fullstack{--sc-superficie:#FFFFFF;--sc-desenfoque:none;--sc-borde:#DAD5E8;--sc-borde-grosor:1px;--sc-borde-hover:#1B1730;--sc-radio:var(--fs-r-pill,999px);--sc-radio-item:var(--fs-r-pill,999px);--sc-relleno:3px;--sc-apagado:#635B7D;--sc-encendido:#1B1730;--sc-activo-fondo:#F2C300;--sc-activo-texto:#1B1730;--sc-activo-trazo:2px solid #1B1730;--sc-hover:rgba(27,23,48,0.06);--sc-anillo:#1B1730;--sc-sol:#7A5A00;--sc-luna:#F1EEFA;--sc-sombra:none;--sc-sombra-hover:none;--sc-separador:#EAE6F3}.dark .sc--fullstack{--sc-superficie:#201A38;--sc-borde:#3D3460;--sc-borde-hover:#F1EEFA;--sc-apagado:#B3A9D1;--sc-encendido:#F1EEFA;--sc-activo-trazo:2px solid #F1EEFA;--sc-hover:rgba(241,238,250,0.08);--sc-anillo:#F1EEFA;--sc-sol:#F5CC33;--sc-separador:#2A2247}.track-fullstack .fs-xp-row[open] .fs-xp-body{animation:fs-xp-abrir .22s cubic-bezier(.16,1,.3,1)}@keyframes fs-xp-abrir{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@supports (interpolate-size:allow-keywords) and selector(details::details-content){.track-fullstack .fs-xp-row{interpolate-size:allow-keywords}.track-fullstack .fs-xp-row::details-content{block-size:0;overflow:hidden;transition:block-size .24s cubic-bezier(.16,1,.3,1),content-visibility allow-discrete .24s}.track-fullstack .fs-xp-row[open]::details-content{block-size:auto}}