(function () { const navbar = document.getElementById( 'brief-navbar' ); if ( !navbar || navbar.dataset.scrollReady === 'true' ) return; navbar.dataset.scrollReady = 'true'; /* IMPORTANT PACIFIC is now a normal link to: https://brief.pacificcreative.co.uk/ There is deliberately NO click interception and NO scroll-to-top JavaScript. This allows the same header to be used on Privacy, Terms, IP and other BRIEF subpages. */ let lastY = Math.max( window.scrollY || window.pageYOffset || 0, 0 ); let accumulated = 0; let direction = 0; let ticking = false; /* Enough movement to feel intentional, without making the header twitchy. */ const triggerDistance = 28; function updateHeader() { ticking = false; const currentY = Math.max( window.scrollY || window.pageYOffset || 0, 0 ); const delta = currentY - lastY; const newDirection = delta > 0 ? 1 : delta < 0 ? -1 : 0; /* Always visible close to the top. */ if ( currentY <= 70 ) { navbar.classList.remove( 'is-dissolved' ); accumulated = 0; direction = 0; lastY = currentY; return; } if ( newDirection === 0 ) { lastY = currentY; return; } if ( newDirection !== direction ) { direction = newDirection; accumulated = 0; } accumulated += Math.abs(delta); if ( accumulated >= triggerDistance ) { if ( direction > 0 ) { navbar.classList.add( 'is-dissolved' ); } else { navbar.classList.remove( 'is-dissolved' ); } accumulated = 0; } lastY = currentY; } function onScroll() { if (ticking) return; ticking = true; requestAnimationFrame( updateHeader ); } window.addEventListener( 'scroll', onScroll, { passive:true } ); })();
(()=>{const ns='http://www.w3.org/2000/svg';function patch(){const title=document.getElementById('pcah-title'),scene=title?.querySelector('.pcah-living-material');if(!scene||scene.dataset.pcAllLetters)return;const source=scene.querySelector('#pcah-living-ink'),glyphs=[...scene.querySelectorAll('#pcah-living-glyphs text')],local=scene.querySelector('g[mask="url(#pcah-living-proximity)"]'),rect=local?.querySelector('rect');if(!source||glyphs.length!==7||!rect)return;scene.dataset.pcAllLetters='true';const boxes=glyphs.map(e=>e.getBBox()),reference=boxes[2],defs=scene.querySelector('defs');boxes.forEach((b,i)=>{let fill=rect.getAttribute('fill');if(i<2||i>=5){const p=document.createElementNS(ns,'pattern');p.id='pcah-letter-ink-'+i;p.setAttribute('href','#pcah-living-ink');p.setAttribute('x',b.x+b.width/2-reference.x-reference.width/2);defs.append(p);fill='url(#'+p.id+')'}const part=rect.cloneNode(false);part.setAttribute('x',b.x-1);part.setAttribute('width',b.width+2);part.setAttribute('fill',fill);local.append(part)});rect.remove()}patch();new MutationObserver(patch).observe(document.getElementById('pcah-production-mount'),{childList:true,subtree:true})})();
(()=>{const s=document.createElement('script');s.textContent=new TextDecoder().decode(Uint8Array.from(atob('KCgpPT57ZnVuY3Rpb24gYm9vdCgpe2NvbnN0IGg9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Bjdy10aXRsZScpO2lmKCFoKXJldHVybjtjb25zdCByZWR1Y2U9bWF0Y2hNZWRpYSgnKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKScpO2xldCBlbnRlcmVkPWZhbHNlLGFuaW1hdGlvbjtmdW5jdGlvbiBzY2FuKCl7Y29uc3Qgcj1oLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9aC5jbG9zZXN0KCcucGMtc3BhdGlhbC1zdXJmYWNlJyksZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGMtc3BhdGlhbC1yZXZpZXcnKSxwPUpTT04ucGFyc2UoZz8uZGF0YXNldC5wY1Bvc2l0aW9ufHwne30nKSxvbj1yLmJvdHRvbT4wJiZyLnRvcDxpbm5lckhlaWdodCouOTUmJmdldENvbXB1dGVkU3R5bGUoaCkudmlzaWJpbGl0eSE9PSdoaWRkZW4nJiYoIWc/LmNsYXNzTGlzdC5jb250YWlucygncGMtc3BhdGlhbC1lbmFibGVkJyl8fChzPy5kYXRhc2V0LnBjQ2hhcHRlckFjdGl2ZT09PSd0cnVlJyYmIXAubW92aW5nKSk7aWYoIW9uKXtlbnRlcmVkPWZhbHNlO2FuaW1hdGlvbj8uY2FuY2VsKCk7cmV0dXJufWlmKGVudGVyZWQpcmV0dXJuO2VudGVyZWQ9dHJ1ZTtpZihyZWR1Y2UubWF0Y2hlcylyZXR1cm47YW5pbWF0aW9uPWguYW5pbWF0ZShbe3RyYW5zbGF0ZTonMHB4Jyx0ZXh0U2hhZG93OicwIDAgMCB0cmFuc3BhcmVudCd9LHtvZmZzZXQ6LjMyLHRyYW5zbGF0ZTonLjZweCAwJyx0ZXh0U2hhZG93OictLjdweCAwIDAgIzkyYWRjOTYwLC43cHggMCAwICNkYmM4ZDg2MCwwIDAgOXB4ICNmM2VmZTc1NSd9LHtvZmZzZXQ6LjQ4LHRyYW5zbGF0ZTonLS40cHggMCcsdGV4dFNoYWRvdzonLjVweCAwIDAgI2I1YzhkYjUwLC0uNXB4IDAgMCAjZGFjOWQ1NTAsMCAwIDEycHggI2ZmZjhlOTRkJ30se29mZnNldDouNjgsdHJhbnNsYXRlOicuMnB4IDAnLHRleHRTaGFkb3c6JzAgMCA2cHggI2ZmZjdlOTMwJ30se3RyYW5zbGF0ZTonMHB4Jyx0ZXh0U2hhZG93OicwIDAgMCB0cmFuc3BhcmVudCd9XSx7ZHVyYXRpb246MTEwMCxlYXNpbmc6J2Vhc2UtaW4tb3V0J30pfW5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihzY2FuLHt0aHJlc2hvbGQ6WzAsLjEsLjVdfSkub2JzZXJ2ZShoKTthZGRFdmVudExpc3RlbmVyKCdwYy1zcGF0aWFsLXZpc2liaWxpdHknLHNjYW4pO2FkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsc2Nhbix7cGFzc2l2ZTp0cnVlfSk7YWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJyxzY2FuKTtyZWR1Y2UuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywoKT0+e2lmKHJlZHVjZS5tYXRjaGVzKWFuaW1hdGlvbj8uY2FuY2VsKCl9KTtzY2FuKCl9aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSdsb2FkaW5nJylkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywoKT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGJvb3QpLHtvbmNlOnRydWV9KTtlbHNlIHJlcXVlc3RBbmltYXRpb25GcmFtZShib290KX0pKCk7'),c=>c.charCodeAt(0)));document.head.append(s)})();(()=>{const s=document.createElement('script');s.textContent=new TextDecoder().decode(Uint8Array.from(atob('KCgpPT57bGV0IHJlYWR5PWZhbHNlLGVudGVyZWQ9ZmFsc2UsYW5pbWF0aW9ucz1bXTtjb25zdCByZWR1Y2U9bWF0Y2hNZWRpYSgnKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKScpO2Z1bmN0aW9uIHNjYW4oKXtjb25zdCBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYy1lbnF1aXJ5LXdlbGNvbWUnKTtpZighaClyZXR1cm47aWYoIXJlYWR5KXtyZWFkeT10cnVlO2gudGV4dENvbnRlbnQ9Jyc7aC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCdXRUxDT01FIFRPIE9VUiBXT1JMRC4gWU9VUiBWSVNJT04uIE9VUiBFWFBFUlRJU0UuJyk7WydXRUxDT01FIFRPIE9VUiBXT1JMRC4nLCdZT1VSIFZJU0lPTi4gT1VSIEVYUEVSVElTRS4nXS5mb3JFYWNoKGxpbmU9Pntjb25zdCByb3c9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO3Jvdy5jbGFzc05hbWU9J3BjLWNsb3NlLWxpbmUnO3Jvdy5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywndHJ1ZScpO2xpbmUuc3BsaXQoJyAnKS5mb3JFYWNoKCh3b3JkLGkpPT57aWYoaSlyb3cuYXBwZW5kKCcgJyk7Y29uc3Qgdz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7dy5jbGFzc05hbWU9J3BjLWNsb3NlLXdvcmQnO1suLi53b3JkXS5mb3JFYWNoKGM9Pntjb25zdCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtzLmNsYXNzTmFtZT0ncGMtY2xvc2UtbGV0dGVyJztzLnRleHRDb250ZW50PWM7dy5hcHBlbmQocyl9KTtyb3cuYXBwZW5kKHcpfSk7aC5hcHBlbmQocm93KX0pO2NvbnN0IG9sZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdGV4dDAxJyk7aWYob2xkJiYveW91ciB2aXNpb24uKm91ciBleHBlcnRpc2UvaS50ZXN0KG9sZC50ZXh0Q29udGVudCkpb2xkLmNsYXNzTGlzdC5hZGQoJ3BjLWNsb3NpbmctcmVwbGFjZWQnKX1jb25zdCBmb290ZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2VtYmVkMDIgLmZvb3Rlci1saW5rcycpO2lmKGZvb3Rlcil7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBjLWZvcm0tcHJpdmFjeScpPy5yZW1vdmUoKTtpZighZm9vdGVyLnF1ZXJ5U2VsZWN0b3IoJ2FbaHJlZio9InByaXZhY3lwb2xpY3kiXScpKXtjb25zdCBsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpLGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO2EuaHJlZj0naHR0cHM6Ly9wcml2YWN5cG9saWN5LnBhY2lmaWNjcmVhdGl2ZS5jby51ay8nO2EudGV4dENvbnRlbnQ9J1ByaXZhY3kgUG9saWN5JztsaS5hcHBlbmQoYSk7Zm9vdGVyLmFwcGVuZChsaSl9fWNvbnN0IHI9aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWguY2xvc2VzdCgnLnBjLXNwYXRpYWwtc3VyZmFjZScpLGc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BjLXNwYXRpYWwtcmV2aWV3JykscD1KU09OLnBhcnNlKGc/LmRhdGFzZXQucGNQb3NpdGlvbnx8J3t9Jyksb249ci5ib3R0b20+MCYmci50b3A8aW5uZXJIZWlnaHQqLjk1JiYoIWc/LmNsYXNzTGlzdC5jb250YWlucygncGMtc3BhdGlhbC1lbmFibGVkJyl8fChzPy5kYXRhc2V0LnBjQ2hhcHRlckFjdGl2ZT09PSd0cnVlJyYmIXAubW92aW5nKSk7aWYoIW9uKXtlbnRlcmVkPWZhbHNlO2FuaW1hdGlvbnMuZm9yRWFjaChhPT5hLmNhbmNlbCgpKTthbmltYXRpb25zPVtdO3JldHVybn1pZihlbnRlcmVkKXJldHVybjtlbnRlcmVkPXRydWU7aWYocmVkdWNlLm1hdGNoZXMpcmV0dXJuO2gucXVlcnlTZWxlY3RvckFsbCgnLnBjLWNsb3NlLWxldHRlcicpLmZvckVhY2goKGxldHRlcixpKT0+e2FuaW1hdGlvbnMucHVzaChsZXR0ZXIuYW5pbWF0ZShbe29wYWNpdHk6MCx0cmFuc2xhdGU6KGklMj8nLTdweCc6JzdweCcpKycgMTZweCcsZmlsdGVyOidibHVyKDJweCknfSx7b2Zmc2V0Oi43MixvcGFjaXR5OjEsdHJhbnNsYXRlOicwcHggLTFweCcsZmlsdGVyOidibHVyKDApJ30se29wYWNpdHk6MSx0cmFuc2xhdGU6JzBweCAwcHgnLGZpbHRlcjonYmx1cigwKSd9XSx7ZHVyYXRpb246MTUwMCxkZWxheTppKjI2LGVhc2luZzonY3ViaWMtYmV6aWVyKC4yLC42NSwuMiwxKScsZmlsbDonYmFja3dhcmRzJ30pKX0pfWFkZEV2ZW50TGlzdGVuZXIoJ3BjLXNwYXRpYWwtdmlzaWJpbGl0eScsc2Nhbik7YWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJyxzY2FuLHtwYXNzaXZlOnRydWV9KTthZGRFdmVudExpc3RlbmVyKCdsb2FkJyxzY2FuKTtyZWR1Y2UuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywoKT0+e2lmKHJlZHVjZS5tYXRjaGVzKWFuaW1hdGlvbnMuZm9yRWFjaChhPT5hLmNhbmNlbCgpKX0pO3JlcXVlc3RBbmltYXRpb25GcmFtZShzY2FuKX0pKCk7'),c=>c.charCodeAt(0)));document.head.append(s)})();(()=>{const s=document.createElement('script');s.textContent=atob('KCgpPT57aWYoIW1hdGNoTWVkaWEoJyhob3Zlcjpob3ZlcikgYW5kIChwb2ludGVyOmZpbmUpJykubWF0Y2hlcylyZXR1cm47Y29uc3Qgcm9vdD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscmVkdWNlPW1hdGNoTWVkaWEoJyhwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSknKSxzaGFwZT0nTTMgMmg3YzUgMCA4IDIuNiA4IDdzLTMgNy04IDdINnY3SDN6bTMgM3Y4aDRjMyAwIDUtMS40IDUtNHMtMi00LTUtNHonO2xldCByZ2I9WzIzMSwyMjksMjIzXSxrZXk9JycsZnJhbWU9MCxnbG93PTAsdGltZXI7ZnVuY3Rpb24gcGFpbnQoKXtjb25zdCBjPSdyZ2IoJytyZ2Iuam9pbignLCcpKycpJztmdW5jdGlvbiB1cmwoaGl0KXtyZXR1cm4gJ3VybCgiZGF0YTppbWFnZS9zdmcreG1sLCcrZW5jb2RlVVJJQ29tcG9uZW50KCc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjIyIiBoZWlnaHQ9IjI1IiB2aWV3Qm94PSIwIDAgMjIgMjUiPicrKGhpdCYmZ2xvdz8nPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSInK2MrJyIgb3BhY2l0eT0iLjMyIiBzdHJva2Utd2lkdGg9IjIuMyIgZD0iJytzaGFwZSsnIi8+JzonJykrJzxwYXRoIGZpbGw9IicrYysnIiBzdHJva2U9IiMwOTA5MDkiIHN0cm9rZS13aWR0aD0iLjY1IiBkPSInK3NoYXBlKyciLz4nKyhoaXQ/JzxjaXJjbGUgY3g9IjE4IiBjeT0iMjEiIHI9IjIiIGZpbGw9IndoaXRlIiBzdHJva2U9IiMwOTA5MDkiIHN0cm9rZS13aWR0aD0iLjYiLz4nOicnKSsnPC9zdmc+JykrJyIpJ31yb290LnN0eWxlLnNldFByb3BlcnR5KCctLXBjLWN1cnNvcicsdXJsKGZhbHNlKSk7cm9vdC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1wYy1jdXJzb3ItaGl0Jyx1cmwodHJ1ZSkpfWZ1bmN0aW9uIHN5bmMoKXtjb25zdCBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYy1zcGF0aWFsLXN1cmZhY2VbZGF0YS1wYy1jaGFwdGVyLWFjdGl2ZT0idHJ1ZSJdJyksaWQ9cz8ucXVlcnlTZWxlY3RvcignLmNvbnRhaW5lci1jb21wb25lbnQnKT8uaWR8fCcnLG5leHQ9L2NvbnRhaW5lcjA0fGNvbnRhaW5lcjEwfHBjLXNlYXNvbmFsLWNoYXB0ZXIvLnRlc3QoaWQpPycxMTYsMzcsNDknOi9jb250YWluZXIxMXxjb250YWluZXIxM3xwYy1yZXNvbmFuY2UtY2hhcHRlci8udGVzdChpZCk/JzE5OSwxNjgsMTA3JzonMjMxLDIyOSwyMjMnO2lmKG5leHQ9PT1rZXkpcmV0dXJuO2tleT1uZXh0O2NhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtjb25zdCBmcm9tPXJnYi5zbGljZSgpLHRvPW5leHQuc3BsaXQoJywnKS5tYXAoTnVtYmVyKSxiZWdpbj1wZXJmb3JtYW5jZS5ub3coKTtmdW5jdGlvbiB0aWNrKG5vdyl7Y29uc3QgcD1yZWR1Y2UubWF0Y2hlcz8xOk1hdGgubWluKDEsKG5vdy1iZWdpbikvNjAwKSxlYXNlPXAqcCooMy0yKnApO3JnYj10by5tYXAoKHYsaSk9Pk1hdGgucm91bmQoZnJvbVtpXSsodi1mcm9tW2ldKSplYXNlKSk7cGFpbnQoKTtpZihwPDEpZnJhbWU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2spfWZyYW1lPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrKX1hZGRFdmVudExpc3RlbmVyKCdwYy1zcGF0aWFsLXZpc2liaWxpdHknLHN5bmMpO2FkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLHN5bmMpO2FkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJvdmVyJyxlPT57aWYoIWUudGFyZ2V0LmNsb3Nlc3QoJ2EsYnV0dG9uLHN1bW1hcnksW3JvbGU9ImJ1dHRvbiJdLFtkYXRhLWNhcmRdJykpcmV0dXJuO2NsZWFyVGltZW91dCh0aW1lcik7Z2xvdz1yZWR1Y2UubWF0Y2hlcz8wOjE7cGFpbnQoKTt0aW1lcj1zZXRUaW1lb3V0KCgpPT57Z2xvdz0wO3BhaW50KCl9LDQ1MCl9LHtwYXNzaXZlOnRydWV9KTtyZWR1Y2UuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywoKT0+e2tleT0nJztzeW5jKCl9KTtwYWludCgpO3N5bmMoKX0pKCk7');document.head.append(s)})();(()=>{const s=document.createElement('script');s.textContent=new TextDecoder().decode(Uint8Array.from(atob('KCgpPT57ZnVuY3Rpb24gYm9vdCgpe2NvbnN0IGhlYWRlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYnJpZWYtbmF2YmFyJyk7aWYoIWhlYWRlcilyZXR1cm47aWYoaGVhZGVyLnBhcmVudEVsZW1lbnQhPT1kb2N1bWVudC5ib2R5KWRvY3VtZW50LmJvZHkucHJlcGVuZChoZWFkZXIpO2hlYWRlci5jbGFzc0xpc3QucmVtb3ZlKCdpcy1kaXNzb2x2ZWQnKTtjb25zdCBtYWlsPWhlYWRlci5xdWVyeVNlbGVjdG9yKCcuYnJpZWYtZW1haWwnKTtpZihtYWlsPy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKT8uaW5jbHVkZXMoJy9jZG4tY2dpL2wvZW1haWwtcHJvdGVjdGlvbiMnKSl7dHJ5e2NvbnN0IGNvZGU9bWFpbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKS5zcGxpdCgnIycpWzFdLGtleT1wYXJzZUludChjb2RlLnNsaWNlKDAsMiksMTYpO21haWwuaHJlZj0nbWFpbHRvOicrY29kZS5zbGljZSgyKS5tYXRjaCgvLnsyfS9nKS5tYXAoYz0+U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChjLDE2KV5rZXkpKS5qb2luKCcnKX1jYXRjaChlKXt9fWhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1jZmVtYWlsXScpLmZvckVhY2goc3Bhbj0+e3RyeXtjb25zdCBjb2RlPXNwYW4uZ2V0QXR0cmlidXRlKCdkYXRhLWNmZW1haWwnKSxrZXk9cGFyc2VJbnQoY29kZS5zbGljZSgwLDIpLDE2KTtzcGFuLnRleHRDb250ZW50PWNvZGUuc2xpY2UoMikubWF0Y2goLy57Mn0vZykubWFwKGM9PlN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoYywxNilea2V5KSkuam9pbignJyl9Y2F0Y2goZSl7fX0pO2xldCBpZGxlPTAsbGFzdD0nJztmdW5jdGlvbiBzaG93KCl7aGVhZGVyLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWRpc3NvbHZlZCcpfWFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsKCk9PntjbGVhclRpbWVvdXQoaWRsZSk7aWRsZT1zZXRUaW1lb3V0KHNob3csNTUwKX0se3Bhc3NpdmU6dHJ1ZX0pO2FkZEV2ZW50TGlzdGVuZXIoJ3BjLXNwYXRpYWwtdmlzaWJpbGl0eScsKCk9Pntjb25zdCBwPUpTT04ucGFyc2UoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BjLXNwYXRpYWwtcmV2aWV3Jyk/LmRhdGFzZXQucGNQb3NpdGlvbnx8J3t9Jyksa2V5PVN0cmluZyhwLmluZGV4KStwLm1vdmluZztpZihrZXk9PT1sYXN0KXJldHVybjtsYXN0PWtleTtpZighcC5tb3Zpbmcpc2hvdygpfSk7c2hvdygpfWlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0nbG9hZGluZycpZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsKCk9PnJlcXVlc3RBbmltYXRpb25GcmFtZShib290KSx7b25jZTp0cnVlfSk7ZWxzZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYm9vdCl9KSgpOw=='),c=>c.charCodeAt(0)));document.head.append(s)})();
WHY PACIFIC
DEFINE
POSITIONING.
ALIGN
THE EXPERIENCE.
ORCHESTRATE
EVERY TOUCHPOINT.
EXPRESSED COHERENTLY.
ONE WORLD · ONE VISION · MANY EXPRESSIONS
(function () { let pacificBootAttempts = 0; /* ======================================================== ORIGINAL ANIMATION HELPERS ======================================================== */ function clamp(value,min,max) { return Math.min( Math.max(value,min), max ); } function easeOutCubic(x) { return 1 - Math.pow(1-x,3); } function easeInCubic(x) { return x*x*x; } /* ======================================================== INITIALISE ======================================================== */ function initialisePacificWhy() { const hero = document.getElementById( "pacificWhyHero" ); const video = document.getElementById( "pacificWhyVideo" ); const signature = document.getElementById( "pacificClosingSignature" ); const soundButton = document.getElementById( "pacificSoundButton" ); if (!hero || !video) { pacificBootAttempts++; if ( pacificBootAttempts < 40 ) { setTimeout( initialisePacificWhy, 150 ); } return; } if ( hero.getAttribute( "data-pacific-ready" ) === "true" ) { return; } hero.setAttribute( "data-pacific-ready", "true" ); const cues = Array.from( hero.querySelectorAll( ".pacificCue" ) ); const source = video.querySelector( "source" ); let sourceLoaded = false; let narrativeStarted = false; let sectionVisible = false; let narrativeRAF = null; /* ====================================================== LOAD SOURCE ONLY DOES NOT PLAY IT ====================================================== */ function loadPacificSource() { if (sourceLoaded) { return; } if ( source && !source.getAttribute("src") && source.getAttribute("data-src") ) { source.setAttribute( "src", source.getAttribute("data-src") ); } sourceLoaded = true; video.defaultMuted = true; video.muted = true; try { video.load(); } catch (e) {} } /* ====================================================== ORIGINAL NARRATIVE ENGINE EXACT ORIGINAL TIMINGS ====================================================== */ function renderPacificNarrative() { const current = Number(video.currentTime) || 0; /* ==================================== NORMAL CUES ==================================== */ cues.forEach(function (cue) { const start = Number( cue.getAttribute( "data-start" ) ); const end = Number( cue.getAttribute( "data-end" ) ); const duration = end - start; if ( current < start || current > end ) { cue.style.opacity = "0"; cue.style.transform = "translate3d(0,34px,0) scale(.992)"; cue.style.filter = "blur(5px)"; return; } const local = current - start; const enterDuration = Math.min( 1.15, duration * .24 ); const exitDuration = Math.min( 1.15, duration * .24 ); let opacity = 1; let translateY = 0; let blur = 0; let scale = 1; /* ENTER */ if ( local < enterDuration ) { const progress = clamp( local / enterDuration, 0, 1 ); const eased = easeOutCubic( progress ); opacity = eased; translateY = 34 * (1-eased); blur = 5 * (1-eased); scale = .992 + (.008*eased); } /* EXIT */ else if ( local > duration - exitDuration ) { const progress = clamp( ( local - ( duration - exitDuration ) ) / exitDuration, 0, 1 ); const eased = easeInCubic( progress ); opacity = 1-eased; translateY = -22*eased; blur = 3.5*eased; scale = 1 + (.004*eased); } cue.style.opacity = String(opacity); cue.style.transform = "translate3d(0," + translateY + "px,0) scale(" + scale + ")"; cue.style.filter = "blur(" + blur + "px)"; }); /* ==================================== CLOSING BRAND SIGNATURE ==================================== */ if (signature) { const start = 24.75; const fullyVisible = 25.35; const fadeStart = 27.20; const end = 27.34; let opacity = 0; /* FADE IN */ if ( current >= start && current < fullyVisible ) { const progress = clamp( ( current - start ) / ( fullyVisible - start ), 0, 1 ); opacity = easeOutCubic( progress ); } /* HOLD */ else if ( current >= fullyVisible && current < fadeStart ) { opacity = 1; } /* FINAL TINY FADE */ else if ( current >= fadeStart && current <= end ) { const progress = clamp( ( current - fadeStart ) / ( end - fadeStart ), 0, 1 ); opacity = 1 - easeInCubic( progress ); } signature.style.opacity = String(opacity); } } /* ====================================================== CONTINUOUS NARRATIVE SYNC ====================================================== */ function narrativeLoop() { renderPacificNarrative(); narrativeRAF = requestAnimationFrame( narrativeLoop ); } narrativeRAF = requestAnimationFrame( narrativeLoop ); /* ====================================================== START FILM FROM THE BEGINNING ONLY WHEN VISITOR REACHES SECTION ====================================================== */ function startPacificNarrative() { loadPacificSource(); narrativeStarted = true; /* Queue playback directly; avoid a delayed start after scrolling away. */ const attempt = video.play(); if (attempt && attempt.catch) attempt.catch(function (error) { if (error.name !== "AbortError") { hero.setAttribute("data-pacific-playback", "interaction-required"); } }); } function syncSoundButton() { const audible = !video.muted && video.volume > 0; soundButton.textContent = audible ? "SOUND OFF ↗" : "SOUND ON ↗"; soundButton.setAttribute("aria-label", audible ? "Turn sound off" : "Turn sound on"); soundButton.setAttribute("aria-pressed", String(audible)); } if (soundButton) { soundButton.addEventListener("click", function (event) { /* Own this click before the page controller can toggle sound again. */ event.stopImmediatePropagation(); /* Load before unmuting, and play synchronously with the click. */ loadPacificSource(); const enableSound = video.muted || video.volume === 0; video.muted = !enableSound; if (enableSound) video.volume = 1; syncSoundButton(); if (video.paused) startPacificNarrative(); }, true); video.addEventListener("volumechange", syncSoundButton); syncSoundButton(); } video.addEventListener("playing", function () { hero.setAttribute("data-pacific-playback", "playing"); }); video.addEventListener("error", function () { hero.setAttribute("data-pacific-playback", "media-error"); }); /* Keep seeking, loop resets, and paused frames in sync. */ ["loadeddata", "timeupdate", "seeked", "pause"].forEach(function (event) { video.addEventListener(event, renderPacificNarrative); }); function syncPlayback() { if (sectionVisible && !document.hidden) startPacificNarrative(); else video.pause(); } if ("IntersectionObserver" in window) { const preloadObserver = new IntersectionObserver(function (entries) { if (entries.some(function (entry) { return entry.isIntersecting; })) { loadPacificSource(); preloadObserver.disconnect(); } }, { rootMargin: "300px 0px" }); preloadObserver.observe(hero); const playbackObserver = new IntersectionObserver(function (entries) { sectionVisible = entries[entries.length - 1].isIntersecting; syncPlayback(); }, { threshold: 0 }); playbackObserver.observe(hero); } else { sectionVisible = true; syncPlayback(); } document.addEventListener("visibilitychange", syncPlayback); window.addEventListener("pageshow", syncPlayback); renderPacificNarrative(); } /* Initialise during parsing or after Carrd inserts the embed. */ initialisePacificWhy(); if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initialisePacificWhy, { once: true }); } })();

THE COMMERCIAL PROBLEM

is rarely a lack of touchpoints

Brand
Space
Service
Content
Digital
People
Orchestration

Coherence begins when every expression works as part of the same system.

PRODUCT · POSITIONING

PRODUCT AS EXPERIENCE

Positioning product through material, ritual, image and desire.

THE PACIFIC ARCHITECTURE

One system Five disciplines

Five disciplines. One creative vision. From brand identity and storytelling to digital experiences, marketing and intelligent automation.

Scope of work

Creative concepts, art direction, film, photography and authored brand storytelling.

Scope of work

Brand positioning, visual identities, naming, brand guidelines and design systems.

Scope of work

Brand launches, campaign concepts, editorial content, marketing communications, collaborations and activations.

Scope of work

Websites, e-commerce, immersive digital experiences and connected customer journeys.

Scope of work

AI-assisted content systems, workflow automation, platform integrations and commercial tools.

Distinct capabilities, directed as one coherent system.

CREATIVE DIRECTION · BRAND EXPRESSION

CREATIVE DIRECTION · EDITORIAL WORLDS

PACIFIC CREATIVE WORLDS

01 / 07 · BEAUTY
(function(){var root=document.getElementById('pcw');if(!root||root.dataset.ready)return;root.dataset.ready='true';var names=['Beauty','Jewellery','Hospitality','Fashion','Couture','Technology','Culture'],versions=[1791722778,1791722782,1791722779,1791722780,1791722781,1791722784,1791722781],sizes=[[1672,941],[1678,937],[1678,937],[941,1672],[1679,937],[937,1678],[1678,937]],stage=root.querySelector('.pcw-stage'),pages=root.querySelector('.pcw-pages'),nav=root.querySelector('.pcw-index'),caption=root.querySelector('.pcw-caption'),dialog=root.querySelector('dialog'),full=dialog.querySelector('img'),current=0,st=false,sx=null,sw=0,rf=null,stand=root.querySelector('.pcw-stand'),ft=null,gallery=false,rt=null;var urls=names.map(function(n,i){return 'https://res.cloudinary.com/goawy7c4/image/upload/v'+versions[i]+'/pacific-creative-worlds-0'+(i+1)+'-'+n.toLowerCase()+'.png'});names.forEach(function(n,i){var page=document.createElement('div');page.className='pcw-page'+(i===0?' pcw-active':'');page.setAttribute('role','group');page.setAttribute('aria-label',(i+1)+' of 7: '+n);page.setAttribute('aria-hidden',i!==0?'true':'false');var img=document.createElement('img');img.alt='PACIFIC Creative Worlds '+('0'+(i+1))+' — '+n+'; full editorial cover';img.width=sizes[i][0];img.height=sizes[i][1];img.decoding='async';img.dataset.src=urls[i];img.addEventListener('error',function(){caption.textContent=n.toUpperCase()+' · Image unavailable. Select another world.'});page.appendChild(img);pages.appendChild(page);var b=document.createElement('button');b.type='button';b.textContent=('0'+(i+1))+' '+n.toUpperCase();b.setAttribute('aria-current',i===0?'true':'false');b.addEventListener('click',function(){show(i)});nav.appendChild(b)});var items=Array.from(pages.children),buttons=Array.from(nav.children);names.forEach(function(n,i){var b=document.createElement('button');b.type='button';b.className='pcw-edition'+(sizes[i][1]>sizes[i][0]?' pcw-edition-portrait':'');b.setAttribute('aria-label','Open edition '+('0'+(i+1))+': '+n);var img=document.createElement('img');img.alt='';img.width=sizes[i][0];img.height=sizes[i][1];img.decoding='async';img.dataset.src=urls[i];b.appendChild(img);b.addEventListener('click',function(){show(i);stage.focus()});stand.querySelector(i===3||i===5||i===6?'.pcw-shelf-bottom':'.pcw-shelf-top').appendChild(b)});function cf(){if(ft){clearTimeout(ft);ft=null}}function cl(){cf();gallery=true;stage.classList.remove('pcw-glow');Array.from(stand.querySelectorAll('img')).forEach(function(img){img.src=img.dataset.src});stage.classList.remove('pcw-portrait');stage.classList.add('pcw-gallery');stand.removeAttribute('inert');stand.setAttribute('aria-hidden','false');items.forEach(function(p){p.setAttribute('aria-hidden','true')});caption.textContent='01—07 · THE CREATIVE WORLDS COLLECTION'}function sf(){cf();if(current===6&&!document.hidden&&!dialog.open)ft=setTimeout(cl,4600)}function load(i){var img=items[i].querySelector('img');if(!img.getAttribute('src'))img.src=img.dataset.src}function fr(){if(rt)clearTimeout(rt);rt=null;stage.classList.remove('pcw-reset');stage.classList.add('pcw-closed');st=false}function reset(){cf();if(!gallery)cl();stand.setAttribute('inert','');stage.classList.add('pcw-reset');stage.classList.remove('pcw-revealed');st=false;rt=setTimeout(fr,2800)}function reveal(){if(rt)fr();if(st)return;stage.classList.remove('pcw-closed');if(gallery)stand.removeAttribute('inert');st=true;load(current);stage.classList.add('pcw-revealed')}function show(i){cf();gallery=false;stage.classList.remove('pcw-glow');stage.classList.remove('pcw-gallery');stand.setAttribute('inert','');stand.setAttribute('aria-hidden','true');reveal();i=(i+7)%7;items.forEach(function(p,j){p.classList.toggle('pcw-leaving',j===current&&j!==i);p.classList.toggle('pcw-active',j===i);p.setAttribute('aria-hidden',j===i?'false':'true');buttons[j].setAttribute('aria-current',j===i?'true':'false')});current=i;load(i);stage.classList.toggle('pcw-portrait',sizes[i][1]>sizes[i][0]);caption.textContent=('0'+(i+1))+' / 07 · '+names[i].toUpperCase();requestAnimationFrame(function(){stage.classList.add('pcw-glow')});sf()}root.querySelector('[data-pcw=prev]').addEventListener('click',function(){show(current-1)});root.querySelector('[data-pcw=next]').addEventListener('click',function(){if(current===6&&!gallery)cl();else show(current+1)});stage.addEventListener('keydown',function(e){if(e.key==='ArrowRight'||e.key==='ArrowLeft'||e.key==='Home'||e.key==='End'){e.preventDefault();show(e.key==='Home'?0:e.key==='End'?6:current+(e.key==='ArrowRight'?1:-1))}});stage.addEventListener('pointerdown',function(e){if(e.pointerType!=='mouse')sx=e.clientX});stage.addEventListener('pointerup',function(e){if(sx!==null){var dx=e.clientX-sx;sx=null;if(Math.abs(dx)>45){sw=Date.now();show(current+(dx<0?1:-1))}}});stage.addEventListener('pointercancel',function(){sx=null});root.querySelector('[data-pcw=expand]').addEventListener('click',function(){cf();reveal();full.src=urls[current];full.alt=items[current].querySelector('img').alt;rf=document.activeElement;dialog.showModal()});root.querySelector('[data-pcw=close]').addEventListener('click',function(){dialog.close()});dialog.addEventListener('close',function(){if(rf)rf.focus();if(!gallery)sf()});document.addEventListener('visibilitychange',function(){if(document.hidden)cf();else if(!gallery)sf()});function outside(e,img){if(!img||!img.naturalWidth)return true;var r=img.getBoundingClientRect(),k=Math.min(r.width/img.naturalWidth,r.height/img.naturalHeight),w=img.naturalWidth*k,h=img.naturalHeight*k,x=r.left+(r.width-w)/2,y=r.top+(r.height-h)/2;return e.clientXx+w||e.clientYy+h}stage.addEventListener('click',function(e){if(!gallery&&st&&Date.now()-sw>500&&!e.target.closest('button'))cl()});dialog.addEventListener('click',function(e){if(!e.target.closest('button')&&outside(e,full)){dialog.close();cl()}});if('IntersectionObserver'in window){function v(){var r=stage.getBoundingClientRect(),s=stage.closest('.pc-spatial-enabled .pc-spatial-surface'),t=s?s.getBoundingClientRect().top:0,h=Math.min(innerHeight, s?s.getBoundingClientRect().bottom:innerHeight);if(s&&s.dataset.pcOverview==='true')return;if(r.top>=t-1&&r.bottom<=h+1)reveal();else if(st&&!rt&&(r.bottom<=t||r.top>=h))reset()}new IntersectionObserver(v,{threshold:[0,.45,.98,1]}).observe(stage);addEventListener('pc-spatial-visibility',v)}else reveal();})();

HOW PACIFIC CAN HELP

Different ambitions.
Different scales.
One creative standard.

From a focused creative commission to a connected programme of work, PACIFIC brings the right disciplines together around what your organisation needs to achieve.

ONE WORLD. ONE VISION.
MANY EXPRESSIONS.

PACIFIC CREATIVE 01 / 06

A NEW CHAPTER

Establish Your Identity

For new ventures, emerging brands or organisations preparing for their next chapter.

CREATIVE POSSIBILITIES / PACIFIC

PACIFIC CREATIVE 02 / 06

THE NEXT EXPRESSION

Reimagine Your Brand

For established businesses whose current expression no longer reflects their ambition, audience or market position.

CREATIVE POSSIBILITIES / PACIFIC

PACIFIC CREATIVE 03 / 06

AN AUTHORED MOMENT

Create Something Extraordinary

For a campaign, launch, editorial production or distinctive creative moment that needs a compelling visual and narrative direction.

CREATIVE POSSIBILITIES / PACIFIC

PACIFIC CREATIVE 04 / 06

A CONNECTED WORLD

Connect the Experience

For businesses looking to create greater coherence between their physical presence, digital platforms and customer interactions.

CREATIVE POSSIBILITIES / PACIFIC

PACIFIC CREATIVE 05 / 06

INTELLIGENCE IN PRACTICE

Make Technology Work Better

For organisations seeking more intelligent workflows, better-connected systems and practical applications of AI and automation.

CREATIVE POSSIBILITIES / PACIFIC

PACIFIC CREATIVE 06 / 06

CONTINUITY & AMBITION

Build Creative Momentum

For businesses that need ongoing creative leadership, consistent execution and support as their ambitions evolve.

CREATIVE POSSIBILITIES / PACIFIC

01 / 06 · Establish Your Identity

Have something in mind?

Whether you have a defined brief or an ambition still taking shape, we can help determine the right creative approach.

DISCUSS YOUR PROJECT
(function(){var r=document.getElementById('pacific-brief-2b');if(!r||r.dataset.folio)return;r.dataset.folio='true';var cards=Array.from(r.querySelectorAll('.hf-folio')),tabs=Array.from(r.querySelectorAll('[data-hf-index]')),stack=r.querySelector('.hf-stack'),status=r.querySelector('.hf-status'),n=0,x=null,y=null,timer=null;r.classList.add('hf-ready');function select(i){i=(i+6)%6;if(timer)clearTimeout(timer);cards.forEach(function(c,j){c.classList.remove('hf-exit');c.classList.toggle('hf-current',j===i);c.style.setProperty('--hf-order',(j-i+6)%6);c.setAttribute('aria-hidden',j===i?'false':'true');tabs[j].setAttribute('aria-current',j===i?'true':'false')});if(i!==n){cards[n].classList.add('hf-exit');cards[n].querySelector('.hf-paper').style.visibility='visible';timer=setTimeout(function(){cards.forEach(function(c){c.classList.remove('hf-exit');c.querySelector('.hf-paper').style.visibility=''})},1000)}n=i;status.textContent=('0'+(n+1))+' / 06 · '+cards[n].querySelector('h3').textContent}select(0);tabs.forEach(function(b,i){b.addEventListener('click',function(){select(i)})});r.querySelector('[data-hf=prev]').addEventListener('click',function(){select(n-1)});r.querySelector('[data-hf=next]').addEventListener('click',function(){select(n+1)});stack.addEventListener('keydown',function(e){if(['ArrowRight','ArrowLeft','Home','End'].indexOf(e.key)>-1){e.preventDefault();select(e.key==='Home'?0:e.key==='End'?5:n+(e.key==='ArrowRight'?1:-1))}});stack.addEventListener('pointerdown',function(e){if(e.pointerType!=='mouse'){x=e.clientX;y=e.clientY}});stack.addEventListener('pointerup',function(e){if(x!==null){var dx=e.clientX-x,dy=e.clientY-y;x=y=null;if(Math.abs(dx)>45&&Math.abs(dx)>Math.abs(dy))select(n+(dx<0?1:-1))}});stack.addEventListener('pointercancel',function(){x=y=null});r.querySelector('.hf-cta a').addEventListener('click',function(e){var target=document.getElementById('container02'),heading=document.getElementById('text01');if(!target)return;e.preventDefault();e.stopImmediatePropagation();var header=document.getElementById('brief-navbar'),offset=header?header.getBoundingClientRect().height:0,top=target.getBoundingClientRect().top+window.scrollY+(heading?heading.offsetTop:0)-offset-24;window.scrollTo({top:Math.max(0,top),behavior:matchMedia('(prefers-reduced-motion:reduce)').matches?'auto':'smooth'});},true)})();

DIGITAL ORCHESTRATION · MEMBER EXPERIENCE

(function () { const root = document.getElementById('pacific-orchestration-film'); if (!root || root.dataset.ready === 'true') return; root.dataset.ready = 'true'; const video = root.querySelector('.po-video'); const soundButton = root.querySelector('.po-sound'); if (!video || !soundButton) return; /* ----------------------------------------- Autoplay ----------------------------------------- */ video.muted = true; video.defaultMuted = true; video.volume = 0; /* ----------------------------------------- Smooth sound fade ----------------------------------------- */ let volumeFrame = null; function fadeVolume(target, duration, onComplete) { if (volumeFrame) { cancelAnimationFrame(volumeFrame); volumeFrame = null; } const startVolume = video.volume; const startTime = performance.now(); function tick(now) { const progress = Math.min((now - startTime) / duration, 1); const eased = 1 - Math.pow(1 - progress, 3); try { video.volume = startVolume + (target - startVolume) * eased; } catch (e) { /* Some mobile browsers limit programmable volume. */ } if (progress < 1) { volumeFrame = requestAnimationFrame(tick); } else { volumeFrame = null; if (typeof onComplete === 'function') { onComplete(); } } } volumeFrame = requestAnimationFrame(tick); } soundButton.addEventListener('click', function () { const currentlyOff = video.muted || soundButton.getAttribute('aria-pressed') !== 'true'; if (currentlyOff) { try { video.volume = 0; } catch (e) {} video.muted = false; const playPromise = video.play(); if (playPromise && typeof playPromise.catch === 'function') { playPromise.catch(function () {}); } fadeVolume(1, 950); soundButton.textContent = 'SOUND OFF'; soundButton.setAttribute('aria-label', 'Turn film sound off'); soundButton.setAttribute('aria-pressed', 'true'); } else { fadeVolume(0, 720, function () { video.muted = true; }); soundButton.textContent = 'SOUND ON'; soundButton.setAttribute('aria-label', 'Turn film sound on'); soundButton.setAttribute('aria-pressed', 'false'); } }); /* ----------------------------------------- Cinematic enter / exit from darkness Fail-safe: if observer isn't available, the film simply remains fully visible. ----------------------------------------- */ const reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; if (!reduceMotion && 'IntersectionObserver' in window) { root.classList.add('po-observed'); const observer = new IntersectionObserver( function (entries) { entries.forEach(function (entry) { if (entry.intersectionRatio >= 0.18) { root.classList.add('po-active'); /* Retry play once the film genuinely enters view. */ if (video.paused) { const playPromise = video.play(); if ( playPromise && typeof playPromise.catch === 'function' ) { playPromise.catch(function () {}); } } } else { root.classList.remove('po-active'); } }); }, { threshold: [0, 0.08, 0.18, 0.35, 0.6] } ); observer.observe(root); } else { root.classList.add('po-active'); } })();

THE ORCHESTRATION PATHWAY

From complexity to coherence

We begin by understanding what exists, identify where value is being lost, align the right priorities and then orchestrate the experience around them.

01Research

Understand the organisation, its audiences, environment and existing experience.

02Diagnose

Identify fragmentation, missed value and the points that require strategic attention.

03Align

Define the priorities, principles and direction that should guide the next move.

04Orchestrate

Bring the relevant creative, brand, experience and digital elements into one coherent system.

Research · Diagnose · Align · Orchestrate

ORCHESTRATION IN MOTION

PACIFIC MOMENTS

Creative Direction · Brand Identity · Storytelling
(function () { const root = document.getElementById( 'pacific-moments-film' ); const video = document.getElementById( 'pmf-video' ); const sound = document.getElementById( 'pmf-sound' ); const replay = document.getElementById( 'pmf-replay' ); if (!root || !video) { return; } /* ========================= AUDIO DEFAULT ========================= */ video.muted = true; video.defaultMuted = true; try { video.volume = 0; } catch (e) {} let volumeRAF = null; function fadeVolume( target, duration, callback ) { if (volumeRAF) { cancelAnimationFrame( volumeRAF ); } const start = video.volume; const startTime = performance.now(); function step(now) { const p = Math.min( (now - startTime) / duration, 1 ); const ease = 1 - Math.pow( 1 - p, 3 ); try { video.volume = start + ( target - start ) * ease; } catch (e) {} if (p < 1) { volumeRAF = requestAnimationFrame( step ); } else { volumeRAF = null; if ( typeof callback === 'function' ) { callback(); } } } volumeRAF = requestAnimationFrame( step ); } /* ========================= SOUND ========================= */ if (sound) { sound.addEventListener( 'click', function () { const off = video.muted || sound.getAttribute( 'aria-pressed' ) !== 'true'; if (off) { try { video.volume = 0; } catch (e) {} video.muted = false; const play = video.play(); if ( play && typeof play.catch === 'function' ) { play.catch( function () {} ); } fadeVolume( 1, 950 ); sound.textContent = 'SOUND OFF'; sound.setAttribute( 'aria-pressed', 'true' ); } else { fadeVolume( 0, 720, function () { video.muted = true; } ); sound.textContent = 'SOUND ON'; sound.setAttribute( 'aria-pressed', 'false' ); } } ); } /* ========================= CINEMATIC REVEAL ========================= */ let sectionInside = false; let firstPlay = true; function playReveal() { /* Remove class first so animation can restart. */ root.classList.remove( 'pmf-reveal' ); /* Force layout refresh. */ void root.offsetWidth; /* Start reveal. */ requestAnimationFrame( function () { root.classList.add( 'pmf-reveal' ); } ); } function checkSection() { const rect = root.getBoundingClientRect(); const viewport = window.innerHeight || document.documentElement .clientHeight; /* Wide activation zone. Much safer inside Carrd. */ const surface=root.closest('.pc-spatial-surface'),mask=root.closest('.pc-spatial-mask');const clip=mask&&getComputedStyle(mask).display!=='contents'?mask.getBoundingClientRect():{left:0,right:window.innerWidth};const spatial=surface&&surface.closest('.pc-spatial-enabled');const shown=!surface||(getComputedStyle(surface).visibility!=='hidden'&&!surface.inert&&(!spatial||surface.dataset.pcChapterActive==='true'));const inside = shown && Math.min(rect.right,clip.right,window.innerWidth)>Math.max(rect.left,clip.left,0) && rect.top < viewport * .88 && rect.bottom > viewport * .12; if ( inside && !sectionInside ) { sectionInside = true; playReveal(); if (firstPlay) { const play = video.play(); if ( play && typeof play.catch === 'function' ) { play.catch( function () {} ); } firstPlay = false; } } if ( !inside && sectionInside ) { sectionInside = false; } } /* Scroll both directions. */ window.addEventListener( 'scroll', checkSection, { passive: true } ); window.addEventListener( 'resize', checkSection ); window.addEventListener('pc-spatial-visibility',checkSection); /* Carrd sometimes finishes arranging the page after scripts execute, so run several safe checks. */ checkSection(); setTimeout( checkSection, 250 ); setTimeout( checkSection, 800 ); setTimeout( checkSection, 1600 ); /* ========================= FILM END ========================= */ video.addEventListener( 'ended', function () { if (replay) { replay.classList.add( 'is-visible' ); } } ); /* ========================= REPLAY ========================= */ if (replay) { replay.addEventListener( 'click', function () { replay.classList.remove( 'is-visible' ); video.currentTime = 0; const play = video.play(); if ( play && typeof play.catch === 'function' ) { play.catch( function () {} ); } } ); } })();

PACIFIC IN PRACTICE

CREATIVE POSSIBILITIES

From defining a new identity to reimagining an established brand, creating a campaign or connecting digital experiences, PACIFIC brings the right creative disciplines together around each ambition.

01Hospitality + Membership

Bringing identity, atmosphere, service, programming and digital touchpoints into one member or guest experience.

Creative DirectionClient JourneyDigital

From arrival and social experience to communications, programming, continuity and return.

02Living Environments

Translating architecture and place into a stronger emotional, cultural and commercial experience.

Brand IdentityStorytellingExperience

From positioning and visual language to atmosphere, resident or guest journeys and the way a place is presented.

03Brand + Cultural Expression

Creating distinctive worlds that connect identity, visual language, content and cultural relevance.

Creative DirectionBrand IdentityContent

From authored visual worlds and campaigns to narrative systems, cultural programming and long-term brand expression.

Different contexts. One principle: every expression should strengthen the whole.

Website Design & Digital Experiences

04 / STILLHOUSE · HOSPITALITY & EXPERIENCES

(()=>{const root=document.getElementById('pc-ww');if(!root||root.dataset.ready)return;root.dataset.ready='1';const frame=root.querySelector('iframe'),stage=root.querySelector('.pw-stage'),tabs=[...root.querySelectorAll('[data-concept]')],label=root.querySelector('.pw-label'),origin='https://worlds.pacificcreative.co.uk';const names={stillhouse:'04 / STILLHOUSE · HOSPITALITY & EXPERIENCES',forme:'05 / FORME · ATELIER & BESPOKE',afterimage:'06 / AFTERIMAGE · IMMERSIVE CAMPAIGN',continuum:'07 / THE CONTINUUM · CULTURE & HERITAGE'};let selected='stillhouse',visible=false,timer;function send(data){if(frame.contentWindow)frame.contentWindow.postMessage(data,origin)}function select(id){if(!names[id])return;selected=id;tabs.forEach(t=>t.setAttribute('aria-selected',String(t.dataset.concept===id)));label.textContent=names[id];frame.title=names[id];if(!frame.src)frame.src=origin+'/?embed=1&concept='+id;else send({type:'pacific-world-select',id});stage.classList.add('pw-glow');clearTimeout(timer);timer=setTimeout(()=>stage.classList.remove('pw-glow'),1100)}tabs.forEach(t=>t.addEventListener('click',()=>select(t.dataset.concept)));tabs.forEach((t,i)=>t.addEventListener('keydown',e=>{if(e.key==='ArrowRight'||e.key==='ArrowLeft'){e.preventDefault();const next=tabs[(i+(e.key==='ArrowRight'?1:tabs.length-1))%tabs.length];next.focus();select(next.dataset.concept)}}));frame.addEventListener('load',()=>{send({type:'pacific-world-select',id:selected});send({type:'pacific-world-visibility',visible})});window.addEventListener('message',e=>{if(e.origin!==origin||e.source!==frame.contentWindow)return;if(e.data?.type==='pacific-world-height'&&innerWidth<=850){const h=Number(e.data.height);if(h>300&&h<6000)frame.style.height=h+'px'}if(e.data?.type==='pacific-world-selected')selectLabel(e.data.id)});function selectLabel(id){if(!names[id])return;selected=id;tabs.forEach(t=>t.setAttribute('aria-selected',String(t.dataset.concept===id)));label.textContent=names[id];frame.title=names[id]}new IntersectionObserver(entries=>{visible=entries[0].isIntersecting;if(visible&&!frame.src)select(selected);send({type:'pacific-world-visibility',visible})},{rootMargin:'100px'}).observe(stage);})();

A TALE OF THE DESERT

Creative Direction Campaign

World-building begins with origin.

Connecting origin, product and storytelling to create moments that are authored, distinctive and impossible to confuse.

(function(){var root=document.getElementById('pacific-desert-campaign');if(!root||root.dataset.ready==='true')return;root.dataset.ready='true';var film=root.querySelector('video'),frame=root.querySelector('.pdc-frame'),button=root.querySelector('.pdc-control'),sound=root.querySelector('.pdc-sound'),canvas=root.querySelector('canvas');var media=matchMedia('(prefers-reduced-motion:reduce)');var visible=false,loaded=false,revealed=false,manual=false,pending=false,raf=0,finishTimer=0;film.muted=true;film.defaultMuted=true;root.classList.add('pdc-ready');root.classList.toggle('pdc-simple',media.matches); function label(){var paused=film.paused||film.ended;root.dataset.paused=String(paused);button.setAttribute('aria-label',(film.ended?'Replay':paused?'Play':'Pause')+' A Tale of the Desert');button.querySelector('span').textContent=film.ended?'REPLAY FILM ↗':paused?'PLAY FILM ↗':'PAUSE FILM';} function load(){if(loaded)return;loaded=true;film.poster=film.dataset.poster;var s=film.querySelector('source');s.src=s.dataset.src;film.load();} function finish(){cancelAnimationFrame(raf);clearTimeout(finishTimer);root.classList.remove('pdc-revealing');root.classList.add('pdc-revealed');canvas.width=1;canvas.height=1;} function dust(){var ctx=canvas.getContext('2d');if(!ctx)return;var w=frame.clientWidth,h=frame.clientHeight,dpr=Math.min(devicePixelRatio||1,1.5);canvas.width=Math.round(w*dpr);canvas.height=Math.round(h*dpr);ctx.scale(dpr,dpr);var grains=[];for(var i=0;72>i;i++)grains.push({x:Math.random()*w,y:Math.random()*h,r:.3+Math.random()*.65,s:.35+Math.random()*.7,phase:Math.random()*6.28,a:.08+Math.random()*.16});var start=performance.now();function draw(now){var p=Math.min(1,(now-start)/1800),drift=p*p*.4+p*.6;ctx.clearRect(0,0,w,h);grains.forEach(function(g){var x=g.x+drift*w*.48*g.s+Math.sin(p*5+g.phase)*10*p;var y=g.y-drift*h*.4*g.s+Math.sin(p*7+g.phase)*7*p;var a=g.a*Math.pow(1-p,1.1);var haze=ctx.createRadialGradient(x,y,0,x,y,g.r*3);haze.addColorStop(0,'rgba(216,188,138,'+a+')');haze.addColorStop(1,'rgba(216,188,138,0)');ctx.fillStyle=haze;ctx.beginPath();ctx.arc(x,y,g.r*3,0,Math.PI*2);ctx.fill();});if(1>p)raf=requestAnimationFrame(draw);}raf=requestAnimationFrame(draw);} function resetReveal(){cancelAnimationFrame(raf);clearTimeout(finishTimer);revealed=false;root.classList.remove('pdc-revealing','pdc-revealed');canvas.width=1;canvas.height=1;}function reveal(){if(revealed||!visible)return;showSound();revealed=true;root.classList.toggle('pdc-simple',media.matches);root.classList.add('pdc-revealing');if(!media.matches&&innerWidth>760)dust();finishTimer=setTimeout(finish,media.matches?480:1850);} function play(){if(!visible||document.hidden||manual||film.ended||pending)return;load();pending=true;var p=film.play();if(p&&p.then)p.then(function(){pending=false;if(!visible||document.hidden||manual)film.pause();},function(){pending=false;label();});else pending=false;} function sync(){if(visible&&!document.hidden&&!manual)play();else{film.pause();if(!visible||document.hidden)resetReveal();}} film.addEventListener('playing',function(){reveal();label();});film.addEventListener('pause',label);film.addEventListener('ended',label);film.addEventListener('error',function(){finish();button.querySelector('span').textContent='RETRY FILM ↗';}); button.addEventListener('click',function(e){e.stopImmediatePropagation();if(!film.paused&&!film.ended){manual=true;film.pause();}else{manual=false;visible=true;resetReveal();void root.offsetWidth;if(film.ended)film.currentTime=0;if(film.error){loaded=false;}play();}},true); var soundTimer=0;function showSound(){clearTimeout(soundTimer);root.classList.add('pdc-controls-visible');soundTimer=setTimeout(function(){root.classList.remove('pdc-controls-visible');},2200);}frame.addEventListener('pointerdown',showSound,{passive:true});function soundLabel(){var on=!film.muted&&film.volume>0;sound.textContent=on?'SOUND ON':'SOUND OFF';sound.setAttribute('aria-label',on?'Turn film sound off':'Turn film sound on');sound.setAttribute('aria-pressed',String(on));}sound.addEventListener('click',function(e){e.stopImmediatePropagation();var enable=film.muted||film.volume===0;film.muted=!enable;if(enable){film.volume=1;if(!manual&&!film.ended)play();}soundLabel();},true);film.addEventListener('volumechange',soundLabel);soundLabel();document.addEventListener('visibilitychange',sync);media.addEventListener('change',function(){root.classList.toggle('pdc-simple',media.matches);if(media.matches&&revealed)finish();}); if('IntersectionObserver'in window){var observer=new IntersectionObserver(function(entries){var entry=entries[0];visible=entry.isIntersecting&&entry.intersectionRatio>=.12;if(visible){load();if(film.ended&&!manual)film.currentTime=0;}sync();},{threshold:[0,.12]});observer.observe(frame);}else{function fallback(){var r=frame.getBoundingClientRect();visible=r.bottom>0&&innerHeight>r.top;sync();}addEventListener('scroll',fallback,{passive:true});addEventListener('resize',fallback,{passive:true});fallback();}label();})();

CREATIVE DIRECTION · STORYTELLING

(function () { const root = document.getElementById( 'pacific-creative-direction-split' ); if ( !root || root.dataset.ready === 'true' ) return; root.dataset.ready = 'true'; const videos = Array.from( root.querySelectorAll('.pcd-video') ); const secondPanel = root.querySelector('.pcd-panel-two'); const secondVideo = root.querySelector('.pcd-video-two'); /* ----------------------------------------- Silent autoplay by design ----------------------------------------- */ videos.forEach(function (video) { video.muted = true; video.defaultMuted = true; const playPromise = video.play(); if ( playPromise && typeof playPromise.catch === 'function' ) { playPromise.catch(function () {}); } }); /* ----------------------------------------- PACIFIC → CREATIVE DIRECTION Middle-weight brand resolution. Instead of waiting until the final seconds, branding enters around the middle/latter-middle of Part 2, holds briefly, then dissolves. Works automatically with the actual film duration. ----------------------------------------- */ function updateBrandResolution() { if ( !secondVideo || !secondPanel || !Number.isFinite(secondVideo.duration) || secondVideo.duration <= 0 ) return; const duration = secondVideo.duration; const time = secondVideo.currentTime; /* Show from roughly 42% → 72% of the film. This creates: film first → PACIFIC → CREATIVE DIRECTION → clean image again before loop. */ const start = duration * .42; const end = duration * .72; const show = time >= start && time <= end; secondPanel.classList.toggle( 'pcd-brand-show', show ); } if (secondVideo) { secondVideo.addEventListener( 'timeupdate', updateBrandResolution, { passive:true } ); secondVideo.addEventListener( 'seeking', updateBrandResolution, { passive:true } ); } /* ----------------------------------------- Cinematic reveal ----------------------------------------- */ const reduceMotion = window.matchMedia && window.matchMedia( '(prefers-reduced-motion: reduce)' ).matches; if ( !reduceMotion && 'IntersectionObserver' in window ) { root.classList.add( 'pcd-observed' ); const observer = new IntersectionObserver( function (entries) { entries.forEach( function (entry) { if ( entry.intersectionRatio >= .15 ) { root.classList.add( 'pcd-active' ); videos.forEach( function (video) { if (video.paused) { const p = video.play(); if ( p && typeof p.catch === 'function' ) { p.catch( function () {} ); } } } ); } else { root.classList.remove( 'pcd-active' ); } } ); }, { threshold: [0,.06,.15,.28,.50] } ); observer.observe(root); } else { root.classList.add( 'pcd-active' ); } })();

DIGITAL + PROPRIETARY SYSTEMS

Technology should extend the experience.

PACIFIC connects digital environments, intelligence, content and human connection around the experience rather than allowing technology to sit apart from it.

01Experience

Digital touchpoints shaped around the client journey rather than added after it.

02Intelligence

Contextual systems and AI-assisted capability applied where they improve relevance and decisions.

03Connection

Digital architecture that supports participation, belonging and meaningful interaction.

04Content + IP

Knowledge, publications, methods and proprietary assets structured for application and scale.

Digital
Orchestration

Technology integrated into the wider experience.

01Experience

Digital touchpoints shaped around the client journey rather than added after it.

02Intelligence

Contextual systems and AI-assisted capability applied where they improve relevance and decisions.

03Connection

Digital architecture that supports participation, belonging and meaningful interaction.

04Content + IP

Knowledge, publications, methods and proprietary assets structured for application and scale.

DIGITAL ORCHESTRATION
Technology integrated into the wider experience.

PACIFIC — IN ONE VIEW

One system.
Clearer value.

What needs to align
IdentityExperienceServiceDigital
PACIFIC
Creative DirectionBrand & DesignMarketing & CampaignsDigital OrchestrationAI & Automation
What it creates
DistinctivenessCoherenceRelevanceContinuity
What needs to align
IdentityExperienceServiceDigital
PACIFIC
Creative DirectionBrand & DesignMarketing & CampaignsDigital OrchestrationAI & Automation
What it creates
DistinctivenessCoherenceRelevanceContinuity

Your vision. Our expertise

From a focused creative commission to an ongoing creative partnership, tell us what you have in mind

Discuss A Project

Creative first.
Digital by design.
Commercially intelligent.