:root{--accent:#e4322a;--accent-rgb:228,50,42;--bg:#f6f5f1;--ink:#171717;--muted:#6c6b68;--line:#d9d8d3;--page:clamp(22px,5vw,88px);--ease:cubic-bezier(.2,.7,.2,1);color-scheme:light;font-family:Arial,'Microsoft YaHei',sans-serif}html[data-theme=dark]{--bg:#101010;--ink:#f0efea;--muted:#a7a5a0;--line:#383532;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);transition:background .45s,color .45s}body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at 100% 80%,rgba(var(--accent-rgb),.24),transparent 70%);opacity:0;pointer-events:none;z-index:-1}html[data-theme=dark] body::before{opacity:var(--glow,.25)}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}a,button{ -webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:6px}img{display:block;width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}p{line-height:1.85}::selection{background:var(--accent);color:white}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:24px;z-index:100;background:var(--ink);color:var(--bg);padding:16px}.skip:focus{top:16px}.header{position:fixed;top:0;left:0;width:100%;height:98px;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:14px var(--page);gap:30px;transition:transform .5s var(--ease),background .4s}.header.scrolled{background:color-mix(in srgb,var(--bg) 80%,transparent)}.brand{width:96px;flex-shrink:0}.brand img{filter:invert(1)}html[data-theme=dark] .brand img{filter:none}.header nav{display:flex;gap:36px;align-items:center;font-size:14px}.header nav a{position:relative;padding:12px 0}.header nav a:after{content:'';height:2px;background:var(--accent);position:absolute;left:0;right:100%;bottom:4px;transition:right .3s}.header nav a:hover:after,.header nav a[aria-current]:after{right:0}.header-controls{display:flex;align-items:center;gap:20px;font-size:13px}.header-controls button{font-size:25px;width:30px;height:40px}.header-controls .menu-button{display:none}.top-blur{position:fixed;inset:0 0 auto;height:150px;z-index:35;pointer-events:none;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);mask-image:linear-gradient(#000 12%,transparent);opacity:0;transition:opacity .4s}body.scrolled .top-blur{opacity:1}.startup{position:fixed;inset:0;z-index:90;background:var(--accent);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:38px;animation:loader-out .75s 1.1s var(--ease) forwards;pointer-events:none}.startup img{width:min(62vw,680px);animation:logo-enter 1s var(--ease) both}.startup span{font-size:10px;letter-spacing:.24em;animation:logo-enter 1s .2s both}.startup.dismissed{display:none}@keyframes logo-enter{from{clip-path:inset(100% 0 0);transform:translateY(50px)}to{clip-path:inset(0);transform:none}}@keyframes loader-out{to{transform:translateY(-100%);visibility:hidden}}main{outline:0;min-height:70vh}.hero{padding:164px var(--page) 0}.eyebrow{display:block;font-size:11px;letter-spacing:.13em;line-height:1.7;font-weight:600}.hero-top{display:grid;grid-template-columns:1.8fr 1fr;gap:24px 8vw;align-items:end}.hero-top>.eyebrow{grid-column:1/-1;color:var(--muted)}.hero-title{font-size:clamp(46px,5.9vw,105px);line-height:1.17;letter-spacing:-.055em;max-width:970px}.hero-intro{padding-bottom:6px;max-width:360px;font-size:14px;color:var(--muted)}.text-link{display:inline-flex;gap:45px;justify-content:space-between;align-items:center;font-size:14px;padding:14px 0;border-bottom:1px solid var(--ink);color:var(--ink)}.hero-intro .text-link{margin-top:24px}.text-link span,.arrow{transition:transform .35s var(--ease)}.text-link:hover span,a:hover>.arrow{transform:translate(4px,-4px)}.hero-image{position:relative;margin-top:64px;overflow:hidden;background:#151515}.hero-image>img{height:56vw;max-height:790px;min-height:350px;object-fit:cover;object-position:center 38%}.image-credit{position:absolute;bottom:20px;left:24px;color:white;font-size:9px;letter-spacing:.18em}.hero-bottom{display:flex;justify-content:space-between;font-size:11px;padding:22px 0;border-bottom:1px solid var(--line);color:var(--muted)}.section{padding:145px var(--page)}.section-heading{display:grid;grid-template-columns:1fr 2.1fr;gap:24px 5vw;margin-bottom:74px}.section-heading .eyebrow{color:var(--muted);padding-top:12px}.section-heading h2{font-size:clamp(34px,4.5vw,77px);line-height:1.2;letter-spacing:-.045em;max-width:900px}.section-heading p{grid-column:2;color:var(--muted);max-width:540px;font-size:15px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:76px 40px}.project-card:nth-child(even){margin-top:130px}.image-frame{background:#e4e2de;overflow:hidden}.image-frame img{aspect-ratio:1.47;object-fit:cover;transition:transform 1s var(--ease)}.project-card:hover .image-frame img{transform:scale(1.035)}.caption{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:20px 0;text-align:left}.caption b{font-weight:500;font-size:18px;line-height:1.5}.caption small{display:block;font-size:11px;margin-top:7px;color:var(--muted);line-height:1.7}.caption .arrow{font-size:28px}.end-link{display:flex;width:220px;margin:65px 0 0 auto}.scene-intro{padding:100px var(--page) 80px;background:#111;color:#eee}.scene-intro .section-heading{margin:0}.scene-intro .section-heading p,.scene-intro .eyebrow{color:#aaa}.model-chapter{height:310svh;background:#111;position:relative}.model-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:radial-gradient(ellipse at 50% 90%,rgba(var(--accent-rgb),.17),transparent 60%),#111}.model-canvas{position:absolute;inset:0}.model-canvas canvas{display:block}.scene-progress{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);width:150px;height:3px;background:#ffffff30;z-index:2}.scene-progress i{display:block;height:100%;background:var(--accent);transform:scaleX(var(--progress,0));transform-origin:left}.header.immersed{color:#eee;background:transparent}.header.immersed .brand img{filter:none}.header.immersed.scrolling{transform:translateY(-105%)}.render-section{position:relative}.render-editorial{display:grid;grid-template-columns:1fr 1fr;gap:70px 6vw}.render-editorial>.artwork:first-child{grid-column:1/-1}.render-editorial>.artwork:last-child{grid-column:1/-1;width:72%;margin-left:auto}.artwork{padding:0;display:block;width:100%;text-align:left;overflow:hidden}.artwork>img{background:#202020;transition:transform 1s var(--ease)}.artwork:hover>img{transform:scale(1.018)}.artwork .caption b{font-size:12px}.practice{background:#171717;color:#f6f5f1}.practice .section-heading .eyebrow{color:#f6f5f1;opacity:.6}.service-row{display:grid;grid-template-columns:45px 1.2fr 1fr 30px;gap:30px;border-top:1px solid color-mix(in srgb,currentColor 25%,transparent);padding:40px 0;align-items:start}.service-index{font-size:11px;padding-top:8px;color:var(--accent)}.service-row h3{font-size:clamp(23px,2.7vw,40px);letter-spacing:-.03em}.service-row p{font-size:13px;max-width:330px;opacity:.7}.service-row .arrow{font-size:30px}.practice .service-row:hover{color:#fff}.footer{padding:100px var(--page) 25px;background:var(--accent);color:#fff;overflow:hidden}.footer-contact>a{font-size:clamp(34px,4.5vw,75px);line-height:1.35;letter-spacing:-.04em;display:flex;justify-content:space-between;gap:50px;margin-top:24px;max-width:1200px}.footer-meta{display:flex;justify-content:space-between;margin:70px 0 60px;font-size:11px;gap:30px}.footer-meta>div{display:flex;gap:25px;align-items:center}.footer-logo{width:100%;overflow:hidden}.footer-logo img{transform-origin:bottom;max-height:55vw;object-fit:contain}.footer-logo.is-visible img{animation:logo-enter 1.5s var(--ease) both}.footer-bottom{display:flex;justify-content:space-between;margin-top:40px;border-top:1px solid #ffffff40;padding-top:20px;font-size:9px;letter-spacing:.1em}.page-title{padding:185px var(--page) 80px}.page-title h1{font-size:clamp(48px,6.8vw,116px);max-width:1200px;letter-spacing:-.055em;line-height:1.18;margin-top:24px}.page-title p{max-width:620px;color:var(--muted);font-size:16px;margin-top:35px}.compact{padding-top:35px}.work-tabs{display:flex;gap:35px;border-bottom:1px solid var(--line);margin-bottom:65px}.work-tabs button{padding:15px 0 22px;font-size:24px;position:relative;color:var(--muted)}.work-tabs button[aria-selected=true]{color:var(--ink)}.work-tabs button[aria-selected=true]:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--accent)}sup{font-size:11px;margin-left:8px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:30px}.filters button{font-size:13px;padding:9px 18px;border:1px solid var(--line);border-radius:2px}.filters button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.gallery{columns:2;column-gap:36px}.gallery .artwork{break-inside:avoid;margin-bottom:35px}.gallery-note{font-size:11px;color:var(--muted);margin-bottom:30px}.project-title{padding:175px var(--page) 70px;display:grid;grid-template-columns:1fr 3fr 1fr;gap:35px}.project-title h1{font-size:clamp(38px,5vw,85px);line-height:1.12;letter-spacing:-.045em;margin:25px 0}.project-title p{max-width:600px;color:var(--muted);font-size:15px}.project-scope{font-size:11px;line-height:2.1;align-self:end}.project-scope span{display:block;color:var(--muted);margin-bottom:12px}.project-scope b{display:block;font-weight:400}.project-hero{padding:0 var(--page)}.project-hero img{max-height:1100px;object-fit:contain;background:#151515}.project-details{display:grid;grid-template-columns:1fr 1fr;gap:55px 35px}.project-details .artwork{align-self:start}.project-details .artwork:first-child{grid-column:1/-1}.project-details img{max-height:1000px;object-fit:contain;background:color-mix(in srgb,var(--ink) 4%,var(--bg))}.detail-note{max-width:560px;margin:50px 0 65px;font-size:14px;color:var(--muted)}.next-project{margin-top:75px;text-align:right}.process{display:grid;grid-template-columns:1fr 1fr;gap:65px 8vw;border-top:1px solid var(--line);padding-top:50px}.process span{font-size:11px;color:var(--accent)}.process h3{font-size:28px;margin:20px 0}.process p{font-size:14px;color:var(--muted);max-width:400px}.process+.section-heading,.service-row+.section-heading{margin-top:140px}.studio-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:8vw}.studio-copy{max-width:490px}.studio-copy p{font-size:17px;margin-bottom:32px}.studio-layout>div>img{height:600px;object-fit:cover}.studio-statement{font-size:clamp(40px,6vw,100px);line-height:1.3;letter-spacing:-.05em;margin-bottom:75px}.studio-strip{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:20px;align-items:center}.contact-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:8vw}.email-link{font-size:clamp(24px,3vw,48px);display:block;margin:20px 0 50px;letter-spacing:-.03em;overflow-wrap:anywhere}.wechat{font-size:13px;border-top:1px solid var(--line);padding-top:25px;display:flex;justify-content:space-between;gap:20px}.wechat button{color:var(--accent)}.brief label{display:block;font-size:16px;margin-bottom:18px}.brief select{padding:15px;background:var(--bg);border:1px solid var(--line);width:100%;font-size:14px}.brief p{font-size:13px;color:var(--muted);margin:24px 0}.legal-copy{max-width:950px}.legal-copy h2{font-size:25px;margin:30px 0 20px}.legal-copy p{font-size:15px;color:var(--muted)}.edge-controls{position:fixed;z-index:42;inset:50% 14px auto;pointer-events:none;display:flex;justify-content:space-between;transition:opacity .35s,transform .35s}.edge-controls button{pointer-events:auto;width:34px;height:40px;background:var(--bg);border:1px solid var(--line);color:var(--ink);font-size:16px}.edge-controls.scrolling{opacity:0;transform:translateY(10px);pointer-events:none}.edge-controls.scrolling button{pointer-events:none}.edge-controls:focus-within{opacity:1;transform:none}.lightbox{border:0;background:#111;color:#fff;width:100vw;height:100svh;max-width:none;max-height:none;padding:70px 80px;inset:0;margin:0}.lightbox::backdrop{background:#111}.lightbox figure{margin:0;height:100%;display:flex;flex-direction:column;justify-content:center;gap:20px}.lightbox figure img{height:calc(100% - 35px);object-fit:contain}.lightbox figcaption{text-align:center;font-size:12px}.lightbox button{position:absolute;z-index:2;font-size:32px;color:#fff;padding:8px}.lightbox-close{right:25px;top:20px}.lightbox-prev{left:20px;top:50%}.lightbox-next{right:20px;top:50%}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);opacity:0;padding:14px 25px;background:var(--ink);color:var(--bg);z-index:100;font-size:13px;transition:.3s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}body.motion .reveal{opacity:0;transform:translateY(65px) scale(.94);transform-origin:center 65%;transition:transform 1.1s var(--ease),opacity 1s var(--ease)}body.motion .reveal.is-visible{opacity:1;transform:none}.page-leaving{opacity:0;transform:translateY(-18px);transition:opacity .18s,transform .18s}.page-enter{animation:page-enter .6s var(--ease) both}@keyframes page-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.hero-image>img{height:48vw}.section{padding-top:175px;padding-bottom:175px}}@media(max-width:900px){.header nav{gap:20px}.hero-top{grid-template-columns:1.5fr 1fr;gap:25px}.hero-title{font-size:55px}.section-heading{grid-template-columns:1fr 2.5fr}.service-row{grid-template-columns:30px 1.1fr 1fr 20px;gap:20px}.project-title{grid-template-columns:1fr 3fr}.project-scope{grid-column:2}.contact-layout{grid-template-columns:1fr;gap:70px}.studio-layout{gap:40px}.studio-layout>div>img{height:500px}}
@media(max-width:650px){:root{--page:22px}.header{height:77px;gap:15px}.brand{width:72px}.header-controls{gap:17px}.header-controls .menu-button{display:block;font-size:21px}.header nav{display:none}.header.menu-open{background:var(--bg);color:var(--ink)}.header.menu-open .brand img{filter:invert(1)}html[data-theme=dark] .header.menu-open .brand img{filter:none}.header.menu-open nav{display:flex;position:absolute;top:77px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);padding:20px 22px 35px}.header nav a{font-size:27px;padding:15px 0;border-top:1px solid var(--line)}.hero{padding-top:126px}.hero-top{display:block}.hero-title{font-size:48px;margin:25px 0 32px;line-height:1.23}.hero-intro{max-width:320px;font-size:13px}.hero-intro .text-link{margin-top:15px}.hero-image{margin-top:40px;margin-left:-22px;margin-right:-22px}.hero-image>img{height:110vw;min-height:0;object-position:53% center}.hero-bottom{font-size:10px;gap:25px}.section{padding:85px var(--page)}.section-heading{display:block;margin-bottom:42px}.section-heading h2{font-size:37px;margin:20px 0 24px;line-height:1.26}.section-heading p{font-size:13px;max-width:360px}.project-grid{grid-template-columns:1fr;gap:36px}.project-card:nth-child(even){margin-top:0}.caption{padding:16px 0}.caption b{font-size:17px}.end-link{margin-top:40px}.scene-intro{padding:80px var(--page) 40px}.model-chapter{height:270svh}.model-stage{height:100svh}.render-editorial{gap:30px;grid-template-columns:1fr}.render-editorial>.artwork:first-child,.render-editorial>.artwork:last-child{grid-column:auto;width:100%;margin:0}.service-row{grid-template-columns:25px 1fr 25px;gap:15px;padding:30px 0}.service-row h3{font-size:25px;grid-column:2}.service-row p{grid-column:2;font-size:12px}.service-row .arrow{grid-column:3;grid-row:1;font-size:24px}.footer{padding:75px var(--page) 20px}.footer-contact>a{font-size:35px;gap:25px}.footer-meta{display:block;margin:40px 0}.footer-meta>div{margin-top:20px;gap:20px;font-size:10px}.footer-bottom{font-size:8px}.page-title{padding:140px var(--page) 50px}.page-title h1{font-size:47px;line-height:1.25}.page-title p{font-size:14px;margin-top:25px}.compact{padding-top:15px}.work-tabs{gap:25px;margin-bottom:35px}.work-tabs button{font-size:22px}.gallery{columns:1}.filters{gap:8px}.filters button{padding:8px 12px;font-size:12px}.project-title{display:block;padding:130px var(--page) 40px}.project-title>div{margin-top:30px}.project-title h1{font-size:44px;overflow-wrap:anywhere}.project-scope b{display:inline-block;margin-right:16px}.project-hero{padding:0}.project-details{grid-template-columns:1fr;gap:25px}.project-details .artwork:first-child{grid-column:auto}.detail-note{margin:35px 0;font-size:13px}.process{grid-template-columns:1fr;gap:38px}.process h3{font-size:25px;margin:14px 0}.process p{font-size:13px}.service-row+.section-heading{margin-top:85px}.studio-layout{display:block}.studio-copy p{font-size:15px}.studio-layout>div>img{height:auto;margin-top:40px}.studio-statement{font-size:39px}.studio-strip{grid-template-columns:1fr 1fr}.studio-strip img:first-child{grid-column:1/-1}.contact-layout{gap:50px}.wechat{display:block}.wechat button{display:block;padding:15px 0}.email-link{font-size:27px}.edge-controls{inset:50% 5px auto}.edge-controls button{width:24px;height:32px;font-size:13px;opacity:.8}.lightbox{padding:65px 35px}.lightbox-prev{left:0}.lightbox-next{right:0}.lightbox button{font-size:24px}.toast{min-width:180px;text-align:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}body.motion .reveal{opacity:1;transform:none}.startup{display:none}}


.pointer-dot{position:fixed;top:0;left:0;z-index:2000;display:block;width:24px;height:24px;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:#d31832;box-shadow:0 0 9px rgba(211,24,50,.48);opacity:0;pointer-events:none;will-change:transform;transition:width 90ms ease,height 90ms ease,margin 90ms ease,opacity 100ms ease}
.pointer-dot.is-visible{opacity:1}.pointer-dot.is-pressed{width:32px;height:32px;margin:-4px 0 0 -4px}
.footer{position:relative;min-height:100svh;background:#070707;color:#f5f4f0;padding:clamp(90px,14svh,170px) var(--page) 25px;display:flex;flex-direction:column;overflow:hidden}
.footer-contact{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin:0}
.footer-contact>.eyebrow{font-size:11px;color:#9c9c9c;font-weight:400}
.footer-contact>a{font-size:18px;letter-spacing:0;line-height:1.6;max-width:400px;margin:0;gap:30px;justify-self:end}
.footer-meta{display:flex;justify-content:space-between;font-size:11px;margin:35px 0 60px;gap:30px;color:#b3b3b3}
.footer-logo{width:min(52vw,850px);margin-top:auto;padding-top:80px;transform:none;opacity:1;overflow:hidden}
.footer-logo img{width:100%;max-height:none;object-fit:contain;transform:translateY(105%);opacity:0;clip-path:inset(100% 0 0);transition:none}
.footer-logo.is-visible img{animation:footer-mark-enter 1.3s var(--ease) both}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:45px;padding-top:20px;border-top:0;color:#aaa;font-size:10px;letter-spacing:.08em}
@keyframes footer-mark-enter{0%{opacity:0;clip-path:inset(100% 0 0);transform:translateY(105%) skewY(7deg)}25%{opacity:1}100%{opacity:1;clip-path:inset(0);transform:translateY(0) skewY(0)}}
@media(max-width:650px){.footer{min-height:90svh;padding-top:80px}.footer-contact{display:block}.footer-contact>a{font-size:19px;margin-top:24px;max-width:310px}.footer-meta{display:block;margin:26px 0 40px}.footer-meta>div{margin-top:18px;gap:22px;flex-wrap:wrap}.footer-logo{width:100%;padding-top:70px}.footer-bottom{margin-top:35px;font-size:9px}}
@media(pointer:coarse){.pointer-dot{display:none}}
@media(prefers-reduced-motion:reduce){.footer-logo img{opacity:1;transform:none;clip-path:none}.footer-logo.is-visible img{animation:none}}

.scene-intro,.model-chapter,.model-stage{background:#fff;color:#111}
html[data-theme=dark] .scene-intro,html[data-theme=dark] .model-chapter,html[data-theme=dark] .model-stage{background:#000;color:#fff}
.scene-intro .section-heading p,.scene-intro .eyebrow{color:currentColor;opacity:.6}
.model-stage{--dial-size:min(74svh,54vw)}
.scene-progress{inset:50% auto auto 50%;width:var(--dial-size);height:var(--dial-size);background:none;transform:translate(-50%,-50%);color:inherit;pointer-events:none;z-index:1}
.scene-progress svg{width:100%;height:100%;display:block;overflow:visible}
.scene-progress line{stroke:currentColor;stroke-width:1.4;opacity:.12;transition:opacity .16s}
.scene-progress line.is-complete{opacity:.7}
.model-canvas{z-index:2;pointer-events:none}
.scene-kicker{position:absolute;top:120px;left:var(--page);display:flex;flex-direction:column;gap:5px;font:12px/1.3 monospace;z-index:3}
.scene-kicker span{width:max-content;padding:2px 5px;border:1px solid currentColor}
.scene-finishes{position:absolute;top:50%;left:var(--page);z-index:3}
.scene-label{font:12px/1.4 monospace;opacity:.55;display:block;margin-bottom:26px}
.scene-finishes ol{list-style:none;margin:0;padding:0;font-size:clamp(28px,3.25vw,48px);line-height:1.13;letter-spacing:-.045em}
.scene-finishes li{opacity:.17;transition:opacity .3s}
.scene-finishes li.is-active{opacity:1}
.scene-identity{position:absolute;top:50%;left:83%;white-space:nowrap;font:12px/1.4 monospace;opacity:.6;z-index:3}
.header.scene-immersed{color:#111;background:transparent}
.header.scene-immersed .brand img{filter:invert(1)}
html[data-theme=dark] .header.scene-immersed{color:#fff}
html[data-theme=dark] .header.scene-immersed .brand img{filter:none}
@media(max-width:900px){.scene-identity{left:auto;right:var(--page)}.scene-finishes ol{font-size:30px}}
@media(max-width:650px){.model-stage{--dial-size:min(64svh,92vw)}.scene-kicker{top:105px}.scene-finishes{top:auto;bottom:52px;right:var(--page)}.scene-label{font-size:11px;margin-bottom:16px}.scene-finishes ol{display:flex;gap:22px;font-size:25px;letter-spacing:-.04em}.scene-identity{top:115px;font-size:11px}.scene-progress{top:47%}}


:root{--asw-surface:#fff;--asw-type:#000;--asw-nav:#393939;--asw-border:#929b9f}
html[data-theme=dark]{--asw-surface:#000;--asw-type:#fff;--asw-nav:#e4e4e4;--asw-border:#82888c}
.asw-main-screen{position:relative;min-height:100dvh;display:grid;place-items:center;background:var(--asw-surface);color:var(--asw-type);padding:90px 4vw;isolation:isolate}
.asw-veil-background{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.asw-main-title{font-family:Arial,'Microsoft YaHei',sans-serif;font-weight:700;font-size:8.3vw;line-height:1.25;letter-spacing:.025em;text-align:center;width:100%;margin:0;transform:translateY(.5vw)}
.asw-main-title span{display:block;white-space:nowrap}
.asw-tech-hero{width:100%;height:480px;position:relative}
.asw-tech-canvas{position:absolute;inset:0}
.asw-tech-fallback{position:absolute;inset:0;display:grid;place-items:center;font:600 clamp(22px,8vw,150px)/1.1 system-ui,sans-serif;letter-spacing:-.05em;text-align:center;margin:0}
.asw-tech-hero:has(.tech-mounted) .asw-tech-fallback{width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.asw-main-title.asw-title-zh{font-size:10vw;letter-spacing:.05em;line-height:1.32}
.header.asw-header,.header.asw-header:not(.immersed){height:108px;display:block;padding:0;background:transparent;color:var(--asw-nav);font-family:Arial,'Microsoft YaHei',sans-serif}
.header.asw-header.scrolled:not(.immersed){background:transparent}
.header.asw-header .asw-navigation{display:grid;grid-template-columns:310px 56px 350px;gap:56px;position:absolute;left:calc(50% + 20px);top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);align-items:center;font-size:14px;font-weight:400;width:auto;min-height:0;padding:0;background:transparent;z-index:auto}
.asw-nav-left,.asw-nav-right{display:flex;align-items:center;justify-content:space-between;gap:30px}
.header.asw-header .asw-brand,.header.asw-header:not(.immersed) .asw-brand{width:56px;display:block;justify-self:center}
.header.asw-header nav a{padding:10px 0;white-space:nowrap;line-height:1.2;border:0;font-size:inherit}
.header.asw-header nav .asw-brand{padding:0}
.header.asw-header nav a:after,.header.asw-header:not(.immersed) nav a:after{display:none}
.header.asw-header nav a:hover{color:var(--accent)}
.header.asw-header nav a[aria-current]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.header.asw-header nav .asw-gallery{padding:8px 18px;border:1px solid var(--asw-border);border-radius:999px;min-width:102px;text-align:center;transition:border-color .2s,color .2s}
.header.asw-header nav .asw-gallery:hover{border-color:var(--accent)}
.header.asw-header .asw-controls{position:absolute;top:50%;left:calc(50% + 515px);transform:translateY(-50%);gap:22px;font-size:12px}
.asw-controls .language{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;color:inherit;padding:12px 0}
.header.asw-header.immersed:not(.scene-immersed){color:#f5f4f0}
.header.asw-header.immersed:not(.scene-immersed) .brand img{filter:none}
.header.asw-header .asw-theme{display:grid;place-items:center;width:32px;height:40px;padding:0}
.asw-theme>span{display:block;width:16px;height:16px;border:1px solid currentColor;border-radius:50%;background:linear-gradient(90deg,currentColor 50%,transparent 50%);transition:transform .3s}
html[data-theme=dark] .asw-theme>span{transform:rotate(180deg)}
.header.asw-header .asw-mobile-nav{display:none}
@media(min-width:1281px){.header.asw-header{height:5.3vw}.header.asw-header .asw-navigation{grid-template-columns:15.14vw 2.74vw 17.1vw;left:calc(50% + .98vw);gap:2.74vw;font-size:max(11px,.684vw)}.header.asw-header .asw-brand,.header.asw-header:not(.immersed) .asw-brand{width:2.74vw}.header.asw-header .asw-controls{left:calc(50% + 25.15vw);font-size:max(11px,.586vw);gap:1.1vw}.header.asw-header nav .asw-gallery{min-width:5vw;padding:.4vw .88vw}.header.asw-header .asw-theme{width:1.56vw}.asw-theme>span{width:max(14px,.78vw);height:max(14px,.78vw)}}
@media(max-width:1280px) and (min-width:1024px){.header.asw-header .asw-navigation{grid-template-columns:290px 52px 290px;left:50%;gap:32px;font-size:12px}.header.asw-header .asw-controls{left:calc(50% + 407px);gap:16px}.header.asw-header nav .asw-gallery{min-width:86px;padding:8px 14px}}
@media(max-width:1023px){.header.asw-header,.header.asw-header:not(.immersed){height:84px;padding:0;background:transparent}.header.asw-header .asw-navigation{display:flex;width:auto;left:50%;gap:0}.header.asw-header .asw-nav-left,.header.asw-header .asw-nav-right{display:none}.header.asw-header .asw-brand,.header.asw-header:not(.immersed) .asw-brand{width:62px}.header.asw-header .asw-controls{left:auto;right:24px;gap:14px}.header.asw-header .menu-button{display:flex;width:32px;height:40px;padding:10px 4px;flex-direction:column;justify-content:center;gap:6px;font-size:0}.header.asw-header .menu-button:after{content:none}.menu-button span{display:block;background:currentColor;width:24px;height:1px;transition:transform .25s}.header.asw-header.menu-open .menu-button span:first-child{transform:translateY(3.5px) rotate(45deg)}.header.asw-header.menu-open .menu-button span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.header.asw-header.menu-open{color:var(--asw-nav);background:var(--asw-surface)}.header.asw-header.menu-open.scrolling{transform:none}.header.asw-header.menu-open .asw-mobile-nav{display:flex;position:fixed;inset:84px 0 auto;min-height:calc(100dvh - 84px);padding:32px 24px 84px;background:var(--asw-surface);color:var(--asw-type);flex-direction:column;justify-content:center;align-items:center;gap:12px;z-index:-1;transform:none;width:100%;font-size:25px}.header.asw-header.menu-open .asw-mobile-nav a{padding:12px;min-width:180px;text-align:center;font-size:25px}.asw-main-screen{padding:84px 4vw;min-height:100dvh}.asw-main-title{font-size:8.3vw;line-height:1.4}.asw-main-title.asw-title-zh{font-size:13.5vw;line-height:1.4}}
@media(max-width:480px){.header.asw-header .asw-controls{right:15px;gap:9px}.header.asw-header .asw-brand,.header.asw-header:not(.immersed) .asw-brand{width:54px}.asw-controls .language{font-size:11px}.header.asw-header .asw-theme{width:28px}}

.asw-main-screen>.asw-tech-hero{position:absolute;inset:0;width:100%;height:100%}

.brand-marquee{height:200px;position:relative;overflow:hidden;contain:layout paint;display:grid;align-items:center;background:var(--asw-surface);color:var(--asw-type)}
.brand-marquee>div{min-width:0;width:100%;max-width:100%}
.brand-marquee .logoloop{min-width:0;max-width:100%;overflow:hidden}
.brand-marquee .logoloop__list{list-style:none;padding:0;margin:0}
.brand-marquee .logoloop__item{height:60px;display:flex;align-items:center;justify-content:center}
.brand-marquee .logoloop__link{height:100%;display:flex;align-items:center;justify-content:center}
.brand-marquee .logoloop__item img,.logo-loop-fallback img{filter:brightness(0);opacity:.82}
html[data-theme=dark] .brand-marquee .logoloop__item img,html[data-theme=dark] .logo-loop-fallback img{filter:brightness(0) invert(1);opacity:.9}
.logo-loop-fallback{display:flex;align-items:center;gap:100px;width:max-content}
.logo-loop-fallback img{height:60px;width:auto;flex:none}
.logo-loop-pause{position:absolute;bottom:14px;right:24px;width:28px;height:28px;padding:0;border:1px solid currentColor;border-radius:50%;background:var(--asw-surface);color:var(--asw-nav);font-size:12px;z-index:11;cursor:pointer}
.logo-loop-pause:focus-visible{outline:2px solid currentColor;outline-offset:3px}


@font-face{font-family:'Studio Sans';src:url('/fonts/studio-sans-851b34dad75c.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--site-font:'Studio Sans','Noto Sans SC','PingFang SC','Microsoft YaHei',Arial,sans-serif}
html[data-theme=dark]{--bg:#000;--asw-surface:#000}
html[data-theme=dark] body::before{background:none;opacity:0}
html[data-theme=dark] .footer{background:#000}
html[data-theme=dark] .a-cta{background:#202020}
html,body{font-family:var(--site-font);font-weight:400;font-synthesis:none;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit}
.agency,.header.asw-header,.header.asw-header:not(.immersed),.asw-main-title{font-family:var(--site-font)}
.agency h1,.agency h2,.agency h3,.agency strong,.agency b{font-weight:600}
.asw-main-title{font-weight:700}
.agency p,.agency .a-cta p{font-weight:400}
.agency .a-button,.agency .a-overline,.agency .a-text-link,.agency .a-email,.agency .brief label,.agency .caption b{font-weight:500}
.scene-kicker,.scene-label,.scene-identity{font-family:var(--site-font)}


.header.asw-header,.header.asw-header:not(.immersed),.header.asw-header.scrolled:not(.immersed),.header.asw-header.menu-open{background:transparent}
.top-blur{height:clamp(130px,calc(5.3vw + 80px),240px);background:transparent;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);mask-image:linear-gradient(to bottom,#000 0%,#000 65%,rgba(0,0,0,.75) 78%,rgba(0,0,0,.3) 90%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 65%,rgba(0,0,0,.75) 78%,rgba(0,0,0,.3) 90%,transparent 100%);opacity:1;pointer-events:none}


.header.asw-header .asw-navigation{display:grid;grid-template-columns:repeat(7,105px);gap:0;left:50%;font-size:10.5px;font-weight:400;justify-items:center}
.header.asw-header .asw-nav-left,.header.asw-header .asw-nav-right{display:contents}
.header.asw-header nav .asw-gallery{min-width:86px}
.header.asw-header .asw-controls{font-size:9px}
.header.asw-header nav{font-weight:400}
@media(min-width:1281px){.header.asw-header .asw-navigation{grid-template-columns:repeat(7,6.5vw);left:50%;gap:0;font-size:max(8.25px,.513vw)}.header.asw-header .asw-controls{font-size:max(8.25px,.4395vw)}.header.asw-header nav .asw-gallery{min-width:5vw}}
@media(max-width:1280px) and (min-width:1024px){.header.asw-header .asw-navigation{grid-template-columns:repeat(7,105px);left:50%;gap:0;font-size:9px}}
@media(max-width:1023px){.header.asw-header .asw-navigation{display:flex;left:50%;gap:0}.header.asw-header .asw-nav-left,.header.asw-header .asw-nav-right{display:none}.header.asw-header.menu-open .asw-mobile-nav,.header.asw-header.menu-open .asw-mobile-nav a{font-size:18.75px}.asw-controls .language{font-size:9px}.top-blur{height:140px}}
@media(max-width:480px){.asw-controls .language{font-size:8.25px}}

@media(max-width:1023px){.header.asw-header.menu-open{background:var(--asw-surface)!important;backdrop-filter:none;-webkit-backdrop-filter:none}body:has(.header.asw-header.menu-open) .top-blur{opacity:0}}


.header.asw-header.scene-hidden{transform:translateY(-110%);opacity:0;visibility:hidden;pointer-events:none}
body.in-model-chapter .top-blur{opacity:0;visibility:hidden}
.model-stage .scene-kicker{top:clamp(165px,calc(5.3vw + 100px),220px)}
@media(max-width:650px){.model-stage .scene-kicker{top:145px}}


.h-page{--h-bg:#fff;--h-ink:#171717;--h-muted:#626262;--h-line:#d4d4d4;background:var(--h-bg);color:var(--h-ink);font-family:var(--site-font);overflow:clip}
html[data-theme=dark] .h-page{--h-bg:#000;--h-ink:#f5f5f5;--h-muted:#ababab;--h-line:#353535}
.h-page h1,.h-page h2,.h-page h3{font-weight:500;letter-spacing:-.055em;line-height:1.12}
.h-page p{line-height:1.65}.h-page button,.h-page a{touch-action:manipulation}
.h-page .h-media{overflow:hidden;background:color-mix(in srgb,var(--h-ink) 5%,var(--h-bg))}
.h-media img{width:100%;height:100%;object-fit:cover}
.h-link{display:inline-flex;align-items:center;gap:40px;font-size:15px;padding:15px 0;white-space:nowrap}.h-link>span:first-child{position:relative}.h-link>span:first-child:after{content:'';position:absolute;bottom:-6px;height:1px;background:currentColor;left:0;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.h-link:hover>span:first-child:after{transform:scaleX(1)}.h-link>span:last-child{font-size:24px;transition:transform .3s}.h-link:hover>span:last-child{transform:translate(3px,-3px)}
.h-carousel{position:relative;height:100dvh;min-height:max(700px,calc(20vw + 430px));isolation:isolate;overflow:hidden}
.h-carousel-heading{position:absolute;top:40px;left:3.2vw;font-size:14px!important;font-weight:400!important;letter-spacing:0!important;z-index:2}
.h-carousel-window{position:absolute;inset:0;display:flex;align-items:center;overflow:hidden;touch-action:pan-y;cursor:grab}
.h-carousel-track{display:flex;align-items:center;gap:24px;width:max-content;flex:none;transform:translate3d(0,0,0)}
.h-slide{display:block;flex:0 0 max(20vw,280px);width:max(20vw,280px);position:relative;user-select:none;touch-action:pan-y}
.h-slide .h-media{aspect-ratio:1.06;transition:transform .65s var(--ease),opacity .4s;opacity:.72}
.h-slide[data-active=true] .h-media{opacity:1}.h-slide:hover .h-media{transform:scale(1.035);opacity:1}
.h-carousel.is-dragging .h-carousel-window{cursor:grabbing}.h-carousel.is-dragging .h-slide .h-media{transform:scale(.94)}
.h-carousel-caption{position:absolute;top:calc(50% + max(10vw,140px) + 22px);left:10%;right:10%;text-align:center;z-index:2;pointer-events:none}
.h-carousel-caption a{display:inline-flex;align-items:center;flex-direction:column;gap:12px;max-width:100%;pointer-events:auto}
.h-caption-kind{font-size:12px;color:var(--h-muted)}.h-caption-title{font-size:clamp(26px,min(3.8vw,6dvh),68px);line-height:1.15;letter-spacing:-.045em}
.h-carousel-footer{position:absolute;bottom:0;left:3.2vw;right:3.2vw;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:center;font-size:13px;min-height:100px;z-index:3}
.h-carousel-footer>span,.h-carousel-footer>.h-carousel-nav,.h-carousel-footer>a{border-top:1px solid var(--h-line);padding:25px 0;height:85px;display:flex;align-items:center}.h-carousel-footer>a{justify-content:flex-end;gap:18px}.h-carousel-footer>a>span{font-size:11px;color:var(--h-muted)}
.h-carousel-nav{justify-content:center;gap:22px}.h-carousel-nav button{font-size:22px;width:44px;height:44px;border-radius:50%;transition:background .25s,color .25s}.h-carousel-nav button:hover{background:var(--h-ink);color:var(--h-bg)}
.h-carousel-page{height:100dvh}.h-carousel-page .h-carousel-heading{top:140px}
.h-work-switch{position:absolute;top:125px;left:3.2vw;right:3.2vw;display:flex;justify-content:flex-end;gap:25px;z-index:4;font-size:13px}.h-work-switch button{padding:14px 0;color:var(--h-muted)}.h-work-switch button[aria-selected=true]{color:var(--h-ink);border-bottom:1px solid currentColor}
.h-section-title{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:65px}.h-section-title h2{font-size:clamp(36px,5vw,90px)}
.h-art-section{padding:140px 5vw 0;scroll-margin-top:100px}.h-gallery{display:grid;grid-template-columns:1fr 1fr;gap:70px 36px}.h-artwork{width:100%;display:block;padding:0;text-align:left;min-width:0;color:var(--h-ink)}.h-artwork .h-media{aspect-ratio:1.4}.h-artwork img{transition:transform .7s var(--ease)}.h-artwork:hover img{transform:scale(1.035)}.h-artwork:nth-child(even){margin-top:100px}.h-art-caption{display:flex;justify-content:space-between;font-size:15px;padding:18px 0}.h-art-caption>span{font-size:20px}
.h-studio-teaser{padding:180px 10vw 160px}.h-large-copy{font-size:clamp(38px,5.3vw,96px);line-height:1.35!important;letter-spacing:-.045em;margin-bottom:50px}
.h-archive{padding:230px 5vw 140px;min-height:100dvh}.h-archive .h-section-title{margin-bottom:40px}.h-layout-switch{display:flex;gap:20px;font-size:13px}.h-layout-switch button{padding:10px 0;color:var(--h-muted)}.h-layout-switch button[aria-pressed=true]{color:var(--h-ink);text-decoration:underline;text-underline-offset:6px}
.h-filters{display:flex;flex-wrap:wrap;gap:12px 28px;margin:0 0 65px;font-size:13px}.h-filters button{padding:10px 0;color:var(--h-muted)}.h-filters button[aria-pressed=true]{color:var(--h-ink);text-decoration:underline;text-underline-offset:6px}
.h-gallery-full .h-artwork:nth-child(even){margin-top:0}.h-gallery-full .h-artwork .h-media{aspect-ratio:1.5}.h-gallery[data-layout=list]{display:block}.h-gallery[data-layout=list] .h-artwork{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:36px;margin:0;padding:24px 0;border-bottom:1px solid var(--h-line)}.h-gallery[data-layout=list] .h-art-caption{font-size:clamp(22px,3vw,42px)}.h-empty{padding:60px 0;color:var(--h-muted)}
.h-editorial{padding:0 5vw}.h-page-title{padding:200px 0 100px}.h-page-title h1{font-size:clamp(56px,8.8vw,160px);max-width:16ch;line-height:1.12}.h-page-title p{font-size:17px;max-width:46ch;margin:40px 0 0;color:var(--h-muted)}
.h-service-layout{display:grid;grid-template-columns:40% 1fr;gap:9%;align-items:start;padding:60px 0 140px}.h-service-image{position:sticky;top:150px}.h-service-image .h-media{aspect-ratio:.86}.h-service summary{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:clamp(23px,2.5vw,42px);padding:30px 0;cursor:pointer;list-style:none;border-bottom:1px solid var(--h-line)}.h-service summary::-webkit-details-marker{display:none}.h-service-plus{font-size:30px;transition:transform .3s}.h-service[open] .h-service-plus{transform:rotate(45deg)}.h-service-body{padding:30px 0 45px}.h-service-body p{max-width:40ch;font-size:16px;color:var(--h-muted)}
.h-process{padding:30px 0 140px}.h-process>h2{font-size:clamp(38px,5vw,90px);margin-bottom:75px}.h-process>div{display:grid;grid-template-columns:1fr 1fr;gap:70px 100px}.h-process h3{font-size:28px;margin-bottom:20px}.h-process p{font-size:16px;color:var(--h-muted);max-width:32ch}
.h-studio-image .h-media{height:75dvh;min-height:400px}.h-about{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:140px 0}.h-about h2{font-size:clamp(34px,4vw,75px)}.h-about p{font-size:18px;color:var(--h-muted);margin-bottom:35px}.h-typography{padding:30px 0 130px}.h-typography p{font-size:clamp(70px,14vw,240px);line-height:1.2;letter-spacing:-.06em}.h-typography p:nth-child(odd){text-align:right}.h-studio-work{padding-bottom:120px}.h-studio-work>.h-link{margin-top:70px}
.h-contact{display:grid;grid-template-columns:1.3fr 1fr;gap:10%;padding:30px 0 170px}.h-contact-email{font-size:clamp(25px,3vw,55px);letter-spacing:-.045em;display:block;margin-bottom:60px;overflow-wrap:anywhere}.h-wechat{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:16px;margin-bottom:45px}.h-wechat button{padding:14px 0;font-size:14px}.h-contact p,.h-brief p{font-size:16px;color:var(--h-muted);max-width:42ch}.h-brief label{display:block;font-size:14px;margin-bottom:20px}.h-brief select{background:var(--h-bg);color:var(--h-ink);border:0;border-bottom:1px solid var(--h-line);padding:18px 0;width:100%;font-size:18px;margin-bottom:30px;min-height:56px}.h-brief .h-link{margin-top:24px}.h-legal{max-width:850px;margin:auto;padding-bottom:150px}.h-legal h2{font-size:32px;margin:50px 0 24px}.h-legal p{font-size:17px;color:var(--h-muted)}
.h-project-hero{position:relative;min-height:100dvh;display:flex;align-items:flex-end;isolation:isolate;color:#fff}.h-project-hero>.h-media{position:absolute;inset:0;z-index:-2}.h-project-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(#0005,transparent 40%,#000a);z-index:-1}.h-project-heading{padding:140px 5vw 80px;width:100%;text-shadow:0 2px 16px #0004}.h-project-heading>span{font-size:15px;display:block;margin-bottom:25px}.h-project-heading h1{font-size:clamp(50px,7vw,140px);max-width:18ch}
.h-project-overview{display:grid;grid-template-columns:1fr 2fr;gap:50px 8%;padding:140px 8vw}.h-project-overview h2{font-size:16px;letter-spacing:0}.h-project-overview>p{font-size:clamp(28px,3vw,54px);line-height:1.4;letter-spacing:-.025em}.h-project-overview dl{grid-column:2;display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:30px 0 0}.h-project-overview dt{color:var(--h-muted);font-size:12px;margin-bottom:16px}.h-project-overview dd{margin:0;font-size:15px;line-height:1.8}
.h-deliverables{display:grid;grid-template-columns:1fr 1fr;gap:6vw;padding:0 5vw 100px;align-items:center}.h-deliverable{padding:0;width:100%}.h-deliverable .h-media{background:transparent}.h-deliverable img{object-fit:contain;height:auto}.h-deliverable.h-wide{grid-column:1/-1}.h-case-back{padding:20px 5vw 110px}.h-next-project{position:relative;height:85dvh;min-height:500px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;isolation:isolate}.h-next-project>.h-media{position:absolute;inset:0;z-index:-2}.h-next-project:after{content:'';position:absolute;inset:0;background:#0006;z-index:-1}.h-next-project img{transition:transform 1s var(--ease)}.h-next-project:hover img{transform:scale(1.04)}.h-next-copy{padding:80px 6vw;display:grid;gap:35px;justify-items:center}.h-next-copy h2{font-size:clamp(44px,7vw,130px);max-width:17ch}.h-next-copy>span:last-child{font-size:50px}
.h-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.motion .h-reveal{opacity:0;transform:translateY(42px);transition:opacity .85s var(--ease),transform 1s var(--ease)}.motion .h-reveal.is-visible{opacity:1;transform:none}

::view-transition-group(project-media){animation-duration:.85s;animation-timing-function:cubic-bezier(.2,.75,.2,1)}
::view-transition-old(project-media),::view-transition-new(project-media){height:100%;object-fit:cover;mix-blend-mode:normal}
::view-transition-group(root){animation-duration:.4s}
.h-case-enter{animation:none!important}
.h-image-transition{position:fixed;inset:0;z-index:35;pointer-events:none;overflow:hidden;background:#000;contain:strict}.h-image-transition img{width:100%;height:100%;object-fit:cover}
@supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.h-project-hero>.h-media img{animation:h-project-depth linear both;animation-timeline:view();animation-range:exit 0% exit 100%}.h-typography p{animation:h-type-entry linear both;animation-timeline:view();animation-range:entry 0% entry 100%}}}
@keyframes h-project-depth{to{transform:translateY(15%) scale(1.08)}}
@keyframes h-type-entry{from{opacity:.2;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1023px){.h-work-switch{top:105px}.h-carousel-page .h-carousel-heading{top:120px}.h-carousel-caption{left:5%;right:5%}.h-contact{grid-template-columns:1fr;gap:80px}.h-service-layout{gap:6%;grid-template-columns:38% 1fr}.h-project-heading h1{font-size:8vw}}
@media(max-width:700px){.h-carousel{min-height:max(620px,calc(76vw + 380px));height:90dvh}.h-carousel-page{height:100dvh}.h-carousel-heading{left:20px;top:30px}.h-carousel-page .h-carousel-heading{top:148px}.h-slide{width:76vw;flex-basis:76vw}.h-carousel-track{gap:18px}.h-carousel-caption{top:calc(50% + 36vw + 18px)}.h-caption-title{font-size:26px}.h-caption-kind{font-size:11px}.h-carousel-caption a{gap:8px}.h-carousel-footer{left:20px;right:20px;min-height:80px;gap:12px;font-size:11px;grid-template-columns:1fr 1.4fr}.h-carousel-footer>span,.h-carousel-footer>.h-carousel-nav{height:65px;padding:12px 0}.h-carousel-footer>a{display:none}.h-carousel-nav{gap:9px}.h-carousel-nav button{width:40px;height:40px}.h-work-switch{left:20px;right:20px;top:100px;justify-content:flex-start;gap:28px;font-size:13px}.h-art-section{padding:85px 20px 0}.h-section-title{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:40px}.h-section-title h2{font-size:40px}.h-link{font-size:14px;gap:25px}.h-gallery{grid-template-columns:1fr;gap:40px}.h-artwork:nth-child(even){margin-top:0}.h-art-caption{font-size:13px;padding:15px 0}.h-studio-teaser{padding:110px 20px 90px}.h-large-copy{font-size:34px}.h-archive{padding:175px 20px 85px}.h-filters{gap:6px 23px;margin-bottom:35px;font-size:12px}.h-gallery[data-layout=list] .h-artwork{grid-template-columns:90px 1fr;gap:20px}.h-gallery[data-layout=list] .h-art-caption{font-size:19px}.h-editorial{padding:0 20px}.h-page-title{padding:150px 0 70px}.h-page-title h1{font-size:clamp(43px,11vw,70px)}.h-page-title p{font-size:15px;margin-top:28px}.h-service-layout{display:flex;flex-direction:column;padding:0 0 80px;gap:40px}.h-service-image{position:static;width:100%}.h-service-image .h-media{aspect-ratio:1.2}.h-services{width:100%}.h-service summary{font-size:25px;padding:24px 0}.h-service-body p{font-size:15px}.h-process{padding:20px 0 90px}.h-process>h2{font-size:38px;margin-bottom:40px}.h-process>div{grid-template-columns:1fr;gap:42px}.h-process h3{font-size:26px}.h-process p{font-size:15px}.h-studio-image .h-media{height:55dvh;min-height:300px}.h-about{grid-template-columns:1fr;gap:40px;padding:80px 0}.h-about h2{font-size:36px}.h-about p{font-size:16px}.h-typography{padding-bottom:80px}.h-typography p{font-size:21vw}.h-studio-work{padding-bottom:70px}.h-contact{gap:55px;padding:0 0 100px}.h-contact-email{font-size:28px;margin-bottom:40px}.h-wechat{font-size:14px;flex-wrap:wrap}.h-contact p,.h-brief p{font-size:15px}.h-project-heading{padding:120px 20px 60px}.h-project-heading h1{font-size:12vw;overflow-wrap:anywhere}.h-project-heading>span{font-size:13px}.h-project-overview{grid-template-columns:1fr;padding:75px 20px;gap:30px}.h-project-overview>p{font-size:28px}.h-project-overview dl{grid-column:auto;gap:20px;margin-top:0}.h-project-overview dd{font-size:13px}.h-deliverables{grid-template-columns:1fr;gap:30px;padding:0 20px 65px}.h-deliverable.h-wide{grid-column:auto}.h-case-back{padding:0 20px 65px}.h-next-project{height:70dvh;min-height:430px}.h-next-copy{gap:25px}.h-next-copy h2{font-size:12vw}.h-legal{padding-bottom:80px}.h-legal h2{font-size:28px}.h-legal p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.motion .h-reveal{opacity:1;transform:none;transition:none}.h-slide .h-media,.h-artwork img,.h-next-project img{transition:none!important;transform:none!important}::view-transition-group(*){animation-duration:.01ms!important}}



html.js .h-case-carousel:not([data-entered]) .h-carousel-window,
html.js .h-case-carousel:not([data-entered]) .h-carousel-caption,
html.js .h-case-carousel:not([data-entered]) .h-carousel-footer{visibility:hidden}
#surfaces .section-heading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:25px;margin:0 auto}
#surfaces .section-heading .eyebrow{padding:0}
#surfaces .section-heading h2{max-width:1100px;text-wrap:balance}
#surfaces .section-heading p{max-width:640px;margin:0;text-wrap:pretty}
html.h-case-studies-active{overflow:hidden;background:var(--asw-surface)}
html.h-case-studies-active body,html.h-case-studies-active main{height:100dvh;min-height:0}
[data-work-view=projects]>.h-work-switch{display:none}
.h-case-carousel{--case-size:max(20vw,280px);height:100dvh;min-height:0}
.h-case-carousel .h-carousel-track{gap:0}
.h-case-carousel .h-slide{width:var(--case-size);flex-basis:var(--case-size);height:calc(var(--case-size)*.95);padding:12px}
.h-case-carousel .h-slide .h-media{height:100%;aspect-ratio:auto;opacity:1;transform:none;transition:transform .45s var(--ease)}
.h-case-carousel.is-dragging .h-slide .h-media{transform:scale(.96)}
.h-slide-meta{position:absolute;top:-23px;right:12px;height:24px;text-align:right;font-size:14px;font-weight:500;line-height:24px;pointer-events:none}
.h-slide-number,.h-slide-date{display:block;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.h-slide-number{opacity:0}.h-slide-date{position:absolute;right:0;top:0;white-space:nowrap;opacity:0;transform:translateY(5px)}
.h-case-carousel.has-case-caption .h-slide-number,.h-case-carousel.has-keyboard-caption .h-slide-number{opacity:.25}
.h-case-carousel .h-slide[data-hovered=true] .h-slide-number,.h-case-carousel.has-keyboard-caption .h-slide[data-active=true] .h-slide-number{opacity:0;transform:translateY(-5px)}
.h-case-carousel .h-slide[data-hovered=true] .h-slide-date,.h-case-carousel.has-keyboard-caption .h-slide[data-active=true] .h-slide-date{opacity:1;transform:none}
.h-case-carousel .h-carousel-caption{top:calc(50% + var(--case-size)*.5);left:0;right:0;opacity:0;transition:opacity .2s;pointer-events:none}
.h-case-carousel.has-case-caption .h-carousel-caption,.h-case-carousel.has-keyboard-caption .h-carousel-caption{opacity:1}
.h-case-carousel .h-carousel-caption a{gap:0;max-width:min(92vw,440px);padding:0 10px;overflow:hidden;pointer-events:none}
.h-case-carousel .h-caption-title{font-size:22px;font-weight:600;line-height:1.35;letter-spacing:-.03em}
.h-case-carousel .h-caption-kind{font-size:14px;font-weight:500;line-height:22px;height:22px;position:relative;display:block;overflow:hidden;color:var(--h-ink)}
.h-case-carousel .h-carousel-footer{--footer-gap:24px;--footer-line-top:20px;height:120px;min-height:0;left:3.2vw;right:3.2vw;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--footer-gap);font-size:14px}
.h-case-carousel .h-carousel-footer>span,.h-case-carousel .h-carousel-nav{height:80px;padding:20px 0}
.h-case-carousel .h-case-label{justify-content:flex-end}
.h-case-carousel .h-carousel-nav{gap:25px}
.h-case-carousel .h-carousel-nav button{font-size:18px}
.h-drag-progress{position:relative;color:var(--h-muted)}
.h-drag-progress-fill{position:absolute;left:0;color:var(--h-ink);clip-path:inset(0 calc(100%*(1 - var(--case-progress,0))) 0 0)}
.h-discover-cursor{position:fixed;left:0;top:0;z-index:60;pointer-events:none;display:flex;align-items:center;justify-content:center;min-width:90px;height:38px;padding:0 17px;border-radius:3px;background:#fff;color:#161616;font-size:13px;font-weight:600;opacity:0;transition:opacity .15s;will-change:transform}
.h-case-carousel.is-discovering .h-discover-cursor{opacity:1}
html.h-case-hover .pointer-dot{opacity:0!important}
.h-case-carousel .h-carousel-footer>.h-footer-sweep{--segment:calc((100% - var(--footer-gap)*2)/3);position:absolute;top:var(--footer-line-top);left:0;right:0;height:2px;padding:0;border:0;overflow:hidden;pointer-events:none;mask-image:linear-gradient(to right,#000 0 var(--segment),transparent var(--segment) calc(var(--segment) + var(--footer-gap)),#000 calc(var(--segment) + var(--footer-gap)) calc(var(--segment)*2 + var(--footer-gap)),transparent calc(var(--segment)*2 + var(--footer-gap)) calc(var(--segment)*2 + var(--footer-gap)*2),#000 calc(var(--segment)*2 + var(--footer-gap)*2) 100%)}
.h-footer-sweep:after{content:'';position:absolute;left:0;top:0;height:100%;width:40%;background:var(--h-ink);opacity:0;transform:translateX(-100%)}
.h-case-carousel[data-entry-phase=sweep] .h-footer-sweep:after{animation:h-case-line-sweep .65s cubic-bezier(.6,0,.05,1) both}
@keyframes h-case-line-sweep{0%{opacity:1;transform:translateX(-100%)}90%{opacity:1}100%{opacity:0;transform:translateX(350%)}}
@media(hover:none),(pointer:coarse){
 .h-case-carousel .h-carousel-caption{opacity:1;transform:none!important}
 .h-case-carousel .h-slide-number{opacity:.25}
 .h-case-carousel .h-slide[data-active=true] .h-slide-number{opacity:0}
 .h-case-carousel .h-slide[data-active=true] .h-slide-date{opacity:1;transform:none}
}
@media(max-width:700px){
 .h-case-carousel{--case-size:76vw;height:100dvh;min-height:0}
 .h-case-carousel .h-carousel-caption{top:calc(50% + var(--case-size)*.5);opacity:1;transform:none!important}
 .h-case-carousel .h-slide-number{opacity:.25}
 .h-case-carousel .h-slide[data-active=true] .h-slide-number{opacity:0;transform:translateY(-5px)}
 .h-case-carousel .h-slide[data-active=true] .h-slide-date{opacity:1;transform:none}
 .h-case-carousel .h-caption-title{font-size:20px}.h-case-carousel .h-caption-kind{font-size:12px;line-height:20px;height:20px}
 .h-case-carousel .h-carousel-caption a{max-width:80vw}
 .h-case-carousel .h-carousel-footer{--footer-gap:10px;--footer-line-top:10px;left:20px;right:20px;height:80px;font-size:11px}
 .h-case-carousel .h-carousel-footer>span,.h-case-carousel .h-carousel-nav{height:60px;padding:10px 0}
 .h-case-carousel .h-carousel-nav{gap:4px;min-width:0;font-size:10px}.h-case-carousel .h-carousel-nav button{position:relative;width:34px;height:40px;font-size:18px}
 .h-case-carousel .h-carousel-nav button:before{content:'';position:absolute;width:44px;height:44px;left:50%;top:50%;transform:translate(-50%,-50%)}
 .h-case-carousel .h-slide-meta{font-size:12px}
}
@media(max-height:650px) and (min-width:701px){.h-case-carousel{--case-size:min(max(20vw,280px),calc((100dvh - 300px)/.95))}.h-case-carousel .h-carousel-footer{--footer-line-top:10px;height:80px}.h-case-carousel .h-carousel-footer>span,.h-case-carousel .h-carousel-nav{height:60px;padding:10px 0}}
@media(max-height:550px) and (max-width:700px){.h-case-carousel{--case-size:min(76vw,calc((100dvh - 240px)/.95))}}
@media(prefers-reduced-motion:reduce){.h-slide-number,.h-slide-date,.h-caption-kind:before,.h-caption-kind:after{transition:none!important}.h-discover-cursor{transition:none}}

.h-studio-page .h-page-title{padding:170px 0 64px;display:grid;grid-template-columns:1.1fr 1fr;gap:7%;align-items:end}
.h-studio-page .h-page-title h1{font-size:clamp(32px,3.5vw,56px);max-width:24ch;line-height:1.4;letter-spacing:-.035em}
.h-studio-page .h-page-title p{font-size:16px;line-height:1.85;max-width:40ch;margin:0}
.h-studio-page .h-studio-image .h-media{height:48dvh;min-height:260px;max-height:560px}
.h-studio-page .h-about{grid-template-columns:1fr 1.5fr;gap:10%;padding:90px 0 40px;align-items:start}
.h-studio-page .h-about h2{font-size:clamp(26px,2.3vw,36px);line-height:1.5;letter-spacing:-.02em}
.h-studio-page .h-about p{font-size:16px;line-height:1.9;max-width:46ch;margin-bottom:26px}
.h-studio-page .h-studio-work{padding-bottom:90px;text-align:right}
.h-studio-page .h-studio-work>.h-link{margin-top:0}
.h-contact-email{font-size:clamp(21px,2vw,28px);font-weight:400;line-height:1.6;letter-spacing:-.015em;margin-bottom:26px}
@media(max-width:700px){.h-studio-page .h-page-title{padding:145px 0 40px;grid-template-columns:1fr;gap:24px}.h-studio-page .h-page-title h1{font-size:32px;line-height:1.45}.h-studio-page .h-page-title p{font-size:15px}.h-studio-page .h-about{grid-template-columns:1fr;padding:55px 0 20px;gap:26px}.h-studio-page .h-about h2{font-size:26px}.h-studio-page .h-about p{font-size:15px}.h-studio-page .h-studio-work{padding-bottom:60px}.h-contact-email{font-size:23px}}

@media(max-width:700px){.h-carousel-nav>span{white-space:nowrap;flex-shrink:0}.h-carousel-nav>button{flex-shrink:0}}

@media(max-width:1023px){.brand-marquee{height:100px}.brand-marquee .logoloop__item{height:30px}.logo-loop-fallback{gap:50px}.logo-loop-fallback img{height:30px}.logo-loop-pause{display:none}}

@media(max-width:1023px){.header.asw-header .asw-navigation{left:24px;transform:translateY(-50%)}} @media(max-width:480px){.header.asw-header .asw-navigation{left:20px}}


.h-case .h-case-hero{display:flex;align-items:flex-end;min-height:100dvh;height:100dvh;color:#fff;padding:0;max-width:none;width:100%;margin:0;isolation:isolate;background:#111;overflow:hidden}
.h-case-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(#0005,transparent 40%,#0003 68%,transparent);z-index:-1;pointer-events:none}
.h-case-hero:after{display:block;content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 56%,color-mix(in srgb,var(--h-bg) 15%,transparent) 70%,color-mix(in srgb,var(--h-bg) 65%,transparent) 88%,var(--h-bg) 100%);z-index:-1;pointer-events:none}
.h-case-hero .h-project-heading{padding:140px 5vw 28svh;text-shadow:0 2px 20px #0005}
.h-case-hero .h-project-heading>span{font-size:14px;margin-bottom:22px;color:#fff}
.h-case-hero .h-project-heading h1{font-size:clamp(48px,7vw,120px);letter-spacing:-.05em;line-height:1.08;max-width:20ch}
.h-case .h-case-hero>.h-media{position:absolute;inset:0;z-index:-2;max-height:none;overflow:hidden;background:#111}
.h-case-hero>.h-media img,.h-case-hero>.h-media video{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;animation:none!important}
.h-case-hero>.h-media .h-hero-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#000}
.header.asw-header.immersed:not(.scene-immersed){--asw-border:#ffffff66}
.h-case .h-project-overview{max-width:1440px;margin:0 auto;padding:75px 5vw 85px;gap:35px}
.h-case .h-project-overview>p{font-size:clamp(23px,2.4vw,36px);line-height:1.5;max-width:31ch}
.h-case-sections{max-width:1440px;margin:0 auto;padding:0 5vw 40px}
.h-accessible-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.h-theme-dark{display:none!important}
html[data-theme="dark"] .h-theme-light{display:none!important}
html[data-theme="dark"] .h-theme-dark{display:block!important}
.h-slide .h-media .h-logo-image{object-fit:contain;padding:12%;box-sizing:border-box;transform:scale(.7);transform-origin:center}
.h-case-category-nav{max-width:1296px;width:90%;margin:0 auto 65px;display:flex;flex-wrap:wrap;gap:18px 32px;border-block:1px solid var(--h-line);padding:24px 0}
.h-case-category-nav a{font-size:14px;color:var(--h-muted);text-decoration:none}
.h-case-category-nav a:hover{color:var(--h-ink)}
.h-case-section[id]{scroll-margin-top:150px}
.h-case-video{display:block;width:100%;max-width:960px;max-height:65svh;margin:0 auto;background:#111;object-fit:contain}
.h-motion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.h-motion-stage{position:relative;aspect-ratio:16/9;background:var(--h-bg);overflow:hidden;pointer-events:none}
.h-motion-stage video,.h-motion-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;pointer-events:none}
.h-motion-poster{transition:opacity .15s}
.h-motion-stage.is-playing .h-motion-poster{opacity:0}
.h-motion-caption{padding-top:20px}
.h-motion-caption h3{font-size:21px;letter-spacing:-.025em;margin-bottom:8px}
.h-motion-caption p{font-size:12px;color:var(--h-muted)}
@media(max-width:700px){.h-motion-grid{grid-template-columns:1fr;gap:35px}}

.h-case-section{margin-bottom:95px}
.h-case-section-copy{max-width:700px;margin-bottom:38px}
.h-case-section-copy h2{font-size:clamp(25px,3vw,38px);line-height:1.25;letter-spacing:-.035em;margin-bottom:20px}
.h-case-section-copy p{color:var(--h-muted);font-size:16px;line-height:1.9;max-width:64ch}
.h-case-composition{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px;align-items:start}
.h-case-figure{grid-column:span 6;min-width:0;margin:0}
.h-case-figure:nth-child(even){padding-top:55px}
.h-case .h-deliverable{padding:0;width:100%;display:block}
.h-case .h-deliverable .h-media{display:flex;align-items:center;justify-content:center;min-height:0;background:transparent;overflow:visible}
.h-case .h-deliverable img{width:100%;height:auto;max-height:min(68svh,580px);object-fit:contain}
.h-case-figure figcaption{color:var(--h-muted);font-size:12px;line-height:1.6;margin-top:14px}
.h-case-composition.identity{align-items:center}.identity .h-case-figure:first-child{grid-column:span 4}.identity .h-case-figure:last-child{grid-column:span 8;padding-top:0}
.identity .h-case-figure:first-child img{max-height:340px}
.h-case-composition.posters .h-case-figure,.h-case-composition.trio .h-case-figure{grid-column:span 3;padding-top:0}
.h-case-composition.trio .h-case-figure{grid-column:span 4}
.h-case-composition.posters .h-case-figure:nth-child(even),.h-case-composition.trio .h-case-figure:nth-child(2){padding-top:45px}
.h-case-composition.mixed .h-case-figure{grid-column:span 6}
.h-case-composition.mixed .h-case-figure.is-portrait{grid-column:span 4;justify-self:center;width:100%}
.h-case-composition.mixed .h-case-figure:not(.is-portrait):first-child{grid-column:span 8}
.h-case-composition.mixed .h-case-figure.is-banner{grid-column:span 8;align-self:center;padding-top:0}
.h-case-composition.single .h-case-figure{grid-column:2/12;width:min(100%,780px);justify-self:center;padding-top:0}
.h-case-composition.single.mark .h-case-figure{width:min(100%,380px)}
.h-case-composition.apparel{align-items:start}
.h-case-composition.apparel .h-case-figure{padding-top:0;justify-self:center;width:min(100%,430px)}
.h-case-composition.apparel figcaption{text-align:center}
.h-case .h-case-back{max-width:1440px;margin:0 auto;padding:0 5vw 85px}
.h-case .h-case-next{min-height:0;height:auto;max-width:1296px;width:90%;margin:0 auto 100px;padding:35px 0;border-top:1px solid var(--h-line);display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,32%);gap:40px;text-align:left;color:var(--h-ink);isolation:auto}
.h-case-next:after{display:none}
.h-case-next .h-next-copy{padding:0;gap:20px;justify-items:start;align-self:center}
.h-case-next .h-next-copy h2{font-size:clamp(28px,3.5vw,52px);letter-spacing:-.04em;max-width:20ch}
.h-case-next .h-next-copy>span:first-child{font-size:13px;color:var(--h-muted)}
.h-case-next .h-next-copy>span:last-child{font-size:30px}
.h-case .h-case-next>.h-media{position:static;inset:auto;z-index:auto;background:transparent;height:240px}
.h-case-next img{object-fit:contain;height:100%;width:100%;transform:none!important}
.h-legal-original{max-width:850px;margin:0 auto;padding-bottom:100px}
.h-legal-original h2{font-size:clamp(25px,3vw,38px);margin:0 0 22px;letter-spacing:-.035em}
.h-legal-original p{font-size:16px;line-height:1.9;color:var(--h-muted)}
.h-legal-original article{padding:38px 0;border-top:1px solid var(--h-line)}
.h-legal-original h3{font-size:22px;font-weight:500;line-height:1.5;margin-bottom:16px}
.h-legal-original .h-legal-supplement{padding-top:50px;margin-top:10px}
.h-legal-original .h-legal-supplement>p{margin-bottom:32px}
.h-legal-original .h-legal-contact{padding:50px 0;border-top:1px solid var(--h-line)}
.h-legal-contact p{margin-bottom:24px}
@media(max-width:1000px){.h-case-composition{gap:28px}.h-case-composition.posters .h-case-figure{grid-column:span 6}}
@media(max-width:700px){
 .h-case .h-case-hero{padding:0}.h-case-hero .h-project-heading{padding:120px 20px 28svh}.h-case-hero .h-project-heading h1{font-size:clamp(38px,11vw,65px);overflow-wrap:normal}
 .h-case .h-project-overview{padding:48px 20px 65px;gap:25px}.h-case .h-project-overview>p{font-size:24px;max-width:none}
 .h-case-sections{padding:0 20px 20px}.h-case-section{margin-bottom:65px}.h-case-section-copy{margin-bottom:28px}.h-case-section-copy h2{font-size:27px;margin-bottom:16px}.h-case-section-copy p{font-size:14px;line-height:1.85}
 .h-case-composition{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}
 .h-case-composition .h-case-figure,.h-case-composition.identity .h-case-figure,.h-case-composition.mixed .h-case-figure,.h-case-composition.single .h-case-figure{grid-column:1/-1;padding-top:0;width:100%}
 
 .h-case-composition.mixed .h-case-figure.is-portrait,.h-case-composition.mixed .h-case-figure.is-banner,.h-case-composition.mixed .h-case-figure:not(.is-portrait):first-child{grid-column:1/-1;padding-top:0;width:100%;justify-self:center}
 .h-case-composition.identity .h-case-figure:first-child{max-width:260px;justify-self:center}
 .h-case-composition.posters .h-case-figure,.h-case-composition.trio .h-case-figure{grid-column:span 1;padding-top:0}
 .h-case-composition.posters .h-case-figure:nth-child(even),.h-case-composition.trio .h-case-figure:nth-child(2){padding-top:26px}
 .h-case-composition.single.mark .h-case-figure{max-width:280px}
 .h-case .h-deliverable img{max-height:500px}.h-case-composition.mixed .h-case-figure.is-portrait{max-width:300px}.h-case-figure figcaption{font-size:11px;margin-top:10px}
 .h-case .h-case-back{padding:0 20px 60px}
 .h-case .h-case-next{grid-template-columns:1fr;width:calc(100% - 40px);gap:30px;margin-bottom:65px;padding:30px 0}.h-case-next .h-next-copy{gap:16px}.h-case-next .h-next-copy h2{font-size:33px}.h-case .h-case-next>.h-media{height:210px}
 .h-legal-original{padding-bottom:65px}.h-legal-original p{font-size:14px}.h-legal-original article{padding:28px 0}.h-legal-original h3{font-size:21px}.h-legal-original .h-legal-contact{padding:40px 0}
}

.h-responsive-cover{display:block;width:100%;height:100%}

@media(min-width:701px){
 .h-case-hero>.h-media img,.h-case-hero>.h-media video,.h-case-hero>.h-media .h-hero-video{width:100%;height:auto;max-height:none;object-position:center top;object-fit:contain}
 .h-case-hero>.h-media .h-hero-video{inset:0 0 auto}
}


.h-case .h-case-hero,.h-case .h-case-hero>.h-media{background:var(--h-bg)}
@media(min-width:701px){
 .h-case-hero:before,.h-case-hero:after{inset:0 0 auto;height:var(--hero-visible-height,min(100%,calc(100vw * var(--hero-ratio,.5625))))}
}

.h-case-composition.single.wide .h-case-figure{grid-column:1/-1;width:100%;max-width:none}
.h-case-composition.single.wide .h-deliverable img{max-height:none}

.h-case-composition.process .h-case-figure{padding-top:0}
.h-case-composition.process .h-case-figure:first-child{grid-column:1/-1;width:min(100%,960px);justify-self:center}


.h-client-avatar{display:block;width:48px;height:48px;border-radius:50%;object-fit:cover;margin-bottom:14px}
.gufeng-posters .h-case-figure{padding-top:0}
.gufeng-valorant .h-case-figure{padding-top:0}
.gufeng-valorant .h-case-figure:last-child{grid-column:2/12;justify-self:center;width:min(100%,960px);margin-top:20px}
.gufeng-twins{align-items:center}
.gufeng-twins .h-case-figure{padding-top:0}
.h-case .gufeng-comedy img{max-height:760px}
@media(max-width:700px){.gufeng-valorant .h-case-figure:last-child{grid-column:1/-1;margin-top:0}.gufeng-posters .h-case-figure,.gufeng-twins .h-case-figure{padding-top:0}}


.h-slide[data-transition-id="wxm-v3"] .h-media img,.h-case-next[data-transition-id="wxm-v3"] .h-media img{transform:scale(.8)!important}
.na-identity .h-case-figure{padding-top:0!important}
.na-identity .h-media{aspect-ratio:1/1}
.na-identity .h-media picture{width:100%}
.na-community .h-case-figure,.na-menus .h-case-figure{padding-top:0}
.h-case .na-menus .h-deliverable img{max-height:none;width:100%;height:auto}
.h-slide[data-transition-id="na-logo"] .h-media img{object-fit:contain;padding:12%;box-sizing:border-box}


.h-case .xxg-long .h-deliverable img{max-height:none;width:100%;height:auto}
.xxg-long .h-case-figure{padding-top:0}
.xxg-identity .h-case-figure:first-child img{max-width:148px;width:100%;height:auto}
.xxg-identity .h-media picture{width:100%}
.h-slide[data-transition-id="xxg-logo"] .h-media img,.h-case-next[data-transition-id="xxg-logo"] .h-media img{object-fit:contain;width:100%;height:100%;padding:25%;box-sizing:border-box}

.flex-carousel {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  cursor: default;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  
  overscroll-behavior: auto;
  outline: none;
}

.flex-carousel[data-hover='open'] {
  cursor: zoom-in;
}

.flex-carousel[data-hover='close'] {
  cursor: zoom-out;
}

.flex-carousel[data-dragging] {
  cursor: grabbing;
}

.flex-carousel:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(128, 128, 140, 0.55);
}

.flex-carousel__caption {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(50% + var(--flex-carousel-half) * var(--flex-carousel-lift, 1) + 22px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
  pointer-events: none;
  text-align: center;
  animation: flex-carousel-reveal 900ms ease both;
}

.flex-carousel__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 100%;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
  animation: flex-carousel-title 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.flex-carousel__subtitle {
  font-weight: 400;
  opacity: 0.6;
}

.flex-carousel__count {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 12px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  opacity: 0.5;
  transition: opacity 400ms ease;
}

.flex-carousel__count[data-hidden] {
  opacity: 0;
}

.flex-carousel__digits {
  display: inline-flex;
}

.flex-carousel__digit {
  display: inline-block;
  height: 1em;
  overflow: hidden;
}

.flex-carousel__reel {
  display: flex;
  flex-direction: column;
  transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

.flex-carousel__reel span {
  height: 1em;
}

.flex-carousel__slash {
  opacity: 0.6;
}

.flex-carousel__live {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@keyframes flex-carousel-title {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes flex-carousel-reveal {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flex-carousel__caption,
  .flex-carousel__title {
    animation: none;
  }

  .flex-carousel__reel {
    transition: none;
  }
}

.h-dasheng-flex{--flex-height:clamp(680px,78svh,1080px);position:relative;width:var(--flex-viewport-width,100vw);max-width:none;margin-left:calc(50% - var(--flex-viewport-width,100vw)/2);height:var(--flex-height);background:var(--h-bg);color:var(--h-ink)}
.h-dasheng-flex-stage{position:absolute;inset:0;visibility:hidden}
.h-dasheng-flex.is-flex-ready .h-dasheng-flex-stage{visibility:visible}
.h-dasheng-flex.is-flex-ready .h-flex-fallback{display:none}
.h-flex-fallback{position:absolute;inset:0;display:flex;align-items:center;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;touch-action:pan-x pan-y}
.h-flex-fallback .h-case-figure{flex:0 0 auto;padding:0;width:auto;scroll-snap-align:center}
.h-flex-fallback .h-case-figure .h-deliverable{height:calc(var(--flex-height)*.48);width:auto}
.h-flex-fallback .h-media,.h-flex-fallback .h-deliverable img{height:calc(var(--flex-height)*.48);width:auto;max-width:none;max-height:none;object-fit:contain}
.h-flex-fallback figcaption{max-width:240px}
.h-dasheng-flex .flex-carousel__caption{color:var(--h-ink)}
.h-dasheng-flex .flex-carousel[data-focus="true"] .flex-carousel__caption{visibility:hidden}
.h-dasheng-flex .flex-carousel:focus-visible{box-shadow:inset 0 0 0 1px var(--h-line)}
@media(max-width:700px){.h-dasheng-flex{--flex-height:clamp(480px,72svh,720px)}}


.artwork-reels{position:relative;width:100%;height:674px;margin:20px 0 0;isolation:isolate}
.studio-reel{height:100%;width:100%}
.studio-reel.relative,.studio-reel .relative{position:relative}
.studio-reel .absolute{position:absolute}
.studio-reel .inset-0{inset:0}
.studio-reel.overflow-hidden{overflow:hidden}
.studio-reel.outline-none{outline:none}
.studio-reel:focus-visible{outline:1px solid var(--h-muted);outline-offset:4px}
.studio-reel.select-none{user-select:none}
.studio-reel.touch-none{touch-action:pan-y}
.studio-reel.cursor-grab{cursor:grab}
.studio-reel.cursor-grab:active{cursor:grabbing}
.studio-reel .pointer-events-none{pointer-events:none}
.studio-reel .z-10{z-index:10}
.studio-reel .h-full{height:100%}
.studio-reel .w-full{width:100%}
.reel-pause{position:absolute;bottom:14px;right:14px;z-index:2;width:38px;height:38px;border:1px solid var(--h-line);border-radius:50%;background:var(--h-bg);color:var(--h-ink);font-size:14px;cursor:pointer}
.reel-pause:focus-visible{outline:2px solid var(--h-ink);outline-offset:4px}
@media(max-width:700px){.artwork-reels{margin-top:0}}
.mobile-reels{height:100%;display:flex;flex-direction:column;justify-content:center;gap:17px;overflow:hidden;touch-action:pan-y;user-select:none;background:var(--h-bg)}
.m-reel-row{height:180px;flex:none;overflow:hidden}
.m-reel-track{display:flex;width:max-content;will-change:transform}
.m-reel-group{display:flex;flex:none;gap:16px;padding-right:16px}
.m-reel-image{height:180px;flex:none;border-radius:10px;overflow:hidden}
.m-reel-image img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(.2);pointer-events:none;-webkit-user-drag:none}
@media(max-width:699px){.artwork-reels{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}}

.tech-text {
  position: relative;
  width: 100%;
  height: 100%;
  touch-action: pan-y;
  user-select: none;
}

.tech-text-canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.dark-veil-container{position:relative;width:100%;height:100%;overflow:hidden}
.dark-veil-canvas{position:absolute;inset:0;display:block;width:100%;height:100%}

.logoloop {
  position: relative;

  --logoloop-gap: 32px;
  --logoloop-logoHeight: 28px;
  --logoloop-fadeColorAuto: #ffffff;
}

.logoloop--vertical {
  height: 100%;
  display: inline-block;
}

.logoloop--scale-hover {
  padding-top: calc(var(--logoloop-logoHeight) * 0.1);
  padding-bottom: calc(var(--logoloop-logoHeight) * 0.1);
}

@media (prefers-color-scheme: dark) {
  .logoloop {
    --logoloop-fadeColorAuto: #0b0b0b;
  }
}

.logoloop__track {
  display: flex;
  width: max-content;
  will-change: transform;
  user-select: none;
  position: relative;
  z-index: 0;
}

.logoloop--vertical .logoloop__track {
  flex-direction: column;
  height: max-content;
  width: 100%;
}

.logoloop__list {
  display: flex;
  align-items: center;
}

.logoloop--vertical .logoloop__list {
  flex-direction: column;
}

.logoloop__item {
  flex: 0 0 auto;
  margin-right: var(--logoloop-gap);
  font-size: var(--logoloop-logoHeight);
  line-height: 1;
}

.logoloop--vertical .logoloop__item {
  margin-right: 0;
  margin-bottom: var(--logoloop-gap);
}

.logoloop__item:last-child {
  margin-right: var(--logoloop-gap);
}

.logoloop--vertical .logoloop__item:last-child {
  margin-right: 0;
  margin-bottom: var(--logoloop-gap);
}

.logoloop__node {
  display: inline-flex;
  align-items: center;
}

.logoloop__item img {
  height: var(--logoloop-logoHeight);
  width: auto;
  display: block;
  object-fit: contain;
  image-rendering: -webkit-optimize-contrast;
  -webkit-user-drag: none;
  pointer-events: none;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.logoloop--scale-hover .logoloop__item {
  overflow: visible;
}

.logoloop--scale-hover .logoloop__item:hover img,
.logoloop--scale-hover .logoloop__item:hover .logoloop__node {
  transform: scale(1.2);
  transform-origin: center center;
}

.logoloop--scale-hover .logoloop__node {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.logoloop__link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  border-radius: 4px;
  transition: opacity 0.2s ease;
}

.logoloop__link:hover {
  opacity: 0.8;
}

.logoloop__link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.logoloop--fade::before,
.logoloop--fade::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: clamp(24px, 8%, 120px);
  pointer-events: none;
  z-index: 10;
}

.logoloop--fade::before {
  left: 0;
  background: linear-gradient(
    to right,
    var(--logoloop-fadeColor, var(--logoloop-fadeColorAuto)) 0%,
    rgba(0, 0, 0, 0) 100%
  );
}

.logoloop--fade::after {
  right: 0;
  background: linear-gradient(
    to left,
    var(--logoloop-fadeColor, var(--logoloop-fadeColorAuto)) 0%,
    rgba(0, 0, 0, 0) 100%
  );
}

.logoloop--vertical.logoloop--fade::before,
.logoloop--vertical.logoloop--fade::after {
  left: 0;
  right: 0;
  width: 100%;
  height: clamp(24px, 8%, 120px);
}

.logoloop--vertical.logoloop--fade::before {
  top: 0;
  bottom: auto;
  background: linear-gradient(
    to bottom,
    var(--logoloop-fadeColor, var(--logoloop-fadeColorAuto)) 0%,
    rgba(0, 0, 0, 0) 100%
  );
}

.logoloop--vertical.logoloop--fade::after {
  bottom: 0;
  top: auto;
  background: linear-gradient(
    to top,
    var(--logoloop-fadeColor, var(--logoloop-fadeColorAuto)) 0%,
    rgba(0, 0, 0, 0) 100%
  );
}

@media (prefers-reduced-motion: reduce) {
  .logoloop__track {
    transform: translate3d(0, 0, 0) !important;
  }

  .logoloop__item img,
  .logoloop__node {
    transition: none !important;
  }
}


.footer.studio-footer{--f-bg:#fff;--f-ink:#171717;--f-line:#dedede;background:var(--f-bg);color:var(--f-ink);font-family:var(--site-font);min-height:100svh;padding:clamp(100px,23svh,250px) 2vw 26px;display:flex;flex-direction:column;overflow:hidden}
html[data-theme=dark] .footer.studio-footer{--f-bg:#000;--f-ink:#f5f5f5;--f-line:#252525}
.f-head{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-bottom:70px;border-bottom:1px solid var(--f-line)}
.f-brand{font-size:clamp(90px,9.8vw,220px);font-weight:600;letter-spacing:-.065em;line-height:1;white-space:nowrap}
.studio-footer .f-brand.footer-logo{width:min(32vw,520px);margin:0;padding:0;flex-shrink:0}
.studio-footer .footer-logo img{filter:invert(1)}
html[data-theme=dark] .studio-footer .footer-logo img{filter:none}
.f-clock{display:flex;flex-direction:column;gap:8px;text-align:right;flex-shrink:0;padding-top:15px;font-size:12px;font-weight:500}
.f-clock time{font-size:20px;line-height:1.3;letter-spacing:-.02em;font-weight:600;font-variant-numeric:tabular-nums}
.f-body{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:55px;font-size:13px;line-height:1.5}
.studio-footer h2{font-size:14px;font-weight:500;letter-spacing:-.02em;line-height:1.4;margin:0 0 24px}
.f-contact{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.f-contact a,.f-contact button{display:block;font-size:13px;line-height:1.6;padding:0;text-align:left}
.f-contact p{font-size:13px;line-height:1.6;margin:0}
.f-contact .f-description{margin-top:32px}
.f-socials{position:relative;display:flex;align-items:center;gap:24px;margin-top:9px;z-index:2}
.f-contact .f-social-trigger{display:inline-flex;align-items:center;gap:7px;min-height:30px}
.f-social-icon{display:block;width:18px;height:18px;background:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain}
.f-icon-wechat{mask-image:url('/contact/wechat.svg')}.f-icon-wecom{mask-image:url('/contact/wecom.svg')}
.f-qr-panel{position:absolute;top:calc(100% + 10px);left:0;width:270px;max-width:calc(100vw - 48px);padding:16px;background:#fff;color:#171717;border:1px solid #dedede;box-shadow:0 8px 40px #0002;text-align:left;border-radius:8px}
.f-qr-panel:before{content:'';position:absolute;left:0;right:0;top:-12px;height:12px}
.f-socials[data-qr-placement=above] .f-qr-panel{top:auto;bottom:calc(100% + 10px)}
.f-socials[data-qr-placement=above] .f-qr-panel:before{top:auto;bottom:-12px}
.f-qr-heading{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:500}
.f-contact .f-qr-close{width:32px;height:32px;display:grid;place-items:center;font-size:22px;line-height:1;min-height:0}
.f-qr-image{width:100%;height:auto;object-fit:contain;filter:invert(1);margin:8px 0;image-rendering:crisp-edges}
.f-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.f-columns ul{list-style:none;margin:0;padding:0;min-width:0}
.f-columns a{display:inline-block;line-height:1.6}
.f-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:30px;margin-top:auto;padding-top:110px;font-size:12px;line-height:1.5}
.f-bottom-left{display:flex;flex-direction:column;align-items:flex-start;gap:22px;min-width:0}
.f-platforms{display:flex;align-items:center;gap:12px}
.studio-footer .f-platform-link{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:inherit;text-decoration:none;transition:background-color .2s}
.f-platform-link svg,.f-platform-icon{width:22px;height:22px;display:block}
.f-platform-icon{background:currentColor;mask-position:center;mask-repeat:no-repeat;mask-size:contain}
.f-platform-steam{mask-image:url('/contact/steam.svg')}
.f-platform-wallpaper_engine{mask-image:url('/contact/wallpaper_engine.svg')}
.f-platform-5eplay{mask-image:url('/contact/5eplay.svg')}
.studio-footer .f-platform-link:hover{background:color-mix(in srgb,var(--f-ink) 9%,transparent)}
.f-platform-link:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.f-bottom p{font-size:12px;line-height:1.5;margin:0;text-align:center}
.f-back,.f-connect{display:inline-flex;align-items:center;gap:22px;width:max-content;max-width:100%}
.f-connect{justify-self:end}
.f-back span{font-size:17px}.f-connect span{font-size:20px;line-height:1}
.studio-footer a:not(.f-brand),.studio-footer button{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .25s}
.studio-footer a:not(.f-brand):hover,.studio-footer button:hover{text-decoration-color:currentColor}
@media(max-width:1023px){.footer.studio-footer{padding-left:24px;padding-right:24px}.f-brand{font-size:11vw}.f-body{gap:30px}.f-columns{gap:18px}.f-clock{font-size:11px}.f-clock time{font-size:18px}}
@media(max-width:700px){
 .footer.studio-footer{min-height:100svh;padding:90px 24px 24px}
 .f-head{display:grid;grid-template-columns:1fr;gap:24px;padding-bottom:38px}
 .f-brand{font-size:clamp(52px,15vw,105px);letter-spacing:-.065em}
 .studio-footer .f-brand.footer-logo{width:min(100%,280px)}
 .f-clock{justify-self:end;padding:0;gap:5px}
 .f-body{grid-template-columns:1fr;gap:48px;padding-top:38px;font-size:12px}
 .studio-footer h2{font-size:13px;margin-bottom:18px}
 .f-contact a,.f-contact button,.f-contact p{font-size:12px}
 .f-contact a,.f-contact button{min-height:30px;display:flex;align-items:center}
 .f-contact .f-description{margin-top:28px}
 .f-socials{gap:22px;margin-top:4px}
 .f-social-trigger{min-height:36px!important}
 .f-qr-panel{top:auto;bottom:calc(100% + 10px);width:260px}
 .f-qr-panel:before{top:auto;bottom:-12px}
 .f-columns{gap:16px}.f-columns a{line-height:2.1}
 .f-bottom{grid-template-columns:1fr 1fr;gap:26px 20px;font-size:11px;padding-top:75px}
 .f-bottom p{grid-column:1/-1;grid-row:2;font-size:10px}
 .f-bottom-left{grid-column:1/-1;grid-row:1}
 .f-platforms{gap:14px}
 .f-connect{grid-column:2;grid-row:1;align-self:end}
 .f-back,.f-connect{gap:12px}
}
@media(prefers-reduced-motion:reduce){.studio-footer a,.studio-footer button{transition:none}}

.f-copyright{display:flex;flex-direction:column;align-items:center;gap:7px}.f-copyright p{margin:0}.f-copyright .f-icp{font-size:11px;color:inherit;opacity:.65;text-decoration:none;white-space:nowrap}
@media(max-width:700px){.f-copyright{grid-column:1/-1;grid-row:2}.f-copyright p{grid-column:auto;grid-row:auto}}

.f-bottom>.f-icp{grid-column:3;grid-row:2;justify-self:end;color:var(--f-ink);opacity:.88;font-size:11px;white-space:nowrap}
@media(max-width:700px){.f-bottom>.f-icp{grid-column:2;grid-row:3;justify-self:end}}

.f-bottom{align-items:end}.f-bottom-right{display:flex;flex-direction:column;align-items:flex-end;gap:22px;justify-self:end;align-self:end}.f-bottom-right .f-icp{font-size:11px;line-height:1.5;color:var(--f-ink);opacity:.88;white-space:nowrap}.f-copyright{align-self:end}.f-bottom .f-connect{line-height:1.5}
@media(max-width:700px){.f-bottom-right{grid-column:2;grid-row:2;gap:18px}.f-copyright{grid-column:1;grid-row:2;align-items:flex-start}.f-copyright p{text-align:left}}

.glide-select {
  --gs-accent: #f5f5f5;
  --gs-surface: #27272a;
  --gs-highlight: #3f3f46;
  --gs-text: #f5f5f5;
  --gs-radius: 10px;
  --gs-inner-radius: 6px;
  --gs-chip: 32px;
  --gs-row: 30px;
  --gs-font: 13px;
  --gs-menu-w: 176px;
  --gs-pop: 180ms;
  --gs-pop-out: 120ms;
  --gs-glide: 220ms;
  --gs-origin: top left;
  --gs-ease-out: cubic-bezier(0.23, 1, 0.32, 1);

  position: relative;
  display: inline-block;
}

.glide-select[data-disabled] {
  opacity: 0.5;
}

.glide-select__trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: var(--gs-chip);
  margin: 0;
  padding: 0 8px 0 10px;
  border: 0;
  border-radius: var(--gs-inner-radius);
  background: var(--gs-surface);
  color: var(--gs-text);
  font-family: inherit;
  font-size: var(--gs-font);
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  outline: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition:
    background-color 100ms ease,
    transform 160ms var(--gs-ease-out);
}

.glide-select__trigger:disabled {
  cursor: default;
}

@media (hover: hover) and (pointer: fine) {
  .glide-select__trigger:not(:disabled):hover {
    background: color-mix(in srgb, var(--gs-highlight) 60%, var(--gs-surface));
  }
}

.glide-select__trigger[aria-expanded='true'] {
  background: color-mix(in srgb, var(--gs-highlight) 60%, var(--gs-surface));
}

.glide-select__trigger:not(:disabled):active {
  transform: scale(0.97);
}

.glide-select__label[data-empty] {
  opacity: 0.6;
}

.glide-select[data-swap] .glide-select__label {
  animation: gs-swap 160ms ease;
}

@keyframes gs-swap {
  from {
    opacity: 0.6;
    filter: blur(2px);
  }
}

.glide-select__chevron {
  display: inline-flex;
  color: color-mix(in srgb, var(--gs-text) 55%, transparent);
  transition: transform 200ms var(--gs-ease-out);
}

.glide-select__trigger[aria-expanded='true'] .glide-select__chevron {
  transform: rotate(180deg);
}

.glide-select__menu {
  position: absolute;
  z-index: 20;
  width: var(--gs-menu-w);
  min-width: 100%;
  padding: 4px;
  border-radius: var(--gs-radius);
  background: var(--gs-surface);
  box-shadow: 0 4px 16px color-mix(in srgb, #000 22%, transparent);
  transform-origin: var(--gs-origin);
  opacity: 0;
  transform: scale(0.95);
  transition:
    opacity var(--gs-pop) var(--gs-ease-out),
    transform var(--gs-pop) var(--gs-ease-out);
}

.glide-select__menu[data-state='open'] {
  opacity: 1;
  transform: none;
}

.glide-select__menu[data-state='closed'] {
  transition-duration: var(--gs-pop-out);
  pointer-events: none;
}

.glide-select__menu[data-side='bottom'] {
  top: calc(100% + 6px);
}

.glide-select__menu[data-side='top'] {
  bottom: calc(100% + 6px);
}

.glide-select__menu[data-align='left'] {
  left: 0;
}

.glide-select__menu[data-align='right'] {
  right: 0;
}

.glide-select__list {
  position: relative;
  display: grid;
  gap: 1px;
  touch-action: none;
}

.glide-select__pill {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: var(--gs-row);
  border-radius: var(--gs-inner-radius);
  background: var(--gs-highlight);
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--gs-glide) var(--gs-ease-out),
    opacity 150ms ease;
}

.glide-select__option {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  height: var(--gs-row);
  padding: 0 8px 0 10px;
  border-radius: var(--gs-inner-radius);
  color: var(--gs-text);
  font-size: var(--gs-font);
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 150ms ease;
}

.glide-select__option[aria-selected='true'] {
  background: color-mix(in srgb, var(--gs-highlight) 60%, transparent);
}

.glide-select__list[data-live] .glide-select__option[aria-selected='true'] {
  background: transparent;
}

.glide-select__name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.glide-select__tag {
  flex-shrink: 0;
  color: color-mix(in srgb, var(--gs-text) 55%, transparent);
  font-size: calc(var(--gs-font) - 2px);
}

.glide-select__check {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--gs-accent);
  visibility: hidden;
}

.glide-select__check[data-on] {
  visibility: visible;
}

@media (prefers-reduced-motion: reduce) {
  .glide-select__menu {
    transform: none !important;
    transition: opacity var(--gs-pop) ease;
  }

  .glide-select__menu[data-state='closed'] {
    transition-duration: var(--gs-pop-out);
  }

  .glide-select__pill {
    transition: opacity 150ms ease;
  }

  .glide-select__chevron {
    transition: none;
  }

  .glide-select__trigger {
    transition: background-color 100ms ease;
  }

  .glide-select__trigger:not(:disabled):active {
    transform: none;
  }

  .glide-select[data-swap] .glide-select__label {
    animation: none;
  }
}

.startup{background:#141414}
.pointer-dot{background:var(--asw-type);border-color:color-mix(in srgb,var(--asw-surface) 48%,transparent);box-shadow:0 0 8px color-mix(in srgb,var(--asw-type) 18%,transparent)}
.h-direction-select{--direction-highlight:#eeeeee;width:100%;max-width:520px;margin-bottom:22px}
html[data-theme=dark] .h-direction-select{--direction-highlight:#292929}
.h-direction-select .glide-select{display:block;width:100%}
.h-direction-select .glide-select__trigger{width:100%;height:54px;justify-content:space-between;padding:0 18px;border:1px solid var(--h-line);font-size:14px;font-weight:400;line-height:1.4}
.h-direction-select .glide-select__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.h-direction-select .glide-select__menu{width:100%;border:1px solid var(--h-line);box-shadow:0 12px 36px #00000014}
.h-direction-select .glide-select__option{padding:0 14px;font-size:14px}
.h-direction-select .glide-select__name{font-weight:400}
.h-direction-select .glide-select__trigger:focus-visible{outline:2px solid var(--h-ink);outline-offset:4px}
.h-brief select[hidden]{display:none}
.asw-tech-canvas:not(.tech-mounted){visibility:hidden}
.h-brief #brief-link{display:inline-flex;justify-content:space-between;align-items:center;gap:36px;min-height:50px;min-width:180px;padding:12px 20px;border:1px solid var(--h-ink);border-radius:6px;background:transparent;color:var(--h-ink);font-size:14px;line-height:1.4;transition:background-color .2s,color .2s}
.h-brief #brief-link>span:first-child:after{display:none}
.h-brief #brief-link>span:last-child{font-size:20px}
.h-brief #brief-link:hover{background:var(--h-ink);color:var(--h-bg)}
.h-brief #brief-link:focus-visible{outline:2px solid var(--h-ink);outline-offset:4px}
@media(max-width:700px){.h-direction-select{max-width:none}.h-direction-select .glide-select__trigger{height:52px}}

.drift-wall {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  perspective: var(--dw-perspective, 1200px);
  perspective-origin: 50% 50%;
  --dw-tile-w: 200px;
  --dw-tile-h: 132px;
  --dw-gap: 18px;
  --dw-radius: 14px;
  --dw-lift: 64px;
  --dw-dim: 0.55;
  --dw-gray: 0;
  --dw-overlay: #060010;
  --dw-edge: 40%;
  -webkit-mask-image:
    radial-gradient(ellipse 78% 82% at 50% 46%, #000 var(--dw-edge), transparent 100%),
    linear-gradient(to top, #000 var(--dw-edge), transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    radial-gradient(ellipse 78% 82% at 50% 46%, #000 var(--dw-edge), transparent 100%),
    linear-gradient(to top, #000 var(--dw-edge), transparent 100%);
  mask-composite: intersect;
}

.drift-wall__plane {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  flex-direction: row;
  transform-style: preserve-3d;
  cursor: pointer;
  transform-origin: 50% 50%;
  will-change: transform;
}

.drift-wall__col {
  position: relative;
  width: calc(var(--dw-tile-w) + var(--dw-gap));
  transform-style: preserve-3d;
}

.drift-wall__track {
  display: flex;
  flex-direction: column;
  will-change: transform;
  transform-style: preserve-3d;
}

.drift-wall__tile {
  position: relative;
  display: block;
  width: 100%;
  height: calc(var(--dw-tile-h) + var(--dw-gap));
  flex: 0 0 auto;
  outline: none;
  transform-style: preserve-3d;
}

.drift-wall__inner {
  position: absolute;
  inset: calc(var(--dw-gap) / 2);
  display: block;
  border-radius: var(--dw-radius);
  overflow: hidden;
  background: #0b0b12;
  opacity: var(--dw-dim);
  transform: translateZ(0);
  pointer-events: none;
  transition:
    transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.drift-wall__tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(var(--dw-gray)) saturate(0.92);
  transition: filter 0.42s cubic-bezier(0.22, 1, 0.36, 1);
  user-select: none;
  -webkit-user-drag: none;
}

.drift-wall__overlay {
  position: absolute;
  inset: 0;
  background: var(--dw-overlay);
  opacity: 0.42;
  pointer-events: none;
  transition: opacity 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.drift-wall__tile.is-active .drift-wall__inner,
.drift-wall__tile:focus-visible .drift-wall__inner {
  opacity: 1;
  transform: translateZ(var(--dw-lift));
  box-shadow: 0 24px 60px -18px rgba(0, 0, 0, 0.7);
}

.drift-wall__tile.is-active img,
.drift-wall__tile:focus-visible img {
  filter: grayscale(0) saturate(1.05);
}

.drift-wall__tile.is-active .drift-wall__overlay,
.drift-wall__tile:focus-visible .drift-wall__overlay {
  opacity: 0;
}

.drift-wall__tile:focus-visible .drift-wall__inner {
  box-shadow:
    0 24px 60px -18px rgba(0, 0, 0, 0.7),
    0 0 0 2px rgba(255, 255, 255, 0.9);
}

@media (prefers-reduced-motion: reduce) {
  .drift-wall__plane,
  .drift-wall__track {
    will-change: auto;
  }
}


.drift-wall--stable .drift-wall__plane{height:var(--dw-plane-h)}
.drift-wall--stable .drift-wall__col{height:100%}
.drift-wall--stable .drift-wall__track,.drift-wall--stable .drift-wall__tile{transform-style:flat}
.drift-wall--stable .drift-wall__inner{backface-visibility:hidden}
.drift-wall--stable{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent)}

.h-contact-intro{display:grid;grid-template-columns:44% 56%;align-items:center;position:relative;padding-top:85px}
.h-contact-intro .h-page-title{position:relative;z-index:1;padding:90px 0 70px}
.h-contact-intro .h-page-title h1{font-size:clamp(48px,5.5vw,104px);line-height:1.16;letter-spacing:-.055em}
.h-contact-intro .h-page-title p{max-width:35ch;font-size:16px;margin-top:34px}
.contact-drift{height:600px;min-width:0;margin-right:-5vw;isolation:isolate}
.contact-drift .drift-wall__inner{background:var(--h-bg)}
.contact-drift .drift-wall__tile img{filter:grayscale(0) saturate(1)}
.contact-drift .drift-wall__tile.is-active img{filter:none}
.contact-drift .drift-wall__tile:focus-visible .drift-wall__inner{box-shadow:0 18px 40px -18px #0006,0 0 0 2px var(--h-ink)}
.h-contact-page .h-contact{padding-top:30px}
@media(max-width:1023px){.h-contact-intro{grid-template-columns:1fr;padding-top:110px}.h-contact-intro .h-page-title{padding:40px 0 10px}.h-contact-intro .h-page-title h1{font-size:clamp(44px,8vw,80px)}.contact-drift{height:480px;margin:0 -5vw}.h-contact-page .h-contact{grid-template-columns:1fr 1fr;gap:8%;padding-top:20px}}
@media(max-width:700px){.h-contact-intro{padding-top:115px}.h-contact-intro .h-page-title h1{font-size:clamp(42px,10vw,65px)}.h-contact-intro .h-page-title p{font-size:15px;margin-top:24px}.contact-drift{height:360px;margin:0 -20px}.h-contact-page .h-contact{grid-template-columns:1fr;gap:45px}}

.h-services-page .h-page-title{padding:160px 0 100px;max-width:1000px}
.h-services-page .h-page-title h1{font-size:clamp(42px,5vw,82px);line-height:1.18;max-width:none;margin:22px 0 30px}
.h-services-page .h-page-title p{max-width:62ch;font-size:17px;margin:0}
.s-eyebrow,.s-index{font-size:12px;letter-spacing:.04em;color:var(--h-muted);font-weight:400}
.s-service{border-top:1px solid var(--h-line);padding:50px 0 85px}
.s-heading{display:grid;grid-template-columns:65px 1fr;align-items:baseline;gap:12px;margin-bottom:40px}
.s-heading h2{font-size:clamp(28px,3vw,46px);margin:0}
.s-service-content{display:grid;grid-template-columns:1fr 1fr;gap:35px 6%;padding-left:77px}
.s-copy p,.s-case p{font-size:16px;line-height:1.8;color:var(--h-muted);margin:0 0 18px;max-width:52ch}
.s-copy h3{font-size:12px;letter-spacing:.02em;margin:32px 0 15px;font-weight:400!important}
.s-scope{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;font-size:14px;line-height:1.6}
.s-scope li{border-top:1px solid var(--h-line);padding-top:10px}
.s-image{margin:0;align-self:start}.s-image .h-media{aspect-ratio:1.35}.s-image img{object-fit:contain}
.s-case{grid-column:1/-1;display:grid;grid-template-columns:1fr 35%;gap:8%;padding:30px 0 0;border-top:1px solid var(--h-line);align-items:center}
.s-case h3{font-size:26px;margin:16px 0 20px;line-height:1.2}.s-case .h-media{aspect-ratio:1.4}.s-case img{object-fit:contain}
.s-workflow{padding:65px 0 110px;border-top:1px solid var(--h-line)}
.s-workflow .s-heading{grid-template-columns:1fr 2fr;align-items:start;margin-bottom:55px}
.s-workflow ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:45px 5%}
.s-workflow li{border-top:1px solid var(--h-line);padding-top:20px}.s-workflow h3{font-size:22px;margin:20px 0 14px}.s-workflow p{font-size:15px;line-height:1.8;color:var(--h-muted);max-width:34ch}
.s-enquiry{padding:65px 0 100px;border-top:1px solid var(--h-line)}.s-enquiry h2{font-size:clamp(30px,4vw,58px);margin:20px 0}.s-enquiry>p:not(.s-eyebrow){font-size:16px;color:var(--h-muted)}
@media(max-width:700px){.h-services-page .h-page-title{padding:145px 0 60px}.h-services-page .h-page-title h1{font-size:clamp(25px,7.5vw,37px)}.h-services-page .h-page-title p{font-size:15px}.s-service{padding:30px 0 55px}.s-heading{grid-template-columns:30px 1fr;gap:10px;margin-bottom:28px}.s-heading h2{font-size:27px}.s-service-content{grid-template-columns:1fr;padding:0;gap:28px}.s-copy p{font-size:15px}.s-scope{font-size:13px}.s-case{grid-template-columns:1fr;gap:22px}.s-case .h-media{max-width:320px}.s-workflow{padding:35px 0 65px}.s-workflow .s-heading{grid-template-columns:1fr;gap:20px;margin-bottom:35px}.s-workflow ol{grid-template-columns:1fr 1fr;gap:30px 20px}.s-workflow h3{font-size:20px}.s-workflow p{font-size:14px}.s-enquiry{padding:40px 0 65px}}

.s-workflow .s-heading{display:block}.s-workflow .s-heading h2{margin-top:18px}
.s-workflow ol{display:flex;flex-direction:column;gap:0;max-width:850px}
.s-workflow li{display:grid;grid-template-columns:48px 1fr;column-gap:28px;position:relative;border:0;padding:0 0 36px}
.s-workflow li:not(:last-child):before{content:'';position:absolute;left:23px;top:48px;bottom:0;width:1px;background:var(--h-line)}
.s-workflow li>.s-index{grid-column:1;grid-row:1/3;width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--h-line);border-radius:50%;color:var(--h-ink)}
.s-workflow h3{grid-column:2;margin:10px 0 12px}.s-workflow p{grid-column:2;max-width:62ch;margin:0}
@media(max-width:700px){.s-workflow li{column-gap:18px;padding-bottom:30px}.s-workflow h3{font-size:20px}}
