@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,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(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.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}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Light.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Semibold.woff2)format("woff2");font-weight:600;font-display:swap}:root{--black:#0a0a0a;--white:#f2f2f0;--grey-1:#b9b9b6;--grey-2:#7e7e7b;--grey-3:#484846;--grey-4:#1c1c1b;--line:#f2f2f01f;--font-sans:"General Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--gutter:clamp(20px, 3.4vw, 56px);--section-y:clamp(120px, 20vh, 240px);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-cut:cubic-bezier(.7, 0, .2, 1);color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--black);min-height:100svh;color:var(--white);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-x:clip}::selection{background:var(--white);color:var(--black)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%;display:block}:focus-visible{outline:1px solid var(--white);outline-offset:4px}.mask{margin:-.14em 0 -.22em;padding:.14em 0 .22em;display:block;overflow:hidden}.mask>span{display:inline-block}.mask.is-open{overflow:visible}.line-mask{margin:-.1em 0 -.2em;padding:.1em 0 .2em;display:block;overflow:hidden}.line{display:block}.char-word{white-space:nowrap;margin:-.14em -.04em -.24em;padding:.14em .04em .24em;display:inline-block;overflow:hidden}.char{transform-origin:0 100%;display:inline-block}#gl{z-index:-1;pointer-events:none;width:100%;height:100%;display:block;position:fixed;inset:0}.no-webgl #gl{display:none}.no-webgl body{background:radial-gradient(120% 90% at 70% 35%, #1a1a19 0%, var(--black) 60%) fixed}.frame{pointer-events:none;z-index:20;position:fixed;inset:14px}.frame span{border:0 solid #f2f2f042;width:14px;height:14px;position:absolute}.frame .tl{border-top-width:1px;border-left-width:1px;top:0;left:0}.frame .tr{border-top-width:1px;border-right-width:1px;top:0;right:0}.frame .bl{border-bottom-width:1px;border-left-width:1px;bottom:0;left:0}.frame .br{border-bottom-width:1px;border-right-width:1px;bottom:0;right:0}.nav{z-index:30;padding:calc(var(--gutter) * .75) var(--gutter);letter-spacing:.01em;pointer-events:none;color:#fff;mix-blend-mode:difference;justify-content:space-between;align-items:baseline;font-size:13px;display:flex;position:fixed;top:0;left:0;right:0}.nav a{pointer-events:auto}.nav__brand{font-weight:500}.nav__links{gap:clamp(18px,2.6vw,40px);display:flex}.link{cursor:pointer;background:0 0;border:0;align-items:baseline;gap:6px;padding:0;display:inline-flex;position:relative}.link__num{font-family:var(--font-mono);color:var(--grey-2);transition:color .4s var(--ease-out);font-size:9.5px}.link__label{position:relative}.link__label:after{content:"";transform-origin:100%;height:1px;transition:transform .6s var(--ease-out);background:currentColor;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.link:hover .link__label:after,.link:focus-visible .link__label:after{transform-origin:0;transform:scaleX(1)}.link:hover .link__num{color:var(--white)}.hero{height:100svh;min-height:560px;position:relative}.hero:before{content:"";pointer-events:none;background:radial-gradient(70% 55% at 12% 78%,#0a0a0ab8 0%,#0a0a0a59 45%,#0a0a0a00 75%);position:absolute;inset:0}.hero__content{left:var(--gutter);right:var(--gutter);pointer-events:none;position:absolute;bottom:clamp(104px,17vh,190px)}.hero__eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--grey-2);margin:0 0 clamp(14px,2vh,22px);font-size:10.5px}.hero__title{letter-spacing:-.035em;white-space:nowrap;color:#fff;mix-blend-mode:difference;margin:0;font-size:clamp(44px,7.1vw,124px);font-weight:500;line-height:.92}.hero__meta{flex-wrap:wrap;align-items:baseline;gap:8px clamp(16px,2vw,28px);margin-top:clamp(14px,2.2vh,24px);display:flex}.hero__role{letter-spacing:-.01em;margin:0;font-size:clamp(18px,1.7vw,26px);font-weight:400}.hero__disciplines{letter-spacing:.18em;text-transform:uppercase;color:var(--grey-1);margin:0;font-size:11.5px;font-weight:500}.hero__intro{max-width:38ch;color:var(--grey-1);margin:clamp(18px,3vh,30px) 0 0;font-size:15px;line-height:1.55}.reveal{margin:-.14em 0 -.2em;padding:.14em 0 .2em;display:block;overflow:hidden}.reveal>span{display:inline-block}.reveal.is-open{overflow:visible}.hero__scroll{right:var(--gutter);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--grey-2);writing-mode:vertical-rl;align-items:center;gap:14px;font-size:10px;display:flex;position:absolute;bottom:clamp(104px,17vh,190px)}.hero__scroll i{background:var(--grey-3);width:1px;height:56px;position:relative;overflow:hidden}.hero__scroll i:after{content:"";background:var(--white);animation:scroll-cue 2.4s var(--ease-cut) infinite;position:absolute;inset:0}@keyframes scroll-cue{0%{transform:translateY(-100%)}55%{transform:translateY(0)}to{transform:translateY(100%)}}.work,.about,.contact{padding:var(--section-y) var(--gutter);position:relative}.section-head{grid-template-columns:auto 1fr auto;align-items:end;column-gap:clamp(16px,2vw,32px);margin-bottom:clamp(80px,14vh,160px);padding-bottom:24px;display:grid;position:relative}.section-head__rule{background:var(--line);transform-origin:0;height:1px;position:absolute;bottom:0;left:0;right:0}.section-head__index{font-family:var(--font-mono);letter-spacing:.12em;color:var(--grey-2);align-self:start;padding-top:.8em;font-size:11px}.section-head__title{letter-spacing:-.045em;margin:0;font-size:clamp(52px,8.6vw,156px);font-weight:500;line-height:.86}.section-head__meta{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-2);margin:0;font-size:10.5px}.work__list{gap:clamp(110px,20vh,240px);max-width:1480px;margin:0 auto;padding:0;list-style:none;display:grid}.work-item__link{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;column-gap:clamp(16px,2vw,32px);display:grid}.work-item--a .work-item__media{grid-column:1/span 6}.work-item--a .work-item__meta{grid-column:8/span 4}.work-item--b .work-item__media{grid-area:1/7/auto/span 5}.work-item--b .work-item__meta{text-align:right;grid-area:1/2/auto/span 4}.work-item--c .work-item__media{grid-column:2/span 5}.work-item--c .work-item__meta{grid-column:8/span 4}.work-item--d .work-item__media{grid-area:1/6/auto/span 6}.work-item--d .work-item__meta{text-align:right;grid-area:1/1/auto/span 4}.work-item__media{position:relative}.work-item__frame{aspect-ratio:16/10;background:#0e0e0e;position:relative;overflow:hidden}.work-item--b .work-item__frame,.work-item--c .work-item__frame{aspect-ratio:4/3}.work-item__inner{will-change:transform;position:absolute;inset:0}.work-item__frame img,.work-item__preview{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.work-item__frame img{filter:grayscale()brightness(.78)contrast(1.08);transition:filter 1s var(--ease-out), translate .9s var(--ease-out);translate:calc(var(--mx,0) * -16px) calc(var(--my,0) * -12px)}.work-item__preview{opacity:0;transition:opacity .6s var(--ease-out)}[data-project]:hover .work-item__frame img,[data-project].is-hover .work-item__frame img{filter:grayscale(0)brightness()contrast()}[data-project].is-playing .work-item__preview{opacity:1}.work-item__slate{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--grey-3);transition:color .5s var(--ease-out);justify-content:space-between;margin-top:12px;font-size:10px;display:flex}.work-item__tc{font-variant-numeric:tabular-nums;color:var(--grey-2)}[data-project]:hover .work-item__slate{color:var(--grey-1)}.work-item__meta{padding-top:22px;padding-bottom:30px;position:relative}.work-item__rule{background:var(--line);transform-origin:0;height:1px;position:absolute;top:0;left:0;right:0}.work-item--b .work-item__rule,.work-item--d .work-item__rule{transform-origin:100%}.work-item__num{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--grey-1);margin-bottom:18px;font-size:10.5px;display:block}.work-item__num span{color:var(--grey-3)}.work-item__highlight,.p-hero__highlight{letter-spacing:.14em;color:var(--white);vertical-align:1px;border:1px solid #f2f2f066;margin-left:12px;padding:3px 8px 2px;font-size:9.5px;font-style:normal;display:inline-block}.work-item__title{letter-spacing:-.03em;margin:0 0 16px;font-size:clamp(28px,2.7vw,46px);font-weight:500;line-height:1}.work-item__type{color:var(--grey-1);margin:0 0 10px;font-size:15px}.work-item__type span{color:var(--grey-3)}.work-item__roles{color:var(--grey-2);margin:0 0 24px;font-size:13px;line-height:1.5}.work-item__roles span{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-3);margin-right:10px;font-size:10px}.work-item__cta{gap:10px;font-size:13px;display:inline-flex;position:relative}.work-item__cta:after{content:"";transform-origin:100%;height:1px;transition:transform .7s var(--ease-out);background:currentColor;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.work-item__cta i{transition:transform .7s var(--ease-out);font-style:normal}[data-project]:hover .work-item__cta:after{transform-origin:0;transform:scaleX(1)}[data-project]:hover .work-item__cta i{transform:translate(6px)}.about__grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);display:grid}.about__lead{letter-spacing:-.02em;grid-column:1/span 9;margin:0;font-size:clamp(24px,3vw,48px);font-weight:400;line-height:1.16}.about__cols{grid-column:5/-1;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);margin-top:clamp(64px,10vh,120px);display:grid}.about__label{border-top:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-2);margin:0 0 18px;padding-top:14px;font-size:10.5px;font-weight:400}.about__list{margin:0;padding:0;font-size:clamp(17px,1.5vw,23px);line-height:1.55;list-style:none}.contact{min-height:100svh}.contact__lead{color:var(--grey-1);margin:0 0 32px;font-size:clamp(20px,2vw,30px)}.contact__facts{flex-wrap:wrap;gap:16px clamp(32px,5vw,72px);margin:0 0 clamp(40px,8vh,80px);display:flex}.contact__facts dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-2);font-size:10px}.contact__facts dd{margin:6px 0 0;font-size:15px}.contact__mail{letter-spacing:-.04em;color:#fff;text-shadow:0 0 40px #0a0a0a99;font-size:clamp(22px,6vw,110px);font-weight:500;line-height:1;display:inline-block;position:relative}.contact__mail:after{content:"";transform-origin:100%;height:2px;transition:transform .9s var(--ease-out);background:currentColor;position:absolute;bottom:-.08em;left:0;right:0;transform:scaleX(0)}.contact__mail:hover:after{transform-origin:0;transform:scaleX(1)}.contact__actions{flex-wrap:wrap;align-items:center;gap:16px 36px;margin-top:40px;font-size:14px;display:flex}.contact__cv{border:1px solid var(--white);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;transition:background .5s var(--ease-out), color .5s var(--ease-out);align-items:center;gap:10px;padding:10px 16px 9px;font-size:11px;display:inline-flex}.contact__cv i{transition:transform .5s var(--ease-out);font-style:normal}.contact__cv:hover,.contact__cv:focus-visible{background:var(--white);color:var(--black)}.contact__cv:hover i{transform:translateY(3px)}.contact__form{border:1px solid var(--line);backdrop-filter:blur(10px);background:#0a0a0aa8;grid-template-columns:1fr 1fr;gap:24px 28px;max-width:760px;margin-top:clamp(84px,14vh,140px);padding:30px 30px 26px;display:grid}.field{gap:6px;min-width:0;display:grid}.field--wide{grid-column:1/-1}.field label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-2);transition:color .4s var(--ease-out);font-size:10px}.field:focus-within label{color:var(--white)}.field input,.field textarea{border:0;border-bottom:1px solid var(--grey-3);width:100%;color:var(--white);font:inherit;transition:border-color .4s var(--ease-out);background:0 0;border-radius:0;outline:none;padding:8px 0 10px;font-size:16px;line-height:1.5}.field textarea{resize:vertical;min-height:132px}.field input:focus,.field textarea:focus{border-bottom-color:var(--white)}.field input:-webkit-autofill{-webkit-text-fill-color:var(--white);box-shadow:0 0 0 100px var(--black) inset;caret-color:var(--white)}.contact__trap{display:none}.contact__send{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:14px 24px;display:flex}.contact__submit{border:1px solid var(--white);background:var(--white);color:var(--black);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .5s var(--ease-out), color .5s var(--ease-out);align-items:center;gap:12px;padding:13px 20px 12px;font-size:11px;display:inline-flex}.contact__submit i{transition:transform .5s var(--ease-out);font-style:normal}.contact__submit:hover,.contact__submit:focus-visible{color:var(--white);background:0 0}.contact__submit:hover i{transform:translate(4px)}.contact__submit:disabled{opacity:.5;pointer-events:none}.contact__status{color:var(--grey-1);margin:0;font-size:13px}.contact__form[data-state=done] .contact__status,.contact__form[data-state=error] .contact__status{color:var(--white)}.site-footer{padding:40px var(--gutter) calc(var(--gutter) * .7 + 72px);border-top:1px solid var(--line);color:var(--grey-1);font-size:13px;position:relative}.site-footer__row{flex-wrap:wrap;align-items:baseline;gap:16px 32px;display:flex}.site-footer__tc{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-2);margin-right:auto;font-size:10.5px}.p-hero{padding:clamp(120px, 22vh, 220px) var(--gutter) clamp(48px, 8vh, 96px);position:relative}.p-hero__back{color:var(--grey-1);margin-bottom:clamp(40px,8vh,90px);font-size:13px}.p-hero__num{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-1);margin:0 0 18px;font-size:10.5px}.p-hero__num span{color:var(--grey-3)}.p-hero__title{letter-spacing:-.045em;max-width:15ch;margin:0 0 clamp(36px,6vh,64px);font-size:clamp(44px,8.4vw,150px);font-weight:500;line-height:.9}.p-hero__meta{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:24px clamp(16px,2vw,32px);margin:0;padding-top:18px;display:grid}.p-hero__meta dt,.p-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-2);font-size:10.5px}.p-hero__meta dd{margin:8px 0 0;font-size:15px;line-height:1.45}.p-video{padding:0 var(--gutter);position:relative}.player-frame{--vf-o:-14px;width:80%;max-width:1180px;margin:0 auto}.player{aspect-ratio:16/9;background:#000;width:100%;position:relative;overflow:hidden}.player__video,.player__iframe,.player__poster{border:0;width:100%;height:100%;position:absolute;inset:0}.player__video{object-fit:contain;background:#000}.player__poster{object-fit:cover;filter:grayscale(.4)brightness(.8);transition:filter 1s var(--ease-out)}.player__yt{cursor:pointer;background:#000;border:0;padding:0;position:absolute;inset:0}.player__yt:hover .player__poster{filter:grayscale(0)brightness(.95)}.player__big{aspect-ratio:1;backdrop-filter:blur(6px);color:#fff;width:clamp(88px,9vw,132px);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:transform .8s var(--ease-out), opacity .5s var(--ease-out), background .5s;background:#0a0a0a40;border:1px solid #fff9;border-radius:50%;place-items:center;padding:0;font-size:11px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.player:hover .player__big{background:#0a0a0a66;transform:translate(-50%,-50%)scale(1.08)}.player.is-playing .player__big{opacity:0;pointer-events:none}.player__source{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#fff9;font-size:10px;position:absolute;bottom:16px;left:18px}.player__bar{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e6e6e4;opacity:0;transition:opacity .5s var(--ease-out);background:linear-gradient(#0000,#000000b3);align-items:center;gap:18px;padding:16px 20px;font-size:10.5px;display:flex;position:absolute;bottom:0;left:0;right:0}.player.is-awake .player__bar{opacity:1}.player__btn{font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;padding:0}.player__tc{font-variant-numeric:tabular-nums}.player__tc--dur{color:var(--grey-2)}.player__track{cursor:pointer;flex:1;height:18px;position:relative}.player__track:before,.player__buffer,.player__progress{content:"";transform-origin:0;height:1px;position:absolute;top:50%;left:0;right:0}.player__track:before{background:#ffffff2e}.player__buffer{background:#ffffff59;transform:scaleX(0)}.player__progress{background:#fff;height:2px;margin-top:-.5px;transform:scaleX(0)}.p-about{padding:clamp(100px, 18vh, 200px) var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2vw,32px);display:grid}.p-about .p-label{grid-column:1/span 3}.p-about__body{grid-column:4/span 8}.p-about__text{letter-spacing:-.015em;margin:0 0 40px;font-size:clamp(22px,2.4vw,38px);line-height:1.25}.p-about__context{max-width:56ch;color:var(--grey-1);margin:0 0 12px;font-size:15px;line-height:1.55}.p-about__note{font-family:var(--font-mono);color:var(--grey-2);margin:0;font-size:12px}.p-gallery{padding:0 var(--gutter) clamp(120px, 20vh, 220px)}.p-gallery .p-label{max-width:1320px;margin:0 auto clamp(56px,10vh,96px);display:block}.p-next{padding:clamp(100px, 18vh, 200px) var(--gutter);border-top:1px solid var(--line);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;column-gap:clamp(16px,2vw,32px);display:grid}.p-next .p-label{grid-column:1/-1;margin-bottom:28px}.p-next__title{letter-spacing:-.045em;grid-column:1/span 7;font-size:clamp(40px,7vw,120px);font-weight:500;line-height:.92}.p-next__type{color:var(--grey-1);grid-area:3/1/auto/span 7;margin-top:18px}.p-next__type i{transition:transform .7s var(--ease-out);margin-left:8px;font-style:normal;display:inline-block}.p-next:hover .p-next__type i{transform:translate(8px)}.p-next__media{grid-area:2/9/span 2/-1}.p-next__media .work-item__frame{aspect-ratio:4/3}.vf{--vf-c:#f2f2f066;--vf-l:16px;--vf-o:-10px;position:relative}.vf:before{content:"";inset:var(--vf-o);z-index:3;pointer-events:none;background:linear-gradient(var(--vf-c), var(--vf-c)) left top / var(--vf-l) 1px no-repeat, linear-gradient(var(--vf-c), var(--vf-c)) left top / 1px var(--vf-l) no-repeat, linear-gradient(var(--vf-c), var(--vf-c)) right top / var(--vf-l) 1px no-repeat, linear-gradient(var(--vf-c), var(--vf-c)) right top / 1px var(--vf-l) no-repeat, linear-gradient(var(--vf-c), var(--vf-c)) left bottom / var(--vf-l) 1px no-repeat, linear-gradient(var(--vf-c), var(--vf-c)) left bottom / 1px var(--vf-l) no-repeat, linear-gradient(var(--vf-c), var(--vf-c)) right bottom / var(--vf-l) 1px no-repeat, linear-gradient(var(--vf-c), var(--vf-c)) right bottom / 1px var(--vf-l) no-repeat;transition:inset .7s var(--ease-out);position:absolute}[data-project]:hover .vf,.player-frame:hover,.vf.viewer__stage{--vf-c:#ffffffe6}[data-project]:hover .vf:before,.player-frame:hover:before{inset:-4px}.vf__label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:var(--grey-3);transition:color .5s var(--ease-out);align-items:center;gap:8px;font-size:9.5px;display:flex;position:absolute;bottom:calc(100% + 16px);left:0}.vf__label:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}[data-project]:hover .vf__label,.player-frame:hover .vf__label{color:var(--grey-1)}[data-project]:hover .vf__label:before,.player-frame:has(.is-playing) .vf__label:before{animation:1.1s steps(2,jump-none) infinite rec}@keyframes rec{50%{opacity:0}}.work-item__meta:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side,#0a0a0ad9,#0a0a0a80 60%,#0a0a0a00);position:absolute;inset:-30% -28%}.mosaic{--vf-o:-22px;--vf-l:24px;max-width:1320px;margin:0 auto}.mosaic__bar{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--grey-2);justify-content:space-between;margin-bottom:18px;font-size:10px;display:flex}.mosaic__sheet{flex-direction:column;align-items:center;gap:6px;display:flex;container-type:inline-size}.mosaic__row{height:var(--h);will-change:transform;justify-content:center;gap:6px;display:flex}.tile{width:var(--w);cursor:pointer;background:#0e0e0e;border:0;flex:none;height:100%;padding:0;position:relative;overflow:hidden}.tile:after{content:"";pointer-events:none;transition:box-shadow .4s;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #f2f2f014}.tile:hover:after,.tile:focus-visible:after{box-shadow:inset 0 0 0 1px #f2f2f0bf}.tile__img{object-fit:cover;width:100%;height:100%;transition:filter .6s var(--ease-out), transform 1.2s var(--ease-out)}.mosaic__sheet:hover .tile:not(:hover) .tile__img{filter:brightness(.4)saturate(.5)}.tile:hover .tile__img{transform:scale(1.07)}.tile__n{font-family:var(--font-mono);letter-spacing:.1em;color:#ffffffd9;text-shadow:0 0 8px #000000e6;opacity:0;font-size:9px;transition:opacity .3s;position:absolute;bottom:6px;left:7px}.tile:hover .tile__n,.tile:focus-visible .tile__n{opacity:1}.viewer{z-index:55;backdrop-filter:blur(6px);background:#060606f2;flex-direction:column;justify-content:center;align-items:center;gap:32px;display:flex;position:fixed;inset:0}.viewer__stage{--vf-o:-14px;aspect-ratio:16/9;width:min(88vw,135.111vh)}.viewer__img{object-fit:contain;width:100%;height:100%}.viewer__bar{width:min(88vw,135.111vh);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-1);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;font-size:10.5px;display:flex}.viewer__title{color:var(--grey-2)}.viewer__nav{gap:28px;display:flex}.text-page{max-width:1040px;min-height:100svh;padding:clamp(120px, 22vh, 220px) var(--gutter) 120px;position:relative}.text-page--center{flex-direction:column;justify-content:center;align-items:flex-start;gap:24px;display:flex}.text-page .p-hero__back{display:inline-flex}.text-page__title{letter-spacing:-.045em;margin:0 0 clamp(32px,6vh,64px);font-size:clamp(44px,8vw,128px);font-weight:500;line-height:.92}.text-page--center .text-page__title{margin:0}.text-page__code{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-2);margin:0;font-size:11px}.text-page__lead{color:var(--grey-1);margin:0;font-size:clamp(18px,1.8vw,26px)}.text-page__body h2{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--grey-2);margin:48px 0 12px;font-size:11px;font-weight:400}.text-page__body p{max-width:62ch;color:var(--grey-1);margin:0;line-height:1.65}.hud{left:var(--gutter);right:var(--gutter);bottom:calc(var(--gutter) * .7);z-index:30;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--grey-2);mix-blend-mode:difference;grid-template-columns:1fr minmax(180px,36vw) 1fr;align-items:center;gap:24px;font-size:10px;display:grid;position:fixed}.hud__plan{gap:14px;display:flex;overflow:hidden}.hud__plan span{display:inline-block}.hud__num{color:var(--grey-1)}.hud__plan .is-cut{animation:hud-cut .9s var(--ease-out) both}.hud__plan .is-cut+.is-cut{animation-delay:60ms}@keyframes hud-cut{0%{opacity:0;transform:translateY(110%)}to{opacity:1;transform:none}}.hud__timeline{align-items:center;gap:10px;display:flex}.hud__track{flex:1;gap:3px;height:16px;display:flex;position:relative}.hud__seg{cursor:pointer;background:0 0;border:0;flex:1 1 0;height:100%;padding:0;position:relative}.hud__seg:before{content:"";background:var(--grey-3);height:1px;transition:background .5s var(--ease-out);position:absolute;top:50%;left:0;right:0}.hud__seg:after{content:"";background:var(--grey-3);width:1px;position:absolute;top:4px;bottom:4px;left:0}.hud__seg:hover:before,.hud__seg.is-active:before{background:var(--grey-1)}.hud__head{background:var(--white);pointer-events:none;width:1px;position:absolute;top:1px;bottom:1px;left:0}.hud__tc{justify-self:end;gap:10px;display:flex}.hud__tc span:last-child{color:var(--grey-1);font-variant-numeric:tabular-nums}.hint{left:50%;bottom:calc(var(--gutter) * .7 + 34px);z-index:30;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--grey-2);white-space:nowrap;opacity:0;transition:opacity 1.2s var(--ease-out);pointer-events:none;margin:0;font-size:10px;position:fixed;transform:translate(-50%)}.hint.is-in{opacity:1}.hint.is-gone{opacity:0}.cursor{z-index:60;pointer-events:none;mix-blend-mode:difference;opacity:0;transition:opacity .4s;position:fixed;top:0;left:0}.cursor.is-visible{opacity:1}.cursor.is-native,.cursor-off .cursor{opacity:0}.cursor__dot,.cursor__ring{will-change:transform;position:absolute;top:0;left:0}.cursor__dot i,.cursor__ring i{transition:transform .5s var(--ease-out), border-color .4s, background-color .4s;border-radius:50%;display:block;position:absolute}.cursor__dot i{background:#fff;width:6px;height:6px;margin:-3px 0 0 -3px}.cursor__ring i{border:1px solid #ffffff61;width:36px;height:36px;margin:-18px 0 0 -18px}.cursor__label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:#fff;opacity:0;font-size:10px;transition:opacity .3s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.cursor.is-link .cursor__ring i{border-color:#fffc;transform:scale(1.6)}.cursor.is-link .cursor__dot i,.cursor.is-label .cursor__dot i{transform:scale(0)}.cursor.is-label .cursor__ring i{background-color:#ffffff0f;border-color:#ffffffd9;transform:scale(2.5)}.cursor.is-label .cursor__label{opacity:1}.cursor.is-down .cursor__ring i{border-color:#ffffffe6;transform:scale(.55)}.has-cursor,.has-cursor *{cursor:none}.has-cursor .panel-host,.has-cursor .panel-host *{cursor:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.7s;animation-timing-function:var(--ease-cut)}::view-transition-group(*){animation-duration:.95s;animation-timing-function:var(--ease-cut)}.panel-host{top:calc(var(--gutter) * .75 + 30px);z-index:40;scrollbar-width:thin;width:300px;max-height:calc(100svh - 150px);transition:opacity .4s var(--ease-out), transform .5s var(--ease-out);--tp-base-background-color:#0d0d0de6;--tp-base-shadow-color:#00000080;--tp-base-font-family:"IBM Plex Mono", ui-monospace, monospace;--tp-button-background-color:#e6e6e6;--tp-button-background-color-active:#fff;--tp-button-background-color-focus:#f5f5f5;--tp-button-background-color-hover:#f5f5f5;--tp-button-foreground-color:#0d0d0d;--tp-container-background-color:#ffffff0f;--tp-container-background-color-active:#ffffff29;--tp-container-background-color-focus:#ffffff1f;--tp-container-background-color-hover:#ffffff1a;--tp-container-foreground-color:#e0e0e0;--tp-groove-foreground-color:#ffffff14;--tp-input-background-color:#ffffff0f;--tp-input-background-color-active:#ffffff29;--tp-input-background-color-focus:#ffffff1f;--tp-input-background-color-hover:#ffffff1a;--tp-input-foreground-color:#ebebeb;--tp-label-foreground-color:#999;--tp-monitor-background-color:#00000059;--tp-monitor-foreground-color:#b8b8b8;position:fixed;right:16px;overflow-y:auto}.panel-host.is-hidden{opacity:0;pointer-events:none;transform:translate(12px)}.panel-help{font-family:var(--font-mono);color:var(--grey-2);background:#0d0d0de6;border-radius:6px;margin:8px 0 0;padding:10px 12px;font-size:10px;line-height:1.6}.panel-help b{color:var(--grey-1);font-weight:400}@media (width<=900px){.work-item__link,.about__grid,.p-about,.p-next{grid-template-columns:minmax(0,1fr)}.work-item .work-item__media,.work-item .work-item__meta,.about__lead,.about__cols,.p-about .p-label,.p-about__body,.p-next__title,.p-next__type,.p-next__media{text-align:left;grid-area:auto/1/auto/-1}.work-item__meta{margin-top:28px}.work-item .work-item__rule{transform-origin:0}.p-about .p-label{margin-bottom:24px}.p-hero__meta{grid-template-columns:repeat(2,minmax(0,1fr))}.p-next__media{margin-top:40px}.player-frame{width:100%}.player__bar{gap:12px;padding:12px 14px}.player__tc--dur,.player__bar [data-fullscreen]{display:none}}@media (width<=760px){.contact__form{grid-template-columns:1fr;padding:22px 18px 20px}.nav__brand{display:none}.nav{justify-content:flex-end}.hud{grid-template-columns:1fr 1fr}.hud__timeline,.hint,.hero__scroll{display:none}.hero__content{bottom:clamp(84px,14vh,140px)}.hero__intro{font-size:14px}.section-head{grid-template-columns:1fr;row-gap:12px}.section-head__index{padding-top:0}.about__cols{grid-template-columns:minmax(0,1fr);row-gap:40px}.mosaic{--vf-o:-10px}.mosaic__sheet{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mosaic__row{display:contents}.tile{aspect-ratio:4/3;width:auto;height:auto}.vf__label{display:none}.panel-host{width:calc(100vw - 32px);max-height:60svh}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
