@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(./archivo-vietnamese-400-normal-BF4g3tCF.woff2) format("woff2"),url(./archivo-vietnamese-400-normal-FGOLYM1a.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(./archivo-latin-ext-400-normal-B5tPZzqW.woff2) format("woff2"),url(./archivo-latin-ext-400-normal-DrmqtLj6.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(./archivo-latin-400-normal-C81ewxNO.woff2) format("woff2"),url(./archivo-latin-400-normal-Bl602Mgc.woff) format("woff");unicode-range:U+0000-00FF,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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(./archivo-vietnamese-500-normal-k0drYPZA.woff2) format("woff2"),url(./archivo-vietnamese-500-normal-7W3lD2kQ.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(./archivo-latin-ext-500-normal-RFhg4CpD.woff2) format("woff2"),url(./archivo-latin-ext-500-normal-D7mXw3Kz.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(./archivo-latin-500-normal-CGugC8dq.woff2) format("woff2"),url(./archivo-latin-500-normal-pkzA7jw9.woff) format("woff");unicode-range:U+0000-00FF,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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(./archivo-vietnamese-600-normal-anCjMumA.woff2) format("woff2"),url(./archivo-vietnamese-600-normal-C8xBVdfP.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(./archivo-latin-ext-600-normal-Dm61iqcg.woff2) format("woff2"),url(./archivo-latin-ext-600-normal-D7uErJuz.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(./archivo-latin-600-normal-3BBy0ZsW.woff2) format("woff2"),url(./archivo-latin-600-normal-DwYieO8P.woff) format("woff");unicode-range:U+0000-00FF,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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(./archivo-vietnamese-700-normal-nuAQAQa7.woff2) format("woff2"),url(./archivo-vietnamese-700-normal-Bz2vkKqq.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(./archivo-latin-ext-700-normal-DD_nkw6b.woff2) format("woff2"),url(./archivo-latin-ext-700-normal-CgyfnKjw.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(./archivo-latin-700-normal-D9cHMWGj.woff2) format("woff2"),url(./archivo-latin-700-normal-lT5TFe7H.woff) format("woff");unicode-range:U+0000-00FF,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:Archivo;font-style:normal;font-display:swap;font-weight:900;src:url(./archivo-vietnamese-900-normal-CTaGUQkG.woff2) format("woff2"),url(./archivo-vietnamese-900-normal-BsRv4e8b.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:900;src:url(./archivo-latin-ext-900-normal-BTaU-39F.woff2) format("woff2"),url(./archivo-latin-ext-900-normal-DtTSfqvf.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:900;src:url(./archivo-latin-900-normal-D5FQlLQC.woff2) format("woff2"),url(./archivo-latin-900-normal-b9gKmcX7.woff) format("woff");unicode-range:U+0000-00FF,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,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}:root{color-scheme:light;font-family:Archivo,Arial,sans-serif;color:#11120f;background:#f5f3ee;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #f5f3ee;--paper-deep: #ebe9e2;--ink: #11120f;--muted: #70726b;--line: rgba(17, 18, 15, .22);--line-soft: rgba(17, 18, 15, .12);--lime: #baff2a;--max: 1500px;--gutter: clamp(24px, 4vw, 64px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}body,button,a{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;max-width:100%}::selection{color:var(--ink);background:var(--lime)}.skip-link{position:fixed;z-index:100;top:10px;left:10px;padding:10px 14px;background:var(--ink);color:#fff;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header,.case-header{position:sticky;z-index:50;top:0;height:76px;padding:0 var(--gutter);display:grid;grid-template-columns:minmax(270px,1fr) auto minmax(220px,1fr);align-items:stretch;gap:32px;border-bottom:1px solid var(--line);background:#f5f3eef5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.mark{display:flex;align-items:center;width:fit-content;gap:18px}.mark>strong{position:relative;padding-right:18px;font-size:30px;font-weight:900;letter-spacing:-.09em;line-height:1}.mark>strong:after{content:"";position:absolute;top:-5px;right:0;width:1px;height:38px;background:var(--line)}.mark>span{display:grid;gap:3px;font:500 12px/1.2 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.16em}.mark small{color:var(--muted);font-size:9px;letter-spacing:.12em}.primary-nav{display:flex;height:100%;align-items:stretch;gap:34px}.primary-nav a{position:relative;display:grid;place-items:center;font:500 11px/1 IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.primary-nav a:after{content:"";position:absolute;right:0;bottom:16px;left:0;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.primary-nav a:hover:after,.primary-nav a.is-active:after{transform:scaleX(1)}.button{min-height:44px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--ink);font:500 12px/1 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.08em;transition:background .16s ease,color .16s ease,transform .16s ease}.button:hover{transform:translateY(-2px)}.button--accent{border-color:var(--lime);background:var(--lime);color:var(--ink)}.button--accent:hover{border-color:var(--ink);background:var(--ink);color:#fff}.button--outline{background:transparent}.button--outline:hover{background:var(--ink);color:#fff}.header-cv{justify-self:end;align-self:center;min-width:210px}.menu-toggle{display:none;padding:0;border:0;background:none}.section{width:min(100%,var(--max));margin:0 auto;padding:clamp(72px,8vw,122px) var(--gutter)}.section+.section{border-top:1px solid var(--line)}.eyebrow{font:500 11px/1.35 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.17em}.eyebrow{color:var(--muted)}.hero{min-height:0;padding-top:28px;padding-bottom:24px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(32px,5vw,88px)}.hero__identity h1{max-width:760px;margin:14px 0 8px;font-size:clamp(64px,6.6vw,96px);font-weight:900;line-height:.79;letter-spacing:-.075em;text-transform:uppercase}.hero__role{margin:0 0 8px;font:500 clamp(21px,2.2vw,32px)/1.1 "IBM Plex Mono",monospace;letter-spacing:.09em;text-transform:uppercase}.hero__summary{max-width:540px;margin:0;color:var(--muted);font-size:clamp(17px,1.5vw,21px);line-height:1.45}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.hero__statement{display:grid;gap:7px;color:#84867f;font:400 10px/1.2 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.18em}.hero__playground{min-width:230px;display:grid;justify-items:center;gap:8px}.pixel-developer{position:relative;width:clamp(145px,14vw,205px);animation:pixel-idle 2.6s steps(2,end) infinite}.pixel-developer img{width:100%;display:block;image-rendering:pixelated}.pixel-developer__flash,.pixel-developer__shot{position:absolute;pointer-events:none}.pixel-developer__flash{top:13%;left:80%;width:18px;aspect-ratio:1;background:var(--lime);clip-path:polygon(50% 0,62% 34%,100% 18%,72% 50%,100% 82%,62% 66%,50% 100%,38% 66%,0 82%,28% 50%,0 18%,38% 34%);filter:drop-shadow(0 0 8px rgba(183,255,27,.9));opacity:0;animation:pixel-flash 2.6s steps(1,end) infinite}.pixel-developer__shot{top:15%;left:88%;width:34px;height:4px;background:var(--lime);box-shadow:0 0 8px #b7ff1be6;transform:rotate(-18deg) translate(0);transform-origin:left center;opacity:0;animation:pixel-shot 2.6s linear infinite}@keyframes pixel-idle{0%,76%,to{transform:translateY(0) rotate(0)}80%{transform:translate(-2px,1px) rotate(-1deg)}86%{transform:translateY(-2px) rotate(0)}}@keyframes pixel-flash{0%,77%,84%,to{opacity:0;transform:scale(.4) rotate(0)}78%,81%{opacity:1;transform:scale(1) rotate(18deg)}}@keyframes pixel-shot{0%,78%{opacity:0;transform:rotate(-18deg) translate(0)}79%{opacity:1;transform:rotate(-18deg) translate(0)}84%{opacity:0;transform:rotate(-18deg) translate(90px)}to{opacity:0;transform:rotate(-18deg) translate(90px)}}.hero__statement:after{content:"";width:28px;height:1px;margin-top:10px;background:var(--ink)}.section-heading{margin-bottom:44px;display:flex;justify-content:space-between;align-items:flex-end;gap:32px}.section-heading__title{display:flex;align-items:baseline;gap:30px}.section-heading h2{margin:0;font-size:clamp(32px,4vw,58px);line-height:.95;letter-spacing:-.05em;text-transform:uppercase}.section-heading>p{margin:0;color:var(--muted);font:400 11px/1.4 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.14em}.work{padding-top:24px;padding-bottom:clamp(72px,8vw,122px)}.work>.section-heading{margin-bottom:20px}.work>.section-heading .section-heading__title{gap:26px}.work>.section-heading h2{font:500 12px/1.2 IBM Plex Mono,monospace;letter-spacing:.14em}.experience{padding-top:clamp(72px,8vw,122px)}.project-showcase{display:grid;grid-template-columns:180px minmax(0,1fr);gap:36px;align-items:stretch}.project-tabs{display:flex;flex-direction:column;justify-content:flex-start;gap:8px;padding-top:46px}.project-tab{position:relative;width:100%;padding:17px 12px 17px 18px;display:grid;grid-template-columns:1fr;border:0;border-left:2px solid var(--line-soft);background:transparent;color:#90928d;text-align:left;cursor:pointer;transition:color .16s ease,border-color .16s ease,padding-left .16s ease}.project-tab:hover,.project-tab.is-active{padding-left:24px;border-color:var(--lime);color:var(--ink)}.project-tab strong{font-size:19px;letter-spacing:-.03em}.project-panel{position:relative;height:405px;min-height:405px;overflow:hidden;background:var(--ink);animation:panel-in .28s ease both}@keyframes panel-in{0%{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.project-panel>img{width:100%;height:100%;min-height:405px;object-fit:cover}.project-panel__copy{position:absolute;bottom:0;left:0;width:min(520px,52%);padding:28px 30px 30px;background:#11120feb;color:#fff}.project-panel__copy .eyebrow{color:var(--lime)}.project-panel__copy h3{max-width:420px;margin:10px 0 8px;font-size:clamp(27px,3vw,44px);line-height:.97;letter-spacing:-.04em}.project-panel__copy p{max-width:52ch;margin:0;color:#d4d5cf;font-size:14px;line-height:1.5}.text-link{width:fit-content;margin-top:18px;padding-bottom:5px;display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid currentColor;font:500 12px/1.2 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.06em}.text-link--light{color:#fff}.text-link:hover{color:#5a7900}.text-link--light:hover{color:var(--lime)}.project-panel__meta{position:absolute;top:18px;right:18px;padding:10px 12px;display:flex;gap:15px;background:#11120fe0;color:#fff;font:400 10px/1.2 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.09em}.project-controls{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;gap:8px}.project-controls button{width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.65);background:#11120fd6;color:#fff;cursor:pointer;transition:background .15s ease,color .15s ease}.project-controls button:hover{background:var(--lime);color:var(--ink)}.project-archive{margin-top:clamp(88px,10vw,150px);scroll-margin-top:92px}.project-archive__heading{margin-bottom:42px;display:block}.project-archive__heading h3{margin:14px 0 0;font-size:clamp(36px,4.8vw,68px);line-height:.95;letter-spacing:-.055em;text-transform:uppercase}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}.project-card{min-width:0;background:var(--paper)}.project-card>img,.project-card>.directsplat-media{width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--ink)}.project-card__body{padding:clamp(25px,3vw,42px)}.project-card__meta{display:flex;justify-content:space-between;gap:18px;color:var(--muted);font:500 10px/1.3 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.11em}.project-card h3{margin:32px 0 13px;font-size:clamp(28px,3vw,43px);line-height:.98;letter-spacing:-.045em}.project-card__body>p{margin:0;color:#4f524c;font-size:16px;line-height:1.55}.project-card ul,.experience-copy ul,.expertise-grid ul{margin:24px 0 0;padding-left:19px;color:#60635c}.project-card li,.experience-copy li,.expertise-grid li{margin-bottom:10px;padding-left:5px;font-size:14px;line-height:1.55}.project-card li::marker,.experience-copy li::marker,.expertise-grid li::marker{color:#728d00}.project-card footer{margin-top:30px;padding-top:17px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);color:var(--muted);font:500 10px/1.4 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.07em}.behance-cta{margin-top:1px;padding:32px 0 0;display:flex;justify-content:space-between;align-items:flex-end;gap:32px}.behance-cta p{margin:9px 0 0;font-size:20px;letter-spacing:-.025em}.experience-list{border-top:1px solid var(--line)}.experience-list article{padding:34px 0;display:grid;grid-template-columns:minmax(160px,.35fr) minmax(260px,.7fr) 1fr;gap:42px;align-items:start;border-bottom:1px solid var(--line)}.experience-list h3{margin:0;font-size:clamp(25px,2.5vw,38px);letter-spacing:-.04em}.experience-role{margin:7px 0 0!important;color:var(--muted);font:400 12px/1.4 IBM Plex Mono,monospace;text-transform:uppercase}.experience-copy>p{max-width:60ch;margin:3px 0 0;color:#4e514b;font-size:16px;line-height:1.55}.experience-copy ul{max-width:68ch}.expertise{background:var(--paper-deep)}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line);background:var(--line)}.expertise-grid article{min-height:350px;padding:32px;background:var(--paper-deep)}.expertise-grid h3{margin:0 0 12px;font-size:25px;letter-spacing:-.04em}.expertise-grid p{margin:0;color:#565950;font-size:14px;line-height:1.55}.contact{width:100%;max-width:none;padding-top:clamp(82px,10vw,150px);padding-bottom:clamp(82px,10vw,150px);display:grid;grid-template-columns:1fr .8fr;gap:clamp(60px,10vw,170px);background:var(--ink);color:#fff}.contact .eyebrow{color:#a7aaa2}.contact h2{margin:18px 0 0;font-size:clamp(54px,7vw,104px);line-height:.9;letter-spacing:-.065em;text-transform:uppercase}.contact__actions{border-top:1px solid rgba(255,255,255,.28)}.contact-link{min-height:92px;display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:22px;border-bottom:1px solid rgba(255,255,255,.28);transition:color .16s ease,padding .16s ease}.contact-link:hover{padding:0 14px;color:var(--lime)}.contact-link span{color:#9da098;font:400 10px/1.2 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.1em}.contact-link strong{font-size:clamp(16px,1.6vw,23px);letter-spacing:-.025em}.site-footer{min-height:110px;padding:0 var(--gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;border-top:1px solid var(--line)}.site-footer p,.site-footer>a{color:var(--muted);font:400 10px/1.4 IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.08em}.site-footer>a{justify-self:end;display:inline-flex;align-items:center;gap:7px}.directsplat-media{position:relative;min-width:0;overflow:hidden;background:var(--ink);touch-action:pan-y}.directsplat-media>video,.directsplat-media>img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.directsplat-media>img{object-fit:cover}.directsplat-media__controls{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:0 8px;pointer-events:none}.directsplat-media__controls button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0 8px;border:0;background:transparent;color:#fff;cursor:pointer;pointer-events:auto;filter:drop-shadow(0 1px 3px rgba(0,0,0,.8))}.directsplat-media__controls button:hover{color:var(--lime)}.case-header{grid-template-columns:1fr auto}.case-header .button{align-self:center}.case-hero{min-height:calc(100vh - 76px);display:grid;grid-template-columns:minmax(390px,.74fr) 1.26fr;border-bottom:1px solid var(--line)}.case-hero__copy{padding:clamp(66px,8vw,130px) var(--gutter);display:flex;flex-direction:column;justify-content:center}.case-hero h1{margin:18px 0 24px;font-size:clamp(86px,10vw,154px);line-height:.75;letter-spacing:-.08em;text-transform:uppercase}.case-hero__copy>p{max-width:42ch;margin:0;color:var(--muted);font-size:clamp(17px,1.6vw,23px);line-height:1.48}.case-hero>img,.case-hero>.directsplat-media{width:100%;height:100%;object-fit:cover}.case-meta{margin-top:52px;display:grid;gap:14px}.case-meta span{padding-bottom:12px;display:grid;grid-template-columns:90px 1fr;border-bottom:1px solid var(--line);font-size:13px}.case-meta small{color:var(--muted);font:400 10px/1.4 IBM Plex Mono,monospace;text-transform:uppercase}.case-section{padding:clamp(80px,10vw,150px) var(--gutter);border-bottom:1px solid var(--line)}.case-overview{display:grid;grid-template-columns:.28fr 1fr .65fr;gap:clamp(35px,6vw,100px)}.case-overview h2{max-width:900px;margin:0;font-size:clamp(45px,6vw,92px);line-height:.92;letter-spacing:-.065em;text-transform:uppercase}.case-overview p{margin:0 0 24px;color:#51544e;font-size:16px;line-height:1.6}.pipeline-list{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.pipeline-list article{min-height:260px;padding:28px;border-right:1px solid var(--line)}.pipeline-list article:last-child{border-right:0}.pipeline-list span,.contribution-grid article>span{color:#657500;font:500 11px/1 IBM Plex Mono,monospace;letter-spacing:.1em}.pipeline-list h3,.contribution-grid h3{margin:66px 0 12px;font-size:24px;letter-spacing:-.04em}.pipeline-list p,.contribution-grid p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}.case-contribution{background:var(--paper-deep)}.contribution-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.contribution-grid article{min-height:260px;padding:34px;background:var(--paper-deep)}.case-result{padding:clamp(90px,11vw,170px) var(--gutter);background:var(--ink);color:#fff}.case-result .eyebrow{color:#9b9e96}.case-result h2{max-width:1120px;margin:24px 0;font-size:clamp(48px,7vw,108px);line-height:.92;letter-spacing:-.065em;text-transform:uppercase}.case-result>p{max-width:650px;margin:0 0 38px;color:#bfc1ba;font-size:18px;line-height:1.5}:focus-visible{outline:3px solid #6b8500;outline-offset:4px}@media(max-width:1100px){.site-header{grid-template-columns:1fr auto}.primary-nav{display:none}.menu-toggle{display:grid;place-items:center;grid-column:2;grid-row:1}.primary-nav.is-open{position:absolute;top:76px;right:0;left:0;height:auto;padding:22px var(--gutter);display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-bottom:1px solid var(--line);background:var(--paper)}.primary-nav.is-open a{min-height:48px}.header-cv{position:fixed;right:76px;top:16px;min-width:156px}.hero{grid-template-columns:1fr auto}.hero__statement{display:none}.expertise-grid{grid-template-columns:repeat(2,1fr)}.case-overview{grid-template-columns:.28fr 1fr}.case-overview>div{grid-column:2}.pipeline-list{grid-template-columns:repeat(3,1fr)}.pipeline-list article:nth-child(3){border-right:0}.pipeline-list article:nth-child(-n+3){border-bottom:1px solid var(--line)}}@media(max-width:760px){:root{--gutter: 20px}html{scroll-padding-top:68px}.site-header,.case-header{height:68px;gap:12px}.mark{gap:0}.mark>strong{padding-right:0;font-size:26px}.mark>strong:after,.mark>span{display:none}.header-cv{top:12px;right:60px;min-width:0;min-height:42px;padding:0 13px;font-size:9px}.primary-nav.is-open{top:68px;grid-template-columns:1fr}.hero{min-height:0;padding-top:50px;padding-bottom:52px;grid-template-columns:1fr;gap:48px}.hero__identity h1{margin-top:20px;font-size:clamp(50px,13.5vw,64px)}.hero__role,.hero__summary{font-size:17px}.hero__playground{min-width:0;margin-top:-24px;justify-items:start}.pixel-developer{width:128px}.section-heading,.section-heading__title{align-items:flex-start}.section-heading{flex-direction:column;margin-bottom:30px}.section-heading__title{flex-direction:column;gap:15px}.project-showcase{grid-template-columns:1fr;gap:20px}.project-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:0;padding-top:0}.project-tab{padding:14px 8px;display:flex;flex-direction:column;border-left:0;border-bottom:2px solid var(--line-soft)}.project-tab:hover,.project-tab.is-active{padding-left:8px;border-color:var(--lime)}.project-tab strong{font-size:14px}.project-panel{height:auto;min-height:0;overflow:visible}.project-panel>img{height:260px;min-height:0}.project-panel__copy{position:static;width:100%;padding:25px 22px}.project-panel__meta{display:none}.project-controls{right:12px;top:204px;bottom:auto}.project-controls button{width:42px;height:42px}.project-grid{grid-template-columns:1fr}.project-card footer,.behance-cta{align-items:flex-start;flex-direction:column}.experience-list article{grid-template-columns:1fr;gap:18px}.expertise-grid,.contribution-grid{grid-template-columns:1fr}.expertise-grid article{min-height:0}.contact{grid-template-columns:1fr}.contact-link{grid-template-columns:64px minmax(0,1fr) auto}.contact-link strong{overflow-wrap:anywhere}.site-footer{min-height:140px;grid-template-columns:1fr auto}.site-footer p{display:none}.case-header .button{min-height:40px;padding:0 13px;font-size:9px}.case-hero{grid-template-columns:1fr}.case-hero__copy{padding:68px var(--gutter)}.case-hero>img,.case-hero>.directsplat-media{height:380px}.case-overview{grid-template-columns:1fr}.case-overview>div{grid-column:1}.pipeline-list{grid-template-columns:1fr}.pipeline-list article,.pipeline-list article:nth-child(3){min-height:220px;border-right:0;border-bottom:1px solid var(--line)}.pipeline-list article:last-child{border-bottom:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
