@font-face{font-family:Manrope;src:url(/fonts/manrope-latin-variable.woff2)format("woff2");font-style:normal;font-weight:400 800;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0b0e14;--surface:#19222e;--surface-soft:#10161e;--border:#303743;--text:#f3f4f6;--text-secondary:#9ba6b6;--accent:#54c6c0;--accent-hover:#7bd9d4;--accent-ink:#0b0e14;--font-heading:Manrope, "Segoe UI", sans-serif;--font-body:"Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "Cascadia Code", monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--space-32:8rem;--motion-card-duration:.18s;--motion-ease:cubic-bezier(.2, .7, .2, 1);--motion-follow-ms:100;--motion-amplitude-x:20;--motion-amplitude-y:10;font-family:var(--font-body);color:var(--text);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:var(--background);margin:0}a{color:inherit;text-underline-offset:.3em}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:2px}main:focus{outline:none}::selection{color:var(--accent-ink);background:var(--accent)}figure,p,ul,ol{margin:0}p{line-height:1.75}h1,h2,h3,h4{font-family:var(--font-heading);margin:0}h1,h2{letter-spacing:-.055em;font-weight:500}h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1.18}h2 em{color:var(--accent);font-style:normal}h3{letter-spacing:-.035em;font-size:1.25rem;font-weight:600}h4{font-size:1.125rem;font-weight:600}section,#experiencia{scroll-margin-top:var(--space-8)}.container{width:min(1200px,100% - 3rem);margin-inline:auto}.skip-link{top:-10rem;left:var(--space-4);padding:var(--space-4);background:var(--surface);z-index:10;position:absolute}.skip-link:focus{top:var(--space-4)}.site-header{border-bottom:1px solid var(--border)}.header-inner{justify-content:space-between;align-items:center;gap:var(--space-6);padding-block:var(--space-6);flex-wrap:wrap;display:flex}.brand{font-family:var(--font-heading);letter-spacing:-.03em;font-size:1.125rem;font-weight:650;text-decoration:none;display:inline-block}.brand span{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-top:var(--space-1);font-size:.625rem;font-weight:400;display:block}nav ul{align-items:center;gap:var(--space-2) var(--space-6);flex-wrap:wrap;padding:0;list-style:none;display:flex}nav a{min-height:44px;color:var(--text-secondary);align-items:center;font-size:.8125rem;text-decoration:none;display:inline-flex;position:relative}nav a:after{content:"";background:var(--accent);transform-origin:0;height:1px;position:absolute;inset:auto 0 0;transform:scaleX(0)}nav a:is(:hover,:focus-visible):after{transform:scaleX(1)}.nav-contact{color:var(--text);gap:var(--space-6);border-bottom:1px solid var(--accent)}.hero{gap:var(--space-12);padding-block:var(--space-16);display:grid}.hero-copy{min-width:0}.brand-signature{color:var(--accent);margin-right:var(--space-2)}.hero-name{font-family:var(--font-heading);margin-top:var(--space-6);font-size:1.5rem}.eyebrow{align-items:center;gap:var(--space-2);color:var(--accent);font-family:var(--font-mono);letter-spacing:.055em;text-transform:uppercase;flex-wrap:wrap;font-size:.625rem;line-height:1.8;display:flex}.eyebrow>span{background:var(--accent);border-radius:50%;width:6px;height:6px}.hero-introduction{margin-top:var(--space-6);color:var(--text-secondary);font-size:.9375rem}h1{margin-block:var(--space-4) var(--space-6);font-size:clamp(2rem,4.2vw,3.5rem);line-height:1.15}h1>span{color:var(--accent)}.hero-description{color:var(--text-secondary);max-width:48ch;font-size:1rem}.actions{gap:var(--space-4);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.button{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-6);min-height:52px;color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);border-radius:3px;font-size:.8125rem;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{color:var(--accent-ink);background:var(--accent-hover)}.button.secondary{color:var(--text);border-color:var(--border);background:0 0}.button.secondary:hover{border-color:var(--accent);color:var(--accent)}.dataflow-panel{margin-top:var(--space-8);padding:var(--space-4) var(--space-6);border:1px solid var(--border);background:var(--surface-soft);border-radius:3px;display:none}.dataflow-instruction{justify-content:space-between;gap:var(--space-2);font:.6875rem var(--font-mono);color:var(--accent);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.dataflow-instruction span{color:var(--text-secondary);font:.75rem var(--font-body);display:none}.dataflow-field{pointer-events:none;width:100%;max-width:520px;height:auto;display:none;overflow:visible}.dataflow-caption{fill:var(--text-secondary);font:8px var(--font-mono);letter-spacing:.1em}.dataflow-connection{fill:none;stroke:var(--accent);stroke-width:1.25px;opacity:.7}.dataflow-nodes{fill:var(--accent)}.dataflow-satellite{opacity:.4}.dataflow-labels{fill:var(--text-secondary);font:9px var(--font-mono);letter-spacing:.06em}.interactive-project-card:focus-within{border-color:var(--accent);background:var(--surface)}.project-action>span{opacity:.65}.interactive-project-card:focus-within .project-action>span{opacity:1}@media (width>=768px) and (hover:hover) and (pointer:fine){.dataflow-panel,.dataflow-field{display:block}}@media (width>=768px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.dataflow-instruction span{display:inline}}@media (hover:hover) and (pointer:fine){.interactive-project-card:hover{border-color:var(--accent);background:var(--surface)}.interactive-project-card:hover .project-action>span{opacity:1}}.portrait{isolation:isolate;background:var(--surface-soft);border:1px solid var(--border);aspect-ratio:4/5;justify-self:center;width:100%;max-width:440px;position:relative;overflow:hidden}.portrait picture,.portrait img{width:100%;height:100%;display:block}.portrait img{object-fit:cover;object-position:center}.section{padding-block:var(--space-16);border-bottom:1px solid var(--border)}.section-label{justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-12);color:var(--text-secondary);font:.625rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;line-height:1.8;display:flex}.section-label>span:first-child{color:var(--accent);flex-shrink:0}.section-label>span:last-child{text-align:right}.section-heading{gap:var(--space-6);margin-bottom:var(--space-12);display:grid}.section-heading>p{color:var(--text-secondary);max-width:44ch;font-size:.9375rem}.about-grid{gap:var(--space-8);display:grid}.about-copy{max-width:52ch}.about-copy p{color:var(--text-secondary);margin-bottom:var(--space-6);font-size:.9375rem}.about-copy .lead{color:var(--text);font-size:1.25rem;line-height:1.6}.experience{gap:var(--space-8);display:grid}.timeline h3{font-size:1.125rem}.experience>div>p:last-child{color:var(--text-secondary);margin-top:var(--space-3);max-width:32ch;font-size:.875rem}.timeline{padding:0 0 0 var(--space-6);border-left:1px solid var(--border);list-style:none}.timeline>li{padding-bottom:var(--space-6);position:relative}.timeline>li:last-child{padding-bottom:0}.timeline>li:before{content:"";left:calc(-1.5rem - 4px);top:var(--space-2);background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute}.timeline-period{font:.625rem var(--font-mono);color:var(--accent);margin-bottom:var(--space-3)}.timeline-context{margin-block:var(--space-2) var(--space-3);color:var(--text-secondary);font-size:.75rem}.timeline-activity,.timeline-contribution{color:var(--text-secondary);max-width:62ch;font-size:.875rem}.timeline-contribution{border-left:2px solid var(--accent);padding-left:var(--space-4)}.competencies-section{background:var(--surface-soft)}.competencies-grid{background:var(--border);border:1px solid var(--border);gap:1px;display:grid}.competency{min-width:0;padding:var(--space-8);background:var(--surface-soft)}.competency-top{margin-bottom:var(--space-8);color:var(--accent);font:.625rem var(--font-mono);justify-content:space-between;display:flex}.competency h3{font-size:1.125rem}.competency .competency-focus{color:var(--accent);font:.625rem var(--font-mono);margin-block:var(--space-3) var(--space-6);line-height:1.6}.competency p{color:var(--text-secondary);font-size:.875rem}.competency .competency-detail{border-top:1px solid var(--border);padding-top:var(--space-4);margin-top:var(--space-6);font-size:.75rem}.case-study{border:1px solid var(--border);background:var(--surface-soft);display:grid}.case-visual{padding:var(--space-6);background:var(--surface);min-width:0}.case-image-window{border:1px solid var(--border);max-height:360px;overflow:hidden}.case-image-window img{width:100%;height:auto;display:block}.case-visual figcaption{font:.5625rem var(--font-mono);color:var(--text-secondary);margin-top:var(--space-4);line-height:1.8}.case-content{padding:var(--space-8);min-width:0}.status{align-items:center;gap:var(--space-2);color:var(--accent);font:.625rem var(--font-mono);margin-bottom:var(--space-6);display:flex}.status>span{background:var(--accent);border-radius:50%;width:5px;height:5px}.case-content h3{margin-bottom:var(--space-6);font-size:1.75rem}.case-content p:not(.status){color:var(--text-secondary);font-size:.875rem}.case-detail{margin-bottom:var(--space-6)}.case-detail h4{color:var(--text);margin-bottom:var(--space-2);font-size:.8125rem}.tags{gap:var(--space-2);margin-block:var(--space-6);flex-wrap:wrap;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--border);padding:var(--space-2) var(--space-3);color:var(--text-secondary);font:.625rem var(--font-mono)}.services-list{border-top:1px solid var(--border)}.service{gap:var(--space-4);padding-block:var(--space-8);border-bottom:1px solid var(--border);display:grid}.service:last-child{border-bottom:0}.service-index{color:var(--accent);font:.625rem var(--font-mono)}.service p{font-size:.9375rem}.service .service-scope{color:var(--text-secondary);margin-top:var(--space-3);font-size:.8125rem}.service-arrow{color:var(--accent);font-size:1.25rem}.contact{position:relative;overflow:hidden}.contact-content{z-index:1;position:relative}.contact-content h2{margin-block:var(--space-6);font-size:clamp(2.25rem,5vw,4.5rem)}.contact-content>p:not(.eyebrow){color:var(--text-secondary);max-width:55ch;font-size:.9375rem}.contact-content .contact-availability{margin-top:var(--space-6);padding-left:var(--space-4);border-left:2px solid var(--accent)}.text-link{align-items:center;gap:var(--space-8);min-height:48px;color:var(--accent);margin-top:var(--space-6);font-size:.8125rem;display:inline-flex}.footer-inner{justify-content:space-between;align-items:center;gap:var(--space-6);padding-block:var(--space-8);flex-wrap:wrap;display:flex}.footer-inner>p{color:var(--text-secondary);font-size:.625rem}.footer-brand{font-size:.875rem}.back-top{align-items:center;gap:var(--space-6);min-height:44px;font-size:.75rem;text-decoration:none;display:inline-flex}@media (width>=768px){.section{padding-block:var(--space-24)}.section-heading,.about-grid{align-items:start;gap:var(--space-16);grid-template-columns:1.2fr 1fr}.section-heading{align-items:end}.experience{grid-template-columns:1fr 1.3fr}.competencies-grid{grid-template-columns:repeat(2,1fr)}.case-study{grid-template-columns:1.1fr 1fr}.case-content{padding:var(--space-12)}.case-visual{padding:var(--space-8);flex-direction:column;justify-content:center;display:flex}.service{gap:var(--space-6);grid-template-columns:32px 1fr 1.5fr 24px;align-items:baseline}}@media (width>=1024px){.hero{gap:var(--space-12);padding-block:var(--space-24);grid-template-columns:1.35fr 1fr;align-items:center}.competencies-grid{grid-template-columns:repeat(4,1fr)}.competency{padding:var(--space-6)}}@media (width<=767px){.header-inner{gap:var(--space-4)}nav{width:100%}nav ul{gap:var(--space-1) var(--space-4)}nav a{font-size:.75rem}.nav-contact{gap:var(--space-2)}.section-label>span:last-child{max-width:45%}.service{grid-template-columns:24px 1fr}.service>div{grid-column:2}.service-arrow{display:none}.case-content{padding:var(--space-6)}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.button{transition:background-color .15s,border-color .15s}.interactive-project-card{transition:border-color var(--motion-card-duration) var(--motion-ease), background-color var(--motion-card-duration) var(--motion-ease)}.project-action>span{transition:opacity var(--motion-card-duration) var(--motion-ease)}nav a:after{transition:transform var(--motion-card-duration) var(--motion-ease)}.case-image-window img{transition:transform .24s var(--motion-ease)}.interactive-project-card:focus-within .case-image-window img{transform:translateY(-6px)}@media (hover:hover) and (pointer:fine){.interactive-project-card:hover .case-image-window img{transform:translateY(-6px)}}}
