@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}:root{--container-max:1100px;--viewport-pad:100vw;--sidebar-space:2rem;--page-width:min(var(--container-max),calc(var(--viewport-pad) - (var(--sidebar-space) * 2)))}@media(max-width:820px){:root{--sidebar-space:0px;--header-h:64px;--page-width:min(var(--container-max),calc(var(--viewport-pad) - (var(--sidebar-space) * 2)))}}.container-max,.container-width{max-width:var(--page-width);margin-inline:auto}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(10,25,47,.85);-webkit-backdrop-filter:saturate(120%) blur(8px);backdrop-filter:saturate(120%) blur(8px);box-shadow:0 10px 30px -10px rgba(2,12,27,.4);transition:transform .28s ease;width:100%}.site-header.is-hidden{transform:translateY(-100%)}.site-header .site-header__inner{width:min(var(--container-max),100vw - var(--sidebar-space)*2);margin-inline:auto;padding-inline:0;height:var(--header-h);display:flex;align-items:center;justify-content:space-between}.brand__hex{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;border:1px solid var(--accent,#64ffda);color:var(--accent,#64ffda)}.brand__letter{font-weight:700}.site-nav{align-items:center}.site-nav,.site-nav ol{display:flex;gap:1.2rem}.site-nav ol{list-style:none;margin:0;padding:0}.site-nav a{color:var(--muted,#a8b2d1);text-decoration:none;font-size:.95rem;transition:color .2s ease,opacity .2s ease}.site-nav a.is-active,.site-nav a:hover{color:var(--accent,#64ffda)}.site-nav a.is-active{position:relative}.site-nav a.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:color-mix(in oklab,var(--accent,#64ffda) 65%,transparent);border-radius:2px}.site-nav .nav-num{color:var(--accent,#64ffda);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;margin-right:.2rem}.site-nav .resume-btn{padding:.5rem .9rem}@media(max-width:820px){.site-nav ol{display:none}}.sidebar{position:fixed;bottom:0;z-index:20;display:flex;flex-direction:column;align-items:center;gap:1rem}.sidebar ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:.65rem;gap:.65rem}.sidebar a{color:var(--muted,#a8b2d1);text-decoration:none;font-size:.95rem;transition:color .2s ease,transform .2s ease}.sidebar a:hover{color:var(--accent,#64ffda);transform:translateY(-1px)}.sidebar a svg{display:block;width:20px;height:20px;stroke:var(--muted,#a8b2d1);transition:stroke .2s ease,transform .2s ease}.sidebar a:hover svg{stroke:var(--accent,#64ffda);transform:translateY(-2px)}.sidebar__line{width:1px;height:90px;background:color-mix(in oklab,var(--accent,#64ffda) 40%,transparent);margin-top:.25rem}.sidebar--left{left:var(--sidebar-space)}.sidebar--right{right:var(--sidebar-space)}.sidebar--right .sidebar__email{writing-mode:vertical-rl;letter-spacing:.08em}@media(max-width:820px){.sidebar{display:none}}.section{max-width:min(var(--container-max),var(--viewport-pad) - var(--sidebar-space)*2);margin:clamp(3rem,9vw,6rem) auto;scroll-margin-top:var(--header-h)}.section__head{display:grid;grid-template-columns:auto auto 1fr;grid-gap:.75rem 1rem;gap:.75rem 1rem;align-items:baseline;margin-bottom:clamp(1rem,2.2vw,1.4rem)}.section__num{font-size:1rem}.section__kicker,.section__num{color:var(--accent,#64ffda);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.section__kicker{grid-column:1/-1;letter-spacing:.04em;font-size:.95rem}.section__title{color:var(--text,#e6f1ff);font-weight:800;font-size:clamp(1.6rem,3vw,2.2rem);margin:0;line-height:1.15}.section__rule{height:1px;background:color-mix(in oklab,var(--text,#e6f1ff) 20%,transparent);align-self:center}.section__body{margin-top:clamp(.75rem,1.6vw,1rem)}.section--center{text-align:center}.section--center .section__head{grid-template-columns:1fr;justify-items:center;margin-bottom:clamp(.25rem,.6vw,.5rem)}.section--center .section__title{font-size:clamp(1.9rem,4.6vw,2.6rem);line-height:1.06}.section--center .section__rule{display:none}.hero{display:grid;place-items:center;min-height:min(88vh,820px);padding-block:clamp(3rem,10vh,8rem)}.hero__inner{width:min(var(--container-max),var(--viewport-pad) - var(--sidebar-space)*2);margin-inline:auto}.hero__eyebrow{color:var(--accent,#64ffda);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(.95rem,1.2vw,1.05rem);margin:0 0 .75rem;letter-spacing:.02em}.hero__h1{margin:0 0 .25rem;font-weight:800;color:var(--text,#e6f1ff);font-size:clamp(2rem,6vw,4rem);line-height:1.05}.hero__h2{margin:0 0 .75rem;font-weight:800;color:hsl(220,13%,70%);font-size:clamp(1.6rem,5vw,3.2rem);line-height:1.1}.hero__blurb{color:var(--muted,#a8b2d1);max-width:62ch;line-height:1.6;margin:0 0 1.4rem}.btn{--_b:var(--accent,#64ffda);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.1rem;border:1px solid color-mix(in oklab,var(--_b) 65%,transparent);border-radius:6px;color:var(--_b);text-decoration:none;font-weight:600;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease}.btn--ghost{color:var(--accent,#64ffda);background:rgba(0,0,0,0);box-shadow:none}.btn--ghost:hover{background:color-mix(in oklab,var(--accent,#64ffda) 12%,transparent);transform:translateY(-1px)}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.featured{width:100%;margin-inline:auto;padding-block:clamp(1rem,2vw,2rem);display:grid;grid-template-columns:1fr;grid-gap:clamp(2rem,4vw,3rem);gap:clamp(2rem,4vw,3rem)}.featured .project-card{background:var(--surface,rgba(2,12,27,.7));border:1px solid var(--border,rgba(100,255,218,.15));border-radius:var(--radius,8px);box-shadow:var(--shadow-sm,0 10px 30px -15px rgba(2,12,27,.7));overflow:hidden;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.featured .project-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px -20px rgba(2,12,27,.8);border-color:var(--accent,#64ffda)}.featured .project-card .project-image{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--muted-bg,#0b1b34)}.featured .project-card .project-body{padding:clamp(1rem,2vw,1.25rem) clamp(1rem,2.2vw,1.5rem)}.featured .project-card .project-body .project-title{font-weight:700;letter-spacing:.2px;margin:0 0 .35rem;color:var(--text,#e6f1ff)}.featured .project-card .project-body .project-desc{color:var(--muted,#a8b2d1);line-height:1.6;margin:0 0 1rem}.featured .project-card .project-body .project-techs{display:flex;flex-wrap:wrap;gap:.5rem .75rem;margin-top:.75rem}.featured .project-card .project-body .project-techs .chip{background:rgba(0,0,0,0);border:1px dashed var(--border,rgba(100,255,218,.35));color:var(--accent,#64ffda);padding:.25rem .6rem;border-radius:999px;font-size:.85rem;line-height:1.2;white-space:nowrap}.featured .project-card .project-body .project-links{display:inline-flex;gap:.9rem;margin-top:1rem;align-items:center}.featured .project-card .project-body .project-links a{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:999px;text-decoration:none;outline-offset:3px;transition:background-color .2s ease,transform .2s ease}.featured .project-card .project-body .project-links a svg{display:block;width:20px;height:20px;stroke:var(--accent,#64ffda);transition:stroke .2s ease,transform .2s ease}.featured .project-card .project-body .project-links a:hover{transform:translateY(-2px);background-color:color-mix(in oklab,var(--accent,#64ffda) 10%,transparent)}.featured .project-card .project-body .project-links a:hover svg{transform:translateY(-1px)}.featured .project-card .project-body .project-links a:focus-visible{outline:2px dashed var(--accent,#64ffda)}.project-card--split{position:relative;width:min(var(--container-max),var(--viewport-pad) - var(--sidebar-space)*2);margin-inline:auto;display:grid;grid-template-columns:1.15fr 1fr;grid-template-areas:"media content";grid-gap:clamp(1rem,3vw,2.25rem);gap:clamp(1rem,3vw,2.25rem);align-items:center;background:rgba(0,0,0,0);border:0;box-shadow:none;overflow:visible}.project-card--split .project-image{grid-area:media;border-radius:var(--radius,8px);overflow:hidden;min-height:clamp(240px,34vw,420px);background:#0b1b34}.project-card--split .project-body{grid-area:content;position:relative}.project-card--split .project-desc-card{background:rgba(2,12,27,.9);border:1px solid var(--border,rgba(100,255,218,.15));box-shadow:var(--shadow-sm,0 10px 30px -15px rgba(2,12,27,.7));border-radius:var(--radius,8px);padding:clamp(.9rem,2vw,1.25rem) clamp(1rem,2.2vw,1.5rem);margin:clamp(.6rem,1.5vw,.9rem) 0 .5rem}.project-card--split .eyebrow{color:var(--accent,#64ffda);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;letter-spacing:.02em;margin:0 0 .2rem}.project-card--split .project-title{margin:0;font-weight:800;color:var(--text,#e6f1ff);font-size:clamp(1.35rem,2.4vw,1.8rem)}.project-card--split .project-techs{display:flex;flex-wrap:wrap;gap:.5rem .75rem;margin-top:.75rem}.project-card--split .project-techs .chip{list-style:none}.project-card--split.is-reversed{grid-template-columns:1fr 1.15fr;grid-template-areas:"content media"}@media(max-width:900px){.project-card--split{grid-template-columns:1fr;grid-template-areas:"media" "content"}.project-card--split .project-body{margin-top:.75rem}.project-card--split.is-reversed{grid-template-areas:"media" "content"}}@media(prefers-reduced-motion:reduce){.featured .project-card{transition:none!important;transform:none!important}}.exp-tabs{display:grid;grid-template-columns:220px 1fr;grid-gap:clamp(1rem,2.4vw,2rem);gap:clamp(1rem,2.4vw,2rem);align-items:start;max-width:min(var(--container-max),var(--viewport-pad) - var(--sidebar-space)*2);margin-inline:auto}.exp-tabs__list{position:relative;list-style:none;margin:0;padding:0 0 0 1rem;min-height:44px}.exp-tabs__list li{margin:0}.exp-tabs__list button{display:block;width:100%;height:44px;text-align:left;padding:0 0 0 1rem;color:var(--muted,#a8b2d1);background:rgba(0,0,0,0);border:0;cursor:pointer;font:inherit;position:relative;transition:color .2s ease,background-color .2s ease}.exp-tabs__list button:hover{color:var(--text,#e6f1ff)}.exp-tabs__list button.is-active{color:var(--accent,#64ffda);background:color-mix(in oklab,var(--accent,#64ffda) 8%,transparent)}.exp-tabs__list .exp-tabs__rail{position:absolute;left:0;top:0;bottom:0;width:2px;background:color-mix(in oklab,var(--accent,#64ffda) 35%,transparent);border-radius:2px}.exp-tabs__list .exp-tabs__indicator{position:absolute;top:0;left:-1px;width:4px;height:44px;background:var(--accent,#64ffda);border-radius:2px;transition:transform .22s ease;will-change:transform}.exp-tabs__panel{min-height:200px}.exp-tabs__role{margin:0 0 .25rem;font-weight:700;color:var(--text,#e6f1ff);font-size:clamp(1.1rem,2vw,1.25rem)}.exp-tabs__company{color:var(--accent,#64ffda);text-decoration:none}.exp-tabs__period{color:var(--muted,#a8b2d1);margin:0 0 .75rem;font-size:.97rem}.exp-tabs__points{list-style:none;margin:0;padding:0;display:grid;grid-gap:.55rem;gap:.55rem}.exp-tabs__points li{position:relative;padding-left:1.3rem;color:var(--muted,#a8b2d1);line-height:1.6}.exp-tabs__points li:before{content:"▹";position:absolute;left:0;top:.05rem;color:var(--accent,#64ffda);font-weight:700}.exp-tabs__stack{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.5rem .65rem;list-style:none;padding:0}.exp-tabs__stack .chip{background:rgba(0,0,0,0);border:1px dashed var(--border,rgba(100,255,218,.35));color:var(--accent,#64ffda);padding:.22rem .55rem;border-radius:999px;font-size:.82rem}@media(max-width:820px){.exp-tabs{grid-template-columns:1fr}.exp-tabs__list{display:flex;gap:.5rem;padding-left:0;overflow-x:auto}.exp-tabs__list .exp-tabs__indicator,.exp-tabs__list .exp-tabs__rail{display:none}.exp-tabs__list button{width:auto;padding:0 .9rem;border-radius:6px;height:40px}}.other-projects__grid{display:grid;grid-template-columns:1fr;grid-gap:clamp(1rem,2.2vw,1.6rem);gap:clamp(1rem,2.2vw,1.6rem)}.other-projects .op-card{background:var(--surface,rgba(2,12,27,.7));border:1px solid var(--border,rgba(100,255,218,.15));border-radius:var(--radius,8px);padding:clamp(1rem,2vw,1.2rem);box-shadow:var(--shadow-sm,0 10px 30px -15px rgba(2,12,27,.7));transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.other-projects .op-card:hover{transform:translateY(-3px);border-color:var(--accent,#64ffda);box-shadow:0 14px 34px -18px rgba(2,12,27,.8)}.other-projects .op-card__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.other-projects .op-card__icon{color:var(--accent,#64ffda)}.other-projects .op-card__links{display:inline-flex;gap:.6rem}.other-projects .op-card__links a svg{stroke:var(--muted,#a8b2d1);transition:stroke .2s ease,transform .2s ease}.other-projects .op-card__links a:hover svg{stroke:var(--accent,#64ffda);transform:translateY(-1px)}.other-projects .op-card__title{margin:.25rem 0 .4rem;color:var(--text,#e6f1ff);font-weight:700;font-size:1.1rem}.other-projects .op-card__desc{color:var(--muted,#a8b2d1);line-height:1.55;margin:0 0 .9rem}.other-projects .op-card__tech{display:flex;flex-wrap:wrap;gap:.5rem .75rem;margin:.6rem 0 0}.other-projects .op-card__tech li{list-style:none;color:var(--muted,#a8b2d1);font-size:.9rem}.other-projects__more{display:grid;place-items:center;margin-top:clamp(1rem,2.4vw,1.6rem)}@media(min-width:820px){.other-projects__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.other-projects__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}#contacto .section__body{display:grid;place-items:center;margin-top:0}.contact{text-align:center;display:grid;justify-items:center;grid-gap:2rem;gap:2rem;padding-block:clamp(2rem,7vh,1rem)}.contact__lead{color:var(--muted,#a8b2d1);max-width:60ch;font-size:clamp(1rem,1.2vw,1.05rem)}.about-grid{display:grid;grid-template-columns:1fr auto;grid-gap:clamp(20px,3vw,36px);gap:clamp(20px,3vw,36px);align-items:start;max-width:var(--page-width);margin-inline:auto}.about-copy p{margin:0 0 16px;line-height:1.65;color:var(--muted,#a8b2d1)}.accent-link{color:var(--accent,#64ffda);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--accent,#64ffda) 40%,transparent);transition:color .2s ease,border-color .2s ease}.accent-link:hover{border-color:var(--accent,#64ffda)}.about-tech{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px 28px;gap:8px 28px;margin-top:6px}.about-tech ul{margin:0;padding:0;list-style:none}.about-tech li{position:relative;padding-left:16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92rem;color:var(--muted,#a8b2d1);line-height:1.7}.about-tech li:before{content:"▸";position:absolute;left:0;top:0;color:var(--accent,#64ffda);font-weight:700}.about-photo{--photo-r:8px;position:relative;width:320px;height:320px;border-radius:var(--photo-r);isolation:isolate}.about-photo:before{content:"";position:absolute;inset:0;background:var(--accent,#64ffda);border-radius:var(--photo-r);z-index:-2;opacity:.95;transition:opacity .28s ease}.about-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--photo-r);border:1px solid rgba(100,255,218,.25);box-shadow:0 12px 40px -12px rgba(0,0,0,.35);filter:grayscale(100%) contrast(1) brightness(.96);mix-blend-mode:multiply;transition:transform .28s ease,filter .28s ease,box-shadow .28s ease;position:relative;z-index:0}.about-photo .about-outline{position:absolute;top:22px;left:22px;right:-22px;bottom:-28px;border-radius:10px;border:1px solid color-mix(in oklab,var(--accent,#64ffda) 75%,transparent);pointer-events:none;transition:transform .28s ease;z-index:-3}.about-photo:hover:before{opacity:0}.about-photo:hover img{filter:none;transform:translate(-10px,-10px);box-shadow:0 18px 50px -20px rgba(0,0,0,.55)}.about-photo:hover .about-outline{transform:translate(10px,12px)}@media(max-width:900px){.about-grid{grid-template-columns:1fr}.about-photo{width:260px;height:260px;justify-self:center}}*,:after,:before{margin:0;padding:0;box-sizing:border-box}body,html{min-height:100%;font-family:Calibre,Inter,San Francisco,SF Pro Text,-apple-system,system-ui,sans-serif;font-size:16px;background-color:var(--color-bg);color:var(--color-text);transition:background-color .3s ease,color .3s ease}:root{--color-bg:#0a192f;--color-text:#ccd6f6;--color-accent:#64ffda;--color-heading:#e6f1ff;--color-muted:#8892b0}[data-theme=light]{--color-bg:#e6f1ff;--color-text:#0a192f;--color-accent:#57cbff;--color-heading:#020c1b;--color-muted:#495670}a{color:var(--color-accent);text-decoration:none;transition:color .2s ease}a:hover{opacity:.8}button{font:inherit;cursor:pointer;background:none;border:none}.container{width:min(1100px,100% - 1rem*2);margin-inline:auto}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}:root{--header-h:80px}@media(max-width:820px){:root{--header-h:64px}}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.section,section{scroll-margin-top:var(--header-h)}