@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/_astro/figtree-latin-ext-wght-normal.DCwSJGxG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/_astro/figtree-latin-wght-normal.D_ZTVpCC.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--page-bg: #0b0d12;--ink: #0a0912;--surface: #14121f;--hair: rgba(255, 255, 255, .08);--hair-strong: rgba(255, 255, 255, .15);--fg: #f3f1f8;--fg-dim: #b7b4c8;--fg-muted: #847f99;--amber: #fbbf24;--rose: #fb7185;--magenta: #e11d74;--brand: linear-gradient(105deg, #fbbf24 0%, #fb7185 46%, #e11d74 100%);--nav-h: 5.25rem}html[data-theme=light]{--page-bg: #f7f8fc}html{background-color:var(--page-bg);scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}body{display:flex;flex-direction:column;min-height:100vh;background-color:var(--page-bg);color:var(--fg);font-family:Figtree Variable,system-ui,sans-serif;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}main[data-section-screens],main[data-section-screens]>section{background-color:var(--page-bg)}h1,h2,h3{font-family:Bricolage Grotesque Variable,system-ui,sans-serif;letter-spacing:-.025em}::-moz-selection{background:#fb718547;color:var(--fg)}::selection{background:#fb718547;color:var(--fg)}:focus-visible{outline:2px solid var(--rose);outline-offset:3px}.text-gradient{background-image:var(--brand);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.interactive-image{--image-hover-scale: 1.02;position:relative;overflow:hidden}.interactive-image>img{filter:none;opacity:1;transform:scale(1);transition:filter .36s cubic-bezier(.22,1,.36,1),transform .36s cubic-bezier(.22,1,.36,1);will-change:filter,transform}@media (hover: hover) and (pointer: fine){.interactive-image:is(:hover,:focus-within)>img,[data-image-hover-scope]:is(:hover,:focus-within) .interactive-image>img{filter:grayscale(100%) saturate(0%) contrast(1.05);opacity:1;transform:scale(var(--image-hover-scale))}}@media (hover: none),(pointer: coarse){.interactive-image>img{filter:none!important;transform:none!important}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.interactive-image>img{transition:filter .14s ease}.interactive-image:is(:hover,:focus-within)>img,[data-image-hover-scope]:is(:hover,:focus-within) .interactive-image>img{transform:none}}:root{--sr-lift: 24px;--sr-side: 28px;--sr-duration: .68s;--sr-ease: cubic-bezier(.22, 1, .36, 1)}[data-sr],[data-sr-item]{--sr-x: 0px;--sr-y: var(--sr-lift);--sr-scale: 1;--sr-delay: 0ms}[data-sr=rise],[data-sr-item=rise]{--sr-y: calc(var(--sr-lift) * .84);--sr-scale: .985}[data-sr=side-left],[data-sr-item=side-left]{--sr-x: calc(var(--sr-side) * -1);--sr-y: calc(var(--sr-lift) * .4)}[data-sr=side-right],[data-sr-item=side-right]{--sr-x: var(--sr-side);--sr-y: calc(var(--sr-lift) * .4)}[data-sr][data-sr-state=pending],[data-sr-item][data-sr-state=pending]{opacity:0}[data-sr][data-sr-state=in],[data-sr-item][data-sr-state=in]{animation:sr-enter var(--sr-duration) var(--sr-ease) var(--sr-delay) backwards;will-change:transform,opacity}@keyframes sr-enter{0%{opacity:0;transform:translate3d(var(--sr-x),var(--sr-y),0) scale(var(--sr-scale))}}[data-parallax][data-parallax-active]{will-change:transform}@media (max-width: 64rem){:root{--sr-side: 14px}}@media (max-width: 53.75rem){:root{--sr-side: 0px}}@media (max-width: 40rem){:root{--sr-lift: 18px;--sr-duration: .56s}}@media (prefers-reduced-motion: reduce){[data-sr],[data-sr-item]{opacity:1!important;transform:none!important;animation:none!important;will-change:auto!important}[data-parallax]{transform:none!important;opacity:1!important;will-change:auto!important}}:root{--nav-h: 4.75rem;--shell-bg: var(--page-bg);--shell-surface: #151820;--shell-fg: #f5f5f7;--shell-dim: #b8bbc5;--shell-muted: #9499a6;--shell-blue: #739cff;--shell-cyan: #91cced;--shell-line: #2b303c;--shell-soft: #1d2330}html[data-theme=light]{--shell-surface: #ffffff;--shell-fg: #171c29;--shell-dim: #475166;--shell-muted: #606b7d;--shell-blue: #345bc7;--shell-cyan: #256f8d;--shell-line: #d5dae5;--shell-soft: #e9edf5}#main-content{min-width:0;scroll-margin-top:var(--nav-h)}.skip-link{position:fixed;z-index:1000;top:.75rem;left:.75rem;display:inline-flex;align-items:center;min-height:2.75rem;border-radius:.3rem;padding:.6rem 1rem;background:var(--shell-blue);color:var(--shell-bg);font-size:.85rem;font-weight:600;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0);outline:2px solid var(--shell-fg);outline-offset:3px}.site-header{position:fixed;z-index:80;inset:0 0 auto;border-bottom:1px solid color-mix(in srgb,var(--shell-line) 55%,transparent);background:var(--shell-bg);color:var(--shell-fg);transition:background-color .22s ease,border-color .22s ease}.site-header[data-scrolled=true]{background:color-mix(in srgb,var(--shell-bg) 94%,transparent);border-color:var(--shell-line);backdrop-filter:blur(16px)}.site-header .header-shell{position:relative;display:flex;align-items:center;gap:1rem;width:min(100% - 3rem,75rem);min-height:4.75rem;margin-inline:auto}.site-header .brand{display:inline-flex;align-items:center;flex:none;gap:.65rem;min-height:2.75rem;margin-right:auto;color:var(--shell-fg)}.site-header .brand-monogram{position:relative;display:grid;place-items:center;width:2rem;height:2rem;font-family:Bricolage Grotesque Variable,system-ui,sans-serif;font-size:.95rem;font-weight:800;letter-spacing:-.07em;color:var(--shell-blue)}.site-header .brand-monogram:before,.site-header .brand-monogram:after{position:absolute;font-size:.8rem;font-weight:400;color:var(--shell-muted)}.site-header .brand-monogram:before{content:"[";left:-.2rem}.site-header .brand-monogram:after{content:"]";right:-.2rem}.site-header .brand-identity{display:block}.site-header .brand-name{font-family:Bricolage Grotesque Variable,system-ui,sans-serif;font-size:1.02rem;font-weight:700;letter-spacing:-.035em;white-space:nowrap}.site-header .brand-period{color:var(--shell-blue)}.site-header .brand-role{display:none}.site-header .navigation-menu{min-width:0}.site-header .navigation-menu>summary{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-width:2.75rem;min-height:2.75rem;border:1px solid var(--shell-line);border-radius:.3rem;padding:.5rem .7rem;color:var(--shell-fg);font-size:.78rem;list-style:none;cursor:pointer}.site-header .navigation-menu>summary::-webkit-details-marker{display:none}.site-header[data-nav-ready] .navigation-menu>summary{display:none}.site-header .menu-glyph{position:relative;flex:none;width:1rem;height:1rem}.site-header .menu-glyph:before,.site-header .menu-glyph:after{content:"";position:absolute;inset:.3rem 0 auto;height:1px;background:currentColor;transition:transform .18s ease}.site-header .menu-glyph:after{top:.65rem}.site-header .navigation-menu[open] .menu-glyph:before{transform:translateY(.175rem) rotate(45deg)}.site-header .navigation-menu[open] .menu-glyph:after{transform:translateY(-.175rem) rotate(-45deg)}.site-header .header-nav{display:flex;align-items:center;gap:.05rem}.site-header .header-nav-link{position:relative;display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem;padding-inline:.55rem;color:var(--shell-dim);font-size:.78rem;font-weight:500;white-space:nowrap;transition:color .18s ease}.site-header .header-nav-link:after{content:"";position:absolute;inset:auto .55rem .35rem;height:1px;background:var(--shell-blue);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.site-header .header-nav-link:hover{color:var(--shell-fg)}.site-header .header-nav-link[aria-current]{color:var(--shell-blue)}.site-header .header-nav-link:is(:hover,[aria-current]):after{transform:scaleX(1)}.site-header .menu-link-number,.site-header .menu-link-arrow{display:none}.site-header .header-controls{display:flex;align-items:center;flex:none;gap:.25rem;border-left:1px solid var(--shell-line);padding-left:.65rem}.site-header .theme-button,.site-header .language-link{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.75rem;min-width:2.75rem;border-radius:.25rem;background:transparent;color:var(--shell-dim);font-size:.75rem;font-weight:600;transition:color .18s ease,background-color .18s ease}.site-header .theme-button{padding-inline:.4rem}.site-header .theme-button svg{display:block;width:1rem;height:1rem}.site-header .theme-button .theme-moon,html[data-theme=light] .site-header .theme-button .theme-sun{display:none}html[data-theme=light] .site-header .theme-button .theme-moon{display:block}.site-header .theme-label{font-size:.72rem;font-weight:500}.site-header .language-selector{display:inline-flex;align-items:center;gap:.15rem;margin-left:.2rem;font-size:.7rem;font-weight:650}.site-header .language-current{color:var(--shell-fg);text-decoration:underline;text-decoration-color:var(--shell-blue);text-underline-offset:.3rem}.site-header .language-divider{color:var(--shell-muted)}.site-header .language-link{min-width:2.75rem;font-size:.7rem;color:var(--shell-muted)}.site-header :is(.theme-button,.language-link):hover{color:var(--shell-fg);background:var(--shell-soft)}.site-header :is(a,button,summary):focus-visible{outline:2px solid var(--shell-blue);outline-offset:3px}.site-header [hidden]{display:none!important}.site-header[data-nav-ready] .theme-button[hidden]{display:inline-flex!important;visibility:hidden;pointer-events:none}.header-top-sentinel{position:absolute;top:0;left:0;width:1px;height:24px;pointer-events:none}.site-header:not([data-nav-ready]) .menu-panel{position:absolute;inset:100% 0 auto;padding:1rem;border:1px solid var(--shell-line);background:var(--shell-surface)}.site-header:not([data-nav-ready]) .header-nav{flex-wrap:wrap}@media (max-width: 1100px){:root{--nav-h: 4.5rem}.site-header .header-shell{gap:.8rem;min-height:4.5rem}.site-header .brand{order:1}.site-header .header-controls{order:2}.site-header .navigation-menu{order:3}.site-header[data-nav-ready] .navigation-menu>summary{display:inline-flex}.site-header .menu-panel{position:absolute;inset:100% 0 auto;max-height:calc(100dvh - 5.5rem);overflow-y:auto;overscroll-behavior:contain;padding:1.1rem 1.5rem;border:1px solid var(--shell-line);border-top:0;background:var(--shell-surface);box-shadow:0 18px 40px -30px #0009}.site-header .header-nav{display:grid;gap:0}.site-header .header-nav-link{display:flex;gap:1rem;min-height:3.1rem;padding:.65rem .2rem;border-bottom:1px solid var(--shell-line);color:var(--shell-fg);font-family:Bricolage Grotesque Variable,system-ui,sans-serif;font-size:1.15rem;font-weight:500;letter-spacing:-.025em;white-space:normal}.site-header .header-nav-link:after{inset:auto .2rem -1px}.site-header .menu-link-number{display:block;width:1.1rem;color:var(--shell-blue);font-family:Figtree Variable,system-ui,sans-serif;font-size:.65rem}.site-header .menu-link-arrow{display:block;margin-left:auto;color:var(--shell-blue);font-family:Figtree Variable,system-ui,sans-serif;font-size:1rem}}@media (max-width: 599px){:root{--nav-h: 4.25rem}.site-header .header-shell{width:calc(100% - 2rem);gap:.45rem;min-height:4.25rem}.site-header .brand-monogram{display:none}.site-header .brand-name{font-size:.95rem}.site-header .header-controls{gap:0;padding-left:0;border:0}.site-header .theme-button{padding:0}.site-header .theme-label{display:none}.site-header .language-selector{margin-left:0;gap:.1rem}.site-header .navigation-menu>summary{padding:.5rem;border-color:transparent}.site-header .navigation-menu>summary>span:last-child{display:none}.site-header .menu-panel{inset-inline:-1rem;padding-inline:1.5rem}}@media (max-width: 359px){.site-header .header-shell{width:calc(100% - 1.25rem);gap:.15rem}.site-header .brand-name{font-size:.84rem}}@media (prefers-reduced-motion: reduce){.site-header,.site-header *,.site-header *:before,.site-header *:after,.skip-link{animation:none!important;transition:none!important}}#main-content #contacto.home-section{padding-block:0}#contacto>.section-inner{width:100%;max-width:none;padding-inline:0}.final-contact,.site-footer{background:var(--shell-bg);color:var(--shell-fg)}.connection-inner{width:min(calc(100% - 3rem),75rem);margin-inline:auto}.final-contact{overflow:clip;padding-bottom:clamp(3rem,6vw,5rem)}.final-contact .scroll-heading{padding-block:clamp(4rem,8vw,7rem) 3rem}.final-contact .scroll-heading-inner.has-intro{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.final-contact .scroll-heading-title{font-size:clamp(3rem,6.5vw,6rem);opacity:clamp(0,calc(var(--heading-progress,.5) * 4),1);transform:translate3d(clamp(-10px,calc(var(--heading-shift,0px) * .1),10px),0,0)}.connection-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(3rem,7vw,7rem)}.connection-options{min-width:0}.connection-email-block{border:1px solid var(--shell-line);border-radius:5px;padding:clamp(1.4rem,2.8vw,2.25rem) clamp(1.2rem,2.7vw,2rem) .5rem;background:linear-gradient(145deg,color-mix(in srgb,var(--shell-surface) 40%,var(--shell-bg)),var(--shell-bg))}.connection-option-label{display:flex;gap:.75rem;color:var(--shell-muted);font-size:.66rem;letter-spacing:.1em;line-height:1.8;text-transform:uppercase}.connection-option-label>span{color:var(--shell-blue)}.connection-email-block h3{max-width:18ch;margin-top:1rem;font-family:Bricolage Grotesque Variable,sans-serif;font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:600;letter-spacing:-.04em;line-height:1.18;text-wrap:balance}.connection-email-intro{max-width:42ch;margin-top:.85rem;color:var(--shell-dim);font-size:.88rem;line-height:1.9}.connection-primary{display:inline-flex;align-items:center;gap:.75rem;min-height:48px;margin-top:1.3rem;border:1px solid var(--shell-blue);border-radius:4px;padding:.75rem 1rem;background:var(--shell-soft);color:var(--shell-fg);font-size:.9rem;font-weight:550;transition:background .18s ease}.connection-primary>svg{width:1.1rem;height:1.1rem;color:var(--shell-blue)}.connection-action-arrow{margin-left:2rem;color:var(--shell-blue);font-size:1.2rem;transition:transform .18s ease}.connection-primary:hover .connection-action-arrow{transform:translate(2px,-2px)}.connection-primary:hover{background:color-mix(in srgb,var(--shell-blue) 18%,var(--shell-bg))}.connection-email-row{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1rem;margin-top:.9rem}.connection-email{display:inline-flex;align-items:center;min-height:44px;max-width:100%;color:var(--shell-dim);font-size:.88rem;line-height:1.8;overflow-wrap:anywhere}.connection-email>span{-webkit-user-select:text;-moz-user-select:text;user-select:text}.connection-copy-button{display:inline-flex;align-items:center;min-height:44px;gap:.55rem;color:var(--shell-blue);font-size:.72rem;line-height:1.6;cursor:pointer}.connection-copy-button:disabled{opacity:.6;cursor:wait}.connection-copy-status{min-height:2.5rem;max-width:54ch;padding-top:.35rem;padding-bottom:.5rem;color:var(--shell-muted);font-size:.72rem;line-height:1.8}.connection-channels{display:grid;margin-top:1rem}.connection-channel{position:relative;display:grid;grid-template-columns:1rem auto minmax(0,1fr) auto;align-items:center;gap:1rem;min-height:5.3rem;padding-block:.8rem;border-bottom:1px solid var(--shell-line)}.connection-channel:after{content:"";position:absolute;height:1px;inset:auto 0 -1px;background:var(--shell-blue);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.connection-channel:is(:hover,:focus-visible):after{transform:scaleX(1)}.connection-channel-number{color:var(--shell-muted);font-size:.6rem}.connection-channel>svg{width:1.2rem;height:1.2rem;color:var(--shell-blue)}.connection-channel>span:nth-last-child(2){display:grid;gap:.25rem}.connection-channel strong{color:var(--shell-fg);font-size:.94rem;font-weight:550}.connection-channel>span:nth-last-child(2)>span{color:var(--shell-muted);font-size:.77rem;line-height:1.8}.connection-channel-arrow{color:var(--shell-blue);font-size:1.2rem;transition:transform .18s ease}.connection-channel:hover .connection-channel-arrow{transform:translate(2px,-2px)}.connection-portrait{width:100%;margin:0;justify-self:end}.closing-portrait{display:block;width:100%;height:auto;overflow:visible}.portrait-outer{fill:none;stroke:var(--shell-line);stroke-width:1}.portrait-inner{fill:none;stroke:var(--shell-blue);stroke-width:.7;opacity:.6}.portrait-lettering{fill:var(--shell-blue);font-family:Figtree Variable,sans-serif;font-size:11px;font-weight:600;letter-spacing:.06em}.portrait-code{fill:none;stroke:var(--shell-blue);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.25}.portrait-orbit-dot{fill:var(--shell-cyan)}.portrait-crosshair{fill:none;stroke:var(--shell-line);stroke-width:1}.closing-portrait [data-limb=arm-front]{transform:translate(17px,-64px) rotate(-142deg)}.closing-portrait [data-avatar-eyes]{transform:translate(var(--portrait-eye-x,0px),var(--portrait-eye-y,0px));transition:transform .12s ease}.final-contact[data-active-channel=linkedin] .portrait-inner,.final-contact[data-active-channel=github] .portrait-inner{stroke:var(--shell-cyan);stroke-width:1.5;opacity:1}.final-contact[data-email-copied] .portrait-orbit-dot{fill:var(--shell-blue)}.connection-portrait figcaption{border-top:1px solid var(--shell-line);padding-top:.9rem;margin-top:1rem}.connection-portrait figcaption>span{color:var(--shell-blue);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.connection-portrait figcaption>p{margin-top:.4rem;color:var(--shell-dim);font-size:.8rem;line-height:1.8}@media (hover:hover) and (pointer:fine){.connection-portrait:hover [data-limb=arm-front]{animation:closing-wave .8s ease-in-out}}@keyframes closing-wave{0%,to{transform:translate(17px,-64px) rotate(-142deg)}25%,65%{transform:translate(17px,-64px) rotate(-125deg)}45%,85%{transform:translate(17px,-64px) rotate(-148deg)}}.site-footer{padding-block:clamp(2rem,4vw,3rem) 1.25rem}.footer-composition{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center}.footer-name{display:inline-flex;align-items:center;min-height:2.75rem;font-family:Bricolage Grotesque Variable,sans-serif;font-size:clamp(1.65rem,2.5vw,2.25rem);font-weight:650;letter-spacing:-.045em;line-height:1.2}.footer-name>span{color:var(--shell-blue)}.footer-role{margin-top:.4rem;color:var(--shell-dim);font-size:.88rem;line-height:1.8}.footer-location{margin-top:.25rem;color:var(--shell-muted);font-size:.75rem;line-height:1.8}.footer-social{display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.footer-social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--shell-muted);transition:color .18s ease,background-color .18s ease,box-shadow .18s ease}.footer-social svg{width:22px;height:22px}.footer-social a:focus-visible{color:var(--shell-blue);background-color:color-mix(in srgb,var(--shell-blue) 8%,transparent);box-shadow:0 0 1.1rem color-mix(in srgb,var(--shell-blue) 15%,transparent)}@media (hover:hover) and (pointer:fine){.footer-social a:hover{color:var(--shell-blue);background-color:color-mix(in srgb,var(--shell-blue) 8%,transparent);box-shadow:0 0 1.1rem color-mix(in srgb,var(--shell-blue) 15%,transparent)}}.footer-base{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin-top:1.75rem;border-top:1px solid var(--shell-line);padding-top:.75rem;color:var(--shell-muted);font-size:.7rem;line-height:1.8}.footer-top{display:inline-flex;align-items:center;justify-content:space-between;min-height:44px;gap:1.5rem;color:var(--shell-dim)}.footer-top>span{color:var(--shell-blue);font-size:1.2rem;transition:transform .18s}.footer-top:hover>span{transform:translateY(-2px)}.footer-credits{margin-top:.4rem;color:var(--shell-muted);font-size:.7rem;line-height:1.9}.footer-credits>summary{display:inline-flex;align-items:center;min-height:44px;gap:.6rem;cursor:pointer;list-style:none}.footer-credits>summary::-webkit-details-marker{display:none}.footer-credits>summary>span{color:var(--shell-blue);font-size:1rem}.footer-credits[open]>summary>span{transform:rotate(45deg)}.footer-credits p{margin-top:.5rem;max-width:85ch}.footer-credits ul{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:.5rem;padding:0;list-style:none}.footer-credits a{color:var(--shell-blue);text-decoration:underline;text-underline-offset:3px}.final-contact :is(a,button):focus-visible,.site-footer :is(a,summary):focus-visible{outline:2px solid var(--shell-blue);outline-offset:5px}.final-contact [hidden]{display:none!important}@media (max-width:767px){.connection-inner{width:min(calc(100% - 2.5rem),35rem)}.final-contact .scroll-heading-inner.has-intro{grid-template-columns:minmax(0,1fr)}.final-contact .scroll-heading-title{font-size:clamp(2.8rem,9.5vw,4.5rem)}.final-contact .scroll-heading{padding-bottom:2rem}.connection-layout{grid-template-columns:minmax(0,1fr);gap:2rem}.connection-portrait{max-width:19rem;justify-self:center}.connection-email-block{padding-inline:1.1rem}.connection-email-block h3{font-size:1.65rem}.connection-email-intro{font-size:.86rem}.connection-email{font-size:.85rem}.connection-channel{gap:.75rem}.footer-composition{grid-template-columns:minmax(0,1fr);gap:1.5rem}.footer-social{justify-content:flex-start}.footer-role{font-size:.82rem}.footer-base{gap:.3rem 1rem}.footer-base>span{order:3;flex-basis:100%}}@media (any-pointer:coarse){.footer-credits a{display:inline-flex;align-items:center;min-height:2.75rem}}@media (prefers-reduced-motion:reduce){.final-contact *,.site-footer *{transition:none!important;animation:none!important}.final-contact .scroll-heading-title{transform:none;opacity:1}.closing-portrait [data-avatar-eyes]{transform:none}.connection-action-arrow,.connection-channel-arrow,.footer-top>span{transform:none!important}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}[data-tech-scene]{--tech-blue: #739cff;--tech-cyan: #91dfdf;--tech-highlight: #c5dcff;--tech-metal-top: #526e98;--tech-metal-mid: #263c5b;--tech-metal-bottom: #111d32;--tech-screen-top: #162d4c;--tech-screen-bottom: #091526;--tech-platform-top: #365479;--tech-platform-bottom: #15253e;--tech-shadow: #020916;--tech-line: #7298c7;--tech-ink: #a9c7ee}html[data-theme=light] [data-tech-scene]{--tech-blue: #4b7cdc;--tech-cyan: #7ad1d4;--tech-highlight: #e2efff;--tech-metal-top: #799bc3;--tech-metal-mid: #3e5e86;--tech-metal-bottom: #203653;--tech-platform-top: #a9c3e3;--tech-platform-bottom: #587aa5;--tech-shadow: #31567e;--tech-line: #668ab9}[data-atomizer][data-motion=running],.developer-desk[data-moving=true],.work-section[data-motion=running]{--tech-play: running}[data-tech-scene] .tech-signal{stroke-dasharray:5 18;animation:tech-signal-flow 2.8s linear infinite;animation-play-state:var(--tech-play, paused)}[data-tech-scene] .tech-code-line{transform-box:fill-box;transform-origin:left center;animation:tech-code-write 4.2s ease-in-out infinite;animation-delay:calc(var(--code-i, 0) * -.38s);animation-play-state:var(--tech-play, paused)}[data-tech-scene] .tech-cursor{animation:tech-cursor-blink 1.1s steps(2,end) infinite;animation-play-state:var(--tech-play, paused)}[data-tech-scene] .tech-pulse{transform-box:fill-box;transform-origin:center;animation:tech-node-pulse 2.8s ease-in-out infinite;animation-delay:var(--phase, 0s);animation-play-state:var(--tech-play, paused)}[data-tech-scene] .tech-floating{transform-box:fill-box;transform-origin:center;animation:tech-device-float 5s ease-in-out infinite;animation-delay:var(--phase, 0s);animation-play-state:var(--tech-play, paused)}[data-tech-scene] .tech-halo{animation:tech-light-breathe 4.5s ease-in-out infinite;animation-play-state:var(--tech-play, paused)}@keyframes tech-signal-flow{to{stroke-dashoffset:-92}}@keyframes tech-code-write{0%,to{transform:scaleX(.68);opacity:.58}35%,72%{transform:scaleX(1);opacity:1}}@keyframes tech-cursor-blink{0%,49%{opacity:1}50%,to{opacity:.12}}@keyframes tech-node-pulse{0%,to{opacity:.6;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes tech-device-float{0%,to{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-5px) rotate(.6deg)}}@keyframes tech-light-breathe{0%,to{opacity:.6}50%{opacity:1}}@media (prefers-reduced-motion: reduce){[data-tech-scene] *,[data-tech-scene] *:before,[data-tech-scene] *:after{animation:none!important;transition:none!important}}.professional-resume{--resume-bg: #10131a;--resume-text: var(--shell-fg);--resume-dim: var(--shell-dim);--resume-blue: var(--shell-blue);--resume-line: var(--shell-line);--resume-hover: #1b253b;--resume-scrollbar: #435577;width:min(58rem,calc(100% - 2rem));max-width:none;max-height:calc(100svh - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:0;overflow:hidden;border:1px solid var(--resume-line);border-radius:.6rem;background:var(--resume-bg);color:var(--resume-text);color-scheme:inherit;box-shadow:0 2rem 7rem #0008;font-family:Figtree Variable,system-ui,sans-serif}@media screen{html[data-theme=light] .professional-resume{--resume-bg: var(--shell-surface);--resume-hover: var(--shell-soft);--resume-scrollbar: var(--shell-muted)}}.professional-resume[open]{display:flex;flex-direction:column}.professional-resume::backdrop{background:#06080de0;backdrop-filter:blur(7px)}.resume-toolbar{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.5rem;border-bottom:1px solid var(--resume-line)}.resume-toolbar h2{font-family:inherit;font-size:.625rem;font-weight:600;letter-spacing:.1em;line-height:1.7;text-transform:uppercase;color:var(--resume-blue)}.resume-toolbar-name{color:var(--resume-dim)}.resume-toolbar-name>span{padding-inline:.4rem;color:var(--resume-blue)}.resume-tools{display:flex;flex-shrink:0;align-items:center;gap:.65rem}.resume-tools button{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.6rem;border:1px solid var(--resume-line);border-radius:.3rem;color:var(--resume-text);font:inherit;font-size:.75rem;cursor:pointer}.resume-print{padding-inline:.85rem}.resume-close{width:2.75rem}.resume-tools button:hover{background:var(--resume-hover);border-color:var(--resume-blue)}.professional-resume :is(a,button,[tabindex]):focus-visible{outline:2px solid var(--resume-blue);outline-offset:3px}.resume-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:var(--resume-scrollbar) var(--resume-bg)}.resume-scroll:focus-visible{outline-offset:-3px}.resume-document{padding:clamp(1.5rem,4vw,3rem);font-size:.875rem;line-height:1.65}.resume-location{margin-bottom:.7rem;color:var(--resume-blue);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.resume-identity h3{font-size:clamp(1.8rem,4.1vw,2.65rem);font-weight:650;letter-spacing:-.045em;line-height:1.1;text-wrap:balance}.resume-identity h3>span{color:var(--resume-blue)}.resume-role{margin-top:.85rem;color:var(--resume-dim);font-size:.9rem}.resume-contact{display:flex;flex-wrap:wrap;-moz-column-gap:1.3rem;column-gap:1.3rem;row-gap:.25rem;margin-block:1rem 1.8rem;font-size:.78rem}.resume-contact a,.resume-doi{color:var(--resume-blue);text-decoration:underline;text-underline-offset:.2em}.resume-contact a{display:inline-block;padding-block:.25rem;overflow-wrap:anywhere}.resume-contact-url{display:none}.resume-section{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:1.5rem;border-top:1px solid var(--resume-line);padding-block:1.3rem}.resume-section:last-child{padding-bottom:0}.resume-section h4{padding-top:.15rem;color:var(--resume-blue);font-size:.675rem;font-weight:600;letter-spacing:.1em;line-height:1.6;text-transform:uppercase}.resume-section h5{margin-bottom:.2rem;color:var(--resume-text);font-weight:650}.resume-section p{color:var(--resume-dim)}.resume-entries{display:grid;gap:.95rem}.resume-doi{display:inline-block;margin-top:.45rem;font-size:.8rem;overflow-wrap:anywhere}.resume-technologies{text-wrap:pretty}@media screen and (max-width: 600px){.professional-resume{width:calc(100% - 1rem);max-height:calc(100svh - 1rem);max-height:calc(100dvh - 1rem)}.resume-toolbar{padding:.75rem;gap:.5rem;align-items:flex-start}.resume-toolbar h2{font-size:.5625rem;letter-spacing:.06em}.resume-toolbar-name{display:block}.resume-toolbar-name>span{display:none}.resume-tools{gap:.35rem}.resume-print{padding-inline:.55rem}.resume-print svg{display:none}.resume-section{grid-template-columns:minmax(0,1fr);gap:.7rem;padding-block:1.15rem}.resume-section h4{font-size:.65rem}.resume-document{padding:1.4rem 1.2rem}.resume-role{font-size:.85rem}.resume-contact{margin-bottom:1.3rem}}@media print{@page{size:A4;margin:14mm}@page professional-resume{size:A4 portrait;margin:10mm}html:has(.professional-resume[open]),html:has(.professional-resume[open]) body{page:professional-resume;display:block!important;position:static!important;inset:auto!important;width:auto!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important;background:#fff!important;color:#171c2b!important;color-scheme:light!important}body:has(>.professional-resume[open])>:not(.professional-resume[open]){display:none!important}.professional-resume[open]{--resume-bg: white;--resume-text: #171c2b;--resume-dim: #303744;--resume-blue: #243d69;--resume-line: #cbd0d8;display:block!important;position:static!important;inset:auto!important;width:auto;max-width:none;height:auto;min-height:0;max-height:none;margin:0;padding:0;overflow:visible;border:0;border-radius:0;box-shadow:none;color-scheme:light}.professional-resume::backdrop,.resume-toolbar{display:none!important}.resume-scroll{overflow:visible;max-height:none;scrollbar-gutter:auto;outline:none!important}.resume-document{padding:0;font-size:9.5pt;line-height:1.35}.resume-section[aria-labelledby=resume-profile]>p{line-height:1.45}.resume-location{margin-bottom:2mm;font-size:8pt}.resume-identity h3{font-size:25pt}.resume-role{margin-top:2.5mm;font-size:10pt}.resume-contact{-moz-column-gap:4mm;column-gap:4mm;row-gap:0;margin-block:2mm 4mm;font-size:8pt}.resume-contact a{padding:0;text-decoration:none}.resume-contact-label{display:none}.resume-contact-url{display:inline}.resume-section{grid-template-columns:30mm minmax(0,1fr);gap:4mm;padding-block:2.5mm;-moz-column-break-inside:auto;break-inside:auto}.resume-section h4{padding:0;font-size:8pt}.resume-section h5{margin-bottom:.7mm}.resume-entries{gap:2mm}.resume-doi{margin-top:1.3mm;font-size:8.5pt}}@font-face{font-family:Anton;src:url(/fonts/Anton-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{--intro-bg: var(--page-bg);--intro-surface: #151820;--intro-fg: #f5f5f7;--intro-dim: #b8bbc5;--intro-muted: #9499a6;--intro-blue: #739cff;--intro-line: #2b303c;--intro-cyan: #87dfd2}html[data-theme=light]{--intro-surface: #fff;--intro-fg: #171c2b;--intro-dim: #485163;--intro-muted: #5c6577;--intro-blue: #315bc3;--intro-line: #d6dce7;--intro-cyan: #176f67}.home-section--hero{background:var(--intro-bg);color:var(--intro-fg)}.home-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;min-height:100svh;padding:calc(var(--nav-h) + 2.4rem) 1.5rem 1.4rem;overflow:clip}.hero-social{position:absolute;z-index:2;top:50%;left:clamp(.75rem,2vw,2.5rem);display:flex;flex-direction:column;align-items:center;gap:.5rem;transform:translateY(-50%)}.hero-social a{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;color:var(--intro-muted);transition:color .18s ease,background-color .18s ease,box-shadow .18s ease}.hero-social svg{width:1.375rem;height:1.375rem}.home-hero .hero-social a:focus-visible{color:var(--shell-blue);outline-color:var(--shell-blue);background-color:color-mix(in srgb,var(--intro-blue) 8%,transparent);box-shadow:0 0 1.1rem color-mix(in srgb,var(--shell-blue) 15%,transparent)}@media (hover: hover) and (pointer: fine){.hero-social a:hover{color:var(--shell-blue);background-color:color-mix(in srgb,var(--intro-blue) 8%,transparent);box-shadow:0 0 1.1rem color-mix(in srgb,var(--shell-blue) 15%,transparent)}}@media (max-width: 1023px){.hero-social{position:static;align-self:center;flex-direction:row;margin-top:.5rem;transform:none}}.hero-inner{width:min(100%,75rem);margin:auto;text-align:center}.hero-intro{display:flex;justify-content:center;align-items:center;gap:.75rem;color:var(--intro-muted);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.hero-intro>span:first-child{width:5px;height:5px;border-radius:50%;background:var(--intro-blue)}.hero-intro-divider{opacity:.4}.hero-name{margin:1.1rem 0 .85rem;font-family:Anton,Arial Narrow,sans-serif;font-size:clamp(4.2rem,8.25vw,7.4rem);font-weight:400;line-height:1.05;letter-spacing:-.015em;text-transform:uppercase;color:var(--intro-fg)}.hero-name>span{color:var(--intro-blue)}.hero-role{font-family:Bricolage Grotesque Variable,sans-serif;font-size:clamp(1.2rem,2.2vw,1.85rem);font-weight:650;letter-spacing:-.035em;line-height:1.35;color:var(--intro-fg)}.hero-description{max-width:48ch;margin:1.1rem auto 0;color:var(--intro-dim);font-size:clamp(.95rem,1.3vw,1.1rem);line-height:1.7;text-wrap:pretty}.hero-workstation{position:relative;width:min(100%,35rem);margin:1rem auto .5rem}.atomizer-stage{position:relative;isolation:isolate;aspect-ratio:720/420;touch-action:pan-y}.workstation-source,.workstation-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.workstation-canvas{opacity:0;pointer-events:none}.workstation-source .studio-scan{animation:studio-screen-scan 4.8s linear infinite;animation-play-state:var(--tech-play, paused)}@keyframes studio-screen-scan{0%{transform:translateY(0);opacity:0}15%,75%{opacity:.35}to{transform:translateY(205px);opacity:0}}.workstation-source,.workstation-canvas{transition:opacity .22s ease}[data-atomizer][data-state=active] .workstation-source{opacity:0}[data-atomizer][data-state=active] .workstation-canvas,[data-atomizer][data-state=active][data-settled=true] .workstation-source{opacity:1}[data-atomizer][data-state=active][data-settled=true] .workstation-canvas{opacity:0}.workstation-side-note{position:absolute;right:-.1rem;top:43%;writing-mode:vertical-rl;color:var(--intro-muted);font-size:.55rem;letter-spacing:.2em}.workstation-caption{display:flex;justify-content:center;align-items:center;gap:.75rem;min-height:2.75rem;margin-top:-.1rem;color:var(--intro-muted);font-size:.68rem;line-height:1.5}.workstation-tools{display:flex;gap:.1rem}.workstation-tools[hidden]{display:none}.workstation-tools button{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid transparent;border-radius:50%;color:var(--intro-dim);font-size:1.1rem;transition:background .2s,border-color .2s}.workstation-tools button:hover{background:var(--intro-surface);border-color:var(--intro-line)}.hero-actions{display:flex;justify-content:center;gap:.85rem}.hero-button{display:inline-flex;align-items:center;justify-content:center;gap:1.6rem;min-height:3rem;padding:.7rem 1.25rem;border:1px solid var(--intro-line);border-radius:.3rem;color:var(--intro-fg);font-size:.8rem;font-weight:600;transition:transform .2s,background .2s,border-color .2s}.hero-button span{font-size:1.1rem;transition:transform .2s}.hero-button--primary{background:var(--intro-blue);border-color:var(--intro-blue);color:#080d19}html[data-theme=light] .hero-button--primary{color:#fff}.hero-button:hover{transform:translateY(-2px);border-color:var(--intro-blue)}.hero-button:hover span{transform:translate(2px,-2px)}.hero-button--secondary:hover{background:var(--intro-surface)}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(100%,75rem);margin:1.2rem auto 0;border-top:1px solid var(--intro-line);padding-top:.6rem;color:var(--intro-muted);font-size:.65rem}.hero-bottom p{display:flex;gap:.6rem}.hero-bottom p>span{color:var(--intro-blue)}.hero-bottom a{display:flex;align-items:center;gap:1rem;min-height:2.75rem}.hero-bottom a:hover{color:var(--intro-fg)}.hero-bottom a>span{color:var(--intro-blue);font-size:1rem}.home-hero :is(a,button):focus-visible{outline:2px solid var(--intro-blue);outline-offset:5px}@media (min-width: 1600px){.home-hero{padding-top:calc(var(--nav-h) + 2.4rem)}.hero-workstation{width:44rem;margin-top:2rem}.hero-name{font-size:8rem}.hero-bottom{margin-top:2.75rem}}@media (min-width: 768px) and (max-height: 950px){.home-hero{--hero-viewport-gap: clamp(.75rem, calc(4svh - .85rem) , 1.4rem);padding-top:calc(var(--nav-h) + var(--hero-viewport-gap));padding-bottom:var(--hero-viewport-gap)}.hero-name{font-size:clamp(4.2rem,min(8.25vw,calc(14.5svh - .75rem)),7.4rem);margin-block:clamp(.5rem,2svh,1.1rem) clamp(.375rem,1.6svh,.85rem)}.hero-role{font-size:clamp(1.2rem,min(2.2vw,3.5svh),1.85rem)}.hero-description{font-size:clamp(.95rem,min(1.3vw,2svh),1.1rem);margin-top:clamp(.5rem,calc(4svh - 1.15rem),1.1rem)}.hero-workstation{width:min(100%,clamp(15rem,calc(100svh - 24.75rem),31.5rem));margin-top:clamp(.5rem,calc(2svh - .125rem),1rem)}.hero-bottom{margin-top:clamp(.5rem,calc(5svh - 1.6rem),1.2rem)}}@media (max-width: 767px){.home-hero{padding-top:calc(var(--nav-h) + 2.1rem)}.hero-intro{font-size:.58rem;gap:.5rem;letter-spacing:.08em}.hero-name{font-size:clamp(3.3rem,11.5vw,5.5rem);margin:1.3rem 0 1rem}.hero-role{max-width:27ch;margin-inline:auto;font-size:1.2rem}.hero-description{max-width:35ch;font-size:.95rem;margin-top:1rem}.hero-workstation{width:min(100% + 1rem,34rem);margin:1.8rem -.5rem .8rem}.workstation-side-note{display:none}.workstation-caption{gap:.2rem;justify-content:space-between;font-size:.6875rem;padding-inline:.3rem}.hero-button{gap:.75rem;min-height:3rem;font-size:.75rem;padding-inline:1rem}.hero-bottom{margin-top:1.75rem;font-size:.6rem}.hero-bottom>p{max-width:15rem}.hero-bottom>a{justify-content:center;min-width:2.75rem;font-size:0;gap:0}.hero-bottom>a>span{font-size:1.1rem}}@media (min-width: 600px) and (max-width: 767px){.hero-workstation{margin-inline:auto}}@media (max-width: 767px) and (max-height: 740px){.home-hero{padding-top:calc(var(--nav-h) + 1rem);padding-bottom:1rem}.hero-name{margin-block:.9rem .65rem}.hero-description{margin-top:.75rem}.hero-workstation{width:min(100%,15rem);margin:.85rem auto .35rem}.hero-bottom{margin-top:1rem}}@media (prefers-reduced-motion: reduce){.home-hero *,.home-hero *:before,.home-hero *:after{animation:none!important;transition:none!important}.workstation-source{opacity:1!important}.workstation-canvas,.workstation-tools{display:none!important}.hero-button:hover,.hero-button:hover span{transform:none}}.workstation-tools button:disabled{opacity:.35;cursor:default}.scroll-wordmark{position:absolute;z-index:-1;inset:0 auto 0 50%;width:var(--wordmark-viewport-width, 100%);transform:translate(-50%);overflow:hidden;overflow:clip;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.scroll-wordmark-text{position:absolute;top:52%;left:0;display:block;width:-moz-max-content;width:max-content;max-width:none;white-space:nowrap;font-family:Anton,Arial Narrow,sans-serif;font-size:clamp(8rem,20vw,21.875rem);font-weight:400;line-height:1;letter-spacing:-.03em;text-transform:uppercase;color:color-mix(in srgb,var(--intro-surface) 24%,transparent);-webkit-text-stroke:1.5px color-mix(in srgb,var(--intro-line) 65%,transparent);transform:translate3d(var(--wordmark-shift, 0px),-50%,0)}.scroll-wordmark--top .scroll-wordmark-text{top:clamp(5rem,12vw,13rem)}.scroll-wordmark[data-wordmark-active] .scroll-wordmark-text{will-change:transform}.scroll-wordmark-light{position:absolute;inset:0;opacity:0;-webkit-mask-image:radial-gradient(ellipse 240px 170px at var(--wordmark-cursor-x, -1000px) var(--wordmark-cursor-y, -1000px),#000,transparent);mask-image:radial-gradient(ellipse 240px 170px at var(--wordmark-cursor-x, -1000px) var(--wordmark-cursor-y, -1000px),#000,transparent);transition:opacity .5s ease}.scroll-wordmark-light .scroll-wordmark-text{color:color-mix(in srgb,var(--intro-blue) 24%,var(--intro-bg));-webkit-text-stroke:1px color-mix(in srgb,var(--intro-cyan) 25%,transparent)}@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference){.scroll-wordmark[data-wordmark-spotlight=true] .scroll-wordmark-light{opacity:1}}@media (max-width: 767px){.scroll-wordmark-text{font-size:clamp(6rem,26vw,12rem);-webkit-text-stroke-width:1px}}@media (prefers-reduced-motion: reduce){.scroll-wordmark-text{transform:translate3d(0,-50%,0)!important;will-change:auto!important}.scroll-wordmark-light{display:none;transition:none}}.about-section{position:relative;isolation:isolate;overflow:hidden;scroll-margin-top:var(--nav-h);border-top:1px solid var(--intro-line);padding-block:clamp(4.5rem,8vw,7rem);background:var(--intro-bg);color:var(--intro-fg)}.about-inner{width:min(calc(100% - 3rem),75rem);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:center}.about-editorial{min-width:0}.about-eyebrow{display:flex;gap:.65rem;color:var(--intro-muted);font-size:.69rem;letter-spacing:.13em;line-height:1.6;text-transform:uppercase;font-weight:600;margin-bottom:1rem}.about-eyebrow>span{color:var(--intro-blue)}.about-section h2{font-size:clamp(2.5rem,4.1vw,3.75rem);line-height:1.1;letter-spacing:-.055em;font-weight:750;color:var(--intro-fg)}.about-section h2>span{color:var(--intro-blue)}.about-lead{margin-top:1.8rem;max-width:33ch;font-size:clamp(1.2rem,1.65vw,1.5rem);line-height:1.5;font-weight:500;letter-spacing:-.02em;text-wrap:pretty}.about-description{margin-top:1.45rem;color:var(--intro-dim);font-size:1rem;line-height:1.85;text-wrap:pretty}.about-description p+p{margin-top:1.15rem}.about-portrait{display:flex;align-items:center;gap:.9rem;margin:1.9rem 0 0}.about-portrait img{width:4rem;height:4rem;flex:none;border-radius:50%;border:1px solid var(--intro-line);-o-object-fit:cover;object-fit:cover;-o-object-position:50% 32%;object-position:50% 32%;background:var(--intro-surface)}.about-portrait figcaption{display:grid;gap:.2rem;font-size:.875rem;line-height:1.5}.about-portrait strong{font-weight:600;color:var(--intro-fg)}.about-portrait figcaption>span{font-size:.8rem;color:var(--intro-muted)}.about-location{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .55rem;margin-top:1.1rem;font-size:.69rem;line-height:1.7;color:var(--intro-muted)}.about-location svg{color:var(--intro-blue);flex:none}.about-art{min-width:0}.developer-desk{position:relative;margin:0;--desk-animation: paused}.developer-desk[data-moving=true]{--desk-animation: running}.desk-scene{position:relative;isolation:isolate;width:100%;max-width:35rem;margin-inline:auto}.desk-scene:before{content:"";position:absolute;z-index:-1;inset:7% -5% 18%;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--intro-blue) 9%,transparent),transparent 68%);pointer-events:none}.desk-illustration{display:block;width:100%;height:auto}.desk-illustration .desk-hand{transform-box:fill-box;transform-origin:left center;animation:desk-type .48s ease-in-out infinite;animation-play-state:var(--tech-play, paused)}.desk-illustration .desk-hand--far{animation-delay:-.24s}.desk-illustration .desk-arm--near{transform-origin:198px 315px;animation:desk-arm-type .96s ease-in-out infinite;animation-play-state:var(--tech-play, paused)}.desk-illustration .desk-arm--far{transform-origin:250px 304px;animation:desk-arm-type 1.2s ease-in-out -.5s infinite;animation-play-state:var(--tech-play, paused)}.desk-illustration .desk-eye{animation:desk-blink 5.7s ease-in-out infinite;transform-box:fill-box;transform-origin:center;animation-play-state:var(--tech-play, paused)}.desk-illustration .desk-key-light{animation:desk-key-light .8s steps(3) infinite;animation-play-state:var(--tech-play, paused)}.desk-illustration .desk-screen-scan{animation:desk-scan 4.6s linear infinite;animation-play-state:var(--tech-play, paused)}.desk-illustration .desk-steam{animation:desk-steam 3s ease-out infinite;animation-play-state:var(--tech-play, paused)}.desk-illustration .desk-plant{transform-origin:99px 380px;animation:desk-plant-sway 5.5s ease-in-out infinite;animation-play-state:var(--tech-play, paused)}.developer-desk[data-entered=true] .desk-monitor{animation:desk-monitor-boot 1s cubic-bezier(.16,1,.3,1) both;animation-play-state:var(--tech-play, paused)}.developer-desk[data-entered=true] .desk-monitor--main{animation-delay:.15s}@keyframes desk-type{0%,to{transform:translateY(0) rotate(0)}40%{transform:translateY(-3px) rotate(-2deg)}70%{transform:translateY(1px) rotate(1deg)}}@keyframes desk-arm-type{0%,to{transform:rotate(0)}50%{transform:rotate(-1.2deg)}}@keyframes desk-blink{0%,43%,47%,to{transform:scaleY(1)}45%{transform:scaleY(.12)}}@keyframes desk-key-light{0%,to{opacity:.25}50%{opacity:.8}}@keyframes desk-scan{0%{transform:translateY(0);opacity:0}15%,75%{opacity:.45}to{transform:translateY(120px);opacity:0}}@keyframes desk-steam{0%{transform:translateY(3px);opacity:0}25%{opacity:.5}to{transform:translateY(-14px);opacity:0}}@keyframes desk-plant-sway{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1.5deg)}}@keyframes desk-monitor-boot{0%{transform:translateY(22px);opacity:.1}to{transform:translateY(0);opacity:1}}.desk-caption{position:relative;min-height:6.5rem;margin-top:1rem;text-align:center}.desk-art-note{font-size:.78rem;color:var(--intro-dim);line-height:1.5}.desk-hint{display:flex;justify-content:center;align-items:center;gap:.5rem;font-size:.69rem;color:var(--intro-muted);line-height:1.6;margin-top:.5rem}.desk-hint>span{font-size:1.2rem;color:var(--intro-blue)}.desk-discovery{font-size:.75rem;color:var(--intro-blue);max-width:35ch;margin:.6rem auto 0;line-height:1.6;min-height:1.2rem}.desk-motion{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;border:0;border-bottom:1px solid var(--intro-line);font-size:.65rem;line-height:1.4;color:var(--intro-muted);background:transparent;padding:.45rem .4rem;margin-top:.2rem;cursor:pointer}.desk-motion:hover{color:var(--intro-fg);border-color:var(--intro-blue)}.desk-motion:focus-visible,.desk-phone-trigger:focus-visible{outline:2px solid var(--intro-blue);outline-offset:4px}.desk-phone-trigger{position:absolute;left:84.5%;top:34.5%;width:9.4%;height:10.5%;min-width:2.75rem;min-height:2.75rem;background:transparent;border:1px solid transparent;border-radius:.5rem;transform:rotate(10deg);cursor:pointer}.desk-phone-trigger:hover{border-color:var(--intro-blue);box-shadow:0 0 18px color-mix(in srgb,var(--intro-blue) 20%,transparent)}.desk-phone-reveal{display:grid;place-items:center;position:absolute;inset:0;border-radius:.4rem;background:color-mix(in srgb,var(--intro-bg) 90%,var(--intro-blue));color:var(--intro-cyan);opacity:0}.desk-phone-reveal svg{width:65%;height:65%}.developer-desk[data-discovered=true] .desk-phone-reveal{opacity:1}.developer-desk [hidden]{display:none!important}.desk-static-note{font-size:.7rem;color:var(--intro-muted);margin-top:.5rem;line-height:1.6}@media (prefers-reduced-motion: no-preference){.desk-scene:before{animation:about-desk-glow 8s ease-in-out infinite;animation-play-state:var(--desk-animation)}.desk-phone-reveal{transition:opacity .28s ease}.desk-phone-trigger,.desk-motion{transition:border-color .18s ease,color .18s ease,box-shadow .18s ease}@keyframes about-desk-glow{0%,to{opacity:.55}50%{opacity:1}}}@media (max-width: 1000px){.about-inner{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1.5rem}.about-description{font-size:.94rem}.desk-art-note{font-size:.72rem}.desk-hint{font-size:.64rem}.about-location>span:last-child{flex-basis:100%;padding-left:1.55rem}}@media (max-width: 767px){.about-inner{grid-template-columns:minmax(0,1fr);gap:2rem;width:min(calc(100% - 3rem),36rem)}.about-section{padding-block:4.5rem 3.5rem}.about-lead{max-width:31ch;margin-top:1.4rem}.about-description{font-size:1rem;line-height:1.8}.about-art{width:min(100%,30rem);margin-inline:auto}.desk-caption{margin-top:1rem}.about-location>span:last-child{flex-basis:auto;padding-left:0}}@media (prefers-reduced-motion: reduce){.developer-desk *,.developer-desk *:before,.developer-desk *:after{animation:none!important;transition:none!important}.desk-motion{display:none!important}}.scroll-heading{position:relative;isolation:isolate;overflow:hidden;overflow:clip;margin:0;padding-block:clamp(3rem,6vw,5rem) 2.5rem;background:var(--intro-bg);color:var(--intro-fg);box-shadow:inset 0 1px 0 var(--intro-line)}.scroll-heading-atmosphere{position:absolute;z-index:-2;inset:0;pointer-events:none}.scroll-heading-atmosphere:before{content:"";position:absolute;inset:-12% -8%;background:transparent;transform:translate3d(var(--heading-depth, 0px),0,0)}.scroll-heading-atmosphere:after{content:"";position:absolute;width:min(65vw,52rem);height:1px;top:1.5rem;right:-12%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--intro-blue) 28%,transparent),transparent);transform:translate3d(var(--heading-depth, 0px),0,0)}.scroll-heading-inner{position:relative;width:min(calc(100% - 3rem),75rem);margin-inline:auto}.scroll-heading-inner.has-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:end;gap:2rem 4rem}.scroll-heading-copy,.scroll-heading-intro{min-width:0}.scroll-heading-eyebrow{display:flex;align-items:baseline;gap:.65rem;margin:0 0 1rem;color:var(--intro-muted);font-size:.69rem;font-weight:600;line-height:1.6;letter-spacing:.13em;text-transform:uppercase}.scroll-heading-eyebrow>span{color:var(--intro-blue)}.scroll-heading-title{max-width:20ch;margin:0;color:var(--intro-fg);font-family:Bricolage Grotesque Variable,system-ui,sans-serif;font-size:clamp(2.5rem,4.1vw,3.75rem);font-weight:750;line-height:1.1;letter-spacing:-.055em;text-wrap:balance}.scroll-heading-title>span{color:var(--intro-blue)}.scroll-heading-intro{max-width:40ch;padding-bottom:.2rem;color:var(--intro-dim);font-size:1rem;line-height:1.8;text-wrap:pretty}@media (min-width: 768px) and (max-width: 1023px){main[data-section-screens] .scroll-heading-inner.has-intro{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.5rem}.scroll-heading-intro{max-width:60ch}}@media (max-width: 767px){.scroll-heading{padding-block:3.5rem 2rem}.scroll-heading-inner.has-intro{grid-template-columns:minmax(0,1fr);gap:1.4rem}.scroll-heading-intro{max-width:36ch;font-size:.95rem}}@media (prefers-reduced-motion: reduce){.scroll-heading-atmosphere:before,.scroll-heading-atmosphere:after{transform:none!important}}.work-section{color:var(--intro-fg);background:var(--intro-bg);overflow:clip;scroll-margin-top:var(--nav-h)}.work-section .scroll-heading{padding-block:clamp(4rem,8vw,7rem) 2.5rem}.work-section .scroll-heading-title{max-width:14ch;font-size:clamp(3rem,5.7vw,5.25rem);opacity:clamp(0,calc(var(--heading-progress,.5) * 4),1);transform:translate3d(clamp(-10px,calc(var(--heading-shift,0px) * .1),10px),calc((1 - clamp(0,var(--heading-progress,.5) * 4,1))*20px),0)}.work-section .scroll-heading-inner.has-intro{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}.work-inner{width:min(calc(100% - 3rem),75rem);margin-inline:auto}.work-prelude{display:flex;justify-content:space-between;align-items:baseline;gap:3rem;padding-block:.8rem 1.4rem;border-bottom:1px solid var(--intro-line);color:var(--intro-muted);font-size:.72rem;line-height:1.8}.work-prelude>p:last-child{max-width:60ch;text-align:right}.work-selector{position:sticky;top:var(--nav-h);z-index:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--intro-bg);border-bottom:1px solid var(--intro-line)}.work-selector>a{position:relative;display:flex;align-items:center;gap:.75rem;min-width:0;min-height:4.2rem;padding:.65rem .8rem;color:var(--intro-dim);font-size:.78rem;line-height:1.5}.work-selector>a:after{content:"";position:absolute;bottom:-1px;height:2px;left:0;right:0;background:var(--intro-blue);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.work-select-number{color:var(--intro-blue);font-size:.64rem;font-variant-numeric:tabular-nums}.work-select-arrow{margin-left:auto;color:var(--intro-blue);font-size:1rem}.work-selector>a[aria-current=step]{color:var(--intro-fg)}.work-selector>a[aria-current=step]:after,.work-selector>a:hover:after{transform:scaleX(1)}.work-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);align-items:start;gap:clamp(2rem,6vw,5.5rem);padding-top:2rem}.work-visual{position:sticky;top:calc(var(--nav-h) + 5.2rem);align-self:start;min-width:0}.work-world{margin:0}.work-world-topline{display:flex;justify-content:space-between;gap:1rem;padding-inline:.5rem;color:var(--intro-muted);font-size:.62rem;letter-spacing:.08em}.work-world-topline>span:first-child{color:var(--intro-blue)}.work-globe-interaction{position:relative;width:100%;transform:translate3d(var(--work-pointer-x,0px),var(--work-pointer-y,0px),0);transition:transform .18s ease-out}.work-globe{display:block;width:100%;height:auto;max-height:59vh;overflow:visible}.work-registration{fill:none;stroke:var(--intro-line);stroke-width:1}.work-ground-shadow{fill:url(#work-contact-shadow)}.work-orbital-path{fill:none;stroke:var(--intro-blue);stroke-width:.8;opacity:.19}.work-land-depth{fill:#233e61}.work-land{stroke:#c6dbf2;stroke-opacity:.32;stroke-width:.55;stroke-linejoin:round}.work-graticule{stroke:#abc9f3;stroke-width:.65;opacity:.17}.work-sphere-edge{stroke:url(#work-rim);stroke-width:1.5;fill:none}.work-sphere-highlight{fill:none;stroke:#d9e9ff;stroke-width:1.4;stroke-linecap:round;opacity:.35}.work-planet{transform-origin:280px 350px;transform:rotate(var(--work-globe-tilt,0deg))}.work-ecuador{fill:var(--intro-cyan);stroke:var(--intro-cyan);stroke-width:1;opacity:.85}.work-map-marker{transition:opacity .24s ease,visibility .24s}.work-section[data-location-mode=unmapped] .work-map-marker{opacity:0;visibility:hidden}.work-section[data-location-mode=unmapped] .work-ecuador{opacity:.35}.work-section[data-location-mode=unmapped] .work-world-note{visibility:hidden}.work-marker-halo{fill:var(--intro-cyan);opacity:.14}.work-marker-ring{fill:none;stroke:var(--intro-cyan);stroke-width:1}.work-marker-dot{fill:var(--intro-cyan)}.work-marker-line{fill:none;stroke:var(--intro-cyan);stroke-width:1}.work-marker-label-bg{fill:var(--intro-bg);fill-opacity:.94;stroke:var(--intro-line);stroke-width:.7}.work-marker-label{fill:var(--intro-fg);font:500 11px Figtree Variable,sans-serif}.work-station-orbit{transform-origin:280px 350px;transform:rotate(var(--work-orbit-angle,0deg))}.work-station{opacity:.65;transition:opacity .6s ease}.work-station[data-active=true]{opacity:1}.work-object-shadow{fill:url(#work-device-shadow)}.work-object-side{fill:url(#work-tech-metal);stroke:var(--tech-screen-bottom);stroke-width:1;stroke-linejoin:round}.work-object-top{fill:url(#work-tech-platform)}.work-object-face{fill:url(#work-tech-metal);stroke:var(--tech-line);stroke-opacity:.8;stroke-width:.8;stroke-linejoin:round}.work-object-screen{fill:url(#work-tech-screen);stroke:var(--tech-screen-bottom);stroke-width:1.4}.work-object-reflection{fill:url(#work-tech-glass)}.work-object-highlight{fill:none;stroke:#c8d9ee;stroke-width:.75;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.work-object-line{fill:none;stroke:#a2b6d2;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}.work-object-accent{fill:none;stroke:var(--tech-cyan);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.work-object-node{fill:var(--tech-cyan)}.work-selection-wave{fill:none;stroke:var(--tech-blue);stroke-width:1.2;opacity:0;transform-origin:280px 350px}.work-orbit-signal{fill:none;stroke:var(--tech-cyan);stroke-width:2;stroke-dasharray:10 1150;animation:work-orbit-data 6s linear infinite;animation-play-state:var(--tech-play,paused);opacity:.7}.work-orbit-signal--second{stroke:var(--tech-blue);stroke-width:1.4;stroke-dasharray:6 1080;animation-duration:8s;animation-direction:reverse;opacity:.45}.work-station-device{animation:work-device-hover 5s ease-in-out infinite;animation-delay:var(--phase,0s);animation-play-state:var(--tech-play,paused)}.work-motion{position:absolute;right:.25rem;bottom:.25rem;display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid var(--intro-line);border-radius:50%;color:var(--intro-muted);background:color-mix(in srgb,var(--intro-bg) 90%,transparent);cursor:pointer}.work-motion:hover{color:var(--intro-blue);border-color:var(--intro-blue)}.work-motion:focus-visible{outline:2px solid var(--intro-blue);outline-offset:4px}.work-motion[hidden],.work-motion-play,.work-motion[aria-pressed=true] .work-motion-pause{display:none}.work-motion[aria-pressed=true] .work-motion-play{display:block}@keyframes work-orbit-data{to{stroke-dashoffset:-1160}}@keyframes work-device-hover{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.work-object-camera{fill:#0b1423}.work-screen-grid{fill:none;stroke:#739cff;stroke-width:.5;opacity:.2}.work-world-caption{padding:.75rem .5rem 0;border-top:1px solid var(--intro-line)}.work-world-type{color:var(--intro-blue);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.work-world-context{margin-top:.45rem;color:var(--intro-dim);font-size:.88rem;line-height:1.7}.work-world-note{margin-top:.5rem;color:var(--intro-muted);font-size:.65rem;line-height:1.7}.work-entry{--work-reveal:1;min-width:0;padding-block:1.9rem 3rem;border-top:1px solid var(--intro-line);scroll-margin-top:5.7rem}.work-entry:first-child,.work-entry.is-active{border-top-color:var(--intro-blue)}.work-section[data-enhanced] .work-entry:first-child:not(.is-active){border-top-color:var(--intro-line)}.work-entry-topline{display:flex;align-items:baseline;flex-wrap:wrap;gap:.55rem;color:var(--intro-muted);font-size:.66rem;line-height:1.6}.work-entry-index{color:var(--intro-blue);font-variant-numeric:tabular-nums}.work-current{display:inline-flex;align-items:center;gap:.4rem;margin-left:auto;color:var(--intro-cyan);font-size:.65rem}.work-current>span{width:4px;height:4px;border-radius:50%;background:currentColor}.work-period{margin-top:1.5rem;color:var(--intro-blue);font-family:Anton,Arial Narrow,sans-serif;font-size:clamp(1.15rem,1.65vw,1.6rem);font-weight:400;line-height:1.5}.work-entry h3{margin-top:.65rem;color:var(--intro-fg);font-family:Bricolage Grotesque Variable,sans-serif;font-size:clamp(1.8rem,2.8vw,2.75rem);font-weight:650;letter-spacing:-.045em;line-height:1.14;text-wrap:balance}.work-role{margin-top:.8rem;color:var(--intro-dim);font-size:1rem;font-weight:500;line-height:1.65;transform:translateY(calc((1 - var(--work-reveal)) * 8px))}.work-location{display:flex;align-items:center;gap:.6rem;color:var(--intro-muted);font-size:.76rem;margin-top:.5rem;line-height:1.8}.work-location>span{color:var(--intro-cyan)}.work-description{margin-top:1.3rem;max-width:58ch;color:var(--intro-dim);font-size:.92rem;line-height:1.9;text-wrap:pretty}.work-technologies{display:flex;flex-wrap:wrap;gap:.5rem .9rem;margin-top:1.3rem;padding:0;list-style:none}.work-technologies>li{padding-bottom:.3rem;border-bottom:1px solid color-mix(in srgb,var(--intro-blue) 35%,var(--intro-line));color:var(--intro-dim);font-size:.7rem;line-height:1.7;transform:translateY(calc((1 - var(--work-reveal)) * 5px))}.work-contribution{display:flex;align-items:start;gap:.75rem;margin-top:1.5rem;color:var(--intro-dim);font-size:.8rem;line-height:1.8}.work-contribution>span{color:var(--intro-blue);font-size:1.1rem}.work-contribution strong{display:block;margin-bottom:.25rem;color:var(--intro-fg);font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.work-details{margin-top:1.25rem;border-top:1px solid var(--intro-line)}.work-details>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.2rem;color:var(--intro-dim);font-size:.76rem;cursor:pointer;list-style:none}.work-details>summary::-webkit-details-marker{display:none}.work-details>summary>span{color:var(--intro-blue);font-size:1.25rem}.work-details[open]>summary>span{transform:rotate(45deg)}.work-details ul{display:grid;gap:.6rem;margin:.4rem 0 .75rem;padding-left:1rem;list-style:disc;color:var(--intro-dim);font-size:.82rem;line-height:1.8}.work-details li::marker{color:var(--intro-blue)}.work-projects{margin-top:1.75rem}.work-project{padding-top:1.5rem;border-top:1px solid var(--intro-line);scroll-margin-top:5.7rem}.work-project+.work-project{margin-top:1.75rem}.work-project h4{color:var(--intro-fg);font-family:Bricolage Grotesque Variable,sans-serif;font-size:1.35rem;font-weight:650;letter-spacing:-.025em;line-height:1.4;text-wrap:balance}.work-project-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem}.work-project-status{display:inline-flex;flex-shrink:0;padding:.15rem .45rem;border:1px solid var(--intro-line);border-radius:.25rem;color:var(--intro-blue);font-size:.65rem;line-height:1.6;white-space:nowrap}.work-project-status[data-status=current]{color:var(--intro-cyan)}.work-project-period{margin-top:.5rem;color:var(--intro-muted);font-size:.75rem;line-height:1.7}.work-education{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);gap:clamp(2rem,6vw,5.5rem);margin-top:3rem;padding-block:2.5rem;border-top:1px solid var(--intro-line);scroll-margin-top:6.5rem}.work-education-eyebrow{color:var(--intro-blue);font-size:.67rem;letter-spacing:.1em;text-transform:uppercase}.work-education h3{margin-top:.75rem;font-size:1.6rem;font-family:Bricolage Grotesque Variable,sans-serif;font-weight:650;letter-spacing:-.035em}.work-education h4{color:var(--intro-fg);font-size:1.6rem;font-family:Bricolage Grotesque Variable,sans-serif;font-weight:600;letter-spacing:-.035em}.work-education-period,.work-education-location{margin-top:.75rem;color:var(--intro-muted);font-size:.78rem}.work-education-institution{margin-top:.6rem;font-size:.9rem;color:var(--intro-dim)}.work-education-note{margin-top:1.1rem;color:var(--intro-muted);font-size:.85rem;line-height:1.8}.work-transition{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;border-top:1px solid var(--intro-line);padding-block:1.4rem 3.5rem;color:var(--intro-muted);font-size:.75rem}.work-transition a{display:inline-flex;align-items:center;min-height:44px;gap:2rem;color:var(--intro-dim)}.work-transition a>span{color:var(--intro-blue);font-size:1.5rem}.work-section :is(a,summary):focus-visible{outline:2px solid var(--intro-blue);outline-offset:5px}@media (max-width:1023px) and (min-width:768px){.work-layout{gap:2rem;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.work-selector>a{font-size:.7rem;padding-inline:.5rem;gap:.45rem}.work-select-arrow{display:none}.work-world-context{font-size:.78rem}}@media (max-width:767px){.work-inner{width:min(calc(100% - 2.5rem),35rem)}.work-section .scroll-heading-inner.has-intro{grid-template-columns:minmax(0,1fr)}.work-section .scroll-heading-title{font-size:clamp(2.8rem,8vw,4.5rem)}.work-prelude{display:block;padding-bottom:1rem}.work-prelude>p:last-child{margin-top:.5rem;text-align:left;font-size:.68rem}.work-selector{position:sticky;top:var(--nav-h);grid-template-columns:repeat(3,minmax(0,1fr))}.work-selector>a{display:grid;align-content:center;gap:.1rem;min-height:3.7rem;padding:.4rem .25rem;font-size:.6875rem;line-height:1.35}.work-select-number{font-size:.625rem}.work-select-arrow{display:none}.work-layout{display:block;padding-top:0}.work-visual{z-index:3;top:calc(var(--nav-h) + 3.7rem);padding-top:.6rem;background:var(--intro-bg)}.work-world{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;-moz-column-gap:.65rem;column-gap:.65rem}.work-world-topline{grid-column:1/-1;padding-inline:0;font-size:.625rem}.work-globe{height:220px;max-height:30svh;width:100%}.work-world-caption{min-width:0;border-top:0;padding:0}.work-world-type{font-size:.625rem;line-height:1.7;letter-spacing:.05em}.work-world-context{font-size:.75rem;line-height:1.7}.work-world-note{font-size:.625rem;line-height:1.7}.work-entry{padding-block:1.6rem 2.3rem}.work-entry,.work-project{scroll-margin-top:calc(6.45rem + min(220px,30svh))}.work-entry-topline{font-size:.61rem}.work-current{font-size:.6rem}.work-period{margin-top:1rem;font-size:1.23rem}.work-entry h3{font-size:1.9rem}.work-role{font-size:.91rem}.work-description{font-size:.88rem}.work-technologies{gap:.5rem .8rem}.work-technologies>li{font-size:.68rem}.work-education{grid-template-columns:minmax(0,1fr);gap:1.5rem;margin-top:1.5rem}.work-transition{flex-direction:column;align-items:start;gap:.5rem;padding-bottom:2rem}.work-transition a{width:100%;justify-content:space-between}}@media (max-width:767px) and (max-height:540px){.work-visual{position:relative;top:auto}.work-entry,.work-project{scroll-margin-top:4.7rem}}@media (prefers-reduced-motion:reduce){.work-section *,.work-section *:before,.work-section *:after{transition:none!important;animation:none!important}.work-section .scroll-heading-title{opacity:1;transform:none}.work-globe-interaction,.work-role,.work-technologies>li{transform:none}}.featured-image-trigger{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.featured-image-trigger:disabled{cursor:default}.featured-image-trigger img{transition:transform .42s cubic-bezier(.22,1,.36,1)}.featured-image-frame .featured-image-trigger:focus-visible{outline:2px solid var(--intro-blue);outline-offset:-4px}.featured-image-expand{position:absolute;z-index:1;right:.75rem;bottom:.75rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--intro-blue);border-radius:.5rem;color:var(--intro-blue);background:color-mix(in srgb,var(--intro-bg) 94%,transparent);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.featured-image-trigger:disabled .featured-image-expand{display:none}@media (hover: hover) and (pointer: fine){.featured-image-trigger:not(:hover):not(:focus-visible) .featured-image-expand{opacity:0;transform:translateY(4px)}}@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference){.featured-image-trigger:enabled:hover img{transform:scale(1.05)}}.project-image-lightbox{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;overflow:hidden;border:0;background:transparent;color:#f5f5f7}.project-image-lightbox::backdrop{background:#030710e0;backdrop-filter:blur(4px)}.project-image-lightbox-content{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:clamp(1rem,3vw,3rem);padding-block:calc(clamp(1rem,3vw,3rem) + 3.5rem)}.project-image-lightbox-content img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.project-image-lightbox-toolbar{position:absolute;inset:clamp(1rem,3vw,3rem) clamp(1rem,3vw,3rem) auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-image-lightbox-toolbar p{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.project-image-lightbox-close{display:grid;flex:none;place-items:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--intro-blue);border-radius:.5rem;background:#101a2beb;color:#f5f5f7;cursor:pointer;transition:background .18s ease}.project-image-lightbox-close:hover{background:color-mix(in srgb,var(--intro-blue) 24%,#101a2b)}.project-image-lightbox .project-image-lightbox-close:focus-visible{outline:2px solid var(--intro-blue);outline-offset:4px}@media (prefers-reduced-motion: reduce){.featured-image-trigger img,.featured-image-expand,.project-image-lightbox-close{transition:none}.featured-image-trigger:hover img{transform:none}}.project-demo{position:relative;--demo-accent: var(--intro-blue);--demo-light: var(--intro-cyan)}.project-demo[data-project-demo=cultivoscan]{--demo-accent: #61cf92;--demo-light: #38d4c7}.project-demo[data-project-demo=eduplay]{--demo-accent: #a596ff;--demo-light: #35d0cb}.project-demo[data-project-demo=remotescope]{--demo-accent: #84d080;--demo-light: #b3a1eb}.project-demo-overlay{position:absolute;top:0;left:50%;width:auto;max-width:100%;height:100%;aspect-ratio:1280 / 683;transform:translate(-50%);visibility:hidden;display:flex;flex-direction:column;overflow:hidden;border-radius:.4rem;background:var(--intro-bg);pointer-events:none}.project-demo[data-demo-active=true] .project-demo-overlay{visibility:visible}.project-demo[data-demo-active=true] .project-demo-poster{visibility:hidden}.project-demo-art{display:block;flex:1;min-height:0;width:100%;height:100%;font-family:Figtree Variable,system-ui,sans-serif}.project-demo-art [data-demo-scene]{opacity:0}.project-demo-art [data-demo-motion]{transform-box:fill-box;transform-origin:center}.project-demo-art [data-demo-motion=bars]{transform-origin:center bottom}.project-demo-art .demo-background{fill:color-mix(in srgb,var(--demo-accent) 5%,var(--intro-bg))}.project-demo-art .demo-grid{fill:none;stroke:var(--demo-accent);stroke-width:1;opacity:.06}.project-demo-art .demo-device{stroke:color-mix(in srgb,var(--demo-accent) 65%,var(--intro-line));stroke-width:3;stroke-linejoin:round}.project-demo-art .demo-screen{fill:var(--intro-bg);stroke:var(--intro-line);stroke-width:3}.project-demo-art .demo-icon,.project-demo-art .demo-line{fill:none;stroke:var(--demo-accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.project-demo-art .demo-icon{stroke-width:1.5}.project-demo-art .demo-wire{fill:none;stroke:var(--intro-line);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.project-demo-art .demo-signal,.project-demo-art .demo-drawn{fill:none;stroke:var(--demo-accent);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.project-demo-art .demo-drawn{stroke-dasharray:1;stroke-dashoffset:1}.project-demo-art .demo-heading{fill:var(--intro-fg);font-size:48px;font-weight:600;letter-spacing:-1px}.project-demo-art .demo-label{fill:var(--intro-fg);font-size:34px;font-weight:550}.project-demo-art .demo-copy{fill:var(--intro-fg);font-size:34px;font-weight:500}.project-demo-art .demo-small,.project-demo-art .demo-stage-label{fill:var(--intro-dim);font-size:29px;font-weight:450}.project-demo-art .demo-stage-label{font-weight:550}.project-demo-art .demo-phone-label{fill:var(--intro-fg);font-size:25px;font-weight:550}.project-demo-art .demo-phone-small{fill:var(--intro-dim);font-size:22px;font-weight:450}.project-demo-art .demo-code{fill:var(--intro-dim);font-family:ui-monospace,monospace;font-size:30px}.project-demo-art .demo-accent{fill:var(--demo-accent)}.project-demo-art .demo-muted{opacity:.55}.project-demo-art .demo-shadow{fill:var(--demo-accent);opacity:.07}.project-demo-art .demo-flash{fill:var(--demo-light);opacity:.2}.project-demo-art .demo-ring{fill:none;stroke:var(--demo-accent);stroke-width:4}.project-demo-art .demo-spinner{stroke-dasharray:130 220;stroke-linecap:round}.project-demo-art .demo-field{fill:color-mix(in srgb,var(--demo-accent) 5%,var(--intro-bg));stroke:var(--intro-line);stroke-width:3}.project-demo-art .demo-selected{fill:color-mix(in srgb,var(--demo-accent) 17%,var(--intro-bg));stroke:var(--demo-accent);stroke-width:3}.project-demo-art .demo-dot,.project-demo-art .demo-chart-bar{fill:var(--demo-accent)}.project-demo-art .demo-progress-track{fill:none;stroke:var(--intro-line);stroke-width:4;stroke-linecap:round}.project-demo-art .demo-progress{fill:none;stroke:var(--demo-accent);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.project-demo-toolbar{display:flex;flex:none;align-items:center;justify-content:space-between;gap:.25rem;min-height:2.4rem;padding:.15rem .25rem}.project-demo-caption{min-width:0;padding-inline:.15rem;color:var(--intro-muted);font-size:.59rem;line-height:1.4}.project-demo-controls{display:flex;flex:none;align-items:center;gap:.15rem}.project-demo-control{display:grid;flex:none;place-items:center;width:2.1rem;height:2.1rem;padding:0;border:1px solid var(--intro-line);border-radius:.35rem;background:var(--intro-bg);color:var(--intro-blue);pointer-events:auto;cursor:pointer}.project-demo-control[hidden]{display:none}.project-demo-control:hover,.project-demo-control[aria-pressed=true]{border-color:var(--intro-blue)}.project-demo-control:disabled{opacity:.5;cursor:default}.project-demo-control .demo-play-icon,.project-demo-control .demo-sound-on{display:none}.project-demo-control[aria-pressed=true] .demo-play-icon,.project-demo-control[aria-pressed=true] .demo-sound-on{display:block}.project-demo-control[aria-pressed=true] .demo-pause-icon,.project-demo-control[aria-pressed=true] .demo-sound-off{display:none}@media (pointer: coarse){.project-demo-toolbar{min-height:2.95rem;padding-block:.1rem}.project-demo-control{width:2.75rem;height:2.75rem}}@media (prefers-reduced-motion: reduce){.project-demo .project-demo-overlay{display:none}.project-demo .project-demo-poster{visibility:visible}}.featured-spec-trigger{width:100%;font-family:inherit;text-align:left;cursor:pointer}.featured-spec-trigger:disabled{cursor:default}.project-specifications{width:min(42rem,calc(100% - 2rem));max-width:none;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:0;overflow:hidden;border:1px solid var(--intro-line);border-radius:.85rem;background:var(--intro-bg);color:var(--intro-fg)}.project-specifications[open]{display:flex;flex-direction:column}.project-specifications::backdrop{background:#030710d1;backdrop-filter:blur(4px)}.project-spec-header{display:flex;flex:none;align-items:start;justify-content:space-between;gap:1rem;padding:1.2rem 1.5rem;border-bottom:1px solid var(--intro-line)}.project-spec-header>div{min-width:0}.project-spec-category{color:var(--intro-muted);font-size:.66rem;line-height:1.6}.project-spec-header h2{margin-top:.35rem;color:var(--intro-fg);font-family:Bricolage Grotesque Variable,system-ui,sans-serif;font-size:1.65rem;font-weight:650;line-height:1.2;letter-spacing:-.04em}.project-spec-header h2>span{color:var(--intro-blue)}.project-spec-close{display:grid;flex:none;place-items:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--intro-line);border-radius:.4rem;background:transparent;color:var(--intro-blue);cursor:pointer;transition:border-color .18s ease,background .18s ease}.project-spec-close:hover{border-color:var(--intro-blue);background:color-mix(in srgb,var(--intro-blue) 8%,transparent)}.project-spec-body{min-height:0;padding:1.25rem 1.5rem;overflow-y:auto;overscroll-behavior:contain}.project-spec-image{margin:0 0 1.15rem}.project-spec-image img{display:block;width:auto;max-width:100%;height:auto;max-height:min(25vh,15rem);margin-inline:auto;-o-object-fit:contain;object-fit:contain}.project-spec-insights h3{margin-bottom:.6rem;color:var(--intro-fg);font-size:.76rem;font-weight:600;line-height:1.6}.project-spec-insights dl{margin:0}.project-spec-insights dl>div{padding:.65rem 0}.project-spec-insights dl>div:first-child{padding-top:0}.project-spec-insights dl>div:last-child{padding-bottom:0}.project-spec-insights dl>div+div{border-top:1px solid var(--intro-line)}.project-spec-insights dt{margin-bottom:.25rem;color:var(--intro-blue);font-size:.71rem;font-weight:600;line-height:1.7}.project-spec-insights dd{margin:0;color:var(--intro-dim);font-size:.8rem;line-height:1.7;text-wrap:pretty}.project-spec-links{display:flex;flex:none;flex-wrap:wrap;gap:.6rem;padding:.9rem 1.5rem;border-top:1px solid var(--intro-line)}.project-spec-links a{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:.55rem .75rem;border:1px solid color-mix(in srgb,var(--intro-blue) 45%,var(--intro-line));border-radius:.4rem;background:color-mix(in srgb,var(--intro-blue) 6%,transparent);color:var(--intro-fg);font-size:.73rem;font-weight:600;line-height:1.5;transition:border-color .18s ease,background .18s ease}.project-spec-links a:hover{border-color:var(--intro-blue);background:color-mix(in srgb,var(--intro-blue) 12%,transparent)}.project-spec-links svg{flex:none;width:.95rem;height:.95rem}.project-spec-links a>span[aria-hidden]{color:var(--intro-blue)}.project-specifications :is(a,button,[tabindex]):focus-visible{outline:2px solid var(--intro-blue);outline-offset:-3px}@media (max-width: 767px){.project-specifications{width:calc(100% - 1.25rem);max-height:calc(100vh - 1.25rem);max-height:calc(100dvh - 1.25rem)}.project-spec-header,.project-spec-body{padding:1rem}.project-spec-links{padding:.8rem 1rem}}@media (prefers-reduced-motion: reduce){.project-spec-close,.project-spec-links a{transition:none}}.featured-projects{position:relative;isolation:isolate;min-width:0;padding-bottom:clamp(4rem,7vw,6rem);background:var(--intro-bg);color:var(--intro-fg)}.featured-projects>.scroll-heading{--projects-heading-inset: clamp(5rem, 6.5vw, 6rem);padding-top:var(--projects-heading-inset);min-height:calc(var(--projects-heading-inset) + clamp(8rem,20vw,21.875rem) + 2.5rem)}.featured-projects>.scroll-heading .scroll-wordmark-text{top:calc(var(--projects-heading-inset) + .5em)}.featured-projects .scroll-heading-title{max-width:14ch;font-size:clamp(3rem,5.7vw,5.25rem);white-space:pre-line}.featured-projects-inner{width:min(calc(100% - 3rem),75rem);margin-inline:auto}.featured-project-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 2rem;border-block:1px solid var(--intro-line);padding-block:.65rem;margin:0}.featured-project-nav a{display:inline-flex;align-items:center;gap:.8rem;min-height:2.75rem;color:var(--intro-dim);font-size:.8rem;transition:color .18s ease}.featured-project-nav a span{color:var(--intro-muted);font-size:.65rem}.featured-project-nav a:hover{color:var(--intro-fg)}.featured-project-nav a:hover span{color:var(--intro-blue)}.featured-project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.featured-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(1.75rem,4.5vw,4rem);min-width:0;padding-block:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--intro-line);scroll-margin-top:calc(var(--nav-h) + 1.5rem);transition:border-color .22s ease,transform .22s ease}.featured-image-frame{position:relative;flex:none;width:100%;aspect-ratio:16 / 10;overflow:hidden;border:1px solid var(--intro-line);border-radius:.4rem;background:var(--intro-bg)}.featured-image-frame:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(22rem circle at var(--project-pointer-x, 50%) var(--project-pointer-y, 50%),#8aabff18,transparent 70%);opacity:0;transition:opacity .25s ease}.featured-image-frame img{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.featured-card-body{display:flex;flex-direction:column;align-items:stretch;min-width:0}.featured-category{display:flex;align-items:baseline;gap:.6rem;margin:0 0 .5rem;color:var(--intro-muted);font-size:.68rem;line-height:1.6}.featured-category>span{flex:none;color:var(--intro-blue);font-variant-numeric:tabular-nums}.featured-card-heading :is(h2,h3){margin:0;color:var(--intro-fg);font-family:Bricolage Grotesque Variable,system-ui,sans-serif;font-size:clamp(1.75rem,2.5vw,2.15rem);font-weight:700;line-height:1.15;letter-spacing:-.045em}.featured-card-heading :is(h2,h3)>span{color:var(--intro-blue)}.featured-card-description{margin-top:.8rem;color:var(--intro-dim);font-size:.9rem;line-height:1.7;text-wrap:pretty}.featured-tech{display:flex;flex-wrap:wrap;align-content:start;gap:.4rem;margin:1.15rem 0 0;padding:0;list-style:none}.featured-tech li{border:1px solid var(--intro-line);border-radius:.3rem;padding:.3rem .55rem;color:var(--intro-dim);font-size:.67rem;line-height:1.5;overflow-wrap:anywhere}.featured-card-footer{padding-top:1rem}.featured-status{display:flex;align-items:center;margin-bottom:.75rem;color:var(--intro-muted);font-size:.7rem;line-height:1.6}.featured-case-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.85rem;padding:.65rem .85rem;border:1px solid color-mix(in srgb,var(--intro-blue) 45%,var(--intro-line));border-radius:.4rem;background:color-mix(in srgb,var(--intro-blue) 6%,transparent);color:var(--intro-fg);font-size:.78rem;font-weight:600;line-height:1.5;transition:border-color .18s ease,background .18s ease}.featured-case-link>span{color:var(--intro-blue);font-size:1.05rem;transition:transform .18s ease}.featured-case-link:hover{background:color-mix(in srgb,var(--intro-blue) 12%,transparent);border-color:var(--intro-blue)}.featured-case-link:hover>span{transform:translate(2px,-2px)}.featured-evidence-links{display:flex;flex-wrap:wrap;align-items:center;gap:0 1.25rem;margin-top:.5rem}.featured-evidence-links a{display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem;color:var(--intro-dim);font-size:.72rem;line-height:1.5;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.3rem;transition:color .18s ease,text-decoration-color .18s ease}.featured-evidence-links svg{flex:none;width:.95rem;height:.95rem}.featured-evidence-links a>span[aria-hidden]{color:var(--intro-blue)}.featured-evidence-links a:hover{color:var(--intro-fg);text-decoration-color:var(--intro-blue)}.featured-projects :is(a,button):focus-visible{outline:2px solid var(--intro-blue);outline-offset:4px}.featured-card:focus-within{border-color:var(--intro-blue)}@media (hover: hover) and (pointer: fine){.featured-card:hover{border-color:color-mix(in srgb,var(--intro-blue) 65%,var(--intro-line));transform:translateY(-3px)}.featured-image-frame[data-project-pointer=true]:after{opacity:1}}@media (max-width: 1023px){.featured-card{grid-template-columns:minmax(0,1fr);gap:1.5rem}}@media (max-width: 767px){.featured-projects .scroll-heading-title{font-size:clamp(2.8rem,8vw,4.5rem)}.featured-projects>.scroll-heading{--projects-heading-inset: 4rem;min-height:calc(var(--projects-heading-inset) + clamp(6rem,26vw,12rem) + 2rem)}.featured-projects-inner{width:min(calc(100% - 3rem),36rem)}.featured-project-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.1rem 1rem}.featured-project-nav a{gap:.55rem;font-size:.75rem}}@media (prefers-reduced-motion: reduce){.featured-projects *,.featured-projects *:before,.featured-projects *:after{animation:none!important;transition:none!important}.featured-card:hover,.featured-case-link:hover>span{transform:none}.featured-image-frame:after{display:none}}.skills-section{position:relative;isolation:isolate;min-width:0;padding-bottom:clamp(3rem,5vw,4.5rem);background:var(--intro-bg);color:var(--intro-fg)}.skills-section>.scroll-heading{--skills-heading-inset: clamp(5rem, 6.5vw, 6rem);padding-top:var(--skills-heading-inset);min-height:calc(var(--skills-heading-inset) + clamp(8rem,20vw,21.875rem) + 2.5rem)}.skills-section>.scroll-heading .scroll-wordmark-text{top:calc(var(--skills-heading-inset) + .5em)}.skills-section .scroll-heading-title{max-width:14ch;font-size:clamp(3rem,5.7vw,5.25rem);white-space:pre-line}.skills-list{width:min(calc(100% - 3rem),75rem);margin:0 auto;padding:0;border-top:1px solid var(--intro-line);list-style:none}.skill-row{display:flex;align-items:flex-start;gap:clamp(1rem,2.5vw,2rem);min-width:0;padding-block:clamp(1.5rem,3vw,2rem);border-bottom:1px solid var(--intro-line);transition:border-color .2s ease}.skill-number{flex:0 0 2rem;padding-top:.5rem;color:var(--intro-blue);font-size:.72rem;line-height:1.6;font-variant-numeric:tabular-nums}.skill-content{display:flex;flex:1;align-items:center;gap:clamp(2rem,4vw,4rem);min-width:0}.skill-summary{flex:0 1 29rem;min-width:0}.skill-summary h3{margin:0;color:var(--intro-fg);font-family:Bricolage Grotesque Variable,system-ui,sans-serif;font-size:clamp(1.35rem,2vw,1.75rem);font-weight:650;line-height:1.25;letter-spacing:-.025em;transition:color .2s ease,transform .2s ease}.skill-summary p{max-width:49ch;margin-top:.7rem;color:var(--intro-dim);font-size:.85rem;line-height:1.75;text-wrap:pretty}.skill-technologies{display:flex;flex:1;flex-wrap:wrap;align-content:center;gap:.9rem 1.35rem;min-width:0;margin:0;padding:0;list-style:none}.skill-technologies li{display:inline-flex;align-items:center;gap:.55rem;color:var(--intro-dim);font-size:.8rem;line-height:1.6;white-space:nowrap}.skill-technologies svg{display:block;flex:none;width:1.1rem;height:1.1rem;color:var(--intro-blue);opacity:.85;transition:opacity .2s ease}@media (hover: hover) and (pointer: fine){.skill-row:hover{border-bottom-color:color-mix(in srgb,var(--intro-blue) 45%,var(--intro-line))}.skill-row:hover h3{color:var(--intro-blue);transform:translate(3px)}.skill-row:hover svg{opacity:1}}@media (max-width: 1023px){.skill-content{flex-direction:column;align-items:stretch;gap:1.2rem}.skill-summary{flex:none}.skill-summary p{max-width:65ch}.skill-technologies{flex:none}}@media (max-width: 767px){.skills-section>.scroll-heading{--skills-heading-inset: 4rem;min-height:calc(var(--skills-heading-inset) + clamp(6rem,26vw,12rem) + 2rem)}.skills-section .scroll-heading-title{font-size:clamp(2.8rem,8vw,4.5rem)}.skill-number{flex-basis:1.5rem;padding-top:.25rem}.skill-technologies{gap:.8rem 1.2rem}}@media (prefers-reduced-motion: reduce){.skills-section :is(.skill-row,h3,.skill-technologies svg){transition:none}.skills-section .skill-row:hover h3{transform:none}}.skill-toolset{flex:1;min-width:0}.skill-group-label{margin:0 0 .65rem;color:var(--intro-muted);font-size:.67rem;font-weight:500;line-height:1.6}.skill-concept-group{margin-top:1.2rem}.skill-concepts li{align-items:flex-start;max-width:100%;white-space:normal}.skill-concepts li>span{min-width:0;overflow-wrap:break-word}.skill-concepts svg{margin-top:.1rem}@media (max-width: 1023px){.skill-toolset{flex:none}}.research-section{position:relative;isolation:isolate;background:var(--intro-bg);color:var(--intro-fg)}.research-section>.scroll-heading{--research-heading-inset: clamp(5rem, 6.5vw, 6rem);padding-top:var(--research-heading-inset);min-height:calc(var(--research-heading-inset) + clamp(8rem,20vw,21.875rem) + 2.5rem)}.research-section>.scroll-heading .scroll-wordmark-text{top:calc(var(--research-heading-inset) + .5em)}.research-section .scroll-heading-title{max-width:14ch;font-size:clamp(3rem,5.7vw,5.25rem);white-space:pre-line}.research-publication{width:min(calc(100% - 3rem),75rem);margin-inline:auto;scroll-margin-top:1px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center;padding-block:clamp(2rem,4vw,3rem);border-top:1px solid var(--intro-line)}.research-copy h3{max-width:22ch;margin:0;font-size:clamp(1.65rem,2.7vw,2.4rem);font-weight:600;line-height:1.25;letter-spacing:-.04em}.research-copy>p{max-width:48ch;margin-top:1rem;color:var(--intro-dim);font-size:1rem;line-height:1.85;text-wrap:pretty}.research-links{display:flex;flex-wrap:wrap;gap:0 1.5rem}.research-text-link{display:inline-flex;align-items:center;gap:.9rem;min-height:2.75rem;margin-top:.65rem;color:var(--intro-fg);font-size:.79rem;font-weight:600;text-decoration:underline;text-decoration-color:var(--intro-line);text-underline-offset:.35rem;transition:color .2s,text-decoration-color .2s}.research-text-link span{color:var(--intro-blue);font-size:1rem;transition:transform .2s}.research-text-link:hover{color:var(--intro-blue);text-decoration-color:var(--intro-blue)}.research-text-link:hover span{transform:translate(2px,-2px)}.research-article-link{color:var(--intro-blue);text-decoration-color:var(--intro-blue)}.research-dataset-link{color:var(--intro-muted);font-size:.75rem;font-weight:400}.research-section a:focus-visible{outline:2px solid var(--intro-blue);outline-offset:5px}.research-paper{position:relative;border-left:2px solid var(--intro-blue);padding:.5rem 0 .5rem 1.7rem}.research-journal{color:var(--intro-blue);font-size:.75rem;letter-spacing:.03em}.research-paper-title{margin-top:1.2rem;font-size:clamp(1.1rem,1.65vw,1.4rem);line-height:1.6;letter-spacing:-.015em}.research-editorial{margin:1.2rem 0 0}.research-editorial>div{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:.35rem 1rem;padding-block:.65rem;border-top:1px solid var(--intro-line)}.research-editorial dt{color:var(--intro-muted);font-size:.69rem;line-height:1.8}.research-editorial dd{min-width:0;margin:0;color:var(--intro-dim);font-size:.8rem;line-height:1.7}.research-doi{overflow-wrap:anywhere}.research-ranking{color:var(--intro-blue)}.research-ranking-category{display:block;margin-top:.15rem;font-size:.73rem}@media (max-width: 767px){.research-section>.scroll-heading{--research-heading-inset: 4rem;min-height:calc(var(--research-heading-inset) + clamp(6rem,26vw,12rem) + 2rem)}.research-section .scroll-heading-title{font-size:clamp(2.8rem,8vw,4.5rem)}.research-publication{grid-template-columns:minmax(0,1fr);gap:2rem;padding-block:2.7rem}.research-paper{padding-left:1.2rem}.research-editorial>div{grid-template-columns:minmax(0,1fr);gap:.2rem}}@media (prefers-reduced-motion: reduce){.research-section *{transition:none!important}.research-text-link:hover span{transform:none}}.proposal-contact{--proposal-blue: var(--shell-blue, var(--intro-blue));position:relative;isolation:isolate;min-width:0;padding-bottom:clamp(3rem,6vw,5rem);background:var(--intro-bg);color:var(--intro-fg)}.proposal-contact .scroll-heading{padding-block:clamp(4rem,8vw,7rem) 3rem}.proposal-contact .scroll-heading-inner.has-intro{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.proposal-contact .scroll-heading-title{font-size:clamp(3rem,6.5vw,6rem);opacity:clamp(0,calc(var(--heading-progress, .5) * 4),1);transform:translate3d(clamp(-10px,calc(var(--heading-shift, 0px) * .1),10px),0,0)}.proposal-contact-inner{width:min(calc(100% - 3rem),75rem);margin-inline:auto}.proposal-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(2.5rem,5vw,4.5rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--intro-line)}.proposal-information,.proposal-form{min-width:0}.proposal-layout h3{margin:0;font-family:Bricolage Grotesque Variable,system-ui,sans-serif;font-size:clamp(1.35rem,2vw,1.75rem);font-weight:650;line-height:1.25;letter-spacing:-.025em}.proposal-availability{margin-top:.8rem;color:var(--proposal-blue);font-size:.78rem;line-height:1.7}.proposal-details{margin:1.5rem 0 0}.proposal-details>div{padding-block:1.1rem;border-bottom:1px solid var(--intro-line)}.proposal-details dt{display:flex;align-items:center;gap:.65rem;color:var(--intro-muted);font-size:.72rem;line-height:1.6}.proposal-details dt svg{flex:none;width:1.1rem;height:1.1rem;color:var(--proposal-blue)}.proposal-details dd{margin:.4rem 0 0}.proposal-detail-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem .75rem}.proposal-detail-value{display:inline-flex;align-items:center;min-height:2.75rem;max-width:100%;color:var(--intro-fg);font-size:.9rem;line-height:1.8;overflow-wrap:anywhere;transition:color .18s ease}.proposal-detail-value:hover{color:var(--proposal-blue)}.proposal-copy{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:.4rem;min-width:5.5rem;min-height:2.75rem;padding:.4rem .55rem;border:1px solid var(--intro-line);border-radius:.3rem;background:transparent;color:var(--proposal-blue);font:inherit;font-size:.72rem;line-height:1.6;cursor:pointer;transition:border-color .18s ease,background .18s ease}.proposal-copy:hover,.proposal-copy[data-copied]{border-color:var(--proposal-blue);background:color-mix(in srgb,var(--proposal-blue) 7%,transparent)}.proposal-copy:disabled{opacity:.6;cursor:wait}.proposal-copy-status{display:block;min-height:1.2rem;color:var(--proposal-blue);font-size:.7rem;line-height:1.7}.proposal-location{color:var(--intro-dim);font-size:.9rem;line-height:1.8;padding-block:.45rem}.proposal-form{margin:0;padding-left:clamp(1.5rem,3vw,2.5rem);border-left:1px solid var(--intro-line)}.proposal-form-notice{max-width:65ch;margin-top:.8rem;color:var(--intro-dim);font-size:.85rem;line-height:1.75;text-wrap:pretty}.proposal-required-note{margin-top:.65rem;color:var(--intro-muted);font-size:.7rem;line-height:1.7}.proposal-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem 1.1rem;margin-top:1.4rem}.proposal-field{min-width:0}.proposal-field label{display:block;margin-bottom:.5rem;color:var(--intro-fg);font-size:.78rem;font-weight:500;line-height:1.6}.proposal-field label>span:not(.proposal-optional){color:var(--proposal-blue)}.proposal-optional{color:var(--intro-muted);font-size:.69rem;font-weight:400}.proposal-field :is(input,select,textarea){display:block;width:100%;min-width:0;min-height:3rem;margin:0;padding:.8rem .85rem;border:1px solid var(--intro-line);border-radius:.3rem;background:var(--intro-bg);color:var(--intro-fg);font:inherit;font-size:.86rem;line-height:1.5;transition:border-color .18s ease,background .18s ease}.proposal-field :is(input,textarea)::-moz-placeholder{color:var(--intro-muted);opacity:.8}.proposal-field :is(input,textarea)::placeholder{color:var(--intro-muted);opacity:.8}.proposal-field select{cursor:pointer}.proposal-field option{background:var(--intro-bg);color:var(--intro-fg)}.proposal-field textarea{min-height:10rem;resize:vertical}.proposal-field :is(input,select,textarea):focus{border-color:var(--proposal-blue)}.proposal-field [aria-invalid=true]{border-color:var(--proposal-blue)}.proposal-field-error{display:block;margin-top:.4rem;color:var(--intro-fg);font-size:.73rem;line-height:1.6}.proposal-field-error:before{content:"!";margin-right:.4rem;color:var(--proposal-blue);font-weight:650}.proposal-message{grid-column:1 / -1}.proposal-submit{display:inline-flex;align-items:center;justify-content:center;gap:1.1rem;min-height:3rem;margin-top:1.3rem;padding:.75rem 1.2rem;border:1px solid var(--proposal-blue);border-radius:.3rem;background:var(--proposal-blue);color:var(--intro-bg);font:inherit;font-size:.85rem;font-weight:650;line-height:1.5;cursor:pointer;transition:background .18s ease,transform .18s ease}.proposal-submit:hover{background:color-mix(in srgb,var(--proposal-blue) 90%,var(--intro-fg));transform:translateY(-2px)}.proposal-form-status{min-height:2.8rem;margin-top:1rem;color:var(--intro-dim);font-size:.78rem;line-height:1.75}.proposal-form[data-form-state=error] .proposal-form-status{color:var(--intro-fg)}.proposal-draft{display:inline-flex;align-items:center;gap:.65rem;min-height:2.75rem;color:var(--proposal-blue);font-size:.78rem;line-height:1.6;text-decoration:underline;text-underline-offset:.3rem}.proposal-contact :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--proposal-blue);outline-offset:3px}.proposal-contact [hidden]{display:none!important}@media (max-width: 1023px){.proposal-layout{grid-template-columns:minmax(0,1fr);gap:2.5rem}.proposal-form{padding-left:0;padding-top:2.2rem;border-left:0;border-top:1px solid var(--intro-line)}}@media (max-width: 767px){.proposal-contact .scroll-heading-inner.has-intro{grid-template-columns:minmax(0,1fr)}.proposal-contact .scroll-heading-title{font-size:clamp(2.8rem,9.5vw,4.5rem)}.proposal-contact .scroll-heading{padding-bottom:2rem}}@media (max-width: 599px){.proposal-fields{grid-template-columns:minmax(0,1fr)}.proposal-submit{width:100%}}@media (max-width: 359px){.proposal-copy{min-width:2.75rem}.proposal-copy [data-copy-text]{display:none}}@media (prefers-reduced-motion: reduce){.proposal-contact *{transition:none!important}.proposal-contact .scroll-heading-title,.proposal-contact .proposal-submit:hover{transform:none;opacity:1}}main[data-section-screens]{--section-screen-height: calc(100vh - var(--nav-h) - 1px)}@supports (height: 100dvh){main[data-section-screens]{--section-screen-height: calc(100dvh - var(--nav-h) - 1px)}}main[data-section-screens] :is(#inicio,#sobre-mi,#experiencia,#proyectos,#investigacion,#habilidades,#contacto){min-height:var(--section-screen-height);scroll-margin-top:1px}main[data-section-screens] #contacto .final-contact{min-height:var(--section-screen-height)}
