{"id":806,"date":"2026-10-14T21:51:19","date_gmt":"2026-10-14T21:51:19","guid":{"rendered":"https:\/\/bipolar.mx\/?page_id=806"},"modified":"2026-10-20T23:05:12","modified_gmt":"2026-10-20T23:05:12","slug":"home-2026","status":"publish","type":"page","link":"https:\/\/bipolar.mx\/es\/","title":{"rendered":"Home 2026"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"806\" class=\"elementor elementor-806\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-718ebc8b e-con-full bplr-global-header e-flex e-con e-parent\" data-id=\"718ebc8b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;position&quot;:&quot;fixed&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-6946ffdf bplr-header-left e-flex e-con-boxed e-con e-child\" data-id=\"6946ffdf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ee2ac1b elementor-widget__width-auto elementor-widget elementor-widget-image\" data-id=\"6ee2ac1b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\/\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"768\" height=\"227\" src=\"https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/BPLR_05-copy-768x227.png\" class=\"attachment-medium_large size-medium_large wp-image-808\" alt=\"\" srcset=\"https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/BPLR_05-copy-768x227.png 768w, https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/BPLR_05-copy-300x89.png 300w, https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/BPLR_05-copy-1024x302.png 1024w, https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/BPLR_05-copy-1536x453.png 1536w, https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/BPLR_05-copy-18x5.png 18w, https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/BPLR_05-copy-600x177.png 600w, https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/BPLR_05-copy.png 1583w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-57b42a11 e-con-full elementor-hidden-mobile bplr-header-center e-flex e-con e-child\" data-id=\"57b42a11\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5130789b elementor-widget elementor-widget-heading\" data-id=\"5130789b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"\/about\/\">ABOUT<\/a><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4799d9b5 elementor-widget elementor-widget-heading\" data-id=\"4799d9b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/bipolar.mx\/work\/\">WORK<\/a><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1be121ac elementor-widget elementor-widget-heading\" data-id=\"1be121ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/bipolar.mx\/join\/\">JOIN US<\/a><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d2dbd7b elementor-hidden-desktop bplr-header-right e-flex e-con-boxed e-con e-child\" data-id=\"d2dbd7b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15857620 bplr-header-menu elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"15857620\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<i aria-hidden=\"true\" class=\"ion ion-ios-menu\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b6cbf40 elementor-widget elementor-widget-html\" data-id=\"3b6cbf40\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\n\/* =========================================================\n   HEADER GLOBAL \u2014 BASE ESTABLE\n========================================================= *\/\n\n.bplr-global-header {\n\n  position: fixed !important;\n\n  top: 0 !important;\n  left: 0 !important;\n  right: 0 !important;\n\n  display: flex !important;\n\n  width: 100vw !important;\n  max-width: 100vw !important;\n\n  min-height: 82px !important;\n\n  margin: 0 !important;\n\n  box-sizing: border-box !important;\n\n  background: #000 !important;\n\n  opacity: 1 !important;\n  visibility: visible !important;\n\n  transform:\n    translate3d(0,0,0) !important;\n\n  pointer-events: auto !important;\n\n  overflow: visible !important;\n\n  z-index: 999999 !important;\n\n  transition:\n    transform .46s cubic-bezier(.22,.7,.25,1) !important;\n\n}\n\n\n\/* =========================================================\n   FORCE CHILDREN VISIBLE\n========================================================= *\/\n\n.bplr-global-header\n.bplr-header-left,\n\n.bplr-global-header\n.bplr-header-center,\n\n.bplr-global-header\n.bplr-header-right {\n\n  opacity: 1 !important;\n  visibility: visible !important;\n\n}\n\n\n\n\/* =========================================================\n   DESKTOP\n========================================================= *\/\n\n@media (min-width:1181px) {\n\n  .bplr-global-header {\n\n    min-height:\n      84px !important;\n\n    padding:\n      0 13.5vw !important;\n\n    display:\n      grid !important;\n\n    grid-template-columns:\n      1fr auto 1fr !important;\n\n    align-items:\n      center !important;\n\n    column-gap:\n      0 !important;\n\n  }\n\n\n  .bplr-header-left {\n\n    grid-column:\n      1 !important;\n\n    justify-self:\n      start !important;\n\n    align-self:\n      center !important;\n\n    display:\n      flex !important;\n\n    width:\n      auto !important;\n\n    max-width:\n      none !important;\n\n    min-width:\n      0 !important;\n\n    flex:\n      0 0 auto !important;\n\n    margin:\n      0 !important;\n\n    padding:\n      0 !important;\n\n  }\n\n\n  .bplr-header-left\n  .elementor-widget-image {\n\n    display:\n      block !important;\n\n    width:\n      auto !important;\n\n    max-width:\n      none !important;\n\n    margin:\n      0 !important;\n\n    padding:\n      0 !important;\n\n  }\n\n\n  .bplr-header-left img {\n\n    display:\n      block !important;\n\n    width:\n      clamp(\n        108px,\n        7.2vw,\n        128px\n      ) !important;\n\n    max-width:\n      none !important;\n\n    height:\n      auto !important;\n\n    opacity:\n      1 !important;\n\n    visibility:\n      visible !important;\n\n    object-fit:\n      contain !important;\n\n  }\n\n\n  .bplr-header-center {\n\n    grid-column:\n      2 !important;\n\n    justify-self:\n      center !important;\n\n    align-self:\n      center !important;\n\n    display:\n      flex !important;\n\n    flex-direction:\n      row !important;\n\n    align-items:\n      center !important;\n\n    justify-content:\n      center !important;\n\n    flex-wrap:\n      nowrap !important;\n\n    width:\n      auto !important;\n\n    max-width:\n      none !important;\n\n    height:\n      auto !important;\n\n    margin:\n      0 !important;\n\n    padding:\n      0 !important;\n\n    gap:\n      clamp(\n        24px,\n        2vw,\n        36px\n      ) !important;\n\n  }\n\n\n  .bplr-header-center >\n  .elementor-element {\n\n    display:\n      block !important;\n\n    width:\n      auto !important;\n\n    max-width:\n      none !important;\n\n    flex:\n      0 0 auto !important;\n\n    margin:\n      0 !important;\n\n    padding:\n      0 !important;\n\n  }\n\n\n  .bplr-header-center\n  .elementor-heading-title {\n\n    display:\n      block !important;\n\n    margin:\n      0 !important;\n\n    opacity:\n      1 !important;\n\n    visibility:\n      visible !important;\n\n    white-space:\n      nowrap !important;\n\n  }\n\n\n  .bplr-header-right {\n\n    display:\n      none !important;\n\n  }\n\n}\n\n\n\n\/* =========================================================\n   TABLET + MOBILE\n========================================================= *\/\n\n@media (max-width:1180px) {\n\n  .bplr-global-header {\n\n    min-height:\n      82px !important;\n\n    padding:\n      0 7vw !important;\n\n    display:\n      flex !important;\n\n    flex-direction:\n      row !important;\n\n    align-items:\n      center !important;\n\n    justify-content:\n      space-between !important;\n\n    gap:\n      0 !important;\n\n  }\n\n\n  .bplr-header-left {\n\n    display:\n      flex !important;\n\n    width:\n      auto !important;\n\n    max-width:\n      none !important;\n\n    height:\n      auto !important;\n\n    flex:\n      0 0 auto !important;\n\n    align-items:\n      center !important;\n\n    margin:\n      0 !important;\n\n    padding:\n      0 !important;\n\n  }\n\n\n  .bplr-header-left\n  .elementor-widget-image {\n\n    display:\n      block !important;\n\n    width:\n      auto !important;\n\n    margin:\n      0 !important;\n\n    padding:\n      0 !important;\n\n  }\n\n\n  .bplr-header-left img {\n\n    display:\n      block !important;\n\n    width:\n      clamp(\n        96px,\n        11vw,\n        112px\n      ) !important;\n\n    max-width:\n      none !important;\n\n    height:\n      auto !important;\n\n    opacity:\n      1 !important;\n\n    visibility:\n      visible !important;\n\n    object-fit:\n      contain !important;\n\n  }\n\n\n  .bplr-header-center {\n\n    display:\n      none !important;\n\n    width:\n      0 !important;\n\n    max-width:\n      0 !important;\n\n    height:\n      0 !important;\n\n    min-height:\n      0 !important;\n\n    margin:\n      0 !important;\n\n    padding:\n      0 !important;\n\n    overflow:\n      hidden !important;\n\n    pointer-events:\n      none !important;\n\n  }\n\n\n  .bplr-header-right {\n\n    position:\n      relative !important;\n\n    display:\n      flex !important;\n\n    width:\n      auto !important;\n\n    max-width:\n      none !important;\n\n    height:\n      auto !important;\n\n    flex:\n      0 0 auto !important;\n\n    align-items:\n      center !important;\n\n    justify-content:\n      flex-end !important;\n\n    margin:\n      0 !important;\n\n    padding:\n      0 !important;\n\n    opacity:\n      1 !important;\n\n    visibility:\n      visible !important;\n\n    z-index:\n      1000001 !important;\n\n  }\n\n\n  .bplr-header-right\n  .elementor-widget-icon,\n\n  .bplr-header-right\n  .elementor-icon {\n\n    display:\n      flex !important;\n\n    opacity:\n      1 !important;\n\n    visibility:\n      visible !important;\n\n  }\n\n}\n\n\n\n\/* =========================================================\n   HTML WIDGET OUT OF LAYOUT\n========================================================= *\/\n\n.bplr-global-header >\n.elementor-widget-html {\n\n  position:\n    absolute !important;\n\n  left:\n    0 !important;\n\n  bottom:\n    0 !important;\n\n  width:\n    1px !important;\n\n  height:\n    1px !important;\n\n  min-width:\n    1px !important;\n\n  min-height:\n    1px !important;\n\n  margin:\n    0 !important;\n\n  padding:\n    0 !important;\n\n  overflow:\n    visible !important;\n\n  pointer-events:\n    none !important;\n\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n  function recoverBPLRHeader() {\n\n    const left =\n      document.querySelector(\n        '.bplr-header-left'\n      );\n\n\n    if (!left) return;\n\n\n    let candidate =\n      left.parentElement;\n\n\n    let header =\n      null;\n\n\n    while (\n      candidate &&\n      candidate !==\n      document.body\n    ) {\n\n      const hasLeft =\n        candidate.querySelector(\n          '.bplr-header-left'\n        );\n\n\n      const hasRight =\n        candidate.querySelector(\n          '.bplr-header-right'\n        );\n\n\n      if (\n        hasLeft &&\n        hasRight\n      ) {\n\n        header =\n          candidate;\n\n        break;\n\n      }\n\n\n      candidate =\n        candidate.parentElement;\n\n    }\n\n\n    if (!header) return;\n\n\n    header.classList.add(\n      'bplr-global-header'\n    );\n\n\n    header.classList.remove(\n      'header-hidden',\n      'header-visible',\n      'header-intro-hidden',\n      'header-scroll-hidden'\n    );\n\n\n    header.style.removeProperty(\n      'display'\n    );\n\n    header.style.removeProperty(\n      'opacity'\n    );\n\n    header.style.removeProperty(\n      'visibility'\n    );\n\n    header.style.removeProperty(\n      'transform'\n    );\n\n    header.style.removeProperty(\n      'position'\n    );\n\n    header.style.removeProperty(\n      'top'\n    );\n\n  }\n\n\n  function start() {\n\n    recoverBPLRHeader();\n\n\n    setTimeout(\n      recoverBPLRHeader,\n      250\n    );\n\n\n    setTimeout(\n      recoverBPLRHeader,\n      700\n    );\n\n  }\n\n\n  if (\n    document.readyState ===\n    'loading'\n  ) {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      start\n    );\n\n  }\n\n  else {\n\n    start();\n\n  }\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-55ad9fd elementor-widget elementor-widget-html\" data-id=\"55ad9fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\n\/* =========================================================\n   HEADER SCROLL STATE\n\n   IMPORTANTE:\n   NO ALTERA OPACITY.\n   NO ALTERA DISPLAY.\n   SOLO MUEVE EL HEADER HACIA ARRIBA.\n========================================================= *\/\n\n.bplr-global-header.header-scroll-hidden {\n\n  transform:\n    translate3d(0,-110%,0) !important;\n\n  opacity:\n    1 !important;\n\n  visibility:\n    visible !important;\n\n}\n\n\n\/* =========================================================\n   CUANDO EST\u00c1 VISIBLE\n========================================================= *\/\n\n.bplr-global-header:not(.header-scroll-hidden) {\n\n  transform:\n    translate3d(0,0,0) !important;\n\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n  function initBPLRHeaderScroll() {\n\n    const header =\n      document.querySelector(\n        '.bplr-global-header'\n      );\n\n\n    if (!header) {\n\n      return;\n\n    }\n\n\n    \/* =====================================================\n       LIMPIAR LISTENER ANTERIOR\n       SI ELEMENTOR REEJECUTA EL WIDGET\n    ===================================================== *\/\n\n    if (\n      window.__bplrHeaderScrollHandler\n    ) {\n\n      window.removeEventListener(\n        'scroll',\n        window.__bplrHeaderScrollHandler\n      );\n\n    }\n\n\n    \/* =====================================================\n       ESTADO INICIAL\n    ===================================================== *\/\n\n    header.classList.remove(\n      'header-scroll-hidden'\n    );\n\n\n    let lastY =\n      window.scrollY;\n\n\n    let accumulator =\n      0;\n\n\n    let lastDirection =\n      null;\n\n\n    let ticking =\n      false;\n\n\n\n    \/* =====================================================\n       UPDATE\n    ===================================================== *\/\n\n    function update() {\n\n      const y =\n        window.scrollY;\n\n\n      const delta =\n        y - lastY;\n\n\n\n      \/* =================================================\n         CERCA DEL TOP = SIEMPRE VISIBLE\n      ================================================= *\/\n\n      if (\n        y <= 80\n      ) {\n\n        header.classList.remove(\n          'header-scroll-hidden'\n        );\n\n\n        accumulator =\n          0;\n\n\n        lastDirection =\n          null;\n\n\n        lastY =\n          y;\n\n\n        ticking =\n          false;\n\n\n        return;\n\n      }\n\n\n\n      \/* =================================================\n         MENU ABIERTO = SIEMPRE VISIBLE\n      ================================================= *\/\n\n      if (\n        document.body.classList\n          .contains(\n            'mobile-menu-open'\n          )\n      ) {\n\n        header.classList.remove(\n          'header-scroll-hidden'\n        );\n\n\n        accumulator =\n          0;\n\n\n        lastY =\n          y;\n\n\n        ticking =\n          false;\n\n\n        return;\n\n      }\n\n\n\n      \/* =================================================\n         DOWN\n      ================================================= *\/\n\n      if (\n        delta > 0\n      ) {\n\n        if (\n          lastDirection !==\n          'down'\n        ) {\n\n          accumulator =\n            0;\n\n        }\n\n\n        lastDirection =\n          'down';\n\n\n        accumulator +=\n          delta;\n\n\n        \/*\n          NO OCULTAMOS CON MICRO MOVIMIENTOS.\n          EL USUARIO DEBE BAJAR ~24PX.\n        *\/\n\n        if (\n          accumulator >= 24 &&\n          y > 130\n        ) {\n\n          header.classList.add(\n            'header-scroll-hidden'\n          );\n\n\n          accumulator =\n            0;\n\n        }\n\n      }\n\n\n\n      \/* =================================================\n         UP\n      ================================================= *\/\n\n      else if (\n        delta < 0\n      ) {\n\n        if (\n          lastDirection !==\n          'up'\n        ) {\n\n          accumulator =\n            0;\n\n        }\n\n\n        lastDirection =\n          'up';\n\n\n        accumulator +=\n          Math.abs(\n            delta\n          );\n\n\n        \/*\n          AL SUBIR RESPONDE M\u00c1S R\u00c1PIDO.\n        *\/\n\n        if (\n          accumulator >= 10\n        ) {\n\n          header.classList.remove(\n            'header-scroll-hidden'\n          );\n\n\n          accumulator =\n            0;\n\n        }\n\n      }\n\n\n      lastY =\n        y;\n\n\n      ticking =\n        false;\n\n    }\n\n\n\n    \/* =====================================================\n       HANDLER GLOBAL\n    ===================================================== *\/\n\n    window.__bplrHeaderScrollHandler =\n      function () {\n\n        if (!ticking) {\n\n          ticking =\n            true;\n\n\n          requestAnimationFrame(\n            update\n          );\n\n        }\n\n      };\n\n\n    window.addEventListener(\n\n      'scroll',\n\n      window.__bplrHeaderScrollHandler,\n\n      {\n        passive:\n          true\n      }\n\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     ESPERAMOS A QUE EL SCRIPT DE RECOVERY\n     TERMINE DE IDENTIFICAR EL HEADER.\n  ===================================================== *\/\n\n  function start() {\n\n    setTimeout(\n      initBPLRHeaderScroll,\n      850\n    );\n\n  }\n\n\n  if (\n    document.readyState ===\n    'loading'\n  ) {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      start\n    );\n\n  }\n\n  else {\n\n    start();\n\n  }\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-268cb2d0 elementor-widget elementor-widget-html\" data-id=\"268cb2d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     BPLR MOBILE \/ TABLET MENU\n========================================================= -->\n\n<div\n  id=\"bplr-case-mobile-menu\"\n  class=\"bplr-mobile-menu\"\n  aria-hidden=\"true\"\n>\n\n  <div class=\"bplr-menu-nav\">\n\n    <a\n      href=\"#\"\n      data-home-anchor=\"about\"\n    >\n      ABOUT\n    <\/a>\n\n    <a\n      href=\"#\"\n      data-home-anchor=\"work\"\n    >\n      WORK\n    <\/a>\n\n    <a\n      href=\"#\"\n      data-home-anchor=\"join\"\n    >\n      JOIN US\n    <\/a>\n\n  <\/div>\n\n\n  <div class=\"bplr-menu-bottom\">\n\n\n    <!-- SOCIAL -->\n\n    <div class=\"bplr-menu-social\">\n\n\n      <a\n        href=\"#\"\n        aria-label=\"Instagram\"\n        class=\"social-box\"\n      >\n\n        <svg\n          viewBox=\"0 0 24 24\"\n          aria-hidden=\"true\"\n        >\n          <rect\n            x=\"3\"\n            y=\"3\"\n            width=\"18\"\n            height=\"18\"\n            rx=\"5\"\n            ry=\"5\"\n          ><\/rect>\n\n          <circle\n            cx=\"12\"\n            cy=\"12\"\n            r=\"4\"\n          ><\/circle>\n\n          <circle\n            cx=\"17.5\"\n            cy=\"6.5\"\n            r=\"1\"\n          ><\/circle>\n        <\/svg>\n\n      <\/a>\n\n\n      <a\n        href=\"#\"\n        aria-label=\"LinkedIn\"\n        class=\"social-box\"\n      >\n\n        <svg\n          viewBox=\"0 0 24 24\"\n          aria-hidden=\"true\"\n        >\n\n          <rect\n            x=\"3\"\n            y=\"9\"\n            width=\"4\"\n            height=\"12\"\n          ><\/rect>\n\n          <circle\n            cx=\"5\"\n            cy=\"5\"\n            r=\"2\"\n          ><\/circle>\n\n          <path\n            d=\"M10 9h4v2c1-1.5 2.5-2.5 4.5-2.5 3.5 0 5.5 2.3 5.5 6.5V21h-4v-5.3c0-2-.7-3.4-2.6-3.4-1.4 0-2.3.9-2.7 1.9-.1.4-.2 1-.2 1.5V21h-4z\"\n          ><\/path>\n\n        <\/svg>\n\n      <\/a>\n\n\n      <a\n        href=\"#\"\n        aria-label=\"Vimeo\"\n        class=\"social-box\"\n      >\n\n        <svg\n          viewBox=\"0 0 24 24\"\n          aria-hidden=\"true\"\n        >\n\n          <path\n            d=\"M3 8.5c2-2.3 4.7-4.9 7-4.9 2.1 0 2.6 1.3 3 4 .5 3.5.8 6 1.8 6 1.1 0 3-2.1 4.3-4.2.7-1.1.4-1.7-.6-1.7-.5 0-1.2.2-1.8.5.6-3 2.6-4.5 5.8-4.4 2.4.1 3.4 1.4 2.8 3.8-1 4.2-6.8 11.7-10.9 14-2.3 1.3-4.3.5-5.3-1.7C7.8 17.1 7 13.4 6.2 10.7c-.5-1.7-.9-2.3-1.7-2.3-.5 0-1 .4-1.5.9z\"\n          ><\/path>\n\n        <\/svg>\n\n      <\/a>\n\n\n    <\/div>\n\n\n    <!-- ADDRESS -->\n\n    <div class=\"bplr-menu-address\">\n\n      <div class=\"address-title\">\n        Headquarters\n      <\/div>\n\n      <div class=\"address-copy\">\n\n        L\u00e1zaro C\u00e1rdenas 2424,<br>\n        Loma Larga Oriente<br>\n        San Pedro Garza Garc\u00eda<br>\n        Nuevo Le\u00f3n, M\u00e9xico<br>\n        C.P. 66266\n\n      <\/div>\n\n    <\/div>\n\n\n  <\/div>\n\n<\/div>\n\n\n\n<style>\n\/* =========================================================\n   FORCE VISIBLE HAMBURGER \u2014 TABLET \/ MOBILE\n========================================================= *\/\n\n@media (max-width:1180px) {\n\n  .bplr-header-right {\n\n    position:\n      relative !important;\n\n    min-width:\n      32px;\n\n    min-height:\n      32px;\n\n  }\n\n\n  \/* Hide Elementor's original icon.\n     We draw our own hamburger instead. *\/\n\n  .bplr-header-right\n  .elementor-icon {\n\n    opacity:\n      0 !important;\n\n  }\n\n\n  \/* HAMBURGER *\/\n\n  .bplr-header-right::before {\n\n    content:\n      \"\";\n\n    position:\n      absolute;\n\n    right:\n      0;\n\n    top:\n      50%;\n\n    width:\n      30px;\n\n    height:\n      2px;\n\n    background:\n      #ffffff;\n\n    box-shadow:\n      0 -8px 0 #ffffff,\n      0 8px 0 #ffffff;\n\n    transform:\n      translateY(-50%);\n\n    opacity:\n      1;\n\n    pointer-events:\n      none;\n\n    transition:\n      opacity .2s ease;\n\n  }\n\n\n  \/* Hide hamburger when menu is open.\n     Existing ::after X takes its place. *\/\n\n  body.mobile-menu-open\n  .bplr-header-right::before {\n\n    opacity:\n      0;\n\n  }\n\n}\n\n\/* =========================================================\n   MOBILE MENU\n========================================================= *\/\n\n.bplr-mobile-menu {\n\n  position:\n    fixed;\n\n  inset:\n    0;\n\n  width:\n    100vw;\n\n  height:\n    100vh;\n\n  height:\n    100dvh;\n\n  margin:\n    0;\n\n  padding:\n    105px 20px 24px;\n\n  box-sizing:\n    border-box;\n\n  display:\n    flex;\n\n  flex-direction:\n    column;\n\n  justify-content:\n    space-between;\n\n  overflow:\n    hidden;\n\n  background:\n    #F5F5F5;\n\n  color:\n    #0B0B0D;\n\n  opacity:\n    0;\n\n  visibility:\n    hidden;\n\n  pointer-events:\n    none;\n\n  transform:\n    translate3d(0,-20px,0);\n\n  transition:\n    opacity .3s ease,\n    transform .45s cubic-bezier(.65,0,.35,1),\n    visibility .3s;\n\n  z-index:\n    999990;\n\n}\n\n\n\/* =========================================================\n   OPEN\n========================================================= *\/\n\nbody.mobile-menu-open\n.bplr-mobile-menu {\n\n  opacity:\n    1;\n\n  visibility:\n    visible;\n\n  pointer-events:\n    auto;\n\n  transform:\n    translate3d(0,0,0);\n\n}\n\n\n\/* =========================================================\n   NAV\n========================================================= *\/\n\n.bplr-menu-nav {\n\n  display:\n    flex;\n\n  flex-direction:\n    column;\n\n  align-items:\n    flex-start;\n\n  justify-content:\n    flex-start;\n\n  gap:\n    0;\n\n  text-align:\n    left;\n\n}\n\n\n.bplr-menu-nav a,\n.bplr-menu-nav a:link,\n.bplr-menu-nav a:visited,\n.bplr-menu-nav a:hover,\n.bplr-menu-nav a:focus,\n.bplr-menu-nav a:active {\n\n  display:\n    block;\n\n  margin:\n    0;\n\n  padding:\n    0;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif !important;\n\n  font-size:\n    clamp(68px,18vw,110px);\n\n  font-weight:\n    800 !important;\n\n  font-style:\n    normal;\n\n  line-height:\n    .83;\n\n  letter-spacing:\n    -2px;\n\n  text-transform:\n    uppercase;\n\n  color:\n    #0B0B0D !important;\n\n  text-decoration:\n    none !important;\n\n  border:\n    0 !important;\n\n  box-shadow:\n    none !important;\n\n  background:\n    transparent !important;\n\n  transform:\n    skewX(0deg);\n\n  transform-origin:\n    left center;\n\n  transition:\n    transform .28s cubic-bezier(.65,0,.35,1);\n\n}\n\n\n.bplr-menu-nav a::before,\n.bplr-menu-nav a::after {\n\n  content:\n    none !important;\n\n  display:\n    none !important;\n\n}\n\n\n@media (hover:hover) {\n\n  .bplr-menu-nav a:hover {\n\n    transform:\n      skewX(-10deg);\n\n  }\n\n}\n\n\n\/* =========================================================\n   BOTTOM\n========================================================= *\/\n\n.bplr-menu-bottom {\n\n  width:\n    100%;\n\n  display:\n    flex;\n\n  flex-direction:\n    column;\n\n  gap:\n    28px;\n\n}\n\n\n\/* =========================================================\n   SOCIAL\n========================================================= *\/\n\n.bplr-menu-social {\n\n  display:\n    flex;\n\n  gap:\n    18px;\n\n}\n\n\n.social-box,\n.social-box:hover,\n.social-box:focus,\n.social-box:active,\n.social-box:visited {\n\n  width:\n    auto;\n\n  height:\n    auto;\n\n  margin:\n    0;\n\n  padding:\n    0 !important;\n\n  border:\n    0 !important;\n\n  display:\n    flex;\n\n  align-items:\n    center;\n\n  justify-content:\n    center;\n\n  color:\n    #0B0B0D !important;\n\n  text-decoration:\n    none !important;\n\n  box-shadow:\n    none !important;\n\n  background:\n    transparent !important;\n\n}\n\n\n.social-box svg {\n\n  width:\n    30px;\n\n  height:\n    30px;\n\n  fill:\n    none;\n\n  stroke:\n    currentColor;\n\n  stroke-width:\n    1.8;\n\n  stroke-linecap:\n    round;\n\n  stroke-linejoin:\n    round;\n\n}\n\n\n.social-box[aria-label=\"Vimeo\"] svg {\n\n  fill:\n    currentColor;\n\n  stroke:\n    none;\n\n}\n\n\n\/* =========================================================\n   ADDRESS\n========================================================= *\/\n\n.bplr-menu-address {\n\n  border-top:\n    1px solid #d5d5d5;\n\n  padding-top:\n    20px;\n\n  font-family:\n    \"Barlow\",\n    Arial,\n    sans-serif;\n\n  color:\n    #0B0B0D;\n\n}\n\n\n.bplr-menu-address\n.address-title {\n\n  margin-bottom:\n    8px;\n\n  font-size:\n    20px;\n\n  font-weight:\n    600;\n\n  line-height:\n    1.15;\n\n}\n\n\n.bplr-menu-address\n.address-copy {\n\n  font-size:\n    20px;\n\n  font-weight:\n    400;\n\n  line-height:\n    1.2;\n\n}\n\n\n\/* =========================================================\n   HEADER WHILE MENU IS OPEN\n========================================================= *\/\n\n@media (max-width:1180px) {\n\n  body.mobile-menu-open\n  .bplr-global-header {\n\n    transform:\n      translate3d(0,0,0) !important;\n\n    background:\n      #F5F5F5 !important;\n\n  }\n\n\n  \/* LOGO TO BLACK *\/\n\n  body.mobile-menu-open\n  .bplr-header-left img {\n\n    filter:\n      brightness(0)\n      saturate(100%) !important;\n\n  }\n\n\n  \/* HIDE ORIGINAL HAMBURGER *\/\n\n  body.mobile-menu-open\n  .bplr-header-right\n  .elementor-icon {\n\n    opacity:\n      0 !important;\n\n  }\n\n\n  \/* X *\/\n\n  .bplr-header-right::after {\n\n    content:\n      \"\u00d7\";\n\n    position:\n      absolute;\n\n    right:\n      0;\n\n    top:\n      50%;\n\n    transform:\n      translateY(-53%);\n\n    color:\n      #0B0B0D;\n\n    font-family:\n      Arial,\n      sans-serif;\n\n    font-size:\n      42px;\n\n    font-weight:\n      300;\n\n    line-height:\n      1;\n\n    opacity:\n      0;\n\n    pointer-events:\n      none;\n\n    transition:\n      opacity .2s ease;\n\n  }\n\n\n  body.mobile-menu-open\n  .bplr-header-right::after {\n\n    opacity:\n      1;\n\n  }\n\n}\n\n\n\/* =========================================================\n   BLOCK PAGE SCROLL\n========================================================= *\/\n\nbody.mobile-menu-open {\n\n  overflow:\n    hidden !important;\n\n}\n\n\n\/* =========================================================\n   DESKTOP\n========================================================= *\/\n\n@media (min-width:1181px) {\n\n  .bplr-mobile-menu {\n\n    display:\n      none !important;\n\n  }\n\n}\n\n<\/style>\n\n\n\n<script>\n\n(function () {\n\n  function initBPLRMobileMenu() {\n\n\n    \/* =====================================================\n       MENU\n    ===================================================== *\/\n\n    const menus =\n      Array.from(\n        document.querySelectorAll(\n          '#bplr-case-mobile-menu'\n        )\n      );\n\n\n    \/* REMOVE CONTACT FROM ALL MOBILE MENU INSTANCES *\/\n\n    menus.forEach(\n      function (menuInstance) {\n\n        menuInstance\n          .querySelectorAll(\n            '[data-home-anchor=\"contact\"]'\n          )\n          .forEach(\n            function (contactLink) {\n\n              contactLink.remove();\n\n            }\n          );\n\n      }\n    );\n\n\n    if (!menus.length) return;\n\n\n    const menu =\n      menus[\n        menus.length - 1\n      ];\n\n\n    \/* Remove accidental Elementor duplicates *\/\n\n    menus\n      .slice(\n        0,\n        -1\n      )\n      .forEach(\n        function (oldMenu) {\n\n          oldMenu.remove();\n\n        }\n      );\n\n\n    \/* =====================================================\n       MOVE MENU TO BODY\n    ===================================================== *\/\n\n    if (\n      menu.parentElement !==\n      document.body\n    ) {\n\n      document.body.appendChild(\n        menu\n      );\n\n    }\n\n\n    \/* =====================================================\n       HEADER + TRIGGER\n    ===================================================== *\/\n\n    const header =\n      document.querySelector(\n        '.bplr-global-header'\n      );\n\n\n    if (!header) return;\n\n\n    const trigger =\n      header.querySelector(\n        '.bplr-header-right'\n      );\n\n\n    if (!trigger) return;\n\n\n    \/* =====================================================\n       PAGE LINKS\n\n       MOBILE \/ TABLET MIRRORS THE LINKS\n       ALREADY ASSIGNED TO DESKTOP HEADER.\n\n       THIS MEANS:\n       - STAGING WORKS NOW\n       - PRODUCTION WILL WORK LATER\n       - NO DUPLICATE URL MAINTENANCE\n    ===================================================== *\/\n\n    const headerLinks =\n      Array.from(\n        header.querySelectorAll(\n          'a[href]'\n        )\n      );\n\n\n    function getHeaderHref(label) {\n\n      const match =\n        headerLinks.find(\n          function (link) {\n\n            return (\n              link.textContent ||\n              ''\n            )\n              .trim()\n              .toUpperCase() ===\n              label;\n\n          }\n        );\n\n\n      return match\n        ? match.href\n        : '';\n\n    }\n\n\n    const pageLinks = {\n\n      about:\n        getHeaderHref(\n          'ABOUT'\n        ),\n\n      work:\n        getHeaderHref(\n          'WORK'\n        ),\n\n      join:\n        getHeaderHref(\n          'JOIN US'\n        )\n\n    };\n\n\n    menu\n      .querySelectorAll(\n        '[data-home-anchor]'\n      )\n      .forEach(\n        function (link) {\n\n          const key =\n            link.dataset.homeAnchor;\n\n\n          if (\n            pageLinks[key]\n          ) {\n\n            link.href =\n              pageLinks[key];\n\n          }\n\n        }\n      );\n\n\n    \/* =====================================================\n       STATE\n    ===================================================== *\/\n\n    function isOpen() {\n\n      return document.body\n        .classList\n        .contains(\n          'mobile-menu-open'\n        );\n\n    }\n\n\n    function openMenu() {\n\n      if (\n        window.innerWidth >\n        1180\n      ) {\n\n        return;\n\n      }\n\n\n      document.body.classList.add(\n        'mobile-menu-open'\n      );\n\n\n      header.classList.remove(\n        'header-scroll-hidden'\n      );\n\n\n      menu.setAttribute(\n        'aria-hidden',\n        'false'\n      );\n\n    }\n\n\n    function closeMenu() {\n\n      document.body.classList.remove(\n        'mobile-menu-open'\n      );\n\n\n      menu.setAttribute(\n        'aria-hidden',\n        'true'\n      );\n\n    }\n\n\n    function toggleMenu() {\n\n      if (isOpen()) {\n\n        closeMenu();\n\n      }\n\n      else {\n\n        openMenu();\n\n      }\n\n    }\n\n\n    \/* =====================================================\n       RESET\n    ===================================================== *\/\n\n    closeMenu();\n\n\n    \/* =====================================================\n       TRIGGER\n\n       Clean replacement prevents duplicate clicks\n       caused by Elementor re-rendering.\n    ===================================================== *\/\n\n    if (\n      trigger.__bplrMenuHandler\n    ) {\n\n      trigger.removeEventListener(\n        'click',\n        trigger.__bplrMenuHandler\n      );\n\n    }\n\n\n    trigger.__bplrMenuHandler =\n      function (event) {\n\n        if (\n          window.innerWidth >\n          1180\n        ) {\n\n          return;\n\n        }\n\n\n        event.preventDefault();\n\n        event.stopPropagation();\n\n\n        toggleMenu();\n\n      };\n\n\n    trigger.addEventListener(\n      'click',\n      trigger.__bplrMenuHandler\n    );\n\n\n    \/* =====================================================\n       LINKS CLOSE MENU\n    ===================================================== *\/\n\n    menu\n      .querySelectorAll(\n        '.bplr-menu-nav a'\n      )\n      .forEach(\n        function (link) {\n\n          link.addEventListener(\n            'click',\n            closeMenu\n          );\n\n        }\n      );\n\n\n    \/* =====================================================\n       ESC\n    ===================================================== *\/\n\n    document.addEventListener(\n      'keydown',\n      function (event) {\n\n        if (\n          event.key ===\n          'Escape' &&\n          isOpen()\n        ) {\n\n          closeMenu();\n\n        }\n\n      }\n    );\n\n\n    \/* =====================================================\n       DESKTOP RESIZE\n    ===================================================== *\/\n\n    window.addEventListener(\n      'resize',\n      function () {\n\n        if (\n          window.innerWidth >\n          1180 &&\n          isOpen()\n        ) {\n\n          closeMenu();\n\n        }\n\n      },\n      {\n        passive:\n          true\n      }\n    );\n\n  }\n\n\n  function start() {\n\n    \/*\n      Esperamos a que los otros dos widgets\n      terminen de recuperar el header\n      y activar el scroll.\n    *\/\n\n    setTimeout(\n      initBPLRMobileMenu,\n      950\n    );\n\n  }\n\n\n  if (\n    document.readyState ===\n    'loading'\n  ) {\n\n    document.addEventListener(\n      'DOMContentLoaded',\n      start\n    );\n\n  }\n\n  else {\n\n    start();\n\n  }\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-38b94780 elementor-widget elementor-widget-html\" data-id=\"38b94780\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     BPLR \u2014 GLOBAL PAGE TRANSITION V3.1\n     RED \u2192 BLUE \u2192 TRANSPARENT REVEAL\n\n     PERFORMANCE:\n     1. Immediate prefetch of primary header destinations\n     2. Prerender on user intent when supported\n     3. Prefetch fallback\n========================================================= -->\n\n\n<!-- =========================================================\n     EARLY INCOMING DETECTION\n========================================================= -->\n\n<script>\n\n(function () {\n\n  try {\n\n    const target =\n      sessionStorage.getItem(\n        'bplr-transition-target'\n      );\n\n    const timestamp =\n      Number(\n        sessionStorage.getItem(\n          'bplr-transition-time'\n        )\n      );\n\n\n    const isRecent =\n      timestamp &&\n      (\n        Date.now() - timestamp\n      ) < 10000;\n\n\n    if (\n      target &&\n      isRecent\n    ) {\n\n      const current =\n        new URL(\n          window.location.href\n        );\n\n\n      const expected =\n        new URL(\n          target,\n          window.location.origin\n        );\n\n\n      if (\n        current.pathname ===\n          expected.pathname &&\n        current.search ===\n          expected.search\n      ) {\n\n        document.documentElement\n          .classList\n          .add(\n            'bplr-transition-in'\n          );\n\n      }\n\n    }\n\n\n    sessionStorage.removeItem(\n      'bplr-transition-target'\n    );\n\n\n    sessionStorage.removeItem(\n      'bplr-transition-time'\n    );\n\n  }\n\n  catch (error) {}\n\n})();\n\n<\/script>\n\n\n\n<!-- =========================================================\n     TRANSITION STAGE\n========================================================= -->\n\n<div\n  id=\"bplr-page-transition\"\n  aria-hidden=\"true\"\n>\n\n\n  <!-- =====================================================\n       OUTGOING\n  ====================================================== -->\n\n  <svg\n    id=\"bplr-transition-outgoing\"\n    class=\"bplr-transition-svg\"\n    xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n    preserveAspectRatio=\"none\"\n  >\n\n    <circle\n      id=\"bplr-transition-red\"\n      fill=\"#F01F46\"\n    ><\/circle>\n\n\n    <circle\n      id=\"bplr-transition-blue\"\n      fill=\"#4278D3\"\n    ><\/circle>\n\n  <\/svg>\n\n\n\n  <!-- =====================================================\n       INCOMING\n  ====================================================== -->\n\n  <svg\n    id=\"bplr-transition-incoming\"\n    class=\"bplr-transition-svg\"\n    xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n    preserveAspectRatio=\"none\"\n  >\n\n    <defs>\n\n      <mask\n        id=\"bplr-transition-mask\"\n        maskUnits=\"userSpaceOnUse\"\n      >\n\n        <rect\n          id=\"bplr-mask-background\"\n          x=\"0\"\n          y=\"0\"\n          fill=\"white\"\n        ><\/rect>\n\n\n        <circle\n          id=\"bplr-transition-hole\"\n          fill=\"black\"\n        ><\/circle>\n\n      <\/mask>\n\n    <\/defs>\n\n\n    <rect\n      id=\"bplr-transition-blue-screen\"\n      x=\"0\"\n      y=\"0\"\n      fill=\"#4278D3\"\n      mask=\"url(#bplr-transition-mask)\"\n    ><\/rect>\n\n  <\/svg>\n\n\n<\/div>\n\n\n\n<style>\n\n\/* =========================================================\n   ROOT\n========================================================= *\/\n\n#bplr-page-transition {\n\n  position:\n    fixed;\n\n  inset:\n    0;\n\n  width:\n    100vw;\n\n  height:\n    100vh;\n\n  height:\n    100dvh;\n\n  margin:\n    0;\n\n  padding:\n    0;\n\n  overflow:\n    hidden;\n\n  pointer-events:\n    none;\n\n  visibility:\n    hidden;\n\n  z-index:\n    2147483646;\n\n}\n\n\n\/* =========================================================\n   SVG\n========================================================= *\/\n\n#bplr-page-transition\n.bplr-transition-svg {\n\n  position:\n    absolute;\n\n  inset:\n    0;\n\n  display:\n    none;\n\n  width:\n    100%;\n\n  height:\n    100%;\n\n  margin:\n    0;\n\n  padding:\n    0;\n\n  overflow:\n    hidden;\n\n}\n\n\n\/* =========================================================\n   OUTGOING\n========================================================= *\/\n\nhtml.bplr-transition-out\n#bplr-page-transition {\n\n  visibility:\n    visible;\n\n  pointer-events:\n    all;\n\n}\n\n\nhtml.bplr-transition-out\n#bplr-transition-outgoing {\n\n  display:\n    block;\n\n}\n\n\n\/* =========================================================\n   INCOMING\n========================================================= *\/\n\nhtml.bplr-transition-in\n#bplr-page-transition {\n\n  visibility:\n    visible;\n\n  pointer-events:\n    all;\n\n}\n\n\nhtml.bplr-transition-in\n#bplr-transition-incoming {\n\n  display:\n    block;\n\n}\n\n\n\/* =========================================================\n   TEMPORARY SCROLL LOCK\n========================================================= *\/\n\nhtml.bplr-transition-out,\nhtml.bplr-transition-in {\n\n  overflow:\n    hidden !important;\n\n}\n\n\n\/* =========================================================\n   ACCESSIBILITY\n========================================================= *\/\n\n@media\n(prefers-reduced-motion: reduce) {\n\n  #bplr-page-transition {\n\n    display:\n      none !important;\n\n  }\n\n}\n\n<\/style>\n\n\n\n<script>\n\n(function () {\n\n\n  \/* =====================================================\n     SETTINGS\n  ===================================================== *\/\n\n  const RED =\n    '#F01F46';\n\n\n  const BLUE =\n    '#4278D3';\n\n\n  const RED_DURATION =\n    500;\n\n\n  const BLUE_DELAY =\n    145;\n\n\n  const BLUE_DURATION =\n    500;\n\n\n  const REVEAL_DELAY =\n    60;\n\n\n  const REVEAL_DURATION =\n    650;\n\n\n\n  \/* =====================================================\n     ELEMENTS\n  ===================================================== *\/\n\n  const stage =\n    document.getElementById(\n      'bplr-page-transition'\n    );\n\n\n  const outgoing =\n    document.getElementById(\n      'bplr-transition-outgoing'\n    );\n\n\n  const incoming =\n    document.getElementById(\n      'bplr-transition-incoming'\n    );\n\n\n  const redCircle =\n    document.getElementById(\n      'bplr-transition-red'\n    );\n\n\n  const blueCircle =\n    document.getElementById(\n      'bplr-transition-blue'\n    );\n\n\n  const holeCircle =\n    document.getElementById(\n      'bplr-transition-hole'\n    );\n\n\n  const maskBackground =\n    document.getElementById(\n      'bplr-mask-background'\n    );\n\n\n  const blueScreen =\n    document.getElementById(\n      'bplr-transition-blue-screen'\n    );\n\n\n  if (\n    !stage ||\n    !outgoing ||\n    !incoming ||\n    !redCircle ||\n    !blueCircle ||\n    !holeCircle ||\n    !maskBackground ||\n    !blueScreen\n  ) {\n\n    return;\n\n  }\n\n\n\n  \/* =====================================================\n     GEOMETRY\n  ===================================================== *\/\n\n  let viewportWidth =\n    0;\n\n\n  let viewportHeight =\n    0;\n\n\n  let centerX =\n    0;\n\n\n  let centerY =\n    0;\n\n\n  let maximumRadius =\n    0;\n\n\n\n  function setupGeometry() {\n\n    viewportWidth =\n      Math.max(\n        window.innerWidth,\n        1\n      );\n\n\n    viewportHeight =\n      Math.max(\n        window.innerHeight,\n        1\n      );\n\n\n    centerX =\n      viewportWidth \/ 2;\n\n\n    centerY =\n      viewportHeight \/ 2;\n\n\n    maximumRadius =\n      (\n        Math.hypot(\n          viewportWidth,\n          viewportHeight\n        ) \/ 2\n      ) + 12;\n\n\n\n    outgoing.setAttribute(\n      'viewBox',\n      '0 0 ' +\n      viewportWidth +\n      ' ' +\n      viewportHeight\n    );\n\n\n    incoming.setAttribute(\n      'viewBox',\n      '0 0 ' +\n      viewportWidth +\n      ' ' +\n      viewportHeight\n    );\n\n\n\n    redCircle.setAttribute(\n      'cx',\n      centerX\n    );\n\n\n    redCircle.setAttribute(\n      'cy',\n      centerY\n    );\n\n\n    redCircle.setAttribute(\n      'r',\n      2\n    );\n\n\n    redCircle.setAttribute(\n      'fill',\n      RED\n    );\n\n\n\n    blueCircle.setAttribute(\n      'cx',\n      centerX\n    );\n\n\n    blueCircle.setAttribute(\n      'cy',\n      centerY\n    );\n\n\n    blueCircle.setAttribute(\n      'r',\n      2\n    );\n\n\n    blueCircle.setAttribute(\n      'fill',\n      BLUE\n    );\n\n\n\n    holeCircle.setAttribute(\n      'cx',\n      centerX\n    );\n\n\n    holeCircle.setAttribute(\n      'cy',\n      centerY\n    );\n\n\n    holeCircle.setAttribute(\n      'r',\n      0\n    );\n\n\n\n    maskBackground.setAttribute(\n      'width',\n      viewportWidth\n    );\n\n\n    maskBackground.setAttribute(\n      'height',\n      viewportHeight\n    );\n\n\n\n    blueScreen.setAttribute(\n      'width',\n      viewportWidth\n    );\n\n\n    blueScreen.setAttribute(\n      'height',\n      viewportHeight\n    );\n\n\n    blueScreen.setAttribute(\n      'fill',\n      BLUE\n    );\n\n  }\n\n\n\n  setupGeometry();\n\n\n\n  \/* =====================================================\n     EASING\n  ===================================================== *\/\n\n  function easeInOutCubic(t) {\n\n    if (\n      t < 0.5\n    ) {\n\n      return (\n        4 *\n        t *\n        t *\n        t\n      );\n\n    }\n\n\n    return (\n      1 -\n      Math.pow(\n        -2 * t + 2,\n        3\n      ) \/ 2\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     RADIUS ANIMATION\n  ===================================================== *\/\n\n  function animateRadius(\n    element,\n    from,\n    to,\n    duration,\n    delay,\n    callback\n  ) {\n\n    const start =\n      performance.now() +\n      delay;\n\n\n    function frame(now) {\n\n      if (\n        now < start\n      ) {\n\n        requestAnimationFrame(\n          frame\n        );\n\n        return;\n\n      }\n\n\n      const rawProgress =\n        Math.min(\n          (\n            now - start\n          ) \/ duration,\n          1\n        );\n\n\n      const progress =\n        easeInOutCubic(\n          rawProgress\n        );\n\n\n      const radius =\n        from +\n        (\n          to - from\n        ) *\n        progress;\n\n\n      element.setAttribute(\n        'r',\n        radius\n      );\n\n\n      if (\n        rawProgress < 1\n      ) {\n\n        requestAnimationFrame(\n          frame\n        );\n\n      }\n\n      else if (\n        typeof callback ===\n        'function'\n      ) {\n\n        callback();\n\n      }\n\n    }\n\n\n    requestAnimationFrame(\n      frame\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     INCOMING REVEAL\n  ===================================================== *\/\n\n  function runIncomingTransition() {\n\n    setupGeometry();\n\n\n    holeCircle.setAttribute(\n      'r',\n      2\n    );\n\n\n    requestAnimationFrame(\n      function () {\n\n        requestAnimationFrame(\n          function () {\n\n            animateRadius(\n\n              holeCircle,\n\n              2,\n\n              maximumRadius,\n\n              REVEAL_DURATION,\n\n              REVEAL_DELAY,\n\n              function () {\n\n                document.documentElement\n                  .classList\n                  .remove(\n                    'bplr-transition-in'\n                  );\n\n\n                stage.setAttribute(\n                  'aria-hidden',\n                  'true'\n                );\n\n              }\n\n            );\n\n          }\n        );\n\n      }\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     RUN INCOMING\n  ===================================================== *\/\n\n  if (\n    document.documentElement\n      .classList\n      .contains(\n        'bplr-transition-in'\n      )\n  ) {\n\n    stage.setAttribute(\n      'aria-hidden',\n      'false'\n    );\n\n\n    runIncomingTransition();\n\n  }\n\n\n\n  \/* =====================================================\n     INTERNAL URL VALIDATION\n  ===================================================== *\/\n\n  function getInternalURL(link) {\n\n    if (!link) {\n\n      return null;\n\n    }\n\n\n    const href =\n      link.getAttribute(\n        'href'\n      );\n\n\n    if (\n      !href ||\n      href === '#' ||\n      href.startsWith('#') ||\n      href.startsWith('mailto:') ||\n      href.startsWith('tel:') ||\n      href.startsWith('javascript:')\n    ) {\n\n      return null;\n\n    }\n\n\n    let url;\n\n\n    try {\n\n      url =\n        new URL(\n          link.href,\n          window.location.href\n        );\n\n    }\n\n    catch (error) {\n\n      return null;\n\n    }\n\n\n    if (\n      url.origin !==\n      window.location.origin\n    ) {\n\n      return null;\n\n    }\n\n\n    if (\n      url.pathname.includes(\n        '\/wp-admin\/'\n      ) ||\n      url.pathname.includes(\n        '\/wp-login.php'\n      )\n    ) {\n\n      return null;\n\n    }\n\n\n    if (\n      url.pathname ===\n        window.location.pathname &&\n      url.search ===\n        window.location.search\n    ) {\n\n      return null;\n\n    }\n\n\n    return url;\n\n  }\n\n\n\n  \/* =====================================================\n     PERFORMANCE STATE\n  ===================================================== *\/\n\n  const prefetched =\n    new Set();\n\n\n  const prerendered =\n    new Set();\n\n\n\n  \/* =====================================================\n     SPECULATION RULE SUPPORT\n  ===================================================== *\/\n\n  function supportsSpeculationRules() {\n\n    try {\n\n      return (\n        window.HTMLScriptElement &&\n        typeof HTMLScriptElement.supports ===\n          'function' &&\n        HTMLScriptElement.supports(\n          'speculationrules'\n        )\n      );\n\n    }\n\n    catch (error) {\n\n      return false;\n\n    }\n\n  }\n\n\n\n  \/* =====================================================\n     ADD SPECULATION RULE\n  ===================================================== *\/\n\n  function addSpeculationRule(\n    type,\n    url,\n    eagerness\n  ) {\n\n    if (\n      !supportsSpeculationRules()\n    ) {\n\n      return false;\n\n    }\n\n\n    try {\n\n      const script =\n        document.createElement(\n          'script'\n        );\n\n\n      script.type =\n        'speculationrules';\n\n\n      const rule = {};\n\n\n      rule[type] = [\n\n        {\n\n          source:\n            'list',\n\n          urls:\n            [\n              url\n            ],\n\n          eagerness:\n            eagerness || 'moderate'\n\n        }\n\n      ];\n\n\n      script.textContent =\n        JSON.stringify(\n          rule\n        );\n\n\n      document.head.appendChild(\n        script\n      );\n\n\n      return true;\n\n    }\n\n    catch (error) {\n\n      return false;\n\n    }\n\n  }\n\n\n\n  \/* =====================================================\n     PREFETCH\n  ===================================================== *\/\n\n  function prefetchURL(url) {\n\n    if (!url) {\n\n      return;\n\n    }\n\n\n    const key =\n      url.href;\n\n\n    if (\n      prefetched.has(\n        key\n      )\n    ) {\n\n      return;\n\n    }\n\n\n    prefetched.add(\n      key\n    );\n\n\n\n    \/* -----------------------------------------------\n       SPECULATION RULE PREFETCH\n    ------------------------------------------------ *\/\n\n    const speculationAdded =\n      addSpeculationRule(\n        'prefetch',\n        key,\n        'immediate'\n      );\n\n\n    if (\n      speculationAdded\n    ) {\n\n      return;\n\n    }\n\n\n\n    \/* -----------------------------------------------\n       STANDARD PREFETCH FALLBACK\n    ------------------------------------------------ *\/\n\n    try {\n\n      const prefetch =\n        document.createElement(\n          'link'\n        );\n\n\n      prefetch.rel =\n        'prefetch';\n\n\n      prefetch.href =\n        key;\n\n\n      prefetch.as =\n        'document';\n\n\n      document.head.appendChild(\n        prefetch\n      );\n\n    }\n\n    catch (error) {}\n\n  }\n\n\n\n  \/* =====================================================\n     PRERENDER\n  ===================================================== *\/\n\n  function prerenderURL(url) {\n\n    if (!url) {\n\n      return;\n\n    }\n\n\n    const key =\n      url.href;\n\n\n    if (\n      prerendered.has(\n        key\n      )\n    ) {\n\n      return;\n\n    }\n\n\n    prerendered.add(\n      key\n    );\n\n\n\n    \/* -----------------------------------------------\n       ALWAYS PREFETCH AS SAFETY NET\n    ------------------------------------------------ *\/\n\n    prefetchURL(\n      url\n    );\n\n\n\n    \/* -----------------------------------------------\n       PRERENDER IF SUPPORTED\n    ------------------------------------------------ *\/\n\n    addSpeculationRule(\n      'prerender',\n      key,\n      'immediate'\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     PRIMARY HEADER PREFETCH\n\n     HOME \/ ABOUT \/ WORK \/ JOIN\n     are prepared immediately.\n  ===================================================== *\/\n\n  function prefetchPrimaryNavigation() {\n\n    const selectors = [\n\n      '.bplr-global-header a[href]',\n\n      '#bplr-case-mobile-menu a[href]'\n\n    ];\n\n\n    const links =\n      Array.from(\n        document.querySelectorAll(\n          selectors.join(',')\n        )\n      );\n\n\n    let count =\n      0;\n\n\n    links.forEach(\n      function (link) {\n\n        if (\n          count >= 8\n        ) {\n\n          return;\n\n        }\n\n\n        const url =\n          getInternalURL(\n            link\n          );\n\n\n        if (!url) {\n\n          return;\n\n        }\n\n\n        prefetchURL(\n          url\n        );\n\n\n        count++;\n\n      }\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     RUN PRIMARY PREFETCH ASAP\n\n     Multiple passes because Elementor can finish\n     rendering header links slightly later.\n  ===================================================== *\/\n\n  prefetchPrimaryNavigation();\n\n\n  requestAnimationFrame(\n    function () {\n\n      prefetchPrimaryNavigation();\n\n    }\n  );\n\n\n  setTimeout(\n    prefetchPrimaryNavigation,\n    250\n  );\n\n\n  setTimeout(\n    prefetchPrimaryNavigation,\n    800\n  );\n\n\n  setTimeout(\n    prefetchPrimaryNavigation,\n    1600\n  );\n\n\n\n  \/* =====================================================\n     USER INTENT \u2192 PRERENDER\n  ===================================================== *\/\n\n  function prerenderFromEvent(\n    event\n  ) {\n\n    const link =\n      event.target.closest(\n        'a[href]'\n      );\n\n\n    const url =\n      getInternalURL(\n        link\n      );\n\n\n    if (\n      url\n    ) {\n\n      prerenderURL(\n        url\n      );\n\n    }\n\n  }\n\n\n\n  document.addEventListener(\n\n    'mouseover',\n\n    prerenderFromEvent,\n\n    true\n\n  );\n\n\n  document.addEventListener(\n\n    'focusin',\n\n    prerenderFromEvent,\n\n    true\n\n  );\n\n\n  document.addEventListener(\n\n    'pointerdown',\n\n    prerenderFromEvent,\n\n    true\n\n  );\n\n\n  document.addEventListener(\n\n    'touchstart',\n\n    prerenderFromEvent,\n\n    {\n      capture:\n        true,\n\n      passive:\n        true\n    }\n\n  );\n\n\n\n  \/* =====================================================\n     SECONDARY LINKS\n     PREFETCH WHEN BROWSER HAS FREE TIME\n  ===================================================== *\/\n\n  function prefetchSecondaryLinks() {\n\n    const links =\n      Array.from(\n        document.querySelectorAll(\n          'a[href]'\n        )\n      );\n\n\n    let count =\n      0;\n\n\n    links.forEach(\n      function (link) {\n\n        if (\n          count >= 8\n        ) {\n\n          return;\n\n        }\n\n\n        const url =\n          getInternalURL(\n            link\n          );\n\n\n        if (!url) {\n\n          return;\n\n        }\n\n\n        if (\n          prefetched.has(\n            url.href\n          )\n        ) {\n\n          return;\n\n        }\n\n\n        prefetchURL(\n          url\n        );\n\n\n        count++;\n\n      }\n    );\n\n  }\n\n\n\n  if (\n    'requestIdleCallback'\n    in window\n  ) {\n\n    requestIdleCallback(\n\n      prefetchSecondaryLinks,\n\n      {\n        timeout:\n          2500\n      }\n\n    );\n\n  }\n\n  else {\n\n    setTimeout(\n      prefetchSecondaryLinks,\n      1800\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     SHOULD TRANSITION?\n  ===================================================== *\/\n\n  function shouldTransition(\n    link,\n    event\n  ) {\n\n    if (!link) {\n\n      return false;\n\n    }\n\n\n    if (\n      event.button !== 0\n    ) {\n\n      return false;\n\n    }\n\n\n    if (\n      event.metaKey ||\n      event.ctrlKey ||\n      event.shiftKey ||\n      event.altKey\n    ) {\n\n      return false;\n\n    }\n\n\n    if (\n      link.hasAttribute(\n        'download'\n      )\n    ) {\n\n      return false;\n\n    }\n\n\n    if (\n      link.getAttribute(\n        'target'\n      ) === '_blank'\n    ) {\n\n      return false;\n\n    }\n\n\n    if (\n      link.hasAttribute(\n        'data-no-transition'\n      )\n    ) {\n\n      return false;\n\n    }\n\n\n    if (\n      link.closest(\n        '#wpadminbar'\n      )\n    ) {\n\n      return false;\n\n    }\n\n\n    return !!getInternalURL(\n      link\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     CLICK\n  ===================================================== *\/\n\n  document.addEventListener(\n\n    'click',\n\n    function (event) {\n\n\n      const link =\n        event.target.closest(\n          'a[href]'\n        );\n\n\n      if (\n        !shouldTransition(\n          link,\n          event\n        )\n      ) {\n\n        return;\n\n      }\n\n\n\n      if (\n        document.documentElement\n          .classList\n          .contains(\n            'bplr-transition-out'\n          )\n      ) {\n\n        event.preventDefault();\n\n        return;\n\n      }\n\n\n\n      event.preventDefault();\n\n\n\n      const destination =\n        link.href;\n\n\n      const destinationURL =\n        getInternalURL(\n          link\n        );\n\n\n\n      \/* =================================================\n         LAST CHANCE PRERENDER\n      ================================================= *\/\n\n      if (\n        destinationURL\n      ) {\n\n        prerenderURL(\n          destinationURL\n        );\n\n      }\n\n\n\n      \/* =================================================\n         PREPARE TRANSITION\n      ================================================= *\/\n\n      setupGeometry();\n\n\n      redCircle.setAttribute(\n        'r',\n        2\n      );\n\n\n      blueCircle.setAttribute(\n        'r',\n        2\n      );\n\n\n      stage.setAttribute(\n        'aria-hidden',\n        'false'\n      );\n\n\n      document.documentElement\n        .classList\n        .add(\n          'bplr-transition-out'\n        );\n\n\n\n      \/* =================================================\n         SAVE DESTINATION\n      ================================================= *\/\n\n      try {\n\n        sessionStorage.setItem(\n          'bplr-transition-target',\n          destination\n        );\n\n\n        sessionStorage.setItem(\n          'bplr-transition-time',\n          String(\n            Date.now()\n          )\n        );\n\n      }\n\n      catch (error) {}\n\n\n\n      \/* =================================================\n         RED\n      ================================================= *\/\n\n      animateRadius(\n\n        redCircle,\n\n        2,\n\n        maximumRadius,\n\n        RED_DURATION,\n\n        0\n\n      );\n\n\n\n      \/* =================================================\n         BLUE\n      ================================================= *\/\n\n      animateRadius(\n\n        blueCircle,\n\n        2,\n\n        maximumRadius,\n\n        BLUE_DURATION,\n\n        BLUE_DELAY,\n\n        function () {\n\n\n          window.location.href =\n            destination;\n\n        }\n\n      );\n\n    },\n\n    true\n  );\n\n\n\n  \/* =====================================================\n     BACK \/ FORWARD CACHE\n  ===================================================== *\/\n\n  window.addEventListener(\n\n    'pageshow',\n\n    function (event) {\n\n      if (\n        event.persisted\n      ) {\n\n        document.documentElement\n          .classList\n          .remove(\n            'bplr-transition-out',\n            'bplr-transition-in'\n          );\n\n\n        stage.setAttribute(\n          'aria-hidden',\n          'true'\n        );\n\n      }\n\n    }\n\n  );\n\n\n\n  \/* =====================================================\n     RESIZE\n  ===================================================== *\/\n\n  let resizeTimer;\n\n\n  window.addEventListener(\n\n    'resize',\n\n    function () {\n\n      clearTimeout(\n        resizeTimer\n      );\n\n\n      resizeTimer =\n        setTimeout(\n\n          function () {\n\n            if (\n              !document.documentElement\n                .classList\n                .contains(\n                  'bplr-transition-out'\n                ) &&\n              !document.documentElement\n                .classList\n                .contains(\n                  'bplr-transition-in'\n                )\n            ) {\n\n              setupGeometry();\n\n            }\n\n          },\n\n          120\n\n        );\n\n    },\n\n    {\n      passive:\n        true\n    }\n\n  );\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-66a92f75 e-flex e-con-boxed e-con e-parent\" data-id=\"66a92f75\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-306bdf3f elementor-widget elementor-widget-html\" data-id=\"306bdf3f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     BPLR HOME HERO \u2014 MASTER V8\n     DESKTOP -15% \/ CONSISTENT TRACKING\n========================================================= -->\n\n<section class=\"bplr-home-hero\">\n\n  <div class=\"bplr-home-hero__stage\">\n\n    <!-- =====================================================\n         VIDEO \u00daNICO EXPANDIBLE\n    ====================================================== -->\n\n    <div class=\"bplr-home-hero__media\">\n\n      <video\n        class=\"bplr-home-hero__video\"\n        autoplay\n        muted\n        loop\n        playsinline\n        preload=\"auto\"\n      >\n        <source\n          src=\"https:\/\/bipolar.mx\/stanging\/wp-content\/uploads\/2026\/09\/PREVIE-HOME.mp4\"\n          type=\"video\/mp4\"\n        >\n      <\/video>\n\n    <\/div>\n\n\n    <!-- =====================================================\n         DESKTOP\n    ====================================================== -->\n\n    <div class=\"\n      bplr-home-hero__copy\n      bplr-home-hero__copy--desktop\n    \">\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__word\">\n          WHEN\n        <\/span>\n\n        <span class=\"bplr-home-hero__word\">\n          REASON\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__word\">\n          MEETS\n        <\/span>\n\n        <span class=\"bplr-home-hero__word\">\n          EMOTION,\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"\n        bplr-home-hero__line\n        bplr-home-hero__line--final\n      \">\n\n        <span class=\"bplr-home-hero__final\">\n\n          <span class=\"bplr-home-hero__word\">\n            WE\n          <\/span>\n\n          <span class=\"bplr-home-hero__word\">\n            HAPPEN.\n          <\/span>\n\n        <\/span>\n\n        <span class=\"bplr-home-hero__origin\"><\/span>\n\n      <\/div>\n\n    <\/div>\n\n\n    <!-- =====================================================\n         TABLET\n    ====================================================== -->\n\n    <div class=\"\n      bplr-home-hero__copy\n      bplr-home-hero__copy--tablet\n    \">\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__word\">\n          WHEN\n        <\/span>\n\n        <span class=\"bplr-home-hero__word\">\n          THE\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__word\">\n          REASON\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__word\">\n          MEETS\n        <\/span>\n\n        <span class=\"bplr-home-hero__word\">\n          EMOTION,\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__final\">\n\n          <span class=\"bplr-home-hero__word\">\n            WE\n          <\/span>\n\n          <span class=\"bplr-home-hero__word\">\n            HAPPEN.\n          <\/span>\n\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__origin-row\">\n\n        <span class=\"bplr-home-hero__origin\"><\/span>\n\n      <\/div>\n\n    <\/div>\n\n\n    <!-- =====================================================\n         MOBILE\n    ====================================================== -->\n\n    <div class=\"\n      bplr-home-hero__copy\n      bplr-home-hero__copy--mobile\n    \">\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__word\">\n          WHEN\n        <\/span>\n\n        <span class=\"bplr-home-hero__word\">\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__word\">\n          REASON\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__word\">\n          MEETS\n        <\/span>\n\n        <span class=\"bplr-home-hero__word\">\n          EMOTION,\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__line\">\n\n        <span class=\"bplr-home-hero__final\">\n\n          <span class=\"bplr-home-hero__word\">\n            WE\n          <\/span>\n\n          <span class=\"bplr-home-hero__word\">\n            HAPPEN.\n          <\/span>\n\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"bplr-home-hero__origin-row\">\n\n        <span class=\"bplr-home-hero__origin\"><\/span>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n\n<style>\n\n\/* =========================================================\n   LOCAL RESET\n========================================================= *\/\n\n.bplr-home-hero,\n.bplr-home-hero *,\n.bplr-home-hero *::before,\n.bplr-home-hero *::after {\n  box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   HERO ROOT \u2014 FULL BLEED\n========================================================= *\/\n\n.bplr-home-hero {\n  position: relative;\n\n  width: 100vw !important;\n  max-width: 100vw !important;\n\n  height: 210vh;\n\n  margin-left: calc(50% - 50vw) !important;\n  margin-right: calc(50% - 50vw) !important;\n\n  padding: 0 !important;\n\n  background: #000;\n\n  overflow: visible;\n\n  --bplr-hero-tracking: -.035em;\n  --bplr-hero-word-gap: .105em;\n}\n\n\n\/* =========================================================\n   STICKY VIEWPORT\n========================================================= *\/\n\n.bplr-home-hero__stage {\n  position: sticky;\n\n  top: 0;\n\n  width: 100vw;\n  max-width: 100vw;\n\n  height: 100vh;\n  height: 100dvh;\n\n  margin: 0;\n  padding: 0;\n\n  overflow: hidden;\n\n  background: #000;\n}\n\n\n\/* =========================================================\n   VIDEO MEDIA\n========================================================= *\/\n\n.bplr-home-hero__media {\n  position: fixed;\n\n  left: 0;\n  top: 0;\n\n  width: 0;\n  height: 0;\n\n  overflow: hidden;\n\n  border-radius: 50%;\n\n  opacity: 0;\n\n  pointer-events: none;\n\n  z-index: 30;\n\n  transform: translateZ(0);\n\n  will-change:\n    left,\n    top,\n    width,\n    height,\n    border-radius,\n    opacity;\n}\n\n\n\/* =========================================================\n   VIDEO\n========================================================= *\/\n\n.bplr-home-hero__video {\n  display: block;\n\n  width: 100% !important;\n  height: 100% !important;\n\n  min-width: 100% !important;\n  min-height: 100% !important;\n\n  max-width: none !important;\n\n  margin: 0 !important;\n  padding: 0 !important;\n\n  border: 0;\n\n  object-fit: cover;\n  object-position: center center;\n\n  transform: translateZ(0);\n}\n\n\n\/* =========================================================\n   COPY GENERAL\n========================================================= *\/\n\n.bplr-home-hero__copy {\n  position: absolute;\n\n  inset: 0;\n\n  width: 100%;\n  height: 100%;\n\n  margin: 0;\n  padding: 0;\n\n  color: #fff;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  font-weight: 800;\n\n  text-transform: uppercase;\n\n  text-align: center;\n\n  z-index: 20;\n\n  pointer-events: none;\n\n  \/*\n   * Tracking se controla directamente\n   * en cada palabra.\n   *\/\n  letter-spacing: 0;\n}\n\n\n\/* =========================================================\n   LINES\n========================================================= *\/\n\n.bplr-home-hero__line {\n  display: flex;\n\n  align-items: baseline;\n  justify-content: center;\n\n  width: max-content;\n  max-width: 100%;\n\n  margin: 0 auto;\n  padding: 0;\n\n  white-space: nowrap;\n\n  \/*\n   * Espacio entre PALABRAS consistente.\n   *\/\n  gap: var(--bplr-hero-word-gap);\n}\n\n\n\/* =========================================================\n   WORDS\n   TRACKING UNIFORME\n========================================================= *\/\n\n.bplr-home-hero__word {\n  display: inline-block;\n\n  margin: 0;\n  padding: 0;\n\n  opacity: 0;\n\n  letter-spacing:\n    var(--bplr-hero-tracking);\n\n  \/*\n   * Evita que el navegador altere\n   * \u00f3pticamente pares concretos de letras.\n   *\/\n  font-kerning: none;\n\n  font-feature-settings:\n    \"kern\" 0;\n\n  font-variant-ligatures:\n    none;\n\n  transform:\n    translateY(.20em);\n\n  transition:\n    opacity .34s ease,\n    transform .48s cubic-bezier(.22,.8,.3,1);\n}\n\n\n.bplr-home-hero__word.is-visible {\n  opacity: 1;\n\n  transform:\n    translateY(0);\n}\n\n\n\/* =========================================================\n   FINAL COPY\n========================================================= *\/\n\n.bplr-home-hero__final {\n  display: inline-flex;\n\n  align-items: center;\n\n  gap:\n    var(--bplr-hero-word-gap);\n\n  margin: 0;\n  padding: 0;\n\n  line-height: 1;\n\n  transform:\n    skewX(0deg);\n\n  transform-origin:\n    center center;\n\n  transition:\n    transform .48s\n    cubic-bezier(.22,.8,.3,1);\n}\n\n\n.bplr-home-hero__final.is-oblique {\n  transform:\n    skewX(-10deg);\n}\n\n\n\/* =========================================================\n   FINAL LINE\n\n   Evitamos que el gap general tambi\u00e9n\n   afecte la distancia del c\u00edrculo.\n========================================================= *\/\n\n.bplr-home-hero__line--final {\n  gap: 0;\n}\n\n\n\/* =========================================================\n   ORIGIN\n========================================================= *\/\n\n.bplr-home-hero__origin {\n  display: block;\n\n  flex: none;\n\n  margin: 0;\n  padding: 0;\n\n  border-radius: 50%;\n\n  opacity: 0;\n\n  pointer-events: none;\n}\n\n\n\/* =========================================================\n   ORIGIN ROW\n========================================================= *\/\n\n.bplr-home-hero__origin-row {\n  display: flex;\n\n  align-items: center;\n  justify-content: center;\n\n  width: 100%;\n\n  margin: 0;\n  padding: 0;\n}\n\n\n\/* =========================================================\n   DESKTOP\n\n   V7:\n   14.43vw\n\n   V8:\n   -15% = 12.27vw\n========================================================= *\/\n\n.bplr-home-hero__copy--desktop {\n  display: flex;\n\n  flex-direction: column;\n\n  align-items: center;\n  justify-content: center;\n\n  width: 100%;\n  height: 100%;\n\n  padding:\n    4vh\n    1.5vw\n    2vh;\n\n  font-size:\n    clamp(\n      136px,\n      12.27vw,\n      236px\n    );\n\n  line-height: .78;\n\n  text-align: center;\n}\n\n\n\/* =========================================================\n   DESKTOP CIRCLE BASELINE\n========================================================= *\/\n\n.bplr-home-hero__copy--desktop\n.bplr-home-hero__line--final {\n  align-items: flex-end;\n}\n\n\n.bplr-home-hero__copy--desktop\n.bplr-home-hero__origin {\n  \/*\n   * Sigue dependiendo del tama\u00f1o de fuente.\n   * Si la letra cambia, c\u00edrculo cambia.\n   *\/\n\n  width: .74em;\n  height: .74em;\n\n  margin-left: .115em;\n\n  \/*\n   * Ajuste \u00f3ptico de baseline.\n   *\/\n  transform:\n    translateY(-.045em);\n}\n\n\n\/* =========================================================\n   TABLET\n   SE CONSERVA\n========================================================= *\/\n\n.bplr-home-hero__copy--tablet {\n  display: none;\n\n  flex-direction: column;\n\n  align-items: center;\n  justify-content: center;\n\n  width: 100%;\n  height: 100%;\n\n  padding:\n    7vh\n    3vw\n    5vh;\n\n  font-size:\n    clamp(\n      92px,\n      13.1vw,\n      136px\n    );\n\n  line-height: .81;\n\n  text-align: center;\n}\n\n\n.bplr-home-hero__copy--tablet\n.bplr-home-hero__line {\n  justify-content: center;\n}\n\n\n.bplr-home-hero__copy--tablet\n.bplr-home-hero__origin-row {\n  margin-top: .20em;\n}\n\n\n.bplr-home-hero__copy--tablet\n.bplr-home-hero__origin {\n  width: .70em;\n  height: .70em;\n}\n\n\n\/* =========================================================\n   MOBILE\n   SE CONSERVA\n========================================================= *\/\n\n.bplr-home-hero__copy--mobile {\n  display: none;\n\n  flex-direction: column;\n\n  align-items: center;\n  justify-content: center;\n\n  width: 100%;\n  height: 100%;\n\n  padding:\n    8vh\n    10px\n    5vh;\n\n  font-size:\n    clamp(\n      52px,\n      14.5vw,\n      74px\n    );\n\n  line-height: .81;\n\n  text-align: center;\n}\n\n\n.bplr-home-hero__copy--mobile\n.bplr-home-hero__line {\n  justify-content: center;\n}\n\n\n.bplr-home-hero__copy--mobile\n.bplr-home-hero__origin-row {\n  margin-top: .38em;\n}\n\n\n.bplr-home-hero__copy--mobile\n.bplr-home-hero__origin {\n  width: .95em;\n  height: .95em;\n}\n\n\n\/* =========================================================\n   BREAKPOINT \u2014 MOBILE\n========================================================= *\/\n\n@media (max-width: 767px) {\n\n  .bplr-home-hero__copy--desktop,\n  .bplr-home-hero__copy--tablet {\n    display: none !important;\n  }\n\n\n  .bplr-home-hero__copy--mobile {\n    display: flex !important;\n  }\n\n}\n\n\n\/* =========================================================\n   BREAKPOINT \u2014 TABLET\n========================================================= *\/\n\n@media\n(min-width: 768px)\nand\n(max-width: 1024px) {\n\n  .bplr-home-hero__copy--desktop,\n  .bplr-home-hero__copy--mobile {\n    display: none !important;\n  }\n\n\n  .bplr-home-hero__copy--tablet {\n    display: flex !important;\n  }\n\n}\n\n\n\/* =========================================================\n   BREAKPOINT \u2014 DESKTOP\n========================================================= *\/\n\n@media (min-width: 1025px) {\n\n  .bplr-home-hero__copy--desktop {\n    display: flex !important;\n  }\n\n\n  .bplr-home-hero__copy--tablet,\n  .bplr-home-hero__copy--mobile {\n    display: none !important;\n  }\n\n}\n\n<\/style>\n\n\n\n<script>\n\n(function () {\n\n  \/* =====================================================\n     ROOT\n  ===================================================== *\/\n\n  const hero =\n    document.querySelector(\n      '.bplr-home-hero'\n    );\n\n\n  if (!hero) return;\n\n\n  const media =\n    hero.querySelector(\n      '.bplr-home-hero__media'\n    );\n\n\n  const video =\n    hero.querySelector(\n      '.bplr-home-hero__video'\n    );\n\n\n  if (\n    !media ||\n    !video\n  ) {\n\n    return;\n\n  }\n\n\n\n  \/* =====================================================\n     STATE\n  ===================================================== *\/\n\n  let origin =\n    null;\n\n\n  let animationReady =\n    false;\n\n\n  let ticking =\n    false;\n\n\n  let resizeTimer =\n    null;\n\n\n  let resizeFrame =\n    null;\n\n\n  let currentCopy =\n    null;\n\n\n\n  \/* =====================================================\n     HELPERS\n  ===================================================== *\/\n\n  function clamp(\n    value,\n    min,\n    max\n  ) {\n\n    return Math.max(\n      min,\n      Math.min(\n        max,\n        value\n      )\n    );\n\n  }\n\n\n\n  function lerp(\n    start,\n    end,\n    progress\n  ) {\n\n    return (\n      start +\n      (\n        end -\n        start\n      )\n      *\n      progress\n    );\n\n  }\n\n\n\n  function smooth(progress) {\n\n    progress =\n      clamp(\n        progress,\n        0,\n        1\n      );\n\n\n    return (\n      progress *\n      progress *\n      (\n        3 -\n        2 *\n        progress\n      )\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     ACTIVE VERSION\n  ===================================================== *\/\n\n  function getActiveCopy() {\n\n    const versions =\n      Array.from(\n        hero.querySelectorAll(\n          '.bplr-home-hero__copy'\n        )\n      );\n\n\n    for (\n      let i = 0;\n      i < versions.length;\n      i++\n    ) {\n\n      const version =\n        versions[i];\n\n\n      const style =\n        window.getComputedStyle(\n          version\n        );\n\n\n      if (\n        style.display !==\n        'none'\n      ) {\n\n        return version;\n\n      }\n\n    }\n\n\n    return null;\n\n  }\n\n\n\n  \/* =====================================================\n     PREPARE COPY\n  ===================================================== *\/\n\n  function prepareCopy(copy) {\n\n    if (!copy) {\n\n      return;\n\n    }\n\n\n    const words =\n      copy.querySelectorAll(\n        '.bplr-home-hero__word'\n      );\n\n\n    words.forEach(\n      function (word) {\n\n        word.classList.add(\n          'is-visible'\n        );\n\n      }\n    );\n\n\n    const finalCopy =\n      copy.querySelector(\n        '.bplr-home-hero__final'\n      );\n\n\n    if (finalCopy) {\n\n      finalCopy.classList.add(\n        'is-oblique'\n      );\n\n    }\n\n  }\n\n\n\n  \/* =====================================================\n     PREPARE ALL COPIES\n  ===================================================== *\/\n\n  function prepareAllCopies() {\n\n    const copies =\n      hero.querySelectorAll(\n        '.bplr-home-hero__copy'\n      );\n\n\n    copies.forEach(\n      function (copy) {\n\n        prepareCopy(\n          copy\n        );\n\n      }\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     ACTIVE ORIGIN\n  ===================================================== *\/\n\n  function getActiveOrigin() {\n\n    const copy =\n      getActiveCopy();\n\n\n    if (!copy) {\n\n      return null;\n\n    }\n\n\n    return copy.querySelector(\n      '.bplr-home-hero__origin'\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     CAPTURE ORIGIN\n  ===================================================== *\/\n\n  function captureOrigin() {\n\n    const marker =\n      getActiveOrigin();\n\n\n    if (!marker) {\n\n      return false;\n\n    }\n\n\n    const rect =\n      marker.getBoundingClientRect();\n\n\n    if (\n      rect.width <\n      10\n      ||\n      rect.height <\n      10\n    ) {\n\n      return false;\n\n    }\n\n\n    origin =\n      {\n\n        left:\n          rect.left,\n\n        top:\n          rect.top,\n\n        width:\n          rect.width,\n\n        height:\n          rect.height\n\n      };\n\n\n    return true;\n\n  }\n\n\n\n  \/* =====================================================\n     PLACE MEDIA AT CIRCLE\n  ===================================================== *\/\n\n  function placeAtOrigin() {\n\n    if (!origin) {\n\n      return;\n\n    }\n\n\n    media.style.left =\n      origin.left +\n      'px';\n\n\n    media.style.top =\n      origin.top +\n      'px';\n\n\n    media.style.width =\n      origin.width +\n      'px';\n\n\n    media.style.height =\n      origin.height +\n      'px';\n\n\n    media.style.borderRadius =\n      '50%';\n\n\n    media.style.opacity =\n      '1';\n\n  }\n\n\n\n  \/* =====================================================\n     INTRO\n  ===================================================== *\/\n\n  function animateIntro() {\n\n    const copy =\n      getActiveCopy();\n\n\n    if (!copy) {\n\n      return;\n\n    }\n\n\n    currentCopy =\n      copy;\n\n\n    const words =\n      Array.from(\n        copy.querySelectorAll(\n          '.bplr-home-hero__word'\n        )\n      );\n\n\n    const finalCopy =\n      copy.querySelector(\n        '.bplr-home-hero__final'\n      );\n\n\n\n    words.forEach(\n      function (word) {\n\n        word.classList.remove(\n          'is-visible'\n        );\n\n      }\n    );\n\n\n\n    if (finalCopy) {\n\n      finalCopy.classList.remove(\n        'is-oblique'\n      );\n\n    }\n\n\n\n    media.style.opacity =\n      '0';\n\n\n\n    const initialDelay =\n      260;\n\n\n    const step =\n      170;\n\n\n\n    words.forEach(\n      function (\n        word,\n        index\n      ) {\n\n        setTimeout(\n          function () {\n\n            word.classList.add(\n              'is-visible'\n            );\n\n          },\n\n          initialDelay +\n          (\n            index *\n            step\n          )\n\n        );\n\n      }\n    );\n\n\n\n    const finalMoment =\n      initialDelay +\n      (\n        words.length *\n        step\n      )\n      +\n      240;\n\n\n\n    setTimeout(\n      function () {\n\n        if (finalCopy) {\n\n          finalCopy.classList.add(\n            'is-oblique'\n          );\n\n        }\n\n\n        prepareAllCopies();\n\n\n        requestAnimationFrame(\n          function () {\n\n            origin =\n              null;\n\n\n            captureOrigin();\n\n\n            placeAtOrigin();\n\n\n            animationReady =\n              true;\n\n\n            updateHero();\n\n          }\n        );\n\n      },\n\n      finalMoment\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     SCROLL UPDATE\n  ===================================================== *\/\n\n  function updateHero() {\n\n    if (!animationReady) {\n\n      return;\n\n    }\n\n\n    if (!origin) {\n\n      if (\n        !captureOrigin()\n      ) {\n\n        return;\n\n      }\n\n    }\n\n\n\n    const heroRect =\n      hero.getBoundingClientRect();\n\n\n    const viewportW =\n      window.innerWidth;\n\n\n    const viewportH =\n      window.innerHeight;\n\n\n\n    const scrollRange =\n      Math.max(\n        hero.offsetHeight -\n        viewportH,\n        1\n      );\n\n\n\n    const travelled =\n      clamp(\n        -heroRect.top,\n        0,\n        scrollRange\n      );\n\n\n\n    const rawProgress =\n      clamp(\n        travelled \/\n        (\n          scrollRange *\n          .50\n        ),\n        0,\n        1\n      );\n\n\n    const progress =\n      smooth(\n        rawProgress\n      );\n\n\n\n    \/* =================================================\n       POSITION\n    ================================================= *\/\n\n    const currentLeft =\n      lerp(\n        origin.left,\n        0,\n        progress\n      );\n\n\n    const currentTop =\n      lerp(\n        origin.top,\n        0,\n        progress\n      );\n\n\n    const currentWidth =\n      lerp(\n        origin.width,\n        viewportW,\n        progress\n      );\n\n\n    const currentHeight =\n      lerp(\n        origin.height,\n        viewportH,\n        progress\n      );\n\n\n\n    media.style.left =\n      currentLeft +\n      'px';\n\n\n    media.style.top =\n      currentTop +\n      'px';\n\n\n    media.style.width =\n      currentWidth +\n      'px';\n\n\n    media.style.height =\n      currentHeight +\n      'px';\n\n\n    media.style.opacity =\n      '1';\n\n\n\n    \/* =================================================\n       CIRCLE \u2192 RECTANGLE\n    ================================================= *\/\n\n    const radius =\n      lerp(\n        50,\n        0,\n        progress\n      );\n\n\n    media.style.borderRadius =\n      radius +\n      '%';\n\n\n\n    \/* =================================================\n       END\n    ================================================= *\/\n\n    if (\n      heroRect.bottom <=\n      0\n    ) {\n\n      media.style.opacity =\n        '0';\n\n    }\n\n  }\n\n\n\n  \/* =====================================================\n     RESPONSIVE REFRESH\n  ===================================================== *\/\n\n  function refreshResponsiveLayout() {\n\n    if (!animationReady) {\n\n      return;\n\n    }\n\n\n    const newCopy =\n      getActiveCopy();\n\n\n    if (!newCopy) {\n\n      return;\n\n    }\n\n\n    prepareCopy(\n      newCopy\n    );\n\n\n    currentCopy =\n      newCopy;\n\n\n    origin =\n      null;\n\n\n    requestAnimationFrame(\n      function () {\n\n        requestAnimationFrame(\n          function () {\n\n            captureOrigin();\n\n\n            updateHero();\n\n          }\n        );\n\n      }\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     SCROLL\n  ===================================================== *\/\n\n  window.addEventListener(\n    'scroll',\n\n    function () {\n\n      if (ticking) {\n\n        return;\n\n      }\n\n\n      ticking =\n        true;\n\n\n      requestAnimationFrame(\n        function () {\n\n          updateHero();\n\n\n          ticking =\n            false;\n\n        }\n      );\n\n    },\n\n    {\n      passive:\n        true\n    }\n  );\n\n\n\n  \/* =====================================================\n     RESIZE\n  ===================================================== *\/\n\n  window.addEventListener(\n    'resize',\n\n    function () {\n\n      if (!resizeFrame) {\n\n        resizeFrame =\n          requestAnimationFrame(\n            function () {\n\n              resizeFrame =\n                null;\n\n\n              const newCopy =\n                getActiveCopy();\n\n\n              if (\n                newCopy &&\n                newCopy !== currentCopy\n              ) {\n\n                prepareCopy(\n                  newCopy\n                );\n\n\n                currentCopy =\n                  newCopy;\n\n              }\n\n\n              origin =\n                null;\n\n\n              captureOrigin();\n\n\n              updateHero();\n\n            }\n          );\n\n      }\n\n\n\n      clearTimeout(\n        resizeTimer\n      );\n\n\n      resizeTimer =\n        setTimeout(\n          function () {\n\n            refreshResponsiveLayout();\n\n          },\n\n          140\n        );\n\n    }\n  );\n\n\n\n  \/* =====================================================\n     PLAY\n  ===================================================== *\/\n\n  video.muted =\n    true;\n\n\n  video.defaultMuted =\n    true;\n\n\n  video.playsInline =\n    true;\n\n\n\n  const playPromise =\n    video.play();\n\n\n\n  if (\n    playPromise !==\n    undefined\n  ) {\n\n    playPromise.catch(\n      function () {}\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     START\n  ===================================================== *\/\n\n  animateIntro();\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-67183221 e-con-full e-flex e-con e-parent\" data-id=\"67183221\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-18b700ad elementor-widget elementor-widget-html\" data-id=\"18b700ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     BPLR HOME STATEMENT \u2014 MASTER V1\n========================================================= -->\n\n<section class=\"bplr-home-statement\">\n\n  <div class=\"bplr-home-statement__inner\">\n\n    <!-- ROW 1 -->\n    <div class=\"bplr-home-statement__group\">\n\n      <span class=\"bplr-home-statement__prefix\">\n        WE BUILD\n      <\/span>\n\n      <span class=\"bplr-home-statement__keyword\">\n        BRANDS\n      <\/span>\n\n    <\/div>\n\n\n    <!-- ROW 2 -->\n    <div class=\"bplr-home-statement__group\">\n\n      <span class=\"bplr-home-statement__prefix\">\n        FROM\n      <\/span>\n\n      <span class=\"bplr-home-statement__keyword\">\n        PURPOSE\n      <\/span>\n\n    <\/div>\n\n\n    <!-- ROW 3 -->\n    <div class=\"bplr-home-statement__group\">\n\n      <span class=\"bplr-home-statement__prefix\">\n        TO\n      <\/span>\n\n      <span class=\"bplr-home-statement__keyword\">\n        PRESENCE\n      <\/span>\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n\n<style>\n\n\/* =========================================================\n   LOCAL RESET\n========================================================= *\/\n\n.bplr-home-statement,\n.bplr-home-statement *,\n.bplr-home-statement *::before,\n.bplr-home-statement *::after {\n  box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   SECTION\n========================================================= *\/\n\n.bplr-home-statement {\n  position: relative;\n\n  z-index: 40;\n\n  width: 100vw !important;\n  max-width: 100vw !important;\n\n  min-height: 100vh;\n  min-height: 100dvh;\n\n  margin-left: calc(50% - 50vw) !important;\n  margin-right: calc(50% - 50vw) !important;\n\n  padding: 0 !important;\n\n  display: flex;\n\n  align-items: center;\n  justify-content: center;\n\n  overflow: hidden;\n\n  background: #f4f4f4;\n\n  color: #0b0b0d;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  isolation: isolate;\n}\n\n\n\/* =========================================================\n   INNER\n========================================================= *\/\n\n.bplr-home-statement__inner {\n  width: 96vw;\n  max-width: 1900px;\n\n  margin: 0 auto;\n\n  padding:\n    7vh\n    2vw;\n\n  display: flex;\n\n  flex-direction: column;\n\n  align-items: center;\n  justify-content: center;\n}\n\n\n\/* =========================================================\n   GROUPS \u2014 DESKTOP\n========================================================= *\/\n\n.bplr-home-statement__group {\n  width: 100%;\n\n  margin: 0;\n  padding: 0;\n\n  display: flex;\n\n  flex-direction: row;\n\n  align-items: baseline;\n  justify-content: center;\n\n  white-space: nowrap;\n\n  font-size:\n    clamp(\n      140px,\n      11.3vw,\n      218px\n    );\n\n  font-weight: 800;\n\n  line-height: .80;\n\n  letter-spacing: -.035em;\n\n  text-transform: uppercase;\n}\n\n\n\/* =========================================================\n   PREFIXES\n========================================================= *\/\n\n.bplr-home-statement__prefix {\n  display: inline-block;\n\n  flex: none;\n\n  margin-right: .12em;\n\n  opacity: 0;\n\n  transform:\n    translateY(.10em);\n\n  transition:\n    opacity .32s ease,\n    transform .40s\n    cubic-bezier(.22,.8,.3,1);\n}\n\n\n.bplr-home-statement__prefix.is-visible {\n  opacity: 1;\n\n  transform:\n    translateY(0);\n}\n\n\n\/* =========================================================\n   KEYWORDS\n========================================================= *\/\n\n.bplr-home-statement__keyword {\n  --bplr-x: 0px;\n  --bplr-y: 0px;\n  --bplr-skew: 0deg;\n\n  display: inline-block;\n\n  position: relative;\n\n  flex: none;\n\n  margin: 0;\n  padding: 0;\n\n  opacity: 0;\n\n  transform:\n    translate3d(\n      var(--bplr-x),\n      var(--bplr-y),\n      0\n    )\n    skewX(\n      var(--bplr-skew)\n    );\n\n  transform-origin:\n    center center;\n\n  transition:\n    transform .62s\n    cubic-bezier(.22,.8,.3,1),\n    opacity .28s ease;\n\n  will-change:\n    transform,\n    opacity;\n}\n\n\n.bplr-home-statement__keyword.is-visible {\n  opacity: 1;\n}\n\n\n.bplr-home-statement__keyword.is-oblique {\n  --bplr-skew: -10deg;\n}\n\n\n\/* =========================================================\n   TABLET\n========================================================= *\/\n\n@media\n(min-width: 768px)\nand\n(max-width: 1024px) {\n\n  .bplr-home-statement__inner {\n    width: 94vw;\n\n    padding:\n      6vh\n      3vw;\n  }\n\n\n  .bplr-home-statement__group {\n    flex-direction: column;\n\n    align-items: center;\n    justify-content: center;\n\n    font-size:\n      clamp(\n        110px,\n        15vw,\n        154px\n      );\n\n    line-height: .80;\n\n    margin-bottom: .08em;\n  }\n\n\n  .bplr-home-statement__prefix {\n    margin-right: 0;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media (max-width: 767px) {\n\n  .bplr-home-statement {\n    min-height: 100dvh;\n  }\n\n\n  .bplr-home-statement__inner {\n    width: 100%;\n\n    padding:\n      9vh\n      14px\n      8vh;\n  }\n\n\n  .bplr-home-statement__group {\n    flex-direction: column;\n\n    align-items: center;\n    justify-content: center;\n\n    width: 100%;\n\n    margin:\n      0\n      0\n      .10em;\n\n    font-size:\n      clamp(\n        62px,\n        18.3vw,\n        84px\n      );\n\n    line-height: .80;\n\n    letter-spacing: -.035em;\n\n    text-align: center;\n  }\n\n\n  .bplr-home-statement__prefix {\n    margin-right: 0;\n  }\n\n}\n\n<\/style>\n\n\n\n<script>\n\n(function () {\n\n  \/* =====================================================\n     ROOT\n  ===================================================== *\/\n\n  const section =\n    document.querySelector(\n      '.bplr-home-statement'\n    );\n\n\n  if (!section) return;\n\n\n  if (\n    section.dataset.bplrReady ===\n    'true'\n  ) {\n\n    return;\n\n  }\n\n\n  section.dataset.bplrReady =\n    'true';\n\n\n\n  const keywords =\n    Array.from(\n      section.querySelectorAll(\n        '.bplr-home-statement__keyword'\n      )\n    );\n\n\n  const prefixes =\n    Array.from(\n      section.querySelectorAll(\n        '.bplr-home-statement__prefix'\n      )\n    );\n\n\n  if (\n    !keywords.length ||\n    !prefixes.length\n  ) {\n\n    return;\n\n  }\n\n\n\n  \/* =====================================================\n     STATE\n  ===================================================== *\/\n\n  let hasPlayed =\n    false;\n\n\n  let phase =\n    'waiting';\n\n\n  let resizeTimer =\n    null;\n\n\n  let resizeFrame =\n    null;\n\n\n\n  \/* =====================================================\n     CLEAR KEYWORD POSITION\n  ===================================================== *\/\n\n  function clearKeywordPositions() {\n\n    keywords.forEach(\n      function (keyword) {\n\n        keyword.style.setProperty(\n          '--bplr-x',\n          '0px'\n        );\n\n\n        keyword.style.setProperty(\n          '--bplr-y',\n          '0px'\n        );\n\n      }\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     INITIAL CLUSTER\n\n       BRANDS\n       PURPOSE\n       PRESENCE\n\n     Se calcula sobre el viewport real de\n     la propia secci\u00f3n.\n\n     No hay scale.\n     El tama\u00f1o es exactamente el final.\n  ===================================================== *\/\n\n  function prepareCluster() {\n\n    clearKeywordPositions();\n\n\n    \/*\n     * Dejamos que el browser coloque primero\n     * todos los elementos en su layout final.\n     *\/\n\n    const sectionRect =\n      section.getBoundingClientRect();\n\n\n    const targetCenterX =\n      sectionRect.left +\n      (\n        sectionRect.width \/\n        2\n      );\n\n\n    const targetCenterY =\n      sectionRect.top +\n      (\n        sectionRect.height \/\n        2\n      );\n\n\n\n    const heights =\n      keywords.map(\n        function (keyword) {\n\n          return (\n            keyword\n              .getBoundingClientRect()\n              .height\n          );\n\n        }\n      );\n\n\n    const largestHeight =\n      Math.max.apply(\n        null,\n        heights\n      );\n\n\n\n    const viewportWidth =\n      window.innerWidth;\n\n\n    let clusterGap =\n      12;\n\n\n    if (\n      viewportWidth <= 767\n    ) {\n\n      clusterGap =\n        8;\n\n    }\n\n    else if (\n      viewportWidth <= 1024\n    ) {\n\n      clusterGap =\n        14;\n\n    }\n\n\n\n    const step =\n      largestHeight +\n      clusterGap;\n\n\n\n    keywords.forEach(\n      function (\n        keyword,\n        index\n      ) {\n\n        const rect =\n          keyword.getBoundingClientRect();\n\n\n        const currentCenterX =\n          rect.left +\n          (\n            rect.width \/\n            2\n          );\n\n\n        const currentCenterY =\n          rect.top +\n          (\n            rect.height \/\n            2\n          );\n\n\n        const offsetIndex =\n          index -\n          1;\n\n\n        const desiredX =\n          targetCenterX;\n\n\n        const desiredY =\n          targetCenterY +\n          (\n            offsetIndex *\n            step\n          );\n\n\n        const translateX =\n          desiredX -\n          currentCenterX;\n\n\n        const translateY =\n          desiredY -\n          currentCenterY;\n\n\n        keyword.style.setProperty(\n          '--bplr-x',\n          translateX +\n          'px'\n        );\n\n\n        keyword.style.setProperty(\n          '--bplr-y',\n          translateY +\n          'px'\n        );\n\n      }\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     RESET\n  ===================================================== *\/\n\n  function resetInitialState() {\n\n    prefixes.forEach(\n      function (prefix) {\n\n        prefix.classList.remove(\n          'is-visible'\n        );\n\n      }\n    );\n\n\n    keywords.forEach(\n      function (keyword) {\n\n        keyword.classList.remove(\n          'is-visible',\n          'is-oblique'\n        );\n\n      }\n    );\n\n\n    prepareCluster();\n\n  }\n\n\n\n  \/* =====================================================\n     FINAL STATE\n  ===================================================== *\/\n\n  function forceFinalState() {\n\n    clearKeywordPositions();\n\n\n    prefixes.forEach(\n      function (prefix) {\n\n        prefix.classList.add(\n          'is-visible'\n        );\n\n      }\n    );\n\n\n    keywords.forEach(\n      function (keyword) {\n\n        keyword.classList.add(\n          'is-visible',\n          'is-oblique'\n        );\n\n      }\n    );\n\n\n    phase =\n      'finished';\n\n\n    hasPlayed =\n      true;\n\n  }\n\n\n\n  \/* =====================================================\n     ANIMATION\n  ===================================================== *\/\n\n  function runAnimation() {\n\n    if (hasPlayed) {\n\n      return;\n\n    }\n\n\n    hasPlayed =\n      true;\n\n\n    resetInitialState();\n\n\n\n    \/* =================================================\n       PHASE 1\n       KEYWORDS APPEAR\n    ================================================= *\/\n\n    phase =\n      'keywords';\n\n\n    setTimeout(\n      function () {\n\n        keywords.forEach(\n          function (\n            keyword,\n            index\n          ) {\n\n            setTimeout(\n              function () {\n\n                keyword.classList.add(\n                  'is-visible'\n                );\n\n              },\n\n              index *\n              90\n\n            );\n\n          }\n        );\n\n      },\n\n      70\n    );\n\n\n\n    \/* =================================================\n       PHASE 2\n       KEYWORDS MOVE TO FINAL POSITION\n    ================================================= *\/\n\n    setTimeout(\n      function () {\n\n        phase =\n          'moving';\n\n\n        clearKeywordPositions();\n\n      },\n\n      620\n    );\n\n\n\n    \/* =================================================\n       PHASE 3\n       PREFIXES APPEAR\n    ================================================= *\/\n\n    setTimeout(\n      function () {\n\n        phase =\n          'prefixes';\n\n\n        prefixes.forEach(\n          function (\n            prefix,\n            index\n          ) {\n\n            setTimeout(\n              function () {\n\n                prefix.classList.add(\n                  'is-visible'\n                );\n\n              },\n\n              index *\n              145\n\n            );\n\n          }\n        );\n\n      },\n\n      760\n    );\n\n\n\n    \/* =================================================\n       PHASE 4\n       KEYWORDS \u2192 OBLIQUE\n    ================================================= *\/\n\n    setTimeout(\n      function () {\n\n        phase =\n          'oblique';\n\n\n        keywords.forEach(\n          function (\n            keyword,\n            index\n          ) {\n\n            setTimeout(\n              function () {\n\n                keyword.classList.add(\n                  'is-oblique'\n                );\n\n              },\n\n              index *\n              70\n\n            );\n\n          }\n        );\n\n      },\n\n      1480\n    );\n\n\n\n    \/* =================================================\n       FINISHED\n    ================================================= *\/\n\n    setTimeout(\n      function () {\n\n        phase =\n          'finished';\n\n      },\n\n      1850\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     OBSERVER\n  ===================================================== *\/\n\n  const observer =\n    new IntersectionObserver(\n\n      function (entries) {\n\n        entries.forEach(\n          function (entry) {\n\n            if (\n              entry.isIntersecting &&\n              entry.intersectionRatio >\n              .18\n            ) {\n\n              runAnimation();\n\n\n              observer.disconnect();\n\n            }\n\n          }\n        );\n\n      },\n\n      {\n        threshold:\n          [\n            .05,\n            .12,\n            .18,\n            .28\n          ]\n      }\n\n    );\n\n\n  observer.observe(\n    section\n  );\n\n\n\n  \/* =====================================================\n     RESIZE \u2014 LIVE\n  ===================================================== *\/\n\n  window.addEventListener(\n    'resize',\n\n    function () {\n\n      if (!resizeFrame) {\n\n        resizeFrame =\n          requestAnimationFrame(\n            function () {\n\n              resizeFrame =\n                null;\n\n\n              \/*\n               * Si ya termin\u00f3:\n               * responsive simplemente mantiene\n               * el estado final.\n               *\/\n\n              if (\n                phase ===\n                'finished'\n              ) {\n\n                forceFinalState();\n\n                return;\n\n              }\n\n\n              \/*\n               * Si todav\u00eda no comenz\u00f3:\n               * recalculamos el cluster para\n               * la nueva proporci\u00f3n.\n               *\/\n\n              if (\n                phase ===\n                'waiting'\n              ) {\n\n                prepareCluster();\n\n                return;\n\n              }\n\n\n              \/*\n               * Si cambia de breakpoint durante\n               * la animaci\u00f3n, cerramos limpiamente\n               * en estado final.\n               *\/\n\n              forceFinalState();\n\n            }\n          );\n\n      }\n\n\n\n      clearTimeout(\n        resizeTimer\n      );\n\n\n      resizeTimer =\n        setTimeout(\n          function () {\n\n            if (\n              phase ===\n              'waiting'\n            ) {\n\n              prepareCluster();\n\n            }\n\n            else if (\n              phase !==\n              'finished'\n            ) {\n\n              forceFinalState();\n\n            }\n\n          },\n\n          150\n        );\n\n    }\n  );\n\n\n\n  \/* =====================================================\n     INIT AFTER FONTS\n  ===================================================== *\/\n\n  function initialize() {\n\n    resetInitialState();\n\n  }\n\n\n\n  if (\n    document.fonts &&\n    document.fonts.ready\n  ) {\n\n    document.fonts.ready.then(\n      initialize\n    );\n\n  }\n\n  else {\n\n    initialize();\n\n  }\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5f2007ed e-con-full e-flex e-con e-child\" data-id=\"5f2007ed\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-278b8384 elementor-widget elementor-widget-html\" data-id=\"278b8384\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     BPLR HOME ABOUT \u2014 MASTER V5\n     DESKTOP SPLIT \/ TABLET + MOBILE STACK\n     DESKTOP WRAPPER GAP FIX\n========================================================= -->\n\n<section class=\"bplr-home-about\">\n\n  <!-- =====================================================\n       CONTENT\n  ====================================================== -->\n\n  <div class=\"bplr-home-about__content\">\n\n    <div class=\"bplr-home-about__label\">\n      ABOUT US\n    <\/div>\n\n\n    <div class=\"bplr-home-about__main\">\n\n      <h2 class=\"bplr-home-about__title\">\n        BEHIND<br>\n        THE<br>\n        BEAUTY\n      <\/h2>\n\n\n      <p class=\"bplr-home-about__copy\">\n        Before the final frame, there was instinct,\n        chaos and a little bit of magic. Step behind\n        the scenes and discover how it all came to life.\n      <\/p>\n\n    <\/div>\n\n\n   <a\n  href=\"\/behind-the-beauty\/\"\n  class=\"bplr-home-about__button\"\n>\n\n      <span class=\"bplr-home-about__button-text\">\n        LEARN MORE\n      <\/span>\n\n      <span class=\"bplr-home-about__arrow\">\n        \u2192\n      <\/span>\n\n    <\/a>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       IMAGE\n  ====================================================== -->\n\n  <div class=\"bplr-home-about__media\">\n\n    <img decoding=\"async\"\n      src=\"https:\/\/bipolar.mx\/stanging\/wp-content\/uploads\/2026\/10\/SANTO.jpg\"\n      alt=\"Behind the Beauty\"\n      class=\"bplr-home-about__image\"\n    >\n\n  <\/div>\n\n<\/section>\n\n\n<style>\n\n\/* =========================================================\n   LOCAL RESET\n========================================================= *\/\n\n.bplr-home-about,\n.bplr-home-about *,\n.bplr-home-about *::before,\n.bplr-home-about *::after {\n  box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   ROOT\n========================================================= *\/\n\n.bplr-home-about {\n  position: relative;\n\n  width: 100% !important;\n  max-width: none !important;\n\n  height: 88vh;\n  min-height: 720px;\n\n  margin: 0 !important;\n  padding: 0 !important;\n\n  overflow: hidden;\n\n  background: #f4f4f4;\n\n  color: #0b0b0d;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n}\n\n\n\/* =========================================================\n   CONTENT \u2014 DESKTOP\n========================================================= *\/\n\n.bplr-home-about__content {\n  position: absolute;\n\n  left: 0;\n  top: 0;\n\n  width: 48%;\n  height: 100%;\n\n  padding:\n    clamp(42px, 4vw, 72px)\n    clamp(40px, 4.2vw, 76px);\n\n  display: flex;\n\n  flex-direction: column;\n\n  background: #f4f4f4;\n\n  z-index: 2;\n}\n\n\n\/* =========================================================\n   LABEL\n========================================================= *\/\n\n.bplr-home-about__label {\n  width: max-content;\n\n  min-height: 38px;\n\n  margin: 0;\n\n  padding:\n    0 14px;\n\n  display: inline-flex;\n\n  align-items: center;\n  justify-content: center;\n\n  border:\n    1px solid #b6b6b6;\n\n  background:\n    transparent;\n\n  font-size:\n    clamp(\n      16px,\n      1.15vw,\n      20px\n    );\n\n  font-weight: 800;\n\n  line-height: 1;\n\n  text-transform: uppercase;\n\n  color: #0b0b0d;\n}\n\n\n\/* =========================================================\n   MAIN\n========================================================= *\/\n\n.bplr-home-about__main {\n  margin-top: auto;\n  margin-bottom: auto;\n}\n\n\n\/* =========================================================\n   TITLE\n========================================================= *\/\n\n.bplr-home-about__title {\n  margin: 0;\n  padding: 0;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(\n      96px,\n      7.7vw,\n      148px\n    );\n\n  font-weight: 800;\n\n  line-height: .76;\n\n  letter-spacing:\n    -.03em;\n\n  text-transform: uppercase;\n\n  color: #0b0b0d;\n}\n\n\n\/* =========================================================\n   COPY\n========================================================= *\/\n\n.bplr-home-about__copy {\n  max-width:\n    620px;\n\n  margin:\n    clamp(\n      28px,\n      2.3vw,\n      42px\n    )\n    0\n    0;\n\n  padding: 0;\n\n  font-family:\n    \"Barlow\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(\n      17px,\n      1.18vw,\n      22px\n    );\n\n  font-weight: 400;\n\n  line-height:\n    1.30;\n\n  color:\n    #0b0b0d;\n}\n\n\n\/* =========================================================\n   BUTTON\n========================================================= *\/\n\n.bplr-home-about__button,\n.bplr-home-about__button:link,\n.bplr-home-about__button:visited,\n.bplr-home-about__button:hover,\n.bplr-home-about__button:focus,\n.bplr-home-about__button:active {\n\n  width:\n    clamp(\n      220px,\n      16vw,\n      285px\n    ) !important;\n\n  min-height:\n    58px !important;\n\n  margin-top:\n    auto !important;\n\n  padding:\n    0 18px !important;\n\n  display:\n    flex !important;\n\n  align-items:\n    center !important;\n\n  justify-content:\n    space-between !important;\n\n  background:\n    #0b0b0d !important;\n\n  border:\n    1px solid #0b0b0d !important;\n\n  border-radius:\n    0 !important;\n\n  color:\n    #ffffff !important;\n\n  text-decoration:\n    none !important;\n\n  box-shadow:\n    none !important;\n\n  outline:\n    none !important;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif !important;\n\n  font-size:\n    clamp(\n      16px,\n      1.15vw,\n      20px\n    ) !important;\n\n  font-weight:\n    800 !important;\n\n  line-height:\n    1 !important;\n\n  text-transform:\n    uppercase !important;\n}\n\n\n\/* =========================================================\n   BUTTON HOVER\n========================================================= *\/\n\n.bplr-home-about__button-text {\n  display: inline-block;\n\n  transform:\n    skewX(0deg);\n\n  transition:\n    transform .28s\n    cubic-bezier(.22,.8,.3,1);\n}\n\n\n@media\n(hover: hover)\nand\n(pointer: fine) {\n\n  .bplr-home-about__button:hover\n  .bplr-home-about__button-text {\n\n    transform:\n      skewX(-10deg);\n\n  }\n\n}\n\n\n\/* =========================================================\n   ARROW\n========================================================= *\/\n\n.bplr-home-about__arrow {\n  display: inline-block;\n\n  font-family:\n    Arial,\n    sans-serif;\n\n  font-size:\n    31px;\n\n  font-weight:\n    400;\n\n  line-height:\n    1;\n\n  color:\n    #ffffff;\n}\n\n\n\/* =========================================================\n   MEDIA \u2014 DESKTOP\n========================================================= *\/\n\n.bplr-home-about__media {\n  position: absolute;\n\n  right: 0;\n  top: 0;\n\n  width: 52%;\n  height: 100%;\n\n  overflow: hidden;\n\n  z-index: 1;\n}\n\n\n\/* =========================================================\n   IMAGE\n========================================================= *\/\n\n.bplr-home-about__image {\n  position: absolute !important;\n\n  inset: 0 !important;\n\n  display: block !important;\n\n  width: 100% !important;\n  height: 100% !important;\n\n  max-width: none !important;\n  max-height: none !important;\n\n  margin: 0 !important;\n  padding: 0 !important;\n\n  object-fit: cover !important;\n\n  object-position:\n    center center !important;\n}\n\n\/* =========================================================\n   TABLET\n   768 \u2014 1180\n========================================================= *\/\n\n@media\n(min-width: 768px)\nand\n(max-width: 1180px) {\n\n  .bplr-home-about {\n    height: auto;\n\n    min-height: 0;\n\n    display: flex;\n\n    flex-direction: column;\n\n    overflow: hidden;\n  }\n\n\n  \/* IMAGE FIRST *\/\n\n  .bplr-home-about__media {\n    position: relative;\n\n    right: auto;\n    top: auto;\n\n    order: 1;\n\n    width: 100%;\n\n    height: auto;\n\n    aspect-ratio:\n      4 \/ 3;\n\n    flex:\n      0 0 auto;\n  }\n\n\n  .bplr-home-about__image {\n    width: 100%;\n    height: 100%;\n\n    object-fit: cover;\n\n    object-position:\n      center 42%;\n  }\n\n\n  \/* CONTENT *\/\n\n  .bplr-home-about__content {\n    position: relative;\n\n    left: auto;\n    top: auto;\n\n    order: 2;\n\n    width: 100%;\n    height: auto;\n\n    padding:\n      34px\n      40px\n      42px\n      44px;\n  }\n\n\n  .bplr-home-about__label {\n    min-height:\n      40px;\n\n    margin-bottom:\n      34px;\n\n    padding:\n      0 14px;\n\n    font-size:\n      20px;\n  }\n\n\n  .bplr-home-about__main {\n    margin:\n      0;\n  }\n\n\n  .bplr-home-about__title {\n    font-size:\n      clamp(\n        86px,\n        12.5vw,\n        142px\n      );\n\n    line-height:\n      .78;\n  }\n\n\n  .bplr-home-about__copy {\n    max-width:\n      760px;\n\n    margin-top:\n      26px;\n\n    font-size:\n      clamp(\n        18px,\n        2.15vw,\n        23px\n      );\n\n    line-height:\n      1.30;\n  }\n\n\n  .bplr-home-about__button,\n  .bplr-home-about__button:link,\n  .bplr-home-about__button:visited,\n  .bplr-home-about__button:hover,\n  .bplr-home-about__button:focus,\n  .bplr-home-about__button:active {\n\n    width:\n      300px !important;\n\n    min-height:\n      64px !important;\n\n    margin-top:\n      38px !important;\n\n    padding:\n      0 20px !important;\n\n    font-size:\n      20px !important;\n  }\n\n\n  .bplr-home-about__arrow {\n    font-size:\n      33px;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media (max-width: 767px) {\n\n  .bplr-home-about {\n    height:\n      auto;\n\n    min-height:\n      0;\n\n    display:\n      flex;\n\n    flex-direction:\n      column;\n\n    overflow:\n      hidden;\n  }\n\n\n  \/* IMAGE FIRST *\/\n\n  .bplr-home-about__media {\n    position:\n      relative;\n\n    right:\n      auto;\n\n    top:\n      auto;\n\n    order:\n      1;\n\n    width:\n      100%;\n\n    height:\n      auto;\n\n    aspect-ratio:\n      1 \/ 1.05;\n\n    flex:\n      0 0 auto;\n  }\n\n\n  .bplr-home-about__image {\n    width:\n      100%;\n\n    height:\n      100%;\n\n    object-fit:\n      cover;\n\n    object-position:\n      center 38%;\n  }\n\n\n  \/* CONTENT *\/\n\n  .bplr-home-about__content {\n    position:\n      relative;\n\n    left:\n      auto;\n\n    top:\n      auto;\n\n    order:\n      2;\n\n    width:\n      100%;\n\n    height:\n      auto;\n\n    padding:\n      28px\n      24px\n      32px\n      28px;\n  }\n\n\n  .bplr-home-about__label {\n    min-height:\n      36px;\n\n    margin-bottom:\n      30px;\n\n    padding:\n      0 12px;\n\n    font-size:\n      16px;\n  }\n\n\n  .bplr-home-about__main {\n    margin:\n      0;\n  }\n\n\n  .bplr-home-about__title {\n    font-size:\n      clamp(\n        80px,\n        22vw,\n        108px\n      );\n\n    line-height:\n      .76;\n\n    letter-spacing:\n      -.035em;\n  }\n\n\n  .bplr-home-about__copy {\n    max-width:\n      94%;\n\n    margin-top:\n      26px;\n\n    font-size:\n      clamp(\n        17px,\n        4.65vw,\n        20px\n      );\n\n    line-height:\n      1.32;\n  }\n\n\n  .bplr-home-about__button,\n  .bplr-home-about__button:link,\n  .bplr-home-about__button:visited,\n  .bplr-home-about__button:hover,\n  .bplr-home-about__button:focus,\n  .bplr-home-about__button:active {\n\n    width:\n      100% !important;\n\n    min-height:\n      60px !important;\n\n    margin-top:\n      36px !important;\n\n    padding:\n      0 16px !important;\n\n    font-size:\n      18px !important;\n  }\n\n\n  .bplr-home-about__arrow {\n    font-size:\n      31px;\n  }\n\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n  const about =\n    document.querySelector(\n      '.bplr-home-about'\n    );\n\n  const work =\n    document.querySelector(\n      '.bplr-home-work'\n    );\n\n\n  if (!about) return;\n\n\n\n  \/* =====================================================\n     FORCE STYLE\n  ===================================================== *\/\n\n  function forceStyle(\n    element,\n    property,\n    value\n  ) {\n\n    if (!element) return;\n\n\n    element.style.setProperty(\n      property,\n      value,\n      'important'\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     LOWEST COMMON ANCESTOR\n  ===================================================== *\/\n\n  function getCommonAncestor(\n    elementA,\n    elementB\n  ) {\n\n    if (\n      !elementA ||\n      !elementB\n    ) {\n\n      return null;\n\n    }\n\n\n    const ancestors =\n      new Set();\n\n\n    let current =\n      elementA;\n\n\n    while (\n      current\n    ) {\n\n      ancestors.add(\n        current\n      );\n\n\n      current =\n        current.parentElement;\n\n    }\n\n\n    current =\n      elementB;\n\n\n    while (\n      current\n    ) {\n\n      if (\n        ancestors.has(\n          current\n        )\n      ) {\n\n        return current;\n\n      }\n\n\n      current =\n        current.parentElement;\n\n    }\n\n\n    return null;\n\n  }\n\n\n\n  \/* =====================================================\n     NORMALIZE ABOUT\n  ===================================================== *\/\n\n  function normalizeHomeAbout() {\n\n    const aboutWidget =\n      about.closest(\n        '.elementor-widget-html'\n      );\n\n\n    const aboutContainer =\n      aboutWidget\n        ? aboutWidget.closest('.e-con')\n        : null;\n\n\n\n    \/* ===================================================\n       ABOUT HTML WIDGET\n    ==================================================== *\/\n\n    if (\n      aboutWidget\n    ) {\n\n      forceStyle(\n        aboutWidget,\n        'width',\n        '100%'\n      );\n\n      forceStyle(\n        aboutWidget,\n        'max-width',\n        'none'\n      );\n\n      forceStyle(\n        aboutWidget,\n        'margin',\n        '0'\n      );\n\n      forceStyle(\n        aboutWidget,\n        'padding',\n        '0'\n      );\n\n      forceStyle(\n        aboutWidget,\n        'margin-bottom',\n        '0'\n      );\n\n      forceStyle(\n        aboutWidget,\n        'padding-bottom',\n        '0'\n      );\n\n      forceStyle(\n        aboutWidget,\n        'min-height',\n        '0'\n      );\n\n      forceStyle(\n        aboutWidget,\n        'align-self',\n        'stretch'\n      );\n\n    }\n\n\n\n    \/* ===================================================\n       ABOUT CONTAINER\n    ==================================================== *\/\n\n    if (\n      aboutContainer\n    ) {\n\n      forceStyle(\n        aboutContainer,\n        'width',\n        '100%'\n      );\n\n      forceStyle(\n        aboutContainer,\n        'max-width',\n        'none'\n      );\n\n      forceStyle(\n        aboutContainer,\n        'margin',\n        '0'\n      );\n\n      forceStyle(\n        aboutContainer,\n        'margin-bottom',\n        '0'\n      );\n\n      forceStyle(\n        aboutContainer,\n        'padding-bottom',\n        '0'\n      );\n\n      forceStyle(\n        aboutContainer,\n        'gap',\n        '0'\n      );\n\n      forceStyle(\n        aboutContainer,\n        'row-gap',\n        '0'\n      );\n\n    }\n\n\n\n    \/* ===================================================\n       WORK CONTAINER\n       REMOVE ANY SPACE ABOVE IT\n    ==================================================== *\/\n\n    let workWidget =\n      null;\n\n\n    let workContainer =\n      null;\n\n\n    if (\n      work\n    ) {\n\n      workWidget =\n        work.closest(\n          '.elementor-widget-html'\n        );\n\n\n      workContainer =\n        workWidget\n          ? workWidget.closest('.e-con')\n          : null;\n\n\n\n      if (\n        workWidget\n      ) {\n\n        forceStyle(\n          workWidget,\n          'margin-top',\n          '0'\n        );\n\n        forceStyle(\n          workWidget,\n          'padding-top',\n          '0'\n        );\n\n      }\n\n\n\n      if (\n        workContainer\n      ) {\n\n        forceStyle(\n          workContainer,\n          'margin-top',\n          '0'\n        );\n\n        forceStyle(\n          workContainer,\n          'padding-top',\n          '0'\n        );\n\n      }\n\n    }\n\n\n\n    \/* ===================================================\n       IMPORTANT FIX\n\n       FIND THE ELEMENTOR CONTAINER THAT HOLDS\n       BOTH ABOUT + WORK.\n\n       THIS IS WHERE THE SPACE BETWEEN SECTIONS\n       IS MOST LIKELY COMING FROM.\n    ==================================================== *\/\n\n    if (\n      aboutContainer &&\n      workContainer\n    ) {\n\n      const commonContainer =\n        getCommonAncestor(\n          aboutContainer,\n          workContainer\n        );\n\n\n      if (\n        commonContainer &&\n        commonContainer !== document.body &&\n        commonContainer !== document.documentElement\n      ) {\n\n        forceStyle(\n          commonContainer,\n          'gap',\n          '0'\n        );\n\n        forceStyle(\n          commonContainer,\n          'row-gap',\n          '0'\n        );\n\n        forceStyle(\n          commonContainer,\n          '--gap',\n          '0px'\n        );\n\n        forceStyle(\n          commonContainer,\n          '--widgets-spacing',\n          '0px'\n        );\n\n      }\n\n    }\n\n\n\n    \/* ===================================================\n       ALSO CHECK DIRECT BOUNDARY WRAPPERS\n\n       Elementor sometimes adds the spacing on\n       an intermediate wrapper rather than .e-con.\n    ==================================================== *\/\n\n    if (\n      aboutContainer &&\n      workContainer\n    ) {\n\n      let current =\n        aboutContainer.parentElement;\n\n\n      let level =\n        0;\n\n\n      while (\n        current &&\n        current !== document.body &&\n        level < 5\n      ) {\n\n        if (\n          current.contains(\n            aboutContainer\n          ) &&\n          current.contains(\n            workContainer\n          )\n        ) {\n\n          forceStyle(\n            current,\n            'gap',\n            '0'\n          );\n\n          forceStyle(\n            current,\n            'row-gap',\n            '0'\n          );\n\n          forceStyle(\n            current,\n            '--gap',\n            '0px'\n          );\n\n          forceStyle(\n            current,\n            '--widgets-spacing',\n            '0px'\n          );\n\n\n          break;\n\n        }\n\n\n        current =\n          current.parentElement;\n\n\n        level++;\n\n      }\n\n    }\n\n  }\n\n\n\n  \/* =====================================================\n     RUN\n  ===================================================== *\/\n\n  function runAboutFix() {\n\n    normalizeHomeAbout();\n\n\n    requestAnimationFrame(\n      function () {\n\n        normalizeHomeAbout();\n\n      }\n    );\n\n\n    setTimeout(\n      normalizeHomeAbout,\n      100\n    );\n\n\n    setTimeout(\n      normalizeHomeAbout,\n      300\n    );\n\n\n    setTimeout(\n      normalizeHomeAbout,\n      800\n    );\n\n  }\n\n\n\n  runAboutFix();\n\n\n\n  \/* =====================================================\n     FONTS \/ PAGE READY\n  ===================================================== *\/\n\n  window.addEventListener(\n    'load',\n    runAboutFix\n  );\n\n\n\n  \/* =====================================================\n     RESIZE\n  ===================================================== *\/\n\n  let resizeTimer;\n\n\n  window.addEventListener(\n    'resize',\n\n    function () {\n\n      clearTimeout(\n        resizeTimer\n      );\n\n\n      resizeTimer =\n        setTimeout(\n          runAboutFix,\n          120\n        );\n\n    }\n  );\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-20b7b8ee e-con-full work-stack e-flex e-con e-parent\" data-id=\"20b7b8ee\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7f3447ef elementor-widget elementor-widget-html\" data-id=\"7f3447ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     BPLR HOME WORK \u2014 MASTER STEP 10\n     INTRO + 5 CASES + FINAL WORK CTA\n========================================================= -->\n\n<section class=\"bplr-home-work\">\n\n  <!-- =====================================================\n       INTRO\n  ====================================================== -->\n\n  <section class=\"bplr-home-work__intro\">\n\n    <div class=\"bplr-home-work__intro-copy\">\n\n      <div class=\"bplr-home-work__intro-line\">\n\n        <span class=\"bplr-home-work__word\">\n          IT'S\n        <\/span>\n\n        <span class=\"\n          bplr-home-work__word\n          bplr-home-work__word--accent\n        \">\n          MORE\n        <\/span>\n\n      <\/div>\n\n      <div class=\"bplr-home-work__intro-line\">\n\n        <span class=\"bplr-home-work__word\">\n          THAN\n        <\/span>\n\n        <span class=\"\n          bplr-home-work__word\n          bplr-home-work__word--accent\n        \">\n          WORK.\n        <\/span>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n  <!-- =====================================================\n       CASE 01 \u2014 CAMBIA EL MOOD\n  ====================================================== -->\n\n  <article\n    class=\"\n      bplr-home-work__case\n      bplr-home-work__case--01\n    \"\n    style=\"\n      --bplr-case-image:\n      url('https:\/\/bipolar.mx\/wp-content\/uploads\/2026\/10\/Untitled-3.jpg');\n    \"\n  >\n\n    <div class=\"bplr-home-work__case-shade\"><\/div>\n\n    <div class=\"bplr-home-work__case-info\">\n\n      <h3 class=\"bplr-home-work__case-title\">\n        CAMBIA EL MOOD\n      <\/h3>\n\n      <p class=\"bplr-home-work__case-copy\">\n        A burst of color, flavor and refreshment\n        made to shift the mood.\n      <\/p>\n\n      <a\n       href=\"\/cambia-el-mood\/\"\n        class=\"bplr-home-work__case-link\"\n      >\n\n        <span class=\"bplr-home-work__case-link-text\">\n          VIEW CASE\n        <\/span>\n\n        <span class=\"bplr-home-work__case-arrow\">\n          \u2192\n        <\/span>\n\n      <\/a>\n\n    <\/div>\n\n  <\/article>\n\n\n  <!-- =====================================================\n       CASE 02 \u2014 JUNTOS EN EL VIAJE\n  ====================================================== -->\n\n  <article\n    class=\"\n      bplr-home-work__case\n      bplr-home-work__case--02\n    \"\n    style=\"\n      --bplr-case-image:\n      url('https:\/\/bipolar.mx\/stanging\/wp-content\/uploads\/2024\/09\/Uber_cuadrado_21.png');\n    \"\n  >\n\n    <div class=\"bplr-home-work__case-shade\"><\/div>\n\n    <div class=\"bplr-home-work__case-info\">\n\n      <h3 class=\"bplr-home-work__case-title\">\n        JUNTOS EN EL VIAJE\n      <\/h3>\n\n      <p class=\"bplr-home-work__case-copy\">\n        A journey fueled by football, passion and shared memories.\n        Experiencing the game alongside two of Mexico\u2019s greatest\n        football icons.\n      <\/p>\n\n      <a\n        href=\"\/juntos-en-el-viaje\/\"\n        class=\"bplr-home-work__case-link\"\n      >\n\n        <span class=\"bplr-home-work__case-link-text\">\n          VIEW CASE\n        <\/span>\n\n        <span class=\"bplr-home-work__case-arrow\">\n          \u2192\n        <\/span>\n\n      <\/a>\n\n    <\/div>\n\n  <\/article>\n\n\n  <!-- =====================================================\n       CASE 03 \u2014 MISS NOTHING\n  ====================================================== -->\n\n  <article\n    class=\"\n      bplr-home-work__case\n      bplr-home-work__case--03\n    \"\n    style=\"\n      --bplr-case-image:\n      url('https:\/\/bipolar.mx\/wp-content\/uploads\/2024\/03\/DSC_4301-scaled.jpg');\n    \"\n  >\n\n    <div class=\"bplr-home-work__case-shade\"><\/div>\n\n    <div class=\"bplr-home-work__case-info\">\n\n      <h3 class=\"bplr-home-work__case-title\">\n        MISS NOTHING\n      <\/h3>\n\n      <p class=\"bplr-home-work__case-copy\">\n        A bold collision of flavor, attitude and music.\n        Fitzer x Molotov turned up the volume on hard seltzer.\n      <\/p>\n\n      <a\n        href=\"\/miss-nothing\/\"\n        class=\"bplr-home-work__case-link\"\n      >\n\n        <span class=\"bplr-home-work__case-link-text\">\n          VIEW CASE\n        <\/span>\n\n        <span class=\"bplr-home-work__case-arrow\">\n          \u2192\n        <\/span>\n\n      <\/a>\n\n    <\/div>\n\n  <\/article>\n\n\n  <!-- =====================================================\n       CASE 04 \u2014 NOT-SO-SCARY BURGERS\n  ====================================================== -->\n\n  <article\n    class=\"\n      bplr-home-work__case\n      bplr-home-work__case--04\n    \"\n    style=\"\n      --bplr-case-image:\n      url('https:\/\/bipolar.mx\/stanging\/wp-content\/uploads\/2026\/10\/CARLS-Halloween.jpg');\n    \"\n  >\n\n    <div class=\"bplr-home-work__case-shade\"><\/div>\n\n    <div class=\"bplr-home-work__case-info\">\n\n      <h3 class=\"bplr-home-work__case-title\">\n        NOT-SO-SCARY BURGERS\n      <\/h3>\n\n      <p class=\"bplr-home-work__case-copy\">\n        Two unexpected guests crashed Carl\u2019s Jr. for Halloween.\n        Serving burgers, scares and a little chaos along the way.\n      <\/p>\n\n      <a\n        href=\"\/not-so-scary\/\"\n        class=\"bplr-home-work__case-link\"\n      >\n\n        <span class=\"bplr-home-work__case-link-text\">\n          VIEW CASE\n        <\/span>\n\n        <span class=\"bplr-home-work__case-arrow\">\n          \u2192\n        <\/span>\n\n      <\/a>\n\n    <\/div>\n\n  <\/article>\n\n\n  <!-- =====================================================\n       CASE 05 \u2014 SALUD AVANZADA\n       FINAL CASE \/ NORMAL EXIT\n  ====================================================== -->\n\n  <article\n    class=\"\n      bplr-home-work__case\n      bplr-home-work__case--05\n    \"\n    style=\"\n      --bplr-case-image:\n      url('https:\/\/bipolar.mx\/stanging\/wp-content\/uploads\/2026\/10\/TEC-SALUD.jpg');\n    \"\n  >\n\n    <div class=\"bplr-home-work__case-shade\"><\/div>\n\n    <div class=\"bplr-home-work__case-info\">\n\n      <h3 class=\"bplr-home-work__case-title\">\n        SALUD AVANZADA\n      <\/h3>\n\n      <p class=\"bplr-home-work__case-copy\">\n        Hundreds of young minds, driven by the dream of becoming\n        the doctors they once imagined. A journey of purpose,\n        discovery and becoming.\n      <\/p>\n\n      <a\n        href=\"\/salud-avanzada\"\n        class=\"bplr-home-work__case-link\"\n      >\n\n        <span class=\"bplr-home-work__case-link-text\">\n          VIEW CASE\n        <\/span>\n\n        <span class=\"bplr-home-work__case-arrow\">\n          \u2192\n        <\/span>\n\n      <\/a>\n\n    <\/div>\n\n  <\/article>\n\n\n  <!-- =====================================================\n       FINAL WORK CTA\n       NORMAL PAGE FLOW\n  ====================================================== -->\n\n  <section class=\"bplr-home-work__outro\">\n\n    <div class=\"bplr-home-work__outro-inner\">\n\n      <h2 class=\"bplr-home-work__outro-title\">\n\n        <span class=\"bplr-home-work__outro-line\">\n\n          <span class=\"bplr-home-work__outro-word\">\n            THERE'S\n          <\/span>\n\n          <span class=\"bplr-home-work__outro-word\">\n            MORE\n          <\/span>\n\n        <\/span>\n\n\n        <span class=\"bplr-home-work__outro-line\">\n\n          <span class=\"bplr-home-work__outro-word\">\n            TO\n          <\/span>\n\n          <span class=\"\n            bplr-home-work__outro-word\n            bplr-home-work__outro-word--accent\n          \">\n            SEE.\n          <\/span>\n\n        <\/span>\n\n      <\/h2>\n\n\n      <div class=\"bplr-home-work__outro-support\">\n\n        <p class=\"bplr-home-work__outro-copy\">\n          Five stories are just the beginning.<br>\n          Explore the work behind the work.\n        <\/p>\n\n\n        <a\n          href=\"\/work\/\"\n          class=\"bplr-home-work__outro-button\"\n        >\n\n          <span class=\"bplr-home-work__outro-button-text\">\n            VIEW ALL STORIES\n          <\/span>\n\n          <span class=\"bplr-home-work__outro-arrow\">\n            \u2192\n          <\/span>\n\n        <\/a>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n<\/section>\n\n\n<style>\n\n\/* =========================================================\n   LOCAL RESET\n========================================================= *\/\n\n.bplr-home-work,\n.bplr-home-work *,\n.bplr-home-work *::before,\n.bplr-home-work *::after {\n  box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   ROOT\n========================================================= *\/\n\n.bplr-home-work {\n  position: relative;\n\n  width: 100% !important;\n  max-width: none !important;\n\n  margin: 0 !important;\n  padding: 0 !important;\n\n  background: #000;\n  color: #fff;\n\n  overflow: visible;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  --bplr-work-tracking: -.035em;\n  --bplr-work-word-gap: .105em;\n}\n\n\n\/* =========================================================\n   INTRO\n========================================================= *\/\n\n.bplr-home-work__intro {\n  position: sticky;\n  top: 0;\n\n  width: 100%;\n\n  height: 100vh;\n  height: 100dvh;\n\n  min-height: 680px;\n\n  margin: 0;\n  padding: 0;\n\n  display: flex;\n  align-items: center;\n  justify-content: center;\n\n  overflow: hidden;\n\n  background: #000;\n\n  z-index: 1;\n}\n\n\n.bplr-home-work__intro-copy {\n  width: 96%;\n\n  margin: 0 auto;\n\n  padding:\n    4vh\n    2vw;\n\n  display: flex;\n  flex-direction: column;\n\n  align-items: center;\n  justify-content: center;\n\n  text-align: center;\n}\n\n\n.bplr-home-work__intro-line {\n  display: flex;\n\n  align-items: baseline;\n  justify-content: center;\n\n  width: max-content;\n  max-width: 100%;\n\n  margin: 0 auto;\n  padding: 0;\n\n  gap:\n    var(--bplr-work-word-gap);\n\n  white-space: nowrap;\n\n  font-size:\n    clamp(\n      150px,\n      13vw,\n      250px\n    );\n\n  font-weight: 800;\n\n  line-height: .78;\n\n  text-transform: uppercase;\n}\n\n\n\/* =========================================================\n   INTRO WORDS\n========================================================= *\/\n\n.bplr-home-work__word {\n  display: inline-block;\n\n  margin: 0;\n  padding: 0;\n\n  opacity: 0;\n\n  letter-spacing:\n    var(--bplr-work-tracking);\n\n  font-kerning: none;\n\n  font-feature-settings:\n    \"kern\" 0;\n\n  font-variant-ligatures:\n    none;\n\n  transform:\n    translateY(.18em)\n    skewX(0deg);\n\n  transform-origin:\n    center center;\n\n  transition:\n    opacity .34s ease,\n    transform .48s\n    cubic-bezier(.22,.8,.3,1);\n\n  will-change:\n    opacity,\n    transform;\n}\n\n\n.bplr-home-work__word.is-visible {\n  opacity: 1;\n\n  transform:\n    translateY(0)\n    skewX(0deg);\n}\n\n\n.bplr-home-work__word--accent.is-oblique {\n  opacity: 1;\n\n  transform:\n    translateY(0)\n    skewX(-10deg);\n}\n\n\n\/* =========================================================\n   CASE MASTER\n========================================================= *\/\n\n.bplr-home-work__case {\n  position: sticky;\n  top: 0;\n\n  width: 100%;\n\n  height: 100vh;\n  height: 100dvh;\n\n  min-height: 680px;\n\n  margin: 0;\n  padding: 0;\n\n  overflow: hidden;\n\n  background-color: #111;\n\n  background-image:\n    var(--bplr-case-image);\n\n  background-repeat:\n    no-repeat;\n\n  background-size:\n    cover;\n\n  background-position:\n    center center;\n\n  color: #fff;\n\n  isolation: isolate;\n}\n\n\n\/* =========================================================\n   STACK ORDER\n========================================================= *\/\n\n.bplr-home-work__case--01 {\n  z-index: 2;\n}\n\n.bplr-home-work__case--02 {\n  z-index: 3;\n}\n\n.bplr-home-work__case--03 {\n  z-index: 4;\n}\n\n.bplr-home-work__case--04 {\n  z-index: 5;\n}\n\n.bplr-home-work__case--05 {\n  z-index: 6;\n}\n\n\n\/* =========================================================\n   SHADE\n========================================================= *\/\n\n.bplr-home-work__case-shade {\n  position: absolute;\n\n  inset: 0;\n\n  width: 100%;\n  height: 100%;\n\n  z-index: 1;\n\n  pointer-events: none;\n\n  background:\n    linear-gradient(\n      180deg,\n      rgba(0,0,0,.00) 16%,\n      rgba(0,0,0,.02) 34%,\n      rgba(0,0,0,.13) 52%,\n      rgba(0,0,0,.48) 78%,\n      rgba(0,0,0,.72) 100%\n    );\n}\n\n\n\/* =========================================================\n   CASE INFO\n========================================================= *\/\n\n.bplr-home-work__case-info {\n  position: absolute;\n\n  left:\n    clamp(\n      34px,\n      4vw,\n      76px\n    );\n\n  right:\n    clamp(\n      34px,\n      4vw,\n      76px\n    );\n\n  top: 57%;\n\n  bottom: auto;\n\n  z-index: 3;\n\n  width:\n    min(\n      760px,\n      calc(100% - 68px)\n    );\n\n  margin: 0;\n  padding: 0;\n\n  color: #fff;\n\n  opacity: 0;\n\n  transform:\n    translate3d(\n      0,\n      24px,\n      0\n    );\n\n  transition:\n    opacity .55s ease,\n    transform .62s\n    cubic-bezier(.22,.8,.3,1);\n\n  will-change:\n    opacity,\n    transform;\n}\n\n\n.bplr-home-work__case.is-revealed\n.bplr-home-work__case-info {\n\n  opacity: 1;\n\n  transform:\n    translate3d(\n      0,\n      0,\n      0\n    );\n}\n\n\n\/* =========================================================\n   CASE TITLE\n========================================================= *\/\n\n.bplr-home-work__case-title {\n  margin: 0;\n  padding: 0;\n\n  color: #fff;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(\n      78px,\n      7.2vw,\n      136px\n    );\n\n  font-weight: 800;\n\n  line-height: .80;\n\n  letter-spacing:\n    -.035em;\n\n  font-kerning: none;\n\n  font-feature-settings:\n    \"kern\" 0;\n\n  text-transform:\n    uppercase;\n}\n\n\n\/* =========================================================\n   CASE DESCRIPTION\n========================================================= *\/\n\n.bplr-home-work__case-copy {\n  max-width: 570px;\n\n  margin:\n    clamp(\n      18px,\n      1.7vw,\n      28px\n    )\n    0\n    0;\n\n  padding: 0;\n\n  color: #fff;\n\n  font-family:\n    \"Barlow\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(\n      17px,\n      1.2vw,\n      22px\n    );\n\n  font-weight: 400;\n\n  line-height: 1.28;\n}\n\n\n\/* =========================================================\n   CASE CTA\n========================================================= *\/\n\n.bplr-home-work__case-link,\n.bplr-home-work__case-link:link,\n.bplr-home-work__case-link:visited,\n.bplr-home-work__case-link:hover,\n.bplr-home-work__case-link:focus,\n.bplr-home-work__case-link:active {\n\n  width:\n    clamp(\n      220px,\n      16vw,\n      270px\n    ) !important;\n\n  min-height:\n    58px !important;\n\n  margin-top:\n    clamp(\n      24px,\n      2.1vw,\n      34px\n    ) !important;\n\n  padding:\n    0 18px !important;\n\n  display:\n    inline-flex !important;\n\n  align-items:\n    center !important;\n\n  justify-content:\n    space-between !important;\n\n  gap:\n    20px !important;\n\n  color:\n    #fff !important;\n\n  background:\n    transparent !important;\n\n  border:\n    1px solid rgba(255,255,255,.95) !important;\n\n  border-radius:\n    0 !important;\n\n  box-shadow:\n    none !important;\n\n  outline:\n    none !important;\n\n  text-decoration:\n    none !important;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif !important;\n\n  font-size:\n    clamp(\n      17px,\n      1.15vw,\n      21px\n    ) !important;\n\n  font-weight:\n    800 !important;\n\n  line-height:\n    1 !important;\n\n  text-transform:\n    uppercase !important;\n\n  transition:\n    background-color .25s ease,\n    color .25s ease;\n}\n\n\n.bplr-home-work__case-link-text {\n  display: inline-block;\n\n  transform:\n    skewX(0deg);\n\n  transition:\n    transform .25s ease;\n}\n\n\n.bplr-home-work__case-arrow {\n  display: inline-block;\n\n  font-family:\n    Arial,\n    sans-serif;\n\n  font-size:\n    1.35em;\n\n  font-weight: 400;\n\n  line-height: 1;\n}\n\n\n@media\n(hover: hover)\nand\n(pointer: fine) {\n\n  .bplr-home-work__case-link:hover {\n\n    background:\n      #fff !important;\n\n    color:\n      #0b0b0d !important;\n  }\n\n\n  .bplr-home-work__case-link:hover\n  .bplr-home-work__case-link-text {\n\n    transform:\n      skewX(-10deg);\n  }\n\n}\n\n\n\/* =========================================================\n   FINAL WORK CTA\n========================================================= *\/\n\n.bplr-home-work__outro {\n  position: relative;\n\n  z-index: 7;\n\n  width: 100%;\n\n  min-height: 100vh;\n  min-height: 100dvh;\n\n  margin: 0;\n\n  padding:\n    clamp(76px, 8vh, 110px)\n    30px;\n\n  display: flex;\n\n  align-items: center;\n  justify-content: center;\n\n  background:\n    #f4f4f4;\n\n  color:\n    #0b0b0d;\n\n  overflow: hidden;\n}\n\n\n.bplr-home-work__outro-inner {\n  width: 100%;\n\n  max-width: none;\n\n  margin:\n    0 auto;\n\n  display: flex;\n\n  flex-direction: column;\n\n  align-items: center;\n  justify-content: center;\n}\n\n\n\/* =========================================================\n   OUTRO TITLE \u2014 BASE\n========================================================= *\/\n\n.bplr-home-work__outro-title {\n  width: 100%;\n\n  margin: 0;\n  padding: 0;\n\n  text-align: center;\n\n  color:\n    #0b0b0d;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  font-weight: 800;\n\n  line-height: .78;\n\n  letter-spacing:\n    -.035em;\n\n  font-kerning: none;\n\n  font-feature-settings:\n    \"kern\" 0;\n\n  text-transform:\n    uppercase;\n}\n\n\n.bplr-home-work__outro-line {\n  display: flex;\n\n  align-items: baseline;\n  justify-content: center;\n\n  gap:\n    .105em;\n\n  white-space:\n    nowrap;\n}\n\n\n\/* =========================================================\n   OUTRO WORD ANIMATION\n========================================================= *\/\n\n.bplr-home-work__outro-word {\n  display:\n    inline-block;\n\n  opacity:\n    0;\n\n  transform:\n    translateY(.16em)\n    skewX(0deg);\n\n  transform-origin:\n    center center;\n\n  transition:\n    opacity .35s ease,\n    transform .5s\n    cubic-bezier(.22,.8,.3,1);\n\n  will-change:\n    opacity,\n    transform;\n}\n\n\n.bplr-home-work__outro-word.is-visible {\n  opacity:\n    1;\n\n  transform:\n    translateY(0)\n    skewX(0deg);\n}\n\n\n.bplr-home-work__outro-word--accent.is-oblique {\n  opacity:\n    1;\n\n  transform:\n    translateY(0)\n    skewX(-10deg);\n}\n\n\n\/* =========================================================\n   OUTRO SUPPORT\n========================================================= *\/\n\n.bplr-home-work__outro-support {\n  width:\n    min(\n      680px,\n      82vw\n    );\n\n  opacity:\n    0;\n\n  transform:\n    translateY(18px);\n\n  transition:\n    opacity .5s ease,\n    transform .58s\n    cubic-bezier(.22,.8,.3,1);\n}\n\n\n.bplr-home-work__outro-support.is-visible {\n  opacity:\n    1;\n\n  transform:\n    translateY(0);\n}\n\n\n\/* =========================================================\n   OUTRO COPY\n========================================================= *\/\n\n.bplr-home-work__outro-copy {\n  width:\n    100%;\n\n  margin:\n    0;\n\n  padding:\n    0;\n\n  color:\n    #0b0b0d;\n\n  font-family:\n    \"Barlow\",\n    Arial,\n    sans-serif;\n\n  font-weight:\n    400;\n\n  line-height:\n    1.28;\n\n  text-align:\n    center;\n}\n\n\n\/* =========================================================\n   OUTRO BUTTON\n========================================================= *\/\n\n.bplr-home-work__outro-button,\n.bplr-home-work__outro-button:link,\n.bplr-home-work__outro-button:visited,\n.bplr-home-work__outro-button:hover,\n.bplr-home-work__outro-button:focus,\n.bplr-home-work__outro-button:active {\n\n  width:\n    clamp(\n      250px,\n      18vw,\n      300px\n    ) !important;\n\n  min-height:\n    64px !important;\n\n  padding:\n    0 22px !important;\n\n  display:\n    flex !important;\n\n  align-items:\n    center !important;\n\n  justify-content:\n    space-between !important;\n\n  gap:\n    18px !important;\n\n  background:\n    #0b0b0d !important;\n\n  border:\n    1px solid #0b0b0d !important;\n\n  border-radius:\n    0 !important;\n\n  color:\n    #fff !important;\n\n  text-decoration:\n    none !important;\n\n  box-shadow:\n    none !important;\n\n  outline:\n    none !important;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif !important;\n\n  font-size:\n    clamp(\n      17px,\n      1.2vw,\n      21px\n    ) !important;\n\n  font-weight:\n    800 !important;\n\n  line-height:\n    1 !important;\n\n  text-transform:\n    uppercase !important;\n}\n\n\n.bplr-home-work__outro-button-text {\n  display:\n    inline-block;\n\n  transform:\n    skewX(0deg);\n\n  transition:\n    transform .28s\n    cubic-bezier(.22,.8,.3,1);\n}\n\n\n.bplr-home-work__outro-arrow {\n  display:\n    inline-block;\n\n  color:\n    #fff;\n\n  font-family:\n    Arial,\n    sans-serif;\n\n  font-size:\n    1.45em;\n\n  font-weight:\n    400;\n\n  line-height:\n    1;\n}\n\n\n@media\n(hover: hover)\nand\n(pointer: fine) {\n\n  .bplr-home-work__outro-button:hover\n  .bplr-home-work__outro-button-text {\n\n    transform:\n      skewX(-10deg);\n  }\n\n}\n\n\n\/* =========================================================\n   DESKTOP\n   1181+\n========================================================= *\/\n\n@media (min-width: 1181px) {\n\n  \/* =====================================================\n     TITLE \u2014 TWO LINES\n     THERE'S MORE\n     TO SEE.\n  ===================================================== *\/\n\n  .bplr-home-work__outro-title {\n    display:\n      block;\n\n    width:\n      100%;\n\n    font-size:\n      clamp(\n        150px,\n        13vw,\n        250px\n      );\n\n    line-height:\n      .78;\n\n    text-align:\n      center;\n  }\n\n\n  .bplr-home-work__outro-line {\n    display:\n      flex;\n\n    align-items:\n      baseline;\n\n    justify-content:\n      center;\n\n    width:\n      100%;\n\n    gap:\n      .105em;\n\n    white-space:\n      nowrap;\n  }\n\n\n  \/* =====================================================\n     SUPPORT\n  ===================================================== *\/\n\n  .bplr-home-work__outro-support {\n    width:\n      min(\n        680px,\n        74vw\n      );\n\n    margin-top:\n      clamp(\n        56px,\n        5.8vh,\n        74px\n      );\n  }\n\n\n  .bplr-home-work__outro-copy {\n    font-size:\n      clamp(\n        21px,\n        1.5vw,\n        27px\n      );\n\n    text-align:\n      center;\n  }\n\n\n  .bplr-home-work__outro-button,\n  .bplr-home-work__outro-button:link,\n  .bplr-home-work__outro-button:visited,\n  .bplr-home-work__outro-button:hover,\n  .bplr-home-work__outro-button:focus,\n  .bplr-home-work__outro-button:active {\n\n    margin:\n      20px\n      auto\n      0 !important;\n  }\n\n}\n\n\n\/* =========================================================\n   TABLET\n   768 \u2014 1180\n========================================================= *\/\n\n@media\n(min-width: 768px)\nand\n(max-width: 1180px) {\n\n  \/* INTRO *\/\n\n  .bplr-home-work__intro {\n    height:\n      100dvh;\n\n    min-height:\n      650px;\n  }\n\n\n  .bplr-home-work__intro-copy {\n    width:\n      96%;\n\n    padding:\n      6vh\n      3vw;\n  }\n\n\n  .bplr-home-work__intro-line {\n    font-size:\n      clamp(\n        112px,\n        15vw,\n        170px\n      );\n\n    line-height:\n      .80;\n  }\n\n\n  \/* CASE *\/\n\n  .bplr-home-work__case {\n    height:\n      100dvh;\n\n    min-height:\n      650px;\n  }\n\n\n  .bplr-home-work__case-info {\n    left:\n      44px;\n\n    right:\n      42px;\n\n    top:\n      56%;\n\n    width:\n      min(\n        680px,\n        calc(100% - 86px)\n      );\n  }\n\n\n  .bplr-home-work__case-title {\n    font-size:\n      clamp(\n        74px,\n        10.3vw,\n        118px\n      );\n  }\n\n\n  .bplr-home-work__case-copy {\n    max-width:\n      610px;\n\n    font-size:\n      clamp(\n        18px,\n        2.1vw,\n        22px\n      );\n  }\n\n\n  .bplr-home-work__case-link,\n  .bplr-home-work__case-link:link,\n  .bplr-home-work__case-link:visited,\n  .bplr-home-work__case-link:hover,\n  .bplr-home-work__case-link:focus,\n  .bplr-home-work__case-link:active {\n\n    width:\n      260px !important;\n\n    min-height:\n      60px !important;\n\n    font-size:\n      19px !important;\n  }\n\n\n  \/* OUTRO *\/\n\n  .bplr-home-work__outro {\n    min-height:\n      100dvh;\n\n    padding:\n      84px\n      34px;\n  }\n\n\n  .bplr-home-work__outro-title {\n    display:\n      block;\n\n    font-size:\n      clamp(\n        112px,\n        15.5vw,\n        170px\n      );\n\n    line-height:\n      .79;\n\n    text-align:\n      center;\n  }\n\n\n  .bplr-home-work__outro-line {\n    width:\n      100%;\n\n    justify-content:\n      center;\n  }\n\n\n  .bplr-home-work__outro-support {\n    width:\n      min(\n        560px,\n        78vw\n      );\n\n    margin-top:\n      52px;\n  }\n\n\n  .bplr-home-work__outro-copy {\n    font-size:\n      clamp(\n        20px,\n        2.5vw,\n        25px\n      );\n\n    text-align:\n      center;\n  }\n\n\n  .bplr-home-work__outro-button,\n  .bplr-home-work__outro-button:link,\n  .bplr-home-work__outro-button:visited,\n  .bplr-home-work__outro-button:hover,\n  .bplr-home-work__outro-button:focus,\n  .bplr-home-work__outro-button:active {\n\n    width:\n      290px !important;\n\n    min-height:\n      64px !important;\n\n    margin:\n      20px\n      auto\n      0 !important;\n\n    font-size:\n      20px !important;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n   0 \u2014 767\n========================================================= *\/\n\n@media (max-width: 767px) {\n\n  \/* INTRO *\/\n\n  .bplr-home-work__intro {\n    height:\n      100dvh;\n\n    min-height:\n      600px;\n  }\n\n\n  .bplr-home-work__intro-copy {\n    width:\n      100%;\n\n    padding:\n      7vh\n      14px;\n  }\n\n\n  .bplr-home-work__intro-line {\n    font-size:\n      clamp(\n        72px,\n        20vw,\n        104px\n      );\n\n    line-height:\n      .80;\n\n    gap:\n      .09em;\n  }\n\n\n  \/* CASE *\/\n\n  .bplr-home-work__case {\n    height:\n      100dvh;\n\n    min-height:\n      600px;\n\n    background-position:\n      center center;\n  }\n\n\n  .bplr-home-work__case-shade {\n    background:\n      linear-gradient(\n        180deg,\n        rgba(0,0,0,.00) 18%,\n        rgba(0,0,0,.04) 36%,\n        rgba(0,0,0,.19) 54%,\n        rgba(0,0,0,.58) 82%,\n        rgba(0,0,0,.78) 100%\n      );\n  }\n\n\n  .bplr-home-work__case-info {\n    left:\n      28px;\n\n    right:\n      24px;\n\n    top:\n      55%;\n\n    width:\n      auto;\n  }\n\n\n  .bplr-home-work__case-title {\n    font-size:\n      clamp(\n        58px,\n        16vw,\n        84px\n      );\n\n    line-height:\n      .80;\n  }\n\n\n  .bplr-home-work__case-copy {\n    max-width:\n      92%;\n\n    margin-top:\n      16px;\n\n    font-size:\n      clamp(\n        16px,\n        4.4vw,\n        19px\n      );\n\n    line-height:\n      1.28;\n  }\n\n\n  .bplr-home-work__case-link,\n  .bplr-home-work__case-link:link,\n  .bplr-home-work__case-link:visited,\n  .bplr-home-work__case-link:hover,\n  .bplr-home-work__case-link:focus,\n  .bplr-home-work__case-link:active {\n\n    width:\n      220px !important;\n\n    min-height:\n      56px !important;\n\n    margin-top:\n      22px !important;\n\n    font-size:\n      17px !important;\n  }\n\n\n  \/* OUTRO *\/\n\n  .bplr-home-work__outro {\n    min-height:\n      100dvh;\n\n    padding:\n      68px\n      22px;\n  }\n\n\n  .bplr-home-work__outro-inner {\n    width:\n      100%;\n  }\n\n\n  .bplr-home-work__outro-title {\n    display:\n      block;\n\n    font-size:\n      clamp(\n        70px,\n        20vw,\n        104px\n      );\n\n    line-height:\n      .80;\n\n    text-align:\n      center;\n  }\n\n\n  .bplr-home-work__outro-line {\n    width:\n      100%;\n\n    justify-content:\n      center;\n\n    gap:\n      .08em;\n  }\n\n\n  \/* MOBILE = THREE LINES\n     THERE'S\n     MORE\n     TO SEE.\n  *\/\n\n  .bplr-home-work__outro-line:first-child {\n    flex-direction:\n      column;\n\n    align-items:\n      center;\n\n    gap:\n      0;\n  }\n\n\n  .bplr-home-work__outro-support {\n    width:\n      min(\n        90vw,\n        430px\n      );\n\n    margin-top:\n      42px;\n  }\n\n\n  .bplr-home-work__outro-copy {\n    font-size:\n      clamp(\n        17px,\n        4.8vw,\n        21px\n      );\n\n    line-height:\n      1.30;\n\n    text-align:\n      center;\n  }\n\n\n  .bplr-home-work__outro-button,\n  .bplr-home-work__outro-button:link,\n  .bplr-home-work__outro-button:visited,\n  .bplr-home-work__outro-button:hover,\n  .bplr-home-work__outro-button:focus,\n  .bplr-home-work__outro-button:active {\n\n    width:\n      260px !important;\n\n    min-height:\n      60px !important;\n\n    margin:\n      18px\n      auto\n      0 !important;\n\n    font-size:\n      18px !important;\n  }\n\n}\n\n\n\/* =========================================================\n   CASE 05\n   EXIT FROM STICKY STACK\n========================================================= *\/\n\n.bplr-home-work__case.bplr-home-work__case--05 {\n  position:\n    relative;\n\n  top:\n    auto;\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n  \/* =====================================================\n     ROOT\n  ===================================================== *\/\n\n  const work =\n    document.querySelector(\n      '.bplr-home-work'\n    );\n\n\n  if (!work) return;\n\n\n  const intro =\n    work.querySelector(\n      '.bplr-home-work__intro'\n    );\n\n\n  const cases =\n    Array.from(\n      work.querySelectorAll(\n        '.bplr-home-work__case'\n      )\n    );\n\n\n  const outro =\n    work.querySelector(\n      '.bplr-home-work__outro'\n    );\n\n\n  if (!intro) return;\n\n\n  const words =\n    Array.from(\n      intro.querySelectorAll(\n        '.bplr-home-work__word'\n      )\n    );\n\n\n  const accents =\n    Array.from(\n      intro.querySelectorAll(\n        '.bplr-home-work__word--accent'\n      )\n    );\n\n\n\n  \/* =====================================================\n     NORMALIZE ELEMENTOR\n  ===================================================== *\/\n\n  function normalizeHomeWork() {\n\n    const widget =\n      work.closest(\n        '.elementor-widget-html'\n      );\n\n\n    if (widget) {\n\n      widget.style.width =\n        '100%';\n\n      widget.style.maxWidth =\n        'none';\n\n      widget.style.flex =\n        '0 0 100%';\n\n      widget.style.flexBasis =\n        '100%';\n\n      widget.style.alignSelf =\n        'stretch';\n\n      widget.style.margin =\n        '0';\n\n      widget.style.padding =\n        '0';\n\n      widget.style.minWidth =\n        '0';\n\n    }\n\n\n    const container =\n      widget\n        ? widget.closest('.e-con')\n        : null;\n\n\n    if (container) {\n\n      container.style.width =\n        '100%';\n\n      container.style.maxWidth =\n        'none';\n\n      container.style.flex =\n        '0 0 100%';\n\n      container.style.flexBasis =\n        '100%';\n\n      container.style.alignSelf =\n        'stretch';\n\n      container.style.margin =\n        '0';\n\n      container.style.padding =\n        '0';\n\n      container.style.gap =\n        '0';\n\n      container.style.minWidth =\n        '0';\n\n    }\n\n\n    if (\n      widget &&\n      widget.parentElement &&\n      widget.parentElement !== container\n    ) {\n\n      const parent =\n        widget.parentElement;\n\n\n      parent.style.width =\n        '100%';\n\n      parent.style.maxWidth =\n        'none';\n\n      parent.style.flex =\n        '0 0 100%';\n\n      parent.style.flexBasis =\n        '100%';\n\n      parent.style.alignSelf =\n        'stretch';\n\n      parent.style.margin =\n        '0';\n\n      parent.style.padding =\n        '0';\n\n      parent.style.gap =\n        '0';\n\n      parent.style.minWidth =\n        '0';\n\n    }\n\n  }\n\n\n\n  \/* =====================================================\n     INTRO ANIMATION\n  ===================================================== *\/\n\n  let introHasPlayed =\n    false;\n\n\n  function resetIntro() {\n\n    words.forEach(\n      function (word) {\n\n        word.classList.remove(\n          'is-visible',\n          'is-oblique'\n        );\n\n      }\n    );\n\n  }\n\n\n  function playIntro() {\n\n    if (\n      introHasPlayed\n    ) {\n\n      return;\n\n    }\n\n\n    introHasPlayed =\n      true;\n\n\n    resetIntro();\n\n\n    const initialDelay =\n      120;\n\n\n    const wordStep =\n      180;\n\n\n    words.forEach(\n      function (\n        word,\n        index\n      ) {\n\n        setTimeout(\n          function () {\n\n            word.classList.add(\n              'is-visible'\n            );\n\n          },\n\n          initialDelay +\n          (\n            index *\n            wordStep\n          )\n\n        );\n\n      }\n    );\n\n\n    const obliqueMoment =\n      initialDelay +\n      (\n        words.length *\n        wordStep\n      )\n      +\n      260;\n\n\n    setTimeout(\n      function () {\n\n        accents.forEach(\n          function (word) {\n\n            word.classList.add(\n              'is-oblique'\n            );\n\n          }\n        );\n\n      },\n\n      obliqueMoment\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     INTRO OBSERVER\n  ===================================================== *\/\n\n  const introObserver =\n    new IntersectionObserver(\n\n      function (entries) {\n\n        entries.forEach(\n          function (entry) {\n\n            if (\n              entry.isIntersecting &&\n              entry.intersectionRatio >=\n              .22\n            ) {\n\n              playIntro();\n\n              introObserver.disconnect();\n\n            }\n\n          }\n        );\n\n      },\n\n      {\n        threshold:\n          [\n            .08,\n            .15,\n            .22,\n            .32\n          ]\n      }\n\n    );\n\n\n  introObserver.observe(\n    intro\n  );\n\n\n\n  \/* =====================================================\n     CASE REVEALS\n  ===================================================== *\/\n\n  function updateCaseReveals() {\n\n    cases.forEach(\n      function (caseElement) {\n\n        if (\n          caseElement.classList.contains(\n            'is-revealed'\n          )\n        ) {\n\n          return;\n\n        }\n\n\n        const rect =\n          caseElement.getBoundingClientRect();\n\n\n        if (\n          rect.top <= 8 &&\n          rect.bottom > 0\n        ) {\n\n          caseElement.classList.add(\n            'is-revealed'\n          );\n\n        }\n\n      }\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     OUTRO ANIMATION\n  ===================================================== *\/\n\n  let outroHasPlayed =\n    false;\n\n\n  function playOutro() {\n\n    if (\n      outroHasPlayed ||\n      !outro\n    ) {\n\n      return;\n\n    }\n\n\n    outroHasPlayed =\n      true;\n\n\n    const outroWords =\n      Array.from(\n        outro.querySelectorAll(\n          '.bplr-home-work__outro-word'\n        )\n      );\n\n\n    const outroAccent =\n      outro.querySelector(\n        '.bplr-home-work__outro-word--accent'\n      );\n\n\n    const outroSupport =\n      outro.querySelector(\n        '.bplr-home-work__outro-support'\n      );\n\n\n    const initialDelay =\n      100;\n\n\n    const wordStep =\n      170;\n\n\n    outroWords.forEach(\n      function (\n        word,\n        index\n      ) {\n\n        setTimeout(\n          function () {\n\n            word.classList.add(\n              'is-visible'\n            );\n\n          },\n\n          initialDelay +\n          (\n            index *\n            wordStep\n          )\n\n        );\n\n      }\n    );\n\n\n    const obliqueMoment =\n      initialDelay +\n      (\n        outroWords.length *\n        wordStep\n      )\n      +\n      220;\n\n\n    setTimeout(\n      function () {\n\n        if (\n          outroAccent\n        ) {\n\n          outroAccent.classList.add(\n            'is-oblique'\n          );\n\n        }\n\n      },\n\n      obliqueMoment\n    );\n\n\n    setTimeout(\n      function () {\n\n        if (\n          outroSupport\n        ) {\n\n          outroSupport.classList.add(\n            'is-visible'\n          );\n\n        }\n\n      },\n\n      obliqueMoment +\n      180\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     OUTRO OBSERVER\n  ===================================================== *\/\n\n  if (\n    outro\n  ) {\n\n    const outroObserver =\n      new IntersectionObserver(\n\n        function (entries) {\n\n          entries.forEach(\n            function (entry) {\n\n              if (\n                entry.isIntersecting &&\n                entry.intersectionRatio >=\n                .24\n              ) {\n\n                playOutro();\n\n                outroObserver.disconnect();\n\n              }\n\n            }\n          );\n\n        },\n\n        {\n          threshold:\n            [\n              .10,\n              .18,\n              .24,\n              .32\n            ]\n        }\n\n      );\n\n\n    outroObserver.observe(\n      outro\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     SCROLL RAF\n  ===================================================== *\/\n\n  let ticking =\n    false;\n\n\n  window.addEventListener(\n    'scroll',\n\n    function () {\n\n      if (\n        ticking\n      ) {\n\n        return;\n\n      }\n\n\n      ticking =\n        true;\n\n\n      requestAnimationFrame(\n        function () {\n\n          updateCaseReveals();\n\n          ticking =\n            false;\n\n        }\n      );\n\n    },\n\n    {\n      passive:\n        true\n    }\n  );\n\n\n\n  \/* =====================================================\n     INIT\n  ===================================================== *\/\n\n  normalizeHomeWork();\n\n  updateCaseReveals();\n\n\n  requestAnimationFrame(\n    function () {\n\n      normalizeHomeWork();\n\n      updateCaseReveals();\n\n    }\n  );\n\n\n  setTimeout(\n    function () {\n\n      normalizeHomeWork();\n\n      updateCaseReveals();\n\n    },\n\n    250\n  );\n\n\n  setTimeout(\n    function () {\n\n      normalizeHomeWork();\n\n      updateCaseReveals();\n\n    },\n\n    700\n  );\n\n\n\n  \/* =====================================================\n     RESIZE\n  ===================================================== *\/\n\n  let resizeTimer;\n\n\n  window.addEventListener(\n    'resize',\n\n    function () {\n\n      clearTimeout(\n        resizeTimer\n      );\n\n\n      resizeTimer =\n        setTimeout(\n          function () {\n\n            normalizeHomeWork();\n\n            updateCaseReveals();\n\n          },\n\n          120\n        );\n\n    }\n  );\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-302e2444 e-flex e-con-boxed e-con e-parent\" data-id=\"302e2444\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-48a0ae36 elementor-widget elementor-widget-html\" data-id=\"48a0ae36\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     BPLR HOME JOIN \u2014 MASTER V2\n     DESKTOP SPLIT \/ TABLET + MOBILE STACK\n========================================================= -->\n\n<section class=\"bplr-home-join\">\n\n  <!-- =====================================================\n       CONTENT\n  ====================================================== -->\n\n  <div class=\"bplr-home-join__content\">\n\n    <div class=\"bplr-home-join__main\">\n\n      <h2 class=\"bplr-home-join__title\">\n\n        <span class=\"bplr-home-join__title-line\">\n          <span class=\"bplr-home-join__word\">JOIN<\/span>\n        <\/span>\n\n        <span class=\"bplr-home-join__title-line\">\n          <span class=\"bplr-home-join__word\">THE<\/span>\n        <\/span>\n\n        <span class=\"bplr-home-join__title-line\">\n          <span class=\"bplr-home-join__word\">TEAM<\/span>\n        <\/span>\n\n      <\/h2>\n\n\n      <p class=\"bplr-home-join__copy\">\n        Great stories start with great minds.<br>\n        If you think differently, we should probably talk.\n      <\/p>\n\n\n      <a\n       href=\"\/join\/\"\n        class=\"bplr-home-join__button\"\n      >\n\n        <span class=\"bplr-home-join__button-text\">\n          COME ABOARD\n        <\/span>\n\n        <span class=\"bplr-home-join__arrow\">\n          \u2192\n        <\/span>\n\n      <\/a>\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- =====================================================\n       IMAGE\n  ====================================================== -->\n\n  <div class=\"bplr-home-join__media\">\n\n    <img decoding=\"async\"\n      src=\"https:\/\/bipolar.mx\/stanging\/wp-content\/uploads\/2026\/10\/Tattoo-1.jpg\"\n      alt=\"Join the Bipolar team\"\n      class=\"bplr-home-join__image\"\n    >\n\n  <\/div>\n\n<\/section>\n\n\n<style>\n\n\/* =========================================================\n   LOCAL RESET\n========================================================= *\/\n\n.bplr-home-join,\n.bplr-home-join *,\n.bplr-home-join *::before,\n.bplr-home-join *::after {\n  box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   ROOT\n========================================================= *\/\n\n.bplr-home-join {\n  position: relative;\n\n  width: 100% !important;\n  max-width: none !important;\n\n  height: 100vh;\n  height: 100dvh;\n\n  min-height: 720px;\n\n  margin: 0 !important;\n  padding: 0 !important;\n\n  overflow: hidden;\n\n  background: #050505;\n  color: #fff;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n}\n\n\n\/* =========================================================\n   CONTENT \u2014 DESKTOP\n========================================================= *\/\n\n.bplr-home-join__content {\n  position: absolute;\n\n  left: 0;\n  top: 0;\n\n  width: 50%;\n  height: 100%;\n\n  padding:\n    clamp(66px, 7vh, 110px)\n    clamp(42px, 5vw, 88px)\n    clamp(54px, 6vh, 86px);\n\n  display: flex;\n\n  flex-direction: column;\n\n  background: #050505;\n\n  z-index: 2;\n}\n\n\n\/* =========================================================\n   MAIN\n========================================================= *\/\n\n.bplr-home-join__main {\n  width: 100%;\n\n  margin: 0;\n  padding: 0;\n}\n\n\n\/* =========================================================\n   TITLE\n========================================================= *\/\n\n.bplr-home-join__title {\n  width: max-content;\n  max-width: 100%;\n\n  margin: 0;\n  padding: 0;\n\n  color: #fff;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(\n      122px,\n      10.4vw,\n      205px\n    );\n\n  font-weight: 800;\n\n  line-height: .78;\n\n  letter-spacing: -.035em;\n\n  font-kerning: none;\n\n  font-feature-settings:\n    \"kern\" 0;\n\n  text-transform: uppercase;\n}\n\n\n.bplr-home-join__title-line {\n  display: block;\n\n  width: max-content;\n  max-width: 100%;\n\n  margin: 0;\n  padding: 0;\n\n  white-space: nowrap;\n}\n\n\n\/* =========================================================\n   TITLE ANIMATION\n========================================================= *\/\n\n.bplr-home-join__word {\n  display: inline-block;\n\n  opacity: 0;\n\n  transform:\n    translateY(.18em);\n\n  transition:\n    opacity .35s ease,\n    transform .52s\n    cubic-bezier(.22,.8,.3,1);\n\n  will-change:\n    opacity,\n    transform;\n}\n\n\n.bplr-home-join__word.is-visible {\n  opacity: 1;\n\n  transform:\n    translateY(0);\n}\n\n\n\/* =========================================================\n   COPY\n========================================================= *\/\n\n.bplr-home-join__copy {\n  max-width: 600px;\n\n  margin:\n    clamp(\n      28px,\n      3vh,\n      42px\n    )\n    0\n    0;\n\n  padding: 0;\n\n  color:\n    rgba(255,255,255,.94);\n\n  font-family:\n    \"Barlow\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(\n      18px,\n      1.35vw,\n      25px\n    );\n\n  font-weight: 400;\n\n  line-height: 1.36;\n\n  opacity: 0;\n\n  transform:\n    translateY(16px);\n\n  transition:\n    opacity .48s ease,\n    transform .55s\n    cubic-bezier(.22,.8,.3,1);\n}\n\n\n.bplr-home-join__copy.is-visible {\n  opacity: 1;\n\n  transform:\n    translateY(0);\n}\n\n\n\/* =========================================================\n   CTA\n   POSITIONED RELATIVE TO COPY\n========================================================= *\/\n\n.bplr-home-join__button,\n.bplr-home-join__button:link,\n.bplr-home-join__button:visited,\n.bplr-home-join__button:hover,\n.bplr-home-join__button:focus,\n.bplr-home-join__button:active {\n\n  width:\n    clamp(\n      230px,\n      18vw,\n      300px\n    ) !important;\n\n  min-height:\n    60px !important;\n\n  margin-top:\n    clamp(\n      78px,\n      9vh,\n      108px\n    ) !important;\n\n  padding:\n    0 20px !important;\n\n  display:\n    flex !important;\n\n  align-items:\n    center !important;\n\n  justify-content:\n    space-between !important;\n\n  gap:\n    20px !important;\n\n  background:\n    transparent !important;\n\n  border:\n    1px solid rgba(255,255,255,.88) !important;\n\n  border-radius:\n    0 !important;\n\n  color:\n    #fff !important;\n\n  text-decoration:\n    none !important;\n\n  box-shadow:\n    none !important;\n\n  outline:\n    none !important;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif !important;\n\n  font-size:\n    clamp(\n      17px,\n      1.2vw,\n      21px\n    ) !important;\n\n  font-weight:\n    800 !important;\n\n  line-height:\n    1 !important;\n\n  text-transform:\n    uppercase !important;\n\n  opacity: 0;\n\n  transform:\n    translateY(16px);\n\n  transition:\n    opacity .48s ease,\n    transform .55s\n    cubic-bezier(.22,.8,.3,1),\n    background-color .25s ease,\n    color .25s ease;\n}\n\n\n.bplr-home-join__button.is-visible {\n  opacity: 1;\n\n  transform:\n    translateY(0);\n}\n\n\n\/* =========================================================\n   BUTTON TEXT\n========================================================= *\/\n\n.bplr-home-join__button-text {\n  display: inline-block;\n\n  transform:\n    skewX(0deg);\n\n  transition:\n    transform .28s\n    cubic-bezier(.22,.8,.3,1);\n}\n\n\n\/* =========================================================\n   ARROW\n========================================================= *\/\n\n.bplr-home-join__arrow {\n  display: inline-block;\n\n  font-family:\n    Arial,\n    sans-serif;\n\n  font-size: 1.5em;\n\n  font-weight: 400;\n\n  line-height: 1;\n\n  color: #fff;\n}\n\n\n\/* =========================================================\n   HOVER\n========================================================= *\/\n\n@media\n(hover: hover)\nand\n(pointer: fine) {\n\n  .bplr-home-join__button:hover {\n\n    background:\n      #fff !important;\n\n    color:\n      #050505 !important;\n  }\n\n\n  .bplr-home-join__button:hover\n  .bplr-home-join__button-text {\n\n    transform:\n      skewX(-10deg);\n  }\n\n\n  .bplr-home-join__button:hover\n  .bplr-home-join__arrow {\n\n    color:\n      #050505;\n  }\n\n}\n\n\n\/* =========================================================\n   IMAGE \u2014 DESKTOP\n========================================================= *\/\n\n.bplr-home-join__media {\n  position: absolute;\n\n  right: 0;\n  top: 0;\n\n  width: 50%;\n  height: 100%;\n\n  overflow: hidden;\n\n  z-index: 1;\n}\n\n\n\/* =========================================================\n   IMAGE \u2014 FORCE FULL HEIGHT\n========================================================= *\/\n\n.bplr-home-join__image {\n  position: absolute !important;\n\n  inset: 0 !important;\n\n  display: block !important;\n\n  width: 100% !important;\n  height: 100% !important;\n\n  max-width: none !important;\n  max-height: none !important;\n\n  margin: 0 !important;\n  padding: 0 !important;\n\n  object-fit: cover !important;\n\n  object-position:\n    center center !important;\n\n  transform:\n    none !important;\n}\n\n\n.bplr-home-join__media {\n  background:\n    #050505;\n}\n\n\n\/* =========================================================\n   TABLET\n   768 \u2014 1180\n========================================================= *\/\n\n@media\n(min-width: 768px)\nand\n(max-width: 1180px) {\n\n  .bplr-home-join {\n    height: auto;\n\n    min-height: 0;\n\n    display: flex;\n\n    flex-direction: column;\n\n    overflow: hidden;\n  }\n\n\n  \/* IMAGE FIRST *\/\n\n  .bplr-home-join__media {\n    position: relative;\n\n    right: auto;\n    top: auto;\n\n    order: 1;\n\n    width: 100%;\n\n    height: auto;\n\n    aspect-ratio:\n      4 \/ 3;\n\n    flex:\n      0 0 auto;\n  }\n\n\n  .bplr-home-join__image {\n    width: 100%;\n    height: 100%;\n\n    object-fit: cover;\n\n    object-position:\n      center 42%;\n  }\n\n\n  \/* CONTENT *\/\n\n  .bplr-home-join__content {\n    position: relative;\n\n    left: auto;\n    top: auto;\n\n    order: 2;\n\n    width: 100%;\n\n    height: auto;\n\n    min-height: 690px;\n\n    padding:\n      50px\n      44px\n      46px;\n  }\n\n\n  .bplr-home-join__title {\n    font-size:\n      clamp(\n        104px,\n        15vw,\n        160px\n      );\n\n    line-height: .79;\n  }\n\n\n  .bplr-home-join__copy {\n    max-width: 650px;\n\n    margin-top: 30px;\n\n    font-size:\n      clamp(\n        19px,\n        2.3vw,\n        24px\n      );\n  }\n\n\n  .bplr-home-join__button,\n  .bplr-home-join__button:link,\n  .bplr-home-join__button:visited,\n  .bplr-home-join__button:hover,\n  .bplr-home-join__button:focus,\n  .bplr-home-join__button:active {\n\n    width:\n      290px !important;\n\n    min-height:\n      64px !important;\n\n    margin-top:\n      64px !important;\n\n    font-size:\n      20px !important;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media (max-width: 767px) {\n\n  .bplr-home-join {\n    height: auto;\n\n    min-height: 0;\n\n    display: flex;\n\n    flex-direction: column;\n\n    overflow: hidden;\n  }\n\n\n  \/* IMAGE FIRST *\/\n\n  .bplr-home-join__media {\n    position: relative;\n\n    right: auto;\n    top: auto;\n\n    order: 1;\n\n    width: 100%;\n\n    height: auto;\n\n    aspect-ratio:\n      1 \/ 1.05;\n\n    flex:\n      0 0 auto;\n  }\n\n\n  .bplr-home-join__image {\n    width: 100%;\n    height: 100%;\n\n    object-fit: cover;\n\n    object-position:\n      center center;\n  }\n\n\n  \/* CONTENT *\/\n\n  .bplr-home-join__content {\n    position: relative;\n\n    left: auto;\n    top: auto;\n\n    order: 2;\n\n    width: 100%;\n\n    height: auto;\n\n    min-height: 560px;\n\n    padding:\n      38px\n      28px\n      34px;\n  }\n\n\n  .bplr-home-join__title {\n    font-size:\n      clamp(\n        82px,\n        23vw,\n        118px\n      );\n\n    line-height: .79;\n  }\n\n\n  .bplr-home-join__copy {\n    max-width: 94%;\n\n    margin-top: 26px;\n\n    font-size:\n      clamp(\n        17px,\n        4.8vw,\n        20px\n      );\n\n    line-height: 1.34;\n  }\n\n\n  .bplr-home-join__button,\n  .bplr-home-join__button:link,\n  .bplr-home-join__button:visited,\n  .bplr-home-join__button:hover,\n  .bplr-home-join__button:focus,\n  .bplr-home-join__button:active {\n\n    width:\n      100% !important;\n\n    min-height:\n      60px !important;\n\n    margin-top:\n      46px !important;\n\n    padding:\n      0 18px !important;\n\n    font-size:\n      18px !important;\n  }\n\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n  const join =\n    document.querySelector(\n      '.bplr-home-join'\n    );\n\n\n  if (!join) return;\n\n\n  const words =\n    Array.from(\n      join.querySelectorAll(\n        '.bplr-home-join__word'\n      )\n    );\n\n\n  const copy =\n    join.querySelector(\n      '.bplr-home-join__copy'\n    );\n\n\n  const button =\n    join.querySelector(\n      '.bplr-home-join__button'\n    );\n\n\n\n  \/* =====================================================\n     NORMALIZE ELEMENTOR\n  ===================================================== *\/\n\n  function normalizeHomeJoin() {\n\n    const widget =\n      join.closest(\n        '.elementor-widget-html'\n      );\n\n\n    if (widget) {\n\n      widget.style.width =\n        '100%';\n\n      widget.style.maxWidth =\n        'none';\n\n      widget.style.flex =\n        '0 0 100%';\n\n      widget.style.flexBasis =\n        '100%';\n\n      widget.style.alignSelf =\n        'stretch';\n\n      widget.style.margin =\n        '0';\n\n      widget.style.padding =\n        '0';\n\n      widget.style.minWidth =\n        '0';\n\n    }\n\n\n    const container =\n      widget\n        ? widget.closest('.e-con')\n        : null;\n\n\n    if (container) {\n\n      container.style.width =\n        '100%';\n\n      container.style.maxWidth =\n        'none';\n\n      container.style.flex =\n        '0 0 100%';\n\n      container.style.flexBasis =\n        '100%';\n\n      container.style.alignSelf =\n        'stretch';\n\n      container.style.margin =\n        '0';\n\n      container.style.padding =\n        '0';\n\n      container.style.gap =\n        '0';\n\n      container.style.minWidth =\n        '0';\n\n    }\n\n\n    if (\n      widget &&\n      widget.parentElement &&\n      widget.parentElement !== container\n    ) {\n\n      const parent =\n        widget.parentElement;\n\n\n      parent.style.width =\n        '100%';\n\n      parent.style.maxWidth =\n        'none';\n\n      parent.style.flex =\n        '0 0 100%';\n\n      parent.style.flexBasis =\n        '100%';\n\n      parent.style.alignSelf =\n        'stretch';\n\n      parent.style.margin =\n        '0';\n\n      parent.style.padding =\n        '0';\n\n      parent.style.gap =\n        '0';\n\n      parent.style.minWidth =\n        '0';\n\n    }\n\n  }\n\n\n\n  \/* =====================================================\n     ANIMATION\n  ===================================================== *\/\n\n  let hasPlayed =\n    false;\n\n\n  function playJoin() {\n\n    if (hasPlayed) return;\n\n\n    hasPlayed = true;\n\n\n    const initialDelay =\n      120;\n\n\n    const wordStep =\n      190;\n\n\n    words.forEach(\n      function (\n        word,\n        index\n      ) {\n\n        setTimeout(\n          function () {\n\n            word.classList.add(\n              'is-visible'\n            );\n\n          },\n\n          initialDelay +\n          (\n            index *\n            wordStep\n          )\n\n        );\n\n      }\n    );\n\n\n    const textMoment =\n      initialDelay +\n      (\n        words.length *\n        wordStep\n      )\n      +\n      180;\n\n\n    setTimeout(\n      function () {\n\n        if (copy) {\n\n          copy.classList.add(\n            'is-visible'\n          );\n\n        }\n\n      },\n\n      textMoment\n    );\n\n\n    setTimeout(\n      function () {\n\n        if (button) {\n\n          button.classList.add(\n            'is-visible'\n          );\n\n        }\n\n      },\n\n      textMoment +\n      150\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     OBSERVER\n  ===================================================== *\/\n\n  const observer =\n    new IntersectionObserver(\n\n      function (entries) {\n\n        entries.forEach(\n          function (entry) {\n\n            if (\n              entry.isIntersecting &&\n              entry.intersectionRatio >= .20\n            ) {\n\n              playJoin();\n\n              observer.disconnect();\n\n            }\n\n          }\n        );\n\n      },\n\n      {\n        threshold:\n          [\n            .08,\n            .14,\n            .20,\n            .30\n          ]\n      }\n\n    );\n\n\n  observer.observe(\n    join\n  );\n\n\n\n  \/* =====================================================\n     INIT\n  ===================================================== *\/\n\n  normalizeHomeJoin();\n\n\n  requestAnimationFrame(\n    function () {\n\n      normalizeHomeJoin();\n\n    }\n  );\n\n\n  setTimeout(\n    function () {\n\n      normalizeHomeJoin();\n\n    },\n\n    250\n  );\n\n\n  setTimeout(\n    function () {\n\n      normalizeHomeJoin();\n\n    },\n\n    700\n  );\n\n\n\n  \/* =====================================================\n     RESIZE\n  ===================================================== *\/\n\n  let resizeTimer;\n\n\n  window.addEventListener(\n    'resize',\n\n    function () {\n\n      clearTimeout(\n        resizeTimer\n      );\n\n\n      resizeTimer =\n        setTimeout(\n          function () {\n\n            normalizeHomeJoin();\n\n          },\n\n          120\n        );\n\n    }\n  );\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-74890203 elementor-widget elementor-widget-html\" data-id=\"74890203\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- =========================================================\n     BPLR HOME CONTACT \u2014 MASTER V4\n     RESPONSIVE \/ STANDALONE \/ CLONABLE\n     TITLE ALWAYS CENTERED\n========================================================= -->\n\n<section class=\"bplr-home-contact\">\n\n  <!-- TITLE -->\n  <div class=\"bplr-home-contact__header\">\n\n    <h2 class=\"bplr-home-contact__title\">\n\n      <span class=\"bplr-home-contact__title-fit\">\n\n        <span class=\"bplr-home-contact__title-line\">\n          <span class=\"bplr-home-contact__word\">GET<\/span>\n          <span class=\"bplr-home-contact__word\">IN<\/span>\n        <\/span>\n\n        <span class=\"bplr-home-contact__title-line\">\n          <span class=\"bplr-home-contact__word\">TOUCH<\/span>\n        <\/span>\n\n      <\/span>\n\n    <\/h2>\n\n  <\/div>\n\n\n  <!-- DIVIDER -->\n  <div class=\"bplr-home-contact__divider\"><\/div>\n\n\n  <!-- CONTENT -->\n  <div class=\"bplr-home-contact__body\">\n\n\n    <!-- MAIN -->\n    <div class=\"\n      bplr-home-contact__column\n      bplr-home-contact__column--main\n    \">\n\n      <div class=\"bplr-home-contact__pitch\">\n        GOT SOMETHING IN MIND? LET'S MAKE IT HAPPEN.\n      <\/div>\n\n\n      <!-- EMAIL -->\n      <a\n        href=\"mailto:hello@bipolar.mx\"\n        class=\"bplr-home-contact__email\"\n      >\n\n        <span class=\"bplr-home-contact__email-text\">\n          SEND E-MAIL\n        <\/span>\n\n        <span class=\"bplr-home-contact__arrow\">\n          \u2192\n        <\/span>\n\n      <\/a>\n\n\n      <!-- FOLLOW -->\n      <div class=\"bplr-home-contact__follow\">\n\n        <div class=\"bplr-home-contact__follow-title\">\n          FOLLOW US\n        <\/div>\n\n\n        <div class=\"bplr-home-contact__socials\">\n\n\n          <!-- INSTAGRAM -->\n          <a\n            href=\"https:\/\/www.instagram.com\/bipolar.mx\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            class=\"bplr-home-contact__social\"\n            aria-label=\"Instagram\"\n          >\n\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n              <path d=\"\n                M12 2.163\n                c3.204 0 3.584.012 4.85.07\n                3.252.148 4.771 1.691 4.919 4.919\n                .058 1.265.069 1.645.069 4.849\n                s-.012 3.584-.069 4.849\n                c-.149 3.225-1.664 4.771-4.919 4.919\n                -1.266.058-1.644.069-4.85.069\n                s-3.584-.012-4.849-.069\n                c-3.26-.149-4.771-1.699-4.919-4.92\n                -.058-1.265-.07-1.644-.07-4.849\n                s.013-3.583.07-4.849\n                C2.381 3.924 3.896 2.38 7.151 2.232\n                8.417 2.175 8.796 2.163 12 2.163z\n\n                M12 0\n                C8.741 0 8.332.014 7.052.072\n                2.695.272.273 2.69.073 7.052\n                .014 8.333 0 8.741 0 12\n                c0 3.259.014 3.668.072 4.948\n                .2 4.358 2.618 6.78 6.98 6.98\n                C8.333 23.986 8.741 24 12 24\n                c3.259 0 3.668-.014 4.948-.072\n                4.354-.2 6.782-2.618 6.979-6.98\n                .059-1.28.073-1.689.073-4.948\n                0-3.259-.014-3.667-.072-4.947\n                -.196-4.354-2.617-6.78-6.979-6.98\n                C15.668.014 15.259 0 12 0z\n\n                M12 5.838\n                A6.162 6.162 0 1 0 12 18.162\n                6.162 6.162 0 0 0 12 5.838z\n\n                M12 16\n                a4 4 0 1 1 0-8\n                4 4 0 0 1 0 8z\n\n                M18.406 4.155\n                a1.44 1.44 0 1 0 0 2.881\n                1.44 1.44 0 0 0 0-2.881z\n              \"><\/path>\n            <\/svg>\n\n          <\/a>\n\n\n          <!-- LINKEDIN -->\n          <a\n            href=\"https:\/\/www.linkedin.com\/company\/bipolarmx\/\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            class=\"bplr-home-contact__social\"\n            aria-label=\"LinkedIn\"\n          >\n\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n              <path d=\"\n                M20.447 20.452\n                h-3.554\n                v-5.569\n                c0-1.328-.027-3.037-1.852-3.037\n                -1.853 0-2.136 1.445-2.136 2.939\n                v5.667\n                H9.351V9\n                h3.414\n                v1.561\n                h.046\n                c.477-.9 1.637-1.85 3.37-1.85\n                3.601 0 4.267 2.37 4.267 5.455\n                v6.286z\n\n                M5.337 7.433\n                a2.062 2.062 0 1 1 0-4.124\n                2.062 2.062 0 0 1 0 4.124z\n\n                M7.119 20.452\n                H3.555V9H7.12\n                v11.452z\n              \"><\/path>\n            <\/svg>\n\n          <\/a>\n\n\n          <!-- VIMEO -->\n          <a\n            href=\"https:\/\/vimeo.com\/user101049977\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            class=\"bplr-home-contact__social\"\n            aria-label=\"Vimeo\"\n          >\n\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n              <path d=\"\n                M23.977 6.416\n                c-.105 2.338-1.739 5.542-4.894 9.608\n                -3.265 4.268-6.027 6.403-8.286 6.403\n                -1.402 0-2.586-1.29-3.553-3.873\n                l-1.934-7.093\n                c-.72-2.584-1.493-3.875-2.321-3.875\n                -.18 0-.806.378-1.878 1.132\n                L0 7.261\n                a52.861 52.861 0 0 1 3.501-3.125\n                c1.579-1.364 2.765-2.08 3.553-2.152\n                1.864-.18 3.011 1.096 3.442 3.827\n                .467 2.947.791 4.779.971 5.493\n                .539 2.444 1.13 3.665 1.777 3.665\n                .503 0 1.258-.795 2.266-2.386\n                1.006-1.591 1.545-2.803 1.617-3.635\n                .144-1.376-.395-2.064-1.617-2.064\n                -.575 0-1.168.132-1.777.394\n                1.18-3.867 3.434-5.745 6.761-5.636\n                2.466.072 3.627 1.664 3.483 4.774z\n              \"><\/path>\n            <\/svg>\n\n          <\/a>\n\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n\n    <!-- VISIT -->\n    <div class=\"\n      bplr-home-contact__column\n      bplr-home-contact__column--visit\n    \">\n\n      <div class=\"bplr-home-contact__visit-title\">\n        VISIT US\n      <\/div>\n\n\n      <div class=\"bplr-home-contact__address\">\n\n        <strong>\n          Headquarters\n        <\/strong>\n\n        <span>\n          L\u00e1zaro C\u00e1rdenas 2424,<br>\n          Loma Larga Oriente<br>\n          San Pedro Garza Garc\u00eda<br>\n          Nuevo Le\u00f3n, M\u00e9xico<br>\n          C.P. 66266\n        <\/span>\n\n      <\/div>\n\n    <\/div>\n\n\n    <!-- IMAGE \u2014 DESKTOP ONLY -->\n    <div class=\"\n      bplr-home-contact__column\n      bplr-home-contact__column--media\n    \">\n\n      <img decoding=\"async\"\n        src=\"https:\/\/bipolar.mx\/stanging\/wp-content\/uploads\/2026\/10\/Trebol.jpg\"\n        alt=\"Bipolar headquarters\"\n        class=\"bplr-home-contact__image\"\n      >\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n<style>\n\n\/* =========================================================\n   RESET\n========================================================= *\/\n\n.bplr-home-contact,\n.bplr-home-contact *,\n.bplr-home-contact *::before,\n.bplr-home-contact *::after {\n  box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   ROOT\n========================================================= *\/\n\n.bplr-home-contact {\n  position: relative;\n\n  width: 100% !important;\n  max-width: none !important;\n\n  margin: 0 !important;\n\n  padding:\n    clamp(44px, 5vh, 72px)\n    clamp(28px, 3.2vw, 60px)\n    clamp(54px, 6vh, 86px);\n\n  overflow: hidden;\n\n  background: #f4f4f4;\n\n  color: #0b0b0d;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n}\n\n\n\/* =========================================================\n   HEADER\n========================================================= *\/\n\n.bplr-home-contact__header {\n  width: 100%;\n\n  margin: 0;\n  padding: 0;\n\n  overflow: visible;\n}\n\n\n\/* =========================================================\n   TITLE\n========================================================= *\/\n\n.bplr-home-contact__title {\n  width: 100%;\n\n  margin: 0;\n  padding: 0;\n\n  display: flex;\n\n  align-items: baseline;\n  justify-content: center;\n\n  text-align: center;\n\n  color: #0b0b0d;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  font-size: 200px;\n\n  font-weight: 800;\n\n  line-height: .76;\n\n  letter-spacing: -.035em;\n\n  font-kerning: none;\n\n  font-feature-settings:\n    \"kern\" 0;\n\n  text-transform: uppercase;\n}\n\n\n.bplr-home-contact__title-fit {\n  display: inline-flex;\n\n  width: max-content;\n\n  align-items: baseline;\n  justify-content: center;\n\n  gap: .105em;\n\n  margin: 0 auto;\n\n  white-space: nowrap;\n}\n\n\n\/* Desktop + Tablet = one line *\/\n.bplr-home-contact__title-line {\n  display: contents;\n}\n\n\n\/* =========================================================\n   TITLE ANIMATION\n========================================================= *\/\n\n.bplr-home-contact__word {\n  display: inline-block;\n\n  margin: 0;\n  padding: 0;\n\n  opacity: 0;\n\n  transform:\n    translateY(.16em);\n\n  transition:\n    opacity .34s ease,\n    transform .5s cubic-bezier(.22,.8,.3,1);\n\n  will-change:\n    opacity,\n    transform;\n}\n\n\n.bplr-home-contact__word.is-visible {\n  opacity: 1;\n\n  transform:\n    translateY(0);\n}\n\n\n\/* =========================================================\n   DIVIDER\n========================================================= *\/\n\n.bplr-home-contact__divider {\n  width: 100%;\n  height: 1px;\n\n  margin:\n    clamp(34px, 4vh, 54px)\n    0\n    0;\n\n  background:\n    rgba(11,11,13,.82);\n\n  transform:\n    scaleX(0);\n\n  transform-origin:\n    left center;\n\n  transition:\n    transform .7s cubic-bezier(.22,.8,.3,1);\n}\n\n\n.bplr-home-contact__divider.is-visible {\n  transform:\n    scaleX(1);\n}\n\n\n\/* =========================================================\n   BODY\n========================================================= *\/\n\n.bplr-home-contact__body {\n  width: 100%;\n\n  margin:\n    clamp(40px, 4.5vh, 64px)\n    0\n    0;\n\n  padding: 0;\n\n  display: grid;\n\n  grid-template-columns:\n    minmax(0, 1.55fr)\n    minmax(230px, .62fr)\n    minmax(280px, .68fr);\n\n  column-gap:\n    clamp(38px, 4vw, 76px);\n\n  align-items: start;\n\n  opacity: 0;\n\n  transform:\n    translateY(20px);\n\n  transition:\n    opacity .52s ease,\n    transform .62s cubic-bezier(.22,.8,.3,1);\n}\n\n\n.bplr-home-contact__body.is-visible {\n  opacity: 1;\n\n  transform:\n    translateY(0);\n}\n\n\n.bplr-home-contact__column {\n  min-width: 0;\n}\n\n\n\/* =========================================================\n   PITCH\n========================================================= *\/\n\n.bplr-home-contact__pitch {\n  max-width: 760px;\n\n  margin: 0;\n  padding: 0;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(26px, 2vw, 38px);\n\n  font-weight: 800;\n\n  line-height: .98;\n\n  letter-spacing: -.018em;\n\n  text-transform: uppercase;\n\n  color: #0b0b0d;\n}\n\n\n\/* =========================================================\n   EMAIL\n========================================================= *\/\n\n.bplr-home-contact__email,\n.bplr-home-contact__email:link,\n.bplr-home-contact__email:visited,\n.bplr-home-contact__email:hover,\n.bplr-home-contact__email:focus,\n.bplr-home-contact__email:active {\n\n  width:\n    min(360px, 100%) !important;\n\n  min-height:\n    58px !important;\n\n  margin-top:\n    22px !important;\n\n  padding:\n    0 20px !important;\n\n  display:\n    flex !important;\n\n  align-items:\n    center !important;\n\n  justify-content:\n    space-between !important;\n\n  gap:\n    20px !important;\n\n  background:\n    transparent !important;\n\n  border:\n    1px solid rgba(11,11,13,.72) !important;\n\n  border-radius:\n    0 !important;\n\n  color:\n    #0b0b0d !important;\n\n  box-shadow:\n    none !important;\n\n  outline:\n    none !important;\n\n  text-decoration:\n    none !important;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif !important;\n\n  font-size:\n    clamp(17px, 1.2vw, 21px) !important;\n\n  font-weight:\n    800 !important;\n\n  line-height:\n    1 !important;\n\n  text-transform:\n    uppercase !important;\n\n  transition:\n    background-color .25s ease,\n    color .25s ease;\n}\n\n\n.bplr-home-contact__email-text {\n  display: inline-block;\n\n  transform:\n    skewX(0deg);\n\n  transition:\n    transform .25s ease;\n}\n\n\n.bplr-home-contact__arrow {\n  font-family:\n    Arial,\n    sans-serif;\n\n  font-size:\n    1.45em;\n\n  font-weight:\n    400;\n\n  line-height:\n    1;\n}\n\n\n@media\n(hover: hover)\nand\n(pointer: fine) {\n\n  .bplr-home-contact__email:hover {\n    background:\n      #0b0b0d !important;\n\n    color:\n      #fff !important;\n  }\n\n\n  .bplr-home-contact__email:hover\n  .bplr-home-contact__email-text {\n    transform:\n      skewX(-10deg);\n  }\n\n}\n\n\n\/* =========================================================\n   FOLLOW \/ VISIT TITLES\n========================================================= *\/\n\n.bplr-home-contact__follow {\n  margin-top:\n    clamp(38px, 4vh, 54px);\n}\n\n\n.bplr-home-contact__follow-title,\n.bplr-home-contact__visit-title {\n  margin: 0;\n  padding: 0;\n\n  font-family:\n    \"Barlow Condensed\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(28px, 2vw, 38px);\n\n  font-weight:\n    800;\n\n  line-height:\n    1;\n\n  letter-spacing:\n    -.02em;\n\n  text-transform: uppercase;\n\n  color: #0b0b0d;\n}\n\n\n\/* =========================================================\n   SOCIAL\n========================================================= *\/\n\n.bplr-home-contact__socials {\n  margin-top:\n    14px;\n\n  display: flex;\n\n  align-items: center;\n  justify-content: flex-start;\n\n  gap: 10px;\n}\n\n\n.bplr-home-contact__social,\n.bplr-home-contact__social:link,\n.bplr-home-contact__social:visited,\n.bplr-home-contact__social:hover,\n.bplr-home-contact__social:focus,\n.bplr-home-contact__social:active {\n\n  width: 46px;\n  height: 46px;\n\n  flex:\n    0 0 46px;\n\n  margin: 0;\n\n  padding: 11px;\n\n  display: flex;\n\n  align-items: center;\n  justify-content: center;\n\n  background:\n    #303030 !important;\n\n  border:\n    0 !important;\n\n  border-radius:\n    50% !important;\n\n  color:\n    #fff !important;\n\n  box-shadow:\n    none !important;\n\n  outline:\n    none !important;\n\n  text-decoration:\n    none !important;\n\n  transition:\n    transform .22s ease,\n    background-color .22s ease;\n}\n\n\n.bplr-home-contact__social svg {\n  display: block;\n\n  width: 100%;\n  height: 100%;\n\n  overflow: visible;\n\n  fill:\n    currentColor !important;\n\n  stroke:\n    none !important;\n\n  color: #fff;\n}\n\n\n.bplr-home-contact__social svg path {\n  fill:\n    currentColor !important;\n\n  stroke:\n    none !important;\n}\n\n\n@media\n(hover: hover)\nand\n(pointer: fine) {\n\n  .bplr-home-contact__social:hover {\n    transform:\n      translateY(-3px);\n\n    background:\n      #0b0b0d !important;\n  }\n\n}\n\n\n\/* =========================================================\n   VISIT\n========================================================= *\/\n\n.bplr-home-contact__column--visit {\n  padding-top: 2px;\n}\n\n\n.bplr-home-contact__address {\n  margin-top:\n    16px;\n\n  color:\n    #272729;\n\n  font-family:\n    \"Barlow\",\n    Arial,\n    sans-serif;\n\n  font-size:\n    clamp(17px, 1.2vw, 22px);\n\n  font-weight:\n    400;\n\n  line-height:\n    1.32;\n}\n\n\n.bplr-home-contact__address strong {\n  display: block;\n\n  margin-bottom:\n    4px;\n\n  color:\n    #0b0b0d;\n\n  font-weight:\n    700;\n}\n\n\n\/* =========================================================\n   IMAGE\n========================================================= *\/\n\n.bplr-home-contact__column--media {\n  width: 100%;\n}\n\n\n.bplr-home-contact__image {\n  display: block;\n\n  width: 100%;\n\n  aspect-ratio:\n    1 \/ 1;\n\n  margin: 0;\n  padding: 0;\n\n  object-fit:\n    cover;\n\n  object-position:\n    center center;\n}\n\n\n\/* =========================================================\n   TABLET\n   768 \u2014 1180\n========================================================= *\/\n\n@media\n(min-width: 768px)\nand\n(max-width: 1180px) {\n\n  .bplr-home-contact {\n    padding:\n      50px\n      40px\n      58px;\n  }\n\n\n  \/* TITLE = ONE LINE \/ CENTERED *\/\n\n  .bplr-home-contact__title-fit {\n    display: inline-flex;\n\n    flex-direction: row;\n\n    align-items: baseline;\n    justify-content: center;\n\n    gap: .105em;\n\n    margin: 0 auto;\n\n    white-space: nowrap;\n  }\n\n\n  .bplr-home-contact__title-line {\n    display: contents;\n  }\n\n\n  \/* BODY *\/\n\n  .bplr-home-contact__body {\n    grid-template-columns:\n      minmax(0, 1.35fr)\n      minmax(250px, .65fr);\n\n    column-gap:\n      54px;\n\n    margin-top:\n      46px;\n  }\n\n\n  \/* IMAGE OFF *\/\n\n  .bplr-home-contact__column--media {\n    display:\n      none;\n  }\n\n\n  .bplr-home-contact__pitch {\n    font-size:\n      clamp(28px, 3.5vw, 38px);\n  }\n\n\n  .bplr-home-contact__email,\n  .bplr-home-contact__email:link,\n  .bplr-home-contact__email:visited,\n  .bplr-home-contact__email:hover,\n  .bplr-home-contact__email:focus,\n  .bplr-home-contact__email:active {\n\n    width:\n      340px !important;\n\n    min-height:\n      60px !important;\n\n    font-size:\n      19px !important;\n  }\n\n\n  .bplr-home-contact__follow-title,\n  .bplr-home-contact__visit-title {\n    font-size:\n      32px;\n  }\n\n\n  .bplr-home-contact__address {\n    font-size:\n      19px;\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n   0 \u2014 767\n========================================================= *\/\n\n@media (max-width: 767px) {\n\n  .bplr-home-contact {\n    padding:\n      40px\n      24px\n      50px;\n  }\n\n\n  \/* =====================================================\n     TITLE\n     CENTERED \/ EXACTLY TWO LINES\n     GET IN\n     TOUCH\n  ===================================================== *\/\n\n  .bplr-home-contact__title {\n    align-items:\n      center;\n\n    justify-content:\n      center;\n\n    line-height:\n      .78;\n\n    text-align:\n      center;\n  }\n\n\n  .bplr-home-contact__title-fit {\n    display:\n      flex;\n\n    flex-direction:\n      column;\n\n    align-items:\n      center;\n\n    justify-content:\n      flex-start;\n\n    gap:\n      0;\n\n    width:\n      max-content;\n\n    margin:\n      0 auto;\n\n    white-space:\n      normal;\n  }\n\n\n  .bplr-home-contact__title-line {\n    display:\n      flex;\n\n    align-items:\n      baseline;\n\n    justify-content:\n      center;\n\n    width:\n      max-content;\n\n    gap:\n      .105em;\n\n    white-space:\n      nowrap;\n\n    text-align:\n      center;\n  }\n\n\n  \/* DIVIDER *\/\n\n  .bplr-home-contact__divider {\n    margin-top:\n      28px;\n  }\n\n\n  \/* BODY *\/\n\n  .bplr-home-contact__body {\n    display:\n      block;\n\n    margin-top:\n      34px;\n  }\n\n\n  \/* HIDE VISIT + IMAGE *\/\n\n  .bplr-home-contact__column--visit,\n  .bplr-home-contact__column--media {\n    display:\n      none;\n  }\n\n\n  \/* PITCH *\/\n\n  .bplr-home-contact__pitch {\n    max-width:\n      100%;\n\n    font-size:\n      clamp(28px, 8vw, 38px);\n\n    line-height:\n      .98;\n  }\n\n\n  \/* EMAIL *\/\n\n  .bplr-home-contact__email,\n  .bplr-home-contact__email:link,\n  .bplr-home-contact__email:visited,\n  .bplr-home-contact__email:hover,\n  .bplr-home-contact__email:focus,\n  .bplr-home-contact__email:active {\n\n    width:\n      100% !important;\n\n    min-height:\n      60px !important;\n\n    margin-top:\n      22px !important;\n\n    font-size:\n      18px !important;\n  }\n\n\n  \/* FOLLOW *\/\n\n  .bplr-home-contact__follow {\n    margin-top:\n      40px;\n  }\n\n\n  .bplr-home-contact__follow-title {\n    font-size:\n      32px;\n  }\n\n\n  .bplr-home-contact__socials {\n    margin-top:\n      14px;\n  }\n\n\n  .bplr-home-contact__social {\n    width:\n      46px;\n\n    height:\n      46px;\n\n    flex-basis:\n      46px;\n\n    padding:\n      11px;\n  }\n\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n  const contact =\n    document.querySelector(\n      '.bplr-home-contact'\n    );\n\n\n  if (!contact) return;\n\n\n  const title =\n    contact.querySelector(\n      '.bplr-home-contact__title'\n    );\n\n\n  const titleFit =\n    contact.querySelector(\n      '.bplr-home-contact__title-fit'\n    );\n\n\n  const titleLines =\n    Array.from(\n      contact.querySelectorAll(\n        '.bplr-home-contact__title-line'\n      )\n    );\n\n\n  const words =\n    Array.from(\n      contact.querySelectorAll(\n        '.bplr-home-contact__word'\n      )\n    );\n\n\n  const divider =\n    contact.querySelector(\n      '.bplr-home-contact__divider'\n    );\n\n\n  const body =\n    contact.querySelector(\n      '.bplr-home-contact__body'\n    );\n\n\n\n  \/* =====================================================\n     NORMALIZE ELEMENTOR\n  ===================================================== *\/\n\n  function normalizeHomeContact() {\n\n    const widget =\n      contact.closest(\n        '.elementor-widget-html'\n      );\n\n\n    if (widget) {\n\n      widget.style.width =\n        '100%';\n\n      widget.style.maxWidth =\n        'none';\n\n      widget.style.flex =\n        '0 0 100%';\n\n      widget.style.flexBasis =\n        '100%';\n\n      widget.style.alignSelf =\n        'stretch';\n\n      widget.style.margin =\n        '0';\n\n      widget.style.padding =\n        '0';\n\n      widget.style.minWidth =\n        '0';\n\n    }\n\n\n    const container =\n      widget\n        ? widget.closest('.e-con')\n        : null;\n\n\n    if (container) {\n\n      container.style.width =\n        '100%';\n\n      container.style.maxWidth =\n        'none';\n\n      container.style.flex =\n        '0 0 100%';\n\n      container.style.flexBasis =\n        '100%';\n\n      container.style.alignSelf =\n        'stretch';\n\n      container.style.margin =\n        '0';\n\n      container.style.padding =\n        '0';\n\n      container.style.gap =\n        '0';\n\n      container.style.minWidth =\n        '0';\n\n    }\n\n\n    if (\n      widget &&\n      widget.parentElement &&\n      widget.parentElement !== container\n    ) {\n\n      const parent =\n        widget.parentElement;\n\n\n      parent.style.width =\n        '100%';\n\n      parent.style.maxWidth =\n        'none';\n\n      parent.style.flex =\n        '0 0 100%';\n\n      parent.style.flexBasis =\n        '100%';\n\n      parent.style.alignSelf =\n        'stretch';\n\n      parent.style.margin =\n        '0';\n\n      parent.style.padding =\n        '0';\n\n      parent.style.gap =\n        '0';\n\n      parent.style.minWidth =\n        '0';\n\n    }\n\n  }\n\n\n\n  \/* =====================================================\n     TITLE AUTO-FIT\n\n     DESKTOP\/TABLET:\n     GET IN TOUCH = ONE LINE \/ CENTERED\n\n     MOBILE:\n     GET IN\n     TOUCH\n\n     Siempre centrado.\n  ===================================================== *\/\n\n  function fitContactTitle() {\n\n    if (\n      !title ||\n      !titleFit\n    ) {\n\n      return;\n\n    }\n\n\n    const available =\n      title.clientWidth;\n\n\n    if (\n      !available\n    ) {\n\n      return;\n\n    }\n\n\n    \/* Base de medici\u00f3n *\/\n\n    title.style.fontSize =\n      '100px';\n\n\n    let naturalWidth =\n      0;\n\n\n    if (\n      window.innerWidth <= 767\n    ) {\n\n      titleLines.forEach(\n        function (line) {\n\n          naturalWidth =\n            Math.max(\n              naturalWidth,\n              line.scrollWidth\n            );\n\n        }\n      );\n\n    } else {\n\n      naturalWidth =\n        titleFit.scrollWidth;\n\n    }\n\n\n    if (\n      !naturalWidth\n    ) {\n\n      return;\n\n    }\n\n\n    const targetWidth =\n      available * .985;\n\n\n    let calculatedSize =\n      100 *\n      (\n        targetWidth \/\n        naturalWidth\n      );\n\n\n    \/* Safety caps *\/\n\n    if (\n      window.innerWidth > 1180\n    ) {\n\n      calculatedSize =\n        Math.min(\n          calculatedSize,\n          320\n        );\n\n    } else if (\n      window.innerWidth >= 768\n    ) {\n\n      calculatedSize =\n        Math.min(\n          calculatedSize,\n          210\n        );\n\n    } else {\n\n      calculatedSize =\n        Math.min(\n          calculatedSize,\n          150\n        );\n\n    }\n\n\n    calculatedSize =\n      Math.max(\n        calculatedSize,\n        68\n      );\n\n\n    title.style.fontSize =\n      calculatedSize +\n      'px';\n\n  }\n\n\n\n  \/* =====================================================\n     CONTACT ANIMATION\n  ===================================================== *\/\n\n  let hasPlayed =\n    false;\n\n\n  function playContact() {\n\n    if (\n      hasPlayed\n    ) {\n\n      return;\n\n    }\n\n\n    hasPlayed =\n      true;\n\n\n    const initialDelay =\n      100;\n\n\n    const wordStep =\n      180;\n\n\n    words.forEach(\n      function (\n        word,\n        index\n      ) {\n\n        setTimeout(\n          function () {\n\n            word.classList.add(\n              'is-visible'\n            );\n\n          },\n\n          initialDelay +\n          (\n            index *\n            wordStep\n          )\n\n        );\n\n      }\n    );\n\n\n    const contentMoment =\n      initialDelay +\n      (\n        words.length *\n        wordStep\n      )\n      +\n      160;\n\n\n    setTimeout(\n      function () {\n\n        if (\n          divider\n        ) {\n\n          divider.classList.add(\n            'is-visible'\n          );\n\n        }\n\n      },\n\n      contentMoment\n    );\n\n\n    setTimeout(\n      function () {\n\n        if (\n          body\n        ) {\n\n          body.classList.add(\n            'is-visible'\n          );\n\n        }\n\n      },\n\n      contentMoment +\n      180\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     OBSERVER\n  ===================================================== *\/\n\n  const observer =\n    new IntersectionObserver(\n\n      function (entries) {\n\n        entries.forEach(\n          function (entry) {\n\n            if (\n              entry.isIntersecting &&\n              entry.intersectionRatio >=\n              .16\n            ) {\n\n              playContact();\n\n              observer.disconnect();\n\n            }\n\n          }\n        );\n\n      },\n\n      {\n        threshold:\n          [\n            .06,\n            .12,\n            .16,\n            .24\n          ]\n      }\n\n    );\n\n\n  observer.observe(\n    contact\n  );\n\n\n\n  \/* =====================================================\n     INIT\n  ===================================================== *\/\n\n  normalizeHomeContact();\n\n  fitContactTitle();\n\n\n  requestAnimationFrame(\n    function () {\n\n      normalizeHomeContact();\n\n      fitContactTitle();\n\n    }\n  );\n\n\n  setTimeout(\n    function () {\n\n      normalizeHomeContact();\n\n      fitContactTitle();\n\n    },\n\n    250\n  );\n\n\n  setTimeout(\n    function () {\n\n      normalizeHomeContact();\n\n      fitContactTitle();\n\n    },\n\n    700\n  );\n\n\n\n  \/* =====================================================\n     FONT READY\n  ===================================================== *\/\n\n  if (\n    document.fonts &&\n    document.fonts.ready\n  ) {\n\n    document.fonts.ready.then(\n      function () {\n\n        fitContactTitle();\n\n      }\n    );\n\n  }\n\n\n\n  \/* =====================================================\n     RESIZE\n  ===================================================== *\/\n\n  let resizeTimer;\n\n\n  window.addEventListener(\n    'resize',\n\n    function () {\n\n      clearTimeout(\n        resizeTimer\n      );\n\n\n      resizeTimer =\n        setTimeout(\n          function () {\n\n            normalizeHomeContact();\n\n            fitContactTitle();\n\n          },\n\n          120\n        );\n\n    }\n  );\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-466cd508 e-con-full e-flex e-con e-parent\" data-id=\"466cd508\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ac5d336 elementor-widget elementor-widget-heading\" data-id=\"1ac5d336\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00a9 BIPOLAR 2026 <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e8621a3 elementor-widget elementor-widget-heading\" data-id=\"7e8621a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PRIVACY \/ LEGAL<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ABOUT WORK JOIN US ABOUT WORK JOIN US Headquarters L\u00e1zaro C\u00e1rdenas 2424, Loma Larga Oriente San Pedro Garza Garc\u00eda Nuevo Le\u00f3n, M\u00e9xico C.P. 66266 WHEN REASON MEETS EMOTION, WE HAPPEN. WHEN THE REASON MEETS EMOTION, WE HAPPEN. WHEN REASON MEETS EMOTION, WE HAPPEN. WE BUILD BRANDS FROM PURPOSE TO PRESENCE ABOUT US BEHIND THE BEAUTY [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-806","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/bipolar.mx\/es\/wp-json\/wp\/v2\/pages\/806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bipolar.mx\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bipolar.mx\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bipolar.mx\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bipolar.mx\/es\/wp-json\/wp\/v2\/comments?post=806"}],"version-history":[{"count":10,"href":"https:\/\/bipolar.mx\/es\/wp-json\/wp\/v2\/pages\/806\/revisions"}],"predecessor-version":[{"id":1082,"href":"https:\/\/bipolar.mx\/es\/wp-json\/wp\/v2\/pages\/806\/revisions\/1082"}],"wp:attachment":[{"href":"https:\/\/bipolar.mx\/es\/wp-json\/wp\/v2\/media?parent=806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}