@font-face{font-family:ISO;src:url(/fonts/ISOv0.7-Thin.otf) format("opentype");font-weight:100;font-style:normal;font-display:block}@font-face{font-family:ISO;src:url(/fonts/ISOv0.7-Light.otf) format("opentype");font-weight:300;font-style:normal;font-display:block}@font-face{font-family:ISO;src:url(/fonts/ISOv0.7-Regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:ISO;src:url(/fonts/ISOv0.7-RegularItalic.otf) format("opentype");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:ISO;src:url(/fonts/ISOv0.7-Medium.otf) format("opentype");font-weight:500;font-style:normal;font-display:block}@font-face{font-family:ISO;src:url(/fonts/ISOv0.7-Bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:ISO;src:url(/fonts/ISOv0.7-Black.otf) format("opentype");font-weight:900;font-style:normal;font-display:block}:root{--bg: #ffffff;--text: #1a1a1a;--text-muted: #888888;--border: #e0e0e0;--accent: #c1440e;--font: "ISO", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--pad: 2.5rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{font-family:var(--font);background-color:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100vh}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}.split-layout{display:grid;grid-template-columns:1fr 1fr;height:100vh;width:100%}.nav{position:sticky;top:0;z-index:10;background:var(--bg);display:flex;align-items:baseline;justify-content:space-between;margin:0 calc(-1 * var(--pad));padding:var(--pad) var(--pad) 1rem;margin-bottom:1rem;font-size:14px}.nav__name{font-weight:700;color:var(--text)}.nav__info{display:flex;gap:.5rem;color:var(--text-muted);font-weight:400}.nav__info span:first-child:after{content:"|";margin-left:.5rem}.nav__links{display:flex;gap:1.25rem;color:var(--text-muted);font-weight:400}.nav__links a{color:var(--text-muted);transition:color .2s ease}.nav__links a:hover{color:var(--text)}.left-panel{border-right:1px solid var(--border);padding:0 var(--pad) var(--pad);display:flex;flex-direction:column;height:100vh;overflow-y:auto;scrollbar-width:none}.left-panel::-webkit-scrollbar{display:none}.hero-section{margin-bottom:3rem;padding-top:20vh}.hero-label{margin-top:2rem}.hero-label__title{display:flex;align-items:center;gap:.5rem;font-size:14px;font-weight:500;color:var(--text)}.hero-label__years{display:block;font-size:14px;font-weight:400;color:var(--text-muted)}.hero-headline{font-size:clamp(2rem,4vw,3.5rem);font-weight:300;line-height:1.1;color:var(--text);letter-spacing:-.02em}.project-index{margin-bottom:4rem}.project-tabs{display:flex;gap:1.25rem;padding-bottom:.5rem}.project-tab{font-family:ISO,monospace;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);opacity:.4;cursor:pointer;padding-bottom:4px;border-bottom:1px solid transparent;transition:opacity .15s ease}.project-tab:hover{opacity:.6}.project-tab--active{opacity:1;color:var(--text);border-bottom-color:var(--accent)}.project-row{display:grid;grid-template-columns:36px auto 1fr auto;gap:1rem;padding:.4rem 0;border-bottom:1px solid var(--border);cursor:pointer;transition:color .15s ease;color:var(--text-muted);font-size:14px;align-items:baseline}.project-row:first-child{border-top:1px solid var(--border)}.project-row:hover{color:var(--text)}.project-row:hover .project-row__index{color:var(--accent)}.project-row--selected{color:var(--text);font-weight:700}.project-row--selected .project-row__index{color:var(--accent)}.project-row__index{font-variant-numeric:tabular-nums}.project-row__name,.project-row__category{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-row__year{text-align:right;font-variant-numeric:tabular-nums}.section-label{display:flex;align-items:center;gap:.5rem;font-size:14px;font-weight:500;color:var(--text);margin-bottom:1.5rem}.about-section{margin-bottom:4rem;padding-top:2rem;border-top:1px solid var(--border)}.about-headline{font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:500;line-height:1.3;color:var(--text);margin-bottom:1.5rem}.about-text{font-size:14px;line-height:1.7;color:var(--text-muted);margin-bottom:1rem;max-width:48ch}.about-links{display:flex;gap:1.5rem;margin-top:1.5rem;font-size:14px}.about-links a{color:var(--text-muted);transition:color .2s ease}.about-links a:hover{color:var(--text)}.capabilities-section{margin-bottom:4rem;padding-top:2rem;border-top:1px solid var(--border)}.capability{display:flex;gap:1rem;margin-bottom:2rem}.capability__number{font-size:13px;color:var(--accent);font-variant-numeric:tabular-nums;flex-shrink:0;padding-top:2px}.capability__content{flex:1}.capability__title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:.25rem}.capability__description{font-size:14px;line-height:1.6;color:var(--text-muted);margin-bottom:.75rem}.capability__tags{display:flex;flex-wrap:wrap;gap:.4rem}.capability__tag{font-size:12px;color:var(--text-muted);border:1px solid var(--border);padding:.15rem .5rem;border-radius:2px}.experience-section{margin-bottom:4rem;padding-top:2rem;border-top:1px solid var(--border)}.experience-row{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;padding:.4rem 0;border-bottom:1px solid var(--border);font-size:14px;color:var(--text-muted);align-items:baseline}.experience-row:first-of-type{border-top:1px solid var(--border)}.experience-row__role{color:var(--text);font-weight:400}.experience-row__company{color:var(--text-muted)}.experience-row__years{text-align:right;font-variant-numeric:tabular-nums}.left-footer{margin-top:auto;padding-top:2rem;border-top:1px solid var(--border)}.footer-cta{margin-bottom:2rem}.footer-cta__text{display:block;font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:300;color:var(--text);line-height:1.3}.footer-cta__link{display:inline-block;font-size:14px;font-weight:500;color:var(--text);border-bottom:1px solid var(--accent);padding-bottom:1px;margin-top:.75rem;transition:color .2s ease}.footer-cta__link:hover{color:var(--text);opacity:.6}.footer-meta{display:flex;justify-content:space-between;font-size:13px;color:var(--text-muted);padding-bottom:1rem}.right-panel{position:relative;height:100vh;overflow:hidden;padding:var(--pad)}.right-panel:has(.capture-area){padding:0;display:flex;flex-direction:column}.capture-area{position:relative;flex:1;overflow:hidden}.grid-controls{height:160px;position:relative;display:flex;align-items:center;gap:16px;padding:0 20px;background:#0a0a0a;border-top:.5px solid rgba(193,68,14,.15)}.grid-controls__hud{flex:1;min-width:0;height:100%;display:block}.grid-controls canvas:not(.grid-controls__hud){flex-shrink:0}.grid-controls__scope{flex-shrink:0;display:flex;flex-direction:column;align-items:center;align-self:stretch;justify-content:flex-end;gap:6px}.grid-controls__right{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;flex-shrink:0;align-self:stretch;padding-bottom:10px}.grid-controls__knobs{display:flex;align-items:center;gap:16px;margin-top:auto;margin-bottom:auto}.grid-controls__reset{width:100%;box-sizing:border-box;background:none;border:.5px solid rgba(255,255,255,.1);color:#fff3;font-family:ISO,monospace;font-size:6px;letter-spacing:.5px;padding:4px 0;cursor:pointer;text-align:center;white-space:nowrap;transition:color .2s,border-color .2s}.grid-controls__reset:hover{color:#ffffff80;border-color:#ffffff4d}.right-panel:has(.project-view){overflow-y:auto;position:relative}.project-close{position:fixed;top:1rem;right:var(--pad);z-index:15;background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;transition:color .3s ease}.project-close:hover{color:var(--accent)}.project-close svg{transition:transform .3s ease}.project-close:hover svg{transform:rotate(45deg)}.viz-cycle{position:fixed;bottom:1rem;right:var(--pad);z-index:20;background:none;border:none;color:var(--text);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;transition:color .3s ease}.viz-cycle:hover{color:var(--accent)}.viz-cycle svg{transition:transform .3s ease}.viz-cycle:hover svg{transform:rotate(90deg)}.viz-cycle__label{font-family:var(--font);font-size:7px;letter-spacing:.15em;color:currentColor;opacity:.5;transition:opacity .3s ease}.viz-cycle:hover .viz-cycle__label{opacity:1}.audio-toggle{position:fixed;bottom:1.55rem;left:calc(50vw + var(--pad));z-index:20;background:none;border:none;color:var(--text);cursor:pointer;padding:0;opacity:.35;transition:opacity .2s ease,color .2s ease}.audio-toggle:hover{opacity:1;color:var(--accent)}.project-close__label{font-family:var(--font);font-size:7px;letter-spacing:.15em;color:currentColor;opacity:.5;transition:opacity .3s ease}.project-close:hover .project-close__label{opacity:1}.scattered-previews{position:relative;height:100%;min-height:100%}.scattered-preview{position:absolute}.scattered-preview img{max-width:100%;display:block}.scattered-preview__index{font-size:13px;color:var(--text-muted);margin-top:.5rem}.availability{font-size:14px;font-weight:500;color:var(--text);margin-bottom:2rem}.project-view{animation:fadeIn .3s ease}.project-view--out{opacity:.3;transition:opacity .2s ease}.project-view__images{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.project-view__image{width:100%}.project-view__info{margin-bottom:2rem}.project-view__role{font-size:13px;color:var(--text-muted);margin-bottom:.75rem}.project-view__description{font-size:14px;line-height:1.6;color:var(--text);margin-bottom:.75rem}.project-view__work-description{font-size:14px;line-height:1.6;color:var(--text-muted);margin-bottom:1rem}.project-view__skills{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-view__skill{font-size:12px;color:var(--text-muted);border:1px solid var(--border);padding:.2rem .6rem;border-radius:2px}.project-view__link{display:inline-block;font-size:14px;font-weight:500;color:var(--text);border-bottom:1px solid var(--text);padding-bottom:1px;transition:opacity .2s ease;margin-right:1.5rem}.project-view__link:hover{opacity:.6}.blob-field{width:100%;height:100%;image-rendering:auto}.pixel-sort-container{position:relative;width:100%}.pixel-sort-container img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.pixel-sort-canvas{display:block;width:100%;height:auto;image-rendering:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.split-layout.glitch-mode .left-panel{filter:invert(1) contrast(1.3) saturate(0);border-right-color:var(--accent);cursor:pointer}.split-layout.glitch-mode .nav__name{pointer-events:auto;animation:glitchText .15s infinite;color:var(--accent)}.split-layout.glitch-mode .nav{filter:invert(1) contrast(1.3) saturate(0)}.split-layout.glitch-mode .hero-headline{animation:glitchShift .2s infinite}.split-layout.glitch-mode .project-row{animation:glitchRow .3s infinite;animation-delay:calc(var(--row-index, 0) * .02s)}.split-layout.glitch-mode .section-label{animation:glitchText .25s infinite}.split-layout.glitch-mode .about-headline{animation:glitchShift .18s infinite}.glitch-center-name{position:fixed;top:0;left:0;width:50%;height:100vh;display:flex;align-items:center;justify-content:center;z-index:10001;pointer-events:auto;animation:glitchDissolve 6s ease-in-out infinite}.glitch-center-name canvas{display:block}@keyframes glitchDissolve{0%,to{opacity:0;filter:blur(6px)}40%,60%{opacity:1;filter:blur(0px)}}@keyframes glitchText{0%{transform:translate(0)}20%{transform:translate(-3px,1px) skew(-2deg)}40%{transform:translate(2px,-1px) skew(1deg)}60%{transform:translate(-1px,2px)}80%{transform:translate(3px,-1px) skew(2deg)}to{transform:translate(0)}}@keyframes glitchShift{0%{transform:translate(0);clip-path:inset(0 0 0 0)}15%{transform:translate(-4px);clip-path:inset(0 0 85% 0)}30%{transform:translate(4px);clip-path:inset(40% 0 30% 0)}45%{transform:translate(-2px,1px);clip-path:inset(0 0 0 0)}60%{transform:translate(3px);clip-path:inset(70% 0 0 0)}75%{transform:translateY(-1px);clip-path:inset(20% 0 60% 0)}to{transform:translate(0);clip-path:inset(0 0 0 0)}}@keyframes glitchRow{0%,85%,to{transform:translate(0)}90%{transform:translate(4px)}95%{transform:translate(-3px)}}.capture-grid-wrapper{position:absolute;inset:0;overflow:hidden}.capture-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(10,1fr);gap:0;position:absolute;inset:16px;overflow:hidden}.capture-cell{position:relative;overflow:hidden;opacity:0;transition:opacity .6s ease;border:.5px solid rgba(193,68,14,.12)}.capture-cell--visible{opacity:1}.capture-cell--dropping{opacity:1;transition:none}.capture-cell--landed{transform:translateY(0)!important;transition:transform var(--drop-duration, .3s) cubic-bezier(.33,0,.9,.56),opacity .15s ease}.capture-cell--dissolving{opacity:0;filter:blur(3px);transform:scale(.97);transition:opacity 1.2s ease,filter 1.2s ease,transform 1.2s ease}.capture-grid--dither .capture-cell img{filter:url(#dither-filter);opacity:1;transition:filter 1s ease-in}.capture-grid--invert .capture-cell img{filter:saturate(0) contrast(1.6) brightness(1.3) invert(1);opacity:1;transition:filter .6s ease}.capture-grid--strobe .capture-cell img{animation:captureStrobe .12s steps(2) infinite;transition:none}@keyframes captureStrobe{0%{filter:saturate(0) contrast(1.6) brightness(1.3) invert(0);opacity:.85}50%{filter:saturate(0) contrast(2.5) brightness(1.5) invert(1);opacity:1}}.capture-cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(0) contrast(1.6) brightness(1.3);opacity:.85;transition:filter .8s ease,opacity .6s ease}.capture-cell__label{position:absolute;bottom:12%;left:10%;font-family:ISO,monospace;font-size:5px;letter-spacing:.1em;color:#c1440e80;text-transform:uppercase;white-space:nowrap;pointer-events:none}.capture-cell--jog-selected{outline:2px solid rgba(193,68,14,.8);outline-offset:-2px;z-index:2}.capture-cell--jog-selected img{filter:url(#dither-filter)}.capture-cell__tab{position:absolute;top:0;left:0;background:#c1440ecc;color:#080808;font-family:ISO,monospace;font-size:7px;line-height:1;padding:2px 4px;letter-spacing:.5px}.capture-popover{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60%;max-height:70%;z-index:10;border:1px solid rgba(193,68,14,.4);background:#080808;overflow:hidden}.capture-popover img{width:100%;height:100%;object-fit:cover;filter:saturate(0) contrast(1.6) brightness(1.3);opacity:.85}.capture-popover__hud{position:absolute;bottom:8px;left:10px;right:10px;display:flex;justify-content:space-between;font-family:ISO,monospace;font-size:7px;letter-spacing:.1em;color:#c1440e80;text-transform:uppercase}@media(max-width:1024px){:root{--pad: 1.5rem}.hero-section{padding-top:10vh}.hero-headline{font-size:clamp(1.75rem,3.5vw,2.5rem)}.project-row{grid-template-columns:30px auto 1fr auto;gap:.75rem;font-size:13px}.experience-row{font-size:13px}}@media(max-width:768px){:root{--pad: 1.25rem}html,body{overflow-x:hidden;overflow-y:auto}#root{height:auto;max-width:100vw;overflow-x:hidden}.split-layout{grid-template-columns:1fr;height:auto;max-width:100vw;overflow:hidden}.left-panel{height:auto;border-right:none;overflow:visible;max-width:100vw}.nav{position:sticky;top:0;flex-wrap:wrap;gap:.25rem;padding:1rem 0;margin:0}.nav__name{width:100%}.nav__info{display:none}.nav__links{width:100%;gap:1rem}.hero-section{padding-top:2rem;margin-bottom:2rem}.hero-headline{font-size:1.5rem}.hero-label{margin-top:1.5rem}.project-row{grid-template-columns:28px 1fr auto;gap:.5rem;font-size:13px}.project-row__category{display:none}.project-row__year{display:block}.project-index,.about-section,.capabilities-section,.experience-section{margin-bottom:3rem}.about-headline{font-size:1.15rem}.capability{margin-bottom:1.5rem}.experience-row{grid-template-columns:1fr auto;gap:.5rem;font-size:13px}.experience-row__company{display:none}.footer-cta__text{font-size:1.15rem}.right-panel{height:auto;min-height:60vh;overflow:hidden;border-top:1px solid var(--border);max-width:100vw}.blob-field{width:100%!important;height:auto!important;min-height:50vh}.project-view__info{margin-bottom:1.5rem}}@media(max-width:400px){:root{--pad: 1rem}.nav__links{gap:.75rem;font-size:13px}.hero-headline{font-size:1.25rem}.project-row{grid-template-columns:24px 1fr auto;font-size:12px}.footer-meta{flex-direction:column;gap:.25rem}}
