/* nim v2 homepage: the parts Webflow classes can't express (fallback fonts, animation states, icon masks). Layout lives in the native classes. */
body{background:#fff}
.hero-title,.v2-section-title,.statement-heading,.work-title,.copy-heading,.tile-title,.tv-blockquote{font-style:normal}
html.page-intro{overflow:hidden}
.kicker,.hero-title,.statement-heading,.statement-sub,.copy-heading,.outcome-title,.v2-section-title,.tile-title,.tv-blockquote,.work-title{font-family:"neue-haas-grotesk-display","Inter Tight","Helvetica Neue",Arial,sans-serif}
.page-v2,.page-v2 button{font-family:"Inter Tight","Helvetica Neue",Helvetica,Arial,sans-serif}
.nav-logo{font-family:"Zilla Slab",Rockwell,serif}
.page-v2 img{max-width:none}
/* icons drawn with CSS masks so they take the text colour */
.hero-arrow,.outcome-arrow,.card-arrow{background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cpath d='M2 78 78 2M16 2h62v62' fill='none' stroke='%23000' stroke-width='4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cpath d='M2 78 78 2M16 2h62v62' fill='none' stroke='%23000' stroke-width='4'/%3E%3C/svg%3E") center/contain no-repeat}
.outcome-arrow{display:block}
.outcome:hover .outcome-arrow{transform:translate(6px,-6px)}
.work-card:hover .card-arrow,.insta-handle:hover .card-arrow{transform:translate(4px,-4px)}
.social-link{font-size:0!important}
.social-link::before{content:"";width:20px;height:20px;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.social-link[aria-label=Instagram]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2c3.2 0 3.6 0 4.8.1 3.3.1 4.8 1.7 4.9 4.9.1 1.3.1 1.6.1 4.8s0 3.6-.1 4.8c-.1 3.2-1.7 4.8-4.9 4.9-1.3.1-1.6.1-4.8.1s-3.6 0-4.8-.1c-3.3-.1-4.8-1.7-4.9-4.9C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.8C2.4 3.9 3.9 2.4 7.2 2.3 8.4 2.2 8.8 2.2 12 2.2zM12 0C8.7 0 8.3 0 7.1.1 2.7.3.3 2.7.1 7.1 0 8.3 0 8.7 0 12s0 3.7.1 4.9c.2 4.4 2.6 6.8 7 7 1.2.1 1.6.1 4.9.1s3.7 0 4.9-.1c4.4-.2 6.8-2.6 7-7 .1-1.2.1-1.6.1-4.9s0-3.7-.1-4.9c-.2-4.4-2.6-6.8-7-7C15.7 0 15.3 0 12 0zm0 5.8a6.2 6.2 0 100 12.4 6.2 6.2 0 000-12.4zM12 16a4 4 0 110-8 4 4 0 010 8zm6.4-11.8a1.4 1.4 0 100 2.9 1.4 1.4 0 000-2.9z'/%3E%3C/svg%3E")}
.social-link[aria-label=LinkedIn]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.98 3.5a2.5 2.5 0 11-.02 5 2.5 2.5 0 01.02-5zM3 9.75h4V21H3V9.75zM9.5 9.75h3.8v1.54h.05c.53-1 1.84-2.05 3.78-2.05 4.04 0 4.79 2.66 4.79 6.12V21h-4v-5.05c0-1.2-.02-2.75-1.68-2.75-1.68 0-1.94 1.31-1.94 2.66V21h-4V9.75z'/%3E%3C/svg%3E")}
.social-link[aria-label=Facebook]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5 22v-8.2h2.8l.4-3.2h-3.2V8.5c0-.9.3-1.6 1.6-1.6h1.7V4.1c-.3 0-1.3-.1-2.5-.1-2.5 0-4.2 1.5-4.2 4.3v2.4H7.3v3.2h2.8V22h3.4z'/%3E%3C/svg%3E")}
.social-link[aria-label=YouTube]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.5 6.2a3 3 0 00-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 00.5 6.2 31 31 0 000 12a31 31 0 00.5 5.8 3 3 0 002.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 002.1-2.1A31 31 0 0024 12a31 31 0 00-.5-5.8zM9.6 15.6V8.4l6.2 3.6-6.2 3.6z'/%3E%3C/svg%3E")}
/* mobile menu */
@media (max-width:991px){.main-nav{position:relative}.nav-links.open{display:flex!important;flex-direction:column;align-items:flex-start;row-gap:18px;position:absolute;top:100%;left:0;right:0;background:#fff;padding:24px clamp(16px,2vw,40px) 32px;z-index:20;font-size:20px;border-bottom:2px solid #000}.nav-links.open .nav-slash{display:none}.nav-links.open .nav-social{margin-left:0}}
/* page intro */
.micro-nav,.main-nav{transition:opacity .8s ease,transform .8s cubic-bezier(.165,.84,.44,1)}
.page-intro .micro-nav{opacity:0}.page-intro .main-nav{opacity:0;transform:translateY(-12px)}
.hero-section .rule{transition:transform 1.1s cubic-bezier(.165,.84,.44,1) .15s}.page-intro .hero-section .rule{transform:scaleX(0)}
.hero-arrow{transition:opacity .8s ease .5s}.page-intro .hero-arrow{opacity:0}
.rotator--intro .rotator-img{transition:none}.rotator--intro{clip-path:inset(100% 0 0 0)}
.rotator--open{clip-path:inset(0);transition:clip-path 1s cubic-bezier(.77,0,.175,1)}
/* client names marquee */
.logos-track{animation:nimMarquee 45s linear infinite}.client-logos:hover .logos-track{animation-play-state:paused}
@keyframes nimMarquee{to{transform:translateX(-50%)}}
/* tiles */
.tile-svg{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.5}
.tile-icon{color:#000;transition:color .3s}.tile:hover .tile-icon{color:#CC3333}
.i-spin{transform-origin:50px 50px;animation:nimSpin 18s linear infinite}.tile:hover .i-spin{animation-duration:5s}
.i-pulse{transform-origin:50px 50px;animation:nimPulse 3.2s ease-in-out infinite}
.i-wave{animation:nimWave 2.4s ease-out infinite;opacity:0}.i-wave.d2{animation-delay:.6s}
.i-left{animation:nimL 4s ease-in-out infinite}.i-right{animation:nimR 4s ease-in-out infinite}
@keyframes nimSpin{to{transform:rotate(360deg)}}@keyframes nimPulse{0%,100%{transform:scale(1)}50%{transform:scale(.82)}}
@keyframes nimWave{0%{opacity:0}25%{opacity:1}100%{opacity:0}}@keyframes nimL{0%,100%{transform:translateX(-14px)}50%{transform:none}}@keyframes nimR{0%,100%{transform:translateX(14px)}50%{transform:none}}
/* work + article cards */
.work-card:hover .work-img{transform:scale(1.03)}
.work-card:hover .work-name,.work-card:hover .article-name,.work-card:hover .card-arrow{color:#CC3333}
.work-card .card-arrow{margin-top:.15em}
.work-item:nth-child(6n+1) .work-fig{aspect-ratio:581/342}.work-item:nth-child(6n+5) .work-fig,.work-item:nth-child(6n) .work-fig{aspect-ratio:581/500}
.card-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* case studies */
.tv-slide.active{opacity:1;z-index:1}.tv-slide.active .tv-img{transform:scale(1)}
.tv__tab{flex:0 0 auto;display:flex;align-items:center;gap:14px;min-width:260px;padding:10px 18px 10px 10px;border-radius:10px;border:0;background:none;color:#fff;font:inherit;text-align:left;cursor:pointer;opacity:.55;transition:opacity .3s,background-color .3s}
.tv__tab:hover{opacity:.85}.tv__tab.active{opacity:1;background:rgba(120,120,120,.28);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}
.tv__thumb{position:relative;width:58px;height:58px;border-radius:6px;overflow:hidden;flex:none}.tv__thumb img{width:100%;height:100%;object-fit:cover}
.tv__bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:#fff;transform:scaleX(0);transform-origin:left}
.tv__tab strong{display:block;font-size:15px;font-weight:600}.tv__tab small{display:block;font-size:13px;color:rgba(255,255,255,.65);margin-top:2px}
.tv-nav{scrollbar-width:none}.tv-nav::-webkit-scrollbar{display:none}
.tv-stage.has-cursor .tv-cursor{transform:scale(1)}.tv-stage.has-cursor.can-play{cursor:none}
.tv-slide video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* word reveals */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.15em .5em;margin:-.15em -.5em}.w>span{display:inline-block}
@media (prefers-reduced-motion:no-preference){
.js [data-split] .w>span{transform:translateY(135%);transition:transform 1s cubic-bezier(.165,.84,.44,1);transition-delay:calc(.1s + .045s*var(--i))}
.js [data-split=text] .w>span{transform:translateY(160%);opacity:0;transition-property:transform,opacity;transition-delay:calc(.1s + .8s/var(--n)*var(--i))}
.js [data-split].in .w>span{transform:none;opacity:1}
.js .reveal-btn{opacity:0;transform:translateY(12px);transition:opacity .6s ease .5s,transform .6s ease .5s}
.js .in .reveal-btn,.js .reveal-btn.in{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.js .reveal.in{opacity:1;transform:none}
.js .tiles .reveal:nth-child(2){transition-delay:.1s}.js .tiles .reveal:nth-child(3){transition-delay:.2s}.js .tiles .reveal:nth-child(4){transition-delay:.3s}}
.tv-slide .w>span{transform:translateY(135%);transition:transform 0s .5s}
.tv-slide.active .w>span{transform:none;transition:transform 1s cubic-bezier(.165,.84,.44,1);transition-delay:calc(.25s + .045s*var(--i))}
@media (prefers-reduced-motion:reduce){.i-spin,.i-pulse,.i-wave,.i-left,.i-right,.logos-track{animation:none;opacity:1}}
/* strategist's annotations */
.annot-host{position:relative}
.annot-layer{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:5}
.annot-layer path{fill:none;stroke:#CC3333;stroke-linecap:round;stroke-linejoin:round}
.annot-note{position:absolute;z-index:5;pointer-events:none;width:max-content;max-width:min(360px,80vw);font-family:"hey-eloise-watercolor","Bradley Hand",cursive;font-weight:400;font-style:normal;font-size:clamp(22px,1.55vw,30px);line-height:.78;letter-spacing:.06em;text-transform:uppercase;color:#CC3333;transform:rotate(-1.5deg);transform-origin:left top}
.annot-note .wd{white-space:nowrap}
.annot-note .ch{display:inline-block;clip-path:inset(-30% 115% -30% -15%);transition:clip-path 90ms linear}
.annot-note .ch.on,.annot-done .annot-note .ch{clip-path:inset(-30% -30% -30% -15%)}