@charset "UTF-8";
:root{color-scheme:dark;--bg:#101410;--surface:#161c17;--surface-alt:#131813;--text:#f0f0e7;--muted:#a7aea5;--subtle:#84907f;--line:#30382e;--accent:#c4ef7a;--accent-ink:#20300f;--header:rgba(16,20,16,.94);--art:#1c271d;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:"Inter","Segoe UI",Arial,sans-serif}
:root[data-theme=light]{color-scheme:light;--bg:#f4f4ec;--surface:#fffef7;--surface-alt:#ebeee3;--text:#1b291e;--muted:#57614f;--subtle:#626f5a;--line:#d2d8c9;--accent:#d0ef9a;--accent-ink:#2d4b10;--header:rgba(244,244,236,.96);--art:#e0e8d4}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased;line-height:1.6}body.dialog-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:default}svg{display:block}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{line-height:1.14}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}::selection{color:var(--accent-ink);background:var(--accent)}.container{max-width:1256px;padding-left:44px;padding-right:44px;margin:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;left:20px;top:-100px;background:var(--accent);color:var(--accent-ink);z-index:100;padding:12px 20px}.skip-link:focus{top:10px}.eyebrow{font:10px/1.6 var(--mono);font-weight:500;letter-spacing:1.5px;color:var(--muted);display:flex;align-items:center;gap:9px}.header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:var(--header);backdrop-filter:blur(14px)}.nav-wrap{height:94px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:18px;margin-right:auto}.monogram{font-size:36px;font-weight:800;letter-spacing:-4px;line-height:1}.monogram span{color:var(--accent)}[data-theme=light] .monogram span{color:#547b23}.brand-name{font-size:10px;font-weight:700;letter-spacing:1.4px;line-height:1.7}.brand-name>span{display:block;font:9px/1.6 var(--mono);letter-spacing:1.3px;color:var(--muted)}nav{display:flex;align-items:center;gap:29px;font-size:12px}nav a{transition:color .2s}nav a:hover,nav a.active{color:var(--accent)}[data-theme=light] nav a:hover,[data-theme=light] nav a.active{color:#4c6d26}.nav-contact{border:1px solid var(--line);padding:9px 15px;border-radius:5px}.nav-contact span{margin-left:13px}.nav-tools{display:flex;gap:8px}.icon-button{height:38px;width:38px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;border-radius:50%;transition:background .2s}.icon-button:hover{background:var(--line)}.icon-button svg{width:19px;fill:none;stroke:currentColor;stroke-width:1.5}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.16fr 1fr;gap:36px;padding-top:81px;padding-bottom:68px;align-items:center}.hero h1{font-size:clamp(55px,5.4vw,76px);letter-spacing:-4.8px;font-weight:650;line-height:1.04;margin:25px 0 26px}.hero h1>span{color:var(--accent)}[data-theme=light] .hero h1>span{color:#577627}.hero-role{font-size:19px;letter-spacing:-.45px;font-weight:500}.hero-role>span{color:var(--muted)}.hero-description{max-width:490px;font-size:14px;color:var(--muted);margin:20px 0 30px;line-height:1.9}.hero-actions{display:flex;align-items:center;gap:25px}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;border:1px solid transparent;border-radius:5px;min-height:49px;padding:12px 19px;font-size:12px;font-weight:600;line-height:1.5;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--accent);color:var(--accent-ink)}.button.primary:hover{background:#d3ff8a}.button span{font-size:20px;line-height:1}.text-link{display:inline-flex;align-items:center;gap:15px;font-size:12px;background:none;border:0;padding:8px 0}.text-link:hover{color:var(--accent)}[data-theme=light] .text-link:hover{color:#476a20}.text-link span{font-size:18px}.hero-caption{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin-top:35px}.hero-caption strong{font-weight:500;color:var(--text)}.mini-line{width:20px;height:1px;background:var(--subtle);margin-right:4px}.status-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0}[data-theme=light] .status-dot{background:#587d2b}.lab-visual{background:var(--surface-alt);border:1px solid var(--line);border-radius:8px;transform:translateY(7px);position:relative;overflow:hidden}.lab-top,.lab-bottom{display:flex;align-items:center;justify-content:space-between;margin:0 21px;height:54px;font:9px/1.4 var(--mono);letter-spacing:1px;color:var(--muted)}.lab-top{border-bottom:1px solid var(--line)}.lab-top>span:first-child{display:flex;align-items:center;gap:9px;color:var(--text)}.tiny-square{width:6px;height:6px;border:1px solid var(--accent)}.lab-map{width:100%;height:auto;max-height:378px;color:var(--subtle)}.map-orbits{stroke:var(--line);stroke-dasharray:3 7}.map-connections{stroke:var(--line);stroke-width:1.5}.map-connections .signal{stroke:var(--accent);stroke-dasharray:5 160;animation:signal 12s linear infinite;opacity:.75}.map-small-node>rect{fill:var(--surface);stroke:var(--line)}.map-small-node>path{fill:none;stroke:var(--muted);stroke-width:1.4}.map-small-node>rect:not(:first-child){stroke:var(--muted);fill:none}.map-small-node text{font:10px var(--mono);fill:var(--text);letter-spacing:.3px}.map-small-node .node-subtitle{font:8px var(--mono);fill:var(--muted)}.map-core>rect{fill:var(--surface);stroke:var(--accent);stroke-opacity:.8}.map-core .core-inner{fill:var(--art);stroke:var(--line)}.map-core path{stroke:var(--accent);fill:none;stroke-width:1.5}.core-title{font:600 16px var(--sans);fill:var(--text);letter-spacing:.4px}.core-subtitle{font:9px var(--mono);fill:var(--muted)}.core-dot{fill:var(--accent)}.map-labels{font:8px var(--mono);fill:var(--subtle);letter-spacing:1px}.lab-bottom{height:47px;border-top:1px solid var(--line);font-size:8px;letter-spacing:.6px}.lab-bottom>span:first-child{display:flex;align-items:center;gap:8px}.lab-bottom>span:last-child{font-size:19px;color:var(--accent)}.focus-strip{display:grid;grid-template-columns:repeat(4,1fr);padding-top:23px;padding-bottom:23px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.focus-strip>div{display:flex;gap:13px;align-items:center;font-size:11px;justify-content:center;border-right:1px solid var(--line)}.focus-strip>div:first-child{justify-content:flex-start}.focus-strip>div:last-child{justify-content:flex-end;border:0}.focus-strip span{font:9px var(--mono);color:var(--subtle)}.section{padding-top:91px;padding-bottom:91px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:42px}h2{font-size:40px;letter-spacing:-1.7px;font-weight:500;line-height:1.17}h2>span{color:var(--muted)}.section-heading .eyebrow,.career-heading .eyebrow,.contact-section .eyebrow{margin-bottom:20px}.section-heading>p{max-width:356px;font-size:13px;color:var(--muted);line-height:1.9;padding-bottom:3px}.expertise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}.expertise{padding:24px 23px 26px;border-right:1px solid var(--line)}.expertise:last-child{border:0}.area-index{font:8px var(--mono);letter-spacing:1px;color:var(--subtle)}.expertise>svg{height:30px;width:30px;stroke:var(--accent);stroke-width:1.3;fill:none;margin:31px 0 24px}[data-theme=light] .expertise>svg{stroke:#5c7c35}.expertise h3{font-weight:500;font-size:17px;line-height:1.35;letter-spacing:-.4px;max-width:190px;margin-bottom:13px}.expertise p{font-size:11.5px;line-height:1.85;color:var(--muted);min-height:107px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags span{font:9px/1.4 var(--mono);color:var(--muted);border:1px solid var(--line);padding:5px 7px;border-radius:3px}.expertise .tags{margin-top:20px}.projects-section{background:var(--surface-alt);border-block:1px solid var(--line)}.project-toolbar{display:flex;justify-content:space-between;align-items:center;margin:2px 0 28px;gap:20px}.filters{display:flex;gap:5px;flex-wrap:wrap}.filter{background:transparent;border:1px solid transparent;border-radius:4px;padding:9px 13px;font-size:11px;color:var(--muted)}.filter:hover{color:var(--text);background:var(--line)}.filter.active{border-color:var(--line);background:var(--surface);color:var(--text)}.filter span{font:8px var(--mono);color:var(--subtle);padding-left:8px}.project-count{font:9px var(--mono);color:var(--subtle)}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.project-card{background:var(--bg);border:1px solid var(--line);border-radius:7px;overflow:hidden;transition:border-color .2s}.project-card:hover{border-color:var(--subtle)}.project-card[hidden]{display:none}.project-art{height:225px;border-bottom:1px solid var(--line);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.art-label{position:absolute;top:18px;left:21px;font:8px var(--mono);letter-spacing:1.3px;color:var(--muted)}.art-foot{position:absolute;bottom:16px;left:21px;font:7px var(--mono);letter-spacing:1.7px;color:var(--muted)}.art-infra{background:var(--art);background-image:radial-gradient(var(--line) .7px,transparent .7px);background-size:17px 17px}.server-stack{width:258px;transform:rotate(-7deg);display:flex;flex-direction:column;gap:9px;margin-top:10px}.server-stack>div{height:35px;border:1px solid var(--subtle);background:var(--surface);border-radius:4px;box-shadow:5px 6px 0 var(--bg);display:flex;gap:4px;align-items:center;padding:0 12px}.server-stack i{width:2px;height:11px;background:var(--subtle)}.server-stack span{font:8px var(--mono);letter-spacing:1px;margin-left:14px}.server-stack b{color:var(--accent);font-size:8px;margin-left:auto;font-weight:400}.art-web{background:var(--surface);background-image:linear-gradient(120deg,transparent 35%,var(--line) 35.2%,transparent 35.4%,transparent 63%,var(--line) 63.2%,transparent 63.4%)}.browser-art{width:242px;transform:translateY(21px) rotate(6deg);background:var(--bg);border:1px solid var(--subtle);border-radius:6px;overflow:hidden;box-shadow:9px 10px 0 var(--surface-alt)}.browser-bar{height:22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:4px;padding:0 9px}.browser-bar i{height:3px;width:3px;border-radius:50%;background:var(--subtle)}.browser-bar span{font:6px var(--mono);margin-left:20px;color:var(--muted)}.browser-content{padding:16px 18px}.mock-title{width:95px;height:9px;background:var(--text);opacity:.85;margin-bottom:9px}.mock-line{height:3px;width:142px;background:var(--subtle);margin:5px 0}.mock-line.short{width:116px}.mock-button{height:10px;width:40px;background:var(--accent);margin-top:10px}.mock-grid{display:flex;gap:7px;margin-top:18px}.mock-grid>b{height:36px;flex:1;background:var(--line);border-radius:2px}.art-security{background:var(--surface);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:38px 38px}.radar{width:175px;height:175px;position:relative;border-radius:50%;background:var(--surface);border:1px solid var(--subtle);opacity:.9}.radar>div{border:1px solid var(--line);position:absolute;inset:24px;border-radius:50%}.radar>div:nth-child(2){inset:48px}.radar>div:nth-child(3){inset:70px}.radar-axis{position:absolute;width:1px;height:100%;background:var(--line);left:50%}.radar-axis:after{content:"";position:absolute;height:1px;width:175px;background:var(--line);left:-87px;top:50%}.radar-sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 240deg,transparent 0deg,transparent 270deg,color-mix(in srgb,var(--accent) 25%,transparent) 358deg,var(--accent) 360deg)}.radar-point{position:absolute;background:var(--accent);width:5px;height:5px;border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent)}.point-one{top:40px;left:109px}.point-two{top:101px;left:36px}.radar b{position:absolute;inset:0;display:grid;place-items:center;font-size:16px;color:var(--accent);font-weight:400}.art-code{background:var(--art)}.code-art{font:11px/2 var(--mono);color:var(--text);margin-top:14px;padding:8px 17px;background:var(--surface);border:1px solid var(--line);border-radius:5px;transform:rotate(-3deg)}.code-art>span{display:block;white-space:pre}.code-art em{font-style:normal;color:var(--subtle);margin-right:15px;font-size:8px}.code-art b{font-weight:400;color:var(--accent)}[data-theme=light] .code-art b{color:#4c692b}.project-body{padding:25px 27px 20px}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font:8px var(--mono);letter-spacing:1px;color:var(--subtle);margin-bottom:17px}.project-meta .project-status{font-size:8px;letter-spacing:0;background:var(--surface);padding:5px 7px;border-radius:3px;color:var(--muted)}.project-body h3{font-size:21px;letter-spacing:-.6px;font-weight:500;margin-bottom:12px}.project-body>p{font-size:12px;color:var(--muted);line-height:1.8;max-width:430px;margin-bottom:20px}.project-link{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-top:1px solid var(--line);background:none;padding:14px 0 0;margin-top:22px;font-size:11px}.project-link span{font-size:19px;color:var(--accent)}[data-theme=light] .project-link span{color:#54712d}.project-link:hover{color:var(--muted)}.learning-note{display:flex;align-items:center;gap:24px;padding:26px 0 0;margin-top:30px;border-top:1px solid var(--line)}.learning-icon{color:var(--accent);font-size:29px}.learning-note h3{font-size:13px;font-weight:500;margin-bottom:7px}.learning-note p{color:var(--muted);font-size:11px;line-height:1.8;max-width:690px}.outline-badge{margin-left:auto;font:8px var(--mono);padding:6px 9px;border:1px solid var(--line);border-radius:3px;white-space:nowrap;color:var(--muted)}.career-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}.career-heading>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.9;max-width:315px;margin-top:23px}.print-button{margin-top:25px;font-size:11px;border-bottom:1px solid var(--line);padding-bottom:12px}.small-heading{font:9px var(--mono);letter-spacing:1.7px;color:var(--muted);margin:6px 0 32px}.timeline{margin:0 0 0 4px;padding:0;list-style:none}.timeline li{position:relative;border-left:1px solid var(--line);padding:0 0 33px 27px}.timeline li:last-child{padding-bottom:0}.timeline-dot{position:absolute;top:5px;left:-4px;width:7px;height:7px;border-radius:50%;background:var(--subtle);box-shadow:0 0 0 5px var(--bg)}.timeline-dot.current{background:var(--accent)}[data-theme=light] .timeline-dot.current{background:#638d36}.timeline-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.timeline h4{font-size:23px;font-weight:500;letter-spacing:-.6px}.current-badge{font:8px var(--mono);padding:4px 8px;color:var(--accent);background:var(--art);border-radius:3px}[data-theme=light] .current-badge{color:#3b561d}.muted-label{font:8px var(--mono);color:var(--subtle)}.timeline .position{font-size:12px;margin:9px 0;color:var(--text)}.timeline p:not(.position){font-size:11px;line-height:1.9;color:var(--muted)}.education-label{margin-top:47px;margin-bottom:12px}.education-row{display:flex;gap:22px;align-items:flex-start;padding:22px 0;border-bottom:1px solid var(--line)}.year{font:10px var(--mono);color:var(--subtle);padding-top:3px}.education-row h4{font-size:13px;font-weight:500;line-height:1.6}.education-row p{font-size:11px;color:var(--muted);margin:5px 0}.education-row div>span{font:9px var(--mono);color:var(--subtle)}.education-symbol{margin-left:auto;color:var(--muted)}.cisco-details{border:1px solid var(--line);border-radius:5px;margin-top:24px;padding:18px 20px}.cisco-details summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer}.cisco-details summary::-webkit-details-marker{display:none}.cisco-label{display:block;font:8px var(--mono);color:var(--subtle);letter-spacing:1px;margin-bottom:9px}.cisco-details strong{display:block;font-size:11px;font-weight:500;line-height:1.7}.details-plus{color:var(--accent);font-size:20px;transition:transform .2s}.cisco-details[open] .details-plus{transform:rotate(45deg)}.cisco-details ul{font-size:11px;color:var(--muted);padding-left:16px;line-height:2}.cisco-details>p{font-size:10px;color:var(--subtle)}.contact-section{padding:75px 0 77px;background:var(--surface);border-block:1px solid var(--line)}.contact-wrap{display:flex;justify-content:space-between;align-items:center;gap:60px}.contact-section h2{font-size:65px;letter-spacing:-3px;line-height:1.02}.contact-section h2>span{color:var(--accent)}[data-theme=light] .contact-section h2>span{color:#597733}.contact-section p:not(.eyebrow){font-size:12px;line-height:1.9;color:var(--muted);margin-top:23px}.contact-actions{width:322px}.contact-actions .button{width:100%;justify-content:space-between;padding:16px 20px;min-height:54px}.contact-link{display:flex;align-items:center;justify-content:space-between;padding:20px 2px;border-bottom:1px solid var(--line);font-size:12px}.contact-link:hover{color:var(--accent)}[data-theme=light] .contact-link:hover{color:#4c6d26}.email-address{font:10px var(--mono);color:var(--muted);display:block;margin-top:18px}.email-address:hover{color:var(--text)}.footer{display:flex;align-items:center;gap:25px;min-height:109px}.footer .monogram{font-size:28px;letter-spacing:-3px}.footer>p{font-size:9px;color:var(--subtle)}.footer-note{font:8px var(--mono);color:var(--subtle);margin-left:auto}.back-top{font-size:9px;margin-left:14px}.back-top>span{margin-left:11px}.back-top:hover{color:var(--accent)}dialog{width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 50px);padding:28px 34px 34px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:10px;box-shadow:0 25px 100px #0007}dialog::backdrop{background:#020602bf;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.dialog-close{font-size:25px;line-height:1}.dialog-status{font:10px var(--mono);color:var(--muted);margin-bottom:15px}dialog h2{font-size:31px;letter-spacing:-1px;margin-bottom:17px}#dialog-intro{font-size:13px;line-height:1.9;color:var(--muted)}#dialog-content{margin:25px 0}#dialog-content h3{font-size:13px;font-weight:600;margin-bottom:10px}#dialog-content ul{padding-left:18px;margin:0;color:var(--muted);font-size:12px;line-height:1.9}#dialog-content .project-detail-note{padding:14px 17px;background:var(--surface);border-left:2px solid var(--accent);font-size:11px;line-height:1.8;color:var(--muted);margin-top:20px}.button.secondary{background:var(--surface);border:1px solid var(--line);color:var(--text);margin-top:25px;font-size:11px}.button.secondary:hover{background:var(--line)}
@keyframes signal{to{stroke-dashoffset:-330}}
@media(min-width:1500px){.hero{padding-top:102px;padding-bottom:91px}}
@media(max-width:1050px){.container{padding-left:32px;padding-right:32px}.nav-wrap{gap:20px}nav{gap:20px}.hero{gap:28px;padding-top:65px}.hero h1{font-size:61px;letter-spacing:-3.8px}.hero .eyebrow{font-size:8px}.hero-role{font-size:16px}.hero-description{font-size:13px}.hero-actions{gap:18px}.hero-actions .button{font-size:11px;padding:12px 15px;gap:18px}.section-heading{gap:40px}h2{font-size:35px}.expertise{padding:22px 18px}.expertise p{min-height:148px}.expertise h3{font-size:16px}.career-section{gap:55px}.project-body{padding:23px}.project-body h3{font-size:19px}.project-meta{letter-spacing:.4px}.footer{gap:18px}.footer-note{font-size:7px}}
@media(max-width:780px){.brand-name{display:none}.nav-wrap{height:77px}.hero{grid-template-columns:1fr 1fr;gap:23px;padding-top:50px;padding-bottom:45px}.hero h1{font-size:47px;letter-spacing:-3px}.hero-role{font-size:14px;max-width:250px}.hero-role>span{display:block;margin-top:5px}.hero-description{font-size:12px;line-height:1.8}.hero .eyebrow{font-size:7px;letter-spacing:.7px}.hero-actions{gap:12px;flex-wrap:wrap}.hero-actions .button{font-size:10px;gap:12px}.hero-actions .text-link{font-size:10px}.hero-caption{font-size:9px;margin-top:23px}.lab-top,.lab-bottom{margin-inline:13px;font-size:7px;letter-spacing:.4px}.lab-top{height:43px}.lab-bottom{height:40px}.focus-strip>div{font-size:9px;gap:7px}.section{padding-top:67px;padding-bottom:67px}.section-heading{gap:32px;align-items:flex-start}.section-heading>p{font-size:11px;max-width:260px;margin-top:31px}h2{font-size:29px;letter-spacing:-1px}.expertise-grid{grid-template-columns:repeat(2,1fr)}.expertise:nth-child(2){border-right:0}.expertise:nth-child(-n+2){border-bottom:1px solid var(--line)}.expertise{padding:23px}.expertise h3{font-size:18px;max-width:220px}.expertise p{min-height:68px}.project-art{height:200px}.project-grid{gap:18px}.project-body{padding:20px}.project-meta{flex-wrap:wrap;gap:10px}.project-body h3{font-size:18px;line-height:1.3}.project-body p{font-size:11px}.code-art{font-size:9px;padding:9px}.code-art em{margin-right:10px}.browser-art{width:210px}.server-stack{width:217px}.project-toolbar{gap:8px}.project-count{font-size:8px}.filter{font-size:10px;padding:8px 9px}.learning-note{gap:18px;align-items:flex-start}.learning-note .outline-badge{display:none}.career-section{grid-template-columns:1fr;gap:37px}.career-heading>p:not(.eyebrow){max-width:480px}.career-heading{position:relative}.career-heading .print-button{position:absolute;right:0;bottom:0;max-width:155px;text-align:left;line-height:1.7}.career-heading>p:not(.eyebrow){padding-right:180px}.career-content{max-width:none}.contact-section h2{font-size:53px}.contact-wrap{gap:35px}.contact-actions{width:280px}.footer-note{display:none}.back-top{margin-left:auto}}
@media(max-width:580px){.container{padding-inline:22px}.nav-wrap{height:74px;gap:12px}.brand-name{display:block;font-size:9px}.brand-name>span{font-size:8px}.brand{gap:14px}.monogram{font-size:33px}.nav-tools{margin-left:auto}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:5px}.menu-toggle>span{width:15px;height:1px;background:var(--text);transition:transform .2s}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-3px) rotate(-45deg)}.header nav{position:absolute;top:73px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:19px 22px 24px;display:none;flex-direction:column;align-items:stretch;gap:0;font-size:14px}.header nav.open{display:flex}.header nav a{padding:14px 12px}.nav-contact{margin-top:10px}.hero{display:flex;flex-direction:column;align-items:stretch;gap:30px;padding-top:40px;padding-bottom:36px}.hero h1{font-size:59px;letter-spacing:-3.5px;margin:23px 0}.hero .eyebrow{font-size:7px;letter-spacing:.8px;gap:7px}.hero-role{font-size:16px;max-width:none}.hero-role>span{display:inline;margin:0}.hero-description{font-size:13px;line-height:1.9;max-width:400px;margin:19px 0 25px}.hero-actions{gap:23px}.hero-actions .button{font-size:11px;padding:12px 17px;gap:24px}.hero-actions .text-link{font-size:11px}.hero-caption{font-size:10px;margin-top:25px}.lab-visual{transform:none}.lab-map{max-height:305px}.lab-top,.lab-bottom{margin-inline:17px;font-size:8px}.lab-top{height:44px}.lab-bottom{height:41px}.focus-strip{grid-template-columns:1fr 1fr;row-gap:19px;padding-block:22px}.focus-strip>div{font-size:10px;gap:10px}.focus-strip>div:nth-child(odd){justify-content:flex-start;border-right:1px solid var(--line)}.focus-strip>div:nth-child(even){justify-content:flex-start;border:0;padding-left:20px}.section{padding-top:55px;padding-bottom:55px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{font-size:12px;line-height:1.9;max-width:400px;margin-top:22px}.eyebrow{font-size:9px;letter-spacing:1.2px}.section-heading .eyebrow,.career-heading .eyebrow{margin-bottom:16px}h2{font-size:33px;letter-spacing:-1.3px}.expertise-grid{grid-template-columns:1fr}.expertise{padding:25px}.expertise:not(:last-child){border-right:0;border-bottom:1px solid var(--line)}.expertise>svg{margin:25px 0 20px}.expertise h3{font-size:20px;max-width:none}.expertise p{font-size:12px;min-height:0;max-width:none}.area-index{font-size:9px}.expertise .tags{margin-top:18px}.tags span{font-size:9px}.project-toolbar{margin:0 0 24px;display:block}.project-count{display:block;margin-top:12px;padding-left:1px}.filters{gap:3px}.filter{font-size:10px;padding:8px 9px}.filter span{padding-left:5px}.project-grid{grid-template-columns:1fr;gap:24px}.project-art{height:223px}.server-stack{width:249px}.browser-art{width:244px}.code-art{font-size:10px;padding:10px 12px}.project-body{padding:23px}.project-meta{font-size:8px;flex-wrap:nowrap}.project-body h3{font-size:22px;line-height:1.2;letter-spacing:-.6px}.project-body p{font-size:12px}.project-link{font-size:12px;padding-top:16px}.learning-note{gap:15px;margin-top:28px}.learning-note h3{font-size:13px;line-height:1.6}.learning-note p{font-size:11px}.learning-icon{font-size:24px}.career-section{gap:35px}.career-heading .print-button{position:static;max-width:none;margin-top:18px;font-size:11px}.career-heading>p:not(.eyebrow){padding:0;margin-top:21px;font-size:12px}.timeline li{padding-left:22px}.timeline h4{font-size:24px}.timeline p:not(.position){font-size:12px}.timeline .position{font-size:13px}.education-row{gap:18px}.education-row h4{font-size:13px;line-height:1.5}.education-label{margin-top:38px}.cisco-details{padding:17px}.cisco-details strong{font-size:11px}.contact-section{padding-block:52px}.contact-wrap{display:block}.contact-section h2{font-size:60px;letter-spacing:-2.9px}.contact-section .eyebrow{margin-bottom:22px}.contact-section p:not(.eyebrow){font-size:13px;margin-top:24px}.contact-actions{width:100%;margin-top:30px}.email-address{font-size:10px}.footer{padding-block:25px;gap:15px;flex-wrap:wrap;min-height:110px}.footer>p{font-size:8px}.footer .monogram{font-size:27px}.back-top{font-size:8px}.back-top>span{margin-left:4px}dialog{padding:22px}dialog h2{font-size:27px}.dialog-top .eyebrow{font-size:8px}.dialog-top{gap:10px}html{scroll-padding-top:94px}}
@media(max-width:370px){.container{padding-inline:18px}.hero h1{font-size:52px}.hero-role{font-size:14px}.hero .eyebrow{font-size:6.5px;letter-spacing:.5px}.hero-actions{gap:15px}.hero-actions .button{gap:15px;padding-inline:14px}.filter{padding:8px 7px;font-size:9px}.project-body{padding:19px}.project-body h3{font-size:20px}.project-meta{font-size:7px}.brand-name{font-size:8px}.brand-name>span{font-size:7px}.hero-caption{font-size:9px}.contact-section h2{font-size:53px}.footer{gap:13px}.footer>p{font-size:7px}.back-top{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{@page{size:A4;margin:14mm}:root,:root[data-theme=dark],:root[data-theme=light]{--bg:#fff;--surface:#fff;--surface-alt:#fff;--text:#111;--muted:#444;--subtle:#555;--line:#ddd;--accent:#38551d;--art:#fff;color-scheme:light}body{font-size:10pt;line-height:1.5}.header,.lab-visual,.focus-strip,.hero-actions,.hero-caption,.filters,.project-toolbar,.project-art,.project-link,.print-button,.learning-icon,.footer,.theme-toggle,.menu-toggle,dialog,.skip-link,.contact-actions .button,.contact-link{display:none!important}.container{width:100%;max-width:none;padding-left:0;padding-right:0}.hero{display:block;padding:0 0 7mm;border-bottom:1px solid #ddd}.hero h1{font-size:33pt;letter-spacing:-1.5px;margin:4mm 0}.hero h1 br{display:none}.hero h1 br:after{content:" "}.hero-role{font-size:12pt}.hero-role>span{display:inline}.hero-description{font-size:10pt;max-width:none;margin:3mm 0 0}.eyebrow,.hero .eyebrow{font-size:7pt;letter-spacing:.5px}.section{padding:7mm 0}.section-heading{display:block;margin-bottom:5mm}.section-heading>p{font-size:9pt;max-width:none;margin-top:3mm}.section-heading .eyebrow,.career-heading .eyebrow{margin-bottom:2mm}h2{font-size:20pt;letter-spacing:-.5px}h2 br{display:none}.expertise-grid{grid-template-columns:repeat(2,1fr);border:0;gap:4mm}.expertise{padding:3mm;border:1px solid #ddd!important;break-inside:avoid}.expertise svg{display:none}.expertise h3{max-width:none;font-size:11pt;margin:3mm 0}.expertise p{min-height:0;font-size:9pt}.expertise .tags{margin-top:3mm}.tags span{font-size:7pt;padding:1mm}.projects-section{border-top:1px solid #ddd}.project-grid{grid-template-columns:1fr 1fr;gap:4mm}.project-card,.project-card[hidden]{display:block;break-inside:avoid}.project-body{padding:4mm}.project-meta{font-size:6.5pt;gap:3mm;flex-wrap:wrap;margin-bottom:3mm}.project-body h3{font-size:12pt;margin-bottom:3mm}.project-body>p{font-size:9pt;margin-bottom:3mm}.learning-note{padding-top:4mm;margin-top:5mm}.learning-note p{font-size:9pt}.learning-note h3{font-size:10pt}.outline-badge{display:none}.career-section{display:block;break-before:page}.career-heading>p:not(.eyebrow){font-size:9pt;max-width:none;padding:0;margin-top:3mm}.career-content{margin-top:6mm}.small-heading{font-size:8pt;margin:4mm 0}.timeline li{break-inside:avoid;padding-bottom:5mm}.timeline h4{font-size:16pt}.timeline p:not(.position){font-size:9pt}.timeline .position{font-size:10pt}.education-label{margin-top:7mm}.education-row{padding:4mm 0;break-inside:avoid}.education-row h4{font-size:10pt}.education-row p{font-size:9pt}.education-row div>span,.year{font-size:8pt}.cisco-details{padding:4mm;break-inside:avoid;margin-top:5mm}.cisco-details strong{font-size:10pt}.cisco-details ul{font-size:9pt}.contact-section{padding:6mm 0 0;margin-top:5mm;break-inside:avoid}.contact-wrap{display:block}.contact-section .eyebrow{margin-bottom:2mm}.contact-section h2{font-size:19pt;letter-spacing:-.5px}.contact-section h2 br{display:none}.contact-section p:not(.eyebrow){font-size:9pt;margin-top:2mm}.contact-actions{margin-top:3mm;width:auto}.email-address{font-size:10pt;margin:0}.email-address:after{content:" · linkedin.com/in/álvaroruano";display:block;margin-top:2mm}a{text-decoration:none}.details-plus{display:none}}

[data-theme=light] .map-core>rect{stroke:#769347}[data-theme=light] .map-core path,[data-theme=light] .map-connections .signal{stroke:#638139}[data-theme=light] .core-dot,[data-theme=light] .radar-point{fill:#587930}[data-theme=light] .lab-bottom>span:last-child,[data-theme=light] .details-plus,[data-theme=light] .learning-icon{color:#587930}[data-theme=light] .tiny-square{border-color:#587930}
