@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{font-family:Manrope,Noto Sans SC,Microsoft YaHei,sans-serif;color:#f3f3ef;background:#080b0d;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,video:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:#0b0c0d}.portfolio{height:100svh;min-height:540px;position:relative;overflow:hidden;isolation:isolate;--accent:#a4d0df;--glow:126,172,192;background:#090c0e}.ambient{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse 65% 28% at 50% 82%,rgba(var(--glow),.35),transparent 85%),radial-gradient(ellipse 70% 95% at 50% 95%,rgba(var(--glow),.065),transparent 85%),linear-gradient(#080b0c,#0a0d0f);transition:background 1s}.grain{position:absolute;inset:0;z-index:40;pointer-events:none;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}.masthead{position:absolute;top:0;left:50%;transform:translate(-50%);width:calc(100% - 100px);max-width:1700px;height:106px;display:flex;align-items:flex-start;padding-top:24px;justify-content:space-between;z-index:30}.signature{font-size:9px;letter-spacing:2.3px;font-weight:700;color:#8b9193;padding-top:14px;white-space:nowrap}.signature span{margin:0 10px;color:#555e63}.masthead h1{position:absolute;left:50%;transform:translate(-50%);margin:0;white-space:nowrap;font-size:clamp(25px,2.1vw,38px);line-height:1.35;letter-spacing:-1px;font-weight:700}.counter{display:flex;align-items:center;gap:13px;font-size:10px;letter-spacing:1px;color:#687279;padding-top:9px}.counter strong{font-size:24px;line-height:1;color:var(--accent);font-weight:600;letter-spacing:2px;transition:color .6s}.counter span:nth-child(2){color:#454d52}.gallery{position:absolute;inset:106px 0 93px;-webkit-user-select:none;user-select:none;touch-action:pan-y}.cards{position:absolute;inset:0;perspective:1600px}.art-card{--card-width:min(62vw,1100px);--card-height:min( 34.875vw ,619px);position:absolute;left:50%;top:50%;width:var(--card-width);height:var(--card-height);padding:0;margin:calc(var(--card-height) / -2) 0 0 calc(var(--card-width) / -2);transform:translate(calc(var(--step) * 87%)) scale(calc(1 - var(--distance) * .115)) rotateY(calc(var(--step) * -7deg));opacity:.27;filter:saturate(.45) brightness(.8);transition:transform .85s cubic-bezier(.22,.68,.12,1),opacity .7s,filter .7s,box-shadow .7s;box-shadow:0 30px 65px #0008;overflow:hidden;background:#131516;will-change:transform;backface-visibility:hidden}.art-card:after{content:"";position:absolute;inset:0;border:1px solid #ffffff0f;pointer-events:none;background:linear-gradient(0deg,#0006,transparent 25%);opacity:0;transition:opacity .5s}.art-card.is-active{opacity:1;filter:none;box-shadow:0 35px 95px #000b}.art-card.is-active:hover:after,.art-card.is-active:focus-visible:after{opacity:1}.cover{position:relative;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.portrait .cover{object-fit:contain}.cover-fill{position:absolute;inset:-30px;width:calc(100% + 60px);height:calc(100% + 60px);object-fit:cover;filter:blur(35px) brightness(.38);pointer-events:none}.card-number{position:absolute;left:24px;top:24px;width:42px;height:34px;display:grid;place-items:center;background:#0b0e0ecd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:9px;letter-spacing:1.5px;font-weight:700;color:#eef1ed}.watch-label{position:absolute;right:25px;bottom:23px;display:flex;align-items:center;gap:12px;padding:11px 17px;font-size:11px;letter-spacing:1px;background:#080c0daf;border:1px solid #ffffff30;border-radius:30px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s;z-index:2}.play-icon{font-size:19px;line-height:1}.watch-duration{font-size:9px;color:#a3afb3;letter-spacing:1px;border-left:1px solid #ffffff30;padding-left:12px}.is-active:hover .watch-label,.is-active:focus-visible .watch-label{opacity:1;transform:translateY(0)}.pedestal{position:absolute;top:calc(50% + min(17.4375vw,310px) - 8px);left:50%;width:min(61vw,1080px);height:min(9vw,140px);transform:translate(-50%);border-radius:0 0 50% 50%;background:linear-gradient(90deg,#05080bf0,rgba(var(--glow),.1) 50%,#05080bf0),linear-gradient(#080d12,#05090d);box-shadow:0 27px 75px rgba(var(--glow),.14);transition:box-shadow .8s;opacity:.9}.arrow{position:absolute;z-index:25;top:50%;transform:translateY(-50%);width:60px;height:60px;border-radius:50%;border:1px solid #ffffff0b;background:#111619dd;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);font-size:26px;font-weight:400;display:grid;place-items:center;transition:background .25s,color .25s}.previous{left:max(3.1vw,calc((100vw - 1700px)/2))}.next{right:max(3.1vw,calc((100vw - 1700px)/2))}.arrow:hover{background:var(--accent);color:#0a1013}.work-caption{position:absolute;left:50%;top:calc(50% + min(17.4375vw,310px) + 36px);transform:translate(-50%);width:min(62vw,1100px);display:flex;align-items:center;gap:23px;z-index:24;pointer-events:none}.work-caption>span:first-child{font-size:8px;letter-spacing:1.7px;color:#9aa6ae;white-space:nowrap}.caption-divider{margin:0 10px;color:#4f626d}.work-caption h2{font-size:13px;letter-spacing:1px;font-weight:400;color:#dce3e5;margin:0;text-shadow:0 1px 12px #000}.caption-duration{font-size:9px;margin-left:auto;color:#9caab3;letter-spacing:1px}.caption-duration span{margin-left:17px;font-size:16px;color:var(--accent)}.gallery-footer{position:absolute;bottom:0;height:79px;width:calc(100% - 100px);max-width:1700px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;z-index:30}.pagination{display:flex;gap:10px}.pagination button{width:48px;text-align:left;padding:8px 0;font-size:9px;font-weight:600;color:#57636a;transition:color .3s}.pagination button i{display:block;height:2px;margin-top:11px;background:#343e44;transition:background .5s}.pagination button.selected{color:#e2e8e9}.pagination button.selected i{background:var(--accent);box-shadow:0 0 14px rgba(var(--glow),.25)}.pagination button:hover{color:var(--accent)}.instructions{display:flex;align-items:center;gap:0;font-size:9px;letter-spacing:1px;color:#758088;white-space:nowrap}.instructions span:before{content:"·";margin:0 11px;color:#49565d}.instructions button{padding:12px 0;color:#89959d;font-size:9px;letter-spacing:1px}.instructions button.auto-enabled{color:var(--accent)}.film-page{position:absolute;inset:105px 50px 35px;max-width:1500px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.film-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.5px;color:#8a979e}.film-toolbar .back{color:#e4e9e9;font-size:20px;display:flex;gap:12px;align-items:center;padding:10px 0}.back span{font-size:12px;letter-spacing:1px}.film-toolbar a{padding:10px 0;color:#aab8be}.player-shell{position:relative;min-height:0;flex:1;background:#030405;box-shadow:0 15px 70px #0006;border:1px solid #ffffff0c}.player-shell video{display:block;width:100%;height:100%;object-fit:contain;outline-offset:0}.film-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:3px}.film-caption h2{font-size:17px;font-weight:500;letter-spacing:.5px;margin:0}.film-caption>span{font-size:9px;letter-spacing:1.5px;color:#a6b4bb}.video-error{position:absolute;inset:0;display:flex;gap:20px;justify-content:center;align-items:center;background:#090c0ecc;font-size:13px}.video-error button{color:var(--accent);border-bottom:1px solid var(--accent);padding:8px}@media(max-height:850px)and (min-width:800px){.art-card{--card-width:min(62vw, calc((100svh - 265px)*1.7778) );--card-height:min( 34.875vw , calc(100svh - 265px) )}.pedestal{width:min(61vw,calc((100svh - 265px)*1.72));top:calc(50% + min(17.4375vw,calc((100svh - 265px)/2)) - 8px);height:90px}.work-caption{top:calc(50% + min(17.4375vw,calc((100svh - 265px)/2)) + 28px);width:min(62vw,calc((100svh - 265px)*1.7778))}}@media(min-width:2000px){.art-card{--card-width:1100px;--card-height:619px}.work-caption{width:1100px}}@media(max-width:1050px){.masthead,.gallery-footer{width:calc(100% - 60px)}.signature{font-size:7px;letter-spacing:1.2px}.signature span{margin:0 6px}.masthead h1{font-size:27px}.counter{gap:8px;font-size:8px}.counter strong{font-size:21px}.instructions span:nth-last-child(2){display:none}.work-caption{gap:14px}.work-caption h2{font-size:12px}.arrow{width:46px;height:46px;font-size:23px}.card-number{left:18px;top:18px;width:34px;height:29px}}@media(max-width:700px){.portfolio{min-height:520px}.masthead{width:calc(100% - 36px);padding-top:27px;height:130px}.masthead h1{font-size:25px;top:28px;letter-spacing:-.5px}.signature{position:absolute;top:68px;padding:0;left:50%;transform:translate(-50%);font-size:6px;letter-spacing:1.6px}.counter{position:absolute;top:98px;right:0;padding:0;gap:8px;font-size:8px}.counter strong{font-size:18px}.gallery{inset:135px 0 112px}.art-card{--card-width:80vw;--card-height:45vw;transform:translate(calc(var(--step) * 106%)) scale(calc(1 - var(--distance) * .1)) rotateY(calc(var(--step) * -5deg))}.pedestal{top:calc(50% + 22.5vw - 7px);width:78vw;height:70px}.work-caption{top:calc(50% + 22.5vw + 27px);width:80vw;gap:10px;flex-wrap:wrap}.work-caption>span:first-child{font-size:6px;letter-spacing:.8px}.caption-divider{margin:0 4px}.work-caption h2{font-size:11px;letter-spacing:.2px;max-width:60%}.caption-duration{font-size:7px}.caption-duration span{display:none}.arrow{width:36px;height:36px;top:calc(50% + 22.5vw + 90px);font-size:19px}.previous{left:calc(50% - 45px)}.next{right:calc(50% - 45px)}.card-number{left:12px;top:12px;width:26px;height:25px;font-size:7px}.gallery-footer{width:calc(100% - 36px);height:100px;flex-direction:column;justify-content:center;gap:9px}.pagination{gap:9px;width:100%;justify-content:center}.pagination button{width:31px;font-size:8px}.pagination button i{margin-top:8px}.instructions{font-size:7px}.instructions button{font-size:8px;padding:8px 0}.instructions span{display:none}.watch-label{opacity:1;transform:none;right:12px;bottom:12px;padding:7px 10px;font-size:8px;gap:7px}.watch-duration{display:none}.play-icon{font-size:14px}.film-page{inset:135px 18px 25px;gap:15px}.film-toolbar{font-size:7px;letter-spacing:.5px}.film-toolbar>span{display:none}.film-toolbar a{font-size:10px}.film-caption h2{font-size:12px}.film-caption>span{font-size:7px;white-space:nowrap}.film-caption{gap:10px}.video-error{font-size:10px;gap:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.art-card{will-change:auto}}:root{--ease-cinema:cubic-bezier(.16,1,.3,1);--ease-curtain:cubic-bezier(.76,0,.24,1)}.letter-mask{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:6px;margin-bottom:-6px}.letter-mask>span{display:block;animation:title-reveal 1.7s var(--ease-cinema) both;animation-delay:calc(.65s + var(--letter) * 65ms);transform-origin:0 100%}@keyframes title-reveal{0%{transform:translate3d(0,135%,0) rotate(9deg)}to{transform:translateZ(0) rotate(0)}}.intro-shutter{position:fixed;inset:0;z-index:120;pointer-events:none;animation:intro-lifecycle 2.65s step-end both}.intro-shutter:before,.intro-shutter:after{content:"";position:absolute;left:0;right:0;height:50.2%;background:#080c0e}.intro-shutter:before{top:0;animation:shutter-top 1.95s var(--ease-curtain) .25s both}.intro-shutter:after{bottom:0;animation:shutter-bottom 2s var(--ease-curtain) .4s both}.intro-credit{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;font-size:clamp(26px,4vw,70px);font-weight:600;letter-spacing:7px;white-space:nowrap;overflow:hidden;animation:credit-lift 1.3s var(--ease-curtain) .3s both}.intro-credit small{display:block;text-align:center;font-size:8px;letter-spacing:4px;color:#7e8b94;margin-top:17px}@keyframes intro-lifecycle{0%{visibility:visible}to{visibility:hidden}}@keyframes shutter-top{0%{transform:translateZ(0)}to{transform:translate3d(0,-102%,0)}}@keyframes shutter-bottom{0%{transform:translateZ(0)}to{transform:translate3d(0,102%,0)}}@keyframes credit-lift{0%,25%{clip-path:inset(0 0 0 0);transform:translate(-50%,-50%)}to{clip-path:inset(0 0 100% 0);transform:translate(-50%,-120%)}}.cards-reveal{position:absolute;inset:0;transform-origin:50% 100%;animation:cards-stage-in 2.2s var(--ease-cinema) .35s both}@keyframes cards-stage-in{0%{transform:translate3d(0,78vh,0) scale(.72) rotate(-8deg)}to{transform:translateZ(0) scale(1) rotate(0)}}.art-card{transition:transform 1.55s var(--ease-cinema),opacity 1.05s ease;will-change:auto}.art-card.is-neighbor,.art-card.is-active{will-change:transform}.counter strong{display:block;animation:count-roll 1.1s var(--ease-cinema) both}.counter{overflow:hidden;padding-bottom:3px}@keyframes count-roll{0%{transform:translate3d(0,120%,0) rotate(12deg)}to{transform:translateZ(0) rotate(0)}}.work-caption h2{overflow:hidden;padding:5px 0;margin:-5px 0}.work-caption h2 span{display:block;animation:caption-reveal 1.25s var(--ease-cinema) .12s both}.work-caption>span{animation:caption-reveal 1.3s var(--ease-cinema) .2s both}@keyframes caption-reveal{0%{transform:translate3d(0,130%,0)}to{transform:translateZ(0)}}.arrow.previous{animation:previous-in 1.8s var(--ease-cinema) .7s both}.arrow.next{animation:next-in 1.8s var(--ease-cinema) .7s both}@keyframes previous-in{0%{transform:translate(-12vw,-50%) rotate(-60deg)}to{transform:translateY(-50%) rotate(0)}}@keyframes next-in{0%{transform:translate(12vw,-50%) rotate(60deg)}to{transform:translateY(-50%) rotate(0)}}.gallery-footer{animation:footer-in 1.8s var(--ease-cinema) .8s both}@keyframes footer-in{0%{transform:translate(-50%,130%)}to{transform:translate(-50%)}}.pedestal{animation:pedestal-in 2.2s var(--ease-cinema) .45s both}@keyframes pedestal-in{0%{transform:translate(-50%,170%) scaleX(.65)}to{transform:translate(-50%) scaleX(1)}}.route-curtain{position:fixed;inset:-2px;z-index:110;background:#10181c;transform:translate3d(0,103%,0);pointer-events:none;display:grid;place-items:center;visibility:hidden;contain:layout paint}.route-curtain.phase-cover{visibility:visible;pointer-events:auto;transform:translateZ(0);transition:transform .85s var(--ease-curtain)}.route-curtain.phase-uncover{visibility:visible;pointer-events:auto;transform:translate3d(0,-103%,0);transition:transform 1.2s var(--ease-curtain)}.route-curtain>span{font-size:clamp(90px,12vw,190px);font-weight:500;letter-spacing:-8px;color:var(--accent);line-height:1}.route-curtain small{display:block;margin-top:28px;color:#7c8f99;text-align:center;font-size:8px;letter-spacing:5px}.portfolio.is-playing{height:auto;min-height:100svh;overflow:clip}.is-playing .ambient{position:fixed}.film-page{position:relative;inset:auto;width:calc(100% - 100px);max-width:1500px;margin:0 auto;padding:125px 0 54px;gap:22px}.film-toolbar{animation:toolbar-in 1.3s var(--ease-cinema) both}.player-reveal{height:min(72svh,760px);overflow:hidden;position:relative;flex:none;background:#030405;animation:player-window-in 1.8s var(--ease-cinema) both;transform-origin:50% 100%}.player-shell{height:100%;width:100%;animation:player-image-in 1.8s var(--ease-cinema) both;box-shadow:none;flex:none}.film-caption{overflow:hidden;padding-top:10px}.film-caption h2,.film-caption>span{animation:caption-reveal 1.4s var(--ease-cinema) .15s both}.film-caption h2{font-size:21px}.project-story{display:grid;grid-template-columns:1fr 1.85fr;gap:80px;margin-top:68px;padding:42px 0 56px;border-top:1px solid #ffffff1a}.story-kicker{font-size:9px;letter-spacing:2px;color:#899aa3;margin:0 0 37px}.story-category{display:inline-block;font-size:12px;letter-spacing:1px;color:var(--accent);margin-bottom:15px}.story-heading h2{font-size:clamp(24px,2.6vw,39px);font-weight:500;letter-spacing:-1.2px;line-height:1.35;margin:0;max-width:400px}.story-text{padding-top:54px;max-width:840px}.story-text p{font-size:16px;color:#bbc5ca;line-height:2.15;letter-spacing:.3px;margin:0 0 24px}.story-text p:last-child{margin-bottom:0}.film-end{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff13;padding-top:28px}.film-end>span{font-size:8px;letter-spacing:1.8px;color:#7c8e97}.film-end button{font-size:12px;letter-spacing:1px;color:#d3dce0;padding:10px 0}.film-end button span{margin-left:15px;color:var(--accent);font-size:19px}@keyframes toolbar-in{0%{transform:translate3d(0,-80px,0)}to{transform:translateZ(0)}}@keyframes player-window-in{0%{transform:translate3d(0,90px,0) scale(.78)}to{transform:translateZ(0) scale(1)}}@keyframes player-image-in{0%{transform:translate3d(0,45%,0) scale(1.18)}to{transform:translateZ(0) scale(1)}}@media(max-width:900px){.project-story{gap:35px;grid-template-columns:1fr 1.65fr}.story-text p{font-size:14px}.film-page{width:calc(100% - 60px)}.story-heading h2{font-size:27px}}@media(max-width:700px){.film-page{width:calc(100% - 36px);padding-top:142px;padding-bottom:30px;gap:18px}.player-reveal{height:55svh;min-height:230px}.film-caption h2{font-size:14px}.project-story{grid-template-columns:1fr;gap:25px;margin-top:35px;padding-top:28px;padding-bottom:34px}.story-kicker{margin-bottom:22px;font-size:8px}.story-heading h2{font-size:27px;max-width:none}.story-category{font-size:11px}.story-text{padding:0}.story-text p{font-size:13px;line-height:2.1}.film-end>span{font-size:6px;letter-spacing:1px}.film-end button{font-size:10px}.intro-credit{font-size:25px;letter-spacing:3px}.route-curtain>span{letter-spacing:-4px}.route-curtain small{letter-spacing:2px}.work-caption h2{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.intro-shutter,.route-curtain{display:none}.cards-reveal{transform:none}.art-card,.art-card.is-active,.art-card.is-neighbor{will-change:auto}}.story-heading,.story-text{overflow:hidden}.story-heading>*{transform:translate3d(0,125px,0);transition:transform 1.5s var(--ease-cinema)}.story-heading .story-category{transition-delay:.09s}.story-heading h2{transition-delay:.17s}.story-text-content{transform:translate3d(0,110%,0);transition:transform 1.65s var(--ease-cinema) .13s}.project-story.is-visible .story-heading>*,.project-story.is-visible .story-text-content{transform:translateZ(0)}@media(prefers-reduced-motion:reduce){.story-heading>*,.story-text-content{transform:none}}.video-player{height:100%;display:flex;flex-direction:column;min-height:0}.player-shell .video-player video{flex:1;height:calc(100% - 58px);min-height:0}.seek-panel{height:58px;flex-shrink:0;display:flex;align-items:center;gap:14px;padding:0 20px;background:#101519;border-top:1px solid #ffffff16}.seek-time{font-size:11px;letter-spacing:1px;font-variant-numeric:tabular-nums;color:#c5d0d6;width:42px;flex-shrink:0}.seek-slider{flex:1;min-width:70px;margin:0;height:5px;border-radius:5px;appearance:none;-webkit-appearance:none;background:linear-gradient(to right,var(--accent) var(--seek-progress),#39454c var(--seek-progress));cursor:pointer;touch-action:none}.seek-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border:2px solid #f0f4f5;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px #ffffff0a}.seek-slider::-moz-range-thumb{width:11px;height:11px;border:2px solid #f0f4f5;border-radius:50%;background:var(--accent)}.seek-slider:focus-visible{outline:2px solid var(--accent);outline-offset:7px}.seek-slider:disabled{opacity:.45;cursor:wait}.seek-hint{font-size:9px;color:#9cabb3;white-space:nowrap;min-width:114px;text-align:right}.portfolio.is-returning .cards-reveal,.portfolio.is-returning .pedestal,.portfolio.is-returning .gallery-footer,.portfolio.is-returning .arrow,.portfolio.is-returning .work-caption *{animation:none!important}.player-reveal,.player-shell{animation-fill-mode:backwards}.player-shell{box-shadow:none}.grain{background-size:180px 180px;contain:strict}.art-card{contain:layout paint}.cover-fill{filter:blur(20px) brightness(.38)}@media(max-width:700px){.seek-panel{height:52px;padding:0 12px;gap:10px}.player-shell .video-player video{height:calc(100% - 52px)}.seek-time{font-size:9px;width:35px}.seek-hint{display:none}}
