@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAn4ABMAAAAAEwQAAAmOAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjQbgnQcLj9IVkFSgQEGYD9TVEFUgQIAgQovahEICok0h0ULIAAwhzoBNgIkAzwEIAWHJgeBDgwHG6QQUdRKTmoBFD8K42bniObKrG3LZFcMWZzFmrjTFhQ6TVTqPJcInrfrvzq3b2PGn1wwMiNYGTy9ViREYARlL1zAGcPdPqBt3gNWrfKthv4xnM+b9caw+wmjgEUVRjHXhS6jgCK6zf5HiWQacJpGdAgdrbV6g/Rf1BfxRqZVQnrxRVWSJb6RLFnyu0elilmjeoSQCKnxsmwLaddUMjnksriSYuuPl06EAl7KfAiWQjCUETz0zNZ3EII94CDQtzkMfZ/9IkkY8tZRZTDky5ZVwBAM+GYpdd4ZVAWYImnLkiTg48l79gGx3D+VBtLeyg8u7bJAd4uo0pFuQBFysE9C95l0W4Fkiao6GfrDbu77lVU7wk9cV3uqOsXmQiMkhVKl1ugjzUAJBSIkkVWHijkpkVSyUFsgVBuJMA0N+ZnXtyUv5yMigGdfQRmwL1AAjQ3YXG6iIFNSUdPQo8+AISPGAltBMDQRAtyf4ZspLlZkpyOVoMZPvFGWzvk8p5SUC/NWPMj6T2/Yas2EdlON5GkfdkeFwVGjta825H89NIenlLWAPAp5h1KDtRhCaAQWMsFKtEvOKpIhgLHlXPARokkgEGEOAkqxJRQpKYq4ezahIiLHP6hZpqMbV0pUF2vdvEimLEQ/iIUYLgYWs0VXGVlLTOPdaPmFfCC/XrtzqVo1ez7vz6+Kd2+7o11ZJ+4MreLbB5BKVGxobAq4jZYalZ5aX2CKJiwUuc9GNJyi4M8bGyKcdjSRrG4JohdF8buJfmQefbYYREnMFsOoiNliFDVxmRgL0XUmUMLqzW0A4gCQAhWGYCQpFNukwXhIkPMsbRI19ewtw8Cp2Wj/Ro5cM2OTAbJAvZ/L4opBXb9+UHscYuOKM/W8isgwN26Exexjizmfnlp9dE3hOSqdZ/F5QqbckIlPb+oKfXxd6hftJ7Sm/uyPYpONza84CRlMNk/uhOrLpyf53982++zRkXNu3g3VF8qFbx1+7fbHZ9DrB3VXWNSmhnT2vrwS1+1Z+kHGBaZIhnnvuLBTNDeA340D1DWu5/jEa9pVfl6+Jij+yo3EELNixXCLjr173Q5eDP7Y7/L4iQFHbjpaJLFoP4cCsYP6sAPL7gMHNg53yYjqxqTDrYqLDl5DzW/eTLjYxCvucprjI3yl2ykKowKUC2Ox2FJLFo6Fa1HBWLC2jMCIIBEmklkYhmkpmBhTm/LCvJAH5oGcMKcgFEP1xUdho8ANPa6RFD99/PN60fjj9eXy2Eex4B5MpmRapXidzFk1p4uLk3+hn6jAP9ovJcXPPwk8o/0ltizbdbnTprvx4PSxT0VZ3Xc772aN7RflgbXRYwc3hLNO+k878nxGwfuVM8m8Gs7WEoVGWLHwSpx4vNSHBCMNqJ4m15Kp/TfHHVkQd++eY7PGN4W5byTs+6Ft8Ozvb/D60btv37de8ER0mS3P/0sLW84qGjEVkwztPzz06eGUWwKLwPb0D/WFd3vltl2aP276KpM0JNz6AfnAnZ5ADlF2zVyZ2OkxHSMxWPMnSZLbbDR3F1UjPVqp4d68da13F1YZujdWw7271iecO2l9+/4p47Oztjck355/75wFOI+VdGDqbNGs+ISgxg3iB2jb2r+b0CWsNLHIM4sdv8SDSFBP/Oromz6FNCWw2iMTxV0R8QLyBTkpe0j5+pSSJOOTB5Mck/gh3IopuNQnhKj02t3FL80gGbEh89SZcwTxcYt5cZT/nMnB3uXfPy8BSpVMBuRx+ZhACGzDBmwHsJRAjhotOnzuj2wDz3ug2wOUAY2NgZln9/TK/enG/oE4rO1wxvGUFMAxsZ0qNjRC7hl9d17e7imbgDt6uJXhUobDg7v3RX/yRCKxgMhfyiKcZfbpk0wmCcdQlIAOHeakXLvCNt++WfKiozNqSZxxJotn+c0a7DdPsx7DPYgKIDxwwYUZDg9aJbxocTjcwovr9WAsVV32mQoiiIOCHc60Oltst9qCQYuCqN1yHo0Kj60OgI2OqmiuBUWrNA0NDhYCDcdpmMrs1fZZ0xdTzMr1HdPtIHstYhqaPDDA5YxUDx7J4fJiisBSDI/L6G/bn34GNy8Q2g044ZTulAdFLb0tI6NNxfj3DzLjWiNGxje1pz7aXOcNV68lDPEd2SXl6VfBuwmHzdf1gxFy1HvA7pD8I2BnnmyGw852Cg5XbgIdEEGE5UCzen5jTlG6JCU5iajlxVcsXvbcS0SAcg1dcesWJLVK8+hYHOYQ+Pjy+EyVGXP0aPTFagrV9E03hCQvYx+g47KGq+1GsLj8uBIyihNw33YUe8PNC4BOJ3Lm1AglLV3nCuvUdIP+v15tVGbWIwgxLVpPkfpthCGpTKG+oA/DQfsKKvxhScqaN6FuElAUtTKv2UYgOmQegsN/n7njHUju8wM4VTcm+Q8xfX9SFwjTzdVqu95UOWSIGOabH8OGBEba//8Yxl3GcPdP/dMBOoSX/0z5SZmBoLbaPs+9asaMpb36yknKaw6FqWZa6A5vDa02mhkOba1q6KtLV208xrkwmW5C4VD6n2fvRjADy2qDYYnNy+H10Fq0LMbNzS863gkO7iQ8eC48/Ny5m59tOcEso3u7Qg3yrqDL6eKXwJAuWnhylfbWrRObe66rzX59+XDtzusnL66dI/86ArmtLlzED860Ef3bFPV78OX/zFTA11fcBn2Vntb7qiGBSgLBHyuv/uEaqqoTgSpOyjlzh86me1Vriv7i9rLPLvtghWmSnblRbAsBJL/4dScSQTBxOivHMO5QvBBY0iheJvfwWLxLOGzYKZyM4zVc2Cll46zEpeUV4MqGEWZj22SdOxhGAjgs9AEnfT+RoiMfcDb0GS5NncKVxju4Nt/mRk13O9Gz3FLct5oCD6wkwUNrCfHIUg6SMf8LwQGyVaBUqpLPW5BaMpRshEpl8nS1qw5dgnzlik8QBXmdy5UrIH74heTKZKMSilQso4hsRiGraQZRzxpNGqlEJMsXuAU7GlcR8mWSykUpVkWGyIf0a8v4qEQp5CtGsMiZa+4ESYQy+WilCiguHzxMXO54ogShooTV2bj2z1zL6DYSoImoQ8lFUWxMLBNQQgLkV2tHYgUoIbkuREz+fJHKxxWBcnvu3KQppFCxLkguB1NyVSp/TknRvNwYlCdbblWu3ze6owHdWluhE5tgQ6ej2SV65CijijoaRfSiH4Nqz1OpfEW+WeI/oU0ly60zkV9YzOQSYtZVEGYmrysTZAJkY4qZtIBD9/LYTIK7Nww3vMiYBwA=)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-cyrillic-wght-normal.Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-greek-wght-normal.DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-vietnamese-wght-normal.usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-latin-ext-wght-normal.Ch3YOpNY.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-latin-wght-normal.DHIcAJRg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-mono-latin-ext-400-normal.C2zvOubV.woff2)format("woff2"),url(/_astro/dm-mono-latin-ext-400-normal.1aZr6b2b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-mono-latin-400-normal.4GdczIuU.woff2)format("woff2"),url(/_astro/dm-mono-latin-400-normal.-0xN8mdc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f7f6f8;--ink:#29262e;--muted:#6c6673;--line:#ded9e3;--accent:#32a856;--accent-light:color-mix(in srgb, var(--accent) 38%, white);--accent-soft:color-mix(in srgb, var(--accent) 7%, var(--paper));--accent-border:color-mix(in srgb, var(--accent) 30%, var(--paper));--accent-muted:color-mix(in srgb, var(--accent) 65%, var(--paper));--surface:#eeebf1;--surface-strong:#e4dfe9;--dark:#09232f;--on-dark:#f3eff8;--mono:"DM Mono", monospace;--font:"Manrope Variable", sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}img,video{max-width:100%;display:block}img{height:auto}svg{flex-shrink:0}h1,h2,h3{letter-spacing:-.055em;font-weight:500;line-height:1.08}h2{font-size:clamp(38px,4.5vw,64px)}h3{font-size:30px}em{color:var(--accent);font-style:normal}::selection{background:var(--accent-light);color:var(--ink)}:focus-visible{outline:3px solid var(--accent);outline-offset:6px}[hidden]{display:none!important}.shell{width:min(1280px,100% - 112px);margin-inline:auto}.section{padding-block:108px}.eyebrow{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:12px;font-size:11px;line-height:1.5;display:flex}.mono{font-family:var(--mono);letter-spacing:.025em;font-size:11px}.tiny-dot{background:currentColor;border-radius:50%;flex:0 0 7px;width:7px;height:7px;display:inline-block}.section-number{color:var(--muted);margin-right:8px}.muted{color:var(--muted)}.accent{color:var(--accent)}.text-link{border-bottom:1px solid;align-items:center;gap:20px;padding-block:8px;font-size:13px;font-weight:600;line-height:1.6;display:inline-flex}.text-link:hover{color:var(--accent)}.button{border:1px solid #0000;justify-content:center;align-items:center;gap:38px;min-height:56px;padding:17px 24px;font-size:13px;font-weight:600;transition:background .2s,transform .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-light{background:var(--paper);color:var(--ink)}.button-light:hover{background:var(--accent-light)}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:var(--accent)}.skip-link{z-index:100;background:var(--paper);color:var(--ink);padding:12px;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--line);z-index:10;height:96px;position:relative}.site-header--overlay{color:#fff;backdrop-filter:blur(16px);background:#0f12188c;border-color:#ffffff2b;position:absolute;inset:0 0 auto}.header-inner{justify-content:space-between;align-items:center;height:100%;display:flex}.wordmark{letter-spacing:-.8px;white-space:nowrap;font-size:26px;font-weight:750}.site-header nav{align-items:center;gap:38px;font-size:12px;font-weight:500;display:flex}.site-header nav>a{align-items:center;gap:17px;min-height:44px;display:flex}.site-header nav>a:hover,.site-header nav>a[aria-current]{text-underline-offset:7px;text-decoration:underline}.nav-contact{border-left:1px solid var(--line);padding-left:32px}.site-header--overlay .nav-contact{border-color:#ffffff45}.menu-toggle{display:none}.hero{background:var(--dark);color:#fff;height:min(880px,100svh);min-height:730px;position:relative;overflow:hidden}.hero-video{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.hero-shade{background:linear-gradient(90deg,#0d0b10c2 0%,#0d0b1061 60%,#0d0b1024),linear-gradient(#0d0b1040,#0000 60%,#0d0b1080);position:absolute;inset:0}.hero-inner{flex-direction:column;justify-content:center;height:100%;padding-top:110px;padding-bottom:115px;display:flex;position:relative}.hero .eyebrow{color:var(--on-dark);font-size:10px}.hero h1{letter-spacing:-.065em;margin-top:30px;font-size:clamp(64px,7.6vw,112px);line-height:1.025}.hero h1 em{color:var(--accent-light)}.hero-intro{color:#fff;text-shadow:0 2px 12px #0008;max-width:660px;margin:28px 0 32px;font-size:22px;font-weight:450;line-height:1.6}.hero-bottom{color:var(--on-dark);justify-content:center;align-items:center;display:flex;position:absolute;bottom:33px;left:0;right:0}.reel-control{color:#fff;min-height:44px;font-family:var(--mono);background:#17121c66;border:1px solid #ffffff60;border-radius:30px;align-items:center;gap:10px;padding:8px 15px;font-size:10px;display:flex}.reel-control:hover{background:#17121ccc}.play-state{text-align:center;width:11px}.section-heading .eyebrow,.about-copy>.eyebrow,.resume-section .eyebrow{font-size:15px}.section-heading{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:48px;display:flex}.section-heading h2{margin-top:23px}.section-heading>.text-link{margin-bottom:7px}.work-grid{grid-template-columns:1.75fr 1fr;gap:28px;display:grid}.featured-projects{align-content:start;gap:36px;display:grid}.project-image{background:var(--surface-strong);height:510px;position:relative;overflow:hidden}.project-image>img{object-fit:cover;object-position:48% center;width:100%;height:100%;transition:transform .6s}.project-link:hover .project-image>img{transform:scale(1.025)}.image-badge{background:var(--paper);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;padding:8px 12px;font-size:9px;position:absolute;top:20px;left:20px}.project-open{background:var(--paper);border-radius:50%;place-items:center;width:46px;height:46px;transition:background .2s;display:grid;position:absolute;bottom:20px;right:20px}.project-link:hover .project-open{background:var(--accent-light)}.project-caption{justify-content:space-between;align-items:flex-end;gap:16px;padding:23px 0 0;display:flex}.project-caption .eyebrow{color:var(--muted);margin-bottom:10px;font-size:9px}.project-status{font-family:var(--mono);color:var(--muted);padding-bottom:5px;font-size:9px}.upcoming-projects{gap:26px;display:grid}.project-placeholder{border:1px solid var(--line);background:var(--accent-soft);min-width:0}.placeholder-art{background-image:linear-gradient(color-mix(in srgb, var(--accent) 5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 5%, transparent) 1px, transparent 1px);background-size:24px 24px;height:169px;position:relative;overflow:hidden}.placeholder-caption{border-top:1px solid var(--line);padding:18px 22px}.placeholder-caption .eyebrow{color:var(--muted);font-size:9px}.placeholder-caption h3{justify-content:space-between;gap:10px;margin:8px 0 4px;font-size:22px;display:flex}.placeholder-caption h3 span{color:var(--muted);font-size:19px}.placeholder-caption p{font-family:var(--mono);color:var(--muted);font-size:9px}.art-label{color:var(--muted);font-family:var(--mono);letter-spacing:.1em;font-size:8px;position:absolute;bottom:12px;left:17px}.mechanism{width:180px;height:180px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbit{border:1px solid var(--accent-muted);border-radius:50%;position:absolute;inset:25px}.orbit-one{box-shadow:0 0 0 9px var(--accent-soft), 0 0 0 10px var(--accent-border)}.orbit-two{border-style:dashed;inset:45px}.orbit-three{background:var(--accent-border);box-shadow:0 0 0 7px var(--accent-soft), 0 0 0 8px var(--accent-border);inset:64px}.axle{border:1px solid var(--accent-muted);background:var(--accent-soft);border-radius:50%;width:24px;height:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mechanism:before,.mechanism:after{content:"";background:var(--accent-border);position:absolute}.mechanism:before{height:1px;top:50%;left:0;right:0}.mechanism:after{width:1px;top:0;bottom:0;left:50%}.cross{color:var(--accent-muted);font:14px var(--mono);position:absolute}.cross-one{top:20px;left:10px}.cross-two{bottom:20px;right:10px}.software{background:var(--surface)}.software .placeholder-art{background-color:var(--accent-soft)}.code-art{grid-template-columns:20px 1fr 1fr;align-items:center;gap:10px 12px;width:65%;display:grid;position:absolute;top:30px;left:50%;transform:translate(-50%)}.code-art span{font:9px var(--mono);color:var(--muted)}.code-art i{background:var(--accent-muted);border-radius:2px;height:6px}.code-art i:nth-child(3n){background:var(--accent-border);width:65%}.code-art i:nth-child(5n){width:45%}.code-art i:nth-child(8n){background:var(--accent)}.about-section{background:var(--surface);border-block:1px solid var(--line);padding-block:100px}.about-grid{grid-template-columns:1fr 1fr;align-items:center;gap:110px;display:grid}.portrait-wrap{padding:0 30px 26px 0;position:relative}.portrait-wrap>img{aspect-ratio:1/1.12;object-fit:cover;object-position:center;filter:saturate(.75);width:100%}.portrait-note{color:var(--muted);text-transform:uppercase;margin-top:16px;font-size:9px;display:block}.portrait-mark{border:8px solid var(--surface);background:var(--accent);color:var(--accent-light);letter-spacing:-5px;border-radius:50%;place-items:center;width:100px;height:100px;padding-right:6px;font-size:56px;line-height:1;display:grid;position:absolute;bottom:75px;right:0}.about-copy h2{margin:23px 0 29px;font-size:clamp(42px,4.6vw,66px)}.about-intro{max-width:370px;margin-bottom:14px;font-size:17px;line-height:1.7}.about-copy>.muted{max-width:370px}.about-links{flex-wrap:wrap;gap:8px;margin:26px 0 30px;display:flex}.about-links a{border:1px solid var(--accent-border);min-height:44px;font-family:var(--mono);border-radius:30px;align-items:center;gap:10px;padding:10px 16px;font-size:11px;transition:background-color .2s,border-color .2s;display:inline-flex}.about-links a:hover,.about-links a:focus-visible{background:var(--accent-soft);border-color:var(--accent)}.resume-section{justify-content:space-between;align-items:center;gap:40px;display:flex}.resume-section h2{margin:24px 0 16px}.resume-section .muted{font-size:14px}.resume-actions{flex-direction:column;align-items:center;gap:19px;display:flex}.resume-actions .button{min-width:230px}.resume-actions .text-link{border:0;font-size:11px}.site-footer{background:var(--dark);color:var(--on-dark);padding-top:78px}.site-footer .eyebrow{color:var(--accent-light)}.footer-heading{justify-content:space-between;align-items:center;margin-top:28px;display:flex}.footer-heading h2{font-size:clamp(46px,6.2vw,86px);line-height:1.05}.contact-circle{background:var(--accent-light);width:98px;height:98px;color:var(--ink);border-radius:50%;place-items:center;transition:transform .2s;display:grid}.contact-circle:hover{transform:rotate(12deg)}.contact-circle svg{width:40px;height:40px}.email-link{border-bottom:1px solid var(--accent-muted);margin-top:30px;font-size:14px;display:inline-block}.footer-bottom{font-family:var(--mono);color:var(--accent-light);border-top:1px solid #ffffff29;justify-content:space-between;align-items:center;gap:24px;margin-top:70px;padding-block:26px;font-size:9px;display:flex}.footer-bottom>div{gap:28px;display:flex}.footer-bottom a{align-items:center;gap:6px;min-height:34px;display:flex}.footer-bottom a:hover{color:#fff}.footer-bottom svg{width:12px;height:12px}.page-section{min-height:55vh;padding-block:70px 100px}.page-title{margin:28px 0 45px;font-size:clamp(55px,7vw,96px);line-height:1.06}.archive-toolbar{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:30px;margin-bottom:40px;padding:25px 0;display:flex}.archive-toolbar>p{color:var(--muted);font-size:13px}.filters{flex-wrap:wrap;gap:5px;display:flex}.filters button{background:0 0;border:1px solid #0000;border-radius:30px;min-height:44px;padding:10px 16px;font-size:11px}.filters button[aria-pressed=true]{background:var(--ink);color:#fff}.filters button:hover{border-color:var(--muted)}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:42px 28px;display:grid}.archive-grid .project-image{aspect-ratio:1.32;height:auto}.archive-grid .placeholder-art{aspect-ratio:1.65;height:auto}.archive-grid .mechanism{transform:translate(-50%,-50%)scale(1.4)}.archive-grid .code-art{gap:18px;top:50%;transform:translate(-50%,-50%)}.archive-grid .project-placeholder{align-self:stretch}.filter-count{min-height:20px;color:var(--muted);margin-top:25px}.back-link{font-family:var(--mono);margin-bottom:35px;padding-block:10px;font-size:11px;display:inline-block}.back-link:hover{color:var(--accent)}.case-heading{justify-content:space-between;align-items:center;gap:30px;display:flex}.case-heading .page-title{margin:18px 0 38px}.status-pill{font:10px var(--mono);border:1px solid var(--line);white-space:nowrap;border-radius:30px;align-items:center;gap:8px;padding:12px 16px;display:flex}.status-pill .tiny-dot{color:var(--accent)}.media-figure{min-width:0;margin-block:24px}.media-frame{background:var(--surface);justify-content:center;display:flex;overflow:hidden}.media-frame img,.media-frame video{object-fit:contain;width:100%;height:auto;max-height:800px}.media-figure--landscape .media-frame{aspect-ratio:16/9}.media-figure--landscape img,.media-figure--landscape video{object-fit:contain;width:100%;height:100%}.media-figure--portrait{max-width:440px;margin-inline:auto}.media-figure--portrait .media-frame{aspect-ratio:9/16}.media-figure--portrait img,.media-figure--portrait video{object-fit:contain;height:100%}.media-figure figcaption{font-family:var(--mono);color:var(--muted);margin-top:12px;font-size:10px}.media-gallery{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;display:grid}.media-gallery .media-figure{width:100%}.case-body{grid-template-columns:240px minmax(0,1fr);gap:80px;padding:70px 0 90px;display:grid}.case-body aside{align-self:start;position:sticky;top:35px}.case-body aside nav{color:var(--muted);flex-direction:column;align-items:start;gap:16px;margin-top:24px;font-size:12px;display:flex}.case-body aside nav a:hover{color:var(--ink);text-decoration:underline}.prose{max-width:720px}.prose .case-intro{color:var(--ink);margin-bottom:48px;font-size:24px}.prose h2{margin:42px 0 18px;font-size:32px}.prose h3{margin:30px 0 16px;font-size:25px}.prose p,.prose li{color:var(--muted);font-size:16px;line-height:1.85}.prose p+p{margin-top:18px}.prose a{text-underline-offset:4px;text-decoration:underline}.prose pre{background:var(--surface);padding:20px;overflow-x:auto}.case-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding-top:25px;display:flex}.resume-page-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.resume-viewer-bar{background:var(--surface);border:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:16px 24px;display:flex}.resume-viewer-bar .text-link{border:0;padding:0;font-size:11px}.resume-viewer{background:var(--surface-strong);border:1px solid var(--line);border-top:0;width:100%;height:850px;display:block}.resume-help{margin-top:16px;font-size:12px}.pdf-fallback{text-align:center;padding:80px 30px}.pdf-fallback p{margin:24px 0}@media (width>=1600px){.hero-inner{padding-top:135px}}@media (width<=1100px){.shell{width:calc(100% - 64px)}.hero{min-height:690px}.hero h1{font-size:86px}.about-grid{gap:55px}.work-grid{grid-template-columns:1.4fr 1fr;gap:22px}.project-caption{flex-direction:column;align-items:start;gap:12px}.project-image{height:510px}.archive-toolbar{flex-direction:column;align-items:start;gap:18px}.case-body{grid-template-columns:180px minmax(0,1fr);gap:40px}}@media (width<=760px){.shell{width:calc(100% - 40px)}.section{padding-block:65px}.site-header{height:78px}.wordmark{font-size:22px}.menu-toggle{min-height:44px;font-family:var(--mono);background:0 0;border:0;align-items:center;gap:20px;font-size:11px;display:flex}.menu-toggle span{font-size:24px;transition:transform .2s}.menu-toggle[aria-expanded=true] span{transform:rotate(45deg)}.site-header nav{background:var(--dark);color:#fff;border-bottom:1px solid #ffffff30;gap:0;padding:18px 24px 28px;display:none;position:absolute;top:78px;left:0;right:0;box-shadow:0 20px 30px #0002}.site-header nav.is-open{flex-direction:column;align-items:stretch;display:flex}.site-header nav>a{padding:14px 0;font-size:17px}.nav-contact{border-top:1px solid #ffffff30;margin-top:8px;border-left:0!important}.hero{height:calc(100svh - 30px);min-height:680px;max-height:850px}.hero-inner{justify-content:center;padding-top:135px;padding-bottom:125px}.hero-video{object-position:center}.hero-shade{background:linear-gradient(90deg,#151219c4,#15121935),linear-gradient(#0000 30%,#1512199c)}.hero .eyebrow{letter-spacing:.04em;gap:8px;font-size:8px}.hero h1{margin-top:26px;font-size:clamp(58px,11.8vw,88px)}.hero-intro{max-width:440px;margin-block:23px 27px;font-size:18px}.desktop-break{display:none}.hero-bottom{flex-wrap:wrap;gap:10px;bottom:23px}.hero .button{min-height:52px;padding:15px 20px;font-size:12px}.section-heading{flex-direction:column;align-items:start;gap:22px;margin-bottom:30px}.section-heading h2{margin-top:18px}.section-heading>.text-link{margin:0}.work-grid{grid-template-columns:1fr;gap:35px}.project-image{aspect-ratio:1.12;height:auto}.project-caption{flex-direction:row;align-items:flex-end;gap:20px;padding-top:20px}.project-status{text-align:right;max-width:110px;line-height:1.7}.project-caption h3{font-size:29px}.upcoming-projects{grid-template-columns:1fr 1fr;gap:14px}.placeholder-art{height:155px}.placeholder-caption{padding:16px}.placeholder-caption h3{font-size:20px;line-height:1.18}.placeholder-caption .eyebrow{letter-spacing:0;font-size:8px}.placeholder-caption h3 span{display:none}.placeholder-caption p{margin-top:8px;font-size:8px}.mechanism{transform:translate(-50%,-50%)scale(.8)}.code-art{grid-template-columns:15px 1fr 1fr;gap:9px 6px;width:75%;top:37px}.art-label{font-size:7px;left:12px}.about-section{padding-block:65px}.about-grid{grid-template-columns:1fr;gap:40px}.portrait-wrap{max-width:500px;padding-bottom:0;padding-right:22px}.portrait-wrap>img{aspect-ratio:1.05}.portrait-mark{width:84px;height:84px;font-size:47px;bottom:50px}.about-copy h2{margin-top:21px;font-size:49px}.about-intro{font-size:16px}.about-copy>.muted{max-width:100%}.resume-section{flex-direction:column;align-items:start;gap:30px}.resume-actions{align-items:start;gap:15px}.resume-actions .button{min-width:215px}.resume-section h2{margin-top:18px}.site-footer{padding-top:58px}.footer-heading{gap:20px}.footer-heading h2{font-size:clamp(37px,7.8vw,56px)}.contact-circle{flex:0 0 60px;width:60px;height:60px}.contact-circle svg{width:27px;height:27px}.email-link{font-size:13px}.footer-bottom{flex-direction:column;align-items:start;gap:12px;margin-top:50px;padding-block:22px}.footer-bottom>div{gap:24px}.page-section{padding-block:45px 65px}.page-title{margin-block:24px 34px;font-size:clamp(48px,9.8vw,74px)}.archive-toolbar{margin-bottom:28px}.filters{gap:3px}.filters button{padding:9px 13px;font-size:10px}.archive-grid{grid-template-columns:1fr;gap:35px}.archive-grid .placeholder-art{aspect-ratio:2}.case-heading{flex-direction:column;align-items:start;gap:0;margin-bottom:24px}.case-heading .page-title{margin-bottom:22px}.back-link{margin-bottom:25px}.case-body{grid-template-columns:1fr;gap:35px;padding:35px 0 60px}.case-body aside{border-bottom:1px solid var(--line);padding-bottom:25px;position:static}.case-body aside nav{flex-flow:wrap;gap:15px;margin-top:15px;font-size:11px}.prose .case-intro{margin-bottom:35px;font-size:22px}.prose h2{font-size:28px}.prose p,.prose li{font-size:14px}.media-gallery{grid-template-columns:1fr;gap:10px}.media-frame img,.media-frame video{max-height:75svh}.case-bottom{flex-direction:column;align-items:start}.resume-page-heading{flex-direction:column;align-items:start;gap:0;margin-bottom:35px}.resume-viewer{height:65svh;min-height:440px}.resume-viewer-bar{gap:12px;padding:15px}.resume-viewer-bar .mono{font-size:9px}.resume-viewer-bar .text-link{gap:8px;font-size:10px}.pdf-fallback h2{font-size:32px}}@media (width<=370px){.shell{width:calc(100% - 32px)}.hero h1{font-size:56px}.hero .eyebrow{font-size:7px}.upcoming-projects{grid-template-columns:1fr}.placeholder-art{height:170px}.footer-heading h2{font-size:34px}.project-caption{flex-direction:column;align-items:start}.project-status{text-align:left;max-width:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.project-link:hover .project-image>img,.button:hover,.contact-circle:hover{transform:none}}.mobile-pdf-card{display:none}@media (width<=760px){.resume-viewer,.resume-help{display:none}.mobile-pdf-card{text-align:center;background:var(--surface);border:1px solid var(--line);border-top:0;flex-direction:column;align-items:center;padding:45px 24px;display:flex}.mobile-pdf-card h2{margin-top:30px;font-size:32px}.mobile-pdf-card p{color:var(--muted);margin:17px 0 23px;font-size:12px}.document-art{background:var(--paper);width:130px;height:170px;box-shadow:6px 7px 0 var(--accent-border);text-align:left;padding:20px;transform:rotate(-5deg)}.document-art span{margin-bottom:15px;font-size:22px;font-weight:650;display:block}.document-art i{background:var(--accent-border);height:3px;margin-top:7px;display:block}.document-art i:nth-child(3){width:60%}.document-art small{font:7px var(--mono);margin-top:15px;display:block}}.hero-poster{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero[data-has-clips=true] .hero-poster{opacity:.2}.hero[data-has-clips=false] .hero-video{display:none}.hero-bottom{justify-content:space-between;gap:16px}.hero-controls{flex-shrink:0;gap:8px;display:flex}.hero-project{font:11px var(--mono);text-underline-offset:5px;max-width:55%;padding-block:10px;text-decoration:underline}.hero-bottom[hidden],.hero-project[hidden],.reel-next[hidden]{display:none}.selected-projects{grid-template-columns:repeat(3,minmax(0,1fr))}.selected-projects .project-image{aspect-ratio:4/3;height:auto}.selected-projects .project-caption{flex-direction:column;align-items:start;gap:12px}.selected-projects .project-caption h3{font-size:28px}.selected-projects .project-status{text-align:left;max-width:none}.project-cover-placeholder{background:linear-gradient(135deg, var(--accent-soft), var(--surface-strong));height:100%;color:var(--ink);flex-direction:column;justify-content:flex-end;gap:20px;padding:70px 28px 28px;display:flex}.project-cover-placeholder>.mono{color:var(--muted);font-size:12px}.project-cover-placeholder>span:last-child{max-width:320px;font-size:clamp(24px,2.6vw,40px);line-height:1.15}.case-body--simple{min-height:180px;display:block}.case-body--simple .prose{max-width:960px;margin-inline:auto}@media (width>=761px){.hero[data-has-clips=true][data-orientation=portrait] .hero-video{object-fit:contain;width:48%;left:auto;right:0}.hero[data-has-clips=true][data-orientation=portrait] .hero-copy{max-width:50%}.hero[data-has-clips=true][data-orientation=portrait] .hero-shade{background:linear-gradient(90deg,#151219 0%,#151219ee 45%,#15121915 65%),linear-gradient(#15121970,#0000 15% 80%,#151219b3)}}@media (width<=760px){.selected-projects{grid-template-columns:1fr}.hero[data-has-clips=true]{height:auto;min-height:max(760px, calc(var(--hero-copy-bottom,470px) + 56.25vw + 110px));max-height:none}.hero[data-has-clips=true] .hero-inner{justify-content:flex-start;padding-top:110px;padding-bottom:0;position:absolute;inset:0}.hero[data-has-clips=true][data-orientation=landscape] .hero-video{top:var(--hero-copy-bottom,470px);aspect-ratio:16/9;object-fit:contain;background:var(--dark);height:auto}.hero[data-has-clips=true][data-orientation=landscape] .hero-shade{height:var(--hero-copy-bottom,470px);background:linear-gradient(180deg, #151219b3, var(--dark));bottom:auto}.hero[data-has-clips=true][data-orientation=portrait] .hero-video{object-fit:cover;width:100%;height:100%;inset:0}.hero[data-has-clips=true][data-orientation=portrait] .hero-shade{background:linear-gradient(#151219b3,#15121999 48%,#15121915 75%,#151219c4)}.hero-bottom{flex-direction:column;align-items:flex-start;gap:6px}.hero-project{max-width:100%;font-size:10px}}
