/* JSTUDIO shared homepage styles. Generated from the accepted homepage and kept common to both languages. */

.js-site,
.js-site *,
.js-site *::before,
.js-site *::after {
  box-sizing: border-box;
}

.js-site button {
  font: inherit;
}

.js-scroll-note {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
}

/* Clients & Collaborators is self-contained so the homepage no longer needs
   the legacy Webflow component bundle. */
.jb-section {
  padding: clamp(96px, 8vw, 132px) clamp(20px, 2.4vw, 40px) clamp(100px, 8vw, 136px);
  background: #0a0a0a;
  color: #f7f7f5;
}

.jb-head {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: clamp(64px, 6vw, 92px);
}

.jb-kicker {
  grid-column: 1 / -1;
  margin-bottom: clamp(34px, 3vw, 52px);
  color: #a5a5a1;
  font-size: .76rem;
  font-weight: 500;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.jb-title,
.jt-title-1 {
  grid-column: 1 / span 7;
  margin: 0;
  text-wrap: balance;
}

.jb-intro {
  grid-column: 9 / -1;
  align-self: end;
  max-width: 440px;
  margin: 0;
  color: #a8a8a4;
  font-size: clamp(.92rem, 1vw, 1.04rem);
  line-height: 1.55;
}

.jb-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  background: rgba(247, 247, 245, .16);
}

.jb-brand {
  background: #0a0a0a;
  color: #f7f7f5;
}

.jb-num,
.jb-arrow {
  color: #777773;
  font-size: .66rem;
  letter-spacing: .08em;
}

.jt-title-1 {
  font-size: clamp(3.5rem, 4.8vw, 4.75rem);
  font-weight: 500;
  letter-spacing: -.008em;
  line-height: 1.08;
}

.jt-copy-paragraph,
.jt-copy-paragraph-1 {
  margin: 0;
}

.jt-copy-paragraph-secondary {
  margin-top: 1.2em;
}

@media screen and (max-width: 991px) {
  .jb-title,
  .jt-title-1 {
    grid-column: 1 / span 8;
  }

  .jb-intro {
    grid-column: 9 / -1;
  }

  .jb-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 767px) {
  .jb-section {
    padding: 84px 20px 98px;
  }

  .jb-head {
    display: block;
    margin-bottom: 56px;
  }

  .jb-kicker {
    margin-bottom: 52px;
  }

  .jb-title,
  .jt-title-1 {
    font-size: 2.4rem;
    line-height: 1.05;
  }

  .jb-intro {
    max-width: 82%;
    margin: 38px 0 0 18%;
    font-size: .92rem;
  }

  .jb-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.js-site{--ink:#0a0a0a;--paper:#f7f7f5;--soft:#e9e9e6;--line:rgba(10,10,10,0.18);--muted:#adada9;overflow:clip;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue",Helvetica,Arial,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;}.js-menu-toggle{appearance:none;border:0;background:transparent;padding:0;color:inherit;font:inherit;cursor:pointer;}.js-brand,.js-nav-link,.js-project-link,.js-mobile-link,.js-contact-link,.js-footer-item,.js-footer-back{color:inherit;text-decoration:none;}.js-theme-dark{background:var(--ink);color:var(--paper);}.js-theme-light{background:var(--paper);color:var(--ink);}.js-theme-soft{background:var(--soft);color:var(--ink);}.js-section-label{font-size:0.78rem;letter-spacing:0.02em;text-transform:uppercase;}.js-nav{position:fixed;inset:0 0 auto;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:20px clamp(20px,2.4vw,40px);color:#fff;mix-blend-mode:difference;transition:transform 500ms cubic-bezier(.2,.8,.2,1);}.js-brand{justify-self:start;font-size:1.18rem;font-weight:700;letter-spacing:-0.055em;}.js-brand-mark{margin-left:0.12em;font-size:0.42em;vertical-align:top;}.js-nav-links{display:flex;gap:28px;}.js-nav-link,.js-project-link{position:relative;font-size:0.82rem;transition:opacity 220ms ease,transform 220ms ease;}.js-nav-link::after,.js-project-link::after{content:"";position:absolute;right:0;bottom:-4px;left:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform 320ms cubic-bezier(.2,.8,.2,1);}.js-nav-link:hover::after,.js-nav-link:focus::after,.js-project-link:hover::after,.js-project-link:focus::after{transform:scaleX(1);transform-origin:left;}.js-nav-actions{justify-self:end;display:flex;align-items:center;gap:22px;}.js-language{min-width:44px;padding:6px 9px;border:1px solid currentColor;border-radius:999px;font-size:0.66rem;text-align:center;cursor:pointer;transition:color 240ms ease,background 240ms ease,transform 240ms ease;}.js-language:hover,.js-language:focus{color:var(--ink);background:var(--paper);outline:none;transform:translateY(-1px);}.js-menu-toggle{display:none;color:inherit;}.js-mobile-menu{position:fixed;inset:0;z-index:45;display:none;flex-direction:column;justify-content:center;padding:30px;background:var(--paper);color:var(--ink);}.js-mobile-menu.is-open{display:flex;}.js-mobile-link{padding:7px 0;font-size:clamp(2.4rem,10vw,4.6rem);letter-spacing:-0.055em;line-height:0.96;transition:transform 250ms ease,opacity 250ms ease;}.js-mobile-link:hover{transform:translateX(8px);}.js-hero{position:relative;min-height:100svh;overflow:hidden;padding:96px clamp(20px,2.4vw,40px) 28px;}.js-hero-index{position:absolute;top:98px;left:clamp(20px,2.4vw,40px);max-width:220px;color:#8e8e8a;font-size:0.64rem;letter-spacing:.02em;line-height:1.45;text-transform:uppercase;}.js-hero-copy{position:relative;z-index:2;width:min(47%,760px);margin-left:53%;}.js-eyebrow{margin:0 0 18px;color:#a8a8a4;font-size:0.7rem;letter-spacing:.03em;text-transform:uppercase;}.js-hero-title{max-width:760px;margin:0;font-size:clamp(3rem,4.35vw,5.4rem);font-weight:400;letter-spacing:-0.06em;line-height:0.96;text-wrap:balance;}.js-hero-body{max-width:640px;margin:26px 0 0;color:#bdbdb8;font-size:clamp(.92rem,1vw,1.08rem);line-height:1.48}.js-hero-lead{display:block;max-width:620px}.js-hero-body small{display:block;margin-top:18px;padding-top:12px;border-top:1px solid rgba(247,247,245,.2);color:#858581;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}.js-hero-body .js-brand-mark{font-size:.46em;line-height:0;vertical-align:super}.js-scroll-note{position:absolute;right:clamp(20px,2.4vw,40px);bottom:24px;z-index:2;display:inline-flex;align-items:center;gap:10px;margin:0;font-size:0.7rem;letter-spacing:.02em;cursor:pointer;}.js-scroll-note::after{content:"↓";display:grid;width:30px;height:30px;place-items:center;border:1px solid rgba(247,247,245,.5);border-radius:50%;font-size:.9rem;line-height:1;animation:scrollArrowNudge 1.8s cubic-bezier(.2,.8,.2,1) infinite;transition:color 250ms ease,background 250ms ease,border-color 250ms ease;}.js-scroll-note:hover::after,.js-scroll-note:focus::after{border-color:var(--paper);background:var(--paper);color:var(--ink);animation-play-state:paused;}.js-scroll-note:focus{outline:1px solid rgba(247,247,245,.8);outline-offset:7px;}.js-hero-wordmark{position:absolute;bottom:11vh;left:0.4vw;font-size:clamp(8rem,25vw,29rem);font-weight:700;letter-spacing:-0.105em;line-height:0.72;white-space:nowrap;will-change:transform;}.js-belief{padding:110px clamp(20px,2.4vw,40px) 56px;}.js-belief-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;margin-top:82px;}.js-belief-title{grid-column:1 / span 7;margin:0;font-size:clamp(3.4rem,6.8vw,7.5rem);font-weight:400;letter-spacing:-0.068em;line-height:0.89;}.js-belief-copy{grid-column:9 / -1;align-self:end;max-width:450px;font-size:clamp(0.98rem,1.25vw,1.3rem);letter-spacing:-0.02em;line-height:1.3;}.js-belief-primary{margin:0;}.js-belief-secondary{margin:1em 0 0;color:#777774;}.js-belief-words{margin-top:100px;border-top:1px solid var(--line);}.js-belief-word{display:block;padding:12px 0 9px;border-bottom:1px solid var(--line);font-size:clamp(3.6rem,9.2vw,10rem);letter-spacing:-0.078em;line-height:0.9;transition:padding-left 600ms cubic-bezier(.2,.8,.2,1),letter-spacing 600ms ease;}.js-belief-word:hover{letter-spacing:-0.055em;}.js-belief-word-mid{padding-left:16%;}.js-belief-word-end{padding-left:41%;}.js-approach{padding:110px clamp(20px,2.4vw,40px) 130px;}.js-approach-head{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;margin-top:80px;}.js-approach-title{grid-column:1 / span 7;margin:0;font-size:clamp(3.5rem,7vw,7.5rem);font-weight:400;letter-spacing:-0.072em;line-height:0.88;}.js-approach-intro{grid-column:9 / -1;align-self:end;margin:0;color:#aaa9a5;font-size:clamp(0.98rem,1.25vw,1.28rem);line-height:1.3;}.js-method-list{display:grid;grid-template-columns:repeat(3,1fr);margin:90px 0 0;padding:0;border-top:1px solid rgba(247,247,245,0.25);list-style:none;}.js-method{position:relative;min-height:350px;overflow:hidden;padding:16px 22px 24px 0;border-right:1px solid rgba(247,247,245,0.25);border-bottom:1px solid rgba(247,247,245,0.25);cursor:pointer;transition:background 420ms ease,color 420ms ease,padding-left 420ms cubic-bezier(.2,.8,.2,1);}.js-method::after{content:"+";position:absolute;top:14px;right:18px;color:#777773;font-size:1rem;line-height:1;transition:color 300ms ease,transform 450ms cubic-bezier(.2,.8,.2,1);}.js-method:hover,.js-method:focus,.js-method.is-active{padding-left:18px;background:var(--paper);color:var(--ink);outline:none;}.js-method:hover::after,.js-method:focus::after,.js-method.is-active::after{content:"−";color:var(--ink);transform:rotate(180deg);}.js-method:hover .js-method-copy,.js-method:hover .js-method-number,.js-method:focus .js-method-copy,.js-method:focus .js-method-number,.js-method.is-active .js-method-copy,.js-method.is-active .js-method-number{color:#666;}.js-method-end{border-right:0;padding-left:20px;}.js-method-middle{padding-left:20px;}.js-method-number{color:#777773;font-size:0.68rem;}.js-method-title{margin:66px 0 12px;font-size:clamp(2.35rem,3.8vw,4.2rem);font-weight:400;letter-spacing:-0.06em;line-height:0.94;}.js-method-copy{max-width:300px;margin:0;color:#aaa9a5;font-size:0.9rem;line-height:1.35;}.js-method-detail{max-height:0;margin-top:0;overflow:hidden;opacity:0;transform:translateY(12px);transition:max-height 650ms cubic-bezier(.2,.8,.2,1),margin 500ms ease,opacity 350ms ease,transform 500ms cubic-bezier(.2,.8,.2,1);}.js-method:hover .js-method-detail,.js-method:focus .js-method-detail,.js-method.is-active .js-method-detail{max-height:190px;margin-top:26px;opacity:1;transform:translateY(0);}.js-method-detail-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid rgba(10,10,10,.2);font-size:0.7rem;line-height:1.35;}.js-method-detail-label{color:#777774;text-transform:uppercase;letter-spacing:.04em;}.js-method-tools,.js-method-output{color:var(--ink);}.js-contact{position:relative;min-height:100svh;overflow:hidden;padding:72px clamp(20px,2.4vw,40px) 24px;}.js-contact-row{display:grid;grid-template-columns:2fr 1fr;align-items:start;gap:40px;padding-bottom:86px;border-bottom:1px solid rgba(247,247,245,0.25);}.js-contact-title{margin:0;font-size:clamp(3rem,5.3vw,5.8rem);font-weight:400;letter-spacing:-0.06em;line-height:0.94;}.js-contact-link{position:relative;justify-self:end;border-bottom:1px solid currentColor;font-size:clamp(1.7rem,3.1vw,3.5rem);letter-spacing:-0.05em;line-height:1;transition:opacity 220ms ease,transform 300ms ease;}.js-contact-link:hover{transform:translateX(-8px);}.js-footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-top:86px;}.js-footer-column{display:flex;flex-direction:column;align-items:flex-start;color:#858581;font-size:0.9rem;line-height:1.5;}.js-footer-item:hover,.js-footer-item:focus{color:var(--paper);}.js-footer-label{margin:0 0 10px;color:var(--paper);}.js-office-list{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;}.js-footer-column:has(.js-office-list) > .js-footer-item{display:none;}.js-office-item{display:flex;min-width:0;flex-direction:column;gap:1px;padding-top:8px;border-top:1px solid rgba(247,247,245,0.2);}.js-office-city{color:var(--paper);font-size:0.78rem;line-height:1.25;}.js-office-time{display:inline-flex;align-items:center;gap:2px;min-height:22px;color:#d7d7d1;line-height:1;}.js-digital-digit{position:relative;display:inline-block;width:11px;height:20px;flex:0 0 11px;}.js-digital-segment{position:absolute;display:block;border-radius:2px;background:currentColor;opacity:.1;transition:opacity 180ms ease,filter 180ms ease;}.js-digital-segment.is-on{opacity:.95;filter:drop-shadow(0 0 2px rgba(247,247,245,.32));}.js-segment-a,.js-segment-g,.js-segment-d{left:2px;width:7px;height:2px;}.js-segment-a{top:0;}.js-segment-g{top:9px;}.js-segment-d{top:18px;}.js-segment-f,.js-segment-b,.js-segment-e,.js-segment-c{width:2px;height:7px;}.js-segment-f{top:2px;left:0;}.js-segment-b{top:2px;right:0;}.js-segment-e{top:11px;left:0;}.js-segment-c{top:11px;right:0;}.js-digital-colon{display:inline-flex;width:4px;height:20px;flex:0 0 4px;flex-direction:column;align-items:center;justify-content:center;gap:4px;}.js-digital-colon i{display:block;width:2px;height:2px;border-radius:50%;background:currentColor;box-shadow:0 0 2px rgba(247,247,245,.28);}.js-footer-wordmark{margin:96px 0 -0.13em -0.035em;font-size:clamp(7rem,20vw,22rem);font-weight:700;letter-spacing:-0.105em;line-height:0.7;white-space:nowrap;will-change:transform;}.js-footer-bottom{position:relative;z-index:2;display:flex;justify-content:flex-end;gap:15vw;font-size:0.74rem;}.reveal{opacity:0;filter:blur(7px);transform:translateY(24px);transition:opacity 850ms ease,filter 850ms ease,transform 850ms cubic-bezier(.2,.8,.2,1);}.reveal.is-visible{opacity:1;filter:blur(0);transform:translateY(0);}.js-site.is-lang-changing main{opacity:.15;transform:translateY(5px);}.js-site main{transition:opacity 220ms ease,transform 220ms ease;}.js-site.is-zh{letter-spacing:.005em;}.js-site.is-zh .js-zh-mobile-break{display:none;}.js-site.is-zh .js-hero-title{max-width:720px;font-size:clamp(2.9rem,4.7vw,5.3rem);letter-spacing:-0.028em;line-height:1.04;}.js-site.is-zh .js-belief-title{max-width:820px;font-size:clamp(3.1rem,5.2vw,6.2rem);letter-spacing:-0.025em;line-height:1.04;}.js-site.is-zh .js-belief-words{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}.js-site.is-zh .js-belief-word,.js-site.is-zh .js-belief-word-mid,.js-site.is-zh .js-belief-word-end{min-width:0;padding:20px 14px 18px;border-right:1px solid var(--line);font-size:clamp(3.2rem,6.2vw,7.2rem);letter-spacing:-0.035em;line-height:1;text-align:center;}.js-site.is-zh .js-belief-word:last-child{border-right:0;}.js-site.is-zh .js-hero-body,.js-site.is-zh .js-belief-primary,.js-site.is-zh .js-belief-secondary,.js-site.is-zh .js-service-description,.js-site.is-zh .js-work-intro,.js-site.is-zh .js-approach-intro,.js-site.is-zh .js-method-copy{letter-spacing:.015em;line-height:1.58;}.js-site.is-zh .js-work-title{max-width:780px;font-size:clamp(3.1rem,5.1vw,5.8rem);letter-spacing:-0.028em;line-height:1.04;}.js-site.is-zh .js-approach-title{max-width:820px;font-size:clamp(3.2rem,5.8vw,6.4rem);letter-spacing:-0.03em;line-height:1.02;}.js-site.is-zh .js-method-title{font-size:clamp(2.1rem,3.2vw,3.7rem);letter-spacing:-0.025em;line-height:1.04;}.js-site.is-zh .js-contact-title{max-width:820px;font-size:clamp(3rem,4.8vw,5.3rem);letter-spacing:-0.028em;line-height:1.05;}@media screen and (max-width:991px){.js-nav{grid-template-columns:minmax(0,1fr) auto;padding:20px;}.js-nav-links{display:none;}.js-project-link{display:none;}.js-nav-actions{grid-column:2;justify-self:end;}.js-menu-toggle{display:block;}.js-hero{padding:98px 20px 20px;}.js-hero-index{top:98px;left:20px;}.js-hero-copy{width:72%;margin-left:28%;}.js-scroll-note{right:20px;bottom:18px;}.js-belief,.js-approach{padding-right:20px;padding-left:20px;}.js-belief-title{grid-column:1 / span 9;}.js-belief-copy{grid-column:8 / -1;margin-top:80px;}.js-contact{padding-right:20px;padding-left:20px;}}@media screen and (max-width:767px){.js-hero-index{display:none;}.js-hero-copy{width:100%;margin-left:0;}.js-hero-title{max-width:95%;font-size:clamp(3rem,12vw,4.6rem);}.js-hero-body{max-width:100%;}.js-hero-wordmark{right:20px;bottom:7vh;left:20px;width:auto;font-size:clamp(4.25rem,22.5vw,10.8rem);text-align:center;}.js-belief{padding-top:88px;}.js-belief-grid{display:block;margin-top:70px;}.js-belief-title{font-size:clamp(3.15rem,13.5vw,6rem);}.js-belief-copy{margin:70px 0 0 18%;}.js-belief-words{margin-top:90px;}.js-belief-word,.js-belief-word-mid,.js-belief-word-end{padding-left:0;font-size:15vw;}.js-approach-head{display:block;}.js-approach-title{margin-top:60px;font-size:13.5vw;}.js-approach-intro{max-width:78%;margin:55px 0 0 22%;}.js-method-list{grid-template-columns:1fr;margin-top:80px;}.js-method,.js-method-middle,.js-method-end{min-height:0;padding:16px 42px 20px 0;border-right:0;}.js-method:hover,.js-method:focus,.js-method.is-active{padding-left:14px;}.js-method-title{margin-top:44px;font-size:12vw;}.js-method-copy{max-width:88%;}.js-method:hover .js-method-detail,.js-method:focus .js-method-detail,.js-method.is-active .js-method-detail{max-height:220px;margin-top:28px;}.js-contact-row{display:block;}.js-contact-title{font-size:12.5vw;}.js-contact-link{display:inline-block;margin-top:60px;font-size:8.5vw;}.js-footer-grid{grid-template-columns:repeat(2,1fr);row-gap:45px;}.js-office-list{max-width:300px;}.js-footer-wordmark{font-size:25vw;}.js-footer-bottom{justify-content:space-between;gap:20px;}.js-site.is-zh .js-hero-title{font-size:clamp(2.85rem,12vw,4.7rem);line-height:1.06;}.js-site.is-zh .js-belief-title{font-size:clamp(2.8rem,11.5vw,4.8rem);line-height:1.08;}.js-site.is-zh .js-belief-word,.js-site.is-zh .js-belief-word-mid,.js-site.is-zh .js-belief-word-end{padding:16px 6px 15px;font-size:clamp(2.4rem,11vw,3.2rem);}.js-site.is-zh .js-work-title,.js-site.is-zh .js-approach-title{font-size:clamp(2.8rem,11.5vw,4.8rem);line-height:1.06;}.js-site.is-zh .js-method-title{font-size:clamp(2.35rem,10.5vw,3.8rem);}.js-site.is-zh .js-contact-title{font-size:clamp(2.75rem,11vw,4.6rem);line-height:1.08;}.js-site.is-zh .js-zh-mobile-break{display:block;}}@keyframes scrollArrowNudge{0%,100%{transform:translateY(0);}50%{transform:translateY(4px);}}@media (prefers-reduced-motion:reduce){.js-scroll-note::after{animation:none;}}@media screen and (max-width:479px){.js-nav-actions{gap:12px;}.js-hero-body{max-width:100%;}.js-scroll-note{font-size:0.7rem;}.js-belief-copy,.js-approach-intro{max-width:none;margin-left:0;}.js-contact{min-height:92svh;}}

.js-belief-word{font-size:clamp(3rem,6.4vw,7.4rem);letter-spacing:-.058em;line-height:.94}.js-belief-word:hover{letter-spacing:-.038em}.js-site.is-zh .js-belief-words{display:block}.js-site.is-zh .js-belief-word,.js-site.is-zh .js-belief-word-mid,.js-site.is-zh .js-belief-word-end{min-width:0;padding-top:16px;padding-right:0;padding-bottom:14px;border-right:0;font-size:clamp(3rem,6vw,7rem);letter-spacing:-.02em;line-height:1.02;text-align:left}.js-site.is-zh .js-belief-word{padding-left:0}.js-site.is-zh .js-belief-word-mid{padding-left:16%}.js-site.is-zh .js-belief-word-end{padding-left:41%}@media screen and (max-width:767px){.js-belief-word,.js-belief-word-mid,.js-belief-word-end{padding-left:0;font-size:clamp(2.5rem,10.8vw,4.2rem);line-height:1}.js-site.is-zh .js-belief-word,.js-site.is-zh .js-belief-word-mid,.js-site.is-zh .js-belief-word-end{padding:14px 0 12px;font-size:clamp(2.25rem,9.8vw,3rem);letter-spacing:-.018em;line-height:1.04}}

.js-footer-bottom{position:absolute;right:clamp(20px,2.4vw,40px);bottom:24px;left:auto;z-index:4;display:grid;grid-template-columns:44px auto;align-items:center;justify-content:end;gap:clamp(44px,7vw,120px);font-size:.74rem} .js-footer-back{display:grid;width:44px;height:44px;place-items:center;flex:0 0 44px;border:1px solid rgba(247,247,245,.8);border-radius:50%;background:var(--ink);color:var(--paper);font-size:0;line-height:1;transition:color 250ms ease,background 250ms ease,transform 300ms cubic-bezier(.2,.8,.2,1)} .js-footer-back::before{content:"";display:block;width:15px;height:15px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f7f7f5' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V6M6.5 11.5 12 6l5.5 5.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:15px 15px;transform:translateY(-1px)} .js-footer-back:hover,.js-footer-back:focus{background:var(--paper);color:var(--ink);outline:none;transform:translateY(-3px)} @media screen and (max-width:767px){.js-contact{padding-bottom:86px}.js-footer-bottom{right:20px;bottom:18px;left:20px;display:flex;justify-content:space-between;gap:18px}.js-footer-back{width:40px;height:40px;flex-basis:40px}}

.jb-brand{transition:background .35s,color .35s,opacity .6s,transform .6s}.jb-brand:hover{background:#f2f2ef;color:#090909}.js-editorial-sections .is-editorial-hidden{opacity:0;transform:translateY(34px)}.js-editorial-sections .is-editorial-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.jb-brand{transition:none!important}.js-editorial-sections .is-editorial-hidden{opacity:1;transform:none}}

.js-footer-item.is-replaced-social{display:none!important}.js-contact-link{display:inline-flex!important;align-items:center;gap:clamp(18px,2vw,34px);padding:10px 10px 10px clamp(18px,2vw,30px);border:1px solid rgba(247,247,245,.72)!important;border-radius:999px;text-decoration:none!important;transition:background .35s,color .35s,transform .45s cubic-bezier(.16,1,.3,1)}.js-contact-link::after{content:"";width:clamp(42px,4.2vw,62px);height:clamp(42px,4.2vw,62px);border-radius:50%;background:#f7f7f5 no-repeat center/22px;transition:background-color .35s,transform .55s cubic-bezier(.16,1,.3,1)}.js-contact-link:hover,.js-contact-link:focus-visible{background:#f7f7f5;color:#0b0b0b;transform:translateY(-4px);outline:0}.js-contact-link:hover::after{background-color:#f7f7f5;transform:rotate(45deg)}@media(max-width:767px){.js-contact-link{gap:14px;padding:7px 7px 7px 17px}.js-contact-link::after{width:42px;height:42px}}@media(prefers-reduced-motion:reduce){.js-contact-link,.js-contact-link::after{transition:none!important}}

.js-footer-wordmark{margin-top:clamp(170px,13vw,240px)!important} @media screen and (max-width:991px){.js-footer-wordmark{margin-top:145px!important}} @media screen and (max-width:767px){.js-footer-wordmark{margin-top:110px!important}}

.js-brand,.insightlogo{display:inline-flex!important;align-items:flex-start;overflow:visible}.js-trademark-reg{margin-left:.08em;font-size:.38em;line-height:1;position:relative;top:-.1em}.js-hero-wordmark,.js-footer-wordmark{overflow:visible}.js-trademark-reg-big{margin-left:.11em;font-size:.075em;line-height:1;position:relative;top:-.12em;vertical-align:top}@media(max-width:767px){.js-trademark-reg{font-size:.42em}.js-trademark-reg-big{font-size:.09em}}

.js-social-launch{display:flex!important;flex-flow:row wrap!important;gap:8px!important}.js-social-button{position:relative;display:grid!important;width:48px!important;height:48px!important;flex:0 0 48px;place-items:center;padding:0!important;border:1px solid rgba(247,247,245,.55)!important;border-radius:50%;color:#f7f7f5!important;text-decoration:none!important;transition:.35s}.js-social-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7}.js-social-button .in{font-size:17px;font-weight:700}.js-social-button:hover,.js-social-button:focus-visible{background:#f7f7f5!important;border-color:#f7f7f5!important;color:#0a0a0a!important;transform:translateY(-5px) rotate(-4deg);outline:0}.js-social-button:nth-child(even):hover{transform:translateY(-5px) rotate(4deg)}.js-social-tip{position:absolute;bottom:58px;left:50%;padding:5px 8px;border-radius:20px;background:#f7f7f5;color:#0a0a0a;font-size:.6rem;white-space:nowrap;opacity:0;transform:translate(-50%,5px);transition:.25s;pointer-events:none}.js-social-button:hover .js-social-tip,.js-social-button:focus-visible .js-social-tip{opacity:1;transform:translate(-50%,0)}@media(max-width:767px){.js-social-button{width:44px!important;height:44px!important;flex-basis:44px}.js-social-tip{display:none}}@media(prefers-reduced-motion:reduce){.js-social-button,.js-social-tip{transition:none!important}}

.jb-brand{position:relative;min-height:156px;padding:18px!important;display:grid!important;grid-template-columns:auto 1fr auto;grid-template-rows:auto minmax(58px,1fr) auto;gap:8px 14px;overflow:hidden}.jb-brand .jb-num{grid-area:1/1}.jb-brand .jb-arrow{grid-area:1/3}.jb-brand .jb-name{grid-area:3/1/4/4;align-self:end;font-size:clamp(.66rem,.7vw,.76rem)!important;opacity:.5;transition:.4s}.jb-logo-stage{grid-area:2/1/3/4;display:flex;height:58px;align-items:center;transition:transform .5s}.jb-logo{display:block;max-width:min(66%,170px);max-height:42px;filter:grayscale(1) brightness(0) invert(1);opacity:.84}.jb-logo--symbol{max-width:50px}.jb-logo--wide{max-width:min(72%,180px);max-height:34px}.jb-logo--compact{max-width:min(58%,132px)}.jb-brand:hover .jb-logo-stage,.jb-brand:hover .jb-name{transform:translateX(8px)}.jb-brand:hover .jb-logo{filter:brightness(0);opacity:1}.jb-brand.is-logo-failed .jb-logo-stage{display:none}@media(max-width:767px){.jb-brand{min-height:132px;padding:14px 12px!important;grid-template-rows:auto minmax(48px,1fr) auto}.jb-logo-stage{height:48px}.jb-logo{max-width:min(72%,142px);max-height:36px}.jb-logo--symbol{max-width:42px}.jb-logo--wide{max-width:min(78%,150px);max-height:29px}.jb-brand:hover .jb-logo-stage,.jb-brand:hover .jb-name{transform:none}}

.js-footer-back:hover::before,.js-footer-back:focus::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V6M6.5 11.5 12 6l5.5 5.5'/%3E%3C/svg%3E")} .jb-arrow{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px} .jb-arrow svg{display:block;width:14px;height:14px;overflow:visible} @media screen and (max-width:767px){.jb-arrow{width:16px;height:16px}.jb-arrow svg{width:13px;height:13px}}

.js-scroll-note::after{content:""!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f7f7f5' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v14M6.5 12.5 12 18l5.5-5.5'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:14px 14px!important} .js-scroll-note:hover::after,.js-scroll-note:focus::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v14M6.5 12.5 12 18l5.5-5.5'/%3E%3C/svg%3E")!important}

.js-contact-link::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 18.5l13-13M9 5.5h9.5V15'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:clamp(16px,1.35vw,22px) clamp(16px,1.35vw,22px)!important}

.js-footer-grid>.js-footer-column:first-child{display:none!important} .js-footer-grid{grid-template-columns:minmax(160px,220px) minmax(420px,520px)!important; justify-content:start!important; column-gap:clamp(64px,8vw,130px)!important} .js-footer-grid>.js-footer-column{align-items:flex-start!important;text-align:left!important} .js-footer-grid>.js-footer-column:has(.js-office-list){width:100%;max-width:520px} @media screen and (max-width:991px){.js-footer-grid{grid-template-columns:minmax(150px,190px) minmax(330px,1fr)!important;column-gap:48px!important}} @media screen and (max-width:767px){.js-footer-grid{grid-template-columns:1fr!important;row-gap:44px!important;column-gap:0!important} .js-footer-grid>.js-footer-column:has(.js-office-list){max-width:100%} .js-office-list{width:min(100%,360px)}}

@media screen and (min-width:768px){.js-footer-grid .js-social-launch{gap:8px!important;flex-wrap:nowrap!important}}

 .js-site{font-family:"Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-optical-sizing:auto;font-feature-settings:"ss01" 1,"ss05" 1} .js-site.is-zh{font-family:"PingFang SC","Hiragino Sans GB","Source Han Sans SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;font-feature-settings:normal} .js-brand,.js-hero-wordmark,.js-footer-wordmark,.insightlogo{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;font-feature-settings:normal} .js-hero-title,.js-belief-title,.js-approach-title,.js-contact-title,.jb-title,.js-method-title{font-variation-settings:"wdth" 94,"wght" 400} .js-nav-link,.js-project-link,.js-language,.js-menu-toggle,.js-section-label,.js-footer-label{font-weight:500;letter-spacing:.015em} .js-site.is-zh h1,.js-site.is-zh h2,.js-site.is-zh h3{font-weight:400;letter-spacing:-.045em;line-height:1.02} .js-site.is-zh p{line-height:1.62;letter-spacing:.004em}

.js-scroll-note::after,.js-footer-back{box-sizing:border-box!important; width:44px!important; height:44px!important; border:1px solid rgba(247,247,245,.78)!important; border-radius:50%!important; background-color:transparent!important} .js-scroll-note::after{flex:0 0 44px!important} .js-footer-back{flex:0 0 44px!important} .js-scroll-note::after,.js-footer-back::before{background-size:15px 15px!important} .js-footer-back::before{width:15px!important;height:15px!important;transform:none!important} .js-scroll-note:hover::after,.js-scroll-note:focus::after,.js-footer-back:hover,.js-footer-back:focus{border-color:#f7f7f5!important; background-color:#f7f7f5!important} @media screen and (max-width:767px){.js-scroll-note::after,.js-footer-back{width:40px!important;height:40px!important} .js-scroll-note::after,.js-footer-back{flex-basis:40px!important} .js-scroll-note::after,.js-footer-back::before{background-size:14px 14px!important} .js-footer-back::before{width:14px!important;height:14px!important}}

.js-ibrand{display:inline-block;white-space:nowrap}

#about{scroll-margin-top:76px}.jt-section{padding:clamp(96px,9vw,144px) clamp(20px,2.4vw,40px) clamp(108px,9vw,148px);background:#f7f7f5;color:#0a0a0a;border-top:1px solid rgba(10,10,10,.2)}.jt-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.jt-kicker{grid-column:1/-1;margin-bottom:clamp(48px,5vw,76px);font-size:.76rem;font-weight:500;text-transform:uppercase}.jt-title{grid-column:1/span 7;margin:0;text-wrap:balance}.jt-copy{grid-column:9/-1;align-self:end}.jt-copy p{margin:0;color:#5f5f5b;font-size:clamp(.94rem,1.08vw,1.06rem);line-height:1.55}.jt-copy p+p{margin-top:1.2em}.js-site.is-zh .jt-copy p{line-height:1.68}@media(max-width:991px){.jt-title{grid-column:1/span 8}.jt-copy{grid-column:9/-1}}@media(max-width:767px){#about{scroll-margin-top:68px}.jt-section{padding:84px 20px 98px}.jt-head{display:block}.jt-kicker{margin-bottom:52px}.jt-copy{max-width:82%;margin:42px 0 0 18%}.jt-copy p{font-size:.94rem}}

.js-editorial-sections{font-family:"Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif}
.js-site.is-zh .js-editorial-sections{font-family:"PingFang SC","Hiragino Sans GB","Source Han Sans SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif}
.js-site:not(.is-zh) .js-hero-title,.js-site:not(.is-zh) .js-belief-title,.js-site:not(.is-zh) .js-work-title,.js-site:not(.is-zh) .js-approach-title,.js-site:not(.is-zh) .js-contact-title,.js-site:not(.is-zh) .jb-title,.js-site:not(.is-zh) .js-method-title,.js-site:not(.is-zh) .js-case-title,.js-site:not(.is-zh) .js-service-title,.js-site:not(.is-zh) .jt-title,.js-site:not(.is-zh) .jt-people-title{font-variation-settings:"wdth" 100,"wght" 400;letter-spacing:-.04em}
.js-site.is-zh h1,.js-site.is-zh h2,.js-site.is-zh h3{font-variation-settings:normal!important;letter-spacing:-.015em;line-height:1.06}
.js-site.is-zh .js-hero-title,.js-site.is-zh .js-belief-title,.js-site.is-zh .js-work-title,.js-site.is-zh .js-approach-title,.js-site.is-zh .js-contact-title,.js-site.is-zh .jt-title,.js-site.is-zh .jt-people-title{letter-spacing:-.012em;line-height:1.07}

.js-hero-title,.js-belief-title,.js-approach-title,.js-contact-title,.jb-title,.jt-title{font-weight:500!important;letter-spacing:-.035em!important}.js-site:not(.is-zh) .js-hero-title,.js-site:not(.is-zh) .js-belief-title,.js-site:not(.is-zh) .js-work-title,.js-site:not(.is-zh) .js-approach-title,.js-site:not(.is-zh) .js-contact-title,.js-site:not(.is-zh) .jb-title,.js-site:not(.is-zh) .jt-title{font-variation-settings:"wdth" 100,"wght" 500!important}.js-hero-title{font-size:clamp(2.8rem,3.45vw,4rem)!important;line-height:.98!important}.js-belief-title,.js-approach-title,.jt-title{font-size:clamp(3.5rem,4.8vw,4.75rem)!important;line-height:.94!important}.jb-title{font-size:clamp(3.5rem,4.8vw,4.6rem)!important;line-height:.96!important}.js-contact-title{font-size:clamp(3.25rem,4.2vw,4rem)!important;line-height:.96!important}.js-belief-word{font-size:clamp(3rem,4.2vw,4.2rem)!important;line-height:1!important}.js-service-button{font-size:clamp(2.35rem,3.4vw,3.25rem)!important;line-height:1!important}.js-method-title{font-size:clamp(2.15rem,2.9vw,2.75rem)!important;line-height:1!important}.js-case-title{font-size:clamp(1.4rem,1.8vw,1.75rem)!important;line-height:1.08!important}.js-contact-link{font-size:clamp(2rem,2.45vw,2.35rem)!important}.js-site.is-zh .js-hero-title,.js-site.is-zh .js-belief-title,.js-site.is-zh .js-work-title,.js-site.is-zh .js-approach-title,.js-site.is-zh .js-contact-title,.js-site.is-zh .jb-title,.js-site.is-zh .jt-title{letter-spacing:-.008em!important;line-height:1.08!important}@media(max-width:767px){.js-hero-title{font-size:2.4rem!important}.js-belief-title,.js-approach-title,.jb-title,.jt-title{font-size:2.55rem!important;line-height:.98!important}.js-contact-title{font-size:2.5rem!important;line-height:1!important}.js-belief-word{font-size:2.4rem!important}.js-service-button{font-size:1.78rem!important;line-height:1.05!important}.js-method-title{font-size:2.25rem!important}.js-case-title{font-size:1.32rem!important}.js-contact-link{font-size:2rem!important}.js-site.is-zh .js-hero-title{font-size:2.35rem!important}.js-site.is-zh .js-belief-title,.js-site.is-zh .js-work-title,.js-site.is-zh .js-approach-title,.js-site.is-zh .jb-title,.js-site.is-zh .jt-title{font-size:2.4rem!important;line-height:1.1!important}.js-site.is-zh .js-contact-title{font-size:2.4rem!important;line-height:1.1!important}}

.js-social-button{background:#f7f7f5!important;color:#0a0a0a!important;border-color:#f7f7f5!important}.js-social-button svg{color:#0a0a0a!important;stroke:currentColor!important}.js-social-button .in{color:#0a0a0a!important}.js-social-button:hover,.js-social-button:focus-visible{background:#f7f7f5!important;color:#0a0a0a!important;border-color:#f7f7f5!important}

.js-site.is-zh .js-hero-title{white-space:nowrap!important}
@media screen and (min-width:992px){.js-site.is-zh .js-hero-title{font-size:min(3.45vw,60px)!important}}
@media screen and (min-width:768px) and (max-width:991px){.js-site.is-zh .js-hero-title{font-size:clamp(42px,5.7vw,50px)!important}}
@media screen and (min-width:480px) and (max-width:767px){.js-site.is-zh .js-hero-title{font-size:clamp(34px,6vw,46px)!important}}
@media screen and (max-width:479px){.js-site.is-zh .js-hero-title{font-size:clamp(23px,7.15vw,34px)!important}}

/* The acid green is reserved for intentional hover/focus feedback. */
.js-contact-link:hover::after,
.js-contact-link:focus-visible::after {
  background-color: #b7ff2a !important;
}

.js-social-button:hover,
.js-social-button:focus-visible {
  border-color: #b7ff2a !important;
  background: #b7ff2a !important;
  color: #0a0a0a !important;
}

/* Shared navigation geometry: the language control is a fixed, real link so
   EN and 中文 occupy the same slot at every breakpoint. */
.js-nav-actions {
  gap: clamp(14px, 1.5vw, 22px);
}

.js-language {
  display: grid;
  width: 52px;
  height: 34px;
  min-width: 52px;
  padding: 0;
  place-items: center;
  border-color: rgba(247, 247, 245, .72);
  color: inherit;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  touch-action: manipulation;
}

.js-project-link,
.js-menu-toggle {
  white-space: nowrap;
}

.js-menu-toggle {
  min-width: 48px;
  align-items: center;
  justify-content: flex-end;
  border: 0;
  background: transparent;
  line-height: 1;
  text-align: right;
  touch-action: manipulation;
}

.js-language:focus-visible,
.js-menu-toggle:focus-visible,
.js-project-link:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 5px;
}

.js-scroll-note {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}

.jb-arrow {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 18.5l13-13M9 5.5h9.5V15'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 14px 14px;
}

@media screen and (max-width: 991px) {
  .js-nav-actions {
    gap: 12px;
  }

  .js-language {
    width: 46px;
    height: 34px;
    min-width: 46px;
  }

  .js-menu-toggle {
    display: inline-flex;
  }
}

@media screen and (max-width: 479px) {
  .js-nav-actions {
    gap: 10px;
  }

  .js-language {
    width: 44px;
    min-width: 44px;
  }
}
