<!doctype html>
<html lang="en-US">
<head>
	<base href="">
	<meta charset="UTF-8">
	<!-- Version: 0.2.99 -->
	<meta name="robots" content="index, follow">
	<meta http-equiv="content-language" content="en">
	<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
	new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
	j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
	'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
	})(window,document,'script','dataLayer','GTM-5WR8KCRL');</script>
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<link rel="canonical" href="https://wearebarbarian.com/">
	<meta name="description" content="Finding better ways to help brands interact with their customers through marketing campaigns, activations, customer experiences, and digital transformations.">
	<meta name="author" content="Barbarian">
	<meta name="copyright" content="2025">
	<title>Barbarian: a creative and innovation agency.</title>
	<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
	<link rel="stylesheet" type="text/css" href="/styles.min.css">
	<meta property="og:type" content="website">
	<meta property="og:url" content="https://wearebarbarian.com/">
	<meta property="og:title" content="Barbarian: a creative and innovation agency.">
	<meta property="og:description" content="Finding better ways to help brands interact with their customers through marketing campaigns, activations, customer experiences, and digital transformations.">
	<meta property="og:image" content="https://www.wearebarbarian.com/images/barbarian.png">
	<meta property="twitter:card" content="summary_large_image">
	<meta property="twitter:url" content="https://wearebarbarian.com/">
	<meta property="twitter:title" content="Barbarian: a creative and innovation agency.">
	<meta property="twitter:description" content="Finding better ways to help brands interact with their customers through marketing campaigns, activations, customer experiences, and digital transformations.">
	<meta property="twitter:image" content="https://www.wearebarbarian.com/images/barbarian.png">
	<link rel="preconnect" href="https://unpkg.com">
	<link rel="preconnect" href="https://cdn.jsdelivr.net">
	<link rel="preload" as="script" href="https://unpkg.com/@rive-app/canvas@2.30.0/rive.js">
	<link rel="preload" as="script" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js">
	<link rel="preload" as="style" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">
	<link rel="preload" as="script" href="https://code.jquery.com/jquery-3.7.1.min.js">
	<link rel="preload" as="script" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js">
	<link rel="preload" as="style" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css">
	<script src="https://unpkg.com/@rive-app/canvas@2.30.0/rive.js"></script>
	<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
	<script async src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">
	<script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>
	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css">
	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css">
	<link rel="preload" as="image" href="/images/cta-arrow.svg">
	<link rel="preload" as="image" href="/images/intro-bg-full.png">
	<script>
	  if ('scrollRestoration' in history) {
	    history.scrollRestoration = 'manual';
	  }
	  window.onload = function () {
	    window.scrollTo(0, 0);
	  }
	</script>
	<script type="application/ld+json">
	{
		"@context": "https://schema.org",
		"@type": "Article",
		"headline": "We exist to find a better way.",
		"image": "/images/barbarian.png",
		"author": {
			"@type": "Organization",
			"name": "Barbarian",
			"url": "https://wearebarbarian.com"
		},
		"publisher": {
			"@type": "Organization",
			"name": "Barbarian",
			"logo": {
				"@type": "ImageObject",
				"url": "/images/barbarian.png"
			}
		},
		"datePublished": "June 13, 2025"
	}
	</script>
</head>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WR8KCRL"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>
document.addEventListener("DOMContentLoaded", function () {
  const form = document.querySelector("#mc-embedded-subscribe-form");
  if (!form) return;

  // Ensure dataLayer exists
  window.dataLayer = window.dataLayer || [];

  form.addEventListener("submit", function (e) {
    const isAjax = form.getAttribute("data-ajax") === "true";
    if (!isAjax) e.preventDefault();

    let submitted = false;
    const submitNow = () => {
      if (submitted || isAjax) return;
      submitted = true;
      form.submit();
    };

    // Push a single event; configure GTM to fire GA4 (and Ads, if needed) on this.
    window.dataLayer.push({
      event: "contact_form_submission",
      event_category: "form",
      event_label: "Contact Form",
      form_id: form.id || "",
      // GTM will call this after tags for this event run (or after eventTimeout)
      eventCallback: submitNow,
      eventTimeout: 2000
    });

    // If, for some reason, nothing fires in GTM and the timeout didn't trigger,
    // fall back after ~2.5s so the form isn't blocked.
    if (!isAjax) {
      setTimeout(submitNow, 2500);
    }
  });
});
</script>
<body>
	<header id="header">
		<nav class="desktop-only">
			<a href="/">
			<picture>
				<source media="(max-width: 750px)" srcset="/images/lockup.svg">
				<img class="lockup" src="/images/lockup.svg" title="barbarian." alt="barbarian.">
			</picture>
			
			</a>
			<a href="/about/">
			About
			</a>
			<a href="/work/">
			Work
			</a>
			<a href="/services/">
			Services
			</a>
			<a href="/newsroom/">
			Newsroom
			</a>
			<a href="#contact">
			Contact
			</a>
		</nav>
		<nav class="mobile-only">
		  <style id="panel-style">
		
		  </style>
		  <div class="navClosed">
		    
		    <a href="/" id="mobileLogo">
		      <picture>
		        <source media="(max-width:750px)" srcset="/images/lockup.svg">
		        <img class="lockup" src="/images/lockup.svg" title="barbarian." alt="barbarian.">
		      </picture>
		    </a>
		    
		    <button class="triggerMobileNav" data-action="openMenu">MENU</button>
		  </div>
		  <div class="mobileDropdown">
		    <div class="mobileNavHead">
		      
		      <a href="/" id="mobileLogoWhite">
		        <picture>
		          <source media="(max-width:750px)" srcset="/images/lockup-black.svg">
		          <img class="lockup" src="/images/lockup-black.svg" title="barbarian." alt="barbarian.">
		        </picture>
		      </a>
		      
		      <button class="triggerMobileNav" data-action="closeMenu">CLOSE</button>
		    </div>
		    <div class="mobileNavLinks">
		            
		      <span>
		        <a href="/about/">About</a>
		      </span>
		      
		      <span>
		        <a href="/work/">Work</a>
		      </span>
		      
		      <span>
		        <a href="/services/">Services</a>
		      </span>
		      
		      <span>
		        <a href="/newsroom/">Newsroom</a>
		      </span>
		      
		      <span>
		        <a href="#contact">Contact</a>
		      </span>
		    </div>
		    <div class="PanelsBG">
		      <div class="panel" data-height="65">
		        <div class="innerpanel"></div>
		      </div>
		      <div class="panel" data-height="63.5">
		        <div class="innerpanel"></div>
		      </div>
		      <div class="panel" data-height="66.5">
		        <div class="innerpanel"></div>
		      </div>
		      <div class="panel" data-height="62">
		        <div class="innerpanel"></div>
		      </div>
		    </div>
		  </div>
		</nav></header>
	<div id="smooth-wrapper">
		<div id="smooth-content">
			<div id="mcontent">
			<main id="home" class="site-content">
				<article class="foreground" id="foreground-home">


<div class="u-bg--black u-fullscreen loader">
  <div class="loader__box loader__box--orange">
    <div class="u-bg--orange loader__box-door loader__box-door--left loader__box-door--orange"></div>
    <div class="u-bg--orange loader__box-door loader__box-door--right loader__box-door--orange"></div>
  </div>
  <div class="loader__box loader__box--white">
    <div class="u-bg--white loader__box-door loader__box-door--left loader__box-door--white"></div>
    <div class="u-bg--white loader__box-door loader__box-door--right loader__box-door--white"></div>
  </div>
</div>

<div class="intro nh gradient-mesh">
  <div class="intro__inner u-fullscreen">

    <div class="gradient-mesh__wrapper">
      <img src="/images/intro-bg-full.png" width="2558" height="600" alt="Intro Decorative Background with gradients"
        class="gradient-mesh__asset" />
    </div>

    <div class="animatable-grid__wrapper desktop-only">
        <div id="intro-grid" class="animatable-grid u-fullscreen">
        <div class="animatable-grid__line-wrapper">
            <div class="animatable-grid__line animatable-grid__line--hor animatable-grid__line--top"></div>
            <div class="animatable-grid__line animatable-grid__line--hor animatable-grid__line--bottom"></div>
            <div class="animatable-grid__line animatable-grid__line--ver animatable-grid__line--left"></div>
            <div class="animatable-grid__line animatable-grid__line--ver animatable-grid__line--right"></div>
        </div>
        </div>
    </div>

    <div class="intro__inner-section intro__inner-section--logo u-fullscreen">
      <div class="intro__logo-wrapper u-fullscreen">
        <div class="intro__logo-img-container">
          <img class="intro__logo-img" src="/images/lockup.svg" alt="barbarian.">
        </div>
      </div>
    </div>

    <div class="intro__inner-section intro__inner-section--bio intro__inner-section--top u-fullscreen">
      <div class="intro__bio intro__inner-content u-flex-center u-fullscreen">
        <h1 class="intro__bio-title">A creative and <br class="mobile-only"> innovation agency.</h1>
      </div>
    </div>

    <div class="intro__inner-section intro__inner-section--bio u-fullscreen">
      <div class="intro__ethos intro__inner-content u-flex-center u-fullscreen">
        <h2 class="intro__ethos-main">We believe that everything in our world can be improved.</h2>
        <div class="intro__ethos-subs-wrapper">
          <p class="intro__ethos-sub">There&#x27;s always a smarter way to use technology.</p>
          <p class="intro__ethos-sub">There&#x27;s always a more creative way to engage and excite people.</p>
          <p class="intro__ethos-sub">Brands can always serve their customers better.</p>
        </div>
      </div>
    </div>

    <div class="intro__inner-section u-fullscreen">
      <div class="intro__motto intro__inner-content u-flex-center u-fullscreen" name="landing" id="landing">
        <div class="intro__motto-text" aria-label="We exist to find a better way.">
          <div class="intro__motto-text-part intro__motto-text-part--left">We <div class="intro__motto-img-wrapper"><div class="reveal-frame"><div class="reveal-frame__block"></div></div><img class="intro__motto-img" alt="HOF image 1" src="/images/_thumbnail1.jpg"><img class="intro__motto-img" alt="HOF image 2" src="/images/_thumbnail2.jpg"><img class="intro__motto-img" alt="HOF image 3" src="/images/_thumbnail3.jpg"><img class="intro__motto-img" alt="HOF image 4" src="/images/_thumbnail4.jpg"><img class="intro__motto-img" alt="HOF image 5" src="/images/_thumbnail5.jpg"><img class="intro__motto-img" alt="HOF image 6" src="/images/_thumbnail6.jpg"><img class="intro__motto-img" alt="" src="/images/_thumbnail7.jpg"></div> exist <br class='mobile-only'/> to find</div><div class="intro__motto-text-part intro__motto-text-part--right">a better way.</div>
        </div>
        <p class="intro__motto-caption">
          It&#x27;s what we&#x27;ve always done – blend strategy, storytelling, design and technology to find better ways for brands to interact with their customers.
        </p>
      </div>
    </div>
  </div>

  <div class="intro__screen-1"></div>
  <div class="intro__screen-2"></div>
  <div class="intro__screen-3"></div>
  <div class="intro__screen-4"></div>
  <div class="intro__screen-5"></div>
</div>

<section id="servicesLanding">
  <div class="sectionHead">
    <h3 class="glitchText fullWidth">Services</h3>
    <div class="subhead">
      <p class="mustache">A creative and innovation agency</p>
      <div class="desktop-only">
        <a class="cta" href="/services/">
          <!-- White circle for background animation -->
          <div class="cta-circle"></div>
        
          <!-- Text container with overflow hidden -->
          <div class="cta-text">
            <span class="cta-label cta-label-top">View All Services</span>
            <span class="cta-label cta-label-bottom">View All Services</span>
          </div>
        
          <!-- Arrow container with overflow hidden -->
          <div class="cta-arrow-container">
            <img src="/images/cta-arrow.svg" alt="arrow pointing up" class="cta-arrow cta-arrow-top">
            <img src="/images/cta-arrow.svg" alt="arrow pointing down" class="cta-arrow cta-arrow-bottom">
          </div>
        </a>      </div>
    </div>
  </div>

  <div class="text-icon-card__grid">
    <div class="desktop-only">
      <div class="step-cards__wrapper">
        <div class="step-cards__item" data-mt="0">
          <div class="text-icon-card__item">
            <div class="text-icon-card__item-copy">
              <h4 class="text-icon-card__item-title">Customer Experiences</h4>
              <p class="text-icon-card__item-desc">Elevating digital products and platforms to meet rapidly rising customer expectations</p>
            </div>
            <div class="text-icon-card__item-icon">
              <div class="iconWrap">
              	<canvas id="customer-experience_desktop"></canvas>
              </div>
            </div>
          </div>
        </div>
        <div class="step-cards__item" data-mt="128">
          <div class="text-icon-card__item">
            <div class="text-icon-card__item-copy">
              <h4 class="text-icon-card__item-title">Campaigns &amp; activations</h4>
              <p class="text-icon-card__item-desc">Engaging new and existing audiences in memorable and meaningful ways</p>
            </div>
            <div class="text-icon-card__item-icon">
              <div class="iconWrap">
              	<canvas id="campaign-n-activations_desktop"></canvas>
              </div>
            </div>
          </div>
        </div>
        <div class="step-cards__item" data-mt="256">
          <div class="text-icon-card__item">
            <div class="text-icon-card__item-copy">
              <h4 class="text-icon-card__item-title">Digital transformations</h4>
              <p class="text-icon-card__item-desc">Enabling teams and organizations to get more value out of their technologies</p>
            </div>
            <div class="text-icon-card__item-icon">
              <div class="iconWrap">
              	<canvas id="digital-transformations_desktop"></canvas>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="mobile-only">
      <div class="step-cards-mobile-container">
        <div class="step-cards-mobile-wrapper">
          <div class="step-cards-mobile-item">
            <div class="text-icon-card__item">
              <div class="text-icon-card__item-copy">
                <h4 class="text-icon-card__item-title">Customer Experiences</h4>
                <p class="text-icon-card__item-desc">Elevating digital products and platforms to meet rapidly rising customer expectations</p>
              </div>
              <div class="text-icon-card__item-icon">
                <div class="iconWrap">
                	<canvas id="customer-experience_mobile"></canvas>
                </div>
              </div>
            </div>
          </div>
          <div class="step-cards-mobile-item">
            <div class="text-icon-card__item">
              <div class="text-icon-card__item-copy">
                <h4 class="text-icon-card__item-title">Campaigns &amp; activations</h4>
                <p class="text-icon-card__item-desc">Engaging new and existing audiences in memorable and meaningful ways</p>
              </div>
              <div class="text-icon-card__item-icon">
                <div class="iconWrap">
                	<canvas id="campaign-n-activations_mobile"></canvas>
                </div>
              </div>
            </div>
          </div>
          <div class="step-cards-mobile-item">
            <div class="text-icon-card__item">
              <div class="text-icon-card__item-copy">
                <h4 class="text-icon-card__item-title">Digital transformations</h4>
                <p class="text-icon-card__item-desc">Enabling teams and organizations to get more value out of their technologies</p>
              </div>
              <div class="text-icon-card__item-icon">
                <div class="iconWrap">
                	<canvas id="digital-transformations_mobile"></canvas>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="mobile-cta">
        <a class="cta" href="/services/">
          <!-- White circle for background animation -->
          <div class="cta-circle"></div>
        
          <!-- Text container with overflow hidden -->
          <div class="cta-text">
            <span class="cta-label cta-label-top">View All Services</span>
            <span class="cta-label cta-label-bottom">View All Services</span>
          </div>
        
          <!-- Arrow container with overflow hidden -->
          <div class="cta-arrow-container">
            <img src="/images/cta-arrow.svg" alt="arrow pointing up" class="cta-arrow cta-arrow-top">
            <img src="/images/cta-arrow.svg" alt="arrow pointing down" class="cta-arrow cta-arrow-bottom">
          </div>
        </a>      </div>
    </div>
  </div>
</section>

<section id="workLanding">
  <div class="sectionHead falldown">
    <h3 class="glitchText splitText">Featured<br>Work</h3>
    <div class="desktop-only">
      <a class="cta" href="/work/">
        <!-- White circle for background animation -->
        <div class="cta-circle"></div>
      
        <!-- Text container with overflow hidden -->
        <div class="cta-text">
          <span class="cta-label cta-label-top">View All Work</span>
          <span class="cta-label cta-label-bottom">View All Work</span>
        </div>
      
        <!-- Arrow container with overflow hidden -->
        <div class="cta-arrow-container">
          <img src="/images/cta-arrow.svg" alt="arrow pointing up" class="cta-arrow cta-arrow-top">
          <img src="/images/cta-arrow.svg" alt="arrow pointing down" class="cta-arrow cta-arrow-bottom">
        </div>
      </a>    </div>
  </div>
  <div class="showcase-grid">
    <div class="showcase-grid__item">
      <div class="showcase-card">
        <span class="showcase-card__link">
          <div class="showcase-card__img-wrapper parallax__wrapper" data-orientation="up" data-scale="1.1"
            data-delay="1">
            <img class="showcase-card__img parallax__element" src="/images/work-landing-amex.png" alt="">
          </div>
          <div class="showcase-card__copy" data-varied-speed="0.5"
            data-start="top bottom" data-end="bottom top">
            <h4 class="showcase-card__title">
              American Express Music Tastes
            </h4>
            <div class="showcase-card__desc">
              <p>Partnered with Amex, Resy & Spotify to cook up an engaging way to use your most-played tracks to inform a personalized taste profile and restaurant recommendation.</p>
            </div>
          </div>
        </span>
      </div>
    </div>
    <div class="showcase-grid__item">
      <div class="showcase-card">
        <span class="showcase-card__link">
          <div class="showcase-card__img-wrapper parallax__wrapper" data-orientation="up" data-scale="1.1"
            data-delay="1">
            <img class="showcase-card__img parallax__element" src="/images/work-landing-reelwild.png" alt="">
          </div>
          <div class="showcase-card__copy" data-varied-speed="0.5"
            data-start="top bottom" data-end="bottom top">
            <h4 class="showcase-card__title">
              Reel Wild Film Festival Launch
            </h4>
            <div class="showcase-card__desc">
              <p>Partnered with Wildlife Conservation Society to rebrand their new annual NY film festival supporting wild life and wild places. </p>
            </div>
          </div>
        </span>
      </div>
    </div>
    <div class="showcase-grid__item">
      <div class="showcase-card">
        <span class="showcase-card__link">
          <div class="showcase-card__img-wrapper parallax__wrapper" data-orientation="up" data-scale="1.1"
            data-delay="1">
            <img class="showcase-card__img parallax__element" src="/images/work-landing-samsung.png" alt="">
          </div>
          <div class="showcase-card__copy" data-varied-speed="0.5"
            data-start="top bottom" data-end="bottom top">
            <h4 class="showcase-card__title">
              Samsung Galaxy S25 Series Launch
            </h4>
            <div class="showcase-card__desc">
              <p>Partnered with Samsung Global to concept, design and launch the end-to-end digital landing experience for the new Galaxy S25 series.</p>
            </div>
          </div>
        </span>
      </div>
    </div>
    <div class="mobile-cta mobile-only">
      <a class="cta" href="/work/">
        <!-- White circle for background animation -->
        <div class="cta-circle"></div>
      
        <!-- Text container with overflow hidden -->
        <div class="cta-text">
          <span class="cta-label cta-label-top">View All Work</span>
          <span class="cta-label cta-label-bottom">View All Work</span>
        </div>
      
        <!-- Arrow container with overflow hidden -->
        <div class="cta-arrow-container">
          <img src="/images/cta-arrow.svg" alt="arrow pointing up" class="cta-arrow cta-arrow-top">
          <img src="/images/cta-arrow.svg" alt="arrow pointing down" class="cta-arrow cta-arrow-bottom">
        </div>
      </a>    </div>
    <div id="reg1" class="regmark full">
      <img src="/images/regmark.svg" alt="Decorative Plus Symbol" width="60" height="60">
    </div>    <div id="reg2" class="regmark full">
      <img src="/images/regmark.svg" alt="Decorative Plus Symbol" width="60" height="60">
    </div>    <div id="reg3" class="regmark full">
      <img src="/images/regmark.svg" alt="Decorative Plus Symbol" width="60" height="60">
    </div>    <div id="reg4" class="regmark full">
      <img src="/images/regmark.svg" alt="Decorative Plus Symbol" width="60" height="60">
    </div>  </div>
</section>

<section id="newsLanding">
  <div class="sectionHead sidetoside">
    <div>
      <span class="spacerHeadline">
        <span class="spacers">
          <span class="spacer spacer-xl" data-width-percentage="12"></span>
          <span class="spacer spacer-l" data-width-percentage="7"></span>
          <span class="spacer spacer-m" data-width-percentage="3"></span>
          <span class="spacer spacer-s" data-width-percentage="1.3"></span>
        </span>
        <h3 class="glitchText">Latest</h3>
        <span class="spacers">
          <span class="spacer spacer-s" data-width-percentage="1.3"></span>
          <span class="spacer spacer-m" data-width-percentage="3"></span>
          <span class="spacer spacer-l" data-width-percentage="7"></span>
          <span class="spacer spacer-xl" data-width-percentage="12"></span>
        </span>
      </span>
      <br>
      <h3 class="glitchText">News</h3>
    </div>
  </div>
  <div class="news-card__grid">
    <div class="news-card">
      <a href="/newsroom/barbarian-builds-on-reel-wild-partnership-with-nyc" target="_self" class="news-card__link">
        <div class="news-card__img-wrapper">
          <div class="parallax__wrapper" data-orientation="down" data-scale="1.2" data-delay="1" data-distance="50">
            <img class="news-card__img parallax__element" src="/images/news-reel-wild.jpg" alt="">
          </div>
        </div>
        <div class="news-card__copy" data-varied-speed="0.35">
          <p class="news-card__date">04.03.26</p>
          <h4 class="news-card__title">Barbarian Builds on REEL WILD Partnership with NYC OOH Campaign</h4>
          <p class="news-card__desc"></p>
        </div>
      </a>
    </div>
    <div class="news-card">
      <a href="/newsroom/the-interaction-gap-in-ecommerce" target="_self" class="news-card__link">
        <div class="news-card__img-wrapper">
          <div class="parallax__wrapper" data-orientation="down" data-scale="1.2" data-delay="1" data-distance="50">
            <img class="news-card__img parallax__element" src="/images/interaction.jpg" alt="">
          </div>
        </div>
        <div class="news-card__copy" data-varied-speed="0.35">
          <p class="news-card__date">03.19.26</p>
          <h4 class="news-card__title">The Interaction Gap in Ecommerce</h4>
          <p class="news-card__desc">Why Shoppers Expect More Than Brand Websites Deliver</p>
        </div>
      </a>
    </div>
    <div class="news-card">
      <a href="/newsroom/barbarian-welcomes-leader-of-creative-tech-and-ai" target="_self" class="news-card__link">
        <div class="news-card__img-wrapper">
          <div class="parallax__wrapper" data-orientation="down" data-scale="1.2" data-delay="1" data-distance="50">
            <img class="news-card__img parallax__element" src="/images/creative-tech.jpg" alt="">
          </div>
        </div>
        <div class="news-card__copy" data-varied-speed="0.35">
          <p class="news-card__date">03.18.26</p>
          <h4 class="news-card__title">Barbarian Welcomes Leader of Creative Tech and AI </h4>
          <p class="news-card__desc"></p>
        </div>
      </a>
    </div>
  </div>
</section>




</article>
<div id="stepMask-footer" class="stepMask">
	<div class="step1 step" data-final-height="100"></div>
	<div class="step2 step" data-final-height="50"></div>
	<div class="step3 step" data-final-height="70"></div>
	<div class="step4 step" data-final-height="20"></div>
</div>
</main>
</div>
<footer id="footer">
  <div id="gradientBG">
  <canvas id="gradient-canvas" data-transition-in>
  <script type="module">import { Gradient } from '/lib/gradient.js';const gradient = new Gradient();gradient.initGradient('#gradient-canvas');</script>
  </div>
  <div id="mainFooter">
    <div id="contactForm">
      <h5>Let's talk.</h5>
			<script src="https://js.hsforms.net/forms/embed/developer/50379786.js" defer></script>
			<div class="hs-form-html" data-region="na1" data-form-id="71995043-e381-4073-a9d6-ab1e001474e1" data-portal-id="50379786"></div>		<script>
		/**
		 * HubSpot Form submit button enhancement
		 * - Waits for HubSpot's dynamic markup to render
		 * - Keeps HubSpot submit functionality intact (does NOT replace the <button>)
		 * - Adds wrapper + classes for styling and injects inner markup into the existing button
		 */
		(() => {
		  const WRAPPER_CLASSES = "mc-field-group full submit-button";
		  const BUTTON_CLASSES = "cta";
		  const BUTTON_ID = "mc-embedded-subscribe"; // optional; remove if you don't want to force an ID
		
		  // Markup to inject *inside* the existing HubSpot <button type="submit">...</button>
		  const INNER_HTML = `
		    <div class="cta-circle"></div>
		    <div class="cta-text">
		      <span class="cta-label cta-label-top">Submit</span>
		      <span class="cta-label cta-label-bottom">Submit</span>
		    </div>
		    <div class="cta-arrow-container">
		      <img src="/images/cta-arrow.svg" alt="arrow pointing up" class="cta-arrow cta-arrow-top">
		      <img src="/images/cta-arrow.svg" alt="arrow pointing down" class="cta-arrow cta-arrow-bottom">
		    </div>
		  `;
		
		  // Prefer a resilient selector: any submit button inside a HubSpot form container
		  const findSubmitButton = (root = document) =>
		    root.querySelector(
		      'form button[type="submit"].hsfc-Button, form button[type="submit"][data-hsfc-id="Button"], form button[type="submit"]'
		    );
		
		  // Track when form appears and wait for React hydration
		  let formFirstSeen = null;
		  let hydrationTimeout = null;
		  let isReady = false;
		
		  // Wait for React hydration to complete
		  const waitForHydration = () => {
		    const form = document.querySelector('[data-hsfc-id="Renderer"]');
		    const now = Date.now();
		    
		    if (form && !formFirstSeen) {
		      formFirstSeen = now;
		      
		      // Wait 2 seconds after form appears to ensure React hydration is complete
		      // Use multiple requestAnimationFrame calls to ensure we're after React's render cycle
		      hydrationTimeout = setTimeout(() => {
		        // Use requestIdleCallback if available, otherwise use multiple RAFs
		        if (window.requestIdleCallback) {
		          requestIdleCallback(() => {
		            requestAnimationFrame(() => {
		              isReady = true;
		              const btn = findSubmitButton();
		              if (btn) enhanceButton(btn);
		            });
		          });
		        } else {
		          // Use multiple RAFs to ensure we're after React's render
		          requestAnimationFrame(() => {
		            requestAnimationFrame(() => {
		              requestAnimationFrame(() => {
		                isReady = true;
		                const btn = findSubmitButton();
		                if (btn) enhanceButton(btn);
		              });
		            });
		          });
		        }
		      }, 2000);
		    }
		  };
		
		  const enhanceButton = (btn) => {
		    if (!btn || btn.dataset.ctaEnhanced === "true") return false;
		
		    // If not ready yet, defer enhancement
		    if (!isReady) {
		      const timeSinceFormSeen = formFirstSeen ? Date.now() - formFirstSeen : 0;
		      
		      // If it's been more than 2.5 seconds, go ahead anyway
		      if (timeSinceFormSeen > 2500) {
		        isReady = true;
		      } else {
		        return false;
		      }
		    }
		
		    // Keep original text for fallback/aria; use it as the label content.
		    const originalLabel = (btn.textContent || "Submit").trim() || "Submit";
		
		    // Apply/append button classes (don’t remove HubSpot classes).
		    btn.classList.add(...BUTTON_CLASSES.split(" ").filter(Boolean));
		
		    // Optional: set a stable id for CSS hooks (safe unless you rely on the old id elsewhere).
		    if (BUTTON_ID) btn.id = BUTTON_ID;
		
		    // Accessibility: preserve a readable name even if CSS animates/hides the spans
		    btn.setAttribute("aria-label", originalLabel);
		
		    // Inject markup into the existing button (retain the button node => HubSpot bindings stay intact)
		    btn.innerHTML = INNER_HTML
		      .replaceAll("Submit", escapeHtml(originalLabel));
		
		    // Wrap the existing button with your desired wrapper DIV (again, keep button node intact)
		    const parent = btn.parentElement;
		    if (parent && !parent.classList.contains("mc-field-group")) {
		      const wrapper = document.createElement("div");
		      wrapper.className = WRAPPER_CLASSES;
		
		      parent.insertBefore(wrapper, btn);
		      wrapper.appendChild(btn);
		    } else if (parent) {
		      // If HubSpot re-used an existing container, ensure classes are present
		      WRAPPER_CLASSES.split(" ").forEach((c) => c && parent.classList.add(c));
		    }
		
		    btn.dataset.ctaEnhanced = "true";
		    
		    // Initialize CTA hover animations for this dynamically injected button
		    // Wait a tick to ensure DOM is fully updated
		    requestAnimationFrame(() => {
		      // Try window.initCtaAnimations first (exposed globally), then fallback to direct reference
		      const initFn = (typeof window !== 'undefined' && window.initCtaAnimations) || (typeof initCtaAnimations !== 'undefined' ? initCtaAnimations : null);
		      if (initFn && typeof initFn === 'function') {
		        initFn(btn);
		      } else {
		        // Fallback: try calling ctas() if initCtaAnimations isn't available yet
		        const ctasFn = (typeof window !== 'undefined' && window.ctas) || (typeof ctas !== 'undefined' ? ctas : null);
		        if (ctasFn && typeof ctasFn === 'function') {
		          ctasFn();
		        }
		      }
		    });
		    
		    return true;
		  };
		
		  // Basic HTML escaping for label injection into spans
		  const escapeHtml = (s) =>
		    String(s)
		      .replaceAll("&", "&amp;")
		      .replaceAll("<", "&lt;")
		      .replaceAll(">", "&gt;")
		      .replaceAll('"', "&quot;")
		      .replaceAll("'", "&#039;");
		
		  // Check for form on initial load
		  waitForHydration();
		
		  // Attempt immediately only if form has been ready for a while
		  const initialBtn = findSubmitButton();
		  if (initialBtn && isReady && enhanceButton(initialBtn)) return;
		
		  // Observe DOM until the button appears (or re-appears after HubSpot re-render)
		  const observer = new MutationObserver((mutations) => {
		    // Check for form appearance on each mutation
		    waitForHydration();
		
		    for (const m of mutations) {
		      // Check added nodes for a submit button quickly
		      for (const node of m.addedNodes) {
		        if (!(node instanceof HTMLElement)) continue;
		
		        // If the node itself is a submit button
		        if (node.matches?.('button[type="submit"]')) {
		          if (enhanceButton(node)) return;
		        }
		
		        // Or contains one
		        const btn = findSubmitButton(node);
		        if (btn && enhanceButton(btn)) return;
		      }
		    }
		
		    // Fallback: global query (covers attribute changes / deep renders)
		    // Only enhance if we're ready (React hydration complete)
		    if (isReady) {
		      const btn = findSubmitButton();
		      if (btn) enhanceButton(btn);
		    }
		  });
		
		  observer.observe(document.documentElement, {
		    childList: true,
		    subtree: true
		  });
		
		  // Optional hard stop after N seconds to avoid running forever
		  window.setTimeout(() => {
		    observer.disconnect();
		    if (hydrationTimeout) clearTimeout(hydrationTimeout);
		    // Final attempt to enhance if not done yet
		    if (!isReady) {
		      isReady = true;
		      const btn = findSubmitButton();
		      if (btn) enhanceButton(btn);
		    }
		  }, 30000);
		})();
		</script>
    </div>
    <div id="address">
      <p>Penn 1<br>New York, <br class='mobile-only'>NY 10119</p>
      <p>Auro Orbit<br>Hyderabad, <br class='mobile-only'>IN 500032</p>
    </div>
  </div>
  <div id="footerLinks">
    <p><a target="_blank" href="https://job-boards.greenhouse.io/barbarian">Careers</a></p>
    <p>© 2026 The Barbarian Group</p>
    <p>
      <a target="_blank" href="https://www.linkedin.com/company/barbarian/">LinkedIn</a>
      <a target="_blank" href="https://www.instagram.com/wearebarbarian/">Instagram</a>
      <a target="_blank" href="https://vimeo.com/wearebarbarian">Vimeo</a>
    </p>
  </div>
</footer>
</div>
</div>
<div id="transition-overlay"></div>
<script src="/lib/gsap/gsap.min.js"></script>
<script src="/lib/gsap/ScrollTrigger.min.js"></script>
<script src="/lib/gsap/ScrollSmoother.min.js"></script>
<script src="/lib/gsap/SplitText.min.js"></script>
<script src="/lib/gsap/ScrollToPlugin.min.js"></script>
<script src="/lib/gsap/CSSRulePlugin.min.js"></script>
<script src="/script.min.js"></script>
<!-- Start of HubSpot Embed Code -->
<script type="text/javascript" id="hs-script-loader" async defer src="//js-na1.hs-scripts.com/50379786.js"></script>
<!-- End of HubSpot Embed Code -->
</body>

</html>
<!--


 _                _                _
| |              | |              (_)
| |__   __ _ _ __| |__   __ _ _ __ _  __ _ _ __
| '_ \ / _` | '__| '_ \ / _` | '__| |/ _` | '_ \
| |_) | (_| | |  | |_) | (_| | |  | | (_| | | | |_
|_.__/ \__,_|_|  |_.__/ \__,_|_|  |_|\__,_|_| |_(_)


“The struggle itself towards the heights is enough to fill a man's heart. One must imagine Sisyphus happy.”
― Albert Camus

-->
