/* Web 字体已自托管（fonts.css + fonts/ 目录），与站点同域，不依赖任何外部请求 */

:root{--ink:#12110f;--paper:#e9e5dc;--bone:#f4f0e8;--clay:#be3f2d;--silver:#b8b9b5;--line:rgba(18,17,15,.22);--pad:clamp(22px,4vw,68px);--header:86px;--ease:cubic-bezier(.2,.75,.2,1);--brand-size:clamp(77px,8vw,144px);--display:"Arial Narrow","Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;--body:"Noto Sans SC","PingFang SC","Microsoft YaHei",Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:400;overflow-x:hidden}
body.is-loading{height:100vh;overflow:hidden}
html.skip-entrance .loader{display:none!important}
html.skip-entrance body.is-loading{height:auto;overflow-x:hidden;overflow-y:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
::selection{background:var(--clay);color:var(--bone)}
.section-pad{padding-left:var(--pad);padding-right:var(--pad)}
.grain{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}

/* loader */
.loader{position:absolute;inset:0;height:100svh;z-index:10000;color:var(--ink);overflow:hidden;pointer-events:none}
.loader-backdrop{position:absolute;inset:0;background:var(--bone);opacity:1;transition:opacity 1.25s cubic-bezier(.4,0,.2,1);will-change:opacity}
.loader.is-fading .loader-backdrop{opacity:0}
.loader-grid{position:absolute;inset:0;background-image:linear-gradient(to right,transparent calc(25% - 1px),rgba(18,17,15,.18) 25%,transparent calc(25% + 1px)),linear-gradient(to right,transparent calc(50% - 1px),rgba(18,17,15,.18) 50%,transparent calc(50% + 1px)),linear-gradient(to right,transparent calc(75% - 1px),rgba(18,17,15,.18) 75%,transparent calc(75% + 1px)),linear-gradient(to bottom,transparent calc(50% - 1px),rgba(18,17,15,.18) 50%,transparent calc(50% + 1px));transition:opacity .3s ease}
.loader-label,.loader-status{position:absolute;left:var(--pad);right:var(--pad);display:flex;align-items:center;justify-content:space-between;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.loader-label{top:28px}.loader-label span:last-child{font-size:clamp(24px,3vw,52px)}
.loader-status{bottom:28px}.loader-status i{height:1px;background:currentColor;opacity:.35;flex:1;margin:0 24px;transform-origin:left;animation:loaderLine 1.2s ease-in-out infinite}
@keyframes loaderLine{0%,100%{transform:scaleX(.15)}50%{transform:scaleX(1)}}
.loader-mark{position:absolute;left:50%;top:50%;z-index:2;width:min(82vw,1040px);height:clamp(230px,34vh,360px);border:1px solid currentColor;transform:translate(-50%,-50%);transform-origin:center;will-change:transform;display:grid;place-items:center;background:var(--bone)}
.loader-mark:before,.hero-brand-target:before{content:"";position:absolute;inset:7px;border:1px solid currentColor;opacity:.3;pointer-events:none}
.loader-mark small,.hero-brand-target small{position:absolute;left:12px;bottom:9px;font:500 7px/1 var(--mono);letter-spacing:.1em}
.loader-symbols{position:absolute;inset:0;font:500 clamp(62px,7.2vw,118px)/1 var(--display)}
.loader-symbols span{position:absolute;left:50%;top:50%;display:block;will-change:transform,opacity;animation:symbolDrift 2.4s ease-in-out infinite alternate}
.loader-symbols span:nth-child(1){transform:translate(-215%,-138%) rotate(-8deg);animation-delay:-.4s}
.loader-symbols span:nth-child(2){transform:translate(92%,-155%) rotate(7deg);animation-delay:-1.1s}
.loader-symbols span:nth-child(3){transform:translate(-205%,48%) rotate(6deg);animation-delay:-1.7s}
.loader-symbols span:nth-child(4){transform:translate(105%,34%) rotate(-5deg);animation-delay:-.75s}
.loader-operator{position:absolute;left:50%;top:50%;font:700 var(--brand-size)/1 var(--display);transform:translate(-50%,-50%);will-change:transform,opacity}
.loader-glyph{position:absolute;z-index:3;left:50%;top:50%;font:900 var(--brand-size)/.82 var(--display);opacity:0;transform:translate(-50%,-50%) scale(.35);transform-origin:center;will-change:transform,opacity}
.loader-glyph.is-visible{opacity:1}.loader-mark.is-converging small{opacity:0;transition:opacity .3s}.loader-mark.is-flight .loader-symbols,.loader-mark.is-flight .loader-operator{display:none}
@keyframes symbolDrift{0%{margin:-8px 0 0 -6px}100%{margin:9px 0 0 8px}}
.loader-letters,.hero-brand-letters{display:flex;align-items:baseline;justify-content:flex-start;gap:.12em;width:max-content;font:900 var(--brand-size)/.82 var(--display);letter-spacing:0;white-space:nowrap;font-kerning:none}
.loader-letters span,.hero-brand-letters span{display:block;flex:none}
.loader-letters span{display:block;transition:transform .2s var(--ease),opacity .2s ease;will-change:transform}
.loader-letters.is-settled span{transform:none!important}
.loader-mark.is-priming .loader-letters{animation:loaderPrime .46s cubic-bezier(.32,0,.2,1) both;transform-origin:50% 82%}
.loader-mark.is-flight{color:var(--ink);background:transparent;border-color:transparent}
.loader-mark.is-flight:before,.loader-mark.is-flight small{opacity:0}
.loader-mark.is-flight .loader-letters{animation:none;transform:none}
.loader-mark.is-flight .loader-letters span{transform-origin:50% 82%;transition:none}
@keyframes loaderPrime{0%{transform:scaleY(1) translateY(0)}22%{transform:scaleY(.9) translateY(3px)}55%{transform:scaleY(.68) translateY(10px)}78%{transform:scaleY(.54) translateY(15px)}100%{transform:scaleY(.5) translateY(16px)}}
.loader.is-revealing .loader-grid,.loader.is-revealing .loader-label,.loader.is-revealing .loader-status{opacity:0;transition:opacity .28s ease}

/* header */
.site-header{position:fixed;z-index:200;top:0;left:0;width:100%;height:var(--header);padding:0 var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--ink);background:rgba(244,240,232,.16);border-bottom:1px solid rgba(255,255,255,.28);box-shadow:0 6px 24px rgba(18,17,15,.018);backdrop-filter:blur(9px) saturate(1.06);-webkit-backdrop-filter:blur(9px) saturate(1.06);transition:background .4s,color .4s,border .4s,backdrop-filter .4s}
body.has-scrolled .site-header{z-index:10020}
.site-header.is-solid{height:var(--header);background:rgba(244,240,232,.21);color:var(--ink);border-color:rgba(18,17,15,.08);backdrop-filter:blur(11px) saturate(1.08);-webkit-backdrop-filter:blur(11px) saturate(1.08)}
.site-header.is-hidden{transform:none}
.logo-slot{display:flex;align-items:center;width:max-content;height:58px;gap:11px;opacity:1}
.logo-slot img{display:block;width:55px;height:auto;object-fit:contain;filter:drop-shadow(0 1px 5px rgba(18,17,15,.18))}
.logo-slot span{font:800 23px/1 var(--display);letter-spacing:.08em;white-space:nowrap;opacity:0;transform:translateY(7px);will-change:opacity}
.main-nav{display:flex;gap:clamp(12px,1.35vw,24px);font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.01em}
.main-nav a{position:relative;padding:10px 0}
.main-nav a:after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.main-nav a:hover:after{transform:scaleX(1);transform-origin:left}
.header-actions{justify-self:end;display:flex;align-items:center;gap:9px}
.header-cta{font:500 12px var(--mono);display:flex;gap:34px;align-items:center;border:1px solid currentColor;padding:12px 14px;transition:background .3s,color .3s}
.header-cta:hover{background:var(--bone);color:var(--ink)}.is-solid .header-cta:hover{background:var(--ink);color:var(--bone)}
.header-login{font:500 12px var(--mono);display:flex;align-items:center;border:1px solid currentColor;opacity:.58;padding:12px 14px;transition:opacity .3s,background .3s,color .3s}
.header-login:hover{opacity:1;background:var(--bone);color:var(--ink)}.is-solid .header-login:hover{background:var(--ink);color:var(--bone)}
.menu-button{display:none;background:none;border:1px solid currentColor;padding:12px 15px;font:500 13px var(--body);letter-spacing:.05em;transition:background .3s,color .3s,border-color .3s}
body.is-menu-open .menu-button{background:var(--ink);color:var(--bone)}

/* hero */
.hero{position:relative;height:100svh;min-height:720px;background:var(--ink);color:var(--bone);overflow:hidden}
.hero-media{position:absolute;inset:0;clip-path:inset(50% 12% 50% 12%);transform:scale(1.16);transition:clip-path 1.25s var(--ease),transform 1.8s var(--ease);will-change:transform,clip-path}
body.is-ready .hero-media{clip-path:inset(0);transform:scale(1)}
.hero-motion{position:absolute;inset:0;transform:none}
.hero-breath{position:absolute;inset:0;overflow:hidden;transform:none}
.hero-media img{transform:none}
.hero-light{position:absolute;inset:-20%;pointer-events:none;background:radial-gradient(ellipse at 30% 28%,rgba(255,243,211,.3) 0%,rgba(255,243,211,.08) 27%,transparent 54%);mix-blend-mode:screen;animation:heroLight 13s ease-in-out infinite alternate}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,8,8,.12) 0%,transparent 58%,rgba(7,8,8,.04)),linear-gradient(0deg,rgba(7,8,8,.62) 0%,rgba(7,8,8,.25) 35%,transparent 70%)}
@keyframes heroLight{0%{transform:translate3d(-8%,-3%,0) scale(.92);opacity:.48}50%{opacity:.82}100%{transform:translate3d(10%,5%,0) scale(1.08);opacity:.58}}
.hero-brand-target{position:fixed;z-index:10030;left:var(--pad);top:clamp(135px,18vh,190px);width:max-content;color:var(--ink);opacity:0;transform:none;transform-origin:left top;will-change:transform,opacity;pointer-events:none}
.hero-brand-target:before{display:none}
.hero-brand-target.is-receiving,.hero-brand-target.is-landed{opacity:1;transform:none}
.hero-brand-letters span{opacity:0;transform-origin:50% 82%}
.hero-brand-letters span.is-landed{opacity:1;transform:none}
.hero-copy{position:absolute;z-index:2;left:calc(var(--pad) + clamp(5px,.5vw,10px));right:var(--pad);bottom:8vh}
.eyebrow{font:500 10px var(--mono);letter-spacing:.16em;margin:0 0 22px}
.hero-title{font:800 clamp(42px,4.7vw,88px)/1.04 var(--display);letter-spacing:-.06em;margin:0;text-transform:uppercase}
.hero-line:nth-child(2){font-size:1em;margin-top:12px}
.hero-line{display:block;overflow:hidden;padding:.08em .08em .1em 0}.hero-line i{display:block;font-style:normal;transform:translateY(110%) rotate(2deg);transition:transform 1.45s var(--ease)}
body.is-ready .hero-line i{transform:translateY(0) rotate(0)}body.is-ready .hero-line:nth-child(2) i{transition-delay:.18s}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:36px}.hero-foot>p{font-size:12px;line-height:1.7;margin:0;letter-spacing:.04em}
.circle-link{width:104px;height:104px;border:1px solid rgba(244,240,232,.7);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font:500 11px var(--mono);transition:background .35s,color .35s}.circle-link b{font-size:20px}.circle-link:hover{background:var(--bone);color:var(--ink)}
.hero-index{position:absolute;z-index:2;right:var(--pad);top:calc(var(--header) + 25px);color:var(--ink);font:500 9px var(--mono);display:flex;gap:28px;writing-mode:vertical-rl}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.is-in{opacity:1;transform:none}

/* shared */
.section-kicker{display:flex;justify-content:space-between;align-items:baseline;gap:24px;border-top:1px solid var(--line);padding-top:13px;font:500 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.section-kicker>span:first-child{font:700 20px/1 var(--display);letter-spacing:-.02em;text-transform:none}.section-kicker.light{border-color:rgba(244,240,232,.3)}
.display-title{font:800 clamp(52px,7.4vw,132px)/.88 var(--display);letter-spacing:-.07em;margin:0}
.reveal-image{overflow:hidden}.reveal-image img{transform:scale(1.15);clip-path:inset(100% 0 0);transition:transform 1.4s var(--ease),clip-path 1.2s var(--ease)}.reveal-image.is-in img{transform:scale(1);clip-path:inset(0)}

/* recent projects — slow editorial carousel */
.recent-projects{position:relative;padding:120px 0 132px;background:#eee0cb;color:var(--ink);overflow:hidden}
.recent-viewport{position:relative;margin-top:58px;overflow:hidden;padding:0 0 34px;touch-action:pan-y pinch-zoom;overscroll-behavior-x:contain;-webkit-user-select:none;user-select:none}
.recent-track{display:flex;width:max-content;gap:clamp(16px,1.55vw,28px);will-change:transform}
.recent-card{position:relative;width:clamp(280px,22vw,420px);margin:0;flex:none;color:inherit;text-decoration:none}
.recent-card:before{content:"CASE " attr(data-case);position:absolute;z-index:2;top:12px;left:12px;padding:7px 9px;background:rgba(18,17,15,.72);color:var(--bone);font:600 9px/1 var(--mono);letter-spacing:.08em;pointer-events:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.recent-card.is-real:before{display:none}
.recent-image{position:relative;aspect-ratio:.78;overflow:hidden;background:#d6c7b2}
.recent-card.is-real .recent-image{background:#e6ddd0}
.recent-card.is-real .recent-image img{object-fit:contain}
.recent-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 64%,rgba(18,17,15,.16));pointer-events:none}
.recent-image-focus-right img{object-position:72% center}.recent-image-focus-left img{object-position:28% center}
.recent-card img{transition:transform 1.05s var(--ease),filter .6s ease;pointer-events:none;user-select:none;-webkit-user-drag:none}
.recent-viewport{cursor:grab}.recent-viewport.is-dragging{cursor:grabbing}.recent-viewport.is-dragging .recent-card img{transition:none}
.recent-card:hover img{transform:scale(1.045);filter:saturate(.82)}
.recent-card[href]{cursor:pointer}.recent-card[href]:focus-visible{outline:2px solid var(--clay);outline-offset:5px}
.recent-more{padding:8px var(--pad) 0}
.recent-more-link{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:25px 0 4px;border-top:1px solid var(--line);font:600 9px/1 var(--mono);letter-spacing:.09em}
.recent-more-link strong{font:700 clamp(18px,1.7vw,27px)/1 var(--display);letter-spacing:-.04em}
.recent-more-link b{display:inline-block;margin-left:12px;font-weight:500;transition:transform .35s var(--ease)}
.recent-more-link:hover b,.recent-more-link:focus-visible b{transform:translateX(7px)}
.recent-more-link:focus-visible{outline:2px solid var(--clay);outline-offset:7px}
.recent-meta{display:grid;grid-template-columns:1fr auto;gap:18px;margin-top:15px;padding-top:13px;border-top:1px solid rgba(18,17,15,.62);font:500 10px/1.35 var(--mono);letter-spacing:.02em;text-transform:uppercase}
.recent-meta strong{font:700 12px var(--body);letter-spacing:.01em}.recent-meta span:last-child{text-align:right;opacity:.58}
.recent-arrow{position:absolute;z-index:3;top:48%;width:52px;height:52px;border:1px solid rgba(18,17,15,.35);background:#f5e9d8;display:grid;place-items:center;cursor:pointer;font:400 22px/1 var(--mono);transition:background .3s,color .3s,transform .3s var(--ease)}
.recent-arrow:hover,.recent-arrow:focus-visible{background:var(--ink);color:var(--bone);transform:scale(1.07)}
.recent-arrow:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.recent-prev{left:var(--pad)}.recent-next{right:var(--pad)}

/* stacking expertise boards */
.expertise-showcase{position:relative;background:var(--ink)}
.expertise-board{--board-bg:var(--ink);--board-fg:var(--bone);--board-accent:#caa0ef;position:sticky;top:70px;height:clamp(620px,68svh,740px);min-height:620px;display:grid;grid-template-columns:minmax(310px,29vw) 1fr;gap:clamp(34px,4vw,72px);padding:clamp(48px,5vh,66px) var(--pad);background:var(--board-bg);color:var(--board-fg);overflow:hidden;border-top:1px solid color-mix(in srgb,var(--board-fg) 26%,transparent)}
.expertise-board-dark{--board-bg:#1c1603;--board-fg:#f1d8ff;--board-accent:#caa0ef}.expertise-board-violet{--board-bg:var(--bone);--board-fg:var(--ink);--board-accent:var(--ink)}.expertise-board-sand{--board-bg:#f0dfc8;--board-fg:#17120b;--board-accent:#17120b}
.expertise-board:nth-child(1){z-index:1}.expertise-board:nth-child(2){z-index:2}.expertise-board:nth-child(3){z-index:3}.expertise-board:nth-child(4){z-index:4}
.expertise-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;min-height:0;padding-right:clamp(6px,2vw,30px)}
.expertise-no{display:block;margin-bottom:24px;font:500 9px/1 var(--mono);letter-spacing:.1em;opacity:.62}
.expertise-copy h2{max-width:330px;margin:0;font:800 clamp(38px,4vw,70px)/.88 var(--display);letter-spacing:-.065em}
.expertise-copy p{max-width:360px;margin:24px 0 30px;font-size:13px;line-height:1.75}
.expertise-copy a{display:flex;align-items:center;justify-content:space-between;width:max-content;min-width:142px;padding:13px 15px;border:1px solid currentColor;font:500 10px var(--mono);transition:background .3s,color .3s}
.expertise-copy a:hover{background:var(--board-fg);color:var(--board-bg)}
.expertise-image{align-self:stretch;min-height:0;overflow:hidden;background:#4b463d}
.expertise-image>div{width:100%;height:120%;transform:translate3d(0,-10%,0);will-change:transform}
.expertise-image img{filter:saturate(.82);transition:filter .7s ease,transform 1.2s var(--ease)}.expertise-board:hover .expertise-image img{filter:saturate(1);transform:scale(1.025)}
.zemu-totem{position:relative;width:clamp(205px,18vw,310px);height:clamp(190px,27vh,300px);color:var(--board-accent);font:900 clamp(60px,6.2vw,112px)/.72 var(--display);letter-spacing:0;isolation:isolate}
.zemu-totem span{position:absolute;display:block;transform-origin:50% 70%;will-change:transform;transition:color .25s ease}
.zemu-totem span:nth-child(1){left:4%;top:3%}.zemu-totem span:nth-child(2){left:43%;top:12%}.zemu-totem span:nth-child(3){left:9%;bottom:7%}.zemu-totem span:nth-child(4){right:2%;bottom:1%}
.expertise-board[data-service-board="0"] .zemu-totem{width:clamp(150px,12vw,210px);height:clamp(135px,18vh,200px);font-size:clamp(40px,4.1vw,74px);transform:translateY(-30%)}
.expertise-board[data-service-board="0"] .zemu-totem span{width:1em;height:1em;display:grid;place-items:center;line-height:1;text-align:center}

/* manifesto */
.manifesto{padding-top:120px;padding-bottom:150px;background:var(--paper)}
.manifesto-grid{display:grid;grid-template-columns:minmax(180px,.48fr) 1.52fr;gap:7vw;align-items:start;margin:110px 0 90px}
.manifesto-side{font-size:13px;line-height:1.75;max-width:290px;margin:10px 0 0}
.manifesto-title{font:500 clamp(44px,6.2vw,108px)/1.02 var(--display);letter-spacing:-.065em;margin:0}.manifesto-title .word{opacity:.13;transition:opacity .15s}
.manifesto-image{position:relative;height:min(72vw,920px);margin-left:16vw}.manifesto-image span{position:absolute;right:18px;bottom:15px;background:var(--bone);padding:8px 10px;font:500 9px var(--mono)}

/* horizontal projects */
.projects{height:520vh;background:var(--ink);color:var(--bone)}
.projects-sticky{position:sticky;top:0;height:100vh;overflow:hidden;padding:88px 0 30px}
.projects-head{height:86px;padding:0 var(--pad);display:grid;grid-template-columns:1fr auto;gap:40px}.projects-head .section-kicker{width:min(720px,60vw)}.projects-head>p{margin:16px 0 0;font:500 10px var(--mono)}
.project-track{height:calc(100vh - 215px);display:flex;gap:20px;padding:0 var(--pad);width:max-content;will-change:transform}
.project-card{position:relative;width:min(72vw,1180px);height:100%;flex:none;overflow:hidden;background:#25231e;border:1px solid rgba(244,240,232,.18)}
.project-image{position:absolute;inset:0;overflow:hidden}.project-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,17,15,.78),transparent 55%)}.project-image img{transition:transform 1.2s var(--ease),filter .7s}.project-card:hover img{transform:scale(1.055);filter:saturate(.72)}
.project-meta{position:absolute;z-index:2;left:30px;right:30px;bottom:24px;display:grid;grid-template-columns:1fr 1.4fr;align-items:end;gap:20px}.project-meta>span{font:500 9px var(--mono);align-self:start}.project-meta h3{grid-column:2;font:700 clamp(42px,5.2vw,92px)/.85 var(--display);letter-spacing:-.06em;margin:0}.project-meta p{grid-column:2;max-width:440px;font-size:12px;line-height:1.7;margin:12px 0 0}.project-card>b{position:absolute;z-index:2;right:25px;top:22px;font:400 12px var(--mono)}
.project-progress{position:absolute;bottom:14px;left:var(--pad);right:var(--pad);height:2px;background:rgba(244,240,232,.2)}.project-progress i{display:block;height:100%;width:0;background:var(--clay);transform-origin:left}

/* statement */
.statement{height:240vh;background:#caa0ef;color:var(--ink)}.statement-pin{position:sticky;top:0;height:100vh;padding:calc(var(--header) + 30px) var(--pad) 30px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.statement-top{position:absolute;left:var(--pad);right:var(--pad);top:34px;display:flex;justify-content:space-between;border-top:1px solid rgba(18,17,15,.28);padding-top:12px;font:500 10px var(--mono)}
.statement-copy{position:relative;z-index:2;font:800 clamp(42px,3.8vw,68px)/1 var(--display);letter-spacing:-.055em;margin:0;max-width:none}.statement-line{display:block;white-space:nowrap}.statement-copy .char{display:inline-block;opacity:.1;transform:translateY(.2em);transition:opacity .16s ease,transform .28s var(--ease);will-change:opacity,transform}.statement-orbit{display:none}
@keyframes orbit{to{transform:rotate(360deg)}}

/* services */
.services{padding-top:140px;padding-bottom:150px;position:relative;background:var(--bone)}
.services-intro{display:grid;grid-template-columns:1fr 1fr;gap:70px}.services-intro .section-kicker{grid-column:1/-1}.services-intro>p{font-size:14px;line-height:1.8;max-width:460px;align-self:end;margin:0 0 10px}
.service-list{margin-top:130px;border-top:1px solid var(--ink)}
.service-row{display:grid;grid-template-columns:70px 1fr 1fr 45px;align-items:center;min-height:130px;border-bottom:1px solid var(--ink);position:relative;overflow:hidden;transition:color .35s;padding:10px 0;outline:none}.service-row:before{content:"";position:absolute;inset:0;background:var(--clay);transform:translateY(102%);transition:transform .5s var(--ease)}.service-row:hover:before,.service-row:focus:before{transform:none}.service-row>*{position:relative;z-index:1}.service-row>span{font:500 10px var(--mono)}.service-row h3{font:700 clamp(34px,4.3vw,72px)/1 var(--display);letter-spacing:-.05em;margin:0}.service-row p{font-size:11px;letter-spacing:.04em}.service-row b{justify-self:end;font-size:24px;font-weight:400;transition:transform .4s}.service-row:hover b{transform:rotate(45deg)}
.service-row:focus-visible{outline:2px solid var(--clay);outline-offset:4px}

/* process */
.process{background:var(--paper);padding-top:88px;padding-bottom:112px}.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:2vw;row-gap:42px;margin-top:58px;align-items:end}.process-grid>h2{grid-column:1/-1;position:static;align-self:end;max-width:none}.process ol{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.process li{display:block;min-height:150px;padding:27px 3vw 28px 0;border-bottom:1px solid var(--line)}.process li:nth-child(3n+2),.process li:nth-child(3n+3){padding-left:2vw}.process li span{display:block;color:var(--clay);font:600 9px var(--mono);margin-bottom:23px}.process li h3{font:700 clamp(22px,1.55vw,30px)/1 var(--display);letter-spacing:-.04em;margin:0}.process li p{font-size:11px;line-height:1.7;max-width:330px;margin:17px 0 0}

/* numbers */
.numbers{display:grid;grid-template-columns:1fr 1fr;height:clamp(500px,52svh,580px);min-height:500px;background:var(--clay);color:var(--bone);overflow:hidden}.number-image{height:100%;min-height:0}.number-body{padding:38px var(--pad);display:flex;flex-direction:column}.number-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:auto;border-top:1px solid rgba(244,240,232,.35)}.number-grid article{padding:18px 0 20px;border-bottom:1px solid rgba(244,240,232,.35);display:flex;flex-direction:column}.number-grid article:nth-child(odd){border-right:1px solid rgba(244,240,232,.35)}.number-grid article:nth-child(even){padding-left:24px}.number-grid strong{font:800 clamp(54px,5vw,92px)/.85 var(--display);letter-spacing:-.08em}.number-grid span{font-size:10px;margin-top:11px}.number-body>p{font:400 9px var(--mono);opacity:.65;margin:14px 0 0}

/* contact */
.contact{background:var(--ink);color:var(--bone);padding-top:70px;padding-bottom:24px;min-height:100vh;display:flex;flex-direction:column;overflow:hidden}.contact-top{display:flex;justify-content:space-between;border-top:1px solid rgba(244,240,232,.3);padding-top:12px;font:500 10px var(--mono)}.contact-title{font:700 clamp(64px,10.5vw,188px)/.83 var(--display);letter-spacing:-.075em;margin:10vh 0 12vh}.contact-title a{position:relative;color:#caa0ef}.contact-title a:after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.035em;background:currentColor;transform-origin:left;transition:transform .5s var(--ease)}.contact-title a:hover:after{transform:scaleX(.18)}.contact-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid rgba(244,240,232,.3);padding-top:20px}.contact-foot>div{display:flex;flex-direction:column;gap:10px}.contact-foot span{font:500 9px var(--mono);opacity:.55}.contact-foot p,.contact-foot a{font-size:12px;margin:0}.contact-foot i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#75d176;margin-right:8px;box-shadow:0 0 0 5px rgba(117,209,118,.12)}.footer-word{width:100%;display:flex;align-items:flex-end;justify-content:space-between;font:900 clamp(170px,31vw,590px)/.7 var(--display);letter-spacing:0;white-space:nowrap;margin:12vh 0 0;color:var(--bone)}.footer-word span{display:block;flex:none}.copyright{font:500 9px var(--mono);border-top:1px solid rgba(244,240,232,.3);padding-top:12px;margin:20px 0 0}

.mobile-menu{display:none}

/* compact about group */
.about-group{background:var(--bone)}
.about-group .statement{height:auto;min-height:0;background:transparent;color:var(--ink);overflow:hidden}
.about-group>.services>.section-kicker{border-top:1px solid var(--line);padding-top:13px}
.about-group .statement-pin{position:relative;top:0;height:auto;min-height:0;padding:66px 0 62px;border-top:0;border-bottom:1px solid var(--line)}
.about-group .statement-copy{max-width:none}
.about-group .services{padding-top:92px;padding-bottom:105px}
.about-group .service-list{margin-top:0}
.about-group .service-row{min-height:106px}

/* filterable style index */
.style-gallery{padding-top:118px;padding-bottom:140px;background:var(--paper)}
.style-gallery-intro{display:grid;grid-template-columns:1fr;align-items:end;margin:72px 0 68px}
.style-gallery-intro .display-title,.process-grid>.display-title{font:800 clamp(42px,4.1vw,74px)/.98 var(--display);letter-spacing:-.055em;text-wrap:balance}
.style-gallery-intro p{max-width:440px;margin:0 0 8px;font-size:13px;line-height:1.8}
.style-filters{display:flex;gap:clamp(20px,2.5vw,46px);align-items:center;overflow-x:auto;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.style-filters::-webkit-scrollbar{display:none}.style-filters button{position:relative;flex:none;border:0;background:none;padding:8px 0;cursor:pointer;font-size:12px;opacity:.45;transition:opacity .25s}.style-filters button:after{content:"";position:absolute;left:0;right:0;bottom:1px;height:2px;background:#a978d6;transform:scaleX(0);transition:transform .3s var(--ease)}.style-filters button:hover,.style-filters button.is-active{opacity:1;font-weight:700}.style-filters button.is-active:after{transform:scaleX(1)}
.style-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:28px}
.style-card{position:relative;aspect-ratio:1.18;overflow:hidden;background:#d4cec2;transition:opacity .35s ease,transform .45s var(--ease)}.style-card-wide,.style-card-tall{grid-column:auto;grid-row:auto;aspect-ratio:1.18;min-height:0}.style-card.is-filtered{display:none}.style-card img{transition:transform .9s var(--ease),filter .5s ease}.style-card:hover img{transform:scale(1.045);filter:saturate(.78)}.style-card:after{content:"";position:absolute;inset:38% 0 0;background:linear-gradient(0deg,rgba(12,11,9,.68),transparent);pointer-events:none}.style-card>div{position:absolute;z-index:1;left:16px;right:16px;bottom:14px;display:flex;justify-content:space-between;align-items:end;gap:16px;color:var(--bone)}.style-card strong{font-size:14px}.style-card span{font:500 9px var(--mono);opacity:.78;text-align:right}

@media (max-width:520px){html:root{--brand-size:clamp(40px,13vw,52px)}}

@media (max-width:900px){
  :root{--header:68px;--pad:20px}.main-nav,.header-cta{display:none}.site-header{grid-template-columns:1fr auto}.header-actions{gap:7px}.menu-button{display:block;padding:12px 13px;font-size:12.5px;min-height:44px}.header-login{padding:12px 11px;font-size:12px;min-height:44px}.logo-slot{height:52px;gap:9px}.logo-slot img{width:48px}.logo-slot span{font-size:19px;transform:translateY(6px)}
  .hero{min-height:650px}.hero-title{font-size:clamp(36px,8vw,58px);line-height:1.06}.hero-foot{align-items:flex-end}.hero-foot>p{max-width:210px}.circle-link{width:82px;height:82px}.hero-index{display:none}
  .hero-line:nth-child(2){font-size:1em;margin-top:10px}
  .manifesto{padding-top:90px;padding-bottom:100px}.manifesto-grid{grid-template-columns:1fr;margin:70px 0 60px}.manifesto-side{order:2;margin-top:35px}.manifesto-image{margin-left:0;height:90vw}.manifesto-title{font-size:clamp(38px,9vw,68px)}
  .recent-projects{padding:88px 0 96px}.recent-viewport{margin-top:44px}.recent-card{width:70vw;max-width:420px}.recent-arrow{top:46%;width:48px;height:48px}.recent-prev{left:18px}.recent-next{right:18px}
  .style-gallery{padding-top:90px;padding-bottom:100px}.style-gallery-intro{grid-template-columns:1fr;margin:58px 0 48px}.style-gallery-intro p{max-width:560px}.style-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.style-card-wide,.style-card-tall{grid-column:auto;grid-row:auto;min-height:0}
  .about-group .statement{height:clamp(460px,57vh,580px);min-height:0}.about-group .statement-pin{height:100%;min-height:0}.about-group .services{padding-top:70px}.about-group .service-list{margin-top:0}
  .expertise-board{position:relative;top:auto;height:auto;min-height:auto;grid-template-columns:1fr;padding-top:70px;padding-bottom:70px;gap:38px}.expertise-copy{min-height:420px;padding-right:0}.expertise-copy h2{font-size:clamp(52px,12vw,88px)}.expertise-copy p{max-width:520px}.zemu-totem{position:absolute;right:0;bottom:0;width:190px;height:170px;font-size:66px}.expertise-image{height:72vw;min-height:400px;grid-row:2}
  .projects{height:440vh}.projects-sticky{padding-top:76px}.projects-head{height:72px}.projects-head .section-kicker{width:72vw}.project-track{height:calc(100vh - 176px);gap:12px}.project-card{width:84vw}.project-meta{left:18px;right:18px;bottom:18px;display:block}.project-meta h3{font-size:clamp(42px,12vw,72px);margin-top:10px}.project-meta p{display:none}.project-card>b{right:18px;top:16px}
  .statement-copy{font-size:clamp(34px,6.4vw,52px)}.statement-line{white-space:normal}
  .services{padding-top:100px;padding-bottom:100px}.services-intro{grid-template-columns:1fr}.services-intro>p{margin-top:-30px}.service-list{margin-top:80px}.service-row{grid-template-columns:40px 1fr 30px;min-height:100px}.service-row p{display:none}
  .process{padding-top:80px;padding-bottom:90px}.process-grid{grid-template-columns:1fr 1fr;gap:36px 18px;margin-top:54px}.process-grid>h2{grid-column:1/-1}.process-intro{grid-column:1/-1;justify-self:start;margin:0}.process ol{grid-column:1/-1;grid-template-columns:1fr 1fr}.process li:nth-child(n){padding:24px 18px 26px 0}.process li:nth-child(even){padding-left:18px}.numbers{grid-template-columns:1fr;height:auto;min-height:0}.number-image{height:56vw;min-height:300px}.number-body{padding:48px var(--pad)}.number-grid{margin-top:52px}.number-grid strong{font-size:17vw}
  .contact{min-height:auto}.contact-title{font-size:clamp(58px,16vw,105px);margin:12vh 0}.contact-foot{grid-template-columns:1fr;gap:28px}.footer-word{font-size:29vw;margin-top:14vh}
  .menu-backdrop{position:fixed;z-index:10035;inset:0;background:rgba(0,0,0,.42);opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
  .menu-backdrop.is-open{opacity:1;pointer-events:auto}
  .mobile-menu{position:fixed;z-index:10040;top:0;left:0;right:0;max-height:100svh;background:var(--bone);color:var(--ink);padding:calc(var(--header) + 2px) var(--pad) 14px;display:flex;flex-direction:column;gap:0;overflow-y:auto;transform:translateY(-100%);transition:transform .55s var(--ease);border-bottom:1px solid rgba(18,17,15,.14)}
  .mobile-menu.is-open{transform:none}
  .mobile-menu a{font:700 20px/1 var(--display);letter-spacing:-.02em;text-align:right;border-bottom:1px solid rgba(18,17,15,.11);padding:14px 0}
  .mobile-menu a:last-child{border-bottom:0}
  body.is-menu-open .site-header{z-index:10050;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--ink)}
  body.is-menu-open .hero-brand-target{visibility:hidden}
}

@media (max-width:520px){:root{--brand-size:clamp(58px,18vw,72px)}.loader-mark{width:90vw;height:210px}.hero-brand-target{top:102px}.loader-status span:last-child{display:none}.recent-projects{height:100svh;min-height:680px;padding:calc(var(--header) + 22px) 0 20px;display:flex;flex-direction:column}.recent-head{flex:none}.recent-viewport{flex:1;min-height:0;margin-top:26px;padding-bottom:0}.recent-track{height:100%;gap:12px}.recent-card{width:calc(100vw - 40px);max-width:none;height:100%;display:flex;flex-direction:column}.recent-image{flex:1;min-height:0;aspect-ratio:auto}.recent-meta{flex:none;margin-top:11px;padding-top:10px}.recent-arrow{top:48%;width:42px;height:42px;font-size:17px}.recent-prev{left:10px}.recent-next{right:10px}.expertise-board{padding-top:58px;padding-bottom:58px}.expertise-copy{min-height:390px}.expertise-copy p{font-size:12px;max-width:88%}.expertise-copy a{min-width:128px}.zemu-totem{right:52px;width:150px;height:145px;font-size:54px;opacity:.9}.expertise-board[data-service-board="0"] .zemu-totem{right:44px;width:112px;height:105px;font-size:38px;transform:translateY(-38%)}.expertise-image{height:88vw;min-height:330px}.projects-head>p{display:none}.projects-head{display:block}.project-track{height:calc(100vh - 164px)}.project-card{width:88vw}.manifesto-title br{display:none}.display-title{font-size:13vw}.style-gallery{padding-top:72px;padding-bottom:78px}.style-gallery-intro{margin:45px 0 36px}.style-gallery-intro .display-title,.process-grid>.display-title{font-size:clamp(34px,9.6vw,46px);line-height:1.02}.style-filters{gap:25px;margin-right:calc(var(--pad) * -1);padding-right:var(--pad)}.style-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px}.style-card,.style-card-wide,.style-card-tall{grid-column:auto;grid-row:auto;min-height:0;aspect-ratio:.88}.style-card>div{left:10px;right:10px;bottom:9px;display:block}.style-card strong{font-size:12px}.style-card span{display:block;margin-top:4px;text-align:left;font-size:8px}.about-group .statement{height:auto;min-height:0}.about-group .statement-pin{height:auto;min-height:0;padding:54px 0 50px}.about-group .statement-copy{font-size:clamp(34px,9.6vw,46px);line-height:1.04;max-width:100%}.about-group .services{padding-top:58px;padding-bottom:78px}.about-group .service-list{margin-top:0}.process-grid{grid-template-columns:1fr}.process ol{grid-template-columns:1fr}.process li:nth-child(n){min-height:0;padding:22px 0 24px}.process li span{margin-bottom:16px}.process li h3{font-size:25px}.number-image{height:58vw;min-height:220px}.number-body{padding:38px var(--pad) 44px}.number-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:38px}.number-grid article:nth-child(odd){border-right:1px solid rgba(244,240,232,.35)}.number-grid article:nth-child(even){padding-left:16px}.number-grid strong{font-size:18vw}.statement{height:auto}}

@media (max-width:520px){.recent-more{flex:none;padding:5px 20px 0}.recent-more-link{padding-top:15px}.recent-more-link span{font-size:7px}.recent-more-link strong{font-size:16px}}
@media (max-width:520px){.about-group .statement-pin{height:auto;padding:48px 0 46px}.about-group .statement-copy{font-size:clamp(32px,8.9vw,42px);line-height:1.05}.about-group .services{padding-top:48px;padding-bottom:72px}.statement-line{white-space:normal}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.loader{display:none}.logo-slot{opacity:1}.hero-brand-target{display:none}.hero-brand-letters span{opacity:1;transform:none}.hero-media{clip-path:none;transform:none}.hero-motion,.hero-breath,.hero-light{animation:none;transform:none}.hero-line i,.reveal{transform:none;opacity:1}.recent-track{transform:none!important}.expertise-board{position:relative;top:auto}.expertise-image>div,.zemu-totem span{transform:none!important}.statement-orbit{animation:none}.reveal-image img{clip-path:none;transform:none}.projects{height:auto}.projects-sticky{position:relative;height:auto}.project-track{width:auto;overflow:auto;height:75vh}.statement{height:auto}.statement-pin{position:relative}.statement-copy .char{opacity:1!important}}
