@font-face{font-family:Bodoni Moda;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bodoni-moda-latin-500-normal-CtAcMono.woff2)format("woff2"),url(/assets/bodoni-moda-latin-500-normal-B12im5S-.woff)format("woff")}@font-face{font-family:Bodoni Moda;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/bodoni-moda-latin-500-italic-CpCRhJ5E.woff2)format("woff2"),url(/assets/bodoni-moda-latin-500-italic-B93mrTlm.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}:root{font-synthesis:none;color:#f1f6fb;--paper:#0d1726;--ink:#f1f6fb;--blue:#9ddfe8;--muted:#a8b7c9;--line:#30445c;--surface:#17263b;--body:#c7d3e2;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--serif:"Bodoni Moda",Georgia,serif;background:#0d1726;font-family:Inter,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{-webkit-font-smoothing:antialiased;min-width:320px;margin:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}svg{flex-shrink:0}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:5px}button:hover,a:hover{color:var(--blue)}.page-width{width:calc(100% - 104px);max-width:1376px;margin-inline:auto}.skip-link{background:var(--blue);color:var(--paper);z-index:99;padding:12px 20px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:15px}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:30px;height:75px;display:flex}.brand{font:500 23px/1 var(--serif);letter-spacing:-1.35px;white-space:nowrap}.main-nav{gap:25px;font-size:12px;display:flex}.header-actions{align-items:center;gap:23px;display:flex}.language-switch{border:1px solid var(--line);border-radius:7px;padding:3px 6px;display:flex}.language-switch button{color:var(--muted);min-width:30px;padding:4px;font-size:10px}.language-switch button+button{border-left:1px solid var(--line)}.language-switch button[aria-pressed=true]{color:var(--blue);background:var(--surface);border-radius:4px}.button{border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:16px;min-height:44px;padding:12px 20px;font-size:12px;font-weight:500;line-height:1.25;display:inline-flex}.button.primary{background:var(--blue);color:var(--paper)}.button.primary:hover{background:#c3edf3}.cv-button{min-height:42px;padding-inline:20px;font-size:12px}.intro{z-index:1;grid-template-columns:minmax(0,1fr) 290px;gap:40px;padding-top:39px;padding-bottom:10px;display:grid;position:relative}.intro h1{font:500 clamp(85px,10.75vw,166px)/.91 var(--serif);letter-spacing:-.065em;white-space:nowrap;margin:0}.intro h1 em{color:var(--blue);letter-spacing:-.065em;font-size:1.02em;font-weight:500}.intro-aside{align-self:start;padding-top:48px}.intro-stack{letter-spacing:-.4px;white-space:nowrap;margin:0;font-size:16px;line-height:1.5}.location{color:var(--muted);margin:1px 0 0;font-size:15px}.intro-actions{align-items:center;gap:23px;margin-top:36px;display:flex}.contact-link{white-space:nowrap;align-items:center;gap:12px;font-size:12px;display:flex}.gallery-section{max-width:1480px;margin:9px auto 0}.gallery-viewport,.gallery-placeholder{touch-action:pan-y;width:100%;height:clamp(430px,41vw,607px);position:relative}.gallery-viewport:focus-visible{outline-offset:-10px}.canvas-host{opacity:0;transition:opacity .35s;position:absolute;inset:0}.is-ready .canvas-host{opacity:1}.canvas-host canvas{cursor:url(/cursors/midnight-pointer.svg) 3 3,ew-resize;touch-action:pan-y;width:100%;height:100%;display:block}.canvas-host canvas.is-dragging{cursor:url(/cursors/midnight-pointer.svg) 3 3,ew-resize}.gallery-fallback,.gallery-placeholder img{object-fit:cover;border-radius:7px;width:60%;height:80%;position:absolute;top:8%;left:5%;box-shadow:0 18px 35px #00050c40}.is-ready .gallery-fallback{visibility:hidden}.gallery-loading{color:var(--muted);font-size:11px;position:absolute;bottom:12px;left:52px}.gallery-caption{min-height:39px;color:var(--muted);justify-content:space-between;align-items:center;font-size:10px;display:flex}.gallery-controls{align-items:center;gap:4px;display:flex}.gallery-controls button{min-width:32px;min-height:40px;color:var(--muted);justify-content:center;align-items:center;padding:6px;display:inline-flex}.gallery-controls button:hover{color:var(--blue)}.gallery-controls>span{margin-right:6px;padding-left:8px;font-size:10px}.project-index{border-bottom:1px solid var(--line);align-items:stretch;gap:52px;margin-top:27px;display:flex}.project-index button{text-align:left;white-space:nowrap;min-height:54px;padding:15px 0 14px;font-size:12px;position:relative}.project-index button.selected{color:var(--blue);font-weight:600}.project-index button.selected:after{content:"";background:var(--blue);height:2px;position:absolute;bottom:-1px;left:0;right:0}.featured-case{grid-template-columns:minmax(0,.94fr) minmax(0,1.16fr);align-items:start;gap:48px;padding-top:57px;padding-bottom:85px;scroll-margin-top:30px;display:grid}.case-copy{padding-top:7px}.case-counter{color:var(--blue);font-size:11px;font-weight:500}.case-counter span{color:var(--muted);margin-left:4px;font-weight:400}.featured-case h2{font:500 clamp(42px,5.6vw,82px)/1.04 var(--serif);letter-spacing:-3px;margin:20px 0 10px}.case-subtitle{font:500 clamp(22px,2.5vw,35px)/1.25 var(--serif);letter-spacing:-.9px;max-width:500px;margin:0}.case-stack{margin:27px 0 0;font-size:13px;line-height:1.7}.case-note{color:var(--muted);margin:14px 0 0;font-size:11px}.text-link{border-bottom:1px solid var(--blue);color:var(--blue);align-items:center;gap:20px;min-height:34px;margin-top:33px;padding:6px 0;font-size:13px;display:inline-flex}.case-preview{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:12px;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 16px 24px #00050c40}.case-preview img{aspect-ratio:1.5;object-fit:cover;object-position:top;width:100%;height:auto}.preview-action{background:var(--paper);opacity:0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:opacity .2s;display:flex;position:absolute;bottom:15px;right:15px}.case-preview:hover .preview-action,.case-preview:focus-visible .preview-action{opacity:1}.profile-section,.contact-section{border-top:1px solid var(--line);grid-template-columns:.94fr 1.16fr;gap:48px;padding-top:55px;padding-bottom:65px;display:grid}.profile-section h2,.contact-section h2{font:500 43px/1.13 var(--serif);letter-spacing:-1.5px;max-width:410px;margin:0}.profile-section p{color:var(--body);max-width:620px;margin:0;font-size:15px;line-height:1.9}.profile-section .availability{color:var(--ink);margin-top:18px;font-size:12px}.profile-section .text-link{margin-top:24px}.contact-section p{color:var(--muted);max-width:360px;margin:15px 0 0;font-size:13px;line-height:1.8}.email-link{letter-spacing:-.5px;border-bottom:1px solid var(--line);word-break:break-word;justify-content:space-between;align-items:center;gap:15px;padding-bottom:15px;font-size:clamp(15px,1.55vw,23px);display:flex}.social-links{gap:23px;margin-top:24px;display:flex}.social-links a{align-items:center;gap:8px;font-size:12px;display:flex}footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:25px;padding-block:25px;font-size:10px;display:flex}.case-dialog{border:1px solid var(--line);background:var(--paper);width:calc(100% - 48px);max-width:920px;max-height:89dvh;color:var(--ink);border-radius:10px;padding:0;box-shadow:0 30px 120px #0003}.case-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#050b14c9}.dialog-inner{padding:43px;position:relative}.dialog-close{justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:absolute;top:18px;right:18px}.dialog-kicker{color:var(--muted);margin:0;font-size:11px}.case-dialog h2{font:500 60px/1.12 var(--serif);letter-spacing:-2.2px;margin:18px 0 12px}.dialog-summary{font:500 25px/1.4 var(--serif);margin:0 0 28px}.dialog-capture{border:1px solid var(--line);border-radius:5px;width:100%}.case-dialog .capture-label{color:var(--muted);margin:10px 0 27px;font-size:10px}.case-dialog h3{font:500 28px/1.25 var(--serif);margin:20px 0 13px}.dialog-inner>p:not(.dialog-summary):not(.dialog-kicker):not(.capture-label){max-width:680px;color:var(--body);font-size:14px;line-height:1.85}.dialog-inner .dialog-stack{font-weight:500}.dialog-inner>.button{margin-top:20px}@media (width>=1480px){.intro h1{font-size:166px}.gallery-section{margin-top:15px}}@media (width<=1100px){.site-header{gap:18px}.brand{font-size:21px}.main-nav{gap:19px}.header-actions{gap:16px}.intro{grid-template-columns:1fr 260px;gap:25px}.intro-stack{font-size:14px}.intro-actions{gap:15px}.intro-aside{padding-top:38px}.intro-actions .button{padding-inline:15px}.project-index{gap:43px}.case-subtitle{font-size:26px}}@media (width<=920px){.page-width{width:calc(100% - 64px)}.brand{font-size:19px}.main-nav{gap:15px;font-size:11px}.header-actions{gap:12px}.cv-button{padding-inline:12px;font-size:11px}.intro{grid-template-columns:1fr 230px;gap:18px;padding-top:40px}.intro h1{font-size:10.8vw}.intro-aside{padding-top:24px}.intro-stack{letter-spacing:-.3px;font-size:12px}.location{font-size:13px}.intro-actions{gap:16px;margin-top:24px}.intro-actions .button{padding:12px;font-size:10px}.contact-link{gap:7px;font-size:11px}.gallery-viewport,.gallery-placeholder{height:43vw;min-height:360px}.featured-case,.profile-section,.contact-section,.project-index{gap:32px}.project-index button{font-size:11px}.featured-case h2{font-size:48px}.case-subtitle{font-size:23px}.case-stack{font-size:12px}.profile-section h2,.contact-section h2{font-size:36px}}@media (width<=760px){html{scroll-padding-top:20px}.page-width{width:calc(100% - 40px)}.site-header{grid-template-columns:1fr auto;gap:14px 8px;height:auto;min-height:112px;padding-block:18px 14px;display:grid}.brand{letter-spacing:-1.3px;grid-column:1/-1;font-size:23px}.main-nav{gap:13px;font-size:10px}.header-actions{gap:9px}.language-switch{padding:3px}.language-switch button{min-width:29px;min-height:30px;font-size:10px}.cv-button{gap:8px;min-height:38px;padding-inline:12px;font-size:10px}.cv-button svg{width:13px}.intro{padding-top:32px;padding-bottom:8px;display:block}.intro h1{letter-spacing:-.055em;font-size:14.6vw;line-height:.94}.intro h1 em{letter-spacing:-.055em}.intro-aside{padding-top:25px}.intro-stack{white-space:normal;font-size:14px}.location{margin-top:4px;font-size:13px}.intro-actions{gap:25px;margin-top:20px}.intro-actions .button{min-height:44px;padding-inline:19px;font-size:12px}.contact-link{gap:12px;font-size:12px}.gallery-section{margin-top:7px}.gallery-viewport,.gallery-placeholder{height:clamp(300px,85vw,520px);min-height:0}.gallery-fallback,.gallery-placeholder img{width:80%;height:78%;top:8%;left:7%}.gallery-caption{align-items:center;gap:9px;min-height:44px;font-size:9px}.gallery-controls{gap:0}.gallery-controls button{min-width:32px;min-height:44px}.gallery-controls>span{max-width:77px;margin-right:0;padding-left:3px;font-size:9px;line-height:1.4}.gallery-loading{font-size:10px;left:20px}.project-index{grid-template-columns:1fr 1fr;gap:0 20px;margin-top:17px;display:grid}.project-index button{white-space:normal;min-height:48px;padding:12px 0;font-size:11px}.project-index button.selected:after{width:50px;height:2px;right:auto}.featured-case{flex-direction:column;gap:29px;padding-top:37px;padding-bottom:43px;display:flex}.case-copy{padding-top:0}.featured-case h2{letter-spacing:-2px;margin-top:17px;font-size:48px}.case-subtitle{max-width:100%;font-size:25px;line-height:1.3}.case-stack{margin-top:21px;font-size:12px}.case-note{margin-top:10px;font-size:10px}.text-link{min-height:38px;margin-top:24px;font-size:12px}.case-preview{border-radius:9px;width:100%}.case-preview img{aspect-ratio:1.4}.profile-section,.contact-section{padding-top:35px;padding-bottom:39px;display:block}.profile-section h2,.contact-section h2{max-width:310px;margin-bottom:23px;font-size:36px}.profile-section p{font-size:13px}.profile-section .availability{font-size:11px}.contact-section p{margin-bottom:26px;font-size:12px}.email-link{letter-spacing:-.5px;gap:9px;font-size:14px}.email-link svg{width:18px}.social-links{margin-top:22px}.social-links a{min-height:40px}footer{padding-block:20px;font-size:9px;display:block}footer span{display:block}footer span+span{margin-top:7px}.case-dialog{width:calc(100% - 20px);max-height:92dvh}.dialog-inner{padding:40px 23px 28px}.case-dialog h2{letter-spacing:-1.6px;font-size:43px}.dialog-summary{font-size:23px}.dialog-inner>p:not(.dialog-summary):not(.dialog-kicker):not(.capture-label){font-size:12px}.case-dialog .capture-label{font-size:9px}.case-dialog h3{font-size:26px}}@media (width<=370px){.page-width{width:calc(100% - 32px)}.main-nav{gap:9px;font-size:9px}.header-actions{gap:5px}.language-switch button{min-width:26px}.cv-button{padding-inline:8px;font-size:9px}.brand{font-size:21px}.gallery-caption>span{max-width:100px}.gallery-controls>span{max-width:63px}.gallery-controls button{min-width:27px}.gallery-caption{font-size:8px}.email-link{font-size:12px}.featured-case h2{font-size:43px}}.brand:hover{color:var(--ink)}.case-actions{flex-wrap:wrap;align-items:baseline;gap:16px 24px;display:flex}.case-actions>.button{margin-top:24px}.demo-intro{margin-bottom:28px}.demo-intro p{color:var(--body);max-width:680px;margin:16px 0 0;font-size:12px;line-height:1.85}.additional-capture{margin:28px 0 0}.gallery-fallback,.gallery-placeholder img{object-fit:contain;background:var(--surface)}.case-preview img{aspect-ratio:auto;object-fit:contain;height:auto}@media (width<=760px){.main-nav{gap:10px}.header-actions{gap:6px}.cv-button{white-space:nowrap;padding-inline:8px}}@media (width>=761px){.intro h1{font-size:clamp(68px,7.1vw,108px)}.gallery-viewport,.gallery-placeholder{height:clamp(430px,43.5vw,644px)}.project-index{margin-top:14px}.featured-case{padding-top:40px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{body{color:#000!important;background:#fff!important}.canvas-host,.gallery-controls,.project-index,.case-dialog{display:none!important}.gallery-fallback{visibility:visible!important}.profile-section p,.contact-section p,.case-note,.case-stack,footer{color:#000!important}.button.primary{border-color:#000;color:#000!important;background:#fff!important}.page-width{width:100%}.featured-case,.profile-section,.contact-section{break-inside:avoid}}.gallery-viewport{overflow:clip}.gallery-cursor{z-index:3;border:1px solid var(--line);background:var(--paper);width:58px;height:32px;color:var(--blue);pointer-events:none;border-radius:18px;justify-content:space-between;align-items:center;padding:0 10px;transition:width .12s,border-color .12s,background .12s;display:none;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0003}.gallery-cursor.is-pressed{background:var(--surface);border-color:var(--blue);width:50px}.intro-actions>.button{white-space:nowrap;flex-shrink:0}.intro-actions{gap:18px}@media (width>=761px) and (width<=1100px){.intro-actions{gap:16px}.intro-actions>.button{gap:10px;padding-inline:12px}}@media (width>=761px){.featured-case{padding-top:26px;padding-bottom:32px}.profile-section{padding-top:28px;padding-bottom:35px}.featured-case h2{font-size:clamp(40px,4.4vw,60px)}.case-subtitle{font-size:clamp(22px,2.1vw,29px)}.profile-section h2,.contact-section h2{font-size:36px}.site-header{height:64px}.page-width{max-width:1200px}.intro{gap:32px;padding-top:22px;padding-bottom:6px}.intro-aside{padding-top:24px}.intro-actions{margin-top:24px}.gallery-section{max-width:1240px;margin-top:0;position:relative}.gallery-viewport,.gallery-placeholder{height:clamp(280px,25vw,340px);min-height:0}.gallery-caption{pointer-events:none;justify-content:flex-end;min-height:34px;position:absolute;bottom:0;left:0;right:0}.gallery-caption>span,.gallery-controls>span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.gallery-controls{pointer-events:auto}.gallery-controls button{min-width:30px;min-height:32px}.project-index{margin-top:8px}.project-index button{min-height:48px}}@media (hover:hover) and (pointer:fine){html,body,a,button{cursor:url(/cursors/midnight-pointer.svg) 3 3,default}.gallery-viewport.is-ready.has-mouse .gallery-cursor{display:flex}.gallery-viewport.is-ready.has-mouse canvas{cursor:none}}.pointer-halo{z-index:1000;pointer-events:none;opacity:0;width:0;height:0;display:none;position:fixed;top:0;left:0;transform:translate(-100px,-100px)}.pointer-halo span{border:1px solid #9ddfe86b;border-radius:50%;width:28px;height:28px;transition:transform .16s,background-color .16s,border-color .16s;display:block;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.pointer-halo.is-visible{opacity:1;will-change:transform}.pointer-halo.is-action span{background:#9ddfe80a;border-color:#9ddfe8b3;transform:translate(-50%,-50%)scale(1.4)}.pointer-halo.is-pressed span{border-color:var(--blue);transform:translate(-50%,-50%)scale(.75)}@media (hover:hover) and (pointer:fine){.pointer-halo{display:block}.gallery-viewport.is-ready.has-mouse .gallery-cursor{will-change:transform}}@media (prefers-reduced-motion:reduce){.pointer-halo{display:none!important}.gallery-cursor{transition:none}}.depth-backdrop{z-index:0;pointer-events:none;background:radial-gradient(at 93% 17%,#173a4d38,#0000 49%),radial-gradient(at 2% 87%,#172b4638,#0000 54%);position:fixed;inset:0;overflow:hidden}.depth-backdrop canvas{pointer-events:none;width:100%;height:100%;display:block}.site-header,main,footer{z-index:1;position:relative}.horizon-backdrop{z-index:0;pointer-events:none;background:#0d1726;position:fixed;inset:0;overflow:hidden}.horizon-plane{pointer-events:none;transform-origin:80% 40%;position:absolute;inset:-88px}.horizon-plane img{object-fit:cover;object-position:center;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.horizon-near{opacity:.23}.horizon-backdrop[data-motion=on] .horizon-plane{will-change:transform}@media (width<=760px){.horizon-far{opacity:.6}.horizon-far img{object-position:67% top;height:calc(100% + 280px)}.horizon-near{opacity:.1}}@media (prefers-reduced-motion:reduce){.horizon-plane{will-change:auto!important}}.intro-stack{white-space:normal;font-size:15px;line-height:1.55}.intro-specialty{color:var(--body);margin:8px 0;font-size:12px;line-height:1.7}.location{font-size:13px;line-height:1.7}.cv-label-short{display:none}.evidence-list article+article{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.profile-section h3{margin:0 0 9px;font-size:15px;font-weight:600;line-height:1.6}.profile-section .entry-context{color:var(--muted);margin-bottom:9px;font-size:12px}.resume-variants{flex-direction:column;align-items:flex-start;display:flex}.resume-variants .text-link{min-height:44px;margin-top:16px}.profile-section{scroll-margin-top:30px}.profile-resume-links{flex-wrap:wrap;gap:0 24px;display:flex}.intro-aside .location{color:var(--ink);text-shadow:0 1px 5px var(--paper)}@media (width<=760px){.cv-label-full{display:none}.cv-label-short{display:inline}.intro-specialty{font-size:12px}.profile-section h3,.intro-stack{font-size:14px}.intro-aside{padding-top:24px}}@media print{:root{--paper:#fff;--ink:#000;--blue:#000;--muted:#000;--body:#000;--surface:#fff;--line:#999;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.gallery-cursor,.pointer-halo,.depth-backdrop,.horizon-backdrop{display:none!important}}
