@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations")}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-italic-DpCbqKDY.woff2)format("woff2-variations")}:root{--font-family:"Inter Variable", "Segoe UI Variable", "Segoe UI", sans-serif;--brand:#0067c0;--accent:#0067c0;--accent-strong:#005a9e;--accent-contrast:#004578;--text:#242424;--text-heading:#34475a;--text-heading-strong:#242424;--muted:#616161;--page:#f3f3f3;--white:#fff;--pastel-lavender:#e7e6ffd6;--timeline-card-one:#eaf4ff;--timeline-card-two:#eef0ff;--timeline-card-three:#e8f7ff;--timeline-accent-one:#005a9e;--timeline-accent-two:#4f4bb8;--timeline-accent-three:#006b82;--timeline-icon-surface:#ffffffad;--timeline-skeleton-line:#ffffffc2;--profile-card-surface:#e5f2ff;--profile-card-accent:#0067c0;--profile-card-text:#14395b;--profile-card-muted:#45647f;--project-accent-one:#0067a8;--project-accent-two:#0b6074;--project-accent-three:#6553a3;--project-accent-four:#6f5745;--project-accent-five:#8a6514;--certificate-accent-one:#16803c;--certificate-accent-two:#527f18;--certificate-accent-three:#527f18;--certificate-accent-four:#08766e;--certificate-accent-five:#527f18;--certificate-accent-six:#527f18;--contact-card-surface:#fff;--contact-link-one:#edf6ff;--contact-link-two:#e8f7fb;--contact-link-three:#f0f1ff;--contact-accent-one:#005a9e;--contact-accent-two:#006b82;--contact-accent-three:#4f4bb8;--roadmap-main-surface:#fff;--primary-action-surface:#dceeff;--primary-action-hover:#c7e3ff;--surface:#ffffffe0;--surface-strong:#fffffff5;--subsurface:var(--page);--nav:#fff;--nav-hover:#0067c014;--logo-surface:#ffffffeb;--modal-backdrop:#14141829;--media-tint:#2d252914;--media-tint-hover:#2d25290a;--skeleton-shine:#ffffff85;--glass-line:#ffffffb8;--subline:#00000014;--line:#0000001c;--focus:#0067c06b;--page-background:var(--page);--surface-page:#f4f7f9;--surface-subtle-left:#eef5f8;--surface-main:#fff;--surface-subtle-right:#f3f1f8;--sheen:linear-gradient(145deg, #ffffffdb, #ffffff47 36%, transparent 58%, #ffffff2e);--shadow-color:#00000017;--shadow:0 2px 4px #0000000a, 0 8px 24px var(--shadow-color);--shadow-soft:0 1px 2px #0000000d, 0 4px 12px #0000000f;--shadow-hover:0 4px 8px #0000000f, 0 14px 32px #00509621;--shadow-flyout:0 8px 16px #0000001a, 0 24px 48px #0000001f;--shadow-button:0 1px 2px #0000001f, inset 0 1px #ffffff2e;--subshadow:var(--shadow-soft);--icon-surface:linear-gradient(145deg, #fff 4%, #eaf5ff 48%, #b9dcfa 100%);--icon-highlight:inset 0 1px 1px #ffffffe6;--icon-shadow:0 2px 3px #00457824, 0 6px 12px #0067c01a;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--font-eyebrow:.76rem;--font-heading:clamp(2rem, 5vw, 4.2rem);--font-hero-name:clamp(2.1rem, 2.8vw, 3rem);--font-profile-meta:clamp(.76rem, .95vw, .84rem);--font-nav:.88rem;--font-nav-mobile:.5rem;--font-small:.82rem;--font-body-small:.86rem;--weight-regular:400;--weight-semibold:700;--weight-bold:800;--weight-heavy:850;--radius-sm:.75rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-xl:2rem;--radius-pill:999px;--content-max:70rem;--content-gutter:2rem;--content-gutter-mobile:1rem;--nav-max:32rem;--mobile-content-max:42.5rem;--button-min-height:2.8rem;--profile-size:clamp(6.5rem, 9vw, 8rem);--glass-blur:10px;--glass-saturation:120%;--nav-blur:12px;--nav-saturation:135%;--scrollbar-size:10px;--scrollbar-thumb:#48484857;--scrollbar-thumb-hover:#36679194;--scrollbar-thumb-active:#0067c0c2;--scrollbar-track:transparent;--duration-fast:.25s;--duration-normal:.35s;--duration-slow:.55s;--liquid-ease:cubic-bezier(.22, 1, .36, 1);--z-header:50;--z-skeleton:45}:root[data-theme=dark]{--accent:#60aeea;--accent-strong:#75b9eb;--accent-contrast:#2899f5;--text:#f5f5f7;--text-heading:#dce5ed;--text-heading-strong:#f5f5f7;--muted:#bdb8bc;--page:#0d0d0d;--pastel-lavender:#8b73ff18;--timeline-card-one:#dc534a2b;--timeline-card-two:#a967d62e;--timeline-card-three:#e679352e;--timeline-accent-one:#ff9d96;--timeline-accent-two:#d1a1f2;--timeline-accent-three:#ffad78;--timeline-icon-surface:#ffffff17;--timeline-skeleton-line:#ffffff21;--profile-card-surface:#2899f52e;--profile-card-accent:#86d5ff;--profile-card-text:#e0f3ff;--profile-card-muted:#b6d9ec;--project-accent-one:#87c7ff;--project-accent-two:#79d2e3;--project-accent-three:#c3b7ff;--project-accent-four:#d7b99d;--project-accent-five:#ffd77d;--certificate-accent-one:#74d99f;--certificate-accent-two:#b9df79;--certificate-accent-three:#b9df79;--certificate-accent-four:#83d7c3;--certificate-accent-five:#b9df79;--certificate-accent-six:#b9df79;--contact-card-surface:#a967d624;--contact-link-one:#5384e229;--contact-link-two:#43be7029;--contact-link-three:#dc534a29;--contact-accent-one:#9abfff;--contact-accent-two:#83dfa5;--contact-accent-three:#ffaaa4;--roadmap-main-surface:#ffffff0b;--primary-action-surface:#7480ff2e;--primary-action-hover:#7480ff42;--surface:#2d2d2dd1;--surface-strong:#353535eb;--nav:#0d0d0d;--nav-hover:#ffffff13;--glass-line:#ffffff1f;--subline:#ffffff1f;--line:#ffffff1a;--sheen:linear-gradient(145deg, #ffffff30, #ffffff09 34%, transparent 58%, #ffffff06);--page-background:radial-gradient(circle at 12% 8%, #2899f51f, transparent 24rem), radial-gradient(circle at 88% 82%, #60aeea0f, transparent 30rem), var(--page);--surface-page:#0d0d0d;--surface-subtle-left:#242d32;--surface-main:#292929;--surface-subtle-right:#2b2930;--shadow-color:#00000052;--shadow:0 2px 4px #00000029, 0 8px 24px var(--shadow-color);--shadow-soft:0 2px 8px #0000003d;--shadow-hover:0 5px 12px #0000003d, 0 16px 36px #00000052;--shadow-flyout:0 12px 28px #0000006b;--scrollbar-thumb:#dcdcdc4d;--scrollbar-thumb-hover:#86c2eb94;--scrollbar-thumb-active:#60aeeac7;--glass-blur:16px;--glass-saturation:130%}@media (max-width:720px){:root{--profile-size:7rem}}@media (max-width:520px){:root{--font-heading:2rem;--font-hero-name:2rem;--font-profile-meta:.72rem;--font-nav-mobile:.58rem;--profile-size:5.25rem;font-size:15px}}*{box-sizing:border-box;margin:0;padding:0}:root{font-family:var(--font-family);color:var(--text);background:var(--page-background);font-synthesis:none}html{scroll-behavior:smooth;scroll-padding-top:6.5rem}@media (hover:hover) and (pointer:fine){html{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-gutter:stable;scrollbar-width:thin}:is(html,.modal)::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}:is(html,.modal)::-webkit-scrollbar-track{background:var(--scrollbar-track)}:is(html,.modal)::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;min-height:2.75rem}:is(html,.modal)::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}:is(html,.modal)::-webkit-scrollbar-thumb:active{background-color:var(--scrollbar-thumb-active)}:is(html,.modal)::-webkit-scrollbar-button{display:none}.modal{--scrollbar-size:8px;scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin}}body{min-width:320px;min-height:100vh;color:var(--text);background:var(--page);padding-top:5.5rem}:root[data-theme=dark] body{background-attachment:fixed}:root[data-theme=dark] .modal{background:var(--sheen), var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation))}:root[data-theme=dark] :is(.timeline-controls button,.button-quiet,.button-secondary,.button-tertiary,.provider-logo,.modal-close,.contact-form input,.contact-form textarea){background:var(--sheen), var(--surface-strong);box-shadow:none}:root[data-theme=light] .modal{background:var(--sheen), var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation))}:root[data-theme=light] :is(.timeline-controls button,.button-quiet,.button-secondary,.button-tertiary,.provider-logo,.modal-close,.contact-form input,.contact-form textarea){background:var(--subsurface);box-shadow:var(--subshadow)}body.theme-ready{transition:color .25s,background .25s}.page{animation:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}img{max-width:100%;display:block}p{color:var(--muted);line-height:1.65}h1,h2,h3{text-wrap:balance}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip-link{z-index:100;border-radius:var(--radius-pill);color:#fff;background:var(--accent);padding:.7rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.button{min-height:var(--button-min-height);border-radius:var(--radius-pill);font-weight:var(--weight-semibold);cursor:pointer;box-shadow:none;transition:transform .35s var(--liquid-ease), background .35s ease, box-shadow .35s ease;border:0;justify-content:center;align-items:center;padding:.7rem 1.1rem;text-decoration:none;display:inline-flex}.button-primary{color:#fff;background:var(--accent);box-shadow:var(--shadow-button)}.button-primary:hover{background:var(--accent-strong);box-shadow:var(--shadow-button);transform:translateY(-1px)}:root[data-theme=dark] .button-primary{background:#2779ad}:root[data-theme=dark] .button-primary:hover{background:#338bbf}.button-secondary{color:var(--muted);border:1px solid var(--line);background:var(--surface-strong);box-shadow:none}.button-secondary:hover{background:color-mix(in srgb, var(--accent) 13%, var(--surface-strong));box-shadow:none}.button-tertiary{color:var(--muted);box-shadow:none;background:0 0}.button-tertiary:hover{color:var(--text);background:color-mix(in srgb, var(--text) 5%, transparent);box-shadow:none}.button-quiet{color:var(--text);background:var(--surface-strong);box-shadow:none}.button-quiet:hover{box-shadow:none;transform:translateY(-1px)}.button:active{transform:scale(.97)}.button:disabled{opacity:.58;cursor:wait}:is(.button,.nav-link,.icon-button,.timeline-item,.project-card,.article-card,.certificate-card,.contact-link){transform-origin:50%}:is(.button,.nav-link,.icon-button,.contact-link):not(:disabled):hover{animation:fluent-pop .4s var(--liquid-ease) both}:is(.button,.nav-link,.icon-button,.contact-link):not(:disabled):active{animation:none;transform:translateY(0)scale(.97)}html.theme-transition::view-transition-old(root){animation:none}html.theme-transition::view-transition-new(root){clip-path:circle(0 at var(--theme-x) var(--theme-y));animation:.65s cubic-bezier(.2,.8,.2,1) forwards theme-reveal}@keyframes theme-reveal{to{clip-path:circle(150vmax at var(--theme-x) var(--theme-y))}}@keyframes glass-materialize{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes home-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fluent-pop{0%{transform:translate(0,0)scale(.99)}52%{transform:translateY(-3px)scale(1.014)}76%{transform:translateY(-1px)scale(1.003)}to{transform:translateY(-2px)scale(1.01)}}@keyframes page-route-enter{0%{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}#root{min-height:100vh}#root:has(.page-inicio){min-height:auto}main{gap:calc(var(--space-12) + var(--space-2));min-width:0;padding-bottom:var(--space-4);display:grid}.page,.page-shell,.page-shell>*{min-width:0}.page:not(.page-inicio){min-height:calc(100vh - 13rem);padding-top:0}.page-shell{width:min(var(--content-max), calc(100% - var(--content-gutter)));margin-inline:auto}.content-section{gap:var(--space-6);display:grid}.section-heading{gap:.45rem;min-width:0;max-width:760px;display:grid}.section-heading>span,.eyebrow{color:var(--muted);font-size:var(--font-eyebrow);font-weight:var(--weight-bold);letter-spacing:.12em;text-transform:uppercase}.section-heading :is(h1,h2),.focus h2,.contact h2{font-size:var(--font-heading);font-weight:var(--weight-heavy);letter-spacing:-.055em;line-height:.98}.section-heading :is(h1,h2){color:var(--text-heading-strong)}.section-heading p{max-width:620px;font-size:1.02rem}.section-heading :is(h1,h2,p){overflow-wrap:break-word}.section-intro{gap:clamp(var(--space-8), 6vw, 5rem);grid-template-columns:minmax(0,1.05fr) minmax(18rem,.95fr);align-items:center;display:grid}.section-visual{place-items:center;width:100%;height:clamp(14rem,25vw,20rem);display:grid;overflow:hidden}.section-visual img{object-fit:contain;width:100%;height:100%}.icon-button{border-radius:var(--radius-pill);width:2.25rem;height:2.25rem;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.icon-button:hover{color:var(--accent)}.text-link{width:-moz-fit-content;width:fit-content;color:var(--accent);cursor:pointer;background:0 0;border:0;align-self:start;align-items:center;gap:.35rem;padding:0;font-weight:760;text-decoration:none;display:inline-flex}.text-link:hover{text-decoration:underline}.fluent-icon{filter:drop-shadow(0 1px 1px #00457833);transition:filter var(--duration-fast) ease, transform var(--duration-fast) var(--liquid-ease);flex:none;overflow:visible}:is(a,button):hover .fluent-icon{filter:drop-shadow(0 2px 2px #0045783d);transform:translateY(-1px)}.timeline-icon,.contact-link>.fluent-icon{color:var(--card-accent,var(--timeline-item-accent));background:var(--icon-surface);box-shadow:var(--icon-highlight), var(--icon-shadow)}.timeline-icon{border-radius:.7rem;transform:rotate(-2deg)}.timeline-icon .fluent-icon{transform:rotate(2deg)}.contact-link>.fluent-icon{border-radius:.78rem;width:2.6rem;height:2.6rem;padding:.56rem}.project-placeholder .fluent-icon{filter:drop-shadow(0 6px 7px #00457838)}.button .fluent-icon,.site-nav .fluent-icon,.text-link .fluent-icon{color:currentColor}:is(.timeline-action,.project-action,.certificate-action,.hero-destination-actions .button) .fluent-icon{background:linear-gradient(145deg, var(--surface-strong), color-mix(in srgb, currentColor 16%, var(--surface-strong)));width:1.42rem;height:1.42rem;box-shadow:inset 0 1px 1px #fffc, 0 2px 5px color-mix(in srgb, currentColor 18%, transparent);filter:none;border-radius:.42rem;padding:.25rem}:root[data-theme=dark] .fluent-icon{filter:drop-shadow(0 2px 2px #00000080)}:root[data-theme=dark] :is(.timeline-action,.project-action,.certificate-action,.hero-destination-actions .button) .fluent-icon{background:linear-gradient(145deg, #ffffff1f, color-mix(in srgb, currentColor 18%, var(--surface-strong)));filter:none;box-shadow:inset 0 1px #ffffff29,0 2px 4px #00000047}:root[data-theme=dark] :is(.timeline-icon,.contact-link>.fluent-icon){background:linear-gradient(145deg,#ffffff2e,#2899f52e)}.hero-destination-actions .button .fluent-icon{width:1rem;height:1rem;box-shadow:none;filter:none;background:0 0;border-radius:0;padding:0}:root[data-theme=dark] .hero-destination-actions .button .fluent-icon{box-shadow:none;filter:none;background:0 0;border:0}.progressive-image{display:block;position:relative;overflow:hidden}.image-skeleton{z-index:0;background:linear-gradient(135deg, var(--surface-strong), var(--surface));transition:opacity .35s;position:absolute;inset:0}.image-skeleton:after{background:linear-gradient(100deg, transparent 20%, var(--skeleton-shine) 45%, transparent 70%);content:"";animation:1.35s ease-in-out infinite skeleton-wave;position:absolute;inset:0;transform:translate(-100%)}.progressive-image img{z-index:1;position:relative}.progressive-image.is-loaded .image-skeleton{opacity:0;pointer-events:none}.page-skeleton{z-index:var(--z-skeleton);background:var(--page);pointer-events:none;padding:clamp(1.5rem,3vh,3rem) 1rem;animation:.12s ease-out both skeleton-enter;position:fixed;inset:4.8rem 0 0}.page-skeleton.is-leaving{animation:.14s ease-in both skeleton-exit}.skeleton-home-card{gap:clamp(var(--space-4), 2vw, var(--space-6));grid-template-columns:minmax(24rem,36rem) minmax(22rem,29rem);width:min(100%,70rem);margin-inline:auto;display:grid}.skeleton-profile-card,.skeleton-skills-card{border-radius:var(--radius-lg);background:var(--surface-strong);align-content:start;gap:1rem;padding:clamp(1rem,1.7vw,1.35rem);display:grid}.skeleton-profile-heading{grid-template-columns:auto 1fr;align-items:center;gap:1.1rem;display:grid}.skeleton-profile-copy{gap:.42rem;display:grid}.skeleton-layout{width:min(100%, var(--content-max));grid-template-columns:minmax(20rem,.8fr) minmax(0,1.2fr);gap:3rem;margin-inline:auto;display:grid}.skeleton-profile{grid-template-columns:auto 1fr;align-items:center;gap:1rem;display:grid}.skeleton-profile>div{gap:.7rem;display:grid}.skeleton-block{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--surface-strong), var(--surface));display:block;position:relative;overflow:hidden}.skeleton-block:after{background:linear-gradient(100deg, transparent 20%, var(--skeleton-shine) 45%, transparent 70%);content:"";animation:1.35s ease-in-out infinite skeleton-wave;position:absolute;inset:0;transform:translate(-100%)}.skeleton-avatar{width:var(--profile-size);height:var(--profile-size);background:linear-gradient(135deg, var(--surface-strong), var(--surface));border-radius:50%}.skeleton-name{width:min(15rem,90%);height:2rem}.skeleton-role{border-radius:999px;width:46%;height:.65rem}.skeleton-career{border-radius:999px;width:92%;height:.75rem}.skeleton-study{border-radius:999px;width:72%;height:.72rem}.skeleton-objective{gap:.55rem;padding-top:.35rem;display:grid}.skeleton-objective-title{width:38%;height:.9rem}.skeleton-objective-line{border-radius:999px;width:100%;height:.82rem}.skeleton-objective-line-short{width:76%}.skeleton-actions{gap:.5rem;display:flex}.skeleton-action{border-radius:var(--radius-md);width:5.8rem;height:2.25rem}.skeleton-action-primary{width:8.6rem}.skeleton-action-icon{width:4.5rem}.skeleton-skills-card{gap:.7rem}.skeleton-skills-title{width:7rem;height:1.15rem}.skeleton-tabs{gap:.3rem;display:flex;overflow:hidden}.skeleton-tab{border-radius:.65rem;width:5rem;height:2rem}.skeleton-tab-active{width:6rem}.skeleton-tags{flex-wrap:wrap;gap:.45rem;padding-top:.35rem;display:flex}.skeleton-tag{border-radius:var(--radius-pill);width:5.8rem;height:2rem}.skeleton-tag:nth-child(2n){width:4.6rem}.skeleton-tag:nth-child(3n){width:6.8rem}.skeleton-title{width:78%;height:2.8rem}.skeleton-line{border-radius:999px;width:100%;height:.9rem}.skeleton-line-short{width:58%}.skeleton-cards{grid-template-columns:repeat(3,1fr);gap:.7rem;display:grid}.skeleton-cards .skeleton-block{min-height:13rem}.skeleton-cards .skeleton-block:nth-child(2),.skeleton-cards .skeleton-block:nth-child(3){background:linear-gradient(135deg, var(--surface-strong), var(--surface))}.page-skeleton:not(.page-skeleton-inicio) .skeleton-layout{grid-template-columns:1fr;gap:1.5rem}.page-skeleton:not(.page-skeleton-inicio) .skeleton-profile{grid-template-columns:1fr;gap:.8rem}.page-skeleton:not(.page-skeleton-inicio) .skeleton-profile>.skeleton-avatar{display:none}.page-skeleton:not(.page-skeleton-inicio) .skeleton-profile>div{gap:.8rem}.page-skeleton:not(.page-skeleton-inicio) .skeleton-title{width:42%;height:2.4rem}.page-skeleton:not(.page-skeleton-inicio) .skeleton-cards{display:none}.skeleton-page-content{width:min(100%, var(--content-max));gap:.8rem;margin:1.5rem auto 0;display:grid}.skeleton-content-title{width:28%;height:1.8rem}.skeleton-content-line{width:70%;height:.8rem}.skeleton-content-line-short{width:48%}.skeleton-content-cards{grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:.8rem;display:grid}.skeleton-content-cards .skeleton-block{min-height:12rem}@keyframes skeleton-wave{to{transform:translate(100%)}}@keyframes skeleton-enter{0%{opacity:0;transform:translateY(4px)}}@keyframes skeleton-exit{to{opacity:0;transform:translateY(-3px)}}@media (max-width:720px){.skeleton-home-card{width:min(100%, var(--mobile-content-max));grid-template-columns:1fr}.skeleton-skills-card{display:none}.skeleton-layout,.skeleton-cards{grid-template-columns:1fr}.skeleton-cards .skeleton-block:nth-child(n+2){display:none}}@media (prefers-reduced-motion:reduce){.page-skeleton{display:none}}.site-header{z-index:var(--z-header);padding:var(--space-3) var(--space-4);opacity:1;visibility:visible;pointer-events:none;transition:opacity .42s ease .26s, transform .62s var(--liquid-ease) .18s, visibility 0s;position:fixed;inset:0 0 auto;transform:translateY(0)}.site-nav{border-radius:var(--radius-pill);background:var(--nav);width:-moz-fit-content;width:fit-content;max-width:100%;box-shadow:var(--shadow-soft);pointer-events:auto;justify-content:center;gap:0;margin:0 auto;padding:.35rem;animation:none;display:flex;position:relative}.site-nav:before{width:var(--nav-active-width,0);height:var(--nav-active-height,0);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent) 10%, var(--surface-strong));box-shadow:var(--shadow-soft);content:"";opacity:var(--nav-active-opacity,0);pointer-events:none;transform:translate3d(var(--nav-active-x,0), var(--nav-active-y,0), 0);transition:width .3s var(--liquid-ease), height .3s var(--liquid-ease), opacity .16s ease, transform .32s cubic-bezier(.2, .8, .2, 1);position:absolute;top:0;left:0}.nav-link{z-index:1;border-radius:var(--radius-pill);color:var(--muted);font-size:var(--font-nav);white-space:nowrap;transition:color .3s ease, background .35s ease, transform .35s var(--liquid-ease), box-shadow .35s ease;align-items:center;gap:.35rem;padding:.52rem .7rem;text-decoration:none;display:inline-flex;position:relative}.nav-link:hover{color:var(--text);background:var(--nav-hover);transform:scale(1.025)}.nav-link:active{transform:scale(.96)}.nav-link.is-active{color:var(--accent);box-shadow:none;background:0 0}.nav-link.is-active:hover{background:0 0}.site-nav .icon-button{z-index:1;margin-left:.1rem;position:relative}.theme-icon{place-items:center;display:grid}.theme-icon-dark,.theme-label,:root[data-theme=dark] .theme-icon-light{display:none}:root[data-theme=dark] .theme-icon-dark{display:grid}:root[data-theme=dark] .site-nav{box-shadow:var(--shadow)}:root[data-theme=dark] .nav-link:hover{background:var(--nav-hover)}:root[data-theme=dark] .nav-link.is-active{background:0 0}.hero{width:calc(100% - var(--content-gutter));max-width:none;min-height:calc(100dvh - 10.5rem);padding-block:clamp(var(--space-6), 6vh, var(--space-16)) var(--space-2);align-items:center;display:grid}.page-inicio .hero{min-height:auto;padding-top:clamp(var(--space-4), 3vh, var(--space-6))}.hero-card{align-items:stretch;gap:clamp(var(--space-4), 2vw, var(--space-6));width:100%;max-width:var(--content-max);border-radius:calc(var(--radius-lg) + .35rem);background:var(--surface);grid-template-columns:minmax(24rem,36rem) minmax(22rem,29rem);justify-content:center;min-height:clamp(20rem,48vh - 3.36rem,30rem);margin-inline:auto;padding:clamp(.65rem,1.2vw,1rem);display:grid}:root[data-theme=dark] .hero-card{background:var(--roadmap-main-surface)}.hero-profile{align-content:stretch;justify-self:center;gap:var(--space-5);width:100%;min-width:0;display:grid}.hero-heading{grid-template-columns:auto 1fr;align-items:center;gap:1.1rem;display:grid}.profile-card{border-radius:var(--radius-lg);background:var(--surface-strong);height:100%;box-shadow:none;border:0;gap:1rem;padding:clamp(1rem,1.7vw,1.35rem);animation:.5s both home-fade-in;display:grid}:root[data-theme=dark] .profile-card{background:0 0}.profile-card h1{color:#000}:root[data-theme=dark] .profile-card h1{color:#fff}.profile-image{width:var(--profile-size);aspect-ratio:1;border-radius:50%}.profile-image img{object-fit:cover;width:100%;height:100%}:root[data-theme=dark] .profile-image img{opacity:1;filter:grayscale()contrast(1.04);mix-blend-mode:normal}.hero-heading>div{gap:.25rem;display:grid}.hero-role{color:var(--muted);letter-spacing:.015em;align-items:center;gap:.35rem;font-size:.72rem;font-weight:500;display:inline-flex}.hero-role strong{color:inherit}.hero-role .fluent-icon{color:var(--muted)}.hero-heading h1{letter-spacing:-.05em;font-size:clamp(1.7rem,2.15vw,2.35rem);font-weight:600;line-height:1}.hero-career{max-width:33rem;color:var(--muted);font-size:clamp(.82rem,1vw,.95rem);font-style:italic;font-weight:var(--weight-regular);line-height:1.3}.hero-career,.hero-study{font-size:var(--font-profile-meta)}.hero-career{font-size:clamp(.72rem,.9vw,.82rem)}.hero-study{font-size:clamp(.74rem,.86vw,.82rem);line-height:1.4}.profile-card :is(.hero-career,.hero-study){color:var(--muted)}.hero-objective{max-width:34rem;color:var(--muted);font-size:.95rem;font-weight:var(--weight-regular);text-align:justify;line-height:1.55}.hero-actions,.hero-destination-actions{flex-wrap:wrap;gap:.5rem;display:flex}.hero-actions .button{gap:.4rem;font-size:.8rem}.hero-destination-actions{flex-wrap:wrap;max-width:32rem}.hero-destination-actions .button{flex:none}.hero-destination-actions .hero-linkedin-action{border:1px solid var(--line);color:var(--muted);box-shadow:none!important;background:0 0!important}.hero-destination-actions .hero-github-action{color:var(--muted);border:0;box-shadow:none!important;background:0 0!important}.hero-destination-actions :is(.hero-linkedin-action,.hero-github-action):hover,.hero-destination-actions :is(.hero-linkedin-action,.hero-github-action):focus,.hero-destination-actions :is(.hero-linkedin-action,.hero-github-action):active{box-shadow:none!important;background:0 0!important}.hero-cv-action:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.hero-stack{min-width:0;min-height:0;padding-left:clamp(var(--space-4), 2vw, var(--space-6));border-left:1px solid var(--line);align-self:stretch;align-items:center;display:grid}.home-github{border-radius:var(--radius-lg);background:var(--surface-strong);min-width:0;height:-moz-fit-content;height:fit-content;box-shadow:none;align-content:center;align-self:start;gap:.6rem;padding:clamp(.75rem,1.25vw,1rem) clamp(.75rem,1.25vw,1rem) clamp(1rem,1.6vw,1.25rem);animation:.5s both home-fade-in;display:grid}:root[data-theme=dark] .home-github{background:0 0}.skills-section-heading{text-align:left;justify-items:start;min-width:0;display:grid}.skills-section-heading h2{color:var(--muted);font-size:1.15rem;font-weight:var(--weight-regular);letter-spacing:normal;line-height:1.2}.github-page-content{min-width:0;animation:github-page-enter .42s var(--liquid-ease) both;align-content:start;gap:.7rem;display:grid}.page-inicio .github-page-content,.page-inicio .skill-group{animation:none}.skills-tablist{scrollbar-width:none;gap:.3rem;min-width:0;padding:.15rem 0;display:flex;overflow-x:auto}.skills-tablist::-webkit-scrollbar{display:none}.skills-tab{box-sizing:border-box;min-height:2rem;color:var(--muted);font:inherit;font-size:.8rem;font-weight:var(--weight-regular);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:.65rem;flex:none;padding:0 .55rem;line-height:1;transition:color .18s,background .18s,font-weight .18s}.skills-tab[aria-selected=true]{color:var(--text);background:color-mix(in srgb, var(--accent) 8%, var(--surface-strong));font-weight:var(--weight-semibold)}.skills-tab:hover{color:var(--text);background:color-mix(in srgb, var(--text) 4%, transparent)}.skills-tab:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.skills-tab-panels{display:grid}.skills-tab-panel{grid-area:1/1;min-width:0}.skills-tab-panel.is-active.is-switching{animation:.18s both skills-tab-content-enter}.skills-tab-panel .skill-group{animation:none}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .6rem;display:grid}.skills-grid.is-technical{align-items:start}.skills-column{align-content:start;gap:.75rem;min-width:0;display:grid}.skill-group{min-width:0;animation:github-card-enter .5s var(--liquid-ease) both;animation-delay:calc(var(--skill-order) * 65ms);align-content:start;gap:.65rem;padding:.6rem 0;display:grid}.skill-group>header{align-items:center;gap:.45rem;display:flex}.skill-group h3{color:var(--muted);font-size:.8rem;font-weight:var(--weight-regular)}.skill-group .fluent-icon{color:var(--accent)}.skill-items{flex-wrap:wrap;gap:.45rem;display:flex}.home-github .technology-tag{box-sizing:border-box;border-radius:var(--radius-pill);min-height:2rem;color:var(--muted);font-size:.8rem;font-weight:var(--weight-regular);background:color-mix(in srgb, var(--technology-color) 9%, var(--surface-strong));justify-content:center;gap:.28rem;padding:.25rem .45rem;line-height:1}.home-github .technology-icon-shell{flex:0 0 1rem;width:1rem;height:1rem;transform:none}.home-github .technology-icon{width:1rem;height:1rem}:root[data-theme=dark] .home-github .technology-tag{color:var(--muted);background:color-mix(in srgb, var(--technology-dark-color) 12%, var(--surface-strong))}:root[data-theme=dark] .skill-group,:root[data-theme=dark] :is(.skill-group>header,.skill-items){box-shadow:none;background:0 0}@keyframes github-card-enter{0%{opacity:0;transform:translateY(7px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes github-page-enter{0%{opacity:0;transform:translate(8px)scale(.992)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes skills-tab-content-enter{0%{opacity:0}to{opacity:1}}@media (max-width:720px){.skills-grid,.skills-grid.is-technical{grid-template-columns:1fr}.skills-grid.is-technical{gap:.65rem}.skills-grid.is-technical .skills-column{display:contents}.skills-grid.is-technical .skill-group{order:var(--skill-order)}.skills-tablist{margin-inline:-.25rem;padding-inline:.25rem;scroll-padding-inline:.25rem}}.roadmap-page{--roadmap-padding:clamp(var(--space-5), 3vw, var(--space-8));box-sizing:border-box;gap:var(--space-6);padding:var(--roadmap-padding);background:0 0}.page-content-card{padding:var(--roadmap-padding);border-radius:var(--radius-xl);background:var(--roadmap-main-surface)}.roadmap-list{gap:var(--space-8);padding-left:var(--space-8);display:grid;position:relative}.roadmap-list:before{border-radius:var(--radius-pill);background:var(--roadmap-line,var(--line));content:"";opacity:.34;width:2px;position:absolute;inset:0 auto 0 .4rem}.roadmap-entry{border-radius:var(--radius-lg);min-width:0;position:relative}.roadmap-list[data-progressive=true] .roadmap-entry{opacity:0;transition:opacity .38s ease, transform .42s var(--liquid-ease);transform:translateY(10px)scale(.994)}.roadmap-list[data-progressive=true] .roadmap-entry.is-revealed{opacity:1;transform:translateY(0)scale(1)}.roadmap-step{top:var(--space-6);left:calc(var(--space-8) * -1);z-index:1;aspect-ratio:1;border:2px solid var(--card-accent,var(--muted));border-radius:var(--radius-pill);background:var(--roadmap-main-surface);width:.9rem;box-shadow:var(--shadow-soft);position:absolute;transform:translate(-.05rem)}.roadmap-entry:first-child>.roadmap-step{transform:translate(-.05rem)scale(1.15)}.roadmap-year{left:calc(var(--space-8) * -1 - 1.05rem);width:3rem;height:1.65rem;color:var(--card-accent);background:color-mix(in srgb, var(--card-accent) 8%, var(--roadmap-main-surface));box-shadow:inset 0 1px #ffffffb3, var(--shadow-soft);place-items:center;font-size:.67rem;font-weight:800;line-height:1;display:grid}.roadmap-entry:first-child>.roadmap-year{transform:translate(-.05rem)}@media (max-width:720px){.roadmap-page{--roadmap-padding:var(--space-4)}.roadmap-list{gap:var(--space-6);padding-left:var(--space-6)}.roadmap-step{left:calc(var(--space-6) * -1)}.roadmap-year{left:calc(var(--space-6) * -1 - 1.05rem)}}.project-grid{gap:clamp(var(--space-5), 3vw, var(--space-8));grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.project-grid-entry{--project-fallback-accent:var(--project-accent-one);--card-accent:var(--project-light-accent,var(--project-fallback-accent));min-width:0}.project-grid-entry:nth-child(2){--project-fallback-accent:var(--project-accent-two)}.project-grid-entry:nth-child(3){--project-fallback-accent:var(--project-accent-three)}:root[data-theme=dark] .project-grid-entry{--card-accent:var(--project-dark-accent,var(--project-fallback-accent))}.project-card{min-width:0;animation:glass-materialize .5s var(--liquid-ease) both;grid-template-rows:auto 1fr;transition:transform .44s cubic-bezier(.34,1.56,.64,1),box-shadow .45s;display:grid}.project-grid-entry:nth-child(2) .project-card{animation-delay:80ms}.project-grid-entry:nth-child(3) .project-card{animation-delay:.16s}.project-card:hover{transform:translateY(-3px)}.project-image{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius-lg);display:block;position:relative;overflow:hidden}.project-image-media{width:100%;height:100%;position:absolute;inset:0}.project-image:after{content:"";background:var(--media-tint);mix-blend-mode:color;pointer-events:none;position:absolute;inset:0}.project-image img{object-fit:cover;filter:saturate(.72)contrast(.96);width:100%;height:100%;transition:opacity .4s ease, transform .55s var(--liquid-ease), filter .4s ease}.project-image:hover img{transform:scale(1.035)}.project-image:hover:after{background:var(--media-tint-hover)}.project-copy{align-content:start;gap:.55rem;padding:.8rem .25rem .15rem;display:grid}.project-copy h3{color:var(--text);letter-spacing:-.025em;font-size:1.08rem;line-height:1.25}.project-copy h3 a{color:inherit;text-decoration:none}.project-copy h3 a:hover{text-decoration:underline}.project-copy p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.84rem;line-height:1.5;display:-webkit-box;overflow:hidden}.project-meta{color:var(--card-accent);flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.74rem;font-weight:800;display:flex}.project-meta span{align-items:center;gap:.25rem;display:inline-flex}.tag-list{flex-wrap:wrap;gap:.3rem;display:flex}.project-links{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.2rem;display:flex}.project-cta{border-radius:var(--radius-pill);cursor:pointer;min-height:2.75rem;transition:background .28s ease, border-color .28s ease, box-shadow .28s ease, transform .28s var(--liquid-ease);border:1px solid #0000;justify-content:center;align-items:center;gap:.38rem;padding:.62rem .82rem;font-size:.74rem;font-weight:760;line-height:1;text-decoration:none;display:inline-flex}.project-cta-primary{color:#fff;background:var(--accent);box-shadow:var(--shadow-button)}.project-cta-secondary{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 34%, var(--line));background:0 0}.project-cta:hover{text-decoration:none;transform:translateY(-2px)}.project-cta-primary:hover{background:var(--accent-strong);box-shadow:var(--shadow-soft)}.project-cta-secondary:hover{background:color-mix(in srgb, var(--accent) 8%, transparent);box-shadow:0 3px 8px color-mix(in srgb, var(--accent) 12%, transparent)}.project-cta:active{box-shadow:none;transform:scale(.97)}.project-cta:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.project-cta .fluent-icon{color:currentColor;box-shadow:none;filter:none;background:0 0}:root[data-theme=dark] .project-cta-primary{color:#fff;box-shadow:none;background:#2779ad}:root[data-theme=dark] .project-cta-primary:hover{background:#338bbf;box-shadow:0 4px 10px #0000003d}:root[data-theme=dark] .project-cta-secondary{color:var(--project-accent-one);border-color:color-mix(in srgb, var(--project-accent-one) 38%, var(--line));background:0 0}.technology-tag{border-radius:var(--radius-pill);color:var(--muted);background:color-mix(in srgb, var(--text) 5%, transparent);box-shadow:none;border:0;align-items:center;gap:.38rem;padding:.3rem .58rem .3rem .32rem;font-size:.78rem;font-weight:700;display:inline-flex}.technology-icon-shell{width:1.5rem;height:1.5rem;color:var(--technology-color);background:0 0;border-radius:.45rem;place-items:center;display:grid;transform:translateY(-1px)}.technology-icon{width:.88rem;height:.88rem}:root[data-theme=dark] .technology-tag{color:var(--muted);background:color-mix(in srgb, var(--text) 7%, transparent);box-shadow:none;box-shadow:0 2px 5px #00000038}:root[data-theme=dark] .technology-icon-shell{color:var(--technology-dark-color);box-shadow:none;background:0 0}:root[data-theme=dark] .project-copy{background:0 0}:root[data-theme=dark] .technology-tag,:root[data-theme=dark] .technology-icon-shell{box-shadow:none;background:0 0;border:0}.project-card .text-link,.project-placeholder{color:var(--card-accent)}.project-action{background:var(--surface-strong);min-height:2.2rem;box-shadow:var(--shadow-soft);transition:background var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) var(--liquid-ease);border-radius:.7rem;margin-top:.15rem;padding:.45rem .7rem;font-size:.76rem;text-decoration:none}.project-action:hover{background:color-mix(in srgb, var(--card-accent) 5%, var(--roadmap-main-surface));box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}.project-action:active{box-shadow:var(--shadow-soft);transform:scale(.97)}:root[data-theme=dark] .project-action{background:var(--roadmap-main-surface);box-shadow:0 2px 5px #0000003d}.project-card-upcoming{order:-1}.project-placeholder{min-height:100%;color:var(--card-accent);background:linear-gradient(145deg, var(--surface-strong), var(--surface));place-items:center;display:grid}.project-detail{gap:clamp(.7rem,1.6vh,1.1rem);max-width:1280px;display:grid}.project-detail-box{gap:clamp(var(--space-5), 3vw, var(--space-8));display:grid}.project-detail-section-box{padding:clamp(var(--space-5), 3vw, var(--space-8));border-radius:var(--radius-xl);background:var(--roadmap-main-surface)}.project-detail-section-heading{text-align:center;justify-items:center;gap:.4rem;max-width:760px;margin-inline:auto;display:grid}.project-detail-section-heading h1,.project-detail-section-heading h2{letter-spacing:-.045em;font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.08}.project-detail-section-heading p{max-width:650px;font-size:.9rem;line-height:1.5}.project-detail-technical{gap:clamp(var(--space-5), 3vw, var(--space-8));display:grid}body:has(.page-proyecto){--detail-page-accent:var(--detail-page-light-accent,var(--accent));background:color-mix(in srgb, var(--detail-page-accent) 4%, var(--surface-strong))}:root[data-theme=dark] body:has(.page-proyecto){--detail-page-accent:var(--detail-page-dark-accent,var(--accent))}.project-detail-heading{text-align:center;width:min(100%,560px);animation:project-detail-heading-enter .58s var(--liquid-ease) 80ms both;justify-items:center;gap:.4rem;margin-inline:auto;display:grid}.project-detail-heading h1{letter-spacing:-.045em;font-size:clamp(1.55rem,2.7vw,2.2rem);line-height:1.05}.not-found h1{font-size:var(--font-heading);letter-spacing:-.055em;line-height:.98}.project-detail-heading p{color:var(--muted);font-size:.88rem;line-height:1.45}.device-mockup{--device-height:clamp(240px, 38vh, 420px);width:min(100%, calc(var(--device-height) * 1.5));height:var(--device-height);perspective:1100px;animation:project-detail-device-enter .72s var(--liquid-ease) .2s both;margin-inline:auto;position:relative}.device-mockup-lid{transform-style:preserve-3d;display:block;position:absolute;inset:0}.device-mockup-screen{z-index:1;background:var(--surface-strong);border-radius:.25rem;width:75.85%;height:61.82%;position:absolute;top:4.98%;left:12.11%;overflow:hidden}.device-mockup-screen img{object-fit:cover;width:100%;height:100%}.device-mockup-frame{z-index:2;pointer-events:none;display:block;position:absolute;inset:0}.device-mockup-frame img,.device-mockup-laptop-base img{object-fit:contain;filter:invert()drop-shadow(0 10px 15px #00000021);width:100%;height:100%}.device-mockup-laptop-base{display:none}.device-mockup-phone{aspect-ratio:1;width:min(100%,390px);height:auto}.device-mockup-phone .device-mockup-screen{border-radius:1.65rem;width:44.4%;height:92.9%;top:3.6%;left:27.8%}:root[data-theme=dark] .device-mockup-frame img,:root[data-theme=dark] .device-mockup-laptop-base img{filter:drop-shadow(0 10px 15px #00000052)}.project-detail-showcase{grid-template-rows:repeat(4,auto);grid-template-columns:minmax(190px,1fr) minmax(520px,2.2fr) minmax(190px,1fr);align-items:center;gap:.65rem 1rem;display:grid}.project-back-link{width:-moz-fit-content;width:fit-content}.project-detail-device-column{grid-area:1/2/5;gap:.35rem;min-width:0;display:grid}.project-detail-technologies{width:min(100%,560px);animation:project-detail-heading-enter .52s var(--liquid-ease) .16s both;justify-items:center;gap:.3rem;margin:.5rem auto .1rem;display:grid}.project-detail-technology-row{flex-wrap:wrap;justify-content:center;gap:.3rem;width:-moz-fit-content;width:fit-content;min-width:0;max-width:100%;display:flex}.project-repository{width:-moz-fit-content;width:fit-content;animation:project-detail-heading-enter .52s var(--liquid-ease) .28s both;margin:.3rem auto 0;text-decoration:none}.project-detail-highlights{display:contents}.project-detail-summary-card{--detail-card-accent:var(--project-accent-one);border-radius:var(--radius-md);background:color-mix(in srgb, var(--detail-card-accent) 8%, var(--surface-strong));min-width:0;box-shadow:var(--shadow-soft);animation:project-detail-card-enter .58s var(--liquid-ease) both;animation-delay:calc(.34s + var(--summary-order) * 55ms);border:1px solid #0000;align-content:start;gap:.3rem;padding:.62rem .7rem;display:grid}.project-detail-summary-card:nth-child(odd){grid-column:1}.project-detail-summary-card:nth-child(2n){grid-column:3}.project-detail-summary-card:nth-child(-n+2){grid-row:2}.project-detail-summary-card:nth-child(n+3):nth-child(-n+4){grid-row:3}.project-detail-summary-card:nth-child(n+5):nth-child(-n+6){grid-row:4}.project-detail-summary-card:nth-child(4n+2){--detail-card-accent:var(--project-accent-two)}.project-detail-summary-card:nth-child(4n+3){--detail-card-accent:var(--project-accent-three)}.project-detail-summary-card:nth-child(4n+4){--detail-card-accent:var(--project-accent-four)}.project-detail-card-heading{align-items:center;gap:.42rem;display:flex}.project-detail-card-icon{width:1.8rem;height:1.8rem;color:var(--detail-card-accent);background:color-mix(in srgb, var(--detail-card-accent) 12%, var(--surface-strong));box-shadow:inset 0 1px #fffc, var(--shadow-soft);border-radius:.55rem;flex:none;place-items:center;display:grid}.project-detail-summary-card h3{color:color-mix(in srgb, var(--detail-card-accent) 58%, var(--text));font-size:.88rem;line-height:1.25}.project-detail-summary-card p{color:var(--muted);font-size:.7rem;line-height:1.38}:root[data-theme=dark] .project-detail-summary-card{border-color:var(--line);background:var(--surface);box-shadow:none}:root[data-theme=dark] .project-detail-card-icon{box-shadow:none;background:0 0}@keyframes project-detail-heading-enter{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes project-detail-device-enter{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes project-detail-card-enter{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes laptop-lid-open{0%{filter:brightness(.7);transform:rotateX(-82deg)scaleY(.72)}68%{filter:brightness(1.04);transform:rotateX(5deg)scaleY(1)}to{filter:brightness();transform:rotateX(0)scaleY(1)}}.not-found{gap:var(--space-4);align-content:center;max-width:720px;display:grid}.not-found p{color:var(--muted);font-size:1.05rem}.not-found .button{width:-moz-fit-content;width:fit-content;text-decoration:none}@media (min-width:1101px){.device-mockup:not(.device-mockup-phone) .device-mockup-lid{clip-path:inset(0 0 32%);transform-origin:50% 68%;animation:1.05s cubic-bezier(.2,.78,.2,1) .3s both laptop-lid-open}.device-mockup-laptop-base{z-index:3;clip-path:inset(68% 0 0);pointer-events:none;display:block;position:absolute;inset:0}}@media (max-width:1100px){.project-detail{max-width:980px}.project-detail-showcase{grid-template-rows:auto;grid-template-columns:1fr}.project-detail-device-column{grid-area:auto/1}.project-detail-highlights{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.project-detail-summary-card{padding:.8rem;grid-area:auto!important}}@media (max-width:950px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-mockup{aspect-ratio:1;width:min(100%,420px);height:auto}.device-mockup-screen{border-radius:1.2rem;width:65.5%;height:88.7%;top:5.5%;left:17.3%}}@media (max-width:620px){.project-grid,.project-detail-highlights{grid-template-columns:1fr}.project-cta{flex:auto}.device-mockup{width:min(100%,380px)}.device-mockup-screen{border-radius:1.65rem;width:44.4%;height:92.9%;top:3.6%;left:27.8%}}.projects-cover{align-items:center;gap:clamp(var(--space-6), 5vw, 4.5rem);border-radius:var(--radius-xl);background:var(--roadmap-main-surface);grid-template-columns:minmax(0,1fr) minmax(22rem,1.08fr);min-height:clamp(20rem,48vh - 3.36rem,30rem);padding:clamp(2.5rem,5vw,4.5rem);display:grid;overflow:hidden}.projects-cover .section-heading{max-width:38rem}.projects-cover .section-heading h1{view-transition-name:route-title}.projects-cover .section-heading p{view-transition-name:route-description}.projects-cover-visual{view-transition-name:route-visual}.projects-cover .section-heading :is(h1,h2){font-size:clamp(2rem,4vw,3.35rem);line-height:1.02}.projects-cover .section-heading p{max-width:36rem;font-size:.96rem}.hero-section-cta{width:-moz-fit-content;width:fit-content;min-height:3rem;margin-top:var(--space-2);border-radius:var(--radius-pill);color:#fff;background:var(--accent);font-size:.9rem;font-weight:var(--weight-semibold);box-shadow:var(--shadow-button);transition:background var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;border:0;align-items:center;gap:.7rem;padding:.75rem 1.15rem;text-decoration:none;display:inline-flex}.hero-section-cta .fluent-icon{transition:transform var(--duration-fast) ease}.hero-section-cta:hover{background:color-mix(in srgb, var(--accent) 88%, #000);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-2px)}.hero-section-cta:hover .fluent-icon{transform:translateY(2px)}.hero-section-cta:focus-visible{outline:2px solid var(--accent);outline-offset:3px}:root[data-theme=dark] .hero-section-cta{background:#2779ad}:root[data-theme=dark] .hero-section-cta:hover{background:#338bbf}.projects-cover-visual{isolation:isolate;place-items:center;min-height:18rem;display:grid;position:relative}.projects-cover-visual img{object-fit:contain;width:100%;height:auto;max-height:27rem;transition:filter .3s,opacity .3s}:root[data-theme=dark] .projects-cover-visual img{filter:grayscale()contrast(1.12)brightness(.78);opacity:.92}html:not(.theme-transition)::view-transition-old(root){animation:none}html:not(.theme-transition)::view-transition-new(root){animation:none}::view-transition-old(route-title){animation:.16s both route-content-out}::view-transition-old(route-description){animation:.16s both route-content-out}::view-transition-old(route-visual){animation:.16s both route-content-out}::view-transition-new(route-title){animation:.22s 40ms both route-content-in}::view-transition-new(route-description){animation:.22s 40ms both route-content-in}::view-transition-new(route-visual){animation:.22s 40ms both route-content-in}@keyframes route-content-out{to{opacity:0}}@keyframes route-content-in{0%{opacity:0}}@media (max-width:950px){.projects-cover{grid-template-columns:minmax(0,1fr) minmax(18rem,.9fr);min-height:clamp(24rem,54vh,33rem);padding:clamp(2.25rem,5vw,3.5rem)}.projects-cover-visual{min-height:16rem}}@media (max-width:720px){.projects-cover{gap:var(--space-5);grid-template-columns:1fr;min-height:36rem;padding:2.5rem 1.5rem}.projects-cover .section-heading :is(h1,h2){font-size:var(--mobile-page-title)}.projects-cover-visual{min-height:14rem}.projects-cover-visual img{max-height:18rem}}.project-category{gap:var(--space-5);margin-top:calc(var(--space-2) * -1);display:grid}.project-tabs{border:1px solid var(--line);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--text) 4%, transparent);gap:.2rem;width:-moz-fit-content;width:fit-content;padding:.22rem;display:inline-flex}.project-tabs button{border-radius:var(--radius-pill);min-height:2.15rem;color:var(--muted);font-size:.82rem;font-weight:var(--weight-semibold);cursor:pointer;transition:color var(--duration-fast) ease, background var(--duration-fast) ease;background:0 0;border:0;padding:.45rem .8rem}.project-tabs button[aria-selected=true]{color:var(--text);background:var(--surface-strong);box-shadow:var(--shadow-soft)}.project-tabs button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.project-tabs+.social-projects{margin-top:var(--space-5)}.project-category .section-heading,.social-projects .section-heading{gap:.3rem;max-width:760px}.project-category .section-heading :is(h1,h2),.social-projects .section-heading :is(h1,h2){letter-spacing:-.04em;font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.1}.project-category .section-heading p,.social-projects .section-heading p{max-width:620px;font-size:.92rem;line-height:1.5}.project-showcase{gap:clamp(var(--space-5), 3vw, var(--space-8));scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:82%;grid-auto-flow:column;padding:.25rem 0 .8rem;display:grid;overflow-x:auto}.project-showcase::-webkit-scrollbar{display:none}.project-showcase:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.project-showcase .project-grid-entry{scroll-snap-align:start}.project-showcase .project-card{align-items:center;gap:clamp(var(--space-5), 4vw, var(--space-8));padding:clamp(var(--space-4), 3vw, var(--space-6));border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface-strong);grid-template-columns:minmax(18rem,1.25fr) minmax(16rem,.75fr)}.project-showcase .project-image{aspect-ratio:16/10}.project-showcase .project-copy{padding:0}.project-showcase .project-copy p{-webkit-line-clamp:4}.project-showcase .project-card:hover,.project-showcase .project-image:hover img{transform:none}.project-showcase .project-image:hover:after{background:var(--media-tint)}.project-showcase-controls{margin-top:calc(var(--space-2) * -1);justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.project-showcase-controls>span{color:var(--muted);font-size:.78rem;font-weight:var(--weight-semibold);margin-right:.35rem}.project-showcase-control{border:1px solid var(--line);width:2.5rem;height:2.5rem;color:var(--text);background:var(--surface-strong);cursor:pointer;transition:background var(--duration-fast) ease, transform var(--duration-fast) ease;border-radius:50%;place-items:center;padding:0;display:grid}.project-showcase-control:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, var(--surface-strong));transform:translateY(-1px)}.project-showcase-control:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.project-showcase-control:disabled{cursor:not-allowed;opacity:.38}@media (max-width:950px){.project-showcase{grid-auto-columns:88%}.project-showcase .project-card{grid-template-columns:1fr}}@media (max-width:620px){.project-showcase{gap:var(--space-4);grid-auto-columns:96%}.project-showcase .project-card{padding:var(--space-4)}.project-showcase-controls{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.project-showcase{scroll-behavior:auto}}.social-projects{gap:var(--space-4);margin-top:0;padding-top:0;display:grid}.social-project-grid{grid-template-columns:minmax(0,1fr);display:grid}.social-project-entry{--card-accent:var(--project-light-accent,var(--project-accent-one));min-width:0}:root[data-theme=dark] .social-project-entry{--card-accent:var(--project-dark-accent,var(--project-accent-one))}.social-project-card{border:1px solid var(--line);border-radius:var(--radius-lg);max-width:860px;animation:glass-materialize .5s var(--liquid-ease) both;background:0 0;grid-template-columns:fit-content(182px) minmax(0,1fr);transition:none;display:grid;overflow:hidden}.social-project-phone-link{width:150px;height:300px;margin-inline:var(--space-4);background:0 0;place-self:center;position:relative;overflow:hidden}.social-project-phone-link .device-mockup-phone{width:300px;max-width:none;transition:transform .45s var(--liquid-ease);animation:none;position:absolute;top:0;left:50%;transform:translate(-50%)}.social-project-phone-link:hover .device-mockup-phone{transform:translate(-50%)translateY(-3px)scale(1.02)}.social-project-copy{min-width:0;padding:clamp(var(--space-5), 3vw, var(--space-8));align-content:center;gap:.65rem;display:grid}.social-project-copy h3{letter-spacing:-.03em;font-size:1.2rem;line-height:1.2}.social-project-copy h3 a{color:inherit;text-decoration:none}.social-project-copy h3 a:hover{text-decoration:underline}.social-project-copy p{color:var(--muted);font-size:.88rem;line-height:1.55}.project-detail-actions{animation:project-detail-heading-enter .52s var(--liquid-ease) .28s both;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:.3rem auto 0;display:flex}.project-detail-actions .project-cta{text-decoration:none}.project-cta-play-store{color:#fff;box-shadow:var(--shadow-button);background:#01875f;border-color:#01875f}.project-cta-play-store .google-play-mark{flex:none}.project-cta-play-store:hover{color:#fff;box-shadow:var(--shadow-soft);background:#016f4f}:root[data-theme=dark] .project-cta-play-store{color:#fff;background:#01875f;border-color:#00a173}.social-project-detail .project-detail-summary-card{--detail-card-accent:#16803c}:root[data-theme=dark] .social-project-card{background:var(--surface);box-shadow:none}:root[data-theme=dark] .social-project-detail .project-detail-summary-card{--detail-card-accent:#74d99f}.scholar-gallery-section{min-width:0;display:grid}.social-project-detail .scholar-publication{animation:.5s both home-fade-in}.scholar-publication{column-gap:clamp(var(--space-5), 4vw, var(--space-8));row-gap:var(--space-4);grid-template-rows:auto auto 1fr auto;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}.scholar-publication-title{color:var(--text);font-size:clamp(1.65rem,2.4vw,2rem);font-weight:var(--weight-bold);letter-spacing:-.035em;text-align:left;grid-column:1;margin:0;line-height:1.18}.scholar-publication-author{grid-column:1}.scholar-publication-copy{color:var(--muted);text-align:justify;-webkit-hyphens:none;hyphens:none;word-break:normal;grid-column:1;margin:0;font-size:.92rem;line-height:1.55}.scholar-publication-link{grid-column:1;width:-moz-fit-content;width:fit-content}.scholar-publication .scholar-outreach-carousel{grid-area:1/2/5}.scholar-gallery-item{gap:.55rem;min-width:0;margin:0;display:grid}.scholar-gallery-media{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);display:block;overflow:hidden}.scholar-gallery-media img{object-fit:cover;width:100%;height:100%;display:block}.scholar-gallery-item figcaption{color:var(--muted);font-size:.76rem;font-weight:700;line-height:1.35}.scholar-phone-carousel{touch-action:pan-y;justify-items:center;gap:.3rem;width:min(100%,430px);margin-inline:auto;display:grid}.scholar-phone-device{width:min(100%,390px);position:relative}.scholar-phone-device .device-mockup{width:100%}.scholar-phone-control{z-index:5;border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--accent);background:var(--surface-strong);box-shadow:var(--shadow-soft);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:47%;transform:translateY(-50%)}.scholar-phone-control.is-previous{left:6%}.scholar-phone-control.is-next{right:6%}.scholar-phone-pages{justify-content:center;align-items:center;gap:.38rem;min-height:1.25rem;display:flex}.scholar-phone-pages button{background:color-mix(in srgb, var(--muted) 38%, transparent);cursor:pointer;border:0;border-radius:50%;width:.42rem;height:.42rem;padding:0;transition:width .25s,background .25s}.scholar-phone-pages button.is-active{border-radius:var(--radius-pill);background:var(--accent);width:1.2rem}.scholar-phone-caption{min-height:1rem;color:var(--muted);text-align:center;font-size:.72rem;font-weight:700}.scholar-publication-author{align-items:center;gap:.7rem;margin-bottom:.2rem;display:flex}.scholar-publication-avatar{border:1px solid var(--line);background:var(--surface-strong);border-radius:50%;flex:none;place-items:center;width:2.75rem;height:2.75rem;padding:.28rem;display:grid}.scholar-publication-avatar img{object-fit:contain;width:100%;height:100%}.scholar-publication-author>span:last-child{gap:.12rem;display:grid}.scholar-publication-author strong{color:var(--text);font-size:.84rem}.scholar-publication-author time{color:var(--muted);font-size:.74rem}.scholar-outreach-carousel{touch-action:pan-y;gap:.65rem;min-width:0;display:grid;position:relative}.scholar-outreach-carousel .scholar-gallery-item{animation:.34s cubic-bezier(.22,.7,.24,1) both scholar-outreach-enter}.scholar-outreach-carousel .scholar-gallery-media{aspect-ratio:16/9}.scholar-outreach-carousel .scholar-gallery-item figcaption{text-align:center;min-height:1.05rem}.scholar-outreach-control{z-index:2;border:1px solid var(--line);width:2.2rem;height:2.2rem;color:var(--accent);background:var(--surface-strong);box-shadow:var(--shadow-soft);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:calc(50% - 1.1rem);transform:translateY(-50%)}.scholar-outreach-control.is-previous{left:.65rem}.scholar-outreach-control.is-next{right:.65rem}.scholar-outreach-pages{justify-content:center;gap:.38rem;min-height:.5rem;display:flex}.scholar-outreach-pages button{background:color-mix(in srgb, var(--muted) 38%, transparent);cursor:pointer;border:0;border-radius:50%;width:.42rem;height:.42rem;padding:0;transition:width .25s,background .25s}.scholar-outreach-pages button.is-active{border-radius:var(--radius-pill);background:var(--accent);width:1.2rem}@keyframes scholar-outreach-enter{0%{opacity:.25;transform:translateY(6px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.scholar-outreach-carousel .scholar-gallery-item{animation:none}}.scholar-screenshot-modal{border:0;width:min(44rem,100% - 1.5rem);padding:0;overflow:visible;box-shadow:none!important;background:0 0!important}.scholar-screenshot-modal::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000c2}.scholar-screenshot-preview{grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;place-items:center;gap:.75rem;display:grid;position:relative}.scholar-screenshot-preview>.progressive-image{border-radius:var(--radius-lg);max-width:min(25rem,72vw);max-height:82dvh;box-shadow:var(--shadow-flyout);background:#fff;grid-column:2;overflow:hidden}.scholar-screenshot-preview img{object-fit:contain;width:auto;max-height:82dvh}.scholar-screenshot-preview p{color:#fff;text-align:center;grid-column:1/-1;font-size:.82rem;font-weight:700}.scholar-preview-close,.scholar-preview-control{color:#fff;cursor:pointer;background:#1e1e1ed1;border:0;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;padding:0;display:grid}.scholar-preview-close{z-index:2;position:absolute;top:.5rem;right:calc(3.5rem + 7vw)}.scholar-preview-control.is-previous{grid-area:1/1}.scholar-preview-control.is-next{grid-area:1/3}:root[data-theme=dark] .scholar-gallery-media{box-shadow:none}@media (max-width:720px){.social-project-card{grid-template-columns:1fr}.social-project-phone-link{margin-block:var(--space-4) 0}.social-project-copy{padding:var(--space-5)}.scholar-publication{row-gap:var(--space-4);grid-template-rows:auto;grid-template-columns:1fr}.scholar-publication-title,.scholar-publication-author,.scholar-publication-copy,.scholar-publication-link,.scholar-publication .scholar-outreach-carousel{grid-area:auto/1}.scholar-publication .scholar-outreach-carousel{grid-row:3}.scholar-publication-copy{grid-row:4}.scholar-publication-link{grid-row:5}.scholar-screenshot-preview{grid-template-columns:1fr}.scholar-screenshot-preview>.progressive-image{grid-column:1;max-width:min(22rem,84vw)}.scholar-preview-control{z-index:2;background:#1e1e1eb8;position:absolute}.scholar-preview-control.is-previous{left:.4rem}.scholar-preview-control.is-next{right:.4rem}.scholar-preview-close{top:.4rem;right:.4rem}.scholar-screenshot-preview p{grid-column:1}}@media (max-width:520px){.social-project-copy p{font-size:.9rem}.project-detail-actions{width:100%}.project-detail-actions .project-cta{flex:100%}}.certificate-grid{gap:clamp(var(--space-5), 3vw, var(--space-8));grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.certificate-showcase{gap:clamp(var(--space-5), 3vw, var(--space-8));scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:82%;grid-auto-flow:column;padding:.25rem 0 .8rem;display:grid;overflow-x:auto}.certificate-showcase::-webkit-scrollbar{display:none}.certificate-showcase:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.certificate-showcase .certificate-card{scroll-snap-align:start}.certificate-showcase .certificate-card:first-child{grid-column:auto}.certificate-showcase-controls{justify-content:flex-end;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.certificate-showcase-controls>span{color:var(--muted);font-size:.78rem;font-weight:var(--weight-semibold);margin-right:.35rem}.certificate-card{--card-accent:var(--certificate-accent-one);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);min-width:0;animation:glass-materialize .5s var(--liquid-ease) both;grid-template-columns:minmax(10rem,35%) minmax(0,1fr);align-items:center;padding:.9rem;transition:none;display:grid;position:relative}.certificate-card:nth-child(2){animation-delay:70ms}.certificate-card:nth-child(3){animation-delay:.14s}.certificate-card:nth-child(4){animation-delay:.21s}.certificate-card:first-child{gap:var(--space-5);grid-column:auto;grid-template-columns:minmax(10rem,35%) minmax(0,1fr)}.certificate-thumbnail{aspect-ratio:4/3;border-radius:var(--radius-lg);width:100%;box-shadow:none;cursor:pointer;background:0 0;border:0;padding:0;display:block;overflow:hidden}.certificate-thumbnail .progressive-image{width:100%;height:100%}.certificate-thumbnail img{object-fit:contain;width:100%;height:100%;transition:transform .5s var(--liquid-ease);padding:.35rem}.certificate-thumbnail:hover img{transform:scale(1.025)}.certificate-copy{align-content:start;gap:.65rem;min-width:0;padding:.8rem .25rem .15rem;display:grid}.certificate-card:nth-of-type(2){--card-accent:var(--certificate-accent-two)}.certificate-card:nth-of-type(3){--card-accent:var(--certificate-accent-three)}.certificate-card:nth-of-type(4){--card-accent:var(--certificate-accent-four)}.certificate-card:nth-of-type(5){--card-accent:var(--certificate-accent-five)}.certificate-card:nth-of-type(6){--card-accent:var(--certificate-accent-six)}.certificate-provider{color:color-mix(in srgb, var(--card-accent) 52%, var(--text));grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;font-size:.78rem;display:grid}.provider-logo{width:2.35rem;height:2.35rem;box-shadow:none;background:0 0;border-radius:.72rem;place-items:center;padding:.35rem;display:grid}.provider-logo img{object-fit:contain;width:100%;height:100%}.certificate-provider-actions{align-items:center;gap:.55rem;display:flex}.certificate-provider-actions .certificate-action.text-link{white-space:nowrap;min-height:2rem;margin-top:0;padding:.38rem .58rem}.certificate-card h3{color:var(--text);font-size:1.04rem;line-height:1.3}.certificate-card p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.84rem;line-height:1.5;display:-webkit-box;overflow:hidden}.certificate-card .text-link{color:var(--card-accent);margin-top:auto}.certificate-action{background:var(--roadmap-main-surface);min-height:2.35rem;box-shadow:var(--shadow-soft);transition:background var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) var(--liquid-ease);border-radius:.7rem;padding:.5rem .8rem;font-size:.78rem;text-decoration:none}.certificate-action:hover{background:color-mix(in srgb, var(--card-accent) 5%, var(--roadmap-main-surface));box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}.certificate-action:active{box-shadow:var(--shadow-soft);transform:scale(.97)}:root[data-theme=dark] .certificate-action{background:var(--roadmap-main-surface);box-shadow:0 2px 5px #0000003d}:root[data-theme=dark] .certificate-card{background:var(--surface)}.certificate-preview-modal{width:min(72rem,100% - 1.5rem);padding:.75rem;overflow:hidden}.certificate-preview{display:grid;position:relative}.certificate-preview-close{z-index:2;width:2.35rem;height:2.35rem;color:var(--text);background:color-mix(in srgb, var(--surface-strong) 88%, transparent);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;border:0;border-radius:.7rem;place-items:center;display:grid;position:absolute;top:.45rem;right:.45rem}.certificate-preview .progressive-image{border-radius:var(--radius-md);background:var(--surface-strong);width:100%;max-height:calc(100dvh - 7rem)}.certificate-preview img{object-fit:contain;width:100%;max-height:calc(100dvh - 7rem)}.modal{border-radius:var(--radius-lg);width:min(900px,100% - 1.5rem);max-height:calc(100dvh - 2rem);color:var(--text);background:var(--sheen), var(--surface);box-shadow:var(--shadow-flyout);animation:glass-materialize .4s var(--liquid-ease) both;overscroll-behavior:contain;border:0;margin:auto;padding:1rem;overflow:hidden auto}.modal::backdrop{background:var(--modal-backdrop)}.modal-close{z-index:2;color:var(--text);background:var(--surface-strong);margin-left:auto;position:sticky;top:0}.certificate-inline-close{min-height:2rem;color:var(--card-accent);background:var(--roadmap-main-surface);box-shadow:var(--shadow-soft);white-space:nowrap;cursor:pointer;border:0;border-radius:.7rem;align-items:center;gap:.3rem;padding:.38rem .58rem;font-size:.74rem;font-weight:700;display:inline-flex}@media (max-width:950px){.certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.certificate-showcase{grid-auto-columns:88%}}@media (max-width:720px){.certificate-card,.certificate-card:first-child{grid-template-columns:1fr;gap:0}.certificate-thumbnail,.certificate-card:first-child .certificate-thumbnail{aspect-ratio:16/10}.certificate-provider{grid-template-columns:auto 1fr}.certificate-provider-actions{grid-column:1/-1;justify-content:flex-end}}@media (max-width:620px){.certificate-grid{grid-template-columns:1fr}.certificate-showcase{gap:var(--space-4);grid-auto-columns:96%}.certificate-showcase-controls{justify-content:flex-start}}.article-grid{gap:clamp(var(--space-5), 2.5vw, var(--space-7));grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));width:min(100%,62rem);display:grid}@media (min-width:721px) and (max-width:1100px){.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.article-card{min-width:0;padding:clamp(var(--space-5), 3vw, var(--space-6));border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-strong);animation:glass-materialize .5s var(--liquid-ease) both;align-content:start;gap:.7rem;display:grid}.article-card-meta{color:var(--muted);align-items:center;margin-bottom:-.15rem;font-size:.8rem;font-weight:600;display:flex}.article-card-meta time{color:var(--muted)}.article-card h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.15rem;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.2;display:-webkit-box;overflow:hidden}.article-card h2 a{color:var(--text);text-decoration:none}.article-card h2 a:hover{color:var(--accent)}.article-card p{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9rem;display:-webkit-box;overflow:hidden}.article-tags{flex-wrap:wrap;gap:.4rem;display:flex}.article-tags span{border-radius:var(--radius-pill);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface-strong));font-size:.72rem;font-weight:var(--weight-semibold);padding:.3rem .58rem}.article-card-link{width:-moz-fit-content;width:fit-content;margin-top:.25rem;padding-block:.2rem}.articles-page{gap:var(--space-5)}.articles-page .page-content-card{padding:var(--roadmap-padding);border-radius:var(--radius-xl);background:var(--roadmap-main-surface)}.articles-page .section-heading{gap:.3rem}.articles-page .section-heading p{max-width:54rem}.local-article-studio{gap:var(--space-4);width:min(100%,62rem);margin-bottom:var(--space-6);padding:var(--space-5);border:1px dashed color-mix(in srgb, var(--accent) 55%, var(--line));border-radius:var(--radius-lg);background:color-mix(in srgb, var(--accent) 5%, var(--surface));display:grid}.local-article-studio-intro,.local-article-editor-topbar,.local-article-drafts article,.local-article-drafts article>div:last-child{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.local-article-studio-intro span,.local-article-drafts article span{color:var(--accent);font-size:var(--font-eyebrow);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase}.local-article-studio-intro p{color:var(--muted);font-size:var(--font-small);margin:.25rem 0 0}.local-article-create,.local-article-save{border-radius:var(--radius-md);color:#fff;background:var(--accent);font:inherit;font-weight:var(--weight-semibold);cursor:pointer;border:0;justify-content:center;align-items:center;gap:.4rem;padding:.65rem .85rem;display:inline-flex}.local-article-editor{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-strong);box-shadow:var(--shadow-soft);display:grid;overflow:hidden}.local-article-editor-topbar{border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--font-small);font-weight:var(--weight-semibold);padding:.8rem 1rem}.local-article-editor-topbar>div{gap:.45rem;display:flex}.local-article-editor-topbar button,.local-article-drafts button,.local-article-toolbar button{border:1px solid var(--line);color:var(--text);background:var(--surface);font:inherit;cursor:pointer;border-radius:.4rem;padding:.42rem .6rem;font-size:.82rem}.local-article-editor-topbar .local-article-save{border-color:var(--accent);color:#fff}.local-article-editor-sheet{gap:var(--space-4);padding:clamp(var(--space-5), 4vw, var(--space-7));display:grid}.local-article-editor-sheet>label,.local-article-editor-meta label,.local-article-advanced label{color:var(--muted);font-size:var(--font-small);font-weight:var(--weight-semibold);gap:.4rem;display:grid}.local-article-editor-sheet :is(input,textarea,select){border:1px solid var(--line);width:100%;color:var(--text);background:var(--surface);font:inherit;border-radius:.45rem;padding:.7rem .8rem}.local-article-editor-sheet>label:first-child input{border:0;border-bottom:1px solid var(--line);font-size:2rem;font-weight:var(--weight-bold);letter-spacing:-.04em;border-radius:0;padding-inline:0}.local-article-editor-meta{gap:var(--space-4);grid-template-columns:10rem 1fr;display:grid}.local-article-body-wrap{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.local-article-toolbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--accent) 5%, var(--surface));gap:.35rem;padding:.45rem .6rem;display:flex}.local-article-body{min-height:25rem;padding:var(--space-6);color:var(--text);outline:0;font-size:1rem;line-height:1.8}.local-article-body :is(p,h2,ul){margin:0 0 1.25rem}.local-article-body h2{margin-top:2rem;font-size:1.5rem}.local-article-body p{max-width:44rem}.local-article-advanced{border-top:1px solid var(--line);padding-top:var(--space-4)}.local-article-advanced summary{color:var(--muted);font-size:var(--font-small);font-weight:var(--weight-semibold);cursor:pointer}.local-article-advanced>div{gap:var(--space-4);padding-top:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.local-article-drafts{gap:.6rem;display:grid}.local-article-drafts article{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);padding:.85rem 1rem}.local-article-drafts h2{margin:.18rem 0;font-size:1rem}.local-article-drafts p{color:var(--muted);margin:0;font-size:.85rem}.article-card-local{border-style:dashed}:root[data-theme=dark] .article-card{background:var(--surface)}.article-detail{width:min(100% - var(--content-gutter), 74rem);gap:var(--space-6);animation:article-detail-enter .32s var(--liquid-ease) both;display:grid}@keyframes article-detail-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.article-breadcrumbs{min-width:0;color:var(--muted);font-size:var(--font-small);align-items:center;gap:.45rem;display:flex}.article-breadcrumbs a{color:var(--accent);font-weight:var(--weight-semibold);text-decoration:none}.article-breadcrumbs a:hover{text-underline-offset:.18em;text-decoration:underline}.article-breadcrumbs span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.article-layout{justify-content:center;align-items:start;gap:clamp(var(--space-5), 3vw, var(--space-8));grid-template-columns:minmax(0,48rem) minmax(11rem,13rem);display:grid}.article-main{gap:var(--space-6);min-width:0;padding:0 var(--space-4);display:grid}.article-toc{top:calc(var(--space-8) + 3.5rem);max-height:calc(100vh - 7.5rem);padding:.25rem 0 .25rem var(--space-4);border-left:1px solid var(--line);box-shadow:none;scrollbar-width:thin;background:0 0;gap:.2rem;display:grid;position:sticky;overflow-y:auto}.article-toc-label{color:var(--text);font-size:var(--font-eyebrow);font-weight:var(--weight-bold);letter-spacing:.02em;margin-bottom:.35rem}.article-toc-link{color:var(--muted);font-size:var(--font-small);border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:.4rem;padding:.3rem .5rem;line-height:1.4;text-decoration:none;transition:color .25s,border-color .25s,background .25s;display:flex}.article-toc-link:hover{color:var(--text)}.article-toc-link.is-sub{padding-left:1.35rem}.article-toc-link[aria-current=location]{border-left-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);font-weight:var(--weight-semibold)}.article-markdown h2,.article-markdown h3{scroll-margin-top:6rem}@media (max-width:980px){.article-layout{grid-template-columns:1fr}.article-main{order:1}.article-toc{max-height:none;padding:var(--space-4);order:2;align-items:center;gap:.3rem;display:flex;position:static;overflow-x:auto}.article-toc-label{flex:none;margin:0 .35rem 0 0}.article-toc-link{white-space:nowrap;border-bottom:2px solid #0000;border-left:0;flex:none}.article-toc-link[aria-current=location]{border-left-color:#0000;border-bottom-color:var(--accent)}}.article-back-link{margin-bottom:var(--space-2)}.article-detail-header{gap:var(--space-4);padding:0 0 var(--space-6);border-bottom:1px solid var(--line);display:grid}.article-detail-header h1{letter-spacing:-.045em;max-width:44rem;font-size:clamp(2rem,5vw,3.5rem);line-height:1.08}.article-detail-header>p{max-width:44rem;font-size:1.02rem}.article-detail-meta{color:var(--muted);font-size:var(--font-small);flex-wrap:wrap;gap:.45rem 1rem;display:flex}.article-detail-meta>*{align-items:center;display:inline-flex}.article-detail-author{gap:.25rem}.article-detail-date{border-left:1px solid var(--line);padding-left:1rem}.article-markdown{gap:var(--space-5);box-shadow:none;letter-spacing:.002em;background:0 0;padding:0;font-size:1rem;line-height:1.8;display:grid}.article-markdown>*{min-width:0;margin:0}.article-markdown p{text-align:justify;-webkit-hyphens:none;hyphens:none}.article-markdown>p:has(+.article-code){margin-bottom:calc(var(--space-5) / -2);color:var(--muted);font-size:var(--font-small);font-weight:var(--weight-semibold);text-align:left}.article-markdown h2{letter-spacing:-.03em;margin-top:1.5rem;font-size:clamp(1.35rem,3vw,1.8rem);line-height:1.2}.article-markdown h3{margin-top:1rem;font-size:1.2rem}.article-markdown :is(ul,ol){color:var(--muted);gap:.45rem;padding-left:1.5rem;display:grid}.article-markdown a{color:var(--accent);font-weight:var(--weight-semibold);text-underline-offset:.18em}.article-table-wrap{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-strong);width:100%;overflow-x:auto}.article-table-wrap table{border-collapse:collapse;width:100%;color:var(--muted);font-size:.88rem;line-height:1.55}.article-table-wrap :is(th,td){border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.75rem .9rem}.article-table-wrap th{color:var(--text);background:color-mix(in srgb, var(--accent) 7%, var(--surface));font-weight:var(--weight-semibold)}.article-table-wrap tr:last-child td{border-bottom:0}.article-markdown code{border:1px solid var(--line);color:var(--text);background:color-mix(in srgb, var(--accent) 9%, var(--surface));border-radius:.35rem;padding:.14rem .35rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em}.article-code{border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--accent) 7%, var(--surface));box-shadow:var(--shadow-soft);overflow:hidden}.article-code-bar{border-bottom:1px solid var(--line);background:var(--surface-strong);justify-content:space-between;align-items:center;padding:.45rem .7rem;display:flex}.article-code-lang{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase}.article-code-actions{align-items:center;gap:.25rem;display:flex}.article-code-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:.35rem;align-items:center;gap:.35rem;padding:.3rem .45rem;transition:color .2s,background .2s;display:inline-flex}.article-code-btn:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.article-code-copy-label{border-radius:var(--radius-pill);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);font-size:.72rem;font-weight:var(--weight-semibold);padding:.12rem .5rem}.article-code-body pre{max-width:100%;color:var(--text);padding:1.1rem 1.25rem;overflow-x:auto}.article-code-body pre code{background:0 0;border:0;padding:0;font-size:.85rem;line-height:1.7}.article-markdown blockquote{border-left:3px solid var(--accent);color:var(--muted);padding-left:1rem}.article-faq,.article-references{gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--line);display:grid}.article-faq h2,.article-references-label{color:var(--text);font-size:1.15rem;font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:1.3}.article-faq details{border-bottom:1px solid var(--line)}.article-faq summary{color:var(--text);font-weight:var(--weight-semibold);cursor:pointer;padding:.7rem 0}.article-faq p{color:var(--muted);margin:0;padding:0 0 .8rem;font-size:.9rem;line-height:1.55}.article-references-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.article-references-link{color:var(--accent);font-size:.78rem;font-weight:var(--weight-semibold);text-underline-offset:.18em;align-items:flex-start;gap:.45rem;padding:.25rem .35rem;line-height:1.35;text-decoration:none;display:flex}.article-references-link span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.article-references-link:hover{text-decoration:underline}.article-references-link .fluent-icon{color:var(--accent)}@media (max-width:720px){.article-grid{grid-template-columns:1fr}.article-detail{width:min(100% - 2rem, var(--mobile-content-max))}.article-detail-header{padding-bottom:var(--space-5)}.article-detail-header h1{font-size:var(--mobile-page-title)}.article-markdown{font-size:var(--mobile-body)}.article-table-wrap:has(tr>:nth-child(3)) table{min-width:34rem}.article-table-wrap :is(th,td){padding:.65rem .75rem}}body:has(.article-detail){background:var(--surface-page)}.article-detail{gap:clamp(var(--space-4), 2.5vw, var(--space-6))}.article-layout{align-items:stretch}.article-main{padding:clamp(var(--space-5), 3vw, var(--space-8));background:0 0}.article-toc{padding:var(--space-5);border-left:1px solid var(--line);background:0 0;border-radius:0}.article-toc-link[aria-current=location]{background:color-mix(in srgb, var(--accent) 7%, transparent)}@media (max-width:980px){.article-main{padding:var(--space-5)}.article-toc{padding:var(--space-4);border-left:0;border-top:1px solid var(--line);border-radius:0}}:root{--code-keyword:#8250df;--code-name:#0550ae;--code-string:#116329;--code-number:#0550ae;--code-literal:#cf222e;--code-builtin:#0550ae;--code-title:#953800;--code-class:#953800;--code-attr:#0550ae;--code-comment:#6e7781}:root[data-theme=dark]{--code-keyword:#ff7b72;--code-name:#79c0ff;--code-string:#7ee787;--code-number:#79c0ff;--code-literal:#ff7b72;--code-builtin:#ffa657;--code-title:#d2a8ff;--code-class:#ffa657;--code-attr:#7ee787;--code-comment:#8b949e}.article-code-body .hljs-comment,.article-code-body .hljs-quote,.article-code-body .hljs-doctag{color:var(--code-comment);font-style:italic}.article-code-body .hljs-keyword,.article-code-body .hljs-literal,.article-code-body .hljs-selector-tag{color:var(--code-keyword)}.article-code-body .hljs-name{color:var(--code-name)}.article-code-body .hljs-string,.article-code-body .hljs-regexp{color:var(--code-string)}.article-code-body .hljs-number{color:var(--code-number)}.article-code-body .hljs-built_in,.article-code-body .hljs-meta{color:var(--code-builtin)}.article-code-body .hljs-title,.article-code-body .hljs-title.function_,.article-code-body .hljs-section{color:var(--code-title)}.article-code-body .hljs-title.class_,.article-code-body .hljs-type{color:var(--code-class)}.article-code-body .hljs-attr,.article-code-body .hljs-attribute{color:var(--code-attr)}.article-code-body .hljs-emphasis{font-style:italic}.article-code-body .hljs-strong{font-weight:700}.contact{gap:var(--space-4);padding:clamp(var(--space-6), 5vw, var(--space-16));border-radius:var(--radius-xl);background:var(--roadmap-main-surface);box-shadow:var(--shadow);animation:glass-materialize .55s var(--liquid-ease) both;grid-template-columns:1.1fr .9fr;display:grid}.contact-intro{gap:clamp(var(--space-8), 6vw, 5rem);grid-column:1/-1;grid-template-columns:minmax(0,1.05fr) minmax(18rem,.95fr);align-items:center;display:grid}.contact-copy{align-content:center;gap:.8rem;display:grid}.contact-copy h2{font-size:var(--font-heading)}.contact-copy p{max-width:520px}.contact-actions{animation:contact-actions-enter .52s var(--liquid-ease) both;grid-template-columns:1fr;gap:1rem;display:grid}.contact-link{--card-accent:var(--contact-accent-one);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--text);background:var(--contact-link-one);box-shadow:var(--shadow-soft);text-align:left;cursor:pointer;border:0;grid-template-columns:auto 1fr;align-items:center;gap:.75rem;padding:.9rem;text-decoration:none;transition:background .25s,box-shadow .28s,transform .28s cubic-bezier(.2,.8,.2,1);display:grid}.contact-actions .contact-link:hover{box-shadow:var(--shadow-hover);animation:none;transform:translateY(-2px)scale(1.008)}.contact-actions .contact-link:active{box-shadow:var(--shadow-soft);transition-duration:.12s;animation:none;transform:translateY(0)scale(.98)}.contact-link>.fluent-icon,.contact-link strong{color:var(--card-accent)}.contact-link span{gap:.15rem;min-width:0;display:grid}.contact-link :is(strong,small){overflow-wrap:anywhere}.contact-link small{color:var(--muted)}@keyframes contact-actions-enter{0%{opacity:0;transform:translate(10px)scale(.975)}to{opacity:1;transform:translate(0)scale(1)}}.modal.resume-modal{border:1px solid color-mix(in srgb, var(--glass-line) 70%, var(--line));background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(24px)saturate(135%);backdrop-filter:blur(24px)saturate(135%);border-radius:.9rem;width:min(38rem,100% - 1.5rem);padding:1.25rem;box-shadow:0 20px 55px #0000002e,0 2px 8px #00000014}.resume-modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a3d}.resume-modal .modal-close{border:1px solid var(--line);cursor:pointer;border-radius:.45rem;width:auto;height:2rem;margin:0;padding:.35rem .7rem;font-size:.72rem;font-weight:650;position:absolute;top:.75rem;right:.75rem}.form-modal{gap:.45rem;min-width:0;max-width:100%;padding:.1rem;display:grid}.form-modal>.eyebrow{color:var(--accent);letter-spacing:.1em;font-size:.68rem}.form-modal>h2{letter-spacing:-.035em;padding-right:2.5rem;font-size:1.45rem}.form-modal>p{max-width:32rem;font-size:.78rem;line-height:1.5}.contact-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;min-width:0;max-width:100%;margin-top:.5rem;display:grid}.contact-form label{min-width:0;color:var(--muted);gap:.35rem;font-size:.82rem;font-weight:700;display:grid}.contact-form input,.contact-form textarea{border-radius:var(--radius-sm);width:100%;min-width:0;max-width:100%;color:var(--text);background:var(--surface-strong);box-shadow:var(--shadow-soft);border:0;padding:.75rem;transition:box-shadow .3s,background .3s}.contact-form input:focus,.contact-form textarea:focus{background:var(--surface);box-shadow:0 0 0 1px var(--accent), var(--shadow-soft)}.contact-form textarea{resize:vertical}.resume-modal .contact-form{gap:.65rem .75rem;margin-top:.65rem}.resume-modal .contact-form label{gap:.3rem;font-size:.73rem;font-weight:650}:root[data-theme] .resume-modal .contact-form :is(input:not([type=checkbox]),textarea){border:1px solid var(--line);background:color-mix(in srgb, var(--surface-strong) 82%, var(--page));box-shadow:inset 0 -1px var(--line), 0 1px 2px #0000000a;border-radius:.45rem;padding:.62rem .7rem}:root[data-theme] .resume-modal .contact-form :is(input:not([type=checkbox]),textarea):focus-visible{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:var(--surface-strong);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 7%, transparent), 0 2px 4px #0000000a;outline:none}.resume-modal .contact-form input:not([type=checkbox]){min-height:2.45rem}.resume-modal .contact-form textarea{min-height:5rem}.resume-modal .consent{font-size:.68rem;font-weight:500;line-height:1.4}.resume-modal .consent input{border:1px solid var(--line);width:1rem;height:1rem;min-height:0;box-shadow:none;border-radius:.25rem;padding:0}.resume-modal .consent input:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 20%, transparent);outline-offset:2px}.resume-modal .form-status{text-align:right;min-height:1rem;font-size:.72rem}.resume-modal .form-actions{justify-content:flex-end;gap:.55rem;display:flex}.resume-modal .form-actions .button{border-radius:.5rem;min-width:8rem;min-height:2.4rem;font-size:.76rem}.resume-modal .form-cancel{border:1px solid var(--line);color:var(--muted);background:var(--subsurface);box-shadow:0 1px 2px #0000000f}.form-wide{grid-column:1/-1}.consent{grid-template-columns:auto 1fr;align-items:start;display:grid!important}.consent input{width:1rem;accent-color:var(--accent);margin-top:.2rem}.form-status{min-height:1.5rem;color:var(--muted)}.site-footer{padding-block:var(--space-8);color:var(--muted);text-align:center;opacity:1;visibility:visible;transition:opacity .42s ease .3s, transform .62s var(--liquid-ease) .22s, visibility 0s;justify-content:center;font-size:.86rem;display:flex;transform:translateY(0)}@media (max-width:950px){.hero-card{grid-template-columns:1fr;max-width:42.5rem;min-height:auto}.hero-stack{border-left:0;padding-left:0}}@media (max-width:720px){:root{--mobile-page-title:clamp(1.75rem, 7.4vw, 2.15rem);--mobile-card-title:1rem;--mobile-body:clamp(.92rem, 3.8vw, 1rem);--mobile-meta:.74rem}body{padding-top:var(--space-4);padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}body:has(.page-inicio){background:var(--surface-strong)}:is(body:has(.page-proyectos),body:has(.page-certificados),body:has(.page-articulos)){background:var(--roadmap-main-surface)}main{gap:var(--space-12)}.page-shell{width:min(100% - var(--content-gutter-mobile), var(--mobile-content-max))}.section-intro,.contact-intro{grid-template-columns:1fr}:is(.page-proyectos,.page-certificados,.page-articulos) .section-heading>span{font-size:.7rem}:is(.page-proyectos,.page-certificados,.page-articulos) .section-heading :is(h1,h2){font-size:var(--mobile-page-title);line-height:1.02}:is(.page-proyectos,.page-certificados,.page-articulos) .section-heading p{font-size:var(--mobile-body);line-height:1.58}.section-visual{display:none}.site-header{padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom));inset:auto 0 0}.site-nav{width:min(100%, var(--nav-max));grid-template-columns:repeat(5,minmax(0,1fr));display:grid;overflow:visible}.nav-link{flex-direction:column;justify-content:center;gap:.1rem;min-width:0;min-height:2.9rem;padding:.35rem .1rem}.nav-link span,.theme-label{max-width:100%;font-size:var(--font-nav-mobile);text-overflow:ellipsis;line-height:1;display:block;overflow:hidden}.site-nav .icon-button{flex-direction:column;justify-content:center;gap:.1rem;width:100%;height:auto;min-height:2.9rem;margin:0;display:flex}.page-skeleton{inset:0 0 calc(4.5rem + env(safe-area-inset-bottom))}.hero{min-height:calc(100dvh - 9.5rem);width:min(100% - var(--content-gutter-mobile), var(--mobile-content-max))}:is(.page-inicio .hero,.page-proyectos .roadmap-page,.page-certificados .roadmap-page,.page-articulos .roadmap-page){width:min(100% - 2.5rem, var(--mobile-content-max))}.hero-card{padding:var(--space-3)}.page-inicio .hero-card .hero-heading h1{font-size:clamp(1.75rem,7vw,2rem)}.page-inicio .hero-role{font-size:var(--mobile-meta)}.page-inicio .hero-card .hero-career{font-size:.78rem}.page-inicio .hero-card .hero-study{font-size:.72rem}.page-inicio .hero-objective{font-size:.84rem;line-height:1.58}.hero-card{gap:var(--space-5)}.hero-heading{gap:var(--space-4)}.hero-actions{justify-content:center}.timeline-stage{grid-template-columns:repeat(3,minmax(0,1fr))}.contact,.contact-actions{grid-template-columns:1fr}.page-proyectos .roadmap-page,.page-certificados .roadmap-page,.page-articulos .roadmap-page{padding:0}.page-proyectos .page-content-card,.page-certificados .page-content-card,.page-articulos .page-content-card{padding:var(--space-4)}.page-proyectos .project-copy h3,.page-certificados .certificate-card h3{font-size:var(--mobile-card-title)}.page-proyectos .project-copy p,.page-certificados .certificate-card p{font-size:.9rem;line-height:1.55}.page-proyectos .project-meta,.page-certificados .certificate-provider{font-size:var(--mobile-meta)}.home-github .skill-group h3{font-size:.8rem}.site-footer{padding-block:1rem .25rem}}@media (max-width:520px){.hero-card{gap:var(--space-3)}.profile-card{gap:var(--space-3);padding:var(--space-3)}.hero-actions .button{flex:auto;min-height:2.4rem;padding:.5rem .7rem;font-size:.76rem}.timeline-stage{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-stage.is-serpentine:before{display:none}.timeline-stage.is-serpentine .timeline-item:nth-child(3){grid-area:2/2}.timeline-stage.is-serpentine .timeline-item:nth-child(4){grid-area:2/1}.timeline-stage.is-serpentine .timeline-item:nth-child(5){grid-area:3/1}.timeline-stage.is-serpentine .timeline-item:nth-child(6){grid-area:3/2}.timeline-stage.is-serpentine.is-partial .timeline-item:first-child{grid-area:1/1/2/-1}.timeline-stage.is-serpentine.is-partial .timeline-item:nth-child(2){grid-area:2/1}.timeline-stage.is-serpentine.is-partial .timeline-item:nth-child(3){grid-area:3/1/4/-1}.timeline-stage.is-serpentine.is-partial .timeline-item:nth-child(4){grid-area:2/2}.home-timeline>header{gap:.45rem}.timeline-item{min-height:6.5rem}.contact{border-radius:var(--radius-lg);padding:1.2rem}.contact-form{grid-template-columns:1fr}.form-wide{grid-column:auto}.resume-modal .form-actions .button{flex:1;min-width:0;padding-inline:.55rem}}
