@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAa0ABQAAAAADOwAAAZHAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbbhwoP0hWQVJtP01WQVJGBmA/U1RBVIEcAGQvXBEICoMkgmcLFgAwhEwBNgIkAyYEIAWGXAdiDAcbOgtRlHLSRcD8TEzkdoghPRuspKefbVnJIM5yRfA8vZv9uTNJSCZY21Scrigr6qyJ/C3sE1OFKuVP3e+lxUTbYio1zb/kFdk2bufY2BlhWERRBrcDUBhB5GEpd2Cy+MDxqf9zLPX+XVsk5r+s50d6IpWLatqbdT6f2MAikiOKQocbjya2QT0DqPDX4R0jQBgAUAiCRhDA0EkvYeLk9X3I2bEWI8jBAihIANm+kUWQBgggWChcBBdFhXlAUgOCAgBA0AgKjUJ8HKvjddFCKSgAVklEBYAeEJgCQJH0qB3B+neDg4sAA4hAD0AVIEAA0IACJGeaUjMIIIhBUE/zNABjTQMBwEVRcwcYBUCObLERABAgjAA1M/ZSa9hSi4OlpsnZ2KBOVUsAZlRGl1W0NZ6gSwhQPIAFs7YFL0QS91vRQgdgx2VDAnIegKpQvwAJIoLgooBAGtCJcHizg0TDiz8vhPgIcVXaDJu37ZyDAIjFy4AAiC1JAA0olJwN6nFAACQk/zfQVUuA3t5ELKMT9hpBSRj+HBSggYCIAIEkUoC4PCIQIWHGA8+IStxf0PW15ntP22gc+Wo+BLyQAHECQiAVd+c3Ba8gZ4NOACBaLOhsbIMkAXEmuHsSAvkf4oJaAogH6nEQAzoBIEihUAwAA0AACAObAGcANYAAABaqgMmpWAhiiVyrvNyqFV8tMQ5Iyq6r9Lf7W82i8ILl2cv8zbfdJ5lnPzSnvt/XXPfRR/5pH3xA+u5uS0798EPJ3Fft33w36Wc+8E/7aIB/9fvvb1pE9erNXLB9mkw//cSg8Cnx03VGXDvZnRzKqV9Xkhn7eRHb3wVjHpg19nkZpX9bBU+vnHegrsuQcbW9Bi7oO33h+8SU0Tly/MbeYUuG1cftVz6oNxrW0qH1iezq446fkDFo/rgvTkqt7zmteFzncZ0uxXti09FFF2z+C7CODpjUudOE5NSeb3bv/mbPKcmOEzpWQ3VBgBAuj/AOY3qMm7UvgA8qo3+qvAUBBAX0wADQG4AG+jCKaSxkBe/zvcTG8jRpRZgqhCog4sd++cOo7J+/RdvaaMoc78Ri/PNPSclx6fDvG1Kt3qQFi1rq+5EaavTtt9TVvfvucYsA5wc4oESU+E1ikF9TkrOkIsIH5Fawx7SBNLnMcWlM3skBluCmQNs7GeyFvYVDamsqwhxx18n/+WdxzDgOLU1AqbUlb3m+KOT9+ONvY/7XlrdLS//5v7nN97XHj0VzJpJvz4spq0V7ioXDuv2YrSxtF/KZmvbWfKtorXSh8dfvgGu+ev/nFSaXM6jyuCE/f/EpmuP7Rqu8R98vP/+tXUdrOgKlZP9Q/s+fRF9+3CHZd4EugfPv158me9X7v/6aSMCxMJmIr//65bNXngl7+uiPP5oKx+y27D8trp+psUzMacpm80XlnYeMAct0LynxhNYgaP3dtn8/LBAi+ksr+7NvjjtJV+UXrz0uLXV1x08AZRN1S2A8EaVE5afk/dfGjz//+fdHn36Xdttz2d9/z+bawZ8/slNN1aYtq+ZPGzNuPGdwOsfYflwmHCkPgs5DcKizvdpS/3gEUMW9/lvQvWp1bGTW1fpngC/uSVYAfH3TeSusL8TtlHUD4KAAEHjahk4YpuffGwEBN/dUmpHqdHyJ3Ap8O3UlQ4gCNrMRwLBBKiskL6a+RoBi/9XGlgc8L4/CUejQxaiIyqmomdhktOhfgDbDfaNDb4+yKIPd6IgmzDa0CByijWFmL2dlSRKagTIWXeIU9HDphoZiJeBTjAefHMxDhVSRFUgVcOkW3EGMahYVMFjWHhMluB2wAcbHYqF1LpsDF9C6s+CI2fDgh4wSuFEyGadjXAmIk3CugIRibLIti9ZtC8S4VSqfikGqPaoI122XyRYLBmsOmdiiTpqK1OklUQzpMcZmQRQV4M4oJCMkfRQXK+qvjifUcQd1bRdetW/LWjacYxvcttnVjWg5h0q4xw6rZyejSpZVZ78LzC4uyDNRQ4bymHSTMyM+SZ7D75mg/7YTlmNz7W8T00h0VEiGKB+F7iWYZFvSTiA4LVxttm2ATt5EoUWLJbY4EnLGrfsvEROlHtzlKn3H9VUT5tU/2dt3/EBv7foYzV/W4upyj04woO/gh6Vwwt3WGQAA)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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.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}.portfolio-chat .chat-panel{background:var(--page);-webkit-backdrop-filter:none;backdrop-filter:none;width:min(384px,100vw - 24px);height:auto;min-height:0;max-height:min(620px,100dvh - 100px);padding:16px}.portfolio-chat .chat-title-row{text-align:center;padding:0 32px;display:block;position:relative}.portfolio-chat .chat-identity{flex-direction:column;align-items:center;display:flex}.portfolio-chat .chat-avatar{object-fit:contain;background:var(--folder);letter-spacing:0;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:16px;font-weight:600;display:flex}.portfolio-chat .chat-avatar-pending{flex-direction:column;align-items:center;gap:3px;display:flex}.portfolio-chat .chat-avatar-pending small{color:var(--muted);letter-spacing:0;font-size:10px;line-height:16px}.portfolio-chat .chat-name-row{justify-content:center;align-items:center;gap:8px;min-height:24px;margin-top:8px;display:inline-flex}.portfolio-chat .chat-title-row h2{letter-spacing:-.3px;margin:0;font-size:17px;font-weight:600;line-height:24px}.portfolio-chat .chat-title-row p{letter-spacing:0;margin-top:2px;font-size:12px;line-height:18px}.portfolio-chat .chat-close{border-color:#0000;width:44px;height:44px;position:absolute;top:-8px;right:-8px}.portfolio-chat .chat-status{width:16px;height:24px;color:var(--muted);flex:0 0 16px;justify-content:center;align-self:center;align-items:center;margin:0;display:inline-flex}.portfolio-chat .chat-status.connected{color:#52775f}.portfolio-chat .chat-status.checking{opacity:.65}.portfolio-chat .chat-status .chat-status-dot{fill:currentColor;stroke:none}.portfolio-chat .chat-status svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}:root[data-theme=dark] .portfolio-chat .chat-status.connected{color:#9abc9c}.portfolio-chat .chat-body{min-height:0;max-height:min(360px, calc(var(--chat-viewport-height,100dvh) - 290px));scrollbar-gutter:auto;flex:0 auto;margin-top:14px}.portfolio-chat .chat-messages{border:0;flex-direction:column;gap:12px;min-height:0;margin:0;padding:0;display:flex}.portfolio-chat .chat-body:has(.chat-message):before{content:"";z-index:2;pointer-events:none;background:linear-gradient(to bottom, color-mix(in srgb, var(--page) 85%, transparent), transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);height:24px;margin-bottom:-24px;display:block;position:sticky;top:0;-webkit-mask-image:linear-gradient(#000 0%,#0009 45%,#0000 100%);mask-image:linear-gradient(#000 0%,#0009 45%,#0000 100%)}.portfolio-chat .chat-body:has(.chat-message) .chat-messages{padding-top:24px}.portfolio-chat .chat-message{border:0;flex-direction:column;gap:3px;width:fit-content;max-width:94%;padding:0;display:flex}.portfolio-chat .chat-message.you{align-self:flex-end;max-width:84%}.portfolio-chat .chat-message small{letter-spacing:0;text-transform:none;font-size:10px;line-height:16px}.portfolio-chat .chat-message.you small{text-align:right}.portfolio-chat .chat-message>div{background:#eee;border-radius:18px;padding:12px 14px}.portfolio-chat .chat-message.you>div{background:#e3effa}.portfolio-chat .chat-message.notice>div{border:1px solid var(--line);background:0 0}.portfolio-chat .chat-message p{letter-spacing:0;font-size:15px;line-height:24px}.portfolio-chat .chat-empty,.portfolio-chat .chat-pending{letter-spacing:0;font-size:14px;line-height:22px}.portfolio-chat .chat-sources{letter-spacing:0;gap:6px 12px;font-size:12px;line-height:19px}.portfolio-chat .chat-sources a{overflow-wrap:anywhere}.portfolio-chat .chat-suggestions{gap:0;margin:0;padding:0;display:grid}.portfolio-chat .chat-suggestions button{border:0;border-bottom:1px solid var(--line);text-align:left;min-height:44px;color:var(--muted);letter-spacing:0;border-radius:0;justify-content:space-between;align-items:center;gap:14px;padding:9px 14px;font-family:inherit;font-size:14px;line-height:22px;display:flex}.portfolio-chat .chat-suggestions button:last-child{border-bottom:0}.portfolio-chat .chat-suggestions button span:last-child{flex:none;font-size:13px}.portfolio-chat .chat-messages:not(:empty)+.chat-suggestions{margin-top:10px}.portfolio-chat .chat-composer{border:1px solid var(--line);background:#f2f2f2;border-radius:24px;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:4px;margin-top:12px;padding:1px 2px 1px 8px}.portfolio-chat .chat-composer.is-focused{outline:2px solid var(--ink);outline-offset:2px}.portfolio-chat .chat-composer textarea:focus-visible{outline:none}.portfolio-chat .chat-composer textarea{letter-spacing:0;border:0;min-height:44px;max-height:120px;padding:11px 5px;font-family:inherit;font-size:14px;line-height:22px}.portfolio-chat .chat-composer button{width:44px;height:44px;color:var(--ink);background:0 0;border:0;font-size:18px}.portfolio-chat .chat-new-reply{border:1px solid var(--line);background:var(--page);letter-spacing:0;border-radius:24px;align-self:center;min-height:44px;padding:8px 14px;font-size:12px}:root[data-theme=dark] .portfolio-chat .chat-message>div{background:#252525}:root[data-theme=dark] .portfolio-chat .chat-message.you>div{background:#20344a}:root[data-theme=dark] .portfolio-chat .chat-message.notice>div{background:0 0}:root[data-theme=dark] .portfolio-chat .chat-composer{background:#202020}@media (width<=600px){.portfolio-chat .chat-composer textarea{font-size:16px}.portfolio-chat .chat-panel{width:100%;max-height:calc(var(--chat-viewport-height,100dvh) - 82px);padding:16px}.portfolio-chat{left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom), var(--chat-keyboard-inset,0px))}.portfolio-chat .chat-launcher{margin-left:auto;display:block}}:root body,:root.theme-reveal-active body{transition:none}:root.theme-reveal-active::view-transition-old(root){mix-blend-mode:normal;animation:none}:root.theme-reveal-active::view-transition-new(root){mix-blend-mode:normal;animation:none}:root.theme-reveal-active::view-transition-image-pair(root){isolation:isolate}:root.theme-reveal-active::view-transition-old(root){z-index:1}:root.theme-reveal-active::view-transition-new(root){z-index:2}:root.theme-reveal-active::view-transition{pointer-events:none}@media (prefers-reduced-motion:reduce){:root::view-transition-group(root){animation:none!important}:root::view-transition-old(root){animation:none!important}:root::view-transition-new(root){animation:none!important}}.portfolio-chat .pi-man-avatar{perspective:480px;flex:none;width:96px;height:96px;margin:0;overflow:visible}.pi-man-head{transform-origin:50% 65%;width:100%;height:100%;transform-style:preserve-3d;position:relative}.portfolio-chat .pi-man-avatar img{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;background:0 0;border-radius:0;width:100%;height:100%;display:block}.pi-man-body{position:absolute;inset:0}.pi-man-eyes{z-index:2;pointer-events:none;position:absolute;inset:0}.pi-man-eye{background:radial-gradient(at 31% 25%,#fff 0 12%,#c1c0c2 14%,#46464b 19%,#25252a 42%,#08090b 75%);border-radius:50%;width:16.5%;height:17%;position:absolute;box-shadow:inset -1px -1px 2px #000,0 1px 1px #bda220}.pi-man-eye.left{top:36.8%;left:32.9%}.pi-man-eye.right{top:36.5%;left:56.75%}.pi-man-monocle{z-index:3;fill:none;stroke:url(#pi-monocle-metal);stroke-width:1.8px;stroke-linecap:round;filter:drop-shadow(0 1px #b7a034);pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.portfolio-chat .pi-man-hat{z-index:4;transform-origin:34% 32%;clip-path:polygon(0 0,60% 0,60% 19%,56% 27%,46% 32%,30% 35%,17% 36%,9% 35%,0 32%);position:absolute;inset:0}@media (prefers-reduced-motion:reduce),(pointer:coarse),(hover:none){.portfolio-chat .pi-man-head,.portfolio-chat .pi-man-eyes,.portfolio-chat .pi-man-hat{transform:none!important}}.tray-stage,.case-carousel-track{--carousel-feather:min(4vw, 32px);-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--carousel-feather), #000 calc(100% - var(--carousel-feather)), transparent);-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--carousel-feather), #000 calc(100% - var(--carousel-feather)), transparent);mask-image:linear-gradient(to right, transparent, #000 var(--carousel-feather), #000 calc(100% - var(--carousel-feather)), transparent);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.case-carousel .case-carousel-card{opacity:1;filter:none}.case-carousel .case-carousel-card.is-adjacent .media-thumbnail{filter:blur(2px)saturate(.75);opacity:.66;transition:filter .18s,opacity .18s}.case-carousel .case-carousel-card.is-adjacent:focus-within .media-thumbnail,.case-carousel .case-carousel-card.is-active .media-thumbnail{filter:none;opacity:1}.case-carousel .case-carousel-neighbor img,.case-carousel .case-carousel-play img,.case-carousel .case-carousel-source img{object-fit:contain}.case-carousel .case-carousel-play>.case-play-icon,.case-carousel .case-carousel-source>.case-source-icon{color:#151515;opacity:0;pointer-events:none;background:#ffffffeb;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;transition:opacity .15s;display:grid}.case-play-icon svg,.case-source-icon svg{width:26px;height:26px}.case-carousel .case-carousel-play:hover>.case-play-icon,.case-carousel .case-carousel-play:focus-visible>.case-play-icon,.case-carousel .case-carousel-source:hover>.case-source-icon,.case-carousel .case-carousel-source:focus-visible>.case-source-icon{opacity:1}.case-carousel :is(.case-carousel-play,.case-carousel-neighbor,.case-carousel-source):focus-visible{outline:2px solid var(--ink);outline-offset:-3px}.case-carousel .case-carousel-controls button{min-width:44px;min-height:44px}.case-carousel .case-carousel-track{height:auto;min-height:250px;padding-block:12px}.case-carousel{--landscape-card-width:min(78vw,520px);--portrait-card-width:min(42vw,220px);--square-card-width:min(60vw,360px)}.case-carousel .case-carousel-track{padding-left:max(24px,calc((100% + 48px - var(--first-card-width))/2));padding-right:max(24px,calc((100% + 48px - var(--last-card-width))/2))}.case-carousel .case-carousel-track.is-single{justify-content:center;min-height:0;margin-inline:0;padding-inline:0;-webkit-mask-image:none;mask-image:none}.case-carousel .case-carousel-track.is-single .case-carousel-card.is-portrait{flex-basis:min(68vw,320px)}.case-carousel .case-carousel-card.is-portrait{flex-basis:min(42vw,220px)}.case-carousel .case-carousel-card.is-portrait .youtube-player{max-height:none}.youtube-player .project-poster.player-poster{height:100%;overflow:hidden}.youtube-player .project-poster.player-poster>img{aspect-ratio:auto;object-fit:contain;height:100%}.project-poster>.media-thumbnail{object-fit:contain}.case-media .project-poster>.media-thumbnail{aspect-ratio:var(--poster-ratio);object-fit:contain}.source-media-frame>.media-thumbnail{object-fit:contain;height:100%}.source-media-frame:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.case-additional-sources,.case-unavailable-sources{color:var(--muted);margin-top:14px;font-size:10px;line-height:1.7}.case-additional-sources p,.case-unavailable-sources p{margin:0 0 4px}.case-additional-sources ul,.case-unavailable-sources ul{flex-wrap:wrap;gap:4px 18px;margin:0;padding:0;list-style:none;display:flex}.case-additional-sources a,.case-unavailable-sources a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.case-unavailable-sources summary{cursor:pointer;width:fit-content}.case-unavailable-sources[open] summary{margin-bottom:4px}@media (width<=600px){.case-carousel{--landscape-card-width:min(78vw,360px);--portrait-card-width:min(46vw,210px);--square-card-width:min(64vw,280px)}.case-carousel .case-carousel-card.is-portrait{flex-basis:min(46vw,210px)}}@media (prefers-reduced-motion:reduce){.case-carousel .case-carousel-card,.case-carousel .case-carousel-card .media-thumbnail,.case-carousel .case-carousel-play>.case-play-icon,.case-carousel .case-carousel-source>.case-source-icon{transition:none}}.page-text-scramble{z-index:10000;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.is-scrambling-text{-webkit-text-fill-color:transparent!important;text-shadow:none!important}.is-scrambling-placeholder::placeholder{color:#0000!important;-webkit-text-fill-color:transparent!important}.identity-stack{isolation:isolate;--identity-ease:cubic-bezier(.77,0,.175,1);width:108px;height:84px;display:block;position:relative;text-decoration:none!important}.identity-tile{color:#36332e;letter-spacing:-.7px;transform-origin:75% 65%;width:56px;height:56px;animation:identity-tile-tap 5s var(--identity-ease) infinite;background:linear-gradient(145deg,#f4f1e9,#ded9cf);border:1px solid #1111111f;border-radius:10px;place-items:center;font-size:16px;font-weight:600;display:grid;position:absolute;top:14px;left:10px;box-shadow:inset 0 1px #fff9,0 3px #b8b2a7,0 8px 18px #0002}.identity-mascot{z-index:2;transform-origin:50% 85%;width:40px;height:40px;animation:identity-hop 5s var(--identity-ease) infinite;pointer-events:none;position:absolute;top:0;left:0;transform:translate(68px,42px)}.identity-mascot img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.identity-hand{fill:#f5cd22;stroke:#c59a13;stroke-width:.7px;stroke-linecap:round;transform-origin:100%;opacity:0;width:17px;height:17px;animation:identity-hand-tap 5s var(--identity-ease) infinite;position:absolute;top:21px;left:-5px}.identity-tap{border:1px solid var(--ink);opacity:0;z-index:3;pointer-events:none;border-radius:50%;width:18px;height:18px;animation:5s linear infinite identity-tap-ring;position:absolute;top:40px;left:55px}.identity-shadow{background:var(--ink);opacity:.12;width:26px;height:5px;animation:identity-ground-shadow 5s var(--identity-ease) infinite;pointer-events:none;border-radius:50%;position:absolute;top:78px;left:73px}@keyframes identity-hop{0%,9%,to{transform:translate(68px,42px)rotate(0)scale(1)}12%{transform:translate(68px,44px)rotate(-5deg)scale(1.06,.9)}23%{transform:translate(38px,-12px)rotate(-12deg)scale(.98,1.04)}34%{transform:translate(-16px,38px)rotate(6deg)scale(1.05,.92)}38%{transform:translate(-16px,36px)rotate(0)scale(1)}49%{transform:translate(20px,-14px)rotate(12deg)scale(.98,1.04)}60%{transform:translate(64px,23px)rotate(-5deg)scale(1.04,.94)}64%,68%{transform:translate(64px,21px)rotate(-10deg)scale(1)}71%{transform:translate(61px,23px)rotate(-15deg)scale(1.02,.98)}75%{transform:translate(64px,21px)rotate(-5deg)scale(1)}82%{transform:translate(77px,10px)rotate(8deg)scale(1)}91%{transform:translate(68px,44px)rotate(-3deg)scale(1.04,.94)}95%{transform:translate(68px,42px)rotate(0)scale(1)}}@keyframes identity-tile-tap{0%,68%,77%,to{transform:rotate(-4deg)translateY(0)}71%{transform:rotate(-1deg)translateY(2px)scale(.975)}74%{transform:rotate(-5deg)translateY(-1px)}}@keyframes identity-hand-tap{0%,60%,79%,to{opacity:0;transform:translate(4px)rotate(20deg)}65%,68%{opacity:1;transform:translate(0)rotate(0)}71%{opacity:1;transform:translate(-3px)rotate(-8deg)}75%{opacity:1;transform:translate(1px)rotate(8deg)}}@keyframes identity-tap-ring{0%,68%,79%,to{opacity:0;transform:scale(.8)}71%{opacity:.32;transform:scale(.9)}78%{opacity:0;transform:scale(1.8)}}@keyframes identity-ground-shadow{0%,12%,95%,to{opacity:.12;transform:scaleX(1)}23%,49%{opacity:.025;transform:translate(-30px)scaleX(.55)}34%,38%{opacity:.12;transform:translate(-84px)scaleX(1)}60%,75%{opacity:.07;transform:translate(-4px)scaleX(.8)}82%{opacity:.04;transform:translate(9px)scaleX(.6)}91%{opacity:.12;transform:scaleX(1)}}@media (hover:hover) and (pointer:fine){.identity-stack:hover .identity-tile{filter:brightness(1.04)}.identity-stack:hover>span,.identity-stack:hover .identity-hand{animation-play-state:paused}}.identity-stack:focus-visible{border-radius:12px}.identity-stack:focus-visible>span,.identity-stack:focus-visible .identity-hand{animation-play-state:paused}.identity-stack:active .identity-tile{animation-play-state:paused;transform:translateY(2px)rotate(-2deg)}@media (prefers-reduced-motion:reduce){.identity-tile{animation:none;transform:rotate(-4deg)}.identity-mascot{animation:none;transform:translate(68px,42px)}.identity-hand,.identity-tap{display:none}.identity-shadow{animation:none}}:root{color:#111;background:var(--page);font-synthesis:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#fafafa;--ink:#111;--muted:#6f6f6f;--label:#716e69;--line:#dedcd7;--folder:#ebe9e4;--flap-top:#ffffffb8;--flap-bottom:#faf9f699;--flap-rim:#ffffff8c;--flap-outline:#1111110f;--glass:#ffffff9e;font-family:Plus Jakarta Sans Variable,Plus Jakarta Sans,system-ui,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#111;--ink:#f0f0f0;--muted:#b8b5af;--label:#9f9c96;--line:#373737;--folder:#272727;--flap-top:#2d2d2dcc;--flap-bottom:#1d1d1db8;--flap-rim:#ffffff29;--flap-outline:#ffffff0d;--glass:#2c2c2cad}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--page);color:var(--ink);letter-spacing:0;margin:0;font-size:13px;font-weight:400;line-height:26px}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0}a{color:inherit;text-decoration:none}a:hover{text-underline-offset:4px;text-decoration:underline}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}button:active{transition-duration:.14s;transform:scale(.985)}.skip-link{z-index:50;background:var(--ink);color:var(--page);padding:8px 12px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:12px}.home{width:100%;max-width:720px;margin:0 auto;padding:80px 24px 64px}.top-row{justify-content:space-between;align-items:flex-start;height:84px;display:flex}.utility-controls{gap:8px;display:flex}.utility-controls button{letter-spacing:1px;background:0 0;border:1px solid #0000;border-radius:50%;width:40px;height:40px;padding:0;font-size:10px;font-weight:500;transition:border-color .2s,background .2s}.utility-controls button:hover{border-color:var(--ink)}.theme-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;width:16px;height:16px}.intro{width:min(100%,580px);margin-top:16px}.intro-heading-row{justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;display:flex}.intro-heading-row h1{flex:auto}.intro h1{letter-spacing:1px;margin:0;font-size:13px;font-weight:500;line-height:26px}.intro p{color:var(--muted);margin:0}.recognition-badge{aspect-ratio:600/733;filter:drop-shadow(0 7px 9px #201d1838);transform-origin:50%;flex:none;width:62px;transition:transform .18s cubic-bezier(.22,1,.36,1),filter .18s;display:block;position:relative;overflow:visible;transform:perspective(400px)rotateX(5deg)rotateY(-5deg);text-decoration:none!important}.recognition-badge:before{content:"";background:#796029;border-radius:2px;transition:box-shadow .18s;position:absolute;inset:3.3% 7% 3%;box-shadow:0 1px #b79a51,0 2px #8b702f,0 3px #5e4a20,0 4px #453818,0 5px #312813}.recognition-badge img{aspect-ratio:600/733;object-fit:contain;width:100%;height:auto;display:block;position:relative}@media (hover:hover){.recognition-badge:hover{filter:drop-shadow(0 11px 12px #201d1847);transform:perspective(400px)translateY(-3px)rotateX(7deg)rotateY(-7deg)}}.recognition-badge:focus-visible{outline:2px solid var(--ink);outline-offset:5px;filter:drop-shadow(0 11px 12px #201d1847);border-radius:3px;transform:perspective(400px)translateY(-3px)rotateX(7deg)rotateY(-7deg)}.recognition-badge:active{filter:drop-shadow(0 2px 3px #201d1833);transition-duration:80ms;transform:perspective(400px)translateY(3px)rotateX(0)rotateY(0)}.recognition-badge:active:before{transition-duration:80ms;box-shadow:0 1px #5e4a20}@media (prefers-reduced-motion:reduce){.recognition-badge,.recognition-badge:hover,.recognition-badge:focus-visible,.recognition-badge:active{transition:none;transform:none}.recognition-badge:before{transition:none}}.career-fold{z-index:12;width:fit-content;max-width:100%;margin-bottom:2px;position:relative}.career-fold .role-line{max-width:100%;color:var(--ink);text-align:left;background:0 0;align-items:center;gap:8px;padding:0;display:inline-flex}.career-fold .role-line span{text-underline-offset:5px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .18s}.career-fold .role-line i{font-size:10px;font-style:normal;transition:transform .22s cubic-bezier(.22,1,.36,1)}.career-fold .role-line:hover span,.career-fold .role-line:focus-visible span,.career-fold.is-open .role-line span{-webkit-text-decoration-color:color-mix(in srgb, var(--ink) 28%, transparent);text-decoration-color:color-mix(in srgb, var(--ink) 28%, transparent)}.career-fold.is-open .role-line i{transform:rotate(-90deg)}.career-popover{visibility:hidden;opacity:0;pointer-events:none;transform-origin:0 0;width:min(430px,100vw - 48px);padding-top:16px;transition:opacity .18s,transform .24s cubic-bezier(.22,1,.36,1),visibility 0s linear .24s;position:absolute;top:calc(100% + 10px);left:-14px;transform:translateY(-7px)scale(.985)}.career-fold.is-open .career-popover{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s;transform:translateY(0)scale(1)}.career-tab{z-index:1;border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);background:var(--folder);min-width:92px;height:28px;color:var(--label);text-transform:uppercase;letter-spacing:1px;border-bottom:0;border-radius:10px 10px 0 0;place-items:center;padding:0 12px;font-size:8px;display:grid;position:absolute;top:0;left:18px}.career-sheet{z-index:2;border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);background:linear-gradient(180deg, var(--flap-top), var(--flap-bottom));-webkit-backdrop-filter:blur(18px)saturate(1.55);backdrop-filter:blur(18px)saturate(1.55);border-radius:12px 18px 18px;padding:16px 18px 13px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffd1,0 18px 44px #1f1c1729}.career-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:18px;padding-bottom:8px;display:flex}.career-head b{text-transform:uppercase;letter-spacing:1px;font-size:10px;font-weight:500}.career-head a{color:var(--muted);font-size:8px}.career-sheet ol{margin:0;padding:0;list-style:none}.career-sheet li{border-bottom:1px solid color-mix(in srgb, var(--line) 72%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:18px;padding:8px 0;display:grid}.career-sheet li span{min-width:0;display:grid}.career-sheet li b{letter-spacing:-.1px;font-size:10px;font-weight:500;line-height:15px}.career-sheet li small,.career-sheet time{color:var(--muted);letter-spacing:.1px;font-size:8px;line-height:14px}.career-sheet time{white-space:nowrap}.career-sheet>p{color:var(--label);letter-spacing:.5px;text-transform:uppercase;margin-top:9px;font-size:7px;line-height:12px}.intro-contact{color:var(--muted);gap:2px;margin-top:16px;font-size:11px;line-height:20px;display:grid}.intro-contact>div{flex-wrap:wrap;gap:4px 18px;display:flex}.intro-contact>span{color:var(--muted);display:block}.intro-contact a{color:var(--ink);letter-spacing:-.15px;font-weight:500;transition:transform .18s}.intro-contact a:hover,.intro-contact a:focus-visible{transform:translate(2px)}.portfolio-chat{z-index:30;right:max(20px, env(safe-area-inset-right));bottom:max(20px, env(safe-area-inset-bottom));position:fixed}.chat-launcher{border:1px solid color-mix(in srgb, var(--ink) 16%, transparent);background:color-mix(in srgb, var(--page) 90%, transparent);min-height:42px;color:var(--ink);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);letter-spacing:-.1px;border-radius:99px;padding:10px 15px;font-size:11px;font-weight:500;transition:transform .18s,box-shadow .18s;box-shadow:0 10px 30px #1e1c181f}.chat-launcher:hover,.chat-launcher:focus-visible{transform:translateY(-2px);box-shadow:0 14px 34px #1e1c1829}.chat-launcher:active{transform:translateY(0)scale(.98)}.chat-launcher span{margin-left:5px}.chat-panel{border:1px solid color-mix(in srgb, var(--ink) 13%, transparent);background:color-mix(in srgb, var(--page) 94%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2);border-radius:18px;flex-direction:column;width:min(360px,100vw - 32px);max-height:min(560px,100vh - 100px);padding:18px;display:flex;position:absolute;bottom:54px;right:0;overflow:hidden;box-shadow:0 22px 60px #1e1c1833}.chat-title-row{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.chat-title-row,.chat-status,.chat-composer{flex-shrink:0}.chat-title-row h2{letter-spacing:-.1px;margin:0;font-size:13px;font-weight:500;line-height:20px}.chat-title-row p{color:var(--muted);margin:2px 0 0;font-size:9px;line-height:16px}.chat-close{border:1px solid var(--line);background:0 0;border-radius:50%;flex:none;width:32px;height:32px;font-size:17px;line-height:1}.chat-status{color:var(--muted);white-space:nowrap;align-self:flex-start;align-items:center;gap:6px;margin-top:10px;font-size:9px;line-height:18px;display:inline-flex}.chat-status i{background:#a39f98;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #a39f9824}.chat-body{overscroll-behavior:contain;min-height:0;margin-top:12px;overflow-y:auto}.chat-messages{border-top:1px solid var(--line);min-height:64px;margin:0 0 10px;padding:10px 6px 2px 0}.chat-empty,.chat-pending{color:var(--muted);margin:0;font-size:10px;line-height:18px}.chat-message{border-top:1px solid var(--line);grid-template-columns:58px 1fr;gap:10px;padding:9px 0;display:grid}.chat-message small{color:var(--label);text-transform:uppercase;font-size:8px;line-height:18px}.chat-message p{min-width:0;color:var(--ink);letter-spacing:.2px;overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:11px;line-height:18px}.chat-message.notice p{color:var(--muted)}.chat-message.assistant p{color:var(--ink)}.chat-message>div{min-width:0}.chat-privacy{color:var(--muted);margin:4px 0 8px;font-size:9px;line-height:15px}.chat-sources{color:var(--muted);flex-wrap:wrap;gap:4px 10px;margin-top:8px;font-size:9px;line-height:15px;display:flex}.chat-sources a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.chat-suggestions{flex-wrap:wrap;gap:6px;padding:2px 0 4px;display:flex}.chat-suggestions button{border:1px solid var(--line);color:var(--muted);letter-spacing:.1px;background:0 0;border-radius:99px;padding:6px 9px;font-size:9px;line-height:15px}.chat-suggestions button:hover,.chat-suggestions button:focus-visible{color:var(--ink);border-color:var(--ink)}.chat-composer{grid-template-columns:1fr 38px;gap:8px;margin-top:10px;display:grid}.chat-composer textarea{field-sizing:content;resize:none;border:0;border-bottom:1px solid var(--line);min-width:0;min-height:36px;max-height:90px;color:var(--ink);letter-spacing:.3px;background:0 0;border-radius:0;outline:none;padding:8px 2px 5px;font-size:11px;line-height:18px;overflow-y:auto}.chat-composer textarea:focus{border-bottom-color:var(--ink)}.chat-composer textarea::placeholder{color:var(--muted)}.chat-composer button{border:1px solid var(--line);background:0 0;border-radius:50%;width:38px;height:38px;transition:transform .18s,border-color .18s}.chat-composer button:not(:disabled):hover{border-color:var(--ink);transform:translate(2px,-2px)}.chat-composer button:disabled{opacity:.35;cursor:default}.work-section,.highlight-section,.index-section,.plain-section{margin-top:48px}.section-intro{margin-bottom:32px;display:block}.work-section .section-intro{margin-bottom:22px}.section-intro h2,.plain-section>h2{color:var(--label);letter-spacing:1.54px;text-transform:uppercase;margin:0;font-size:11px;font-weight:500;line-height:16.5px}.section-intro p{color:var(--muted);margin:6px 0 0;font-size:11px;line-height:18px}.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 22px;display:grid}.case-folder{text-align:left;perspective:1000px;background:0 0;width:100%;padding:0;display:block}.folder-stage{aspect-ratio:400/340;width:100%;transform-style:preserve-3d;display:block;position:relative}.folder-back{filter:drop-shadow(0 1px 2px #1111110f)drop-shadow(0 7px 14px #11111112)drop-shadow(0 20px 34px #11111114);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.folder-back path{fill:var(--folder)}.folder-sheet{color:#222;transform-origin:bottom;width:44%;transition:transform .3s var(--spring);background:#fff;border-radius:7px;position:absolute;bottom:18.3%;left:50%;overflow:hidden;box-shadow:0 4px 14px #1c1b1921,0 0 0 1px #1919190d}.folder-sheet img{object-fit:cover;width:100%;height:100%}.folder-sheet .project-poster{border-radius:0;width:100%;height:100%}.folder-sheet em{color:#89857d;text-transform:uppercase;letter-spacing:1px;padding:12px 12px 0;font-size:7px;font-style:normal;display:block}.folder-sheet b{-webkit-line-clamp:5;letter-spacing:.2px;-webkit-box-orient:vertical;margin:5px 12px;font-size:8px;font-weight:500;line-height:1.5;display:-webkit-box;overflow:hidden}.sheet-dark{color:#f6f3ec;background:#252525}.sheet-dark em{color:#aaa69e}.sheet-left{z-index:1;width:38%;height:59%;transform:translate(-62%)rotate(-4deg)}.sheet-center{z-index:3;transform:translate(-50%)rotate(0)}.sheet-center.sheet-video{aspect-ratio:16/9;width:64%;bottom:54%}.sheet-center.sheet-source-landscape{width:64%;aspect-ratio:var(--preview-ratio);bottom:54%}.sheet-center.sheet-source-portrait{width:auto;height:70%;aspect-ratio:var(--preview-ratio);bottom:18.3%}.sheet-center-text{width:43%;height:68%}.sheet-right{z-index:2;width:42%;height:63%;transform:translate(-38%)rotate(4deg)}.sheet-left,.sheet-right{transition-delay:20ms}.folder-flap{background:linear-gradient(180deg, var(--flap-top), var(--flap-bottom));height:76%;box-shadow:inset 0 1px 1px var(--flap-rim), inset 0 0 0 1px var(--flap-outline), 0 -3px 10px #28231c0a;backface-visibility:hidden;-webkit-backdrop-filter:blur(16px)saturate(1.6);backdrop-filter:blur(16px)saturate(1.6);transform-origin:bottom;z-index:4;border-radius:7.5%/11.6%;transition:transform .3s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0;right:0;overflow:hidden;transform:rotateX(0)}.folder-label{position:absolute;bottom:17px;left:18px;right:52px}.folder-label b{letter-spacing:-.12px;font-size:12px;font-weight:500;line-height:17.4px;display:block}.folder-label small{color:var(--muted);letter-spacing:0;margin-top:1px;font-size:10px;line-height:15px;display:block}.folder-arrow{font-size:12px;position:absolute;bottom:18px;right:18px}@media (hover:hover) and (pointer:fine){.case-folder:hover .sheet-left,.case-folder:focus-visible .sheet-left{transform:translate(-102%)translateY(-24%)rotate(-8deg)}.case-folder:hover .sheet-center,.case-folder:focus-visible .sheet-center{transform:translate(-50%)translateY(-24%)}.case-folder:hover .sheet-right,.case-folder:focus-visible .sheet-right{transform:translate(2%)translateY(-24%)rotate(8deg)}.case-folder:hover .folder-flap,.case-folder:focus-visible .folder-flap{transition-timing-function:var(--spring);transform:rotateX(-30deg)}}.highlight-section,.film-sequence,.film-sticky,.video-tray,.tray-stage{min-width:0}.film-sequence{width:100%;height:calc(100vh - 48px + var(--film-count) * 280px);position:relative}.film-sticky{z-index:2;background:linear-gradient(180deg,var(--page) 0%,var(--page) 90%,transparent 100%);align-content:center;height:calc(100vh - 48px);padding:20px 0 14px;display:grid;position:sticky;top:24px}.film-steps{z-index:0;height:calc(var(--film-count) * 280px);pointer-events:none;position:absolute;inset:0 0 auto}.film-step{height:280px}.film-sequence.is-static{width:100%;max-width:100%;height:auto;display:block;overflow:hidden}.film-sequence.is-static .film-sticky{background:0 0;width:100%;max-width:100%;height:auto;padding-bottom:0;display:block;position:relative;top:auto}.film-sequence.is-static .film-steps,.film-sequence.is-static .skip-film{display:none}.film-sequence.is-static .video-tray{width:100%;max-width:100%;overflow:hidden}.film-sequence.is-static .tray-stage{scroll-snap-type:x mandatory;scrollbar-width:none;gap:12px;width:100%;max-width:100%;height:auto;padding:8px 9%;display:flex;overflow:auto hidden}.film-sequence.is-static .tray-stage::-webkit-scrollbar{display:none}.skip-film{z-index:6;color:var(--muted);font-size:8px;line-height:16px;position:absolute;top:0;right:0}.video-tray{overflow:hidden}.tray-stage{perspective:900px;height:270px;position:relative}.glass-card{background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);text-align:left;border:1px solid #fffc;border-radius:18px;flex-direction:column;justify-content:flex-start;width:58%;height:236px;padding:0;transition:transform .3s cubic-bezier(.22,.85,.32,1),opacity .22s;display:flex;position:absolute;top:16px;left:50%;overflow:hidden;box-shadow:inset 0 1px .9px #ffffffe6,0 0 0 1px #fffc,0 18px 40px -16px #31445e59}.glass-card.left{opacity:.76;z-index:1;transform:translate(-92%)rotateY(12deg)scale(.85)}.glass-card.center{z-index:3;transform:translate(-50%)}.glass-card.right{opacity:.76;z-index:1;transform:translate(-8%)rotateY(-12deg)scale(.85)}.glass-card.far-left{opacity:0;pointer-events:none;z-index:0;transform:translate(-126%)rotateY(14deg)scale(.72)}.glass-card.far-right{opacity:0;pointer-events:none;z-index:0;transform:translate(26%)rotateY(-14deg)scale(.72)}.glass-card.static{opacity:1;z-index:1;scroll-snap-align:center;flex:0 0 min(82%,360px);position:relative;top:auto;left:auto;transform:none}.project-poster{background:#ddd8ce;border-radius:17px 17px 0 0;flex:none;width:100%;height:164px;margin:0;position:relative;overflow:hidden}.project-poster>img,.project-poster>svg{object-fit:cover;width:100%;height:100%;display:block}.project-poster .placeholder-ground{fill:#e5dfd5}.project-poster .placeholder-rule,.project-poster .placeholder-arrow{fill:none;stroke:#706d67;stroke-width:2px}.project-poster .placeholder-title{fill:#191919;letter-spacing:-.5px;font:500 27px Plus Jakarta Sans Variable,sans-serif}.project-poster .placeholder-source{fill:#706d67;letter-spacing:1px;text-transform:uppercase;font:500 13px Plus Jakarta Sans Variable,sans-serif}.project-poster figcaption{color:var(--muted);letter-spacing:.2px;margin-top:8px;font-size:9px;line-height:16px}.text-poster{color:#191919;background:linear-gradient(145deg,#d9d2c4,#f4f0e9);flex-direction:column;justify-content:space-between;height:100%;padding:14px;display:flex}.text-poster small{text-transform:uppercase;font-size:8px}.text-poster strong{letter-spacing:-.25px;font-size:15px;line-height:1.28}.glass-caption{grid-template-columns:1fr auto;column-gap:8px;width:100%;margin:0;padding:9px 12px 10px;display:grid}.glass-caption small{color:var(--muted);grid-column:1/-1;font-size:8px;line-height:12px}.glass-caption i{white-space:nowrap;font-size:8px;font-style:normal;line-height:14px}.tray-controls{justify-content:center;align-items:center;gap:13px;display:flex}.tray-controls>button{border:1px solid var(--line);background:0 0;border-radius:50%;width:36px;height:36px}.tray-controls>button:disabled{opacity:.3;cursor:default}.tray-tabs{gap:2px;display:flex}.tray-tabs button{color:var(--label);background:0 0;padding:5px 7px;font-size:9px}.tray-tabs button[aria-pressed=true]{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.active-film-name{color:var(--muted);text-align:center;margin:5px 0 0;font-size:10px}.index-section details{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.index-section summary{cursor:pointer;justify-content:space-between;gap:20px;padding:22px 0;list-style:none;display:flex}.index-section summary::-webkit-details-marker{display:none}.index-section summary span{display:grid}.index-section summary b{letter-spacing:-.3px;font-size:15px;font-weight:500;line-height:24px}.index-section summary small,.index-section summary i{color:var(--muted);font-size:10px;font-style:normal;line-height:18px}.client-filters{gap:18px;padding:4px 0 18px;display:flex;overflow-x:auto}.client-filters button{color:var(--muted);white-space:nowrap;background:0 0;padding:0;font-size:11px}.client-filters button[aria-pressed=true]{color:var(--ink);text-underline-offset:5px;text-decoration:underline}.client-filters sup{font-size:8px}.project-index{border-top:1px solid var(--line)}.project-index button{border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:68px 1fr 50px 12px;align-items:baseline;gap:12px;width:100%;padding:13px 0;display:grid}.project-index button:last-child{border-bottom:0}.project-index span,.project-index small{color:var(--muted);font-size:9px}.project-index b{letter-spacing:-.1px;font-size:12px;font-weight:500}.project-index i{font-style:normal}.plain-section{border-top:1px solid var(--line);grid-template-columns:130px 1fr;gap:22px;padding-top:20px;display:grid}.plain-section p{color:var(--muted);white-space:pre-line;margin:0;line-height:23.4px}.plain-section p+p{margin-top:12px}.text-link,.text-button{letter-spacing:-.3px;text-align:left;background:0 0;padding:0;font-size:15px;font-weight:500;line-height:24px;display:inline-block}.text-button{margin-top:18px}.text-button small{max-width:360px;color:var(--muted);letter-spacing:.3px;margin-top:4px;font-size:9px;font-weight:400;line-height:16px;display:block}.plain-section .text-link+p{margin-top:10px}.contact-section{padding-bottom:16px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scramble-text{display:inline-grid}.scramble-settled,.scramble-visual{grid-area:1/1}.scramble-settled{visibility:hidden}.language-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:fixed;overflow:hidden}.guided-dialog{border:1px solid var(--line);background:var(--page);width:min(420px,100vw - 32px);color:var(--ink);border-radius:14px;padding:24px;box-shadow:0 22px 70px #0003}.guided-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0c0c59}.guided-head{justify-content:space-between;align-items:center;display:flex}.guided-head h2{letter-spacing:-.3px;margin:0;font-size:15px;font-weight:500}.guided-head button{border:1px solid var(--line);background:0 0;border-radius:50%;width:34px;height:34px}.guided-dialog>p{color:var(--muted);font-size:11px;line-height:20px}.guided-options{border-top:1px solid var(--line);margin:18px 0;display:grid}.guided-options button{border-bottom:1px solid var(--line);text-align:left;background:0 0;justify-content:space-between;padding:12px 0;font-size:11px;display:flex}.guided-dialog .guided-answer{border-left:2px solid var(--ink);color:var(--ink);padding-left:12px}.guided-dialog>small{color:var(--muted);font-size:9px}.case-page{width:100%;max-width:648px;margin:0 auto;padding:64px 24px 80px}.case-top{justify-content:space-between;align-items:flex-start;display:flex}.back-link{background:0 0;padding:0;font-size:11px}.case-header{margin-top:56px}.section-label,.case-header .section-label{color:var(--label);text-transform:uppercase;letter-spacing:1.4px;margin:0 0 18px;font-size:10px;line-height:16px}.case-header h1{letter-spacing:-.3px;max-width:560px;margin:0;font-size:15px;font-weight:500;line-height:26px}.case-header>p:last-child{max-width:520px;color:var(--muted);letter-spacing:.3px;margin:10px 0 0;font-size:13px;line-height:23.4px}.case-media{margin-top:40px}.case-carousel{min-width:0}.case-carousel-track{overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;outline:none;align-items:center;gap:12px;height:clamp(340px,62vw,430px);margin-inline:-24px;padding-inline:max(24px,50% - min(78vw,520px)/2);display:flex;overflow:auto hidden}.case-carousel-track::-webkit-scrollbar{display:none}.case-carousel-track:focus-visible{outline:1px solid var(--ink);outline-offset:6px}.case-carousel-card{scroll-snap-align:center;scroll-snap-stop:always;opacity:.42;filter:saturate(.28)contrast(.82);flex:0 0 min(60vw,400px);min-width:0;margin:0;transition:opacity .18s,filter .18s}.case-carousel-card.is-landscape{flex-basis:min(78vw,520px)}.case-carousel-card.is-square{flex-basis:min(60vw,360px)}.case-carousel-card.is-portrait{flex-basis:min(42vw,220px)}.case-carousel-card.is-active{opacity:1;filter:none}.case-carousel-card>p{min-height:24px;color:var(--muted);justify-content:space-between;gap:12px;margin:7px 0 0;font-size:9px;line-height:16px;display:flex}.case-carousel-card>p small{color:var(--label)}.case-carousel-neighbor,.case-carousel-play,.case-carousel-source{background:var(--folder);width:100%;aspect-ratio:var(--media-ratio);border-radius:8px;padding:0;display:grid;position:relative;overflow:hidden}.case-carousel-neighbor img,.case-carousel-play img,.case-carousel-source img{object-fit:cover;width:100%;height:100%;display:block}.case-carousel-play>span,.case-carousel-source>span:not(.case-media-placeholder){color:#111;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fafafae0;border-radius:99px;padding:9px 14px;font-size:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.case-media-placeholder{background:linear-gradient(145deg,var(--folder),var(--page));width:100%;height:100%;min-height:170px;color:var(--ink);text-align:center;place-content:center;gap:5px;padding:24px;display:grid}.case-media-placeholder b{font-size:13px;font-weight:500}.case-media-placeholder small{color:var(--muted);font-size:9px}.case-carousel-card.is-unavailable .case-media-placeholder{border:1px dashed var(--line)}.case-carousel-card .youtube-player{height:auto;aspect-ratio:var(--media-ratio)}.case-carousel-controls{justify-content:center;align-items:center;gap:14px;margin-top:8px;display:flex}.case-carousel-controls button{border:1px solid var(--line);background:0 0;border-radius:50%;width:34px;height:34px;padding:0}.case-carousel-controls button:disabled{opacity:.28}.case-carousel-controls span{min-width:58px;color:var(--muted);text-align:center;font:9px/16px IBM Plex Mono,monospace}.play-poster{background:0 0;width:100%;padding:0;display:block;position:relative}.case-media .project-poster{background:0 0;border-radius:0;width:100%;height:auto;overflow:visible}.case-media .project-poster>img,.case-media .project-poster>svg{aspect-ratio:16/9;object-fit:cover;border-radius:8px;width:100%;height:auto}.case-media iframe{border:0;border-radius:8px;width:100%;height:100%;min-height:200px;display:block}.youtube-player{aspect-ratio:16/9;background:#ddd8ce;border-radius:8px;width:100%;min-height:200px;position:relative;overflow:hidden}.youtube-player .player-poster,.youtube-player .player-frame{height:100%;transition:opacity .18s;position:absolute;inset:0}.youtube-player .player-frame{z-index:2;visibility:hidden;opacity:0;pointer-events:none;min-height:200px}.youtube-player .player-frame>div{width:100%;height:100%;min-height:200px}.youtube-player.is-ready .player-frame{visibility:visible;opacity:1;pointer-events:auto}.youtube-player.is-ready .player-poster{opacity:0}.player-status,.player-unavailable{z-index:3;color:#111;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fafafae6;border-radius:12px;margin:0;padding:10px 14px;font-size:10px;line-height:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.player-unavailable{gap:6px;width:min(280px,100% - 32px);display:grid}.player-unavailable b{font-size:11px;font-weight:500}.player-unavailable a{text-underline-offset:3px;text-decoration:underline}.player-unavailable button{background:0 0;border:1px solid #11111129;border-radius:99px;justify-self:center;padding:4px 8px}.player-back{z-index:4;color:#111;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fafafae0;border-radius:99px;padding:7px 10px;font-size:9px;position:absolute;top:10px;left:10px}.player-fallback{color:var(--muted);margin:10px 0 0;font-size:10px;line-height:18px}.player-fallback a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.play-poster>span,.external-poster>span{color:#111;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;background:#fafafad9;border-radius:99px;padding:9px 14px;font-size:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.external-poster{display:block;position:relative}.external-poster.has-placeholder>span{color:var(--ink);text-align:right;text-underline-offset:3px;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-radius:0;padding:9px 0 0;text-decoration:underline;display:block;position:static;transform:none}.external-poster:has(.poster-fallback)>span{color:var(--ink);text-align:right;text-underline-offset:3px;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-radius:0;padding:9px 0 0;text-decoration:underline;display:block;position:static;transform:none}.case-sources{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px 22px;padding:16px 0 26px;display:flex}.case-sources a{font-size:10px}.case-notes section{border-bottom:1px solid var(--line);padding:25px 0;display:block}.case-notes h2{color:var(--label);letter-spacing:1px;text-transform:uppercase;margin:0;font-size:10px;font-weight:500;line-height:18px}.case-notes p{color:var(--muted);margin:7px 0 0;font-size:13px;line-height:23.4px}.next-case{text-align:left;background:0 0;grid-template-columns:90px 1fr auto;gap:18px;width:100%;padding:25px 0;display:grid}.next-case span{color:var(--label);text-transform:uppercase;font-size:10px}.next-case b{font-size:13px;font-weight:500}.next-case i{font-style:normal}.source-media-gallery{gap:14px;margin-top:24px;display:grid}.case-media>.source-media-gallery{margin-top:0}.source-vertical-group{grid-template-columns:repeat(var(--source-columns), minmax(0, 1fr));gap:14px;display:grid}.source-vertical-group.is-single{width:min(100%,360px)}.source-media-gallery figure{min-width:0;margin:0}.source-media-frame{background:var(--folder);border-radius:8px;width:100%;display:grid;overflow:hidden}.source-media-frame img{width:100%;height:auto;display:block}.source-media-frame.is-failed{border:1px solid var(--line);place-items:center}.source-media-frame.is-failed>span{color:var(--muted);text-align:center;gap:4px;padding:18px;display:grid}.source-media-frame.is-failed b{color:var(--ink);font-size:11px;font-weight:500}.source-media-frame.is-failed small{font-size:9px}.source-media-gallery figcaption{color:var(--muted);justify-content:space-between;gap:12px;margin-top:7px;font-size:9px;line-height:16px;display:flex}.source-media-gallery figcaption a{color:var(--ink);text-underline-offset:3px;flex:none;text-decoration:underline}@media (width<=600px){.home{padding:48px 24px 64px}.top-row{height:84px}.intro{margin-top:16px}.intro-heading-row{align-items:center;gap:16px}.recognition-badge{width:56px}.career-popover{width:auto;padding-top:16px;position:fixed;top:50%;left:16px;right:16px;transform:translateY(calc(-50% - 8px))scale(.985)}.career-fold.is-open .career-popover{transform:translateY(-50%)scale(1)}.career-sheet{max-height:min(70dvh,520px);overflow-y:auto}.folder-grid{grid-template-columns:minmax(0,360px);justify-content:center;row-gap:24px}.film-sequence{height:auto;display:block}.film-sticky{background:0 0;padding-bottom:0;position:relative;top:auto}.film-steps,.skip-film{display:none}.video-tray{overflow:visible}.tray-stage{scroll-snap-type:x mandatory;scrollbar-width:none;gap:12px;height:auto;padding:8px 9%;display:flex;overflow-x:auto}.tray-stage::-webkit-scrollbar{display:none}.glass-card{width:auto;height:215px}.glass-card.left{transform:translate(-100%)rotateY(10deg)scale(.78)}.glass-card.right{transform:translate(0)rotateY(-10deg)scale(.78)}.project-poster{height:132px}.portfolio-chat{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom))}.chat-panel{width:min(360px,100vw - 24px);max-height:calc(100dvh - 82px);padding:16px;bottom:52px}.chat-suggestions button{min-height:34px;padding:7px 10px;font-size:10px}.chat-composer{grid-template-columns:1fr 40px}.chat-composer textarea{min-height:40px;font-size:16px}.chat-composer button{width:40px;height:40px}.plain-section{grid-template-columns:1fr;gap:12px}.project-index button{grid-template-columns:52px 1fr 12px;gap:9px}.project-index small{display:none}.case-page{padding-top:40px}.case-header{margin-top:40px}.case-notes section{grid-template-columns:1fr;gap:8px}.case-carousel-card.is-landscape{flex-basis:min(78vw,360px)}.case-carousel-card.is-square{flex-basis:min(64vw,280px)}.case-carousel-card.is-portrait{flex-basis:min(46vw,210px)}.source-vertical-group{scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;margin-inline:-24px;padding-inline:24px;display:flex;overflow-x:auto}.source-vertical-group.is-single{width:auto}.source-vertical-group::-webkit-scrollbar{display:none}.source-vertical-group .is-vertical{scroll-snap-align:start;flex:0 0 min(72vw,250px)}}@media (width<=360px){.home{padding-left:20px;padding-right:20px}.utility-controls{gap:4px}.folder-label{bottom:14px;left:15px}.folder-arrow{bottom:15px;right:15px}.tray-tabs button{padding:5px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation:none!important}.case-folder:hover .sheet-left,.case-folder:focus-visible .sheet-left,.sheet-left{transform:translate(-62%)}.case-folder:hover .sheet-center,.case-folder:focus-visible .sheet-center,.sheet-center{transform:translate(-50%)}.case-folder:hover .sheet-right,.case-folder:focus-visible .sheet-right,.sheet-right{transform:translate(-38%)}.folder-flap,.case-folder:hover .folder-flap,.case-folder:focus-visible .folder-flap{transform:rotateX(0)}.film-sequence{height:auto;display:block}.film-sticky{background:0 0;position:relative;top:auto}.film-steps,.skip-film{display:none}.video-tray{overflow:visible}.tray-stage{scroll-snap-type:x mandatory;gap:12px;height:auto;padding:8px 9%;display:flex;overflow-x:auto}.glass-card.static{opacity:1;flex:0 0 min(82%,360px);position:relative;transform:none}}.intro>p,.plain-section p{letter-spacing:0;max-width:65ch;font-size:16px;line-height:1.65}.case-header h1{letter-spacing:-.7px;text-wrap:balance;max-width:24ch;font-size:clamp(26px,4vw,32px);font-weight:600;line-height:1.2}.case-header>p:last-child{letter-spacing:0;max-width:60ch;font-size:17px;line-height:1.6}.case-notes p{letter-spacing:0;overflow-wrap:anywhere;max-width:65ch;font-size:16px;line-height:1.65}.case-notes h2{letter-spacing:.8px;font-size:11px;line-height:1.5}.case-sources{letter-spacing:0;flex-wrap:wrap;font-size:13px}.folder-label b{text-wrap:balance}.video-tray{padding:12px 0 24px}.tray-stage{perspective:1200px;height:clamp(320px,55vw,550px)}.glass-card{border:1px solid var(--line);background:var(--page);border-radius:16px;width:76%;height:auto;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .35s,filter .35s;top:20px;box-shadow:0 24px 54px -28px #00000080}.glass-card .project-poster{aspect-ratio:16/9;border-radius:15px 15px 0 0;height:auto}.glass-card .project-poster>img{object-fit:contain}.glass-card.center{filter:none;transform:translate(-50%)}.glass-card.left{opacity:.42;filter:blur(2px)saturate(.65);transform:translate(-102%)rotateY(20deg)scale(.76)}.glass-card.right{opacity:.42;filter:blur(2px)saturate(.65);transform:translate(2%)rotateY(-20deg)scale(.76)}.glass-card.left:hover,.glass-card.right:hover,.glass-card:focus-visible{opacity:.85;filter:none}.glass-caption{gap:5px 12px;padding:16px 20px 20px}.glass-caption small{font-size:10px;line-height:16px}.glass-caption b{letter-spacing:-.4px;font-size:clamp(14px,2vw,20px);font-weight:600;line-height:1.4}.glass-caption i{align-self:center;font-size:11px;line-height:18px}.tray-controls{gap:18px}.tray-controls>button,.tray-tabs button{min-width:44px;min-height:44px}.tray-tabs button{font-size:11px}.active-film-name{margin-top:10px;font-size:12px}.film-sequence.is-static .glass-card{flex-basis:min(88%,480px)}.film-sequence.is-static .tray-stage{padding:16px 6%}@media (width<=600px){.glass-caption{padding:12px 14px 16px}.glass-caption i{grid-column:1/-1}.tray-controls{gap:8px}}.career-tab{display:none}.career-popover{width:min(540px,100vw - 48px);padding-top:8px;left:0}.career-sheet{background:var(--page);border-radius:16px;padding:22px 24px;box-shadow:0 16px 48px #00000026}.career-head{padding-bottom:15px}.career-head b{letter-spacing:1.2px;font-size:11px}.career-head>span{color:var(--muted)}.career-sheet ol li{gap:16px;padding:16px 0}.career-sheet li b{font-size:14px;line-height:1.5}.career-sheet li small,.career-sheet li time{font-size:11px;line-height:1.6}.career-sheet li:last-child{border-bottom:0;padding-bottom:0}@media (width<=600px){.career-sheet{padding:18px}.career-sheet ol li{grid-template-columns:1fr;gap:5px}}@media (prefers-reduced-motion:reduce){.glass-card{transition:none}}.liquid-glass-surface,.career-sheet.liquid-glass-surface,.chat-launcher.liquid-glass-surface{background:linear-gradient(180deg,var(--flap-top),var(--flap-bottom));border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);-webkit-backdrop-filter:blur(16px)saturate(1.6);backdrop-filter:blur(16px)saturate(1.6);box-shadow:inset 0 1px #ffffffb8,inset 0 -1px #ffffff1f,0 16px 40px #1f1c1724}.intro{width:100%}.intro-heading-row{grid-template-columns:minmax(0,1fr) 88px;display:grid}.intro-heading-row .recognition-badge{justify-self:center}
