:root{font-family:Helvetica Neue,PingFang SC,Microsoft YaHei,Arial,sans-serif;color:#f2f4f7;background:#080a0e;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #080a0e;--paper: #f2f4f7;--muted: rgba(226, 232, 240, .66);--accent: #bd7cdb;--radius: 14px;--header-height: 70px}*{box-sizing:border-box}html{background:var(--ink);scroll-behavior:auto;scrollbar-color:rgba(189,124,219,.5) #080a0e}body{min-width:320px;margin:0;overflow-x:hidden;background:var(--ink)}button{color:inherit;font:inherit}button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.site-shell{min-height:100dvh;background:var(--ink)}.node-story{position:relative;height:620dvh;background:var(--ink)}.node-stage{position:sticky;top:0;height:100dvh;min-height:100dvh;overflow:hidden;isolation:isolate;background:#090b10}.node-video-world{position:absolute;inset:-1.5%;transform-origin:50% 50%;will-change:transform}.node-video-world video{width:100%;height:100%;display:block;object-fit:cover;object-position:center;background:#090b10;pointer-events:none;-webkit-user-select:none;user-select:none}.node-video-scrim{position:absolute;inset:0;background:radial-gradient(circle at 74% 38%,transparent 0 18%,rgba(4,7,12,.08) 54%,rgba(4,7,12,.36) 100%),linear-gradient(90deg,#03060ba3,#03060b33 46% 100%),linear-gradient(0deg,rgba(3,6,11,.72) 0%,transparent 55%),linear-gradient(180deg,rgba(3,6,11,.46) 0%,transparent 24%);pointer-events:none}.media-preload{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.site-header{position:absolute;inset:0 0 auto;z-index:20;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding-inline:clamp(18px,3.4vw,52px);background:linear-gradient(to bottom,rgba(5,7,11,.58),transparent)}.brand{min-height:44px;display:inline-flex;align-items:center;gap:9px;padding:0;border:0;background:transparent;color:var(--paper);font-size:17px;font-weight:650;letter-spacing:-.02em;cursor:pointer}.brand svg{color:var(--accent)}.brand-logo{width:40px;height:22px;flex:0 0 auto;display:block;object-fit:contain}.current-node{min-height:44px;display:flex;align-items:center;gap:18px;color:#ecf1f7bd;font-size:9px;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:.12em}.current-node span:last-child{color:var(--paper);letter-spacing:.08em}.node-nav{position:fixed;top:50%;right:clamp(18px,2.7vw,42px);z-index:24;width:164px;display:flex;flex-direction:column;gap:3px;transform:translateY(-50%)}.node-nav button{min-height:40px;display:grid;grid-template-columns:34px 24px minmax(0,1fr);align-items:center;gap:8px;padding:0;border:0;background:transparent;color:#e5ebf36b;text-align:left;cursor:pointer}.node-nav-line{width:30px;height:1px;display:flex;justify-content:flex-end;overflow:hidden;background:#e8eef533}.node-nav-line i{width:7px;height:100%;display:block;background:#f4f7fac7;transform-origin:100% 50%;transition:width .32s cubic-bezier(.16,1,.3,1),background .22s ease}.node-nav-number{font-size:9px;font-variant-numeric:tabular-nums;font-weight:680;letter-spacing:.06em}.node-nav-label{overflow:hidden;color:#f5f8fbe0;font-size:10px;font-weight:600;text-overflow:ellipsis;white-space:nowrap;opacity:0;transform:translate(8px);transition:opacity .22s ease,transform .32s cubic-bezier(.16,1,.3,1)}.node-nav button:hover,.node-nav button.is-active{color:var(--paper)}.node-nav button:hover .node-nav-label,.node-nav button.is-active .node-nav-label{opacity:1;transform:translate(0)}.node-nav button.is-active .node-nav-line i{width:30px;background:var(--accent)}.node-nav button:active{transform:translate(2px)}.node-card-stack{position:absolute;inset:0;z-index:6;pointer-events:none}.node-project-card{position:absolute;inset:0;pointer-events:none}.node-project-card.is-current{pointer-events:auto}.project-index-mark{position:absolute;left:clamp(10px,1.3vw,24px);bottom:clamp(-28px,-4vh,-10px);z-index:0;color:#ecf1f716;font-size:clamp(180px,24vw,420px);font-weight:780;font-variant-numeric:tabular-nums;letter-spacing:-.1em;line-height:.72;pointer-events:none;will-change:transform,opacity}.project-copy{position:absolute;left:clamp(20px,4vw,62px);bottom:clamp(32px,7vh,76px);z-index:4;width:min(43vw,620px);will-change:transform,opacity}.project-meta{display:flex;align-items:center;gap:12px;color:#e1e8f199;font-size:9px;font-weight:680;letter-spacing:.13em}.project-meta i{width:52px;height:1px;background:#ebf0f657}.project-copy h1{max-width:9ch;margin:12px 0 0;color:#f7f9fbfa;font-size:clamp(48px,6.2vw,98px);font-weight:660;letter-spacing:-.075em;line-height:.92;text-wrap:balance;text-shadow:0 10px 48px rgba(2,5,10,.34)}.project-copy p{max-width:32ch;margin:18px 0 0;color:#e3e9f1b8;font-size:12px;line-height:1.65}.view-project-button{position:relative;min-width:132px;min-height:52px;display:inline-flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding:0 16px 0 20px;overflow:hidden;border:1px solid rgba(240,244,248,.72);border-radius:999px;background:#f2f5f8f0;color:#13171e;box-shadow:inset 0 1px #ffffffb8,0 16px 44px #02050a38;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer;transform-origin:50% 50%;transition:color .22s ease,background .22s ease,transform .12s ease}.view-project-button:before{content:"";position:absolute;inset:0;background:#171b23;transform:translateY(104%);transition:transform .36s cubic-bezier(.16,1,.3,1)}.view-project-button span,.view-project-button svg{position:relative;z-index:1}.view-project-button:hover{color:var(--paper)}.view-project-button:hover:before{transform:translateY(0)}.view-project-button:active{transform:scale(.94)}.project-media-cluster{--dof: 0px;position:absolute;top:clamp(104px,15vh,164px);right:clamp(118px,10.5vw,182px);z-index:2;width:min(47vw,760px);aspect-ratio:1.47 / 1;filter:blur(var(--dof));perspective:1400px;transform-origin:50% 50%;will-change:transform,opacity,filter}.project-media{position:absolute;margin:0;aspect-ratio:16 / 9;overflow:hidden;border:1px solid rgba(234,241,248,.38);border-radius:var(--radius);background:#0e121abd;box-shadow:inset 0 1px #ffffff47,inset 0 -1px #6a8fb21f,0 38px 100px #02050a75;backface-visibility:hidden}.project-media:before,.project-media:after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none}.project-media:before{background:linear-gradient(122deg,rgba(255,255,255,.2),transparent 18%,transparent 78%,rgba(189,124,219,.12)),linear-gradient(180deg,rgba(255,255,255,.1),transparent 10%);mix-blend-mode:screen}.project-media:after{inset:1px;border:1px solid rgba(255,255,255,.08)}.project-media img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.9) contrast(1.04)}.project-media-back{top:0;right:0;width:72%;opacity:.6;transform:translateZ(-80px) rotate(calc(-4deg + var(--scene-index) * .45deg))}.project-media-back img{filter:saturate(.55) contrast(1.06) brightness(.68)}.project-media-back-two,.project-media-back-three{display:none}.project-media-main{left:0;bottom:0;width:88%;transform:translateZ(24px) rotate(calc(-1.1deg + var(--scene-index) * .3deg))}.project-image-count{position:absolute;right:1%;bottom:-30px;color:#e8eef59e;font-size:9px;font-variant-numeric:tabular-nums;font-weight:650;letter-spacing:.13em}.project-media-hit-area{position:absolute;inset:0;z-index:5;display:block;padding:0;border:0;border-radius:var(--radius);background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.project-media-hit-area:active{background:#f2f5f80f}.gallery-layer{position:fixed;inset:0;z-index:50;display:grid;place-items:center;animation:gallery-layer-in .26s ease both}.gallery-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#030509d1;backdrop-filter:blur(18px) saturate(116%);-webkit-backdrop-filter:blur(18px) saturate(116%);cursor:default}.gallery-shell{position:relative;z-index:1;width:100vw;height:100dvh;min-height:520px;display:grid;grid-template-columns:clamp(258px,24vw,360px) minmax(0,1fr);grid-template-rows:minmax(0,1fr) 110px;overflow:hidden;background:#080b10f7;box-shadow:0 40px 120px #010308b8;animation:gallery-shell-in .42s cubic-bezier(.16,1,.3,1) both}.gallery-header{grid-column:1;grid-row:1 / -1;min-width:0;display:flex;flex-direction:column;padding:clamp(88px,12vh,140px) 28px 28px;border-right:1px solid rgba(226,238,250,.14)}.gallery-header>div:first-child{min-width:0}.gallery-header span{display:block;color:#d8e2ee8f;font-size:9px;font-weight:660;letter-spacing:.11em}.gallery-header h2{margin:14px 0 0;color:#f9fbfdfa;font-size:clamp(34px,4vw,62px);font-weight:650;letter-spacing:-.065em;line-height:.95}.gallery-header p{max-width:30ch;margin:18px 0 0;color:#dce5efa8;font-size:11px;line-height:1.62}.gallery-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto}.gallery-status>span{min-width:58px;color:var(--paper);font-size:10px;font-variant-numeric:tabular-nums}.gallery-status button,.gallery-arrow{min-width:46px;min-height:46px;display:grid;place-items:center;padding:0;border:1px solid rgba(234,241,248,.22);border-radius:999px;background:#dfeaf414;color:#f6f9fceb;cursor:pointer;transition:background .18s ease,transform .12s ease}.gallery-status button:hover,.gallery-arrow:hover{background:#e1ecf729}.gallery-status button:active,.gallery-arrow:active{transform:scale(.94)}.gallery-media{position:relative;grid-column:2;grid-row:1;min-width:0;min-height:0;margin:18px 18px 0;overflow:hidden;border:1px solid rgba(226,238,250,.16);border-radius:var(--radius);background:radial-gradient(circle at 50% 24%,rgba(42,57,76,.24),transparent 52%),#05080d}.gallery-media>img{width:100%;height:100%;display:block;object-fit:contain;animation:gallery-image-in .42s cubic-bezier(.16,1,.3,1) both}.gallery-arrow{position:absolute;top:50%;z-index:2;width:50px;height:50px;transform:translateY(-50%);background:#0f151ea3;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.gallery-arrow:active{transform:translateY(-50%) scale(.94)}.gallery-arrow.is-left{left:16px}.gallery-arrow.is-right{right:16px}.gallery-thumbs{grid-column:2;grid-row:2;display:flex;gap:8px;min-width:0;padding:12px 18px 16px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:rgba(183,204,226,.42) transparent;scrollbar-width:thin}.gallery-thumbs button{flex:0 0 130px;aspect-ratio:16 / 9;padding:0;overflow:hidden;border:1px solid rgba(224,236,248,.16);border-radius:calc(var(--radius) - 4px);background:#090d13;cursor:pointer;opacity:.46;transition:opacity .18s ease,border-color .18s ease,transform .12s ease}.gallery-thumbs button:hover,.gallery-thumbs button.is-active{opacity:1;border-color:#ebf4fcb8}.gallery-thumbs button.is-active{box-shadow:inset 0 0 0 1px #bd7cdbc7}.gallery-thumbs button:active{transform:scale(.96)}.gallery-thumbs img{width:100%;height:100%;display:block;object-fit:cover}.loading-state,.error-state{position:absolute;inset:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#080a0e}.loading-state{color:#f1f4f8b8;font-size:10px;letter-spacing:.08em}.loading-state svg{color:var(--accent)}.loading-state.is-hidden{visibility:hidden;opacity:0;pointer-events:none}.loading-track{width:118px;height:2px;overflow:hidden;background:#ffffff1f}.loading-track i{display:block;width:52%;height:100%;background:var(--accent);animation:loading-sweep 1.1s ease-in-out infinite alternate}.error-state{padding:24px;text-align:center}.error-state h2{margin:0;font-size:30px;font-weight:650}.error-state p{margin:0;color:var(--muted)}.error-state button{min-height:44px;padding:0 20px;border:0;border-radius:999px;background:var(--accent);color:#25152c;font-weight:700;cursor:pointer}.grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}@keyframes loading-sweep{0%{transform:translate(-105%)}to{transform:translate(195%)}}@keyframes gallery-layer-in{0%{opacity:0}to{opacity:1}}@keyframes gallery-shell-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes gallery-image-in{0%{opacity:0;transform:scale(1.02);filter:blur(4px)}to{opacity:1;transform:scale(1);filter:blur(0)}}@media(max-width:1080px){.node-nav{width:68px}.node-nav button{grid-template-columns:30px 24px}.node-nav-label{display:none}.project-media-cluster{right:82px;width:50vw}.project-copy{width:44vw}}@media(min-width:768px){.project-index-mark{top:calc(50% - clamp(110px,12vw,190px));right:auto;bottom:auto;left:clamp(4px,2vw,30px);text-align:left}.project-presentation{position:absolute;top:50%;right:92px;left:clamp(28px,4vw,62px);z-index:2;display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr);grid-template-areas:"copy media";align-items:center;gap:clamp(28px,4vw,58px);transform:translateY(-50%)}.project-presentation .project-copy{position:relative;inset:auto;grid-area:copy;width:100%;align-self:center}.project-presentation .project-copy h1{max-width:none;font-size:clamp(44px,5vw,76px)}.project-presentation .project-media-cluster{position:relative;inset:auto;grid-area:media;width:100%;max-width:760px;justify-self:end;align-self:center}}@media(min-width:1081px){.project-index-mark{left:clamp(18px,3vw,48px)}.project-presentation{right:clamp(210px,14vw,260px);left:clamp(48px,5vw,82px);grid-template-columns:minmax(250px,.72fr) minmax(460px,1.28fr);gap:clamp(42px,5vw,88px)}}@media(max-width:767px){:root{--header-height: 62px}.site-header{height:calc(var(--header-height) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-inline:16px}.brand{font-size:16px}.current-node{gap:0;padding-right:2px}.current-node span:first-child{display:none}.node-video-world{width:118%;left:-9%}.node-video-world video{object-position:44% center}.node-nav{top:calc(72px + env(safe-area-inset-top));right:auto;left:16px;width:calc(100vw - 32px);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;transform:none}.node-nav button{min-height:32px;grid-template-columns:1fr;grid-template-rows:1px 18px;justify-items:center;align-content:start;gap:5px}.node-nav-line{width:100%;display:flex;justify-content:flex-start;background:#e8eef52e}.node-nav-line i{width:0;transform-origin:0 50%}.node-nav-label{display:none}.node-nav-number{width:auto;height:auto;display:block;justify-self:start;border:0;border-radius:0;background:transparent;color:#ebf0f661;font-size:7px;opacity:0;transition:opacity .18s ease}.node-nav button.is-active .node-nav-number{background:transparent;color:#f6f8fbeb;opacity:1}.node-nav button.is-active .node-nav-line i{width:100%}.node-nav button:focus-visible{outline:none}.node-nav button:focus-visible .node-nav-number{outline:1px solid var(--accent);outline-offset:3px}.project-presentation{display:contents}.project-media-cluster{top:auto;bottom:max(16px,env(safe-area-inset-bottom));right:16px;left:16px;width:auto;height:calc(56.25vw + 78px);aspect-ratio:auto;max-height:none;perspective:none}.project-media-cluster:before{display:none}.project-media-main{inset:auto 0 0;z-index:4;width:100%;height:auto;aspect-ratio:16 / 9;transform:none;clip-path:none}.project-media-back{top:auto;right:auto;display:block;width:auto;aspect-ratio:16 / 9;transform:none}.project-media-back-one{right:6px;bottom:32px;left:6px;z-index:3;opacity:.78}.project-media-back-two{right:12px;bottom:64px;left:12px;z-index:2;opacity:.58}.project-media-back-three{right:18px;bottom:96px;left:18px;z-index:1;opacity:.4}.project-media-back img{filter:saturate(.68) contrast(1.04) brightness(.72)}.project-image-count{top:auto;right:0;bottom:calc(100% + 9px);left:auto;font-size:7px}.project-index-mark{display:none}.project-copy{top:clamp(118px,16dvh,152px);right:16px;left:16px;bottom:auto;width:auto}.project-meta{gap:8px;font-size:7px;letter-spacing:.1em}.project-meta i{width:34px}.project-copy h1{max-width:9.5ch;margin-top:8px;font-size:clamp(38px,12vw,58px);line-height:.94}.project-copy p{max-width:29ch;margin-top:12px;font-size:clamp(12.5px,3.35vw,14px);line-height:1.58;letter-spacing:.01em;text-wrap:pretty}.view-project-button{min-width:124px;min-height:48px;margin-top:16px;padding-inline:17px 14px;font-size:10px}.gallery-shell{min-height:0;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.gallery-header{flex:0 0 116px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;border-right:0;border-bottom:1px solid rgba(226,238,250,.14)}.gallery-header span{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.gallery-header h2{margin-top:6px;font-size:clamp(25px,8vw,36px)}.gallery-header p{display:-webkit-box;margin-top:7px;overflow:hidden;font-size:9px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.gallery-status{flex-direction:column-reverse;justify-content:center;gap:7px;margin-top:0}.gallery-status>span{min-width:0;font-size:8px}.gallery-status button{width:44px;height:44px}.gallery-media{flex:0 0 auto;width:calc(100vw - 16px);aspect-ratio:16 / 9;min-height:0;margin:10px 8px 0}.gallery-arrow{width:44px;height:44px}.gallery-arrow.is-left{left:8px}.gallery-arrow.is-right{right:8px}.gallery-thumbs{flex:1 1 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;gap:7px;min-height:0;padding:8px;overflow-x:hidden;overflow-y:auto;overscroll-behavior-block:contain}.gallery-thumbs button{width:100%;flex:none}}@media(max-height:690px)and (max-width:767px){.project-media-cluster{top:auto;right:16px;bottom:max(12px,env(safe-area-inset-bottom));left:16px;width:auto;height:calc(56.25vw + 78px)}.project-copy{top:calc(106px + env(safe-area-inset-top));bottom:auto}.project-copy h1{font-size:clamp(33px,10vw,46px)}.project-copy p{margin-top:8px}.view-project-button{min-height:44px;margin-top:10px}}@media(prefers-reduced-motion:reduce){.node-story{height:100dvh}.loading-track i,.gallery-layer,.gallery-shell,.gallery-media>img{animation:none}.node-nav-line i,.node-nav-label,.view-project-button,.view-project-button:before,.gallery-status button,.gallery-arrow,.gallery-thumbs button{transition:none}}@media(prefers-reduced-transparency:reduce){.node-nav-number,.gallery-backdrop,.gallery-arrow{backdrop-filter:none;-webkit-backdrop-filter:none}.node-nav-number{background:#151a22}.gallery-backdrop{background:#04060af5}}
