PageSourceSearch

https://www.5wpr.com/assets/index-D1WxMa7I.js

js 5wpr.com collected 2026-10-02 03:34:22 UTC 1,501,888 bytes, 197 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/broken-link-map-CwOA6r3n.js","assets/jsx-runtime-DVpe7PXp.js","assets/broken-external-links-D5jZdQHy.js","assets/terms-and-conditions-B1w71xs9.js","assets/LegalPage-OET4GLwV.js","assets/SiteHeader-Cg35HfE0.js","assets/createServerFn-Ckm5ZlHj.js","assets/redirect-5dYPHiJ4.js","assets/createLucideIcon-B0i7CZfc.js","assets/react-Dps3yNUO.js","assets/x-D0cLKEmi.js","assets/services-template-draft-2DeMPrhN.js","assets/ServiceTemplatePage-x4I0Ig9G.js","assets/ContactSection-D_OcTa1r.js","assets/useServerFn-Cuny7MIu.js","assets/esm-CuHQ5MFI.js","assets/SiteCaptcha-CFHL4O40.js","assets/queryOptions-Dfvzj6n2.js","assets/services-draft-CrAoFTmz.js","assets/useSuspenseQuery-OQsREeyH.js","assets/privacypolicy_._cfm-CFj_j3_h.js","assets/press-BCQLoQ3I.js","assets/links-DuHSHDY6.js","assets/cookie-policy-rAPHyCin.js","assets/contactus-B2QtUKmW.js","assets/ContactForm-Hm_Jcdme.js","assets/clients-B658E6zA.js","assets/canonical-href-CzqdtPSp.js","assets/case-study-draft-adcolor-BYbconjG.js","assets/case-study-draft-adcolor-B4QTLG7n.js","assets/alt-qm9hjWQf.js","assets/ai-citation-audit-L7YhnbP6.js","assets/sanitize-legacy-html-C6CdMr77.js","assets/admin-set-password-B2CN0Hzk.js","assets/label-yC6_b-Nb.js","assets/utils-DKCMuWtH.js","assets/sonner-yqCT7Ht6.js","assets/dist-CdMzIntA.js","assets/input-BcAzxF0-.js","assets/aadmin5wcommunication-login-BzinKPTG.js","assets/redirects.functions-QKBlxdKq.js","assets/_-Bg-xjczX.js","assets/AiVisibilityReportPage-DVEUPD5P.js","assets/Breadcrumbs-C6qAo7m7.js","assets/PostSidebar-DEx9n9Y7.js","assets/research.functions-SNd2sXzN.js","assets/SmartImage-DMREGIc5.js","assets/ai-visibility-image-eMzRPUEp.js","assets/travel-DJlfzGCE.js","assets/report-pdf-url-C8KRqkaj.js","assets/unwrap-legacy-accordion-BHp4N51w.js","assets/_-BzquPWFm.js","assets/_-Drd85Lch.js","assets/routes-owoboaBd.js","assets/services.index-BJ9GxF1d.js","assets/services.index-BLxOg-E3.js","assets/services.index-TvV98cRq.js","assets/research.index-QyEK4PHY.js","assets/research.index-DruVitaO.js","assets/research.index-DX0q
vendor: 19,685 bytes, lines 1-9
1Kl68.js","assets/practice.index-DX0qKl68.js","assets/practice.index-DlzFrj9-.js","assets/practice.index-DOpaQsUO.js","assets/new.index-DX0qKl68.js","assets/new.index-CLwckyzT.js","assets/new.index-Cir4l4gc.js","assets/glossary.index-DX0qKl68.js","assets/glossary.index-DZtQrXMY.js","assets/glossary.index-taL60kjQ.js","assets/florida.index-CtxQngKJ.js","assets/authors.index-BBn5_qEN.js","assets/ai-visibility-radar.index-BtCF88L1.js","assets/Modules-BzW5qDvz.js","assets/Forms-DyfxrbTu.js","assets/decode-entities-DJmx0yPX.js","assets/admin-5wpr.index-DgDI8b4R.js","assets/AdminShell-xUbg2vIR.js","assets/auth-BLWQtkG6.js","assets/card-CIzoYKpB.js","assets/about5wpr.index-C2Mj79M5.js","assets/About5wprPage-DvaknvG6.js","assets/services.public-relations-agency-BEopX9L3.js","assets/services.brand-strategy-services-DnLE2bax.js","assets/services._-Bs942PCn.js","assets/services._-DbQ0zFIy.js","assets/services._-BVcnQLs_.js","assets/research._-CTraPF6H.js","assets/research._-BY4BXGyW.js","assets/research._-DrnnLcQm.js","assets/practice.case-study_._cfm-DDAaM8dN.js","assets/practice.case-study_._cfm-DU5GpR5-.js","assets/practice.case-study_._cfm-DX0qKl68.js","assets/practice._-DpJEaWZ3.js","assets/minus-D522ytus.js","assets/plus-DruFp0mg.js","assets/practice._-w1VNbUfi.js","assets/practice._-CMOhySff.js","assets/new._-DUPzeyn5.js","assets/new._-x-MgmfKj.js","assets/new._-BtRjlfrk.js","assets/glossary._-D9C5pBr9.js","assets/glossary._-CXlKCb0l.js","assets/glossary._-Cn9RVaIU.js","assets/authors._slug-BX8Za1_v.js","assets/authors._slug-CWxfMVyR.js","assets/authors._slug-F5D5pUYp.js","assets/ai-visibility-radar.sentiment-6JLCKjGA.js","assets/ai-visibility-radar.methodology-5Cwpiq3b.js","assets/ai-visibility-index._-DrnnLcQm.js","assets/ai-visibility-index._-BY4BXGyW.js","assets/ai-visibility-index._-Dr_lxXEn.js","assets/admin-5wpr.team-DcmUhx90.js","assets/admin-5wpr.report-format-DLvN_naC.js","assets/admin-5wpr.report-covers-DEfO8MLm.js","assets/admin-5wpr.regenerate-heroes-CYqJnDV-.js","assets/admin-5wpr.notifications-DV009m75.js","assets/admin-5wpr.media-migrate-BdJoHJJL.js","assets/table-ePeQxaii.js","assets/admin-5wpr.media-BQX4Wygb.js","assets/MediaPicker-imsS-_dj.js","assets/dialog-B5Y_iXDx.js","assets/trash-2-qWbhrfVK.js","assets/about5wpr.prcareers_._cfm-DyIo-P_Q.js","assets/about5wpr.management_._cfm-CIgntQ3O.js","assets/about5wpr.index_._cfm-qoStpRxJ.js","assets/about5wpr.history_._cfm-BnC_tUIL.js","assets/about5wpr.awards_._cfm-CXSgHGVg.js","assets/admin-5wpr.careers.index-BjK0cyvb.js","assets/about5wpr.5w-digital-marketing-team.index-BsnY-miZ.js","assets/research.ai-visibility-index.2026-series-CgP7euJA.js","assets/admin-5wpr.r._resource-0Bjh7wWq.js","assets/admin-5wpr.careers.applications-BM6aBV76.js","assets/textarea-CPikKYKz.js","assets/about5wpr.prcareers._slug-CF0Afw17.js","assets/about5wpr.prcareers._slug-D9CBkOXo.js","assets/about5wpr.prcareers._slug-DBn3hBN2.js","assets/about5wpr.management._-W7iZ_M80.js","assets/about5wpr.management._-DKnLkNWX.js","assets/about5wpr.management._-BwxebtQD.js","assets/admin-5wpr.careers.job._jobId-Cd0r_lAz.js","assets/admin-5wpr.r._resource.index-BVgG6TyC.js","assets/resources-DQPXk5Bz.js","assets/admin-5wpr.r._resource._id-CSnhIJ1J.js"])))=>i.map(i=>d[i]);
2import{n as e,o as t,t as n}from"./jsx-runtime-DVpe7PXp.js";import{t as r}from"./react-Dps3yNUO.js";import{_ as i,a,b as o,c as s,d as c,i as l,l as u,n as d,o as f,r as p,s as m,u as h,v as g,x as _,y as v}from"./esm-CuHQ5MFI.js";import{i as y,n as b,r as x,t as S}from"./createServerFn-Ckm5ZlHj.js";import{c as ee,o as te,r as C,s as w}from"./redirect-5dYPHiJ4.js";import{r as ne,t as re}from"./auth-BLWQtkG6.js";import{A as ie,C as ae,E as oe,F as se,M as ce,N as le,O as T,P as E,S as ue,T as de,_ as fe,a as pe,b as D,c as O,f as me,g as he,h as ge,i as _e,j as ve,k as ye,l as be,o as xe,r as Se,t as Ce,v as we,w as Te,x as Ee,y as De}from"./SiteHeader-Cg35HfE0.js";import{t as Oe}from"./useSuspenseQuery-OQsREeyH.js";import{t as k}from"./queryOptions-Dfvzj6n2.js";import{t as ke}from"./createLucideIcon-B0i7CZfc.js";import{t as Ae}from"./Breadcrumbs-C6qAo7m7.js";import{a as je,i as Me,r as Ne}from"./SiteCaptcha-CFHL4O40.js";import{n as Pe,t as Fe}from"./_shared-b6Ai42mK.js";import{i as Ie,t as Le}from"./canonical-href-CzqdtPSp.js";import{n as Re,t as ze}from"./live-robots-D9EwZQ0Q.js";import{n as Be,t as Ve}from"./approved-meta-descriptions-BGTull_6.js";import{n as He,r as Ue,t as We}from"./utils-DKCMuWtH.js";import{t as Ge}from"./ContactSection-D_OcTa1r.js";import{a as Ke,i as qe,o as Je,r as Ye,t as Xe}from"./sanitize-legacy-html-C6CdMr77.js";import{n as Ze,r as Qe,t as $e}from"./research.functions-SNd2sXzN.js";import{t as et}from"./unwrap-legacy-accordion-BHp4N51w.js";import{t as tt}from"./decode-entities-DJmx0yPX.js";var nt=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,re());else{var t=n(l);t!==null&&oe(x,t.startTime-e)}}var S=!1,ee=-1,te=5,C=-1;function w(){return g?!0:!(e.unstable_now()-C<te)}function ne(){if(g=!1,S){var t=e.unstable_now();C=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(ee),ee=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&w());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&oe(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?re():S=!1}}}var re;if(typeof y==`function`)re=function(){y(ne)};else if(typeof MessageChannel<`u`){var ie=new MessageChannel,ae=ie.port2;ie.port1.onmessage=ne,re=function(){ae.postMessage(null)}}else re=function(){_(ne,0)};function oe(t,n){ee=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):te=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(ee),ee=-1):h=!0,oe(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,re()))),r},e.unstable_shouldYield=w,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),rt=e(((e,t)=>{t.exports=nt()})),it=e((e=>{var t=rt(),n=r(),i=_();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(a(188))}function d(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return u(i),e;if(o===r)return u(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var c=!1,l=i.child;l;){if(l===n){c=!0,n=i,r=o;break}if(l===r){c=!0,r=i,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=i;break}if(l===r){c=!0,r=o,n=i;break}l=l.sibling}if(!c)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}var p=Object.assign,m=Symbol.for(`react.element`),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),ee=Symbol.for(`react.forward_ref`),te=Symbol.for(`react.suspense`),C=Symbol.for(`react.suspense_list`),w=Symbol.for(`react.memo`),ne=Symbol.for(`react.lazy`),re=Symbol.for(`react.activity`),ie=Symbol.for(`react.memo_cache_sentinel`),ae=Symbol.iterator;function oe(e){return typeof e!=`object`||!e?null:(e=ae&&e[ae]||e[`@@iterator`],typeof e==`function`?e:null)}var se=Symbol.for(`react.client.reference`);function ce(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===se?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case te:return`Suspense`;case C:return`SuspenseList`;case re:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case g:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case ee:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case w:return t=e.displayName||null,t===null?ce(e.type)||`Memo`:t;case ne:t=e._payload,e=e._init;try{return ce(e(t))}catch{}}return null}var le=Array.isArray,T=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ue={pending:!1,data:null,method:null,action:null},de=[],fe=-1;function pe(e){return{current:e}}function D(e){0>fe||(e.current=de[fe],de[fe]=null,fe--)}function O(e,t){fe++,de[fe]=e.current,e.current=t}var me=pe(null),he=pe(null),ge=pe(null),_e=pe(null);function ve(e,t){switch(O(ge,t),O(he,e),O(me,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}D(me),O(me,e)}function ye(){D(me),D(he),D(ge)}function be(e){e.memoizedState!==null&&O(_e,e);var t=me.current,n=Hd(t,e.type);t!==n&&(O(he,e),O(me,n))}function xe(e){he.current===e&&(D(me),D(he)),_e.current===e&&(D(_e),Qf._currentValue=ue)}var Se,Ce;function we(e){if(Se===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Se=t&&t[1]||``,Ce=-1<e.stack.indexOf(`
3    at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
4`+Se+e+Ce}var Te=!1;function Ee(e,t){if(!e||Te)return``;Te=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
5`),l=s.split(`
6`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
7`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Te=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?we(n):``}function De(e,t){switch(e.tag){case 26:case 27:case 5:return we(e.type);case 16:return we(`Lazy`);case 13:return e.child!==t&&t!==null?we(`Suspense Fallback`):we(`Suspense`);case 19:return we(`SuspenseList`);case 0:case 15:return Ee(e.type,!1);case 11:return Ee(e.type.render,!1);case 1:return Ee(e.type,!0);case 31:return we(`Activity`);default:return``}}function Oe(e){try{var t=``,n=null;do t+=De(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
8Error generating stack: `+e.message+`
9`+e.stack}}var k=Object.prototype.hasOwnProperty,ke=t.unstable_scheduleCallback,Ae=t.unstable_cancelCallback,je=t.unstable_shouldYield,Me=t.unstable_requestPaint,Ne=t.unstable_now,Pe=t.unstable_getCurrentPriorityLevel,Fe=t.unstable_ImmediatePriority,Ie=t.unstable_UserBlockingPriority,Le=t.unstable_NormalPriority,Re=t.unstable_LowPriority,ze=t.unstable_IdlePriority,Be=t.log,Ve=t.unstable_setDisableYieldValue,He=null,Ue=null;function We(e){if(typeof Be==`function`&&Ve(e),Ue&&typeof Ue.setStrictMode==`function`)try{Ue.setStrictMode(He,e)}catch{}}var Ge=Math.clz32?Math.clz32:Je,Ke=Math.log,qe=Math.LN2;function Je(e){return e>>>=0,e===0?32:31-(Ke(e)/qe|0)|0}var Ye=256,Xe=262144,Ze=4194304;function Qe(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function $e(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Qe(n))):i=Qe(o):i=Qe(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Qe(n))):i=Qe(o)):i=Qe(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function et(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function tt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function nt(){var e=Ze;return Ze<<=1,!(Ze&62914560)&&(Ze=4194304),e}function it(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function at(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ot(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Ge(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&st(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function st(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Ge(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function ct(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Ge(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function lt(e,t){var n=t&-t;return n=n&42?1:ut(n),(n&(e.suspendedLanes|t))===0?n:0}function ut(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function dt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function ft(){var e=E.p;return e===0?(e=window.event,e===void 0?32:mp(e.type)):e}function pt(e,t){var n=E.p;try{return E.p=e,t()}finally{E.p=n}}var mt=Math.random().toString(36).slice(2),ht=`__reactFiber$`+mt,gt=`__reactProps$`+mt,_t=`__reactContainer$`+mt,vt=`__reactEvents$`+mt,yt=`__reactListeners$`+mt,bt=`__reactHandles$`+mt,xt=`__reactResources$`+mt,St=`__reactMarker$`+mt;function Ct(e){delete e[ht],delete e[gt],delete e[vt],delete e[yt],delete e[bt]}function wt(e){var t=e[ht];if(t)return t;for(var n=e.parentNode;n;){if(t=n[_t]||n[ht]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=df(e);e!==null;){if(n=e[ht])return n;e=df(e)}return t}e=n,n=e.parentNode}return null}function Tt(e){if(e=e[ht]||e[_t]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Et(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(a(33))}function Dt(e){var t=e[xt];return t||=e[xt]={hoistableStyles:new Map,hoistableScripts:new Map},t}function Ot(e){e[St]=!0}var kt=new Set,At={};function jt(e,t){Mt(e,t),Mt(e+`Capture`,t)}function Mt(e,t){for(At[e]=t,e=0;e<t.length;e++)kt.add(t[e])}var Nt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u
9037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),Pt={},Ft={};function It(e){return k.call(Ft,e)?!0:k.call(Pt,e)?!1:Nt.test(e)?Ft[e]=!0:(Pt[e]=!0,!1)}function Lt(e,t,n){if(It(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function Rt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function zt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Bt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Vt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Ht(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ut(e){if(!e._valueTracker){var t=Vt(e)?`checked`:`value`;e._valueTracker=Ht(e,t,``+e[t])}}function Wt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Vt(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function Gt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Kt=/[\n"\\]/g;function qt(e){return e.replace(Kt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Jt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Bt(t)):e.value!==``+Bt(t)&&(e.value=``+Bt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Xt(e,o,Bt(n)):Xt(e,o,Bt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Bt(s):e.removeAttribute(`name`)}function Yt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Ut(e);return}n=n==null?``:``+Bt(n),t=t==null?n:``+Bt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Ut(e)}function Xt(e,t,n){t===`number`&&Gt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Zt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Bt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Qt(e,t,n){if(t!=null&&(t=``+Bt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Bt(n)}function $t(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(a(92));if(le(r)){if(1<r.length)throw Error(a(93));r=r[0]}n=r}n??=``,t=n}
vendor: 87,300 bytes, line 9
9n=Bt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Ut(e)}function en(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var tn=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function nn(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||tn.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function rn(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(a(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var i in t)r=t[i],t.hasOwnProperty(i)&&n[i]!==r&&nn(e,i,r)}else for(var o in t)t.hasOwnProperty(o)&&nn(e,o,t[o])}function an(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var on=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),sn=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function cn(e){return sn.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function ln(){}var un=null;function dn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var fn=null,pn=null;function mn(e){var t=Tt(e);if(t&&(e=t.stateNode)){var n=e[gt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Jt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+qt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var i=r[gt]||null;if(!i)throw Error(a(90));Jt(r,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Wt(r)}break a;case`textarea`:Qt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Zt(e,!!n.multiple,t,!1)}}}var hn=!1;function gn(e,t,n){if(hn)return e(t,n);hn=!0;try{return e(t)}finally{if(hn=!1,(fn!==null||pn!==null)&&(xu(),fn&&(t=fn,e=pn,pn=fn=null,mn(t),e)))for(t=0;t<e.length;t++)mn(e[t])}}function _n(e,t){var n=e.stateNode;if(n===null)return null;var r=n[gt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(a(231,t,typeof n));return n}var vn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),yn=!1;if(vn)try{var bn={};Object.defineProperty(bn,"passive",{get:function(){yn=!0}}),window.addEventListener(`test`,bn,bn),window.removeEventListener(`test`,bn,bn)}catch{yn=!1}var xn=null,Sn=null,Cn=null;function wn(){if(Cn)return Cn;var e,t=Sn,n=t.length,r,i=`value`in xn?xn.value:xn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Cn=i.slice(e,1<r?1-r:void 0)}function Tn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function En(){return!0}function Dn(){return!1}function On(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?En:Dn,this.isPropagationStopped=Dn,this}return p(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=En)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=En)},persist:function(){},isPersistent:En}),t}var kn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},An=On(kn),jn=p({},kn,{view:0,detail:0}),Mn=On(jn),Nn,Pn,Fn,In=p({},jn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:qn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Fn&&(Fn&&e.type===`mousemove`?(Nn=e.screenX-Fn.screenX,Pn=e.screenY-Fn.screenY):Pn=Nn=0,Fn=e),Nn)},movementY:function(e){return`movementY`in e?e.movementY:Pn}}),Ln=On(In),Rn=On(p({},In,{dataTransfer:0})),zn=On(p({},jn,{relatedTarget:0})),Bn=On(p({},kn,{animationName:0,elapsedTime:0,pseudoElement:0})),Vn=On(p({},kn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Hn=On(p({},kn,{data:0})),Un={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Wn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Gn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Gn[e])?!!t[e]:!1}function qn(){return Kn}var Jn=On(p({},jn,{key:function(e){if(e.key){var t=Un[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=Tn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Wn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:qn,charCode:function(e){return e.type===`keypress`?Tn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?Tn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Yn=On(p({},In,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Xn=On(p({},jn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:qn})),Zn=On(p({},kn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Qn=On(p({},In,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),$n=On(p({},kn,{newState:0,oldState:0})),er=[9,13,27,32],tr=vn&&`CompositionEvent`in window,nr=null;vn&&`documentMode`in document&&(nr=document.documentMode);var rr=vn&&`TextEvent`in window&&!nr,ir=vn&&(!tr||nr&&8<nr&&11>=nr),ar=` `,or=!1;function sr(e,t){switch(e){case`keyup`:return er.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function cr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var lr=!1;function ur(e,t){switch(e){case`compositionend`:return cr(t);case`keypress`:return t.which===32?(or=!0,ar):null;case`textInput`:return e=t.data,e===ar&&or?null:e;default:return null}}function dr(e,t){if(lr)return e===`compositionend`||!tr&&sr(e,t)?(e=wn(),Cn=Sn=xn=null,lr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return ir&&t.locale!==`ko`?null:t.data;default:return null}}var fr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!fr[e.type]:t===`textarea`}function mr(e,t,n,r){fn?pn?pn.push(r):pn=[r]:fn=r,t=Ed(t,`onChange`),0<t.length&&(n=new An(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var A=null,hr=null;function gr(e){yd(e,0)}function _r(e){if(Wt(Et(e)))return e}function vr(e,t){if(e===`change`)return t}var yr=!1;if(vn){var br;if(vn){var xr=`oninput`in document;if(!xr){var Sr=document.createElement(`div`);Sr.setAttribute(`oninput`,`return;`),xr=typeof Sr.oninput==`function`}br=xr}else br=!1;yr=br&&(!document.documentMode||9<document.documentMode)}function Cr(){A&&(A.detachEvent(`onpropertychange`,wr),hr=A=null)}function wr(e){if(e.propertyName===`value`&&_r(hr)){var t=[];mr(t,hr,e,dn(e)),gn(gr,t)}}function Tr(e,t,n){e===`focusin`?(Cr(),A=t,hr=n,A.attachEvent(`onpropertychange`,wr)):e===`focusout`&&Cr()}function Er(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return _r(hr)}function Dr(e,t){if(e===`click`)return _r(t)}function Or(e,t){if(e===`input`||e===`change`)return _r(t)}function kr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Ar=typeof Object.is==`function`?Object.is:kr;function jr(e,t){if(Ar(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!k.call(t,i)||!Ar(e[i],t[i]))return!1}return!0}function Mr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Nr(e,t){var n=Mr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Mr(n)}}function Pr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Pr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Gt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Gt(e.document)}return t}function Ir(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Lr=vn&&`documentMode`in document&&11>=document.documentMode,Rr=null,zr=null,Br=null,Vr=!1;function Hr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Vr||Rr==null||Rr!==Gt(r)||(r=Rr,`selectionStart`in r&&Ir(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Br&&jr(Br,r)||(Br=r,r=Ed(zr,`onSelect`),0<r.length&&(t=new An(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Rr)))}function Ur(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Wr={animationend:Ur(`Animation`,`AnimationEnd`),animationiteration:Ur(`Animation`,`AnimationIteration`),animationstart:Ur(`Animation`,`AnimationStart`),transitionrun:Ur(`Transition`,`TransitionRun`),transitionstart:Ur(`Transition`,`TransitionStart`),transitioncancel:Ur(`Transition`,`TransitionCancel`),transitionend:Ur(`Transition`,`TransitionEnd`)},Gr={},Kr={};vn&&(Kr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Wr.animationend.animation,delete Wr.animationiteration.animation,delete Wr.animationstart.animation),`TransitionEvent`in window||delete Wr.transitionend.transition);function qr(e){if(Gr[e])return Gr[e];if(!Wr[e])return e;var t=Wr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Kr)return Gr[e]=t[n];return e}var Jr=qr(`animationend`),Yr=qr(`animationiteration`),Xr=qr(`animationstart`),Zr=qr(`transitionrun`),Qr=qr(`transitionstart`),$r=qr(`transitioncancel`),ei=qr(`transitionend`),ti=new Map,ni=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);ni.push(`scrollEnd`);function ri(e,t){ti.set(e,t),jt(t,[e])}var ii=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ai=[],oi=0,si=0;function ci(){for(var e=oi,t=si=oi=0;t<e;){var n=ai[t];ai[t++]=null;var r=ai[t];ai[t++]=null;var i=ai[t];ai[t++]=null;var a=ai[t];if(ai[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&di(n,i,a)}}function li(e,t,n,r){ai[oi++]=e,ai[oi++]=t,ai[oi++]=n,ai[oi++]=r,si|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ui(e,t,n,r){return li(e,t,n,r),fi(e)}function j(e,t){return li(e,null,null,t),fi(e)}function di(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Ge(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function fi(e){if(50<fu)throw fu=0,pu=null,Error(a(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var pi={};function mi(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function M(e,t,n,r){return new mi(e,t,n,r)}function hi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function gi(e,t){var n=e.alternate;return n===null?(n=M(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function _i(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function vi(e,t,n,r,i,o){var s=0;if(r=e,typeof e==`function`)hi(e)&&(s=1);else if(typeof e==`string`)s=Uf(e,n,me.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case re:return e=M(31,n,t,i),e.elementType=re,e.lanes=o,e;case v:return yi(n.children,i,o,t);case y:s=8,i|=24;break;case b:return e=M(12,n,t,i|2),e.elementType=b,e.lanes=o,e;case te:return e=M(13,n,t,i),e.elementType=te,e.lanes=o,e;case C:return e=M(19,n,t,i),e.elementType=C,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case S:s=10;break a;case x:s=9;break a;case ee:s=11;break a;case w:s=14;break a;case ne:s=16,r=null;break a}s=29,n=Error(a(130,e===null?`null`:typeof e,``)),r=null}return t=M(s,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function yi(e,t,n,r){return e=M(7,e,r,t),e.lanes=n,e}function bi(e,t,n){return e=M(6,e,null,t),e.lanes=n,e}function xi(e){var t=M(18,null,null,0);return t.stateNode=e,t}function Si(e,t,n){return t=M(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Ci=new WeakMap;function wi(e,t){if(typeof e==`object`&&e){var n=Ci.get(e);return n===void 0?(t={value:e,source:t,stack:Oe(t)},Ci.set(e,t),t):n}return{value:e,source:t,stack:Oe(t)}}var Ti=[],Ei=0,Di=null,Oi=0,ki=[],Ai=0,ji=null,Mi=1,Ni=``;function Pi(e,t){Ti[Ei++]=Oi,Ti[Ei++]=Di,Di=e,Oi=t}function Fi(e,t,n){ki[Ai++]=Mi,ki[Ai++]=Ni,ki[Ai++]=ji,ji=e;var r=Mi;e=Ni;var i=32-Ge(r)-1;r&=~(1<<i),n+=1;var a=32-Ge(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Mi=1<<32-Ge(t)+i|n<<i|r,Ni=a+e}else Mi=1<<a|n<<i|r,Ni=e}function Ii(e){e.return!==null&&(Pi(e,1),Fi(e,1,0))}function Li(e){for(;e===Di;)Di=Ti[--Ei],Ti[Ei]=null,Oi=Ti[--Ei],Ti[Ei]=null;for(;e===ji;)ji=ki[--Ai],ki[Ai]=null,Ni=ki[--Ai],ki[Ai]=null,Mi=ki[--Ai],ki[Ai]=null}function Ri(e,t){ki[Ai++]=Mi,ki[Ai++]=Ni,ki[Ai++]=ji,Mi=t.id,Ni=t.overflow,ji=e}var zi=null,Bi=null,N=!1,Vi=null,Hi=!1,Ui=Error(a(519));function Wi(e){throw Xi(wi(Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Ui}function Gi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[ht]=e,t[gt]=r,n){case`dialog`:Q(`cancel`,t),Q(`close`,t);break;case`iframe`:case`object`:case`embed`:Q(`load`,t);break;case`video`:case`audio`:for(n=0;n<_d.length;n++)Q(_d[n],t);break;case`source`:Q(`error`,t);break;case`img`:case`image`:case`link`:Q(`error`,t),Q(`load`,t);break;case`details`:Q(`toggle`,t);break;case`input`:Q(`invalid`,t),Yt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Q(`invalid`,t);break;case`textarea`:Q(`invalid`,t),$t(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Md(t.textContent,n)?(r.popover!=null&&(Q(`beforetoggle`,t),Q(`toggle`,t)),r.onScroll!=null&&Q(`scroll`,t),r.onScrollEnd!=null&&Q(`scrollend`,t),r.onClick!=null&&(t.onclick=ln),t=!0):t=!1,t||Wi(e,!0)}function Ki(e){for(zi=e.return;zi;)switch(zi.tag){case 5:case 31:case 13:Hi=!1;return;case 27:case 3:Hi=!0;return;default:zi=zi.return}}function qi(e){if(e!==zi)return!1;if(!N)return Ki(e),N=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||Ud(e.type,e.memoizedProps)),n=!n),n&&Bi&&Wi(e),Ki(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(317));Bi=uf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(317));Bi=uf(e)}else t===27?(t=Bi,Zd(e.type)?(e=lf,lf=null,Bi=e):Bi=t):Bi=zi?cf(e.stateNode.nextSibling):null;return!0}function Ji(){Bi=zi=null,N=!1}function Yi(){var e=Vi;return e!==null&&(tu===null?tu=e:tu.push.apply(tu,e),Vi=null),e}function Xi(e){Vi===null?Vi=[e]:Vi.push(e)}var Zi=pe(null),Qi=null,$i=null;function ea(e,t,n){O(Zi,t._currentValue),t._currentValue=n}function ta(e){e._currentValue=Zi.current,D(Zi)}function na(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function ra(e,t,n,r){var i=e.child;for(i!==null&&(i.return=e);i!==null;){var o=i.dependencies;if(o!==null){var s=i.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=i;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),na(o.return,n,e),r||(s=null);break a}o=c.next}}else if(i.tag===18){if(s=i.return,s===null)throw Error(a(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),na(s,n,e),s=null}else s=i.child;if(s!==null)s.return=i;else for(s=i;s!==null;){if(s===e){s=null;break}if(i=s.sibling,i!==null){i.return=s.return,s=i;break}s=s.return}i=s}}function ia(e,t,n,r){e=null;for(var i=t,o=!1;i!==null;){if(!o){if(i.flags&524288)o=!0;else if(i.flags&262144)break}if(i.tag===10){var s=i.alternate;if(s===null)throw Error(a(387));if(s=s.memoizedProps,s!==null){var c=i.type;Ar(i.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(i===_e.current){if(s=i.alternate,s===null)throw Error(a(387));s.memoizedState.memoizedState!==i.memoizedState.memoizedState&&(e===null?e=[Qf]:e.push(Qf))}i=i.return}e!==null&&ra(t,e,n,r),t.flags|=262144}function aa(e){for(e=e.firstContext;e!==null;){if(!Ar(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function oa(e){Qi=e,$i=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function sa(e){return la(Qi,e)}function ca(e,t){return Qi===null&&oa(e),la(e,t)}function la(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},$i===null){if(e===null)throw Error(a(308));$i=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else $i=$i.next=t;return n}var ua=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},da=t.unstable_scheduleCallback,fa=t.unstable_NormalPriority,pa={$$typeof:S,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ma(){return{controller:new ua,data:new Map,refCount:0}}function ha(e){e.refCount--,e.refCount===0&&da(fa,function(){e.controller.abort()})}var ga=null,_a=0,va=0,P=null;function ya(e,t){if(ga===null){var n=ga=[];_a=0,va=fd(),P={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return _a++,t.then(ba,ba),t}function ba(){if(--_a===0&&ga!==null){P!==null&&(P.status=`fulfilled`);var e=ga;ga=null,va=0,P=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function xa(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var Sa=T.S;T.S=function(e,t){ru=Ne(),typeof t==`object`&&t&&typeof t.then==`function`&&ya(e,t),Sa!==null&&Sa(e,t)};var Ca=pe(null);function wa(){var e=Ca.current;return e===null?Wl.pooledCache:e}function Ta(e,t){t===null?O(Ca,Ca.current):O(Ca,t.pool)}function Ea(){var e=wa();return e===null?null:{parent:pa._currentValue,pool:e}}var Da=Error(a(460)),Oa=Error(a(474)),ka=Error(a(542)),Aa={then:function(){}};function ja(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Ma(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(ln,ln),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Ia(e),e;default:if(typeof t.status==`string`)t.then(ln,ln);else{if(e=Wl,e!==null&&100<e.shellSuspendCounter)throw Error(a(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Ia(e),e}throw Pa=t,Da}}function Na(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Pa=e,Da):e}}var Pa=null;function Fa(){if(Pa===null)throw Error(a(459));var e=Pa;return Pa=null,e}function Ia(e){if(e===Da||e===ka)throw Error(a(483))}var La=null,Ra=0;function za(e){var t=Ra;return Ra+=1,La===null&&(La=[]),Ma(La,e,t)}function Ba(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Va(e,t){throw t.$$typeof===m?Error(a(525)):(e=Object.prototype.toString.call(t),Error(a(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Ha(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function i(e,t){return e=gi(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=bi(n,e.mode,r),t.return=e,t):(t=i(t,n),t.return=e,t)}function l(e,t,n,r){var a=n.type;return a===v?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===a||typeof a==`object`&&a&&a.$$typeof===ne&&Na(a)===t.type)?(t=i(t,n.props),Ba(t,n),t.return=e,t):(t=vi(n.type,n.key,n.props,null,e.mode,r),Ba(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=Si(n,e.mode,r),t.return=e,t):(t=i(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,a){return t===null||t.tag!==7?(t=yi(n,e.mode,r,a),t.return=e,t):(t=i(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=bi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case h:return n=vi(t.type,t.key,t.props,null,e.mode,n),Ba(n,t),n.return=e,n;case g:return t=Si(t,e.mode,n),t.return=e,t;case ne:return t=Na(t),f(e,t,n)}if(le(t)||oe(t))return t=yi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,za(t),n);if(t.$$typeof===S)return f(e,ca(e,t),n);Va(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case h:return n.key===i?l(e,t,n,r):null;case g:return n.key===i?u(e,t,n,r):null;case ne:return n=Na(n),p(e,t,n,r)}if(le(n)||oe(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,za(n),r);if(n.$$typeof===S)return p(e,t,ca(e,n),r);Va(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case h:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case g:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case ne:return r=Na(r),m(e,t,n,r,i)}if(le(r)||oe(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,za(r),i);if(r.$$typeof===S)return m(e,t,n,ca(t,r),i);Va(t,r)}return null}function _(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),N&&Pi(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return N&&Pi(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),N&&Pi(i,h),l}function y(i,s,c,l){if(c==null)throw Error(a(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),N&&Pi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return N&&Pi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),N&&Pi(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===v&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case h:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===v){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===ne&&Na(l)===r.type){n(e,r.sibling),c=i(r,o.props),Ba(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===v?(c=yi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=vi(o.type,o.key,o.props,null,e.mode,c),Ba(c,o),c.return=e,e=c)}return s(e);case g:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=Si(o,e.mode,c),c.return=e,e=c}return s(e);case ne:return o=Na(o),b(e,r,o,c)}if(le(o))return _(e,r,o,c);if(oe(o)){if(l=oe(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,za(o),c);if(o.$$typeof===S)return b(e,r,ca(e,o),c);Va(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=bi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ra=0;var i=b(e,t,n,r);return La=null,i}catch(t){if(t===Da||t===ka)throw t;var a=M(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ua=Ha(!0),Wa=Ha(!1),Ga=!1;function Ka(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ja(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ya(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,V&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=fi(e),di(e,null,n),t}return li(e,r,t,n),fi(e)}function Xa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ct(e,n)}}function Za(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Qa=!1;function $a(){if(Qa){var e=P;if(e!==null)throw e}}function eo(e,t,n,r){Qa=!1;var i=e.updateQueue;Ga=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,m=f!==s.lane;if(m?(U&f)===f:(r&f)===f){f!==0&&f===va&&(Qa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=p({},d,f);break a;case 2:Ga=!0}}f=s.callback,f!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[f]:m.push(f))}else m={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Xl|=o,e.lanes=o,e.memoizedState=d}}function to(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function no(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)to(n[e],t)}var ro=pe(null),io=pe(0);function ao(e,t){e=Yl,O(io,e),O(ro,t),Yl=e|t.baseLanes}function oo(){O(io,Yl),O(ro,ro.current)}function so(){Yl=io.current,D(ro),D(io)}var F=pe(null),co=null;function lo(e){var t=e.alternate;O(ho,ho.current&1),O(F,e),co===null&&(t===null||ro.current!==null||t.memoizedState!==null)&&(co=e)}function uo(e){O(ho,ho.current),O(F,e),co===null&&(co=e)}function fo(e){e.tag===22?(O(ho,ho.current),O(F,e),co===null&&(co=e)):po(e)}function po(){O(ho,ho.current),O(F,F.current)}function mo(e){D(F),co===e&&(co=null),D(ho)}var ho=pe(0);function go(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||af(n)||of(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var _o=0,I=null,L=null,vo=null,yo=!1,bo=!1,xo=!1,So=0,Co=0,wo=null,To=0;function Eo(){throw Error(a(321))}function Do(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Ar(e[n],t[n]))return!1;return!0}function Oo(e,t,n,r,i,a){return _o=a,I=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,T.H=e===null||e.memoizedState===null?Hs:Us,xo=!1,a=n(r,i),xo=!1,bo&&(a=Ao(t,n,r,i)),ko(e),a}function ko(e){T.H=Vs;var t=L!==null&&L.next!==null;if(_o=0,vo=L=I=null,yo=!1,Co=0,wo=null,t)throw Error(a(300));e===null||oc||(e=e.dependencies,e!==null&&aa(e)&&(oc=!0))}function Ao(e,t,n,r){I=e;var i=0;do{if(bo&&(wo=null),Co=0,bo=!1,25<=i)throw Error(a(301));if(i+=1,vo=L=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}T.H=Ws,o=t(n,r)}while(bo);return o}function jo(){var e=T.H,t=e.useState()[0];return t=typeof t.then==`function`?Ro(t):t,e=e.useState()[0],(L===null?null:L.memoizedState)!==e&&(I.flags|=1024),t}function Mo(){var e=So!==0;return So=0,e}function No(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Po(e){if(yo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}yo=!1}_o=0,vo=L=I=null,bo=!1,Co=So=0,wo=null}function Fo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return vo===null?I.memoizedState=vo=e:vo=vo.next=e,vo}function Io(){if(L===null){var e=I.alternate;e=e===null?null:e.memoizedState}else e=L.next;var t=vo===null?I.memoizedState:vo.next;if(t!==null)vo=t,L=e;else{if(e===null)throw I.alternate===null?Error(a(467)):Error(a(310));L=e,e={memoizedState:L.memoizedState,baseState:L.baseState,baseQueue:L.baseQueue,queue:L.queue,next:null},vo===null?I.memoizedState=vo=e:vo=vo.next=e}return vo}function Lo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Ro(e){var t=Co;return Co+=1,wo===null&&(wo=[]),e=Ma(wo,e,t),t=I,(vo===null?t.memoizedState:vo.next)===null&&(t=t.alternate,T.H=t===null||t.memoizedState===null?Hs:Us),e}function zo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Ro(e);if(e.$$typeof===S)return sa(e)}throw Error(a(438,String(e)))}function Bo(e){var t=null,n=I.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=I.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=Lo(),I.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=ie;return t.index++,n}function Vo(e,t){return typeof t==`function`?t(e):t}function Ho(e){return Uo(Io(),L,e)}function Uo(e,t,n){var r=e.queue;if(r===null)throw Error(a(311));r.lastRenderedReducer=n;var i=e.baseQueue,o=r.pending;if(o!==null){if(i!==null){var s=i.next;i.next=o.next,o.next=s}t.baseQueue=i=o,r.pending=null}if(o=e.baseState,i===null)e.memoizedState=o;else{t=i.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(_o&f)===f:(U&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===va&&(d=!0);else if((_o&p)===p){u=u.next,p===va&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,I.lanes|=p,Xl|=p;f=u.action,xo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,I.lanes|=f,Xl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Ar(o,e.memoizedState)&&(oc=!0,d&&(n=P,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return i===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Wo(e){var t=Io(),n=t.queue;if(n===null)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,o=t.memoizedState;if(i!==null){n.pending=null;var s=i=i.next;do o=e(o,s.action),s=s.next;while(s!==i);Ar(o,t.memoizedState)||(oc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Go(e,t,n){var r=I,i=Io(),o=N;if(o){if(n===void 0)throw Error(a(407));n=n()}else n=t();var s=!Ar((L||i).memoizedState,n);if(s&&(i.memoizedState=n,oc=!0),i=i.queue,ms(Jo.bind(null,r,i,e),[e]),i.getSnapshot!==t||s||vo!==null&&vo.memoizedState.tag&1){if(r.flags|=2048,ds(9,{destroy:void 0},qo.bind(null,r,i,n,t),null),Wl===null)throw Error(a(349));o||_o&127||Ko(r,t,n)}return n}function Ko(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=I.updateQueue,t===null?(t=Lo(),I.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function qo(e,t,n,r){t.value=n,t.getSnapshot=r,Yo(t)&&Xo(e)}function Jo(e,t,n){return n(function(){Yo(t)&&Xo(e)})}function Yo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Ar(e,n)}catch{return!0}}function Xo(e){var t=j(e,2);t!==null&&gu(t,e,2)}function Zo(e){var t=Fo();if(typeof e==`function`){var n=e;if(e=n(),xo){We(!0);try{n()}finally{We(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:e},t}function Qo(e,t,n,r){return e.baseState=n,Uo(e,L,typeof r==`function`?r:Vo)}function $o(e,t,n,r,i){if(Rs(e))throw Error(a(485));if(e=t.action,e!==null){var o={payload:i,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};T.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,es(t,o)):(o.next=n.next,t.pending=n.next=o)}}function es(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=T.T,o={};T.T=o;try{var s=n(i,r),c=T.S;c!==null&&c(o,s),ts(e,t,s)}catch(n){rs(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),T.T=a}}else try{a=n(i,r),ts(e,t,a)}catch(n){rs(e,t,n)}}function ts(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){ns(e,t,n)},function(n){return rs(e,t,n)}):ns(e,t,n)}function ns(e,t,n){t.status=`fulfilled`,t.value=n,is(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,es(e,n)))}function rs(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,is(t),t=t.next;while(t!==r)}e.action=null}function is(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function as(e,t){return t}function os(e,t){if(N){var n=Wl.formState;if(n!==null){a:{var r=I;if(N){if(Bi){b:{for(var i=Bi,a=Hi;i.nodeType!==8;){if(!a){i=null;break b}if(i=cf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Bi=cf(i.nextSibling),r=i.data===`F!`;break a}}Wi(r)}r=!1}r&&(t=n[0])}}return n=Fo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:as,lastRenderedState:t},n.queue=r,n=Fs.bind(null,I,r),r.dispatch=n,r=Zo(!1),a=Ls.bind(null,I,!1,r.queue),r=Fo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=$o.bind(null,I,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function ss(e){return cs(Io(),L,e)}function cs(e,t,n){if(t=Uo(e,t,as)[0],e=Ho(Vo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Ro(t)}catch(e){throw e===Da?ka:e}else r=t;t=Io();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(I.flags|=2048,ds(9,{destroy:void 0},ls.bind(null,i,n),null)),[r,a,e]}function ls(e,t){e.action=t}function us(e){var t=Io(),n=L;if(n!==null)return cs(t,n,e);Io(),t=t.memoizedState,n=Io();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function ds(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=I.updateQueue,t===null&&(t=Lo(),I.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function fs(){return Io().memoizedState}function R(e,t,n,r){var i=Fo();I.flags|=e,i.memoizedState=ds(1|t,{destroy:void 0},n,r===void 0?null:r)}function z(e,t,n,r){var i=Io();r=r===void 0?null:r;var a=i.memoizedState.inst;L!==null&&r!==null&&Do(r,L.memoizedState.deps)?i.memoizedState=ds(t,a,n,r):(I.flags|=e,i.memoizedState=ds(1|t,a,n,r))}function ps(e,t){R(8390656,8,e,t)}function ms(e,t){z(2048,8,e,t)}function hs(e){I.flags|=4;var t=I.updateQueue;if(t===null)t=Lo(),I.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function gs(e){var t=Io().memoizedState;return hs({ref:t,nextImpl:e}),function(){if(V&2)throw Error(a(440));return t.impl.apply(void 0,arguments)}}function _s(e,t){return z(4,2,e,t)}function vs(e,t){return z(4,4,e,t)}function B(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ys(e,t,n){n=n==null?null:n.concat([e]),z(4,4,B.bind(null,t,e),n)}function bs(){}function xs(e,t){var n=Io();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&Do(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ss(e,t){var n=Io();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&Do(t,r[1]))return r[0];if(r=e(),xo){We(!0);try{e()}finally{We(!1)}}return n.memoizedState=[r,t],r}function Cs(e,t,n){return n===void 0||_o&1073741824&&!(U&261930)?e.memoizedState=t:(e.memoizedState=n,e=hu(),I.lanes|=e,Xl|=e,n)}function ws(e,t,n,r){return Ar(n,t)?n:ro.current===null?!(_o&42)||_o&1073741824&&!(U&261930)?(oc=!0,e.memoizedState=n):(e=hu(),I.lanes|=e,Xl|=e,t):(e=Cs(e,n,r),Ar(e,t)||(oc=!0),e)}function Ts(e,t,n,r,i){var a=E.p;E.p=a!==0&&8>a?a:8;var o=T.T,s={};T.T=s,Ls(e,!1,t,n);try{var c=i(),l=T.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Is(e,t,xa(c,r),mu(e)):Is(e,t,r,mu(e))}catch(n){Is(e,t,{then:function(){},status:`rejected`,reason:n},mu())}finally{E.p=a,o!==null&&s.types!==null&&(o.types=s.types),T.T=o}}function Es(){}function Ds(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=Os(e).queue;Ts(e,i,t,ue,n===null?Es:function(){return ks(e),n(r)})}function Os(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ue,baseState:ue,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:ue},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ks(e){var t=Os(e);t.next===null&&(t=e.alternate.memoizedState),Is(e,t.next.queue,{},mu())}function As(){return sa(Qf)}function js(){return Io().memoizedState}function Ms(){return Io().memoizedState}function Ns(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=mu();e=Ja(n);var r=Ya(t,e,n);r!==null&&(gu(r,t,n),Xa(r,t,n)),t={cache:ma()},e.payload=t;return}t=t.return}}function Ps(e,t,n){var r=mu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Rs(e)?zs(t,n):(n=ui(e,t,n,r),n!==null&&(gu(n,e,r),Bs(n,t,r)))}function Fs(e,t,n){Is(e,t,n,mu())}function Is(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Rs(e))zs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Ar(s,o))return li(e,t,i,0),Wl===null&&ci(),!1}catch{}if(n=ui(e,t,i,r),n!==null)return gu(n,e,r),Bs(n,t,r),!0}return!1}function Ls(e,t,n,r){if(r={lane:2,revertLane:fd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Rs(e)){if(t)throw Error(a(479))}else t=ui(e,n,r,2),t!==null&&gu(t,e,2)}function Rs(e){var t=e.alternate;return e===I||t!==null&&t===I}function zs(e,t){bo=yo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Bs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ct(e,n)}}var Vs={readContext:sa,use:zo,useCallback:Eo,useContext:Eo,useEffect:Eo,useImperativeHandle:Eo,useLayoutEffect:Eo,useInsertionEffect:Eo,useMemo:Eo,useReducer:Eo,useRef:Eo,useState:Eo,useDebugValue:Eo,useDeferredValue:Eo,useTransition:Eo,useSyncExternalStore:Eo,useId:Eo,useHostTransitionStatus:Eo,useFormState:Eo,useActionState:Eo,useOptimistic:Eo,useMemoCache:Eo,useCacheRefresh:Eo};Vs.useEffectEvent=Eo;var Hs={readContext:sa,use:zo,useCallback:function(e,t){return Fo().memoizedState=[e,t===void 0?null:t],e},useContext:sa,useEffect:ps,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),R(4194308,4,B.bind(null,t,e),n)},useLayoutEffect:function(e,t){return R(4194308,4,e,t)},useInsertionEffect:function(e,t){R(4,2,e,t)},useMemo:function(e,t){var n=Fo();t=t===void 0?null:t;var r=e();if(xo){We(!0);try{e()}finally{We(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Fo();if(n!==void 0){var i=n(t);if(xo){We(!0);try{n(t)}finally{We(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ps.bind(null,I,e),[r.memoizedState,e]},useRef:function(e){var t=Fo();return e={current:e},t.memoizedState=e},useState:function(e){e=Zo(e);var t=e.queue,n=Fs.bind(null,I,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:bs,useDeferredValue:function(e,t){return Cs(Fo(),e,t)},useTransition:function(){var e=Zo(!1);return e=Ts.bind(null,I,e.queue,!0,!1),Fo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=I,i=Fo();if(N){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),Wl===null)throw Error(a(349));U&127||Ko(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,ps(Jo.bind(null,r,o,e),[e]),r.flags|=2048,ds(9,{destroy:void 0},qo.bind(null,r,o,n,t),null),n},useId:function(){var e=Fo(),t=Wl.identifierPrefix;if(N){var n=Ni,r=Mi;n=(r&~(1<<32-Ge(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=So++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=To++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:As,useFormState:os,useActionState:os,useOptimistic:function(e){var t=Fo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Ls.bind(null,I,!0,n),n.dispatch=t,[e,t]},useMemoCache:Bo,useCacheRefresh:function(){return Fo().memoizedState=Ns.bind(null,I)},useEffectEvent:function(e){var t=Fo(),n={impl:e};return t.memoizedState=n,function(){if(V&2)throw Error(a(440));return n.impl.apply(void 0,arguments)}}},Us={readContext:sa,use:zo,useCallback:xs,useContext:sa,useEffect:ms,useImperativeHandle:ys,useInsertionEffect:_s,useLayoutEffect:vs,useMemo:Ss,useReducer:Ho,useRef:fs,useState:function(){return Ho(Vo)},useDebugValue:bs,useDeferredValue:function(e,t){return ws(Io(),L.memoizedState,e,t)},useTransition:function(){var e=Ho(Vo)[0],t=Io().memoizedState;return[typeof e==`boolean`?e:Ro(e),t]},useSyncExternalStore:Go,useId:js,useHostTransitionStatus:As,useFormState:ss,useActionState:ss,useOptimistic:function(e,t){return Qo(Io(),L,e,t)},useMemoCache:Bo,useCacheRefresh:Ms};Us.useEffectEvent=gs;var Ws={readContext:sa,use:zo,useCallback:xs,useContext:sa,useEffect:ms,useImperativeHandle:ys,useInsertionEffect:_s,useLayoutEffect:vs,useMemo:Ss,useReducer:Wo,useRef:fs,useState:function(){return Wo(Vo)},useDebugValue:bs,useDeferredValue:function(e,t){var n=Io();return L===null?Cs(n,e,t):ws(n,L.memoizedState,e,t)},useTransition:function(){var e=Wo(Vo)[0],t=Io().memoizedState;return[typeof e==`boolean`?e:Ro(e),t]},useSyncExternalStore:Go,useId:js,useHostTransitionStatus:As,useFormState:us,useActionState:us,useOptimistic:function(e,t){var n=Io();return L===null?(n.baseState=e,[e,n.queue.dispatch]):Qo(n,L,e,t)},useMemoCache:Bo,useCacheRefresh:Ms};Ws.useEffectEvent=gs;function Gs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:p({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ks={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=mu(),i=Ja(r);i.payload=t,n!=null&&(i.callback=n),t=Ya(e,i,r),t!==null&&(gu(t,e,r),Xa(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=mu(),i=Ja(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Ya(e,i,r),t!==null&&(gu(t,e,r),Xa(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=mu(),r=Ja(n);r.tag=2,t!=null&&(r.callback=t),t=Ya(e,r,n),t!==null&&(gu(t,e,n),Xa(t,e,n))}};function qs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!jr(n,r)||!jr(i,a):!0}function Js(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ks.enqueueReplaceState(t,t.state,null)}function Ys(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=p({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Xs(e){ii(e)}function Zs(e){console.error(e)}function Qs(e){ii(e)}function $s(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function ec(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function tc(e,t,n){return n=Ja(n),n.tag=3,n.payload={element:null},n.callback=function(){$s(e,t)},n}function nc(e){return e=Ja(e),e.tag=3,e}function rc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){ec(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){ec(t,n,r),typeof i!=`function`&&(Y===null?Y=new Set([this]):Y.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function ic(e,t,n,r,i){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&ia(t,n,i,!0),n=F.current,n!==null){switch(n.tag){case 31:case 13:return co===null?Ou():n.alternate===null&&G===0&&(G=3),n.flags&=-257,n.flags|=65536,n.lanes=i,r===Aa?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Ku(e,r,i)),!1;case 22:return n.flags|=65536,r===Aa?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Ku(e,r,i)),!1}throw Error(a(435,n.tag))}return Ku(e,r,i),Ou(),!1}if(N)return t=F.current,t===null?(r!==Ui&&(t=Error(a(423),{cause:r}),Xi(wi(t,n))),e=e.current.alternate,e.flags|=65536,i&=-i,e.lanes|=i,r=wi(r,n),i=tc(e.stateNode,r,i),Za(e,i),G!==4&&(G=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=i,r!==Ui&&(e=Error(a(422),{cause:r}),Xi(wi(e,n)))),!1;var o=Error(a(520),{cause:r});if(o=wi(o,n),eu===null?eu=[o]:eu.push(o),G!==4&&(G=2),t===null)return!0;r=wi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=i&-i,n.lanes|=e,e=tc(n.stateNode,r,e),Za(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(Y===null||!Y.has(o))))return n.flags|=65536,i&=-i,n.lanes|=i,i=nc(i),rc(i,e,n,r),Za(n,i),!1}n=n.return}while(n!==null);return!1}var ac=Error(a(461)),oc=!1;function sc(e,t,n,r){t.child=e===null?Wa(t,null,n,r):Ua(t,e.child,n,r)}function cc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return oa(t),r=Oo(e,t,n,o,a,i),s=Mo(),e!==null&&!oc?(No(e,t,i),Mc(e,t,i)):(N&&s&&Ii(t),t.flags|=1,sc(e,t,r,i),t.child)}function lc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!hi(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,uc(e,t,a,r,i)):(e=vi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Nc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?jr:n,n(o,r)&&e.ref===t.ref)return Mc(e,t,i)}return t.flags|=1,e=gi(a,r),e.ref=t.ref,e.return=t,t.child=e}function uc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(jr(a,r)&&e.ref===t.ref)if(oc=!1,t.pendingProps=r=a,Nc(e,i))e.flags&131072&&(oc=!0);else return t.lanes=e.lanes,Mc(e,t,i)}return vc(e,t,n,r,i)}function dc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return pc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Ta(t,a===null?null:a.cachePool),a===null?oo():ao(t,a),fo(t);else return r=t.lanes=536870912,pc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&Ta(t,null),oo(),po(t)):(Ta(t,a.cachePool),ao(t,a),po(t),t.memoizedState=null);return sc(e,t,i,n),t.child}function fc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function pc(e,t,n,r,i){var a=wa();return a=a===null?null:{parent:pa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&Ta(t,null),oo(),fo(t),e!==null&&ia(e,t,r,!0),t.childLanes=i,null}function mc(e,t){return t=Dc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function hc(e,t,n){return Ua(t,e.child,null,n),e=mc(t,t.pendingProps),e.flags|=2,mo(t),t.memoizedState=null,e}function gc(e,t,n){var r=t.pendingProps,i=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(N){if(r.mode===`hidden`)return e=mc(t,r),t.lanes=536870912,fc(null,e);if(uo(t),(e=Bi)?(e=rf(e,Hi),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ji===null?null:{id:Mi,overflow:Ni},retryLane:536870912,hydrationErrors:null},n=xi(e),n.return=t,t.child=n,zi=t,Bi=null)):e=null,e===null)throw Wi(t);return t.lanes=536870912,null}return mc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(uo(t),i)if(t.flags&256)t.flags&=-257,t=hc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(a(558));else if(oc||ia(e,t,n,!1),i=(n&e.childLanes)!==0,oc||i){if(r=Wl,r!==null&&(s=lt(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,j(e,s),gu(r,e,s),ac;Ou(),t=hc(e,t,n)}else e=o.treeContext,Bi=cf(s.nextSibling),zi=t,N=!0,Vi=null,Hi=!1,e!==null&&Ri(t,e),t=mc(t,r),t.flags|=4096;return t}return e=gi(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function _c(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(a(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function vc(e,t,n,r,i){return oa(t),n=Oo(e,t,n,r,void 0,i),r=Mo(),e!==null&&!oc?(No(e,t,i),Mc(e,t,i)):(N&&r&&Ii(t),t.flags|=1,sc(e,t,n,i),t.child)}function yc(e,t,n,r,i,a){return oa(t),t.updateQueue=null,n=Ao(t,r,n,i),ko(e),r=Mo(),e!==null&&!oc?(No(e,t,a),Mc(e,t,a)):(N&&r&&Ii(t),t.flags|=1,sc(e,t,n,a),t.child)}function bc(e,t,n,r,i){if(oa(t),t.stateNode===null){var a=pi,o=n.contextType;typeof o==`object`&&o&&(a=sa(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Ks,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ka(t),o=n.contextType,a.context=typeof o==`object`&&o?sa(o):pi,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Gs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Ks.enqueueReplaceState(a,a.state,null),eo(t,r,a,i),$a(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Ys(n,s);a.props=c;var l=a.context,u=n.contextType;o=pi,typeof u==`object`&&u&&(o=sa(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Js(t,a,r,o),Ga=!1;var f=t.memoizedState;a.state=f,eo(t,r,a,i),$a(),l=t.memoizedState,s||f!==l||Ga?(typeof d==`function`&&(Gs(t,n,d,r),l=t.memoizedState),(c=Ga||qs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,qa(e,t),o=t.memoizedProps,u=Ys(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=pi,typeof l==`object`&&l&&(c=sa(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Js(t,a,r,c),Ga=!1,f=t.memoizedState,a.state=f,eo(t,r,a,i),$a();var p=t.memoizedState;o!==d||f!==p||Ga||e!==null&&e.dependencies!==null&&aa(e.dependencies)?(typeof s==`function`&&(Gs(t,n,s,r),p=t.memoizedState),(u=Ga||qs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&aa(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,_c(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ua(t,e.child,null,i),t.child=Ua(t,null,n,i)):sc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Mc(e,t,i),e}function xc(e,t,n,r){return Ji(),t.flags|=256,sc(e,t,n,r),t.child}var Sc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Cc(e){return{baseLanes:e,cachePool:Ea()}}function wc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Ql),e}function Tc(e,t,n){var r=t.pendingProps,i=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(ho.current&2)!=0),s&&(i=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(N){if(i?lo(t):po(t),(e=Bi)?(e=rf(e,Hi),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ji===null?null:{id:Mi,overflow:Ni},retryLane:536870912,hydrationErrors:null},n=xi(e),n.return=t,t.child=n,zi=t,Bi=null)):e=null,e===null)throw Wi(t);return of(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,i?(po(t),i=t.mode,c=Dc({mode:`hidden`,children:c},i),r=yi(r,i,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=Cc(n),r.childLanes=wc(e,s,n),t.memoizedState=Sc,fc(null,r)):(lo(t),Ec(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(lo(t),t.flags&=-257,t=Oc(e,t,n)):t.memoizedState===null?(po(t),c=r.fallback,i=t.mode,r=Dc({mode:`visible`,children:r.children},i),c=yi(c,i,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Ua(t,e.child,null,n),r=t.child,r.memoizedState=Cc(n),r.childLanes=wc(e,s,n),t.memoizedState=Sc,t=fc(null,r)):(po(t),t.child=e.child,t.flags|=128,t=null);else if(lo(t),of(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(a(419)),r.stack=``,r.digest=s,Xi({value:r,source:null,stack:null}),t=Oc(e,t,n)}else if(oc||ia(e,t,n,!1),s=(n&e.childLanes)!==0,oc||s){if(s=Wl,s!==null&&(r=lt(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,j(e,r),gu(s,e,r),ac;af(c)||Ou(),t=Oc(e,t,n)}else af(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Bi=cf(c.nextSibling),zi=t,N=!0,Vi=null,Hi=!1,e!==null&&Ri(t,e),t=Ec(t,r.children),t.flags|=4096);return t}return i?(po(t),c=r.fallback,i=t.mode,l=e.child,u=l.sibling,r=gi(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=yi(c,i,n,null),c.flags|=2):c=gi(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,fc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=Cc(n):(i=c.cachePool,i===null?i=Ea():(l=pa._currentValue,i=i.parent===l?i:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:i}),r.memoizedState=c,r.childLanes=wc(e,s,n),t.memoizedState=Sc,fc(e.child,r)):(lo(t),n=e.child,e=n.sibling,n=gi(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function Ec(e,t){return t=Dc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Dc(e,t){return e=M(22,e,null,t),e.lanes=0,e}function Oc(e,t,n){return Ua(t,e.child,null,n),e=Ec(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function kc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),na(e.return,t,n)}function Ac(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function jc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=ho.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,O(ho,o),sc(e,t,r,n),r=N?Oi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&kc(e,n,t);else if(e.tag===19)kc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&go(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Ac(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&go(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Ac(t,!0,n,null,a,r);break;case`together`:Ac(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Mc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Xl|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(ia(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(a(153));if(t.child!==null){for(e=t.child,n=gi(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=gi(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Nc(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&aa(e))):!0}function Pc(e,t,n){switch(t.tag){case 3:ve(t,t.stateNode.containerInfo),ea(t,pa,e.memoizedState.cache),Ji();break;case 27:case 5:be(t);break;case 4:ve(t,t.stateNode.containerInfo);break;case 10:ea(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,uo(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(lo(t),e=Mc(e,t,n),e===null?null:e.sibling):Tc(e,t,n):(lo(t),t.flags|=128,null);lo(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(ia(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return jc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),O(ho,ho.current),r)break;return null;case 22:return t.lanes=0,dc(e,t,n,t.pendingProps);case 24:ea(t,pa,e.memoizedState.cache)}return Mc(e,t,n)}function Fc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)oc=!0;else{if(!Nc(e,n)&&!(t.flags&128))return oc=!1,Pc(e,t,n);oc=!!(e.flags&131072)}else oc=!1,N&&t.flags&1048576&&Fi(t,Oi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Na(t.elementType),t.type=e,typeof e==`function`)hi(e)?(r=Ys(e,r),t.tag=1,t=bc(null,t,e,r,n)):(t.tag=0,t=vc(null,t,e,r,n));else{if(e!=null){var i=e.$$typeof;if(i===ee){t.tag=11,t=cc(null,t,e,r,n);break a}else if(i===w){t.tag=14,t=lc(null,t,e,r,n);break a}}throw t=ce(e)||e,Error(a(306,t,``))}}return t;case 0:return vc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,i=Ys(r,t.pendingProps),bc(e,t,r,i,n);case 3:a:{if(ve(t,t.stateNode.containerInfo),e===null)throw Error(a(387));r=t.pendingProps;var o=t.memoizedState;i=o.element,qa(e,t),eo(t,r,null,n);var s=t.memoizedState;if(r=s.cache,ea(t,pa,r),r!==o.cache&&ra(t,[pa],n,!0),$a(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=xc(e,t,r,n);break a}else if(r!==i){i=wi(Error(a(424)),t),Xi(i),t=xc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Bi=cf(e.firstChild),zi=t,N=!0,Vi=null,Hi=!0,n=Wa(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Ji(),r===i){t=Mc(e,t,n);break a}sc(e,t,r,n)}t=t.child}return t;case 26:return _c(e,t),e===null?(n=kf(t.type,null,t.pendingProps,null))?t.memoizedState=n:N||(n=t.type,e=t.pendingProps,r=Bd(ge.current).createElement(n),r[ht]=t,r[gt]=e,Pd(r,n,e),Ot(r),t.stateNode=r):t.memoizedState=kf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return be(t),e===null&&N&&(r=t.stateNode=ff(t.type,t.pendingProps,ge.current),zi=t,Hi=!0,i=Bi,Zd(t.type)?(lf=i,Bi=cf(r.firstChild)):Bi=i),sc(e,t,t.pendingProps.children,n),_c(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&N&&((i=r=Bi)&&(r=tf(r,t.type,t.pendingProps,Hi),r===null?i=!1:(t.stateNode=r,zi=t,Bi=cf(r.firstChild),Hi=!1,i=!0)),i||Wi(t)),be(t),i=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Ud(i,o)?r=null:s!==null&&Ud(i,s)&&(t.flags|=32),t.memoizedState!==null&&(i=Oo(e,t,jo,null,null,n),Qf._currentValue=i),_c(e,t),sc(e,t,r,n),t.child;case 6:return e===null&&N&&((e=n=Bi)&&(n=nf(n,t.pendingProps,Hi),n===null?e=!1:(t.stateNode=n,zi=t,Bi=null,e=!0)),e||Wi(t)),null;case 13:return Tc(e,t,n);case 4:return ve(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ua(t,null,r,n):sc(e,t,r,n),t.child;case 11:return cc(e,t,t.type,t.pendingProps,n);case 7:return sc(e,t,t.pendingProps,n),t.child;case 8:return sc(e,t,t.pendingProps.children,n),t.child;case 12:return sc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,ea(t,t.type,r.value),sc(e,t,r.children,n),t.child;case 9:return i=t.type._context,r=t.pendingProps.children,oa(t),i=sa(i),r=r(i),t.flags|=1,sc(e,t,r,n),t.child;case 14:return lc(e,t,t.type,t.pendingProps,n);case 15:return uc(e,t,t.type,t.pendingProps,n);case 19:return jc(e,t,n);case 31:return gc(e,t,n);case 22:return dc(e,t,n,t.pendingProps);case 24:return oa(t),r=sa(pa),e===null?(i=wa(),i===null&&(i=Wl,o=ma(),i.pooledCache=o,o.refCount++,o!==null&&(i.pooledCacheLanes|=n),i=o),t.memoizedState={parent:r,cache:i},Ka(t),ea(t,pa,i)):((e.lanes&n)!==0&&(qa(e,t),eo(t,null,null,n),$a()),i=e.memoizedState,o=t.memoizedState,i.parent===r?(r=o.cache,ea(t,pa,r),r!==i.cache&&ra(t,[pa],n,!0)):(i={parent:r,cache:r},t.memoizedState=i,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=i),ea(t,pa,r))),sc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(a(156,t.tag))}function Ic(e){e.flags|=4}function Lc(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(Tu())e.flags|=8192;else throw Pa=Aa,Oa}else e.flags&=-16777217}function Rc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Wf(t))if(Tu())e.flags|=8192;else throw Pa=Aa,Oa}function zc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:nt(),e.lanes|=t,$l|=t)}function Bc(e,t){if(!N)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Hc(e,t,n){var r=t.pendingProps;switch(Li(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vc(t),null;case 1:return Vc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),ta(pa),ye(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(qi(t)?Ic(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Yi())),Vc(t),null;case 26:var i=t.type,o=t.memoizedState;return e===null?(Ic(t),o===null?(Vc(t),Lc(t,i,null,r,n)):(Vc(t),Rc(t,o))):o?o===e.memoizedState?(Vc(t),t.flags&=-16777217):(Ic(t),Vc(t),Rc(t,o)):(e=e.memoizedProps,e!==r&&Ic(t),Vc(t),Lc(t,i,e,r,n)),null;case 27:if(xe(t),n=ge.current,i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ic(t);else{if(!r){if(t.stateNode===null)throw Error(a(166));return Vc(t),null}e=me.current,qi(t)?Gi(t,e):(e=ff(i,r,n),t.stateNode=e,Ic(t))}return Vc(t),null;case 5:if(xe(t),i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ic(t);else{if(!r){if(t.stateNode===null)throw Error(a(166));return Vc(t),null}if(o=me.current,qi(t))Gi(t,o);else{var s=Bd(ge.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;default:switch(i){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[ht]=t,o[gt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Ic(t)}}return Vc(t),Lc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ic(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=ge.current,qi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=zi,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[ht]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Wi(t,!0)}else e=Bd(e).createTextNode(r),e[ht]=t,t.stateNode=e}return Vc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=qi(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[ht]=t}else Ji(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Vc(t),e=!1}else n=Yi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(mo(t),t):(mo(t),null);if(t.flags&128)throw Error(a(558))}return Vc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=qi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[ht]=t}else Ji(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Vc(t),i=!1}else i=Yi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(mo(t),t):(mo(t),null)}return mo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),zc(t,t.updateQueue),Vc(t),null);case 4:return ye(),e===null&&Sd(t.stateNode.containerInfo),Vc(t),null;case 10:return ta(t.type),Vc(t),null;case 19:if(D(ho),r=t.memoizedState,r===null)return Vc(t),null;if(i=(t.flags&128)!=0,o=r.rendering,o===null)if(i)Bc(r,!1);else{if(G!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=go(e),o!==null){for(t.flags|=128,Bc(r,!1),e=o.updateQueue,t.updateQueue=e,zc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)_i(n,e),n=n.sibling;return O(ho,ho.current&1|2),N&&Pi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Ne()>iu&&(t.flags|=128,i=!0,Bc(r,!1),t.lanes=4194304)}else{if(!i)if(e=go(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,zc(t,e),Bc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!N)return Vc(t),null}else 2*Ne()-r.renderingStartTime>iu&&n!==536870912&&(t.flags|=128,i=!0,Bc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Vc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Ne(),e.sibling=null,n=ho.current,O(ho,i?n&1|2:n&1),N&&Pi(t,r.treeForkCount),e);case 22:case 23:return mo(t),so(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Vc(t),t.subtreeFlags&6&&(t.flags|=8192)):Vc(t),n=t.updateQueue,n!==null&&zc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&D(Ca),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ta(pa),Vc(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Uc(e,t){switch(Li(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ta(pa),ye(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return xe(t),null;case 31:if(t.memoizedState!==null){if(mo(t),t.alternate===null)throw Error(a(340));Ji()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(mo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Ji()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return D(ho),null;case 4:return ye(),null;case 10:return ta(t.type),null;case 22:case 23:return mo(t),so(),e!==null&&D(Ca),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ta(pa),null;case 25:return null;default:return null}}function Wc(e,t){switch(Li(t),t.tag){case 3:ta(pa),ye();break;case 26:case 27:case 5:xe(t);break;case 4:ye();break;case 31:t.memoizedState!==null&&mo(t);break;case 13:mo(t);break;case 19:D(ho);break;case 10:ta(t.type);break;case 22:case 23:mo(t),so(),e!==null&&D(Ca);break;case 24:ta(pa)}}function Gc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){X(t,t.return,e)}}function Kc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){X(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){X(t,t.return,e)}}function qc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{no(t,n)}catch(t){X(e,e.return,t)}}}function Jc(e,t,n){n.props=Ys(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){X(e,t,n)}}function Yc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){X(e,t,n)}}function Xc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){X(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){X(e,t,n)}else n.current=null}function Zc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){X(e,e.return,t)}}function Qc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[gt]=t}catch(t){X(e,e.return,t)}}function $c(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function el(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||$c(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function tl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ln));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(tl(e,t,n),e=e.sibling;e!==null;)tl(e,t,n),e=e.sibling}function nl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(nl(e,t,n),e=e.sibling;e!==null;)nl(e,t,n),e=e.sibling}function rl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[ht]=e,t[gt]=n}catch(t){X(e,e.return,t)}}var il=!1,al=!1,ol=!1,sl=typeof WeakSet==`function`?WeakSet:Set,cl=null;function ll(e,t){if(e=e.containerInfo,Rd=sp,e=Fr(e),Ir(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,cl=t;cl!==null;)if(t=cl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,cl=e;else for(;cl!==null;){switch(t=cl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)i=e[n],i.ref.impl=i.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,i=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Ys(n.type,i);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){X(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)ef(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:ef(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(a(163))}if(e=t.sibling,e!==null){e.return=t.return,cl=e;break}cl=t.return}}function ul(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Tl(e,n),r&4&&Gc(5,n);break;case 1:if(Tl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){X(n,n.return,e)}else{var i=Ys(n.type,t.memoizedProps);t=t.memoizedState;
vendor: 4,306 bytes, line 9
9try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){X(n,n.return,e)}}r&64&&qc(n),r&512&&Yc(n,n.return);break;case 3:if(Tl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{no(e,t)}catch(e){X(n,n.return,e)}}break;case 27:t===null&&r&4&&rl(n);case 26:case 5:Tl(e,n),t===null&&r&4&&Zc(n),r&512&&Yc(n,n.return);break;case 12:Tl(e,n);break;case 31:Tl(e,n),r&4&&gl(e,n);break;case 13:Tl(e,n),r&4&&_l(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Yu.bind(null,n),sf(e,n))));break;case 22:if(r=n.memoizedState!==null||il,!r){t=t!==null&&t.memoizedState!==null||al,i=il;var a=al;il=r,(al=t)&&!a?Dl(e,n,(n.subtreeFlags&8772)!=0):Tl(e,n),il=i,al=a}break;case 30:break;default:Tl(e,n)}}function dl(e){var t=e.alternate;t!==null&&(e.alternate=null,dl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Ct(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var fl=null,pl=!1;function ml(e,t,n){for(n=n.child;n!==null;)hl(e,t,n),n=n.sibling}function hl(e,t,n){if(Ue&&typeof Ue.onCommitFiberUnmount==`function`)try{Ue.onCommitFiberUnmount(He,n)}catch{}switch(n.tag){case 26:al||Xc(n,t),ml(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:al||Xc(n,t);var r=fl,i=pl;Zd(n.type)&&(fl=n.stateNode,pl=!1),ml(e,t,n),pf(n.stateNode),fl=r,pl=i;break;case 5:al||Xc(n,t);case 6:if(r=fl,i=pl,fl=null,ml(e,t,n),fl=r,pl=i,fl!==null)if(pl)try{(fl.nodeType===9?fl.body:fl.nodeName===`HTML`?fl.ownerDocument.body:fl).removeChild(n.stateNode)}catch(e){X(n,t,e)}else try{fl.removeChild(n.stateNode)}catch(e){X(n,t,e)}break;case 18:fl!==null&&(pl?(e=fl,Qd(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Np(e)):Qd(fl,n.stateNode));break;case 4:r=fl,i=pl,fl=n.stateNode.containerInfo,pl=!0,ml(e,t,n),fl=r,pl=i;break;case 0:case 11:case 14:case 15:Kc(2,n,t),al||Kc(4,n,t),ml(e,t,n);break;case 1:al||(Xc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Jc(n,t,r)),ml(e,t,n);break;case 21:ml(e,t,n);break;case 22:al=(r=al)||n.memoizedState!==null,ml(e,t,n),al=r;break;default:ml(e,t,n)}}function gl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Np(e)}catch(e){X(t,t.return,e)}}}function _l(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Np(e)}catch(e){X(t,t.return,e)}}function vl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new sl),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new sl),t;default:throw Error(a(435,e.tag))}}function yl(e,t){var n=vl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Xu.bind(null,e,t);t.then(r,r)}})}function bl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(Zd(c.type)){fl=c.stateNode,pl=!1;break a}break;case 5:fl=c.stateNode,pl=!1;break a;case 3:case 4:fl=c.stateNode.containerInfo,pl=!0;break a}c=c.return}if(fl===null)throw Error(a(160));hl(o,s,i),fl=null,pl=!1,o=i.alternate,o!==null&&(o.return=null),i.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Sl(t,e),t=t.sibling}var xl=null;function Sl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:bl(t,e),Cl(e),r&4&&(Kc(3,e,e.return),Gc(3,e),Kc(5,e,e.return));break;case 1:bl(t,e),Cl(e),r&512&&(al||n===null||Xc(n,n.return)),r&64&&il&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var i=xl;if(bl(t,e),Cl(e),r&512&&(al||n===null||Xc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,i=i.ownerDocument||i;b:switch(r){case`title`:o=i.getElementsByTagName(`title`)[0],(!o||o[St]||o[ht]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=i.createElement(r),i.head.insertBefore(o,i.querySelector(`head >
9 title`))),Pd(o,r,n),o[ht]=e,Ot(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=i.createElement(r),Pd(o,r,n),i.head.appendChild(o);break;case`meta`:if(s=Vf(`meta`,`content`,i).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=i.createElement(r),Pd(o,r,n),i.head.appendChild(o);break;default:throw Error(a(468,r))}o[ht]=e,Ot(o),r=o}e.stateNode=r}else Hf(i,e.type,e.stateNode);else e.stateNode=If(i,r,e.memoizedProps);
vendor: 40,445 bytes, lines 9-10
9else o===r?r===null&&e.stateNode!==null&&Qc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Hf(i,e.type,e.stateNode):If(i,r,e.memoizedProps))}break;case 27:bl(t,e),Cl(e),r&512&&(al||n===null||Xc(n,n.return)),n!==null&&r&4&&Qc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(bl(t,e),Cl(e),r&512&&(al||n===null||Xc(n,n.return)),e.flags&32){i=e.stateNode;try{en(i,``)}catch(t){X(e,e.return,t)}}r&4&&e.stateNode!=null&&(i=e.memoizedProps,Qc(e,i,n===null?i:n.memoizedProps)),r&1024&&(ol=!0);break;case 6:if(bl(t,e),Cl(e),r&4){if(e.stateNode===null)throw Error(a(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){X(e,e.return,t)}}break;case 3:if(Bf=null,i=xl,xl=gf(t.containerInfo),bl(t,e),xl=i,Cl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Np(t.containerInfo)}catch(t){X(e,e.return,t)}ol&&(ol=!1,wl(e));break;case 4:r=xl,xl=gf(e.stateNode.containerInfo),bl(t,e),Cl(e),xl=r;break;case 12:bl(t,e),Cl(e);break;case 31:bl(t,e),Cl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,yl(e,r)));break;case 13:bl(t,e),Cl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(q=Ne()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,yl(e,r)));break;case 22:i=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=il,d=al;if(il=u||i,al=d||l,bl(t,e),al=d,il=u,Cl(e),r&8192)a:for(t=e.stateNode,t._visibility=i?t._visibility&-2:t._visibility|1,i&&(n===null||l||il||al||El(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,i)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){X(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=i?``:l.memoizedProps}catch(e){X(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;i?$d(m,!0):$d(l.stateNode,!1)}catch(e){X(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,yl(e,n))));break;case 19:bl(t,e),Cl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,yl(e,r)));break;case 30:break;case 21:break;default:bl(t,e),Cl(e)}}function Cl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if($c(r)){n=r;break}r=r.return}if(n==null)throw Error(a(160));switch(n.tag){case 27:var i=n.stateNode;nl(e,el(e),i);break;case 5:var o=n.stateNode;n.flags&32&&(en(o,``),n.flags&=-33),nl(e,el(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;tl(e,el(e),s);break;default:throw Error(a(161))}}catch(t){X(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function wl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;wl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Tl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)ul(e,t.alternate,t),t=t.sibling}function El(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Kc(4,t,t.return),El(t);break;case 1:Xc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Jc(t,t.return,n),El(t);break;case 27:pf(t.stateNode);case 26:case 5:Xc(t,t.return),El(t);break;case 22:t.memoizedState===null&&El(t);break;case 30:El(t);break;default:El(t)}e=e.sibling}}function Dl(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:Dl(i,a,n),Gc(4,a);break;case 1:if(Dl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){X(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)to(c[i],s)}catch(e){X(r,r.return,e)}}n&&o&64&&qc(a),Yc(a,a.return);break;case 27:rl(a);case 26:case 5:Dl(i,a,n),n&&r===null&&o&4&&Zc(a),Yc(a,a.return);break;case 12:Dl(i,a,n);break;case 31:Dl(i,a,n),n&&o&4&&gl(i,a);break;case 13:Dl(i,a,n),n&&o&4&&_l(i,a);break;case 22:a.memoizedState===null&&Dl(i,a,n),Yc(a,a.return);break;case 30:break;default:Dl(i,a,n)}t=t.sibling}}function Ol(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&ha(n))}function kl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ha(e))}function Al(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)jl(e,t,n,r),t=t.sibling}function jl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Al(e,t,n,r),i&2048&&Gc(9,t);break;case 1:Al(e,t,n,r);break;case 3:Al(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ha(e)));break;case 12:if(i&2048){Al(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){X(t,t.return,e)}}else Al(e,t,n,r);break;case 31:Al(e,t,n,r);break;case 13:Al(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Al(e,t,n,r):(a._visibility|=2,Ml(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?Al(e,t,n,r):Nl(e,t),i&2048&&Ol(o,t);break;case 24:Al(e,t,n,r),i&2048&&kl(t.alternate,t);break;default:Al(e,t,n,r)}}function Ml(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Ml(a,o,s,c,i),Gc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Ml(a,o,s,c,i)):u._visibility&2?Ml(a,o,s,c,i):Nl(a,o),i&&l&2048&&Ol(o.alternate,o);break;case 24:Ml(a,o,s,c,i),i&&l&2048&&kl(o.alternate,o);break;default:Ml(a,o,s,c,i)}t=t.sibling}}function Nl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Nl(n,r),i&2048&&Ol(r.alternate,r);break;case 24:Nl(n,r),i&2048&&kl(r.alternate,r);break;default:Nl(n,r)}t=t.sibling}}var Pl=8192;function Fl(e,t,n){if(e.subtreeFlags&Pl)for(e=e.child;e!==null;)Il(e,t,n),e=e.sibling}function Il(e,t,n){switch(e.tag){case 26:Fl(e,t,n),e.flags&Pl&&e.memoizedState!==null&&Gf(n,xl,e.memoizedState,e.memoizedProps);break;case 5:Fl(e,t,n);break;case 3:case 4:var r=xl;xl=gf(e.stateNode.containerInfo),Fl(e,t,n),xl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Pl,Pl=16777216,Fl(e,t,n),Pl=r):Fl(e,t,n));break;default:Fl(e,t,n)}}function Ll(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Rl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];cl=r,Vl(r,e)}Ll(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)zl(e),e=e.sibling}function zl(e){switch(e.tag){case 0:case 11:case 15:Rl(e),e.flags&2048&&Kc(9,e,e.return);break;case 3:Rl(e);break;case 12:Rl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Bl(e)):Rl(e);break;default:Rl(e)}}function Bl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];cl=r,Vl(r,e)}Ll(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Kc(8,t,t.return),Bl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Bl(t));break;default:Bl(t)}e=e.sibling}}function Vl(e,t){for(;cl!==null;){var n=cl;switch(n.tag){case 0:case 11:case 15:Kc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:ha(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,cl=r;else a:for(n=e;cl!==null;){r=cl;var i=r.sibling,a=r.return;if(dl(r),r===n){cl=null;break a}if(i!==null){i.return=a,cl=i;break a}cl=a}}}var Hl={getCacheForType:function(e){var t=sa(pa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return sa(pa).controller.signal}},Ul=typeof WeakMap==`function`?WeakMap:Map,V=0,Wl=null,H=null,U=0,W=0,Gl=null,Kl=!1,ql=!1,Jl=!1,Yl=0,G=0,Xl=0,K=0,Zl=0,Ql=0,$l=0,eu=null,tu=null,nu=!1,q=0,ru=0,iu=1/0,J=null,Y=null,au=0,ou=null,su=null,cu=0,lu=0,uu=null,du=null,fu=0,pu=null;function mu(){return V&2&&U!==0?U&-U:T.T===null?ft():fd()}function hu(){if(Ql===0)if(!(U&536870912)||N){var e=Xe;Xe<<=1,!(Xe&3932160)&&(Xe=262144),Ql=e}else Ql=536870912;return e=F.current,e!==null&&(e.flags|=32),Ql}function gu(e,t,n){(e===Wl&&(W===2||W===9)||e.cancelPendingCommit!==null)&&(Cu(e,0),bu(e,U,Ql,!1)),at(e,n),(!(V&2)||e!==Wl)&&(e===Wl&&(!(V&2)&&(K|=n),G===4&&bu(e,U,Ql,!1)),id(e))}function _u(e,t,n){if(V&6)throw Error(a(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||et(e,t),i=r?ju(e,t):ku(e,t,!0),o=r;do{if(i===0){ql&&!r&&bu(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!yu(n)){i=ku(e,t,!1),o=!1;continue}if(i===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;i=eu;var l=c.current.memoizedState.isDehydrated;if(l&&(Cu(c,s).flags|=256),s=ku(c,s,!1),s!==2){if(Jl&&!l){c.errorRecoveryDisabledLanes|=o,K|=o,i=4;break a}o=tu,tu=i,o!==null&&(tu===null?tu=o:tu.push.apply(tu,o))}i=s}if(o=!1,i!==2)continue}}if(i===1){Cu(e,0),bu(e,t,0,!0);break}a:{switch(r=e,o=i,o){case 0:case 1:throw Error(a(345));case 4:if((t&4194048)!==t)break;case 6:bu(r,t,Ql,!Kl);break a;case 2:tu=null;break;case 3:case 5:break;default:throw Error(a(329))}if((t&62914560)===t&&(i=q+300-Ne(),10<i)){if(bu(r,t,Ql,!Kl),$e(r,0,!0)!==0)break a;cu=t,r.timeoutHandle=Kd(vu.bind(null,r,n,tu,J,nu,t,Ql,K,$l,Kl,o,`Throttled`,-0,0),i);break a}vu(r,n,tu,J,nu,t,Ql,K,$l,Kl,o,null,-0,0)}}break}while(1);id(e)}function vu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:ln},Il(t,a,d);var m=(a&62914560)===a?q-Ne():(a&4194048)===a?ru-Ne():0;if(m=qf(d,m),m!==null){cu=a,e.cancelPendingCommit=m(Ru.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),bu(e,a,o,!l);return}}Ru(e,t,a,n,r,i,o,s,c)}function yu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Ar(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function bu(e,t,n,r){t&=~Zl,t&=~K,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Ge(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&st(e,n,t)}function xu(){return V&6?!0:(ad(0,!1),!1)}function Su(){if(H!==null){if(W===0)var e=H.return;else e=H,$i=Qi=null,Po(e),La=null,Ra=0,e=H;for(;e!==null;)Wc(e.alternate,e),e=e.return;H=null}}function Cu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,qd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),cu=0,Su(),Wl=e,H=n=gi(e.current,null),U=t,W=0,Gl=null,Kl=!1,ql=et(e,t),Jl=!1,$l=Ql=Zl=K=Xl=G=0,tu=eu=null,nu=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Ge(r),a=1<<i;t|=e[i],r&=~a}return Yl=t,ci(),n}function wu(e,t){I=null,T.H=Vs,t===Da||t===ka?(t=Fa(),W=3):t===Oa?(t=Fa(),W=4):W=t===ac?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Gl=t,H===null&&(G=1,$s(e,wi(t,e.current)))}function Tu(){var e=F.current;return e===null?!0:(U&4194048)===U?co===null:(U&62914560)===U||U&536870912?e===co:!1}function Eu(){var e=T.H;return T.H=Vs,e===null?Vs:e}function Du(){var e=T.A;return T.A=Hl,e}function Ou(){G=4,Kl||(U&4194048)!==U&&F.current!==null||(ql=!0),!(Xl&134217727)&&!(K&134217727)||Wl===null||bu(Wl,U,Ql,!1)}function ku(e,t,n){var r=V;V|=2;var i=Eu(),a=Du();(Wl!==e||U!==t)&&(J=null,Cu(e,t)),t=!1;var o=G;a:do try{if(W!==0&&H!==null){var s=H,c=Gl;switch(W){case 8:Su(),o=6;break a;case 3:case 2:case 9:case 6:F.current===null&&(t=!0);var l=W;if(W=0,Gl=null,Fu(e,s,c,l),n&&ql){o=0;break a}break;default:l=W,W=0,Gl=null,Fu(e,s,c,l)}}Au(),o=G;break}catch(t){wu(e,t)}while(1);return t&&e.shellSuspendCounter++,$i=Qi=null,V=r,T.H=i,T.A=a,H===null&&(Wl=null,U=0,ci()),o}function Au(){for(;H!==null;)Nu(H)}function ju(e,t){var n=V;V|=2;var r=Eu(),i=Du();Wl!==e||U!==t?(J=null,iu=Ne()+500,Cu(e,t)):ql=et(e,t);a:do try{if(W!==0&&H!==null){t=H;var o=Gl;b:switch(W){case 1:W=0,Gl=null,Fu(e,t,o,1);break;case 2:case 9:if(ja(o)){W=0,Gl=null,Pu(t);break}t=function(){W!==2&&W!==9||Wl!==e||(W=7),id(e)},o.then(t,t);break a;case 3:W=7;break a;case 4:W=5;break a;case 7:ja(o)?(W=0,Gl=null,Pu(t)):(W=0,Gl=null,Fu(e,t,o,7));break;case 5:var s=null;switch(H.tag){case 26:s=H.memoizedState;case 5:case 27:var c=H;if(s?Wf(s):c.stateNode.complete){W=0,Gl=null;var l=c.sibling;if(l!==null)H=l;else{var u=c.return;u===null?H=null:(H=u,Iu(u))}break b}}W=0,Gl=null,Fu(e,t,o,5);break;case 6:W=0,Gl=null,Fu(e,t,o,6);break;case 8:Su(),G=6;break a;default:throw Error(a(462))}}Mu();break}catch(t){wu(e,t)}while(1);return $i=Qi=null,T.H=r,T.A=i,V=n,H===null?(Wl=null,U=0,ci(),G):0}function Mu(){for(;H!==null&&!je();)Nu(H)}function Nu(e){var t=Fc(e.alternate,e,Yl);e.memoizedProps=e.pendingProps,t===null?Iu(e):H=t}function Pu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=yc(n,t,t.pendingProps,t.type,void 0,U);break;case 11:t=yc(n,t,t.pendingProps,t.type.render,t.ref,U);break;case 5:Po(t);default:Wc(n,t),t=H=_i(t,Yl),t=Fc(n,t,Yl)}e.memoizedProps=e.pendingProps,t===null?Iu(e):H=t}function Fu(e,t,n,r){$i=Qi=null,Po(t),La=null,Ra=0;var i=t.return;try{if(ic(e,i,t,n,U)){G=1,$s(e,wi(n,e.current)),H=null;return}}catch(t){if(i!==null)throw H=i,t;G=1,$s(e,wi(n,e.current)),H=null;return}t.flags&32768?(N||r===1?e=!0:ql||U&536870912?e=!1:(Kl=e=!0,(r===2||r===9||r===3||r===6)&&(r=F.current,r!==null&&r.tag===13&&(r.flags|=16384))),Lu(t,e)):Iu(t)}function Iu(e){var t=e;do{if(t.flags&32768){Lu(t,Kl);return}e=t.return;var n=Hc(t.alternate,t,Yl);if(n!==null){H=n;return}if(t=t.sibling,t!==null){H=t;return}H=t=e}while(t!==null);G===0&&(G=5)}function Lu(e,t){do{var n=Uc(e.alternate,e);if(n!==null){n.flags&=32767,H=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){H=e;return}H=e=n}while(e!==null);G=6,H=null}function Ru(e,t,n,r,i,o,s,c,l){e.cancelPendingCommit=null;do Uu();while(au!==0);if(V&6)throw Error(a(327));if(t!==null){if(t===e.current)throw Error(a(177));if(o=t.lanes|t.childLanes,o|=si,ot(e,n,o,s,c,l),e===Wl&&(H=Wl=null,U=0),su=t,ou=e,cu=n,lu=o,uu=i,du=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Zu(Le,function(){return Wu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=T.T,T.T=null,i=E.p,E.p=2,s=V,V|=4;try{ll(e,t,n)}finally{V=s,E.p=i,T.T=r}}au=1,zu(),Bu(),Vu()}}function zu(){if(au===1){au=0;var e=ou,t=su,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=T.T,T.T=null;var r=E.p;E.p=2;var i=V;V|=4;try{Sl(t,e);var a=zd,o=Fr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Pr(s.ownerDocument.documentElement,s)){if(c!==null&&Ir(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Nr(s,h),v=Nr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}sp=!!Rd,zd=Rd=null}finally{V=i,E.p=r,T.T=n}}e.current=t,au=2}}function Bu(){if(au===2){au=0;var e=ou,t=su,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=T.T,T.T=null;var r=E.p;E.p=2;var i=V;V|=4;try{ul(e,t.alternate,t)}finally{V=i,E.p=r,T.T=n}}au=3}}function Vu(){if(au===4||au===3){au=0,Me();var e=ou,t=su,n=cu,r=du;t.subtreeFlags&10256||t.flags&10256?au=5:(au=0,su=ou=null,Hu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(Y=null),dt(n),t=t.stateNode,Ue&&typeof Ue.onCommitFiberRoot==`function`)try{Ue.onCommitFiberRoot(He,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=T.T,i=E.p,E.p=2,T.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{T.T=t,E.p=i}}cu&3&&Uu(),id(e),i=e.pendingLanes,n&261930&&i&42?e===pu?fu++:(fu=0,pu=e):fu=0,ad(0,!1)}}function Hu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,ha(t)))}function Uu(){return zu(),Bu(),Vu(),Wu()}function Wu(){if(au!==5)return!1;var e=ou,t=lu;lu=0;var n=dt(cu),r=T.T,i=E.p;try{E.p=32>n?32:n,T.T=null,n=uu,uu=null;var o=ou,s=cu;if(au=0,su=ou=null,cu=0,V&6)throw Error(a(331));var c=V;if(V|=4,zl(o.current),jl(o,o.current,s,n),V=c,ad(0,!1),Ue&&typeof Ue.onPostCommitFiberRoot==`function`)try{Ue.onPostCommitFiberRoot(He,o)}catch{}return!0}finally{E.p=i,T.T=r,Hu(e,t)}}function Gu(e,t,n){t=wi(n,t),t=tc(e.stateNode,t,2),e=Ya(e,t,2),e!==null&&(at(e,2),id(e))}function X(e,t,n){if(e.tag===3)Gu(e,e,n);else for(;t!==null;){if(t.tag===3){Gu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(Y===null||!Y.has(r))){e=wi(n,e),n=nc(2),r=Ya(t,n,2),r!==null&&(rc(n,r,t,e),at(r,2),id(r));break}}t=t.return}}function Ku(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Ul;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Jl=!0,i.add(n),e=qu.bind(null,e,t,n),t.then(e,e))}function qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Wl===e&&(U&n)===n&&(G===4||G===3&&(U&62914560)===U&&300>Ne()-q?!(V&2)&&Cu(e,0):Zl|=n,$l===U&&($l=0)),id(e)}function Ju(e,t){t===0&&(t=nt()),e=j(e,t),e!==null&&(at(e,t),id(e))}function Yu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ju(e,n)}function Xu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),Ju(e,n)}function Zu(e,t){return ke(e,t)}var Qu=null,$u=null,ed=!1,td=!1,nd=!1,rd=0;function id(e){e!==$u&&e.next===null&&($u===null?Qu=$u=e:$u=$u.next=e),td=!0,ed||(ed=!0,dd())}function ad(e,t){if(!nd&&td){nd=!0;do for(var n=!1,r=Qu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ge(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ud(r,a))}else a=U,a=$e(r,r===Wl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||et(r,a)||(n=!0,ud(r,a));r=r.next}while(n);nd=!1}}function od(){sd()}function sd(){td=ed=!1;var e=0;rd!==0&&Gd()&&(e=rd);for(var t=Ne(),n=null,r=Qu;r!==null;){var i=r.next,a=cd(r,t);a===0?(r.next=null,n===null?Qu=i:n.next=i,i===null&&($u=n)):(n=r,(e!==0||a&3)&&(td=!0)),r=i}au!==0&&au!==5||ad(e,!1),rd!==0&&(rd=0)}function cd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Ge(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=tt(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Wl,n=U,n=$e(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(W===2||W===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Ae(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||et(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Ae(r),dt(n)){case 2:case 8:n=Ie;break;case 32:n=Le;break;case 268435456:n=ze;break;default:n=Le}return r=ld.bind(null,e),n=ke(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Ae(r),e.callbackPriority=2,e.callbackNode=null,2}function ld(e,t){if(au!==0&&au!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Uu()&&e.callbackNode!==n)return null;var r=U;return r=$e(e,e===Wl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(_u(e,r,t),cd(e,Ne()),e.callbackNode!=null&&e.callbackNode===n?ld.bind(null,e):null)}function ud(e,t){if(Uu())return null;_u(e,t,!0)}function dd(){Yd(function(){V&6?ke(Fe,od):sd()})}function fd(){if(rd===0){var e=va;e===0&&(e=Ye,Ye<<=1,!(Ye&261888)&&(Ye=256)),rd=e}return rd}function pd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:cn(``+e)}function md(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function hd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=pd((i[gt]||null).action),o=r.submitter;o&&(t=(t=o[gt]||null)?pd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new An(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(rd!==0){var e=o?md(i,o):new FormData(i);Ds(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?md(i,o):new FormData(i),Ds(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var gd=0;gd<ni.length;gd++){var Z=ni[gd];ri(Z.toLowerCase(),`on`+(Z[0].toUpperCase()+Z.slice(1)))}ri(Jr,`onAnimationEnd`),ri(Yr,`onAnimationIteration`),ri(Xr,`onAnimationStart`),ri(`dblclick`,`onDoubleClick`),ri(`focusin`,`onFocus`),ri(`focusout`,`onBlur`),ri(Zr,`onTransitionRun`),ri(Qr,`onTransitionStart`),ri($r,`onTransitionCancel`),ri(ei,`onTransitionEnd`),Mt(`onMouseEnter`,[`mouseout`,`mouseover`]),Mt(`onMouseLeave`,[`mouseout`,`mouseover`]),Mt(`onPointerEnter`,[`pointerout`,`pointerover`]),Mt(`onPointerLeave`,[`pointerout`,`pointerover`]),jt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),jt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),jt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),jt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),jt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),jt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var _d=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),vd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(_d));function yd(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ii(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ii(e)}i.currentTarget=null,a=c}}}}function Q(e,t){var n=t[vt];n===void 0&&(n=t[vt]=new Set);var r=e+`__bubble`;n.has(r)||(Cd(t,e,2,!1),n.add(r))}function bd(e,t,n){var r=0;t&&(r|=4),Cd(n,e,r,t)}var xd=`_reactListening`+Math.random().toString(36).slice(2);function Sd(e){if(!e[xd]){e[xd]=!0,kt.forEach(function(t){t!==`selectionchange`&&(vd.has(t)||bd(t,!1,e),bd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[xd]||(t[xd]=!0,bd(`selectionchange`,!1,t))}}function Cd(e,t,n,r){switch(mp(t)){case 2:var i=cp;break;case 8:i=lp;break;default:i=up}n=i.bind(null,t,n,e),i=void 0,!yn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function wd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var c=r.stateNode.containerInfo;if(c===i)break;if(o===4)for(o=r.return;o!==null;){var l=o.tag;if((l===3||l===4)&&o.stateNode.containerInfo===i)return;o=o.return}for(;c!==null;){if(o=wt(c),o===null)return;if(l=o.tag,l===5||l===6||l===26||l===27){r=a=o;continue a}c=c.parentNode}}r=r.return}gn(function(){var r=a,i=dn(n),o=[];a:{var c=ti.get(e);if(c!==void 0){var l=An,u=e;switch(e){case`keypress`:if(Tn(n)===0)break a;case`keydown`:case`keyup`:l=Jn;break;case`focusin`:u=`focus`,l=zn;break;case`focusout`:u=`blur`,l=zn;break;case`beforeblur`:case`afterblur`:l=zn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Ln;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Rn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Xn;break;case Jr:case Yr:case Xr:l=Bn;break;case ei:l=Zn;break;case`scroll`:case`scrollend`:l=Mn;break;case`wheel`:l=Qn;break;case`copy`:case`cut`:case`paste`:l=Vn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Yn;break;case`toggle`:case`beforetoggle`:l=$n}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=_n(m,p),g!=null&&d.push(Td(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),o.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==un&&(u=n.relatedTarget||n.fromElement)&&(wt(u)||u[_t]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?wt(u):null,u!==null&&(f=s(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Ln,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Yn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:Et(l),h=u==null?c:Et(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,wt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Dd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Od(o,c,l,d,!1),u!==null&&f!==null&&Od(o,f,u,d,!0)}}a:{if(c=r?Et(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=vr;else if(pr(c))if(yr)v=Or;else{v=Er;var y=Tr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&an(r.elementType)&&(v=vr):v=Dr;if(v&&=v(e,r)){mr(o,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Xt(c,`number`,c.value)}switch(y=r?Et(r):window,e){case`focusin`:(pr(y)||y.contentEditable===`true`)&&(Rr=y,zr=r,Br=null);break;case`focusout`:Br=zr=Rr=null;break;case`mousedown`:Vr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Vr=!1,Hr(o,n,i);break;case`selectionchange`:if(Lr)break;case`keydown`:case`keyup`:Hr(o,n,i)}var b;if(tr)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else lr?sr(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(ir&&n.locale!==`ko`&&(lr||x!==`onCompositionStart`?x===`onCompositionEnd`&&lr&&(b=wn()):(xn=i,Sn=`value`in xn?xn.value:xn.textContent,lr=!0)),y=Ed(r,x),0<y.length&&(x=new Hn(x,e,null,n,i),o.push({event:x,listeners:y}),b?x.data=b:(b=cr(n),b!==null&&(x.data=b)))),(b=rr?ur(e,n):dr(e,n))&&(x=Ed(r,`onBeforeInput`),0<x.length&&(y=new Hn(`onBeforeInput`,`beforeinput`,null,n,i),o.push({event:y,listeners:x}),y.data=b)),hd(o,e,r,n,i)}yd(o,t)})}function Td(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ed(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=_n(e,n),i!=null&&r.unshift(Td(e,i,a)),i=_n(e,t),i!=null&&r.push(Td(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Dd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Od(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=_n(n,a),l!=null&&o.unshift(Td(n,l,c))):i||(l=_n(n,a),l!=null&&o.push(Td(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var kd=/\r\n?/g,Ad=/\u0000|\uFFFD/g;function jd(e){return(typeof e==`string`?e:``+e).replace(kd,`
10`).replace(Ad,``)}function Md(e,t){return t=jd(t),jd(e)===t}function $(e,t,n,r,i,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||en(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&en(e,``+r);break;case`className`:Rt(e,`class`,r);break;case`tabIndex`:Rt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Rt(e,n,r);break;case`style`:rn(e,r,o);break;case`data`:if(t!==`object`){Rt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=cn(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&$(e,t,`name`,i.name,i,null),$(e,t,`formEncType`,i.formEncType,i,null),$(e,t,`formMethod`,i.formMethod,i,null),$(e,t,`formTarget`,i.formTarget,i,null)):($(e,t,`encType`,i.encType,i,null),$(e,t,`method`,i.method,i,null),$(e,t,`target`,i.target,i,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=cn(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=ln);break;case`onScroll`:r!=null&&Q(`scroll`,e);break;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(a(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(a(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=cn(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Q(`beforetoggle`,e),Q(`toggle`,e),Lt(e,`popover`,r);break;case`xlinkActuate`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Lt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=on.get(n)||n,Lt(e,n,r))}}function Nd(e,t,n,r,i,o){switch(n){case`style`:rn(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(a(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(a(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?en(e,r):(typeof r==`number`||typeof r==`bigint`)&&en(e,``+r);break;case`onScroll`:r!=null&&Q(`scroll`,e);break;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=ln);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!At.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(i=n.endsWith(`Capture`),t=n.slice(2,i?n.length-7:void 0),o=e[gt]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,i),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,i);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Lt(e,n,r)}}}function Pd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Q(`error`,e),Q(`load`,e);var r=!1,i=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:i=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(a(137,t));default:$(e,t,o,s,n,null)}}i&&$(e,t,`srcSet`,n.srcSet,n,null),r&&$(e,t,`src`,n.src,n,null);return;case`input`:Q(`invalid`,e);var c=o=s=i=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:i=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(a(137,t));break;default:$(e,t,r,d,n,null)}}Yt(e,o,c,l,u,s,i,!1);return;case`select`:for(i in Q(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(i)&&(c=n[i],c!=null))switch(i){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:$(e,t,i,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Zt(e,!!r,n,!0):Zt(e,!!r,t,!1);return;case`textarea`:for(s in Q(`invalid`,e),o=i=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:i=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(a(91));break;default:$(e,t,s,c,n,null)}$t(e,r,i,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:$(e,t,l,r,n,null)}return;case`dialog`:Q(`beforetoggle`,e),Q(`toggle`,e),Q(`cancel`,e),Q(`close`,e);break;case`iframe`:case`object`:Q(`load`,e);break;case`video`:case`audio`:for(r=0;r<_d.length;r++)Q(_d[r],e);break;case`image`:Q(`error`,e),Q(`load`,e);break;case`details`:Q(`toggle`,e);break;case`embed`:case`source`:case`link`:Q(`error`,e),Q(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(a(137,t));default:$(e,t,u,r,n,null)}return;default:if(an(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Nd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&$(e,t,c,r,n,null))}function Fd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var i=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||$(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:i=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(a(137,t));break;default:m!==f&&$(e,t,p,m,r,f)}}Jt(e,s,c,l,u,d,o,i);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||$(e,t,o,null,r,l)}for(i in r)if(o=r[i],l=n[i],r.hasOwnProperty(i)&&(o!=null||l!=null))switch(i){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&$(e,t,i,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Zt(e,!!n,n?[]:``,!1):Zt(e,!!n,t,!0)):Zt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(i=n[c],n.hasOwnProperty(c)&&i!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:$(e,t,c,null,r,i)}for(s in r)if(i=r[s],o=n[s],r.hasOwnProperty(s)&&(i!=null||o!=null))switch(s){case`value`:p=i;break;case`defaultValue`:m=i;break;case`children`:break;case`dangerouslySetInnerHTML`:if(i!=null)throw Error(a(91));break;default:i!==o&&$(e,t,s,i,r,o)}Qt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:$(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:$(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&$(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(a(137,t));break;default:$(e,t,u,p,r,m)}return;default:if(an(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Nd(e,t,_,void 0,r,p);
vendor: 4,461 bytes, line 10
10for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Nd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&$(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||$(e,t,f,p,r,m)}function Id(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Ld(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Id(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Rd=null,zd=null;function Bd(e){return e.nodeType===9?e:e.ownerDocument}function Vd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Hd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Ud(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Wd=null;function Gd(){var e=window.event;return e&&e.type===`popstate`?e===Wd?!1:(Wd=e,!0):(Wd=null,!1)}var Kd=typeof setTimeout==`function`?setTimeout:void 0,qd=typeof clearTimeout==`function`?clearTimeout:void 0,Jd=typeof Promise==`function`?Promise:void 0,Yd=typeof queueMicrotask==`function`?queueMicrotask:Jd===void 0?Kd:function(e){return Jd.resolve(null).then(e).catch(Xd)};function Xd(e){setTimeout(function(){throw e})}function Zd(e){return e===`head`}function Qd(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Np(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)pf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,pf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[St]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&pf(e.ownerDocument.body);n=i}while(n);Np(t)}function $d(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function ef(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:ef(n),Ct(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function tf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[St])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=cf(e.nextSibling),e===null)break}return null}function nf(e,t,n){if(t===``)return null;for(;
vendor: 20,901 bytes, line 10
10e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=cf(e.nextSibling),e===null))return null;return e}function rf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=cf(e.nextSibling),e===null))return null;return e}function af(e){return e.data===`$?`||e.data===`$~`}function of(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function sf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function cf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var lf=null;function uf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return cf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function df(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function ff(e,t,n){switch(t=Bd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(a(452));return e;case`head`:if(e=t.head,!e)throw Error(a(453));return e;case`body`:if(e=t.body,!e)throw Error(a(454));return e;default:throw Error(a(451))}}function pf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ct(e)}var mf=new Map,hf=new Set;function gf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var _f=E.d;E.d={f:vf,r:yf,D:Sf,C:Cf,L:wf,m:Tf,X:Df,S:Ef,M:Of};function vf(){var e=_f.f(),t=xu();return e||t}function yf(e){var t=Tt(e);t!==null&&t.tag===5&&t.type===`form`?ks(t):_f.r(e)}var bf=typeof document>`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=qt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),Ot(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+qt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+qt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+qt(n.imageSizes)+`"]`)):i+=`[href="`+qt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),Ot(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+qt(r)+`"][href="`+qt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),Ot(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=Dt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);Ot(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=Dt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=p({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),Ot(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=Dt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),Ot(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=ge.current)?gf(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=Dt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=Dt(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=Dt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Af(e){return`href="`+qt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),Ot(t),e.head.appendChild(t))}function Pf(e){return`[src="`+qt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+qt(n.href)+`"]`);if(r)return t.instance=r,Ot(r),r;var i=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Ot(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var o=e.querySelector(jf(i));if(o)return t.state.loading|=4,t.instance=o,Ot(o),o;r=Mf(n),(i=mf.get(i))&&Rf(r,i),o=(e.ownerDocument||e).createElement(`link`),Ot(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(i=e.querySelector(Ff(o)))?(t.instance=i,Ot(i),i):(r=n,(i=mf.get(o))&&(r=p({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),Ot(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Rf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Bf=null;function Vf(e,t,n){if(Bf===null){var r=new Map,i=Bf=new Map;i.set(n,r)}else i=Bf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[St]||a[ht]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Hf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Ot(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),Ot(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Kf===0&&(Kf=62500*Ld());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Jf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var Qf={$$typeof:S,Provider:null,Consumer:null,_currentValue:ue,_currentValue2:ue,_threadCount:0};function $f(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=it(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=it(0),this.hiddenUpdates=it(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ep(e,t,n,r,i,a,o,s,c,l,u,d){return e=new $f(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=M(3,null,null,t),e.current=a,a.stateNode=e,t=ma(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ka(a),e}function tp(e){return e?(e=pi,e):pi}function np(e,t,n,r,i,a){i=tp(i),r.context===null?r.context=i:r.pendingContext=i,r=Ja(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Ya(e,r,t),n!==null&&(gu(n,e,t),Xa(n,e,t))}function rp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ip(e,t){rp(e,t),(e=e.alternate)&&rp(e,t)}function ap(e){if(e.tag===13||e.tag===31){var t=j(e,67108864);t!==null&&gu(t,e,67108864),ip(e,67108864)}}function op(e){if(e.tag===13||e.tag===31){var t=mu();t=ut(t);var n=j(e,t);n!==null&&gu(n,e,t),ip(e,t)}}var sp=!0;function cp(e,t,n,r){var i=T.T;T.T=null;var a=E.p;try{E.p=2,up(e,t,n,r)}finally{E.p=a,T.T=i}}function lp(e,t,n,r){var i=T.T;T.T=null;var a=E.p;try{E.p=8,up(e,t,n,r)}finally{E.p=a,T.T=i}}function up(e,t,n,r){if(sp){var i=dp(r);if(i===null)wd(e,t,r,fp,n),Cp(e,r);else if(Tp(i,e,t,n,r))r.stopPropagation();else if(Cp(e,r),t&4&&-1<Sp.indexOf(e)){for(;i!==null;){var a=Tt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Qe(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Ge(o);s.entanglements[1]|=c,o&=~c}id(a),!(V&6)&&(iu=Ne()+500,ad(0,!1))}}break;case 31:case 13:s=j(a,2),s!==null&&gu(s,a,2),xu(),ip(a,2)}if(a=dp(r),a===null&&wd(e,t,r,fp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else wd(e,t,r,null,n)}}function dp(e){return e=dn(e),pp(e)}var fp=null;function pp(e){if(fp=null,e=wt(e),e!==null){var t=s(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=c(t),e!==null)return e;e=null}else if(n===31){if(e=l(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return fp=e,null}function mp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Pe()){case Fe:return 2;case Ie:return 8;case Le:case Re:return 32;case ze:return 268435456;default:return 32}default:return 32}}var hp=!1,gp=null,_p=null,vp=null,yp=new Map,bp=new Map,xp=[],Sp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Cp(e,t){switch(e){case`focusin`:case`focusout`:gp=null;break;case`dragenter`:case`dragleave`:_p=null;break;case`mouseover`:case`mouseout`:vp=null;break;case`pointerover`:case`pointerout`:yp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:bp.delete(t.pointerId)}}function wp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=Tt(t),t!==null&&ap(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Tp(e,t,n,r,i){switch(t){case`focusin`:return gp=wp(gp,e,t,n,r,i),!0;case`dragenter`:return _p=wp(_p,e,t,n,r,i),!0;case`mouseover`:return vp=wp(vp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return yp.set(a,wp(yp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,bp.set(a,wp(bp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ep(e){var t=wt(e.target);if(t!==null){var n=s(t);if(n!==null){if(t=n.tag,t===13){if(t=c(n),t!==null){e.blockedOn=t,pt(e.priority,function(){op(n)});return}}else if(t===31){if(t=l(n),t!==null){e.blockedOn=t,pt(e.priority,function(){op(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Dp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=dp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);un=r,n.target.dispatchEvent(r),un=null}else return t=Tt(n),t!==null&&ap(t),e.blockedOn=n,!1;t.shift()}return!0}function Op(e,t,n){Dp(e)&&n.delete(t)}function kp(){hp=!1,gp!==null&&Dp(gp)&&(gp=null),_p!==null&&Dp(_p)&&(_p=null),vp!==null&&Dp(vp)&&(vp=null),yp.forEach(Op),bp.forEach(Op)}function Ap(e,n){e.blockedOn===n&&(e.blockedOn=null,hp||(hp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,kp)))}var jp=null;function Mp(e){jp!==e&&(jp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jp===e&&(jp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(pp(r||n)===null)continue;break}var a=Tt(n);a!==null&&(e.splice(t,3),t-=3,Ds(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Np(e){function t(t){return Ap(t,e)}gp!==null&&Ap(gp,e),_p!==null&&Ap(_p,e),vp!==null&&Ap(vp,e),yp.forEach(t),bp.forEach(t);for(var n=0;n<xp.length;n++){var r=xp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<xp.length&&(n=xp[0],n.blockedOn===null);)Ep(n),n.blockedOn===null&&xp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[gt]||null;if(typeof a==`function`)o||Mp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[gt]||null)s=o.formAction;else if(pp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Mp(n)}}}function Pp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Fp(e){this._internalRoot=e}Ip.prototype.render=Fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(a(409));var n=t.current;np(n,mu(),e,t,null,null)},Ip.prototype.unmount=Fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;np(e.current,2,null,e,null,null),xu(),t[_t]=null}};function Ip(e){this._internalRoot=e}Ip.prototype.unstable_scheduleHydration=function(e){if(e){var t=ft();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xp.length&&t!==0&&t<xp[n].priority;n++);xp.splice(n,0,e),n===0&&Ep(e)}};var Lp=n.version;if(Lp!==`19.2.5`)throw Error(a(527,Lp,`19.2.5`));E.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(a(188)):(e=Object.keys(e).join(`,`),Error(a(268,e)));return e=d(t),e=e===null?null:f(e),e=e===null?null:e.stateNode,e};var Rp={bundleType:0,version:`19.2.5`,rendererPackageName:`react-dom`,currentDispatcherRef:T,reconcilerVersion:`19.2.5`};
10if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!zp.isDisabled&&zp.supportsFiber)try{He=zp.inject(Rp),Ue=zp}catch{}}e.hydrateRoot=function(e,t,n){if(!o(e))throw Error(a(299));var r=!1,i=``,s=Xs,c=Zs,l=Qs,u=null;return n!=null&&(!0===n.unstable_strictMode&&(r=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onUncaughtError!==void 0&&(s=n.onUncaughtError),n.onCaughtError!==void 0&&(c=n.onCaughtError),n.onRecoverableError!==void 0&&(l=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=ep(e,1,!0,t,n??null,r,i,u,s,c,l,Pp),t.context=tp(null),n=t.current,r=mu(),r=ut(r),i=Ja(r),i.callback=null,Ya(n,i,r),n=r,t.current.lanes=n,at(t,n),id(t),e[_t]=t.current,Sd(e),new Ip(t)}})),at=e(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=it()}));function ot(e){return({search:t,next:n})=>{if(e===!0)return{};let r={...n(t)};return Array.isArray(e)?e.forEach(e=>{delete r[e]}):Object.entries(e).forEach(([e,t])=>{o(r[e],t)&&delete r[e]}),r}}var st=x({key:`$TSS/serverfn`,test:e=>typeof e!=`function`||!(y in e)?!1:!!e[y],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>b(e)});function ct(e){return e.replaceAll(`\0`,`/`).replaceAll(`�`,`/`)}function lt(e,t){e.id=t.i,e.__beforeLoadContext=t.b,e.loaderData=t.l,e.status=t.s,e.ssr=t.ssr,e.updatedAt=t.u,e.error=t.e,t.g!==void 0&&(e.globalNotFound=t.g)}async function ut(e){window.$_TSR||ee();let t=e.options.serializationAdapters;if(t?.length){let e=new Map;t.forEach(t=>{e.set(t.key,t.fromSerializable)}),window.$_TSR.t=e,window.$_TSR.buffer.forEach(e=>e())}window.$_TSR.initialized=!0,window.$_TSR.router||ee();let n=window.$_TSR.router;n.matches.forEach(e=>{e.i=ct(e.i)}),n.lastMatchId&&=ct(n.lastMatchId);let{manifest:r,dehydratedData:i,lastMatchId:a}=n;e.ssr={manifest:r};let o=document.querySelector(`meta[property="csp-nonce"]`)?.content;e.options.ssr={nonce:o};let s=e.matchRoutes(e.stores.location.get()),c=Promise.all(s.map(t=>e.loadRouteChunk(e.looseRoutesById[t.routeId])));function l(t){let n=e.looseRoutesById[t.routeId].options.pendingMinMs??e.options.defaultPendingMinMs;if(n){let r=v();t._nonReactive.minPendingPromise=r,t._forcePending=!0,setTimeout(()=>{r.resolve(),e.updateMatch(t.id,e=>(e._nonReactive.minPendingPromise=void 0,{...e,_forcePending:void 0}))},n)}}function u(t){let n=e.looseRoutesById[t.routeId];n&&(n.options.ssr=t.ssr)}let d;s.forEach(e=>{let t=n.matches.find(t=>t.i===e.id);if(!t){e._nonReactive.dehydrated=!1,e.ssr=!1,u(e);return}lt(e,t),u(e),e._nonReactive.dehydrated=e.ssr!==!1,(e.ssr===`data-only`||e.ssr===!1)&&d===void 0&&(d=e.index,l(e))}),e.stores.setMatches(s),await e.options.hydrate?.(i);let f=e.stores.matches.get(),p=e.stores.location.get();await Promise.all(f.map(async t=>{try{let n=e.looseRoutesById[t.routeId],r=f[t.index-1]?.context??e.options.context;if(n.options.context){let i={deps:t.loaderDeps,params:t.params,context:r??{},location:p,navigate:t=>e.navigate({...t,_fromLocation:p}),buildLocation:e.buildLocation,cause:t.cause,abortController:t.abortController,preload:!1,matches:s,routeId:n.id};t.__routeContext=n.options.context(i)??void 0}t.context={...r,...t.__routeContext,...t.__beforeLoadContext};let i={ssr:e.options.ssr,matches:f,match:t,params:t.params,loaderData:t.loaderData},a=await n.options.head?.(i),o=await n.options.scripts?.(i);t.meta=a?.meta,t.links=a?.links,t.headScripts=a?.scripts,t.styles=a?.styles,t.scripts=o}catch(e){if(te(e))t.error={isNotFound:!0},console.error(`NotFound error during hydration for routeId: ${t.routeId}`,e);else throw t.error=e,console.error(`Error during hydration for route ${t.routeId}:`,e),e}}));let m=s[s.length-1].id!==a;if(!s.some(e=>e.ssr===!1)&&!m)return s.forEach(e=>{e._nonReactive.dehydrated=void 0}),e.stores.resolvedLocation.set(e.stores.location.get()),c;let h=Promise.resolve().then(()=>e.load()).catch(e=>{console.error(`Error during router hydration:`,e)});if(m){let t=s[1];t||ee(),l(t),t._displayPending=!0,t._nonReactive.displayPendingPromise=h,h.then(()=>{e.batch(()=>
10{e.stores.status.get()===`pending`&&(e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())),e.updateMatch(t.id,e=>({...e,_displayPending:void 0,displayPendingPromise:void 0}))})})}return c}function dt(e,t){for(let n=0,r=t.length;n<r;n++){let r=t[n];e.has(r)||(e.add(r),r.extends&&dt(e,r.extends))}}var ft=e=>({getOptions:async()=>{let t=await e();if(t.serializationAdapters){let e=new Set;dt(e,t.serializationAdapters),t.serializationAdapters=Array.from(e)}return t},createMiddleware:ne}),pt=function(){return pt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},pt.apply(this,arguments)};function mt(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function ht(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function gt(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var _t=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),vt=class extends Error{constructor(e,t=`FunctionsError`,n){super(e),this.name=t,this.context=n}toJSON(){return{name:this.name,message:this.message,context:this.context}}},yt=class extends vt{constructor(e){super(`Failed to send a request to the Edge Function`,`FunctionsFetchError`,e)}},bt=class extends vt{constructor(e){super(`Relay Error invoking the Edge Function`,`FunctionsRelayError`,e)}},xt=class extends vt{constructor(e){super(`Edge Function returned a non-2xx status code`,`FunctionsHttpError`,e)}},St;(function(e){e.Any=`any`,e.ApNortheast1=`ap-northeast-1`,e.ApNortheast2=`ap-northeast-2`,e.ApSouth1=`ap-south-1`,e.ApSoutheast1=`ap-southeast-1`,e.ApSoutheast2=`ap-southeast-2`,e.CaCentral1=`ca-central-1`,e.EuCentral1=`eu-central-1`,e.EuWest1=`eu-west-1`,e.EuWest2=`eu-west-2`,e.EuWest3=`eu-west-3`,e.SaEast1=`sa-east-1`,e.UsEast1=`us-east-1`,e.UsWest1=`us-west-1`,e.UsWest2=`us-west-2`})(St||={});var Ct=class{constructor(e,{headers:t={},customFetch:n,region:r=St.Any}={}){this.url=e,this.headers=t,this.region=r,this.fetch=_t(n)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e){return ht(this,arguments,void 0,function*(e,t={}){let n,r;try{let{headers:i,method:a,body:o,signal:s,timeout:c}=t,l={},{region:u}=t;u||=this.region;let d=new URL(`${this.url}/${e}`);u&&u!==`any`&&(l[`x-region`]=u,d.searchParams.set(`forceFunctionRegion`,u));let f;o&&(i&&!Object.prototype.hasOwnProperty.call(i,`Content-Type`)||!i)?typeof Blob<`u`&&o instanceof Blob||o instanceof ArrayBuffer?(l[`Content-Type`]=`application/octet-stream`,f=o):typeof o==`string`?(l[`Content-Type`]=`text/plain`,f=o):typeof FormData<`u`&&o instanceof FormData?f=o:(l[`Content-Type`]=`application/json`,f=JSON.stringify(o)):f=o&&typeof o!=`string`&&!(typeof Blob<`u`&&o instanceof Blob)&&!(o instanceof ArrayBuffer)&&!(typeof FormData<`u`&&o instanceof FormData)?JSON.stringify(o):o;let p=s;c&&(r=new AbortController,n=setTimeout(()=>r.abort(),c),s?(p=r.signal,s.addEventListener(`abort`,()=>r.abort())):p=r.signal);let m=yield this.fetch(d.toString(),{method:a||`POST`,headers:Object.assign(Object.assign(Object.assign({},l),this.headers),i),body:f,signal:p}).catch(e=>{throw new yt(e)}),h=m.headers.get(`x-relay-error`);if(h&&h===`true`)throw new bt(m);if(!m.ok)throw new xt(m);let g=(m.headers.get(`Content-Type`)??`text/plain`).split(`;`)[0].trim(),_;return _=g===`application/json`?yield m.json():g===`application/octet-stream`||g===`application/pdf`?yield m.blob():g===`text/event-stream`?m:g===`multipart/form-data`?yield m.formData():yield m.text(),{data:_,error:null,response:m}}catch(e){return{data:null,error:e,response:e instanceof xt||e instanceof bt?e.context:void 0}}finally{n&&clearTimeout(n)}})}},wt=3,Tt=e=>Math.min(1e3*2**e,3e4),Et=[520,503],Dt=[`GET`,`HEAD`,`OPTIONS`],Ot=class extends 
10Error{constructor(e){super(e.message),this.name=`PostgrestError`,this.details=e.details,this.hint=e.hint,this.code=e.code}toJSON(){return{name:this.name,message:this.message,details:this.details,hint:this.hint,code:this.code}}};function kt(e,t){return new Promise(n=>{if(t?.aborted){n();return}let r=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e);function i(){clearTimeout(r),n()}t?.addEventListener(`abort`,i)})}function At(e,t,n,r){return!(!r||n>=wt||!Dt.includes(e)||!Et.includes(t))}var jt=class{constructor(e){this.shouldThrowOnError=!1,this.retryEnabled=!0,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=e.shouldThrowOnError??!1,this.signal=e.signal,this.isMaybeSingle=e.isMaybeSingle??!1,this.shouldStripNulls=e.shouldStripNulls??!1,this.urlLengthLimit=e.urlLengthLimit??8e3,this.retryEnabled=e.retry??!0,e.fetch?this.fetch=e.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}stripNulls(){if(this.headers.get(`Accept`)===`text/csv`)throw Error(`stripNulls() cannot be used with csv()`);return this.shouldStripNulls=!0,this}setHeader(e,t){return this.headers=new Headers(this.headers),this.headers.set(e,t),this}retry(e){return this.retryEnabled=e,this}then(e,t){var n=this;if(this.schema===void 0||([`GET`,`HEAD`].includes(this.method)?this.headers.set(`Accept-Profile`,this.schema):this.headers.set(`Content-Profile`,this.schema)),this.method!==`GET`&&this.method!==`HEAD`&&this.headers.set(`Content-Type`,`application/json`),this.shouldStripNulls){let e=this.headers.get(`Accept`);e===`application/vnd.pgrst.object+json`?this.headers.set(`Accept`,`application/vnd.pgrst.object+json;nulls=stripped`):(!e||e===`application/json`)&&this.headers.set(`Accept`,`application/vnd.pgrst.array+json;nulls=stripped`)}let r=this.fetch,i=(async()=>{let e=0;for(;;){let t={};n.headers.forEach((e,n)=>{t[n]=e}),e>0&&(t[`X-Retry-Count`]=String(e));let i;try{i=await r(n.url.toString(),{method:n.method,headers:t,body:JSON.stringify(n.body,(e,t)=>typeof t==`bigint`?t.toString():t),signal:n.signal})}catch(t){if(t?.name===`AbortError`||t?.code===`ABORT_ERR`||!Dt.includes(n.method))throw t;if(n.retryEnabled&&e<wt){let t=Tt(e);e++,await kt(t,n.signal);continue}throw t}if(At(n.method,i.status,e,n.retryEnabled)){let t=i.headers?.get(`Retry-After`)??null,r=t===null?Tt(e):Math.max(0,parseInt(t,10)||0)*1e3;await i.text(),e++,await kt(r,n.signal);continue}return await n.processResponse(i)}})();return this.shouldThrowOnError||(i=i.catch(e=>{let t=``,n=``,r=``,i=e?.cause;if(i){let n=i?.message??``,r=i?.code??``;t=`${e?.name??`FetchError`}: ${e?.message}`,t+=`\n\nCaused by: ${i?.name??`Error`}: ${n}`,r&&(t+=` (${r})`),i?.stack&&(t+=`\n${i.stack}`)}else t=e?.stack??``;let a=this.url.toString().length;return e?.name===`AbortError`||e?.code===`ABORT_ERR`?(r=``,n=`Request was aborted (timeout or manual cancellation)`,a>this.urlLengthLimit&&(n+=`. Note: Your request URL is ${a} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):(i?.name===`HeadersOverflowError`||i?.code===`UND_ERR_HEADERS_OVERFLOW`)&&(r=``,n=`HTTP headers exceeded server limits (typically 16KB)`,a>this.urlLengthLimit&&(n+=`. Your request URL is ${a} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{success:!1,error:{message:`${e?.name??`FetchError`}: ${e?.message}`,details:t,hint:n,code:r},data:null,count:null,status:0,statusText:``}})),i.then(e,t)}async processResponse(e){var t=this;let n=null,r=null,i=null,a=e.status,o=e.statusText;if(e.ok){if(t.method!==`HEAD`){let i=await e.text();if(i!==``)if(t.headers.get(`Accept`)===`text/csv`)r=i;else if(t.headers.get(`Accept`)&&t.headers.get(`Accept`)?.includes(`application/vnd.pgrst.plan+text`))r=i;else try{r=JSON.parse(i)}catch{if(n={message:i},r=null,t.shouldThrowOnError)throw new Ot({message:i,details:``,hint:``,code:``})}}let s=t.headers.get(`Prefer`)?.match(/count=(exact|planned|estimated)/),c=e.headers.get(`content-range`)?.split(`/`);s&&c&&c.length>1&&(i=parseInt(c[1])),t.isMaybeSingle&&Array.isArray(r)&&(r.length>1?(n={code:`PGRST116`,details:`Results contain ${r.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:`JSON object requested, multiple (or no) rows returned`},r=null,i=null,a=406,o=`Not Acceptable`):r=r.length===1?r[0]:null)}else{let i=await e.text();try{n=JSON.parse(i),Array.isArray(n)&&e.status===404&&(r=[],n=null,a=200,o=`OK`)}
vendor: 10,009 bytes, line 10
10catch{e.status===404&&i===``?(a=204,o=`No Content`):n={message:i}}if(n&&t.shouldThrowOnError)throw new Ot(n)}return{success:n===null,error:n,data:r,count:i,status:a,statusText:o}}returns(){return this}overrideTypes(){return this}},Mt=class extends jt{throwOnError(){return super.throwOnError()}select(e){let t=!1,n=(e??`*`).split(``).map(e=>/\s/.test(e)&&!t?``:(e===`"`&&(t=!t),e)).join(``);return this.url.searchParams.set(`select`,n),this.headers.append(`Prefer`,`return=representation`),this}order(e,{ascending:t=!0,nullsFirst:n,foreignTable:r,referencedTable:i=r}={}){let a=i?`${i}.order`:`order`,o=this.url.searchParams.get(a);return this.url.searchParams.set(a,`${o?`${o},`:``}${e}.${t?`asc`:`desc`}${n===void 0?``:n?`.nullsfirst`:`.nullslast`}`),this}limit(e,{foreignTable:t,referencedTable:n=t}={}){let r=n===void 0?`limit`:`${n}.limit`;return this.url.searchParams.set(r,`${e}`),this}range(e,t,{foreignTable:n,referencedTable:r=n}={}){let i=r===void 0?`offset`:`${r}.offset`,a=r===void 0?`limit`:`${r}.limit`;return this.url.searchParams.set(i,`${e}`),this.url.searchParams.set(a,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set(`Accept`,`application/vnd.pgrst.object+json`),this}maybeSingle(){return this.isMaybeSingle=!0,this}csv(){return this.headers.set(`Accept`,`text/csv`),this}geojson(){return this.headers.set(`Accept`,`application/geo+json`),this}explain({analyze:e=!1,verbose:t=!1,settings:n=!1,buffers:r=!1,wal:i=!1,format:a=`text`}={}){let o=[e?`analyze`:null,t?`verbose`:null,n?`settings`:null,r?`buffers`:null,i?`wal`:null].filter(Boolean).join(`|`),s=this.headers.get(`Accept`)??`application/json`;return this.headers.set(`Accept`,`application/vnd.pgrst.plan+${a}; for="${s}"; options=${o};`),this}rollback(){return this.headers.append(`Prefer`,`tx=rollback`),this}returns(){return this}maxAffected(e){return this.headers.append(`Prefer`,`handling=strict`),this.headers.append(`Prefer`,`max-affected=${e}`),this}},Nt=RegExp(`[,()]`),Pt=class extends Mt{throwOnError(){return super.throwOnError()}eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(`,`)}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(`,`)}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(`,`)}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(`,`)}}`),this}regexMatch(e,t){return this.url.searchParams.append(e,`match.${t}`),this}regexIMatch(e,t){return this.url.searchParams.append(e,`imatch.${t}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}isDistinct(e,t){return this.url.searchParams.append(e,`isdistinct.${t}`),this}in(e,t){let n=Array.from(new Set(t)).map(e=>typeof e==`string`&&Nt.test(e)?`"${e}"`:`${e}`).join(`,`);return this.url.searchParams.append(e,`in.(${n})`),this}notIn(e,t){let n=Array.from(new Set(t)).map(e=>typeof e==`string`&&Nt.test(e)?`"${e}"`:`${e}`).join(`,`);return this.url.searchParams.append(e,`not.in.(${n})`),this}contains(e,t){return typeof t==`string`?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(`,`)}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t==`string`?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(`,`)}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t==`string`?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(`,`)}}`),this}textSearch(e,t,{config:n,type:r}={}){let i=``;r===`plain`?i=`pl`:r===`phrase`?i=`ph`:r===`websearch`&&(i=`w`);let a=n===void 0?``:`(${n})`;return this.url.searchParams.append(e,`${i}fts${a}.${t}`),this}match(e){return Object.entries(e).filter(([e,t])=>t!==void 0).forEach(([e,t])=>{this.url.searchParams.append(e,`eq.${t}`)}),this}not(e,t,n){return this.url.searchParams.append(e,`not.${t}.${n}`),this}or(e,{foreignTable:t,referencedTable:n=t}={}){let r=n?`${n}.or`:`or`;return this.url.searchParams.append(r,`(${e})`),this}filter(e,t,n){return this.url.searchParams.append(e,`${t}.${n}`),this}},Ft=class{constructor(e,{headers:t={},schema:n,fetch:r,urlLengthLimit:i=8e3,retry:a}){this.url=e,this.headers=new Headers(t),this.schema=n,this.fetch=r,this.urlLengthLimit=i,this.retry=a}cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(e,t){let{head:n=!1,count:r}=t??{},i=n?`HEAD`:`GET`,a=!1,o=(e??`*`).split(``).map(e=>/\s/.test(e)&&!a?``:(e===`"`&&(a=!a),e)).join(``),{url:s,headers:c}=this.cloneRequestState();return s.searchParams.set(`select`,o),r&&c.append(`Prefer`,`count=${r}`),new Pt({method:i,url:s,headers:c,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}insert(e,{count:t,defaultToNull:n=!0}={}){let{url:r,headers:i}=this.cloneRequestState();if(t&&i.append(`Prefer`,`count=${t}`),n||i.append(`Prefer`,`missing=default`),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);r.searchParams.set(`columns`,e.join(`,`))}}return new Pt({method:`POST`,url:r,headers:i,schema:this.schema,body:e,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}upsert(e,{onConflict:t,ignoreDuplicates:n=!1,count:r,defaultToNull:i=!0}={}){let{url:a,headers:o}=this.cloneRequestState();if(o.append(`Prefer`,`resolution=${n?`ignore`:`merge`}-duplicates`),t!==void 0&&a.searchParams.set(`on_conflict`,t),r&&o.append(`Prefer`,`count=${r}`),i||o.append(`Prefer`,`missing=default`),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);a.searchParams.set(`columns`,e.join(`,`))}}return new Pt({method:`POST`,url:a,headers:o,schema:this.schema,body:e,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}update(e,{count:t}={}){let{url:n,headers:r}=this.cloneRequestState();return t&&r.append(`Prefer`,`count=${t}`),new Pt({method:`PATCH`,url:n,headers:r,schema:this.schema,body:e,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}delete({count:e}={}){let{url:t,headers:n}=this.cloneRequestState();return e&&n.append(`Prefer`,`count=${e}`),new Pt({method:`DELETE`,url:t,headers:n,schema:this.schema,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};function It(e){"@babel/helpers - typeof";return It=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},It(e)}function Lt(e,t){if(It(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(It(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Rt(e){var t=Lt(e,`string`);return It(t)==`symbol`?t:t+``}function zt(e,t,n){return(t=Rt(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Vt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Bt(Object(n),!0).forEach(function(t){zt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Bt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Ht=class e{constructor(e,{headers:t={},schema:n,fetch:r,timeout:i,urlLengthLimit:a=8e3,retry:o}={}){this.url=e,this.headers=new Headers(t),this.schemaName=n,this.urlLengthLimit=a;let s=r??globalThis.fetch;i!==void 0&&i>0?this.fetch=(e,t)=>{let n=new AbortController,r=setTimeout(()=>n.abort(),i),a=t?.signal;if(a){if(a.aborted)return clearTimeout(r),s(e,t);let i=()=>{clearTimeout(r),n.abort()};return a.addEventListener(`abort`,i,{once:!0}),s(e,Vt(Vt({},t),{},{signal:n.signal})).finally(()=>{clearTimeout(r),a.removeEventListener(`abort`,i)})}return s(e,Vt(Vt({},t),{},{signal:n.signal})).finally(()=>clearTimeout(r))}:this.fetch=s,this.retry=o}from(e){if(!e||typeof e!=`string`||e.trim()===``)throw Error(`Invalid relation name: relation must be a non-empty string.`);return new Ft(new URL(`${this.url}/${e}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}schema(t){return new e(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}rpc(e,t={},{head:n=!1,get:r=!1,count:i}={}){let a,o=new URL(`${this.url}/rpc/${e}`),s,c=e=>typeof e==`object`&&!!e&&(!Array.isArray(e)||e.some(c)),l=n&&Object.values(t).some(c);l?(a=`POST`,s=t):n||r?(a=n?`HEAD`:`GET`,Object.entries(t).filter(([e,t])=>t!==void 0).map(([e,t])=>[e,Array.isArray(t)?`{${t.join(`,`)}}`:`${t}
10`]).forEach(([e,t])=>{o.searchParams.append(e,t)})):(a=`POST`,s=t);let u=new Headers(this.headers);return l?u.set(`Prefer`,i?`count=${i},return=minimal`:`return=minimal`):i&&u.set(`Prefer`,`count=${i}`),new Pt({method:a,url:o,headers:u,schema:this.schemaName,body:s,fetch:this.fetch??fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}},Ut=class{constructor(){}static detectEnvironment(){if(typeof WebSocket<`u`)return{type:`native`,wsConstructor:WebSocket};let e=globalThis;if(typeof globalThis<`u`&&e.WebSocket!==void 0)return{type:`native`,wsConstructor:e.WebSocket};let t=typeof global<`u`?global:void 0;if(t&&t.WebSocket!==void 0)return{type:`native`,wsConstructor:t.WebSocket};if(typeof globalThis<`u`&&e.WebSocketPair!==void 0&&globalThis.WebSocket===void 0)return{type:`cloudflare`,error:`Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.`,workaround:`Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime.`};if(typeof globalThis<`u`&&e.EdgeRuntime||typeof navigator<`u`&&navigator.userAgent?.includes(`Vercel-Edge`))return{type:`unsupported`,error:`Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.`,workaround:`Use serverless functions or a different deployment target for WebSocket functionality.`};let n=globalThis.process;if(n){let e=n.versions;if(e&&e.node){let t=e.node,n=parseInt(t.replace(/^v/,``).split(`.`)[0]);return n>=22?globalThis.WebSocket===void 0?{type:`unsupported`,error:`Node.js ${n} detected but native WebSocket not found.`,workaround:`Provide a WebSocket implementation via the transport option.`}:{type:`native`,wsConstructor:globalThis.WebSocket}:{type:`unsupported`,error:`Node.js ${n} detected without native WebSocket support.`,workaround:`For Node.js < 22, install "ws" package and provide it via the transport option:
11import ws from "ws"
12new RealtimeClient(url, { transport: ws })`}}}return{type:`unsupported`,error:`Unknown JavaScript runtime without WebSocket support.`,workaround:`Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation.`}}static getWebSocketConstructor(){let e=this.detectEnvironment();if(e.wsConstructor)return e.wsConstructor;let t=e.error||`WebSocket not supported in this environment.`;throw e.workaround&&(t+=`\n\nSuggested solution: ${e.workaround}`),Error(t)}static isWebSocketSupported(){try{let e=this.detectEnvironment();return e.type===`native`||e.type===`ws`}catch{return!1}}},Wt=`realtime-js/2.108.2`,Gt=`1.0.0`,Kt=`2.0.0`,qt=Kt,Jt=1e4,Yt={closed:`closed`,errored:`errored`,joined:`joined`,joining:`joining`,leaving:`leaving`},Xt={close:`phx_close`,error:`phx_error`,join:`phx_join`,reply:`phx_reply`,leave:`phx_leave`,access_token:`access_token`},Zt={connecting:`connecting`,open:`open`,closing:`closing`,closed:`closed`},Qt=class{constructor(e){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT=`broadcast`,this.allowedMetadataKeys=[],this.allowedMetadataKeys=e??[]}encode(e,t){if(e.event===this.BROADCAST_EVENT&&!(e.payload instanceof ArrayBuffer)&&typeof e.payload.event==`string`)return t(this._binaryEncodeUserBroadcastPush(e));let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}_binaryEncodeUserBroadcastPush(e){return this._isArrayBuffer(e.payload?.payload)?this._encodeBinaryUserBroadcastPush(e):this._encodeJsonUserBroadcastPush(e)}_encodeBinaryUserBroadcastPush(e){let t=e.payload?.payload??new ArrayBuffer(0);return this._encodeUserBroadcastPush(e,this.BINARY_ENCODING,t)}_encodeJsonUserBroadcastPush(e){let t=e.payload?.payload??{},n=new TextEncoder().encode(JSON.stringify(t)).buffer;return this._encodeUserBroadcastPush(e,this.JSON_ENCODING,n)}_encodeUserBroadcastPush(e,t,n){let r=e.topic,i=e.ref??``,a=e.join_ref??``,o=e.payload.event,s=this.allowedMetadataKeys?this._pick(e.payload,this.allowedMetadataKeys):{},c=Object.keys(s).length===0?``:JSON.stringify(s);if(a.length>255)throw Error(`joinRef length ${a.length} exceeds maximum of 255`);if(i.length>255)throw Error(`ref length ${i.length} exceeds maximum of 255`);if(r.length>255)throw Error(`topic length ${r.length} exceeds maximum of 255`);if(o.length>255)throw Error(`userEvent length ${o.length} exceeds maximum of 255`);if(c.length>255)throw Error(`metadata length ${c.length} exceeds maximum of 255`);let l=this.USER_BROADCAST_PUSH_META_LENGTH+a.length+i.length+r.length+o.length+c.length,u=new ArrayBuffer(this.HEADER_LENGTH+l),d=new DataView(u),f=0;d.setUint8(f++,this.KINDS.userBroadcastPush),d.setUint8(f++,a.length),d.setUint8(f++,i.length),d.setUint8(f++,r.length),d.setUint8(f++,o.length),d.setUint8(f++,c.length),d.setUint8(f++,t),Array.from(a,e=>d.setUint8(f++,e.charCodeAt(0))),Array.from(i,e=>d.setUint8(f++,e.charCodeAt(0))),Array.from(r,e=>d.setUint8(f++,e.charCodeAt(0))),Array.from(o,e=>d.setUint8(f++,e.charCodeAt(0))),Array.from(c,e=>d.setUint8(f++,e.charCodeAt(0)));var p=new Uint8Array(u.byteLength+n.byteLength);return p.set(new Uint8Array(u),0),p.set(new Uint8Array(n),u.byteLength),p.buffer}decode(e,t){if(this._isArrayBuffer(e))return t(this._binaryDecode(e));if(typeof e==`string`){let[n,r,i,a,o]=JSON.parse(e);return t({join_ref:n,ref:r,topic:i,event:a,payload:o})}return t({})}_binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),r=new TextDecoder;switch(n){case this.KINDS.userBroadcast:return this._decodeUserBroadcast(e,t,r)}}_decodeUserBroadcast(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=t.getUint8(4),s=this.HEADER_LENGTH+4,c=n.decode(e.slice(s,s+r));s+=r;let l=n.decode(e.slice(s,s+i));s+=i;let u=n.decode(e.slice(s,s+a));s+=a;let d=e.slice(s,e.byteLength),f=o===this.JSON_ENCODING?JSON.parse(n.decode(d)):d,p={type:this.BROADCAST_EVENT,event:l,payload:f};return a>0&&(p.meta=JSON.parse(u)),{join_ref:null,ref:null,topic:c,event:this.BROADCAST_EVENT,payload:p}}_isArrayBuffer(e){return e instanceof ArrayBuffer||e?.constructor?.name===`ArrayBuffer`}_pick(e,t){return!e||typeof e!=`object`?{}:Object.fromEntries(Object.entries(e).filter(([e])=>t.includes(e)))}},$t;
vendor: 11,273 bytes, line 12
12(function(e){e.abstime=`abstime`,e.bool=`bool`,e.date=`date`,e.daterange=`daterange`,e.float4=`float4`,e.float8=`float8`,e.int2=`int2`,e.int4=`int4`,e.int4range=`int4range`,e.int8=`int8`,e.int8range=`int8range`,e.json=`json`,e.jsonb=`jsonb`,e.money=`money`,e.numeric=`numeric`,e.oid=`oid`,e.reltime=`reltime`,e.text=`text`,e.time=`time`,e.timestamp=`timestamp`,e.timestamptz=`timestamptz`,e.timetz=`timetz`,e.tsrange=`tsrange`,e.tstzrange=`tstzrange`})($t||={});var en=(e,t,n={})=>{let r=n.skipTypes??[];return t?Object.keys(t).reduce((n,i)=>(n[i]=tn(i,e,t,r),n),{}):{}},tn=(e,t,n,r)=>{let i=t.find(t=>t.name===e)?.type,a=n[e];return i&&!r.includes(i)?nn(i,a):rn(a)},nn=(e,t)=>{if(e.charAt(0)===`_`)return cn(t,e.slice(1,e.length));switch(e){case $t.bool:return an(t);case $t.float4:case $t.float8:case $t.int2:case $t.int4:case $t.int8:case $t.numeric:case $t.oid:return on(t);case $t.json:case $t.jsonb:return sn(t);case $t.timestamp:return ln(t);case $t.abstime:case $t.date:case $t.daterange:case $t.int4range:case $t.int8range:case $t.money:case $t.reltime:case $t.text:case $t.time:case $t.timestamptz:case $t.timetz:case $t.tsrange:case $t.tstzrange:return rn(t);default:return rn(t)}},rn=e=>e,an=e=>{switch(e){case`t`:return!0;case`f`:return!1;default:return e}},on=e=>{if(typeof e==`string`){let t=parseFloat(e);if(!Number.isNaN(t))return t}return e},sn=e=>{if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e},cn=(e,t)=>{if(typeof e!=`string`)return e;let n=e.length-1,r=e[n];if(e[0]===`{`&&r===`}`){let r,i=e.slice(1,n);try{r=JSON.parse(`[`+i+`]`)}catch{r=i?i.split(`,`):[]}return r.map(e=>nn(t,e))}return e},ln=e=>typeof e==`string`?e.replace(` `,`T`):e,un=e=>{let t=new URL(e);return t.protocol=t.protocol.replace(/^ws/i,`http`),t.pathname=t.pathname.replace(/\/+$/,``).replace(/\/socket\/websocket$/i,``).replace(/\/socket$/i,``).replace(/\/websocket$/i,``),t.pathname===``||t.pathname===`/`?t.pathname=`/api/broadcast`:t.pathname+=`/api/broadcast`,t.href},dn=e=>typeof e==`function`?e:function(){return e},fn=typeof self<`u`?self:null,pn=typeof window<`u`?window:null,mn=fn||pn||globalThis,hn=`2.0.0`,gn=1e4,_n=1e3,vn={connecting:0,open:1,closing:2,closed:3},yn={closed:`closed`,errored:`errored`,joined:`joined`,joining:`joining`,leaving:`leaving`},bn={close:`phx_close`,error:`phx_error`,join:`phx_join`,reply:`phx_reply`,leave:`phx_leave`},xn={longpoll:`longpoll`,websocket:`websocket`},Sn={complete:4},Cn=`base64url.bearer.phx.`,wn=class{constructor(e,t,n,r){this.channel=e,this.event=t,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=r,this.timeoutTimer=null,this.recHooks=[],this.sent=!1,this.ref=void 0}resend(e){this.timeout=e,this.reset(),this.send()}send(){this.hasReceived(`timeout`)||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()}))}receive(e,t){return this.hasReceived(e)&&t(this.receivedResp.response),this.recHooks.push({status:e,callback:t}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}destroy(){this.cancelRefEvent(),this.cancelTimeout()}matchReceive({status:e,response:t,_ref:n}){this.recHooks.filter(t=>t.status===e).forEach(e=>e.callback(t))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,e=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=e,this.matchReceive(e)}),this.timeoutTimer=setTimeout(()=>{this.trigger(`timeout`,{})},this.timeout)}hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}trigger(e,t){this.channel.trigger(this.refEvent,{status:e,response:t})}},Tn=class{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries+=1,this.callback()},this.timerCalc(this.tries+1))}},En=class{constructor(e,t,n){this.state=yn.closed,this.topic=e,this.params=dn(t||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new wn(this,bn.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new Tn(()=>{this.socket.isConnected()&&this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()})),this.joinPush.receive(`ok`,()=>{this.state=yn.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(e=>e.send()),this.pushBuffer=[]}),this.joinPush.receive(`error`,e=>{this.state=yn.errored,this.socket.hasLogger()&&this.socket.log(`channel`,`error ${this.topic}`,e),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log(`channel`,`close ${this.topic}`),this.state=yn.closed,this.socket.remove(this)}),this.onError(e=>{this.socket.hasLogger()&&this.socket.log(`channel`,`error ${this.topic}`,e),this.isJoining()&&this.joinPush.reset(),this.state=yn.errored,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive(`timeout`,()=>{this.socket.hasLogger()&&this.socket.log(`channel`,`timeout ${this.topic}`,this.joinPush.timeout),new wn(this,bn.leave,dn({}),this.timeout).send(),this.state=yn.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on(bn.reply,(e,t)=>{this.trigger(this.replyEventName(t),e)})}join(e=this.timeout){if(this.joinedOnce)throw Error(`tried to join multiple times. 'join' can only be called a single time per channel instance`);return this.timeout=e,this.joinedOnce=!0,this.rejoin(),this.joinPush}teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=yn.closed,this.bindings=[]}onClose(e){this.on(bn.close,e)}onError(e){return this.on(bn.error,t=>e(t))}on(e,t){let n=this.bindingRef++;return this.bindings.push({event:e,ref:n,callback:t}),n}off(e,t){this.bindings=this.bindings.filter(n=>!(n.event===e&&(t===void 0||t===n.ref)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,n=this.timeout){if(t||={},!this.joinedOnce)throw Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let r=new wn(this,e,function(){return t},n);return this.canPush()?r.send():(r.startTimeout(),this.pushBuffer.push(r)),r}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=yn.leaving;let t=()=>{this.socket.hasLogger()&&this.socket.log(`channel`,`leave ${this.topic}`),this.trigger(bn.close,`leave`)},n=new wn(this,bn.leave,dn({}),e);return n.receive(`ok`,()=>t()).receive(`timeout`,()=>t()),n.send(),this.canPush()||n.trigger(`ok`,{}),n}onMessage(e,t,n){return t}filterBindings(e,t,n){return!0}isMember(e,t,n,r){return this.topic===e?r&&r!==this.joinRef()?(this.socket.hasLogger()&&this.socket.log(`channel`,`dropping outdated message`,{topic:e,event:t,payload:n,joinRef:r}),!1):!0:!1}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=yn.joining,this.joinPush.resend(e))}trigger(e,t,n,r){let i=this.onMessage(e,t,n,r);if(t&&!i)throw Error(`channel onMessage callbacks must return the payload, modified or unmodified`);let a=this.bindings.filter(r=>r.event===e&&this.filterBindings(r,t,n));for(let e=0;e<a.length;e++)a[e].callback(i,n,r||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===yn.closed}isErrored(){return this.state===yn.errored}isJoined(){return this.state===yn.joined}isJoining(){return this.state===yn.joining}isLeaving(){return this.state===yn.leaving}},Dn=class{static request(e,t,n,r,i,a,o){if(mn.XDomainRequest){let n=new mn.XDomainRequest;return this.xdomainRequest(n,e,t,r,i,a,o)}else if(mn.XMLHttpRequest){let s=new mn.XMLHttpRequest;return this.xhrRequest(s,e,t,n,r,i,a,o)}else if(mn.fetch&&mn.AbortController)return this.fetchRequest(e,t,n,r,i,a,o);else throw Error(`No suitable XMLHttpRequest implementation found`)}static fetchRequest(e,t,n,r,i,a,o){let s={method:e,headers:n,body:r},c=null;return i&&(c=new AbortController,setTimeout(()=>c.abort(),i),s.signal=c.signal),mn.fetch(t,s).then(e=>e.text()).then(e=>this.parseJSON(e)).then(e=>o&&o(e)).catch(e=>{e.name===`AbortError`&&a?a():o&&o(null)}),c}static xdomainRequest(e,t,n,r,i,a,o){return e.timeout=i,e.open(t,n),e.onload=()=>{let t=this.parseJSON(e.responseText);o&&o(t)},a&&(e.ontimeout=a),e.onprogress=()=>{},e.send(r),e}static xhrRequest(e,t,n,r,i,a,o,s){e.open(t,n,!0),e.timeout=a;for(let[t,n]of Object.entries(r))e.setRequestHeader(t,n);return e.onerror=()=>s&&s(null),e.onreadystatechange=()=>{e.readyState===Sn.complete&&s&&s(this.parseJSON(e.responseText))},o&&(e.ontimeout=o),e.send(i),e}static parseJSON(e){if(!e||e===``)return null;try{return JSON.parse(e)}catch{return console&&console.log(`failed to parse JSON response`,e),null}}static serialize(e,t){let n=[];for(var r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let i=t?`${t}[${r}]`:r,a=e[r];typeof a==`object`?n.push(this.serialize(a,i)):n.push(encodeURIComponent(i)+`=`+encodeURIComponent(a))}return n.join(`&`)}static appendParams(e,t){return Object.keys(t).length===0?e:`${e}${e.match(/\?/)?`&`:`?`}${this.serialize(t)}`}},On=e=>{let t=``,n=new Uint8Array(e),r=n.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(n[e]);return btoa(t)},kn=class{constructor(e,t){t&&t.length===2&&t[1].startsWith(Cn)&&(this.authToken=atob(t[1].slice(Cn.length))),this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.reqs=new Set,this.awaitingBatchAck=!1,this.currentBatch=null,this.currentBatchTimer=null,this.batchBuffer=[],this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(e),this.readyState=vn.connecting,setTimeout(()=>this.poll(),0)}normalizeEndpoint(e){return e.replace(`ws://`,`http://`).replace(`wss://`,`https://`).replace(RegExp(`(.*)/`+xn.websocket),`$1/`+xn.longpoll)}endpointURL(){return Dn.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(e,t,n){this.close(e,t,n),this.readyState=vn.connecting}ontimeout(){this.onerror(`timeout`),this.closeAndRetry(1005,`timeout`,!1)}isActive(){return this.readyState===vn.open||this.readyState===vn.connecting}poll(){let e={Accept:`application/json`};this.authToken&&(e[`X-Phoenix-AuthToken`]=this.authToken),this.ajax(`GET`,e,null,()=>this.ontimeout(),e=>{if(e){var{status:t,token:n,messages:r}=e;if(t===410&&this.token!==null){this.onerror(410),this.closeAndRetry(3410,`session_gone`,!1);return}this.token=n}else t=0;switch(t){case 200:r.forEach(e=>{setTimeout(()=>this.onmessage({data:e}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=vn.open,this.onopen({}),this.poll();break;
12case 403:this.onerror(403),this.close(1008,`forbidden`,!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,`internal server error`,500);break;default:throw Error(`unhandled poll status ${t}`)}})}send(e){typeof e!=`string`&&(e=On(e)),this.currentBatch?this.currentBatch.push(e):this.awaitingBatchAck?this.batchBuffer.push(e):(this.currentBatch=[e],this.currentBatchTimer=setTimeout(()=>{this.batchSend(this.currentBatch),this.currentBatch=null},0))}batchSend(e){this.awaitingBatchAck=!0,this.ajax(`POST`,{"Content-Type":`application/x-ndjson`},e.join(`
13`),()=>this.onerror(`timeout`),e=>{this.awaitingBatchAck=!1,!e||e.status!==200?(this.onerror(e&&e.status),this.closeAndRetry(1011,`internal server error`,!1)):this.batchBuffer.length>0&&(this.batchSend(this.batchBuffer),this.batchBuffer=[])})}close(e,t,n){for(let e of this.reqs)e.abort();this.readyState=vn.closed;let r=Object.assign({code:1e3,reason:void 0,wasClean:!0},{code:e,reason:t,wasClean:n});this.batchBuffer=[],clearTimeout(this.currentBatchTimer),this.currentBatchTimer=null,typeof CloseEvent<`u`?this.onclose(new CloseEvent(`close`,r)):this.onclose(r)}ajax(e,t,n,r,i){let a;a=Dn.request(e,this.endpointURL(),t,n,this.timeout,()=>{this.reqs.delete(a),r()},e=>{this.reqs.delete(a),this.isActive()&&i(e)}),this.reqs.add(a)}},An=class e{constructor(t,n={}){let r=n.events||{state:`presence_state`,diff:`presence_diff`};this.state={},this.pendingDiffs=[],this.channel=t,this.joinRef=null,this.caller={onJoin:function(){},onLeave:function(){},onSync:function(){}},this.channel.on(r.state,t=>{let{onJoin:n,onLeave:r,onSync:i}=this.caller;this.joinRef=this.channel.joinRef(),this.state=e.syncState(this.state,t,n,r),this.pendingDiffs.forEach(t=>{this.state=e.syncDiff(this.state,t,n,r)}),this.pendingDiffs=[],i()}),this.channel.on(r.diff,t=>{let{onJoin:n,onLeave:r,onSync:i}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(t):(this.state=e.syncDiff(this.state,t,n,r),i())})}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}list(t){return e.list(this.state,t)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}static syncState(e,t,n,r){let i=this.clone(e),a={},o={};return this.map(i,(e,n)=>{t[e]||(o[e]=n)}),this.map(t,(e,t)=>{let n=i[e];if(n){let r=t.metas.map(e=>e.phx_ref),i=n.metas.map(e=>e.phx_ref),s=t.metas.filter(e=>i.indexOf(e.phx_ref)<0),c=n.metas.filter(e=>r.indexOf(e.phx_ref)<0);s.length>0&&(a[e]=t,a[e].metas=s),c.length>0&&(o[e]=this.clone(n),o[e].metas=c)}else a[e]=t}),this.syncDiff(i,{joins:a,leaves:o},n,r)}static syncDiff(e,t,n,r){let{joins:i,leaves:a}=this.clone(t);return n||=function(){},r||=function(){},this.map(i,(t,r)=>{let i=e[t];if(e[t]=this.clone(r),i){let n=e[t].metas.map(e=>e.phx_ref),r=i.metas.filter(e=>n.indexOf(e.phx_ref)<0);e[t].metas.unshift(...r)}n(t,i,r)}),this.map(a,(t,n)=>{let i=e[t];if(!i)return;let a=n.metas.map(e=>e.phx_ref);i.metas=i.metas.filter(e=>a.indexOf(e.phx_ref)<0),r(t,i,n),i.metas.length===0&&delete e[t]}),e}static list(e,t){return t||=function(e,t){return t},this.map(e,(e,n)=>t(e,n))}static map(e,t){return Object.getOwnPropertyNames(e).map(n=>t(n,e[n]))}static clone(e){return JSON.parse(JSON.stringify(e))}},jn={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(e,t){if(e.payload.constructor===ArrayBuffer)return t(this.binaryEncode(e));{let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}},decode(e,t){if(e.constructor===ArrayBuffer)return t(this.binaryDecode(e));{let[n,r,i,a,o]=JSON.parse(e);return t({join_ref:n,ref:r,topic:i,event:a,payload:o})}},binaryEncode(e){let{join_ref:t,ref:n,event:r,topic:i,payload:a}=e,o=this.META_LENGTH+t.length+n.length+i.length+r.length,s=new ArrayBuffer(this.HEADER_LENGTH+o),c=new DataView(s),l=0;c.setUint8(l++,this.KINDS.push),c.setUint8(l++,t.length),c.setUint8(l++,n.length),c.setUint8(l++,i.length),c.setUint8(l++,r.length),Array.from(t,e=>c.setUint8(l++,e.charCodeAt(0))),Array.from(n,e=>c.setUint8(l++,e.charCodeAt(0))),Array.from(i,e=>c.setUint8(l++,e.charCodeAt(0))),Array.from(r,e=>c.setUint8(l++,e.charCodeAt(0)));var u=new Uint8Array(s.byteLength+a.byteLength);return u.set(new Uint8Array(s),0),u.set(new Uint8Array(a),s.byteLength),u.buffer},binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),r=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(e,t,r);case this.KINDS.reply:return this.decodeReply(e,t,r);case this.KINDS.broadcast:return this.decodeBroadcast(e,t,r)}}
vendor: 12,506 bytes, line 13
13,decodePush(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=this.HEADER_LENGTH+this.META_LENGTH-1,s=n.decode(e.slice(o,o+r));o+=r;let c=n.decode(e.slice(o,o+i));o+=i;let l=n.decode(e.slice(o,o+a));return o+=a,{join_ref:s,ref:null,topic:c,event:l,payload:e.slice(o,e.byteLength)}},decodeReply(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=t.getUint8(4),s=this.HEADER_LENGTH+this.META_LENGTH,c=n.decode(e.slice(s,s+r));s+=r;let l=n.decode(e.slice(s,s+i));s+=i;let u=n.decode(e.slice(s,s+a));s+=a;let d=n.decode(e.slice(s,s+o));s+=o;let f={status:d,response:e.slice(s,e.byteLength)};return{join_ref:c,ref:l,topic:u,event:bn.reply,payload:f}},decodeBroadcast(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=this.HEADER_LENGTH+2,o=n.decode(e.slice(a,a+r));a+=r;let s=n.decode(e.slice(a,a+i));return a+=i,{join_ref:null,ref:null,topic:o,event:s,payload:e.slice(a,e.byteLength)}}},Mn=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.fallbackRef=null,this.timeout=t.timeout||gn,this.transport=t.transport||mn.WebSocket||kn,this.conn=void 0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=t.longPollFallbackMs,this.fallbackTimer=null;let n=null;try{n=mn&&mn.sessionStorage}catch{}this.sessionStore=t.sessionStorage||n,this.establishedConnections=0,this.defaultEncoder=jn.encode.bind(jn),this.defaultDecoder=jn.decode.bind(jn),this.closeWasClean=!0,this.disconnecting=!1,this.binaryType=t.binaryType||`arraybuffer`,this.connectClock=1,this.pageHidden=!1,this.encode=void 0,this.decode=void 0,this.transport===kn?(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder):(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder);let r=null;pn&&pn.addEventListener&&(pn.addEventListener(`pagehide`,e=>{this.conn&&(this.disconnect(),r=this.connectClock)}),pn.addEventListener(`pageshow`,e=>{r===this.connectClock&&(r=null,this.connect())}),pn.addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`?this.pageHidden=!0:(this.pageHidden=!1,!this.isConnected()&&!this.closeWasClean&&this.teardown(()=>this.connect()))})),this.heartbeatIntervalMs=t.heartbeatIntervalMs||3e4,this.autoSendHeartbeat=t.autoSendHeartbeat??!0,this.heartbeatCallback=t.heartbeatCallback??(()=>{}),this.rejoinAfterMs=e=>t.rejoinAfterMs?t.rejoinAfterMs(e):[1e3,2e3,5e3][e-1]||1e4,this.reconnectAfterMs=e=>t.reconnectAfterMs?t.reconnectAfterMs(e):[10,50,100,150,200,250,500,1e3,2e3][e-1]||5e3,this.logger=t.logger||null,!this.logger&&t.debug&&(this.logger=(e,t,n)=>{console.log(`${e}: ${t}`,n)}),this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=dn(t.params||{}),this.endPoint=`${e}/${xn.websocket}`,this.vsn=t.vsn||hn,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.heartbeatSentAt=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new Tn(()=>{if(this.pageHidden){this.log(`Not reconnecting as page is hidden!`),this.teardown();return}this.teardown(async()=>{t.beforeReconnect&&await t.beforeReconnect(),this.connect()})},this.reconnectAfterMs),this.authToken=t.authToken}getLongPollTransport(){return kn}replaceTransport(e){this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn&&=(this.conn.close(),null),this.transport=e}protocol(){return location.protocol.match(/^https/)?`wss`:`ws`}endPointURL(){let e=Dn.appendParams(Dn.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return e.charAt(0)===`/`?e.charAt(1)===`/`?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`:e}disconnect(e,t,n){this.connectClock++,this.disconnecting=!0,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.teardown(()=>{this.disconnecting=!1,e&&e()},t,n)}connect(e){e&&(console&&console.log(`passing params to connect is deprecated. Instead pass :params to the Socket constructor`),this.params=dn(e)),!(this.conn&&!this.disconnecting)&&(this.longPollFallbackMs&&this.transport!==kn?this.connectWithFallback(kn,this.longPollFallbackMs):this.transportConnect())}log(e,t,n){this.logger&&this.logger(e,t,n)}hasLogger(){return this.logger!==null}onOpen(e){let t=this.makeRef();return this.stateChangeCallbacks.open.push([t,e]),t}onClose(e){let t=this.makeRef();return this.stateChangeCallbacks.close.push([t,e]),t}onError(e){let t=this.makeRef();return this.stateChangeCallbacks.error.push([t,e]),t}onMessage(e){let t=this.makeRef();return this.stateChangeCallbacks.message.push([t,e]),t}onHeartbeat(e){this.heartbeatCallback=e}ping(e){if(!this.isConnected())return!1;let t=this.makeRef(),n=Date.now();this.push({topic:`phoenix`,event:`heartbeat`,payload:{},ref:t});let r=this.onMessage(i=>{i.ref===t&&(this.off([r]),e(Date.now()-n))});return!0}transportName(e){switch(e){case kn:return`LongPoll`;default:return e.name}}transportConnect(){this.connectClock++,this.closeWasClean=!1;let e;this.authToken&&(e=[`phoenix`,`${Cn}${btoa(this.authToken).replace(/=/g,``)}`]),this.conn=new this.transport(this.endPointURL(),e),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=e=>this.onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this.onConnClose(e)}getSession(e){return this.sessionStore&&this.sessionStore.getItem(e)}storeSession(e,t){this.sessionStore&&this.sessionStore.setItem(e,t)}connectWithFallback(e,t=2500){clearTimeout(this.fallbackTimer);let n=!1,r=!0,i,a=this.transportName(e),o=t=>{this.log(`transport`,`falling back to ${a}...`,t),this.off([void 0,i]),r=!1,this.replaceTransport(e),this.transportConnect()};if(this.getSession(`phx:fallback:${a}`))return o(`memorized`);this.fallbackTimer=setTimeout(o,t),i=this.onError(e=>{this.log(`transport`,`error`,e),r&&!n&&(clearTimeout(this.fallbackTimer),o(e))}),this.fallbackRef&&this.off([this.fallbackRef]),this.fallbackRef=this.onOpen(()=>{if(n=!0,!r){let t=this.transportName(e);return this.primaryPassedHealthCheck||this.storeSession(`phx:fallback:${t}`,`true`),this.log(`transport`,`established ${t} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(o,t),this.ping(e=>{this.log(`transport`,`connected to primary after`,e),this.primaryPassedHealthCheck=!0,clearTimeout(this.fallbackTimer)})}),this.transportConnect()}clearHeartbeats(){clearTimeout(this.heartbeatTimer),clearTimeout(this.heartbeatTimeoutTimer)}onConnOpen(){this.hasLogger()&&this.log(`transport`,`connected to ${this.endPointURL()}`),this.closeWasClean=!1,this.disconnecting=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.autoSendHeartbeat&&this.resetHeartbeat(),this.triggerStateCallbacks(`open`)}heartbeatTimeout(){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.hasLogger()&&this.log(`transport`,`heartbeat timeout. Attempting to re-establish connection`);try{this.heartbeatCallback(`timeout`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this.triggerChanError(Error(`heartbeat timeout`)),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),_n,`heartbeat timeout`)}}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,this.clearHeartbeats(),this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}teardown(e,t,n){if(!this.conn)return e&&e();let r=this.conn;this.waitForBufferDone(r,()=>{t?r.close(t,n||``):r.close(),this.waitForSocketClosed(r,()=>{this.conn===r&&(this.conn.onopen=function(){},this.conn.onerror=function(){},this.conn.onmessage=function(){},this.conn.onclose=function(){},this.conn=null),e&&e()})})}waitForBufferDone(e,t,n=1){if(n===5||!e.bufferedAmount){t();return}setTimeout(()=>{this.waitForBufferDone(e,t,n+1)},150*n)}waitForSocketClosed(e,t,n=1){if(n===5||e.readyState===vn.closed){t();return}setTimeout(()=>{this.waitForSocketClosed(e,t,n+1)},150*n)}onConnClose(e){this.conn&&(this.conn.onclose=()=>{}),this.hasLogger()&&this.log(`transport`,`close`,e),this.triggerChanError(e),this.clearHeartbeats(),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.triggerStateCallbacks(`close`,e)}onConnError(e){this.hasLogger()&&this.log(`transport`,`error`,e);let t=this.transport,n=this.establishedConnections;this.triggerStateCallbacks(`error`,e,t,n),(t===this.transport||n>0)&&this.triggerChanError(e)}triggerChanError(e){this.channels.forEach(t=>{t.isErrored()||t.isLeaving()||t.isClosed()||t.trigger(bn.error,e)})}connectionState(){switch(this.conn&&this.conn.readyState){case vn.connecting:return`connecting`;case vn.open:return`open`;case vn.closing:return`closing`;default:return`closed`}}isConnected(){return this.connectionState()===`open`}remove(e){this.off(e.stateChangeRefs),this.channels=this.channels.filter(t=>t!==e)}off(e){for(let t in this.stateChangeCallbacks)this.stateChangeCallbacks[t]=this.stateChangeCallbacks[t].filter(([t])=>e.indexOf(t)===-1)}channel(e,t={}){let n=new En(e,t,this);return this.channels.push(n),n}push(e){if(this.hasLogger()){let{topic:t,event:n,payload:r,ref:i,join_ref:a}=e;this.log(`push`,`${t} ${n} (${a}, ${i})`,r)}this.isConnected()?this.encode(e,e=>this.conn.send(e)):this.sendBuffer.push(()=>this.encode(e,e=>this.conn.send(e)))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}sendHeartbeat(){if(!this.isConnected()){try{this.heartbeatCallback(`disconnected`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}return}if(this.pendingHeartbeatRef){this.heartbeatTimeout();return}this.pendingHeartbeatRef=this.makeRef(),this.heartbeatSentAt=Date.now(),this.push({topic:`phoenix`,event:`heartbeat`,payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback(`sent`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this.heartbeatTimeoutTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}onConnMessage(e){this.decode(e.data,e=>{let{topic:t,event:n,payload:r,ref:i,join_ref:a}=e;if(i&&i===this.pendingHeartbeatRef){let e=this.heartbeatSentAt?Date.now()-this.heartbeatSentAt:void 0;this.clearHeartbeats();try{this.heartbeatCallback(r.status===`ok`?`ok`:`error`,e)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.autoSendHeartbeat&&(this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}this.hasLogger()&&this.log(`receive`,`${r.status||``} ${t} ${n} ${i&&`(`+i+`)`||``}`.trim(),r);for(let e=0;e<this.channels.length;e++){let o=this.channels[e];o.isMember(t,n,r,a)&&o.trigger(n,r,i,a)}this.triggerStateCallbacks(`message`,e)})}triggerStateCallbacks(e,...t){try{this.stateChangeCallbacks[e].forEach(([n,r])=>{try{r(...t)}catch(t){this.log(`error`,`error in ${e} callback`,t)}})}catch(t){this.log(`error`,`error triggering ${e} callbacks`,t)}}leaveOpenTopic(e){let t=this.channels.find(t=>t.topic===e&&(t.isJoined()||t.isJoining()));t&&(this.hasLogger()&&this.log(`transport`,`leaving duplicate topic "${e}"`),t.leave())}},Nn=class e{constructor(t,n){let r=In(n);this.presence=new An(t.getChannel(),r),this.presence.onJoin((n,r,i)=>{let a=e.onJoinPayload(n,r,i);t.getChannel().trigger(`presence`,a)}),this.presence.onLeave((n,r,i)=>{let a=e.onLeavePayload(n,r,i);t.getChannel().trigger(`presence`,a)}),this.presence.onSync(()=>{t.getChannel().trigger(`presence`,{event:`sync`})})}get state(){return e.transformState(this.presence.state)}static transformState(e){return e=Fn(e),Object.getOwnPropertyNames(e).reduce((t,n)=>{let r=e[n];return t[n]=Pn(r),t},{})}static onJoinPayload(e,t,n){return{event:`join`,key:e,currentPresences:Ln(t),newPresences:Pn(n)}}static onLeavePayload(e,t,n){return{event:`leave`,key:e,currentPresences:Ln(t),leftPresences:Pn(n)}}};function Pn(e){return e.metas.map(e=>(e.presence_ref=e.phx_ref,delete e.phx_ref,delete e.phx_ref_prev,e))}function Fn(e){return JSON.parse(JSON.stringify(e))}function In(e){return e?.events&&{events:e.events}}function Ln(e){return e?.metas?Pn(e):[]}var Rn;(function(e){e.SYNC=`sync`,e.JOIN=`join`,e.LEAVE=`leave`})(Rn||={});var zn=class{get state(){return this.presenceAdapter.state}constructor(e,t){this.channel=e,this.presenceAdapter=new Nn(this.channel.channelAdapter,t)}};function Bn(e){if(e instanceof Error)return e;if(typeof e==`string`)return Error(e);
13if(e&&typeof e==`object`){let t=e;if(typeof t.code==`number`){let n=typeof t.reason==`string`&&t.reason?` (${t.reason})`:``;return Error(`socket closed: ${t.code}${n}`,{cause:e})}return Error(`channel error: transport failure`,{cause:e})}return Error(`channel error: connection lost`)}var Vn=class{constructor(e,t,n){let r=Hn(n);this.channel=e.getSocket().channel(t,r),this.socket=e}get state(){return this.channel.state}set state(e){this.channel.state=e}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(e,t){return this.channel.on(e,t)}off(e,t){this.channel.off(e,t)}subscribe(e){return this.channel.join(e)}unsubscribe(e){return this.channel.leave(e)}teardown(){this.channel.teardown()}onClose(e){this.channel.onClose(e)}onError(e){return this.channel.onError(e)}push(e,t,n){let r;try{r=this.channel.push(e,t,n)}catch{throw Error(`tried to push '${e}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`)}if(this.channel.pushBuffer.length>100){let e=this.channel.pushBuffer.shift();e.cancelTimeout(),this.socket.log(`channel`,`discarded push due to buffer overflow: ${e.event}`,e.payload())}return r}updateJoinPayload(e){let t=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},t),e)}canPush(){return this.socket.isConnected()&&this.state===Yt.joined}isJoined(){return this.state===Yt.joined}isJoining(){return this.state===Yt.joining}isClosed(){return this.state===Yt.closed}isLeaving(){return this.state===Yt.leaving}updateFilterBindings(e){this.channel.filterBindings=e}updatePayloadTransform(e){this.channel.onMessage=e}getChannel(){return this.channel}};function Hn(e){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:``,enabled:!1},private:!1},e.config)}}var Un;(function(e){e.ALL=`*`,e.INSERT=`INSERT`,e.UPDATE=`UPDATE`,e.DELETE=`DELETE`})(Un||={});var Wn;(function(e){e.BROADCAST=`broadcast`,e.PRESENCE=`presence`,e.POSTGRES_CHANGES=`postgres_changes`,e.SYSTEM=`system`})(Wn||={});var Gn;(function(e){e.SUBSCRIBED=`SUBSCRIBED`,e.TIMED_OUT=`TIMED_OUT`,e.CLOSED=`CLOSED`,e.CHANNEL_ERROR=`CHANNEL_ERROR`})(Gn||={});var Kn=class e{get state(){return this.channelAdapter.state}set state(e){this.channelAdapter.state=e}get joinedOnce(){return this.channelAdapter.joinedOnce}get timeout(){return this.socket.timeout}get joinPush(){return this.channelAdapter.joinPush}get rejoinTimer(){return this.channelAdapter.rejoinTimer}constructor(e,t={config:{}},n){if(this.topic=e,this.params=t,this.socket=n,this.bindings={},this.subTopic=e.replace(/^realtime:/i,``),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:``,enabled:!1},private:!1},t.config),this.channelAdapter=new Vn(this.socket.socketAdapter,e,this.params),this.presence=new zn(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=un(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&this.params.config?.broadcast?.replay)throw Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`)}subscribe(e,t=this.timeout){if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){let{config:{broadcast:n,presence:r,private:i}}=this.params,a=this.bindings.postgres_changes?.map(e=>e.filter)??[],o=!!this.bindings[Wn.PRESENCE]&&this.bindings[Wn.PRESENCE].length>0||this.params.config.presence?.enabled===!0,s={},c={broadcast:n,presence:Object.assign(Object.assign({},r),{enabled:o}),postgres_changes:a,private:i};this.socket.accessTokenValue&&(s.access_token=this.socket.accessTokenValue),this._onError(t=>{e?.(Gn.CHANNEL_ERROR,Bn(t))}),this._onClose(()=>e?.(Gn.CLOSED)),this.updateJoinPayload(Object.assign({config:c},s)),this._updateFilterMessage(),this.channelAdapter.subscribe(t).receive(`ok`,async({postgres_changes:t})=>{if(this.socket._isManualToken()||this.socket.setAuth(),t===void 0){e?.(Gn.SUBSCRIBED);return}this._updatePostgresBindings(t,e)}).receive(`error`,t=>{this.state=Yt.errored;let n=Object.values(t).join(`, `)||`error`;e?.(Gn.CHANNEL_ERROR,Error(n,{cause:t}))}).receive(`timeout`,()=>{e?.(Gn.TIMED_OUT)})}return this}_updatePostgresBindings(t,n){let r=this.bindings.postgres_changes,i=r?.length??0,a=[];for(let o=0;o<i;o++){let i=r[o],{filter:{event:s,schema:c,table:l,filter:u}}=i,d=t&&t[o];if(d&&d.event===s&&e.isFilterValueEqual(d.schema,c)&&e.isFilterValueEqual(d.table,l)&&e.isFilterValueEqual(d.filter,u))a.push(Object.assign(Object.assign({},i),{id:d.id}));else{this.unsubscribe(),this.state=Yt.errored,n?.(Gn.CHANNEL_ERROR,Error(`mismatch between server and client bindings for postgres changes`));return}}this.bindings.postgres_changes=a,this.state!=Yt.errored&&n&&n(Gn.SUBSCRIBED)}presenceState(){return this.presence.state}async track(e,t={}){return await this.send({type:`presence`,event:`track`,payload:e},t.timeout||this.timeout)}async untrack(e={}){return await this.send({type:`presence`,event:`untrack`},e)}on(e,t,n){let r=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),i=e===Wn.PRESENCE||e===Wn.POSTGRES_CHANGES;if(r&&i)throw this.socket.log(`channel`,`cannot add \`${e}\` callbacks for ${this.topic} after \`subscribe()\`.`),Error(`cannot add \`${e}\` callbacks for ${this.topic} after \`subscribe()\`.`);return this._on(e,t,n)}async httpSend(e,t,n={}){if(t==null)return Promise.reject(Error(`Payload is required for httpSend()`));let r=t instanceof ArrayBuffer||ArrayBuffer.isView(t),i={apikey:this.socket.apiKey?this.socket.apiKey:``,"Content-Type":r?`application/octet-stream`:`application/json`};this.socket.accessTokenValue&&(i.Authorization=`Bearer ${this.socket.accessTokenValue}`);let a=new URL(this.broadcastEndpointURL);a.pathname+=`/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(e)}`,this.private&&a.searchParams.set(`private`,`true`);let o={method:`POST`,headers:i,body:r?t:JSON.stringify(t)},s=await this._fetchWithTimeout(a.toString(),o,n.timeout??this.timeout);if(s.status===202)return{success:!0};if(s.status===404)return Promise.reject(Error(`httpSend() requires Realtime server v2.97.0 or newer; the endpoint returned 404. Update your Supabase CLI to a recent version, or upgrade the Realtime server in your self-hosted setup. See https://github.com/supabase/supabase-js/blob/master/packages/core/realt
13ime-js/migrations/httpsend-server-version.md`));let c=s.statusText;try{let e=await s.json();c=e.error||e.message||c}catch{}return Promise.reject(Error(c))}async send(e,t={}){if(!this.channelAdapter.canPush()&&e.type===`broadcast`){console.warn(`Realtime send() is automatically falling back to REST API. This behavior will be deprecated in the future. Please use httpSend() explicitly for REST delivery.`);let{event:n,payload:r}=e,i={apikey:this.socket.apiKey?this.socket.apiKey:``,"Content-Type":`application/json`};this.socket.accessTokenValue&&(i.Authorization=`Bearer ${this.socket.accessTokenValue}`);let a={method:`POST`,headers:i,body:JSON.stringify({messages:[{topic:this.subTopic,event:n,payload:r,private:this.private}]})};try{let e=await this._fetchWithTimeout(this.broadcastEndpointURL,a,t.timeout??this.timeout);return await e.body?.cancel(),e.ok?`ok`:`error`}catch(e){return e instanceof Error&&e.name===`AbortError`?`timed out`:`error`}}else return new Promise(n=>{let r=this.channelAdapter.push(e.type,e,t.timeout||this.timeout);e.type===`broadcast`&&!this.params?.config?.broadcast?.ack&&n(`ok`),r.receive(`ok`,()=>n(`ok`)),r.receive(`error`,()=>n(`error`)),r.receive(`timeout`,()=>n(`timed out`))})}updateJoinPayload(e){this.channelAdapter.updateJoinPayload(e)}async unsubscribe(e=this.timeout){return new Promise(t=>{this.channelAdapter.unsubscribe(e).receive(`ok`,()=>t(`ok`)).receive(`timeout`,()=>t(`timed out`)).receive(`error`,()=>t(`error`))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(e,t,n){let r=new AbortController,i=setTimeout(()=>r.abort(),n),a=await this.socket.fetch(e,Object.assign(Object.assign({},t),{signal:r.signal}));return clearTimeout(i),a}_on(e,t,n){let r=e.toLocaleLowerCase(),i={type:r,filter:t,callback:n,ref:this.channelAdapter.on(e,n)};return this.bindings[r]?this.bindings[r].push(i):this.bindings[r]=[i],this._updateFilterMessage(),this}_onClose(e){this.channelAdapter.onClose(e)}_onError(e){this.channelAdapter.onError(e)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((e,t,n)=>{let r=e.event.toLocaleLowerCase();if(this._notThisChannelEvent(r,n))return!1;let i=this.bindings[r]?.find(t=>t.ref===e.ref);if(!i)return!0;if([`broadcast`,`presence`,`postgres_changes`].includes(r))if(`id`in i){let e=i.id,n=i.filter?.event;return e&&t.ids?.includes(e)&&(n===`*`||n?.toLocaleLowerCase()===t.data?.type.toLocaleLowerCase())}else{let e=(i?.filter?.event)?.toLocaleLowerCase();return e===`*`||e===(t?.event)?.toLocaleLowerCase()}else return i.type.toLocaleLowerCase()===r})}_notThisChannelEvent(e,t){let{close:n,error:r,leave:i,join:a}=Xt;return t&&[n,r,i,a].includes(e)&&t!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((e,t,n)=>{if(typeof t==`object`&&`ids`in t){let e=t.data,{schema:n,table:r,commit_timestamp:i,type:a,errors:o}=e;return Object.assign(Object.assign({},{schema:n,table:r,commit_timestamp:i,eventType:a,new:{},old:{},errors:o}),this._getPayloadRecords(e))}return t})}copyBindings(e){if(this.joinedOnce)throw Error(`cannot copy bindings into joined channel`);for(let t in e.bindings)for(let n of e.bindings[t])this._on(n.type,n.filter,n.callback)}static isFilterValueEqual(e,t){return(e??void 0)===(t??void 0)}_getPayloadRecords(e){let t={new:{},old:{}};return(e.type===`INSERT`||e.type===`UPDATE`)&&(t.new=en(e.columns,e.record)),(e.type===`UPDATE`||e.type===`DELETE`)&&(t.old=en(e.columns,e.old_record)),t}},qn=class{constructor(e,t){this.socket=new Mn(e,t)}get timeout(){return this.socket.timeout}get endPoint(){return this.socket.endPoint}get transport(){return this.socket.transport}get heartbeatIntervalMs(){return this.socket.heartbeatIntervalMs}get heartbeatCallback(){return this.socket.heartbeatCallback}set heartbeatCallback(e){this.socket.heartbeatCallback=e}get heartbeatTimer(){return this.socket.heartbeatTimer}get pendingHeartbeatRef(){return this.socket.pendingHeartbeatRef}get reconnectTimer(){return this.socket.reconnectTimer}get vsn(){return this.socket.vsn}get encode(){return this.socket.encode}get decode(){return this.socket.decode}get reconnectAfterMs(){return this.socket.reconnectAfterMs}get sendBuffer(){return this.socket.sendBuffer}get stateChangeCallbacks(){return this.socket.stateChangeCallbacks}connect(){this.socket.connect()}disconnect(e,t,n,r=1e4){return new Promise(i=>{setTimeout(()=>i(`timeout`),r),this.socket.disconnect(()=>{e(),i(`ok`)},t,n)})}push(e){this.socket.push(e)}log(e,t,n){this.socket.log(e,t,n)}makeRef(){return this.socket.makeRef()}onOpen(e){this.socket.onOpen(e)}onClose(e){this.socket.onClose(e)}onError(e){this.socket.onError(e)}onMessage(e){this.socket.onMessage(e)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==Zt.connecting}isDisconnecting(){return this.socket.connectionState()==Zt.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}},Jn={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},Yn=[1e3,2e3,5e3,1e4],Xn=1e4;function Zn(){let e=new Map;return{get length(){return e.size},clear(){e.clear()},getItem(t){return e.has(t)?e.get(t):null},key(t){return Array.from(e.keys())[t]??null},removeItem(t){e.delete(t)},setItem(t,n){e.set(t,String(n))}}}function Qn(){try{if(typeof globalThis<`u`&&globalThis.sessionStorage)return globalThis.sessionStorage}catch{}return Zn()}var $n=`
14  addEventListener("message", (e) => {
15    if (e.data.event === "start") {
16      setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
17    }
18  });`,er=class{get endPoint(){return this.socketAdapter.endPoint}get timeout(){return this.socketAdapter.timeout}get transport(){return this.socketAdapter.transport}get heartbeatCallback(){return this.socketAdapter.heartbeatCallback}get heartbeatIntervalMs(){return this.socketAdapter.heartbeatIntervalMs}get heartbeatTimer(){return this.worker?this._workerHeartbeatTimer:this.socketAdapter.heartbeatTimer}get pendingHeartbeatRef(){return this.worker?this._pendingWorkerHeartbeatRef:this.socketAdapter.pendingHeartbeatRef}get reconnectTimer(){return this.socketAdapter.reconnectTimer}get vsn(){return this.socketAdapter.vsn}get encode(){return this.socketAdapter.encode}get decode(){return this.socketAdapter.decode}get reconnectAfterMs(){return this.socketAdapter.reconnectAfterMs}get sendBuffer(){return this.socketAdapter.sendBuffer}get stateChangeCallbacks(){return this.socketAdapter.stateChangeCallbacks}constructor(e,t){if(this.channels=[],this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint=``,this.headers={},this.params={}
18,this.ref=0,this.serializer=new Qt,this._manuallySetToken=!1,this._authPromise=null,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._pendingDisconnectTimer=null,this._disconnectOnEmptyChannelsAfterMs=0,this._resolveFetch=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),!t?.params?.apikey)throw Error(`API key is required to connect to Realtime`);this.apiKey=t.params.apikey;let n=this._initializeOptions(t);this.socketAdapter=new qn(e,n),this.httpEndpoint=un(e),this.fetch=this._resolveFetch(t?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely(`connect`),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(e){let t=e.message;throw t.includes(`Node.js`)?Error(`${t}\n\nTo use Realtime in Node.js, you need to provide a WebSocket implementation:
19
20Option 1: Use Node.js 22+ which has native WebSocket support
21Option 2: Install and provide the "ws" package:
22
23  npm install ws
24
25  import ws from "ws"
26  const client = new RealtimeClient(url, {
27    ...options,
28    transport: ws
29  })`):Error(`WebSocket not available: ${t}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(e,t){return this._cancelPendingDisconnect(),this.isDisconnecting()?`ok`:await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},e,t)}getChannels(){return this.channels}async removeChannel(e){let t=await e.unsubscribe();return t===`ok`&&e.teardown(),t}async removeAllChannels(){let e=this.channels.map(async e=>{let t=await e.unsubscribe();return e.teardown(),t}),t=await Promise.all(e);return await this.disconnect(),t}log(e,t,n){this.socketAdapter.log(e,t,n)}connectionState(){return this.socketAdapter.connectionState()||Zt.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(e,t={config:{}}){let n=`realtime:${e}`,r=this.getChannels().find(e=>e.topic===n);if(r)return r;{let n=new Kn(`realtime:${e}`,t,this);return this._cancelPendingDisconnect(),this.channels.push(n),n}}push(e){this.socketAdapter.push(e)}async setAuth(e=null){this._authPromise=this._performAuth(e);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(e){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(e)}_makeRef(){return this.socketAdapter.makeRef()}_remove(e){this.channels=this.channels.filter(t=>t.topic!==e.topic),this.channels.length===0&&(this.log(`transport`,`no channels remaining, scheduling disconnect`),this._schedulePendingDisconnect())}_schedulePendingDisconnect(){if(this._cancelPendingDisconnect(),this._disconnectOnEmptyChannelsAfterMs===0){this.log(`transport`,`disconnecting immediately - no channels`),this.disconnect();return}
29this._pendingDisconnectTimer=setTimeout(()=>{this._pendingDisconnectTimer=null,this.channels.length===0&&(this.log(`transport`,`deferred disconnect fired - no channels, disconnecting`),this.disconnect())},this._disconnectOnEmptyChannelsAfterMs),this.log(`transport`,`deferred disconnect scheduled in ${this._disconnectOnEmptyChannelsAfterMs}ms`)}_cancelPendingDisconnect(){this._pendingDisconnectTimer!==null&&(this.log(`transport`,`pending disconnect cancelled - channel activity detected`),clearTimeout(this._pendingDisconnectTimer),this._pendingDisconnectTimer=null)}async _performAuth(e=null){let t,n=!1;if(e)t=e,n=!0;else if(this.accessToken)try{t=await this.accessToken()}catch(e){this.log(`error`,`Error fetching access token from callback`,e),t=this.accessTokenValue}else t=this.accessTokenValue;n?this._manuallySetToken=!0:this.accessToken&&(this._manuallySetToken=!1),this.accessTokenValue!=t&&(this.accessTokenValue=t,this.channels.forEach(e=>{let n={access_token:t,version:Wt};t&&e.updateJoinPayload(n),e.joinedOnce&&e.channelAdapter.isJoined()&&e.channelAdapter.push(Xt.access_token,{access_token:t})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(e=`general`){this._isManualToken()||this.setAuth().catch(t=>{this.log(`error`,`Error setting auth in ${e}`,t)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(e=>{this.log(`error`,`error waiting for auth on connect`,e)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(e=>{e.ref&&e.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(e){return(t,n)=>{t==`sent`&&this._setAuthSafely(),e&&e(t,n)}}_startWorkerHeartbeat(){this.workerUrl?this.log(`worker`,`starting worker for from ${this.workerUrl}`):this.log(`worker`,`starting default worker`);let e=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(e),this.workerRef.onerror=e=>{this.log(`worker`,`worker error`,e.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=e=>{e.data.event===`keepAlive`&&this.sendHeartbeat()},this.workerRef.postMessage({event:`start`,interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&=(this.log(`worker`,`terminating worker`),this.workerRef.terminate(),void 0)}_workerObjectUrl(e){let t;if(e)t=e;else{let e=new Blob([$n],{type:`application/javascript`});t=URL.createObjectURL(e)}return t}_initializeOptions(e){this.worker=e?.worker??!1,this.accessToken=e?.accessToken??null;let t={};t.timeout=e?.timeout??Jt,t.heartbeatIntervalMs=e?.heartbeatIntervalMs??Jn.HEARTBEAT_INTERVAL,this._disconnectOnEmptyChannelsAfterMs=e?.disconnectOnEmptyChannelsAfterMs??2*(e?.heartbeatIntervalMs??Jn.HEARTBEAT_INTERVAL),t.transport=e?.transport??Ut.getWebSocketConstructor(),t.params=e?.params,t.logger=e?.logger,t.heartbeatCallback=this._wrapHeartbeatCallback(e?.heartbeatCallback),t.sessionStorage=e?.sessionStorage??Qn(),t.reconnectAfterMs=e?.reconnectAfterMs??(e=>Yn[e-1]||Xn);let n,r,i=e?.vsn??qt;switch(i){case Gt:n=(e,t)=>t(JSON.stringify(e)),r=(e,t)=>t(JSON.parse(e));break;case Kt:n=this.serializer.encode.bind(this.serializer),r=this.serializer.decode.bind(this.serializer);break;default:throw Error(`Unsupported serializer version: ${t.vsn}`)}if(t.vsn=i,t.encode=e?.encode??n,t.decode=e?.decode??r,t.beforeReconnect=this._reconnectAuth.bind(this),(e?.logLevel||e?.log_level)&&(this.logLevel=e.logLevel||e.log_level,t.params=Object.assign(Object.assign({},t.params),{log_level:this.logLevel})),this.worker){if(typeof window<`u`&&!window.Worker)throw Error(`Web Worker is not supported`);this.workerUrl=e?.workerUrl,t.autoSendHeartbeat=!this.worker}return t}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}
vendor: 4,836 bytes, line 29
29,tr=class extends Error{constructor(e,t){super(e),this.name=`IcebergError`,this.status=t.status,this.icebergType=t.icebergType,this.icebergCode=t.icebergCode,this.details=t.details,this.isCommitStateUnknown=t.icebergType===`CommitStateUnknownException`||[500,502,504].includes(t.status)&&t.icebergType?.includes(`CommitState`)===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function nr(e,t,n){let r=new URL(t,e);if(n)for(let[e,t]of Object.entries(n))t!==void 0&&r.searchParams.set(e,t);return r.toString()}async function rr(e){return!e||e.type===`none`?{}:e.type===`bearer`?{Authorization:`Bearer ${e.token}`}:e.type===`header`?{[e.name]:e.value}:e.type===`custom`?await e.getHeaders():{}}function ir(e){let t=e.fetchImpl??globalThis.fetch;return{async request({method:n,path:r,query:i,body:a,headers:o}){let s=nr(e.baseUrl,r,i),c=await rr(e.auth),l=await t(s,{method:n,headers:{...a?{"Content-Type":`application/json`}:{},...c,...o},body:a?JSON.stringify(a):void 0}),u=await l.text(),d=(l.headers.get(`content-type`)||``).includes(`application/json`),f=d&&u?JSON.parse(u):u;if(!l.ok){let e=d?f:void 0,t=e?.error;throw new tr(t?.message??`Request failed with status ${l.status}`,{status:l.status,icebergType:t?.type,icebergCode:t?.code,details:e})}return{status:l.status,headers:l.headers,data:f}}}}function ar(e){return e.join(`�`)}var or=class{constructor(e,t=``){this.client=e,this.prefix=t}async listNamespaces(e){let t=e?{parent:ar(e.namespace)}:void 0;return(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces`,query:t})).data.namespaces.map(e=>({namespace:e}))}async createNamespace(e,t){let n={namespace:e.namespace,properties:t?.properties};return(await this.client.request({method:`POST`,path:`${this.prefix}/namespaces`,body:n})).data}async dropNamespace(e){await this.client.request({method:`DELETE`,path:`${this.prefix}/namespaces/${ar(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces/${ar(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:`HEAD`,path:`${this.prefix}/namespaces/${ar(e.namespace)}`}),!0}catch(e){if(e instanceof tr&&e.status===404)return!1;throw e}}async createNamespaceIfNotExists(e,t){try{return await this.createNamespace(e,t)}catch(e){if(e instanceof tr&&e.status===409)return;throw e}}};function sr(e){return e.join(`�`)}var cr=class{constructor(e,t=``,n){this.client=e,this.prefix=t,this.accessDelegation=n}async listTables(e){return(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces/${sr(e.namespace)}/tables`})).data.identifiers}async createTable(e,t){let n={};return this.accessDelegation&&(n[`X-Iceberg-Access-Delegation`]=this.accessDelegation),(await this.client.request({method:`POST`,path:`${this.prefix}/namespaces/${sr(e.namespace)}/tables`,body:t,headers:n})).data.metadata}async updateTable(e,t){let n=await this.client.request({method:`POST`,path:`${this.prefix}/namespaces/${sr(e.namespace)}/tables/${e.name}`,body:t});return{"metadata-location":n.data[`metadata-location`],metadata:n.data.metadata}}async dropTable(e,t){await this.client.request({method:`DELETE`,path:`${this.prefix}/namespaces/${sr(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String(t?.purge??!1)}})}async loadTable(e){let t={};return this.accessDelegation&&(t[`X-Iceberg-Access-Delegation`]=this.accessDelegation),(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces/${sr(e.namespace)}/tables/${e.name}`,headers:t})).data.metadata}async tableExists(e){let t={};this.accessDelegation&&(t[`X-Iceberg-Access-Delegation`]=this.accessDelegation);try{return await this.client.request({method:`HEAD`,path:`${this.prefix}/namespaces/${sr(e.namespace)}/tables/${e.name}`,headers:t}),!0}catch(e){if(e instanceof tr&&e.status===404)return!1;throw e}}async createTableIfNotExists(e,t){try{return await this.createTable(e,t)}catch(n){if(n instanceof tr&&n.status===409)return await this.loadTable({namespace:e.namespace,name:t.name});throw n}}},lr=class{constructor(e){let t=`v1`;e.catalogName&&(t+=`/${e.catalogName}`);let n=e.baseUrl.endsWith(`/`)?e.baseUrl:`${e.baseUrl}/`;this.client=ir({baseUrl:n,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=e.accessDelegation?.join(`,`),this.namespaceOps=new or(this.client,t),this.tableOps=new cr(this.client,t,this.accessDelegation)}async listNamespaces(e){return this.namespaceOps.listNamespaces(e)}async createNamespace(e,t){return this.namespaceOps.createNamespace(e,t)}async dropNamespace(e){await this.namespaceOps.dropNamespace(e)}async loadNamespaceMetadata(e){return this.namespaceOps.loadNamespaceMetadata(e)}async listTables(e){return this.tableOps.listTables(e)}
29async createTable(e,t){return this.tableOps.createTable(e,t)}async updateTable(e,t){return this.tableOps.updateTable(e,t)}async dropTable(e,t){await this.tableOps.dropTable(e,t)}async loadTable(e){return this.tableOps.loadTable(e)}async namespaceExists(e){return this.namespaceOps.namespaceExists(e)}async tableExists(e){return this.tableOps.tableExists(e)}async createNamespaceIfNotExists(e,t){return this.namespaceOps.createNamespaceIfNotExists(e,t)}async createTableIfNotExists(e,t){return this.tableOps.createTableIfNotExists(e,t)}};function ur(e){"@babel/helpers - typeof";return ur=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},ur(e)}function dr(e,t){if(ur(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(ur(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function fr(e){var t=dr(e,`string`);return ur(t)==`symbol`?t:t+``}function pr(e,t,n){return(t=fr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function A(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?mr(Object(n),!0).forEach(function(t){pr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var hr=class extends Error{constructor(e,t=`storage`,n,r){super(e),this.__isStorageError=!0,this.namespace=t,this.name=t===`vectors`?`StorageVectorsError`:`StorageError`,this.status=n,this.statusCode=r}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}};function gr(e){return typeof e==`object`&&!!e&&`__isStorageError`in e}var _r=class extends hr{constructor(e,t,n,r=`storage`){super(e,r,t,n),this.name=r===`vectors`?`StorageVectorsApiError`:`StorageApiError`,this.status=t,this.statusCode=n}toJSON(){return A({},super.toJSON())}},vr=class extends hr{constructor(e,t,n=`storage`){super(e,n),this.name=n===`vectors`?`StorageVectorsUnknownError`:`StorageUnknownError`,this.originalError=t}};function yr(e,t,n){let r=A({},e),i=t.toLowerCase();for(let e of Object.keys(r))e.toLowerCase()===i&&delete r[e];return r[i]=n,r}function br(e){let t={};for(let[n,r]of Object.entries(e))t[n.toLowerCase()]=r;return t}var xr=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),Sr=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Cr=e=>{if(Array.isArray(e))return e.map(e=>Cr(e));if(typeof e==`function`||e!==Object(e))return e;let t={};return Object.entries(e).forEach(([e,n])=>{let r=e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace(/[-_]/g,``));t[r]=Cr(n)}),t},wr=e=>!e||typeof e!=`string`||e.length===0||e.length>100||e.trim()!==e||e.includes(`/`)||e.includes(`\\`)?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(e),Tr=e=>{if(typeof e==`object`&&e){let t=e;if(typeof t.msg==`string`)return t.msg;if(typeof t.message==`string`)return t.message;if(typeof t.error_description==`string`)return t.error_description;if(typeof t.error==`string`)return t.error;if(typeof t.error==`object`&&t.error!==null){let e=t.error;if(typeof e.message==`string`)return e.message}}return JSON.stringify(e)},Er=async(e,t,n,r)=>{if(typeof e==`object`&&e&&`json`in e&&typeof e.json==`function`){let n=e,i=parseInt(String(n.status),10);Number.isFinite(i)||(i=500),n.json().then(e=>{let n=e?.statusCode||e?.code||i+``;t(new _r(Tr(e),i,n,r))}).catch(()=>{let e=i+``;t(new _r(n.statusText||`HTTP ${i} error`,i,e,r))})}else t(new vr(Tr(e),e,r))},Dr=(e,t,n,r)=>{let i={method:e,headers:t?.headers||{}};if(e===`GET`||e===`HEAD`||!r)return A(A({},i),n);if(Sr(r)){let e=t?.headers||{},n;for(let[t,r]of Object.entries(e))t.toLowerCase()===`content-type`&&(n=r);i.headers=yr(e,`Content-Type`,n??`application/json`),i.body=JSON.stringify(r)}else i.body=r;return t?.duplex&&(i.duplex=t.duplex),A(A({},i),n)};async function Or(e,t,n,r,i,a,o){return new Promise((s,c)=>{e(n,Dr(t,r,i,a)).then(e=>{if(!e.ok)throw e;if(r?.noResolveJson)return e;if(o===`vectors`){let t=e.headers.get(`content-type`);if(e.headers.get(`content-length`)===`0`||e.status===204||!t||!t.includes(`application/json`))return{}}return e.json()}).then(e=>s(e)).catch(e=>Er(e,c,r,o))})}function kr(e=`storage`){return{get:async(t,n,r,i)=>Or(t,`GET`,n,r,i,void 0,e),post:async(t,n,r,i,a)=>Or(t,`POST`,n,i,a,r,e),put:async(t,n,r,i,a)=>Or(t,`PUT`,n,i,a,r,e),head:async(t,n,r,i)=>Or(t,`HEAD`,n,A(A({},r),{},{noResolveJson:!0}),i,void 0,e),remove:async(t,n,r,i,a)=>Or(t,`DELETE`,n,i,a,r,e)}}var{get:Ar,post:jr,put:Mr,head:Nr,remove:Pr}=kr(`storage`),Fr=kr(`vectors`),Ir=class{constructor(e,t={},n,r=`storage`){this.shouldThrowOnError=!1,this.url=e,this.headers=br(t),this.fetch=xr(n),this.namespace=r}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=yr(this.headers,e,t),this}async handleOperation(e){var t=this;try{return{data:await e(),error:null}}catch(e){if(t.shouldThrowOnError)throw e;if(gr(e))return{data:null,error:e};throw e}}},Lr=Symbol.toStringTag,Rr=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[Lr]=`StreamDownloadBuilder`,this.promise=null}
29then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||=this.execute(),this.promise}async execute(){var e=this;try{return{data:(await e.downloadFn()).body,error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(gr(t))return{data:null,error:t};throw t}}},zr=Symbol.toStringTag,Br=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[zr]=`BlobDownloadBuilder`,this.promise=null}asStream(){return new Rr(this.downloadFn,this.shouldThrowOnError)}then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||=this.execute(),this.promise}async execute(){var e=this;try{return{data:await(await e.downloadFn()).blob(),error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(gr(t))return{data:null,error:t};throw t}}},Vr={limit:100,offset:0,sortBy:{column:`name`,order:`asc`}},Hr={cacheControl:`3600`,contentType:`text/plain;charset=UTF-8`,upsert:!1},Ur=class extends Ir{constructor(e,t={},n,r){super(e,t,r,`storage`),this.bucketId=n}async uploadOrUpdate(e,t,n,r){var i=this;return i.handleOperation(async()=>{let a,o=A(A({},Hr),r),s=A(A({},i.headers),e===`POST`&&{"x-upsert":String(o.upsert)}),c=o.metadata;if(typeof Blob<`u`&&n instanceof Blob?(a=new FormData,a.append(`cacheControl`,o.cacheControl),c&&a.append(`metadata`,i.encodeMetadata(c)),a.append(``,n)):typeof FormData<`u`&&n instanceof FormData?(a=n,a.has(`cacheControl`)||a.append(`cacheControl`,o.cacheControl),c&&!a.has(`metadata`)&&a.append(`metadata`,i.encodeMetadata(c))):(a=n,s[`cache-control`]=`max-age=${o.cacheControl}`,s[`content-type`]=o.contentType,c&&(s[`x-metadata`]=i.toBase64(i.encodeMetadata(c))),(typeof ReadableStream<`u`&&a instanceof ReadableStream||a&&typeof a==`object`&&`pipe`in a&&typeof a.pipe==`function`)&&!o.duplex&&(o.duplex=`half`)),r?.headers)for(let[e,t]of Object.entries(r.headers))s=yr(s,e,t);let l=i._removeEmptyFolders(t),u=i._getFinalPath(l),d=await(e==`PUT`?Mr:jr)(i.fetch,`${i.url}/object/${u}`,a,A({headers:s},o?.duplex?{duplex:o.duplex}:{}));return{path:l,id:d.Id,fullPath:d.Key}})}async upload(e,t,n){return this.uploadOrUpdate(`POST`,e,t,n)}async uploadToSignedUrl(e,t,n,r){var i=this;let a=i._removeEmptyFolders(e),o=i._getFinalPath(a),s=new URL(i.url+`/object/upload/sign/${o}`);return s.searchParams.set(`token`,t),i.handleOperation(async()=>{let e,t=A(A({},Hr),r),o=A(A({},i.headers),{"x-upsert":String(t.upsert)}),c=t.metadata;if(typeof Blob<`u`&&n instanceof Blob?(e=new FormData,e.append(`cacheControl`,t.cacheControl),c&&e.append(`metadata`,i.encodeMetadata(c)),e.append(``,n)):typeof FormData<`u`&&n instanceof FormData?(e=n,e.has(`cacheControl`)||e.append(`cacheControl`,t.cacheControl),c&&!e.has(`metadata`)&&e.append(`metadata`,i.encodeMetadata(c))):(e=n,o[`cache-control`]=`max-age=${t.cacheControl}`,o[`content-type`]=t.contentType,c&&(o[`x-metadata`]=i.toBase64(i.encodeMetadata(c))),(typeof ReadableStream<`u`&&e instanceof ReadableStream||e&&typeof e==`object`&&`pipe`in e&&typeof e.pipe==`function`)&&!t.duplex&&(t.duplex=`half`)),r?.headers)for(let[e,t]of Object.entries(r.headers))o=yr(o,e,t);return{path:a,fullPath:(await Mr(i.fetch,s.toString(),e,A({headers:o},t?.duplex?{duplex:t.duplex}:{}))).Key}})}async createSignedUploadUrl(e,t){var n=this;return n.handleOperation(async()=>{let r=n._getFinalPath(e),i=A({},n.headers);t?.upsert&&(i[`x-upsert`]=`true`);let a=await jr(n.fetch,`${n.url}/object/upload/sign/${r}`,{},{headers:i}),o=new URL(n.url+a.url),s=o.searchParams.get(`token`);
29if(!s)throw new hr(`No token returned by API`);return{signedUrl:o.toString(),path:e,token:s}})}async update(e,t,n){return this.uploadOrUpdate(`PUT`,e,t,n)}async move(e,t,n){var r=this;return r.handleOperation(async()=>await jr(r.fetch,`${r.url}/object/move`,{bucketId:r.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:r.headers}))}async copy(e,t,n){var r=this;return r.handleOperation(async()=>({path:(await jr(r.fetch,`${r.url}/object/copy`,{bucketId:r.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:r.headers})).Key}))}async createSignedUrl(e,t,n){var r=this;return r.handleOperation(async()=>{let i=r._getFinalPath(e),a=typeof n?.transform==`object`&&n.transform!==null&&Object.keys(n.transform).length>0,o=await jr(r.fetch,`${r.url}/object/sign/${i}`,A({expiresIn:t},a?{transform:n.transform}:{}),{headers:r.headers}),s=new URLSearchParams;n?.download&&s.set(`download`,n.download===!0?``:n.download),n?.cacheNonce!=null&&s.set(`cacheNonce`,String(n.cacheNonce));let c=s.toString();return{signedUrl:encodeURI(`${r.url}${o.signedURL}${c?`&${c}`:``}`)}})}async createSignedUrls(e,t,n){var r=this;return r.handleOperation(async()=>{let i=await jr(r.fetch,`${r.url}/object/sign/${r.bucketId}`,{expiresIn:t,paths:e},{headers:r.headers}),a=new URLSearchParams;n?.download&&a.set(`download`,n.download===!0?``:n.download),n?.cacheNonce!=null&&a.set(`cacheNonce`,String(n.cacheNonce));let o=a.toString();return i.map(e=>A(A({},e),{},{signedUrl:e.signedURL?encodeURI(`${r.url}${e.signedURL}${o?`&${o}`:``}`):null}))})}download(e,t,n){let r=typeof t?.transform==`object`&&t.transform!==null&&Object.keys(t.transform).length>0?`render/image/authenticated`:`object`,i=new URLSearchParams;t?.transform&&this.applyTransformOptsToQuery(i,t.transform),t?.cacheNonce!=null&&i.set(`cacheNonce`,String(t.cacheNonce));let a=i.toString(),o=this._getFinalPath(e);return new Br(()=>Ar(this.fetch,`${this.url}/${r}/${o}${a?`?${a}`:``}`,{headers:this.headers,noResolveJson:!0},n),this.shouldThrowOnError)}async info(e){var t=this;let n=t._getFinalPath(e);return t.handleOperation(async()=>Cr(await Ar(t.fetch,`${t.url}/object/info/${n}`,{headers:t.headers})))}async exists(e){var t=this;let n=t._getFinalPath(e);try{return await Nr(t.fetch,`${t.url}/object/${n}`,{headers:t.headers}),{data:!0,error:null}}catch(e){if(t.shouldThrowOnError)throw e;if(gr(e)){let t=e instanceof _r?e.status:e instanceof vr?e.originalError?.status:void 0;if(t!==void 0&&[400,404].includes(t))return{data:!1,error:e}}throw e}}getPublicUrl(e,t){let n=this._getFinalPath(e),r=new URLSearchParams;t?.download&&r.set(`download`,t.download===!0?``:t.download),t?.transform&&this.applyTransformOptsToQuery(r,t.transform),t?.cacheNonce!=null&&r.set(`cacheNonce`,String(t.cacheNonce));let i=r.toString(),a=typeof t?.transform==`object`&&t.transform!==null&&Object.keys(t.transform).length>0?`render/image`:`object`;return{data:{publicUrl:encodeURI(`${this.url}/${a}/public/${n}`)+(i?`?${i}`:``)}}}async remove(e){var t=this;return t.handleOperation(async()=>await Pr(t.fetch,`${t.url}/object/${t.bucketId}`,{prefixes:e},{headers:t.headers}))}async list(e,t,n){var r=this;return r.handleOperation(async()=>{let i=A(A(A({},Vr),t),{},{prefix:e||``});return await jr(r.fetch,`${r.url}/object/list/${r.bucketId}`,i,{headers:r.headers},n)})}async listV2(e,t){var n=this;return n.handleOperation(async()=>{let r=A({},e);return await jr(n.fetch,`${n.url}/object/list-v2/${n.bucketId}`,r,{headers:n.headers},t)})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return typeof Buffer<`u`?Buffer.from(e).toString(`base64`):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,``)}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,``).replace(/\/+/g,`/`)}applyTransformOptsToQuery(e,t){return t.width&&e.set(`width`,t.width.toString()),t.height&&e.set(`height`,t.height.toString()),t.resize&&e.set(`resize`,t.resize),t.format&&e.set(`format`,t.format),t.quality&&e.set(`quality`,t.quality.toString()),e}},Wr={"X-Client-Info":`storage-js/2.108.2`},Gr=class extends Ir{constructor(e,t={},n,r){let i=new URL(e);r?.useNewHostname&&/supabase\.(co|in|red)$/.test(i.hostname)&&!i.hostname.includes(`storage.supabase.`)&&(i.hostname=i.hostname.replace(`supabase.`,`storage.supabase.`));let a=i.href.replace(/\/$/,``),o=A(A({},Wr),t);super(a,o,n,`storage`)}async listBuckets(e){var t=this;return t.handleOperation(async()=>{let n=t.listBucketOptionsToQueryString(e);return await Ar(t.fetch,`${t.url}/bucket${n}`,{headers:t.headers})})}async getBucket(e){var t=this;return t.handleOperation(async()=>await Ar(t.fetch,`${t.url}/bucket/${e}`,{headers:t.headers}))}async createBucket(e,t={public:!1}){var n=this;return n.handleOperation(async()=>await jr(n.fetch,`${n.url}/bucket`,{id:e,name:e,type:t.type,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:n.headers}))}async updateBucket(e,t){var n=this;return n.handleOperation(async()=>await Mr(n.fetch,`${n.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:n.headers}))}async emptyBucket(e){var t=this;return t.handleOperation(async()=>await jr(t.fetch,`${t.url}/bucket/${e}/empty`,{},{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await Pr(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}listBucketOptionsToQueryString(e){let t={};return e&&(`limit`in e&&(t.limit=String(e.limit)),`offset`in e&&(t.offset=String(e.offset)),e.search&&(t.search=e.search),e.sortColumn&&(t.sortColumn=e.sortColumn),e.sortOrder&&(t.sortOrder=e.sortOrder)),Object.keys(t).length>
290?`?`+new URLSearchParams(t).toString():``}},Kr=class extends Ir{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=A(A({},Wr),t);super(r,i,n,`storage`)}async createBucket(e){var t=this;return t.handleOperation(async()=>await jr(t.fetch,`${t.url}/bucket`,{name:e},{headers:t.headers}))}async listBuckets(e){var t=this;return t.handleOperation(async()=>{let n=new URLSearchParams;e?.limit!==void 0&&n.set(`limit`,e.limit.toString()),e?.offset!==void 0&&n.set(`offset`,e.offset.toString()),e?.sortColumn&&n.set(`sortColumn`,e.sortColumn),e?.sortOrder&&n.set(`sortOrder`,e.sortOrder),e?.search&&n.set(`search`,e.search);let r=n.toString(),i=r?`${t.url}/bucket?${r}`:`${t.url}/bucket`;return await Ar(t.fetch,i,{headers:t.headers})})}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await Pr(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}from(e){var t=this;if(!wr(e))throw new hr(`Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.`);let n=new lr({baseUrl:this.url,catalogName:e,auth:{type:`custom`,getHeaders:async()=>t.headers},fetch:this.fetch}),r=this.shouldThrowOnError;return new Proxy(n,{get(e,t){let n=e[t];return typeof n==`function`?async(...t)=>{try{return{data:await n.apply(e,t),error:null}}catch(e){if(r)throw e;return{data:null,error:e}}}:n}})}},qr=class extends Ir{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=A(A({},Wr),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async createIndex(e){var t=this;return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/CreateIndex`,e,{headers:t.headers})||{})}async getIndex(e,t){var n=this;return n.handleOperation(async()=>await Fr.post(n.fetch,`${n.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers}))}async listIndexes(e){var t=this;return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/ListIndexes`,e,{headers:t.headers}))}async deleteIndex(e,t){var n=this;return n.handleOperation(async()=>await Fr.post(n.fetch,`${n.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers})||{})}},Jr=class extends Ir{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=A(A({},Wr),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async putVectors(e){var t=this;if(e.vectors.length<1||e.vectors.length>500)throw Error(`Vector batch size must be between 1 and 500 items`);return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/PutVectors`,e,{headers:t.headers})||{})}async getVectors(e){var t=this;return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/GetVectors`,e,{headers:t.headers}))}async listVectors(e){var t=this;if(e.segmentCount!==void 0){if(e.segmentCount<1||e.segmentCount>16)throw Error(`segmentCount must be between 1 and 16`);if(e.segmentIndex!==void 0&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw Error(`segmentIndex must be between 0 and ${e.segmentCount-1}`)}return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/ListVectors`,e,{headers:t.headers}))}async queryVectors(e){var t=this;return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/QueryVectors`,e,{headers:t.headers}))}async deleteVectors(e){var t=this;if(e.keys.length<1||e.keys.length>500)throw Error(`Keys batch size must be between 1 and 500 items`);return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/DeleteVectors`,e,{headers:t.headers})||{})}},Yr=class extends Ir{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=A(A({},Wr),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async createBucket(e){var t=this;return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}async getBucket(e){var t=this;return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/GetVectorBucket`,{vectorBucketName:e},{headers:t.headers}))}async listBuckets(e={}){var t=this;return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/ListVectorBuckets`,e,{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await Fr.post(t.fetch,`${t.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}},Xr=class extends Yr{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new Zr(this.url,this.headers,e,this.fetch)}async createBucket(e){var t=()=>super.createBucket,n=this;return t().call(n,e)}async getBucket(e){var t=()=>super.getBucket,n=this;return t().call(n,e)}async listBuckets(e={}){var t=()=>super.listBuckets,n=this;return t().call(n,e)}async deleteBucket(e){var t=()=>super.deleteBucket,n=this;return t().call(n,e)}},Zr=class extends qr{constructor(e,t,n,r){super(e,t,r),this.vectorBucketName=n}async createIndex(e){var t=()=>super.createIndex,n=this;return t().call(n,A(A({},e),{},{vectorBucketName:n.vectorBucketName}))}
29async listIndexes(e={}){var t=()=>super.listIndexes,n=this;return t().call(n,A(A({},e),{},{vectorBucketName:n.vectorBucketName}))}async getIndex(e){var t=()=>super.getIndex,n=this;return t().call(n,n.vectorBucketName,e)}async deleteIndex(e){var t=()=>super.deleteIndex,n=this;return t().call(n,n.vectorBucketName,e)}index(e){return new Qr(this.url,this.headers,this.vectorBucketName,e,this.fetch)}},Qr=class extends Jr{constructor(e,t,n,r,i){super(e,t,i),this.vectorBucketName=n,this.indexName=r}async putVectors(e){var t=()=>super.putVectors,n=this;return t().call(n,A(A({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async getVectors(e){var t=()=>super.getVectors,n=this;return t().call(n,A(A({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async listVectors(e={}){var t=()=>super.listVectors,n=this;return t().call(n,A(A({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async queryVectors(e){var t=()=>super.queryVectors,n=this;return t().call(n,A(A({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async deleteVectors(e){var t=()=>super.deleteVectors,n=this;return t().call(n,A(A({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}},$r=class extends Gr{constructor(e,t={},n,r){super(e,t,n,r)}from(e){return new Ur(this.url,this.headers,e,this.fetch)}get vectors(){return new Xr(this.url+`/vector`,{headers:this.headers,fetch:this.fetch})}get analytics(){return new Kr(this.url+`/iceberg`,this.headers,this.fetch)}},ei=`2.108.2`,ti=30*1e3,ni=3*ti,ri=2*ti,ii=`http://localhost:9999`,ai=`supabase.auth.token`,oi={"X-Client-Info":`gotrue-js/${ei}`},si=`X-Supabase-Api-Version`,ci={"2024-01-01":{timestamp:Date.parse(`2024-01-01T00:00:00.0Z`),name:`2024-01-01`}},li=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,ui=class extends Error{constructor(e,t,n){super(e),this.__isAuthError=!0,this.name=`AuthError`,this.status=t,this.code=n}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code}}};function j(e){return typeof e==`object`&&!!e&&`__isAuthError`in e}var di=class extends ui{constructor(e,t,n){super(e,t,n),this.name=`AuthApiError`,this.status=t,this.code=n}};function fi(e){return j(e)&&e.name===`AuthApiError`}var pi=class extends ui{constructor(e,t){super(e),this.name=`AuthUnknownError`,this.originalError=t}},mi=class extends ui{constructor(e,t,n,r){super(e,n,r),this.name=t,this.status=n}},M=class extends mi{constructor(){super(`Auth session missing!`,`AuthSessionMissingError`,400,void 0)}};function hi(e){return j(e)&&e.name===`AuthSessionMissingError`}var gi=class extends mi{constructor(){super(`Auth session or user missing`,`AuthInvalidToken
29ResponseError`,500,void 0)}},_i=class extends mi{constructor(e){super(e,`AuthInvalidCredentialsError`,400,void 0)}},vi=class extends mi{constructor(e,t=null){super(e,`AuthImplicitGrantRedirectError`,500,void 0),this.details=null,this.details=t}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}};function yi(e){return j(e)&&e.name===`AuthImplicitGrantRedirectError`}var bi=class extends mi{constructor(e,t=null){super(e,`AuthPKCEGrantCodeExchangeError`,500,void 0),this.details=null,this.details=t}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}},xi=class extends mi{constructor(){super(`PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.`,`AuthPKCECodeVerifierMissingError`,400,`pkce_code_verifier_not_found`)}},Si=class extends mi{constructor(e,t){super(e,`AuthRetryableFetchError`,t,void 0)}};function Ci(e){return j(e)&&e.name===`AuthRetryableFetchError`}var wi=class extends mi{constructor(e=`Refresh result discarded: session state changed mid-flight (e.g., concurrent signOut)`){super(e,`AuthRefreshDiscardedError`,409,void 0)}};function Ti(e){return j(e)&&e.name===`AuthRefreshDiscardedError`}var Ei=class extends mi{constructor(e,t,n){super(e,`AuthWeakPasswordError`,t,`weak_password`),this.reasons=n}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reasons:this.reasons})}},Di=class extends mi{constructor(e){super(e,`AuthInvalidJwtError`,400,`invalid_jwt`)}},Oi=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`.split(``),ki=` 	
30\r=`.split(``),Ai=(()=>{let e=Array(128);for(let t=0;t<e.length;t+=1)e[t]=-1;for(let t=0;t<ki.length;t+=1)e[ki[t].charCodeAt(0)]=-2;for(let t=0;t<Oi.length;t+=1)e[Oi[t].charCodeAt(0)]=t;return e})();function ji(e,t,n){if(e!==null)for(t.queue=t.queue<<8|e,t.queuedBits+=8;t.queuedBits>=6;)n(Oi[t.queue>>t.queuedBits-6&63]),t.queuedBits-=6;else if(t.queuedBits>0)for(t.queue<<=6-t.queuedBits,t.queuedBits=6;t.queuedBits>=6;)n(Oi[t.queue>>t.queuedBits-6&63]),t.queuedBits-=6}function Mi(e,t,n){let r=Ai[e];if(r>-1)for(t.queue=t.queue<<6|r,t.queuedBits+=6;t.queuedBits>=8;)n(t.queue>>t.queuedBits-8&255),t.queuedBits-=8;else if(r===-2)return;else throw Error(`Invalid Base64-URL character "${String.fromCharCode(e)}"`)}function Ni(e){let t=[],n=e=>{t.push(String.fromCodePoint(e))},r={utf8seq:0,codepoint:0},i={queue:0,queuedBits:0},a=e=>{Ii(e,r,n)};for(let t=0;t<e.length;t+=1)Mi(e.charCodeAt(t),i,a);return t.join(``)}function Pi(e,t){if(e<=127){t(e);return}else if(e<=2047){t(192|e>>6),t(128|e&63);return}else if(e<=65535){t(224|e>>12),t(128|e>>6&63),t(128|e&63);return}else if(e<=1114111){t(240|e>>18),t(128|e>>12&63),t(128|e>>6&63),t(128|e&63);return}throw Error(`Unrecognized Unicode codepoint: ${e.toString(16)}`)}function Fi(e,t){for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);if(r>55295&&r<=56319){let t=(r-55296)*1024&65535;r=(e.charCodeAt(n+1)-56320&65535|t)+65536,n+=1}Pi(r,t)}}function Ii(e,t,n){if(t.utf8seq===0){if(e<=127){n(e);return}for(let n=1;n<6;n+=1)if(!(e>>7-n&1)){t.utf8seq=n;break}if(t.utf8seq===2)t.codepoint=e&31;else if(t.utf8seq===3)t.codepoint=e&15;else if(t.utf8seq===4)t.codepoint=e&7;else throw Error(`Invalid UTF-8 sequence`);--t.utf8seq}else if(t.utf8seq>0){if(e<=127)throw Error(`Invalid UTF-8 sequence`);t.codepoint=t.codepoint<<6|e&63,--t.utf8seq,t.utf8seq===0&&n(t.codepoint)}}function Li(e){let t=[],n={queue:0,queuedBits:0},r=e=>{t.push(e)};for(let t=0;t<e.length;t+=1)Mi(e.charCodeAt(t),n,r);return new Uint8Array(t)}function Ri(e){let t=[];return Fi(e,e=>t.push(e)),new Uint8Array(t)}function zi(e){let t=[],n={queue:0,queuedBits:0},r=e=>{t.push(e)};return e.forEach(e=>ji(e,n,r)),ji(null,n,r),t.join(``)}function Bi(e){return Math.round(Date.now()/1e3)+e}function N(){return Symbol(`auth-callback`)}var Vi=()=>typeof window<`u`&&typeof document<`u`,Hi={tested:!1,writable:!1},Ui=()=>
30{if(!Vi())return!1;try{if(typeof globalThis.localStorage!=`object`)return!1}catch{return!1}if(Hi.tested)return Hi.writable;let e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),Hi.tested=!0,Hi.writable=!0}catch{Hi.tested=!0,Hi.writable=!1}return Hi.writable};function Wi(e){let t={},n=new URL(e);if(n.hash&&n.hash[0]===`#`)try{new URLSearchParams(n.hash.substring(1)).forEach((e,n)=>{t[n]=e})}catch{}return n.searchParams.forEach((e,n)=>{t[n]=e}),t}var Gi=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),Ki=e=>typeof e==`object`&&!!e&&`status`in e&&`ok`in e&&`json`in e&&typeof e.json==`function`,qi=async(e,t,n)=>{await e.setItem(t,JSON.stringify(n))},Ji=async(e,t)=>{let n=await e.getItem(t);if(!n)return null;try{return JSON.parse(n)}catch{return null}},Yi=async(e,t)=>{await e.removeItem(t)},Xi=class e{constructor(){this.promise=new e.promiseConstructor((e,t)=>{this.resolve=e,this.reject=t})}};Xi.promiseConstructor=Promise;function Zi(e){let t=e.split(`.`);if(t.length!==3)throw new Di(`Invalid JWT structure`);for(let e=0;e<t.length;e++)if(!li.test(t[e]))throw new Di(`JWT not in base64url format`);return{header:JSON.parse(Ni(t[0])),payload:JSON.parse(Ni(t[1])),signature:Li(t[2]),raw:{header:t[0],payload:t[1]}}}async function Qi(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function $i(e,t){return new Promise((n,r)=>{(async()=>{for(let i=0;i<1/0;i++)try{let r=await e(i);if(!t(i,null,r)){n(r);return}}catch(e){if(!t(i,e)){r(e);return}}})()})}function ea(e){return(`0`+e.toString(16)).substr(-2)}function ta(){let e=new Uint32Array(56);if(typeof crypto>`u`){let e=``;for(let t=0;t<56;t++)e+=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~`.charAt(Math.floor(Math.random()*66));return e}return crypto.getRandomValues(e),Array.from(e,ea).join(``)}async function na(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t),r=new Uint8Array(n);return Array.from(r).map(e=>String.fromCharCode(e)).join(``)}async function ra(e){if(!(typeof crypto<`u`&&crypto.subtle!==void 0&&typeof TextEncoder<`u`))return console.warn(`WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.`),e;let t=await na(e);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function ia(e,t,n=!1){let r=ta(),i=r;n&&(i+=`/recovery`),await qi(e,`${t}-code-verifier`,i);let a=await ra(r);return[a,r===a?`plain`:`s256`]}var aa=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function oa(e){let t=e.headers.get(si);if(!t||!t.match(aa))return null;try{return new Date(`${t}T00:00:00.0Z`)}catch{return null}}function sa(e){if(!e)throw Error(`Missing exp claim`);if(e<=Math.floor(Date.now()/1e3))throw Error(`JWT has expired`)}function ca(e){switch(e){case`RS256`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-256`}};case`ES256`:return{name:`ECDSA`,namedCurve:`P-256`,hash:{name:`SHA-256`}};default:throw Error(`Invalid alg claim`)}}var la=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function ua(e){if(!la.test(e))throw Error(`@supabase/auth-js: Expected parameter to be UUID but is not`)}function da(e){if(!e.passkey)throw Error("@supabase/auth-js: the passkey API is experimental and disabled by default. Enable it by passing `auth: { experimental: { passkey: true } }` to createClient (or to the GoTrueClient constructor).")}function fa(){return new Proxy({},{get:(e,t)=>{if(t===`__isUserNotAvailableProxy`)return!0;if(typeof t==`symbol`){let e=t.toString();if(e===`Symbol(Symbol.toPrimitive)`||e===`Symbol(Symbol.toStringTag)`||e===`Symbol(util.inspect.custom)`)return}throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${t}" property of the session object is not supported. Please use getUser() instead.`)},set:(e,t)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${t}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(e,t)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${t}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function pa(e,t){return new Proxy(e,{get:(e,n,r)=>{if(n===`__isInsecureUserWarningProxy`)return!0;
30if(typeof n==`symbol`){let t=n.toString();if(t===`Symbol(Symbol.toPrimitive)`||t===`Symbol(Symbol.toStringTag)`||t===`Symbol(util.inspect.custom)`||t===`Symbol(nodejs.util.inspect.custom)`)return Reflect.get(e,n,r)}return!t.value&&typeof n==`string`&&(console.warn(`Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.`),t.value=!0),Reflect.get(e,n,r)}})}function ma(e){return JSON.parse(JSON.stringify(e))}var ha=e=>{if(typeof e==`object`&&e){let t=e;if(typeof t.msg==`string`)return t.msg;if(typeof t.message==`string`)return t.message;if(typeof t.error_description==`string`)return t.error_description;if(typeof t.error==`string`)return t.error}return JSON.stringify(e)},ga=[500,501,502,503,504,520,521,522,523,524,525,526,527,528,529,530];async function _a(e){if(!Ki(e))throw new Si(ha(e),0);if(ga.includes(e.status))throw new Si(ha(e),e.status);let t;try{t=await e.json()}catch(e){throw new pi(ha(e),e)}let n,r=oa(e);if(r&&r.getTime()>=ci[`2024-01-01`].timestamp&&typeof t==`object`&&t&&typeof t.code==`string`?n=t.code:typeof t==`object`&&t&&typeof t.error_code==`string`&&(n=t.error_code),!n){if(typeof t==`object`&&t&&typeof t.weak_password==`object`&&t.weak_password&&Array.isArray(t.weak_password.reasons)&&t.weak_password.reasons.length&&t.weak_password.reasons.reduce((e,t)=>e&&typeof t==`string`,!0))throw new Ei(ha(t),e.status,t.weak_password.reasons)}else if(n===`weak_password`)throw new Ei(ha(t),e.status,t.weak_password?.reasons||[]);else if(n===`session_not_found`)throw new M;throw new di(ha(t),e.status||500,n)}var va=(e,t,n,r)=>{let i={method:e,headers:t?.headers||{}};return e===`GET`?i:(i.headers=Object.assign({"Content-Type":`application/json;charset=UTF-8`},t?.headers),i.body=JSON.stringify(r),Object.assign(Object.assign({},i),n))};async function P(e,t,n,r){let i=Object.assign({},r?.headers);i[`X-Supabase-Api-Version`]||(i[si]=ci[`2024-01-01`].name),r?.jwt&&(i.Authorization=`Bearer ${r.jwt}`);let a=r?.query??{};r?.redirectTo&&(a.redirect_to=r.redirectTo);let o=await ya(e,t,n+(Object.keys(a).length?`?`+new URLSearchParams(a).toString():``),{headers:i,noResolveJson:r?.noResolveJson},{},r?.body);return r?.xform?r?.xform(o):{data:Object.assign({},o),error:null}}async function ya(e,t,n,r,i,a){let o=va(t,r,i,a),s;try{s=await e(n,Object.assign({},o))}catch(e){throw console.error(e),new Si(ha(e),0)}if(s.ok||await _a(s),r?.noResolveJson)return s;try{return await s.json()}catch(e){await _a(e)}}function ba(e){let t=null;Ea(e)&&(t=Object.assign({},e),e.expires_at||(t.expires_at=Bi(e.expires_in)));let n=e.user??(typeof e?.id==`string`?e:null);return{data:{session:t,user:n},error:null}}function xa(e){let t=ba(e);return!t.error&&e.weak_password&&typeof e.weak_password==`object`&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message==`string`&&e.weak_password.reasons.reduce((e,t)=>e&&typeof t==`string`,!0)&&(t.data.weak_password=e.weak_password),t}function Sa(e){return{data:{user:e.user??e},error:null}}function Ca(e){return{data:e,error:null}}function wa(e){let{action_link:t,email_otp:n,hashed_token:r,redirect_to:i,verification_type:a}=e,o=mt(e,[`action_link`,`email_otp`,`hashed_token`,`redirect_to`,`verification_type`]);return{data:{properties:{action_link:t,email_otp:n,hashed_token:r,redirect_to:i,verification_type:a},user:Object.assign({},o)},error:null}}function Ta(e){return e}function Ea(e){return!!e.access_token&&!!e.refresh_token&&!!e.expires_in}var Da=[`global`,`local`,`others`],Oa=class{constructor({url:e=``,headers:t={},fetch:n,experimental:r}){this.url=e,this.headers=t,this.fetch=Gi(n),this.experimental=r??{},this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)},this.customProviders={listProviders:this._listCustomProviders.bind(this),createProvider:this._createCustomProvider.bind(this),getProvider:this._getCustomProvider.bind(this),updateProvider:this._updateCustomProvider.bind(this),deleteProvider:this._deleteCustomProvider.bind(this)},this.passkey={listPasskeys:this._adminListPasskeys.bind(this),deletePasskey:this._adminDeletePasskey.bind(this)}}
30async signOut(e,t=Da[0]){if(Da.indexOf(t)<0)throw Error(`@supabase/auth-js: Parameter scope must be one of ${Da.join(`, `)}`);try{return await P(this.fetch,`POST`,`${this.url}/logout?scope=${t}`,{headers:this.headers,jwt:e,noResolveJson:!0}),{data:null,error:null}}catch(e){if(j(e))return{data:null,error:e};throw e}}async inviteUserByEmail(e,t={}){try{return await P(this.fetch,`POST`,`${this.url}/invite`,{body:{email:e,data:t.data},headers:this.headers,redirectTo:t.redirectTo,xform:Sa})}catch(e){if(j(e))return{data:{user:null},error:e};throw e}}async generateLink(e){try{let{options:t}=e,n=mt(e,[`options`]),r=Object.assign(Object.assign({},n),t);return`newEmail`in n&&(r.new_email=n?.newEmail,delete r.newEmail),await P(this.fetch,`POST`,`${this.url}/admin/generate_link`,{body:r,headers:this.headers,xform:wa,redirectTo:t?.redirectTo})}catch(e){if(j(e))return{data:{properties:null,user:null},error:e};throw e}}async createUser(e){try{return await P(this.fetch,`POST`,`${this.url}/admin/users`,{body:e,headers:this.headers,xform:Sa})}catch(e){if(j(e))return{data:{user:null},error:e};throw e}}async listUsers(e){try{let t={nextPage:null,lastPage:0,total:0},n=await P(this.fetch,`GET`,`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(e?.page)?.toString()??``,per_page:(e?.perPage)?.toString()??``},xform:Ta});if(n.error)throw n.error;let r=await n.json(),i=n.headers.get(`x-total-count`)??0,a=n.headers.get(`link`)?.split(`,`)??[];return a.length>0&&(a.forEach(e=>{let n=parseInt(e.split(`;`)[0].split(`=`)[1].substring(0,1)),r=JSON.parse(e.split(`;`)[1].split(`=`)[1]);t[`${r}Page`]=n}),t.total=parseInt(i)),{data:Object.assign(Object.assign({},r),t),error:null}}catch(e){if(j(e))return{data:{users:[]},error:e};throw e}}async getUserById(e){ua(e);try{return await P(this.fetch,`GET`,`${this.url}/admin/users/${e}`,{headers:this.headers,xform:Sa})}catch(e){if(j(e))return{data:{user:null},error:e};throw e}}async updateUserById(e,t){ua(e);try{return await P(this.fetch,`PUT`,`${this.url}/admin/users/${e}`,{body:t,headers:this.headers,xform:Sa})}catch(e){if(j(e))return{data:{user:null},error:e};throw e}}async deleteUser(e,t=!1){ua(e);try{return await P(this.fetch,`DELETE`,`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:t},xform:Sa})}catch(e){if(j(e))return{data:{user:null},error:e};throw e}}async _listFactors(e){ua(e.userId);try{let{data:t,error:n}=await P(this.fetch,`GET`,`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:e=>({data:{factors:e},error:null})});return{data:t,error:n}}catch(e){if(j(e))return{data:null,error:e};throw e}}async _deleteFactor(e){ua(e.userId),ua(e.id);try{return{data:await P(this.fetch,`DELETE`,`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers}),error:null}}catch(e){if(j(e))return{data:null,error:e};throw e}}async _listOAuthClients(e){try{let t={nextPage:null,lastPage:0,total:0},n=await P(this.fetch,`GET`,`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(e?.page)?.toString()??``,per_page:(e?.perPage)?.toString()??``},xform:Ta});if(n.error)throw n.error;let r=await n.json(),i=n.headers.get(`x-total-count`)??0,a=n.headers.get(`link`)?.split(`,`)??[];return a.length>0&&(a.forEach(e=>{let n=parseInt(e.split(`;`)[0].split(`=`)[1].substring(0,1)),r=JSON.parse(e.split(`;`)[1].split(`=`)[1]);t[`${r}Page`]=n}),t.total=parseInt(i)),{data:Object.assign(Object.assign({},r),t),error:null}}catch(e){if(j(e))return{data:{clients:[]},error:e};throw e}}async _createOAuthClient(e){try{return await P(this.fetch,`POST`,`${this.url}/admin/oauth/clients`,{body:e,headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(j(e))return{data:null,error:e};throw e}}async _getOAuthClient(e){try{return await P(this.fetch,`GET`,`${this.url}/admin/oauth/clients/${e}`,{headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(j(e))return{data:null,error:e};throw e}}async _updateOAuthClient(e,t){try{return await P(this.fetch,`PUT`,`${this.url}/admin/oauth/clients/${e}`,{body:t,headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(j(e))return{data:null,error:e};throw e}}async _deleteOAuthClient(e){try{return await P(this.fetch,`DELETE`,`${this.url}/admin/oauth/clients/${e}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(e){if(j(e))return{data:null,error:e};throw e}}async _regenerateOAuthClientSecret(e){try{return await P(this.fetch,`POST`,`${this.url}/admin/oauth/clients/${e}/regenerate_secret`,{headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(j(e))return{data:null,error:e};throw e}}async _listCustomProviders(e){try{let t={};return e?.type&&(t.type=e.type),await P(this.fetch,`GET`,`${this.url}/admin/custom-providers`,{headers:this.headers,query:t,xform:e=>({data:{providers:e?.providers??[]},error:null})})}catch(e){if(j(e))return{data:{providers:[]},error:e};throw e}}async _createCustomProvider(e){try{return await P(this.fetch,`POST`,`${this.url}/admin/custom-providers`,{body:e,headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(j(e))return{data:null,error:e};throw e}}async _getCustomProvider(e){try{return await P(this.fetch,`GET`,`${this.url}/admin/custom-providers/${e}`,{headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(j(e))return{data:null,error:e};throw e}}async _updateCustomProvider(e,t){try{return await P(this.fetch,`PUT`,`${this.url}/admin/custom-providers/${e}`,{body:t,headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(j(e))return{data:null,error:e};throw e}}async _deleteCustomProvider(e){try{return await P(this.fetch,`DELETE`,`${this.url}/admin/custom-providers/${e}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(e){if(j(e))return{data:null,error:e};throw e}}async _adminListPasskeys(e){da(this.experimental),ua(e.userId);try{return await P(this.fetch,`GET`,`${this.url}/admin/users/${e.userId}/passkeys`,{headers:this.headers,xform:e=>({data:e,error:null})})}catch(e){if(j(e))return{data:null,error:e};throw e}}async _adminDeletePasskey(e){da(this.experimental),ua(e.userId),ua(e.passkeyId);try{return await P(this.fetch,`DELETE`,`${this.url}/admin/users/${e.userId}/passkeys/${e.passkeyId}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(e){if(j(e))return{data:null,error:e};throw e}}};function ka(e={}){return{getItem:t=>
30e[t]||null,setItem:(t,n)=>{e[t]=n},removeItem:t=>{delete e[t]}}}globalThis&&Ui()&&globalThis.localStorage&&globalThis.localStorage.getItem(`supabase.gotrue-js.locks.debug`);var Aa=class extends Error{constructor(e){super(e),this.isAcquireTimeout=!0}};function ja(){if(typeof globalThis!=`object`)try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<`u`&&(self.globalThis=self)}}function Ma(e){if(!/^0x[a-fA-F0-9]{40}$/.test(e))throw Error(`@supabase/auth-js: Address "${e}" is invalid.`);return e.toLowerCase()}function Na(e){return parseInt(e,16)}function Pa(e){let t=new TextEncoder().encode(e);return`0x`+Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``)}function Fa(e){let{chainId:t,domain:n,expirationTime:r,issuedAt:i=new Date,nonce:a,notBefore:o,requestId:s,resources:c,scheme:l,uri:u,version:d}=e;if(!Number.isInteger(t))throw Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${t}`);if(!n)throw Error(`@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.`);if(a&&a.length<8)throw Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${a}`);if(!u)throw Error(`@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.`);if(d!==`1`)throw Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${d}`);if(e.statement?.includes(`
31`))throw Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${e.statement}`);let f=Ma(e.address),p=`${l?`${l}://${n}`:n} wants you to sign in with your Ethereum account:\n${f}\n\n${e.statement?`${e.statement}\n`:``}`,m=`URI: ${u}\nVersion: ${d}\nChain ID: ${t}${a?`\nNonce: ${a}`:``}\nIssued At: ${i.toISOString()}`;if(r&&(m+=`\nExpiration Time: ${r.toISOString()}`),o&&(m+=`\nNot Before: ${o.toISOString()}`),s&&(m+=`\nRequest ID: ${s}`),c){let e=`
32Resources:`;for(let t of c){if(!t||typeof t!=`string`)throw Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${t}`);e+=`\n- ${t}`}m+=e}return`${p}\n${m}`}var Ia=class extends Error{constructor({message:e,code:t,cause:n,name:r}){super(e,{cause:n}),this.__isWebAuthnError=!0,this.name=r??(n instanceof Error?n.name:void 0)??`Unknown Error`,this.code=t}toJSON(){return{name:this.name,message:this.message,code:this.code}}},La=class extends Ia{constructor(e,t){super({code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:t,message:e}),this.name=`WebAuthnUnknownError`,this.originalError=t}};function Ra({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new Ia({message:`Registration ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`ConstraintError`){if(n.authenticatorSelection?.requireResidentKey===!0)return new Ia({message:`Discoverable credentials were required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT`,cause:e});if(t.mediation===`conditional`&&n.authenticatorSelection?.userVerification===`required`)return new Ia({message:`User verification was required during automatic registration but it could not be performed`,code:`ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE`,cause:e});if(n.authenticatorSelection?.userVerification===`required`)return new Ia({message:`User verification was required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT`,cause:e})}else if(e.name===`InvalidStateError`)return new Ia({message:`The authenticator was previously registered`,code:`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`,cause:e});else if(e.name===`NotAllowedError`)return new Ia({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`NotSupportedError`)return n.pubKeyCredParams.filter(e=>e.type===`public-key`).length===0?new Ia({message:`No entry in pubKeyCredParams was of type "public-key"`,code:`ERROR_MALFORMED_PUBKEYCREDPARAMS`,cause:e}):new Ia({message:`No available authenticator supported any of the specified pubKeyCredParams algorithms`,code:`ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG`,cause:e});else if(e.name===`SecurityError`){let t=window.location.hostname;if(!Ga(t))return new Ia({message:`${window.location.hostname}
32 is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rp.id!==t)return new Ia({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`TypeError`){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new Ia({message:`User ID was not between 1 and 64 characters`,code:`ERROR_INVALID_USER_ID_LENGTH`,cause:e})}else if(e.name===`UnknownError`)return new Ia({message:`The authenticator was unable to process the specified options, or could not create a new credential`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return new Ia({message:`a Non-Webauthn related error has occurred`,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e})}function za({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new Ia({message:`Authentication ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`NotAllowedError`)return new Ia({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`SecurityError`){let t=window.location.hostname;if(!Ga(t))return new Ia({message:`${window.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rpId!==t)return new Ia({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`UnknownError`)return new Ia({message:`The authenticator was unable to process the specified options, or could not create a new assertion signature`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return new Ia({message:`a Non-Webauthn related error has occurred`,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e})}var Ba=new class{createNewAbortSignal(){if(this.controller){let e=Error(`Cancelling existing WebAuthn API call for new one`);e.name=`AbortError`,this.controller.abort(e)}let e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){let e=Error(`Manually cancelling existing WebAuthn API call`);e.name=`AbortError`,this.controller.abort(e),this.controller=void 0}}};function Va(e){if(!e)throw Error(`Credential creation options are required`);if(typeof PublicKeyCredential<`u`&&`parseCreationOptionsFromJSON`in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON==`function`)return PublicKeyCredential.parseCreationOptionsFromJSON(e);let{challenge:t,user:n,excludeCredentials:r}=e,i=mt(e,[`challenge`,`user`,`excludeCredentials`]),a=Li(t).buffer,o=Object.assign(Object.assign({},n),{id:Li(n.id).buffer}),s=Object.assign(Object.assign({},i),{challenge:a,user:o});if(r&&r.length>0){s.excludeCredentials=Array(r.length);for(let e=0;e<r.length;e++){let t=r[e];s.excludeCredentials[e]=Object.assign(Object.assign({},t),{id:Li(t.id).buffer,type:t.type||`public-key`,transports:t.transports})}}return s}function Ha(e){if(!e)throw Error(`Credential request options are required`);if(typeof PublicKeyCredential<`u`&&`parseRequestOptionsFromJSON`in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON==`function`)return PublicKeyCredential.parseRequestOptionsFromJSON(e);let{challenge:t,allowCredentials:n}=e,r=mt(e,[`challenge`,`allowCredentials`]),i=Li(t).buffer,a=Object.assign(Object.assign({},r),{challenge:i});if(n&&n.length>0){a.allowCredentials=Array(n.length);for(let e=0;e<n.length;e++){let t=n[e];a.allowCredentials[e]=Object.assign(Object.assign({},t),{id:Li(t.id).buffer,type:t.type||`public-key`,transports:t.transports})}}return a}function Ua(e){if(`toJSON`in e&&typeof e.toJSON==`function`)return e.toJSON();let t=e;return{id:e.id,rawId:e.id,response:{attestationObject:zi(new Uint8Array(e.response.attestationObject)),clientDataJSON:zi(new Uint8Array(e.response.clientDataJSON))},type:`public-key`,clientExtensionResults:e.getClientExtensionResults(),authenticatorAttachment:t.authenticatorAttachment??void 0}}function Wa(e){if(`toJSON`in e&&typeof e.toJSON==`function`)return e.toJSON();let t=e,n=e.getClientExtensionResults(),r=e.response;return{id:e.id,rawId:e.id,response:{authenticatorData:zi(new Uint8Array(r.authenticatorData)),clientDataJSON:zi(new Uint8Array(r.clientDataJSON)),signature:zi(new Uint8Array(r.signature)),userHandle:r.userHandle?zi(new Uint8Array(r.userHandle)):void 0},type:`public-key`,clientExtensionResults:n,authenticatorAttachment:t.authenticatorAttachment??void 0}}function Ga(e){return e===`localhost`||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}function Ka(){return!!(Vi()&&`PublicKeyCredential`in window&&window.PublicKeyCredential&&`credentials`in navigator&&typeof(navigator==null?void 0:navigator.credentials)?.create==`function`&&typeof(navigator==null?void 0:navigator.credentials)?.get==`function`)}async function qa(e){try{let t=await navigator.credentials.create(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new La(`Browser returned unexpected credential type`,t)}:{data:null,error:new La(`Empty credential response`,t)}}
32catch(t){return{data:null,error:Ra({error:t,options:e})}}}async function Ja(e){try{let t=await navigator.credentials.get(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new La(`Browser returned unexpected credential type`,t)}:{data:null,error:new La(`Empty credential response`,t)}}catch(t){return{data:null,error:za({error:t,options:e})}}}var Ya={hints:[`security-key`],authenticatorSelection:{authenticatorAttachment:`cross-platform`,requireResidentKey:!1,userVerification:`preferred`,residentKey:`discouraged`},attestation:`direct`},Xa={userVerification:`preferred`,hints:[`security-key`],attestation:`direct`};function Za(...e){let t=e=>typeof e==`object`&&!!e&&!Array.isArray(e),n=e=>e instanceof ArrayBuffer||ArrayBuffer.isView(e),r={};for(let i of e)if(i)for(let e in i){let a=i[e];if(a!==void 0)if(Array.isArray(a))r[e]=a;else if(n(a))r[e]=a;else if(t(a)){let n=r[e];t(n)?r[e]=Za(n,a):r[e]=Za(a)}else r[e]=a}return r}function Qa(e,t){return Za(Ya,e,t||{})}function $a(e,t){return Za(Xa,e,t||{})}var eo=class{constructor(e){this.client=e,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll(e){return this.client.mfa.enroll(Object.assign(Object.assign({},e),{factorType:`webauthn`}))}async _challenge({factorId:e,webauthn:t,friendlyName:n,signal:r},i){try{let{data:a,error:o}=await this.client.mfa.challenge({factorId:e,webauthn:t});if(!a)return{data:null,error:o};let s=r??Ba.createNewAbortSignal();if(a.webauthn.type===`create`){let{user:e}=a.webauthn.credential_options.publicKey;if(!e.name){let t=n;if(t)e.name=`${e.id}:${t}`;else{let t=(await this.client.getUser()).data.user,n=t?.user_metadata?.name||t?.email||t?.id||`User`;e.name=`${e.id}:${n}`}}e.displayName||=e.name}switch(a.webauthn.type){case`create`:{let{data:t,error:n}=await qa({publicKey:Qa(a.webauthn.credential_options.publicKey,i?.create),signal:s});return t?{data:{factorId:e,challengeId:a.id,webauthn:{type:a.webauthn.type,credential_response:t}},error:null}:{data:null,error:n}}case`request`:{let t=$a(a.webauthn.credential_options.publicKey,i?.request),{data:n,error:r}=await Ja(Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:t,signal:s}));return n?{data:{factorId:e,challengeId:a.id,webauthn:{type:a.webauthn.type,credential_response:n}},error:null}:{data:null,error:r}}}}catch(e){return j(e)?{data:null,error:e}:{data:null,error:new pi(`Unexpected error in challenge`,e)}}}async _verify({challengeId:e,factorId:t,webauthn:n}){return this.client.mfa.verify({factorId:t,challengeId:e,webauthn:n})}async _authenticate({factorId:e,webauthn:{rpId:t=typeof window<`u`?window.location.hostname:void 0,rpOrigins:n=typeof window<`u`?[window.location.origin]:void 0,signal:r}={}},i){if(!t)return{data:null,error:new ui(`rpId is required for WebAuthn authentication`)};try{if(!Ka())return{data:null,error:new pi(`Browser does not support WebAuthn`,null)};let{data:a,error:o}=await this.challenge({factorId:e,webauthn:{rpId:t,rpOrigins:n},signal:r},{request:i});if(!a)return{data:null,error:o};let{webauthn:s}=a;return this._verify({factorId:e,challengeId:a.challengeId,webauthn:{type:s.type,rpId:t,rpOrigins:n,credential_response:s.credential_response}})}catch(e){return j(e)?{data:null,error:e}:{data:null,error:new pi(`Unexpected error in authenticate`,e)}}}async _register({friendlyName:e,webauthn:{rpId:t=typeof window<`u`?window.location.hostname:void 0,rpOrigins:n=typeof window<`u`?[window.location.origin]:void 0,signal:r}={}},i){if(!t)return{data:null,error:new ui(`rpId is required for WebAuthn registration`)};try{if(!Ka())return{data:null,error:new pi(`Browser does not support WebAuthn`,null)};let{data:a,error:o}=await this._enroll({friendlyName:e});if(!a)return await this.client.mfa.listFactors().then(t=>t.data?.all.find(t=>t.factor_type===`webauthn`&&t.friendly_name===e&&t.status!==`unverified`)).then(e=>e?this.client.mfa.unenroll({factorId:e?.id}):void 0),{data:null,error:o};let{data:s,error:c}=await this._challenge({factorId:a.id,friendlyName:a.friendly_name,webauthn:{rpId:t,rpOrigins:n},signal:r},{create:i});return s?this._verify({factorId:a.id,challengeId:s.challengeId,webauthn:{rpId:t,rpOrigins:n,type:s.webauthn.type,credential_response:s.webauthn.credential_response}}):{data:null,error:c}}catch(e){return j(e)?{data:null,error:e}:{data:null,error:new pi(`Unexpected error in register`,e)}}}};ja();var to={url:ii,storageKey:ai,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:oi,flowType:`implicit`,debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:5e3,skipAutoInitialize:!1,experimental:{}},no={},ro=class e{get jwks(){return no[this.storageKey]?.jwks??{keys:[]}}set jwks(e){no[this.storageKey]=Object.assign(Object.assign({},no[this.storageKey]),{jwks:e})}get jwks_cached_at(){return no[this.storageKey]?.cachedAt??-(2**53-1)}set jwks_cached_at(e){no[this.storageKey]=Object.assign(Object.assign({},no[this.storageKey]),{cachedAt:e})}constructor(t){var n;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.lastRefreshFailure=null,this._sessionRemovalEpoch=0,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lock=null,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;let r=Object.assign(Object.assign({},to),t);
32if(this.storageKey=r.storageKey,this.instanceID=e.nextInstanceID[this.storageKey]??0,e.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!r.debug,typeof r.debug==`function`&&(this.logger=r.debug),this.instanceID>0&&Vi()){let e=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(e),this.logDebugMessages&&console.trace(e)}if(this.persistSession=r.persistSession,this.autoRefreshToken=r.autoRefreshToken,this.experimental=r.experimental??{},this.admin=new Oa({url:r.url,headers:r.headers,fetch:r.fetch,experimental:this.experimental}),this.url=r.url,this.headers=r.headers,this.fetch=Gi(r.fetch),this.detectSessionInUrl=r.detectSessionInUrl,this.flowType=r.flowType,this.hasCustomAuthorizationHeader=r.hasCustomAuthorizationHeader,this.throwOnError=r.throwOnError,this.lockAcquireTimeout=r.lockAcquireTimeout,r.lock!=null&&(this.lock=r.lock),this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=-(2**53-1)),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new eo(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.passkey={startRegistration:this._startPasskeyRegistration.bind(this),verifyRegistration:this._verifyPasskeyRegistration.bind(this),startAuthentication:this._startPasskeyAuthentication.bind(this),verifyAuthentication:this._verifyPasskeyAuthentication.bind(this),list:this._listPasskeys.bind(this),update:this._updatePasskey.bind(this),delete:this._deletePasskey.bind(this)},this.persistSession?(r.storage?this.storage=r.storage:Ui()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=ka(this.memoryStorage)),r.userStorage&&(this.userStorage=r.userStorage)):(this.memoryStorage={},this.storage=ka(this.memoryStorage)),Vi()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(e){console.error(`Failed to create a new BroadcastChannel, multi-tab state changes will not be available`,e)}(n=this.broadcastChannel)==null||n.addEventListener(`message`,async e=>{this._debug(`received broadcast notification from other tab or client`,e),(e.data.event===`TOKEN_REFRESHED`||e.data.event===`SIGNED_IN`)&&(this.lastRefreshFailure=null);try{await this._notifyAllSubscribers(e.data.event,e.data.session,!1)}catch(e){this._debug(`#broadcastChannel`,`error`,e)}})}r.skipAutoInitialize||this.initialize().catch(e=>{this._debug(`#initialize()`,`error`,e)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(e){if(this.throwOnError&&e&&e.error)throw e.error;return e}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${ei}) ${new Date().toISOString()}`}_debug(...e){return this.logDebugMessages&&this.logger(this._logPrefix(),...e),this}async initialize(){return this.initializePromise||=(async()=>this.lock==null?await this._initialize():await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()))(),await this.initializePromise}async _initialize(){try{let e={},t=`none`;if(Vi()&&(e=Wi(window.location.href),this._isImplicitGrantCallback(e)?t=`implicit`:await this._isPKCECallback(e)&&(t=`pkce`)),Vi()&&this.detectSessionInUrl&&t!==`none`){let{data:n,error:r}=await this._getSessionFromURL(e,t);if(r){if(this._debug(`#_initialize()`,`error detecting session from URL`,r),yi(r)){let e=r.details?.code;if(e===`identity_already_exists`||e===`identity_not_found`||e===`single_identity_not_deletable`)return{error:r}}return{error:r}}let{session:i,redirectType:a}=n;return this._debug(`#_initialize()`,`detected session in URL`,i,`redirect type`,a),await this._saveSession(i),setTimeout(async()=>{a===`recovery`?await this._notifyAllSubscribers(`PASSWORD_RECOVERY`,i):await this._notifyAllSubscribers(`SIGNED_IN`,i)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(e){return j(e)?this._returnResult({error:e}):this._returnResult({error:new pi(`Unexpected error during initialization`,e)})}finally{await this._handleVisibilityChange(),this._debug(`#_initialize()`,`end`)}}async signInAnonymously(e){try{let{data:t,error:n}=await P(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,body:{data:e?.options?.data??{},gotrue_meta_security:{captcha_token:e?.options?.captchaToken}},xform:ba});if(n||!t)return this._returnResult({data:{user:null,session:null},error:n});let r=t.session,i=t.user;return t.session&&(await this._saveSession(t.session),await this._notifyAllSubscribers(`SIGNED_IN`,r)),this._returnResult({data:{user:i,session:r},error:null})}catch(e){if(j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signUp(e){try{let t;if(`email`in e){let{email:n,password:r,options:i}=e,a=null,o=null;this.flowType===`pkce`&&([a,o]=await ia(this.storage,this.storageKey)),t=await P(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,redirectTo:i?.emailRedirectTo,body:{email:n,password:r,data:i?.data??{},gotrue_meta_security:{captcha_token:i?.captchaToken},code_challenge:a,code_challenge_method:o},xform:ba})}else if(`phone`in e){let{phone:n,password:r,options:i}=e;t=await P(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,body:{phone:n,password:r,data:i?.data??{},channel:i?.channel??`sms`,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:ba})}else throw new _i(`You must provide either an email or phone number and a password`);let{data:n,error:r}=t;if(r||!n)return await Yi(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:r});let i=n.session,a=n.user;return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,i)),this._returnResult({data:{user:a,session:i},error:null})}catch(e){if(await Yi(this.storage,`${this.storageKey}-code-verifier`),j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithPassword(e){try{let t;if(`email`in e){let{email:n,password:r,options:i}=e;t=await P(this.fetch,`POST`,`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:n,password:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:xa})}else if(`phone`in e){let{phone:n,password:r,options:i}=e;t=await P(this.fetch,`POST`,`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:n,password:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:xa})}else throw new _i(`You must provide either an email or phone number and a password`);let{data:n,error:r}=t;if(r)return this._returnResult({data:{user:null,session:null},error:r});if(!n||!n.session||!n.user){let e=new gi;return this._returnResult({data:{user:null,session:null},error:e})}return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,n.session)),this._returnResult({data:Object.assign({user:n.user,session:n.session},n.weak_password?{weakPassword:n.weak_password}:null),error:r})}catch(e){if(j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithOAuth(e){return await this._handleProviderSignIn(e.provider,{redirectTo:e.options?.redirectTo,scopes:e.options?.scopes,queryParams:e.options?.queryParams,skipBrowserRedirect:e.options?.skipBrowserRedirect})}async exchangeCodeForSession(e){return await this.initializePromise,this.lock==null?this._exchangeCodeForSession(e):this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession(e))}async signInWithWeb3(e){let{chain:t}=e;switch(t){case`ethereum`:return await this.signInWithEthereum(e);case`solana`:return await this.signInWithSolana(e);default:throw Error(`@supabase/auth-js: Unsupported chain "${t}"`)}}async signInWithEthereum(e){let t,n;if(`message`in e)t=e.message,n=e.signature;else{let{chain:r,wallet:i,statement:a,options:o}=e,s;if(!Vi()){if(typeof i!=`object`||!o?.url)throw Error(`@supabase/auth-js: Both wallet and url must be specified in non-browser environments.`);s=i}else if(typeof i==`object`)s=i;else{let e=window;if(`ethereum`in e&&typeof e.ethereum==`object`&&`request`in e.ethereum&&typeof e.ethereum.request==`function`)s=e.ethereum;else throw Error(`@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.`)}let c=new URL(o?.url??window.location.href),l=await s.request({method:`eth_requestAccounts`}).then(e=>e).catch(()=>{throw Error(`@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid`)});if(!l||l.length===0)throw Error(`@supabase/auth-js: No accounts available. Please ensure the wallet is connected.`);let u=Ma(l[0]),d=o?.signInWithEthereum?.chainId;d||=Na(await s.request({method:`eth_chainId`})),t=Fa({domain:c.host,address:u,statement:a,uri:c.href,version:`1`,chainId:d,nonce:o?.signInWithEthereum?.nonce,issuedAt:o?.signInWithEthereum?.issuedAt??new Date,expirationTime:o?.signInWithEthereum?.expirationTime,notBefore:o?.signInWithEthereum?.notBefore,requestId:o?.signInWithEthereum?.requestId,resources:o?.signInWithEthereum?.resources}),n=await s.request({method:`personal_sign`,params:[Pa(t),u]})}try{let{data:r,error:i}=await P(this.fetch,`POST`,`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:`ethereum`,message:t,signature:n},e.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options?.captchaToken}}:null),xform:ba});if(i)throw i;if(!r||!r.session||!r.user){let e=new gi;return this._returnResult({data:{user:null,session:null},error:e})}return r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers(`SIGNED_IN`,r.session)),this._returnResult({data:Object.assign({},r),error:i})}catch(e){if(j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithSolana(e){let t,n;if(`message`in e)t=e.message,n=e.signature;else{let{chain:r,wallet:i,statement:a,options:o}=e,s;if(!Vi()){if(typeof i!=`object`||!o?.url)throw Error(`@supabase/auth-js: Both wallet and url must be specified in non-browser environments.`);s=i}else if(typeof i==`object`)s=i;else{let e=window;if(`solana`in e&&typeof e.solana==`object`&&(`signIn`in e.solana&&typeof e.solana.signIn==`function`||`signMessage`in e.
32solana&&typeof e.solana.signMessage==`function`))s=e.solana;else throw Error(`@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.`)}let c=new URL(o?.url??window.location.href);if(`signIn`in s&&s.signIn){let e=await s.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},o?.signInWithSolana),{version:`1`,domain:c.host,uri:c.href}),a?{statement:a}:null)),r;if(Array.isArray(e)&&e[0]&&typeof e[0]==`object`)r=e[0];else if(e&&typeof e==`object`&&`signedMessage`in e&&`signature`in e)r=e;else throw Error(`@supabase/auth-js: Wallet method signIn() returned unrecognized value`);if(`signedMessage`in r&&`signature`in r&&(typeof r.signedMessage==`string`||r.signedMessage instanceof Uint8Array)&&r.signature instanceof Uint8Array)t=typeof r.signedMessage==`string`?r.signedMessage:new TextDecoder().decode(r.signedMessage),n=r.signature;else throw Error(`@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields`)}else{if(!(`signMessage`in s)||typeof s.signMessage!=`function`||!(`publicKey`in s)||typeof s!=`object`||!s.publicKey||!(`toBase58`in s.publicKey)||typeof s.publicKey.toBase58!=`function`)throw Error(`@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API`);t=[`${c.host} wants you to sign in with your Solana account:`,s.publicKey.toBase58(),...a?[``,a,``]:[``],`Version: 1`,`URI: ${c.href}`,`Issued At: ${o?.signInWithSolana?.issuedAt??new Date().toISOString()}`,...o?.signInWithSolana?.notBefore?[`Not Before: ${o.signInWithSolana.notBefore}`]:[],...o?.signInWithSolana?.expirationTime?[`Expiration Time: ${o.signInWithSolana.expirationTime}`]:[],...o?.signInWithSolana?.chainId?[`Chain ID: ${o.signInWithSolana.chainId}`]:[],...o?.signInWithSolana?.nonce?[`Nonce: ${o.signInWithSolana.nonce}`]:[],...o?.signInWithSolana?.requestId?[`Request ID: ${o.signInWithSolana.requestId}`]:[],...o?.signInWithSolana?.resources?.length?[`Resources`,...o.signInWithSolana.resources.map(e=>`- ${e}`)]:[]].join(`
33`);let e=await s.signMessage(new TextEncoder().encode(t),`utf8`);if(!e||!(e instanceof Uint8Array))throw Error(`@supabase/auth-js: Wallet signMessage() API returned an recognized value`);n=e}}try{let{data:r,error:i}=await P(this.fetch,`POST`,`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:`solana`,message:t,signature:zi(n)},e.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options?.captchaToken}}:null),xform:ba});if(i)throw i;if(!r||!r.session||!r.user){let e=new gi;return this._returnResult({data:{user:null,session:null},error:e})}return r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers(`SIGNED_IN`,r.session)),this._returnResult({data:Object.assign({},r),error:i})}catch(e){if(j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async _exchangeCodeForSession(e){let[t,n]=(await Ji(this.storage,`${this.storageKey}-code-verifier`)??``).split(`/`);try{if(!t&&this.flowType===`pkce`)throw new xi;let{data:r,error:i}=await P(this.fetch,`POST`,`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:t},xform:ba});if(await Yi(this.storage,`${this.storageKey}-code-verifier`),i)throw i;if(!r||!r.session||!r.user){let e=new gi;return this._returnResult({data:{user:null,session:null,redirectType:null},error:e})}return r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers(n===`recovery`?`PASSWORD_RECOVERY`:`SIGNED_IN`,r.session)),this._returnResult({data:Object.assign(Object.assign({},r),{redirectType:n??null}),error:i})}catch(e){if(await Yi(this.storage,`${this.storageKey}-code-verifier`),j(e))return this._returnResult({data:{user:null,session:null,redirectType:null},error:e});throw e}}async signInWithIdToken(e){try{let{options:t,provider:n,token:r,access_token:i,nonce:a}=e,{data:o,error:s}=await P(this.fetch,`POST`,`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:n,id_token:r,access_token:i,nonce:a,gotrue_meta_security:{captcha_token:t?.captchaToken}},xform:ba});if(s)return this._returnResult({data:{user:null,session:null},error:s});if(!o||!o.session||!o.user){let e=new gi;return this._returnResult({data:{user:null,session:null},error:e})}return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers(`SIGNED_IN`,o.session)),this._returnResult({data:o,error:s})}catch(e){if(j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithOtp(e){try{if(`email`in e){let{email:t,options:n}=e,r=null,i=null;this.flowType===`pkce`&&([r,i]=await ia(this.storage,this.storageKey));let{error:a}=await P(this.fetch,`POST`,`${this.url}/otp`,{headers:this.headers,body:{email:t,data:n?.data??{},create_user:n?.shouldCreateUser??!0,gotrue_meta_security:{captcha_token:n?.captchaToken},code_challenge:r,code_challenge_method:i},redirectTo:n?.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:a})}if(`phone`in e){let{phone:t,options:n}=e,{data:r,error:i}=await P(this.fetch,`POST`,`${this.url}/otp`,{headers:this.headers,body:{phone:t,data:n?.data??{},create_user:n?.shouldCreateUser??!0,gotrue_meta_security:{captcha_token:n?.captchaToken},channel:n?.channel??`sms`}});return this._returnResult({data:{user:null,session:null,messageId:r?.message_id},error:i})}throw new _i(`You must provide either an email or phone number.`)}catch(e){if(await Yi(this.storage,`${this.storageKey}-code-verifier`),j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async verifyOtp(e){try{let t,n;`options`in e&&(t=e.options?.redirectTo,n=e.options?.captchaToken);let{data:r,error:i}=await P(this.fetch,`POST`,`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:n}}),redirectTo:t,xform:ba});if(i)throw i;if(!r)throw Error(`An error occurred on token verification.`);let a=r.session,o=r.user;return a?.access_token&&(await this._saveSession(a),await this._notifyAllSubscribers(e.type==`recovery`?`PASSWORD_RECOVERY`:`SIGNED_IN`,a)),this._returnResult({data:{user:o,session:a},error:null})}catch(e){if(j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async signInWithSSO(e){try{let t=null,n=null;this.flowType===`pkce`&&([t,n]=await ia(this.storage,this.storageKey));let r=await P(this.fetch,`POST`,`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},`providerId`in e?{provider_id:e.providerId}:null),`domain`in e?{domain:e.domain}:null),{redirect_to:e.options?.redirectTo??void 0}),e?.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:t,code_challenge_method:n}),headers:this.headers,xform:Ca});return r.data?.url&&Vi()&&!e.options?.skipBrowserRedirect&&window.location.assign(r.data.url),this._returnResult(r)}catch(e){if(await Yi(this.storage,`${this.storageKey}-code-verifier`),j(e))return this._returnResult({data:null,error:e});throw e}}async reauthenticate(){return await this.initializePromise,this.lock==null?await this._reauthenticate():await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)throw n;if(!t)throw new M;let{error:r}=await P(this.fetch,`GET`,`${this.url}/reauthenticate`,{headers:this.headers,jwt:t.access_token});return this._returnResult({data:{user:null,session:null},error:r})})}catch(e){if(j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async resend(e){try{let t=`${this.url}/resend`;if(`email`in e){let{email:n,type:r,options:i}=e,a=null,o=null;this.flowType===`pkce`&&([a,o]=await ia(this.storage,this.storageKey));let{error:s}=await P(this.fetch,`POST`,t,{headers:this.headers,body:{email:n,type:r,gotrue_meta_security:{captcha_token:i?.captchaToken},code_challenge:a,code_challenge_method:o},redirectTo:i?.emailRedirectTo});return s&&await Yi(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:s})}else if(`phone`in e){let{phone:n,type:r,options:i}=e,{data:a,error:o}=await P(this.fetch,`POST`,t,{headers:this.headers,body:{phone:n,type:r,gotrue_meta_security:{captcha_token:i?.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:a?.message_id},error:o})}throw new _i(`You must provide either an email or phone number and a type`)}catch(e){if(await Yi(this.storage,`${this.storageKey}-code-verifier`),j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async getSession(){return await this.initializePromise,this.lock==null?await this._useSession(async e=>e):await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async e=>e))}async _acquireLock(e,t){this._debug(`#_acquireLock`,`begin`,e);try{if(this.lockAcquired){let e=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),n=(async()=>(await e,await t()))();return this.pendingInLock.push((async()=>{try{await n}catch{}})()),n}return await this.lock(`lock:${this.storageKey}`,e,async()=>{this._debug(`#_acquireLock`,`lock acquired for storage key`,this.storageKey);try{this.lockAcquired=!0;let e=t();for(this.pendingInLock.push((async()=>{try{await e}catch{}})()),await e;this.pendingInLock.length;){let e=[...this.pendingInLock];await Promise.all(e),this.pendingInLock.splice(0,e.length)}return await e}finally{this._debug(`#_acquireLock`,`lock released for storage key`,this.storageKey),this.lockAcquired=!1}})}finally{this._debug(`#_acquireLock`,`end`)}}async _useSession(e){this._debug(`#_useSession`,`begin`);try{return await e(await this.__loadSession())}finally{this._debug(`#_useSession`,`end`)}}async __loadSession(){this._debug(`#__loadSession()`,`begin`),this.lock!=null&&!this.lockAcquired&&this._debug(`#__loadSession()`,`used outside of an acquired lock!`,Error().stack);try{let e=null,t=await Ji(this.storage,this.storageKey);if(this._debug(`#getSession()`,`session from storage`,t),t!==null&&(this._isValidSession(t)?e=t:(this._debug(`#getSession()`,`session from storage is not val
33id`),await this._removeSession())),!e)return{data:{session:null},error:null};let n=e.expires_at?e.expires_at*1e3-Date.now()<ni:!1;if(this._debug(`#__loadSession()`,`session has${n?``:` not`} expired`,`expires_at`,e.expires_at),!n){if(this.userStorage){let t=await Ji(this.userStorage,this.storageKey+`-user`);t?.user?e.user=t.user:e.user=fa()}if(this.storage.isServer&&e.user&&!e.user.__isUserNotAvailableProxy){let t={value:this.suppressGetSessionWarning};e.user=pa(e.user,t),t.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:e},error:null}}let{data:r,error:i}=await this._callRefreshToken(e.refresh_token);if(i){if(e.expires_at&&e.expires_at*1e3>Date.now()){let t=await Ji(this.storage,this.storageKey);if(t&&t.refresh_token===e.refresh_token)return this._returnResult({data:{session:e},error:null})}return this._returnResult({data:{session:null},error:i})}return this._returnResult({data:{session:r},error:null})}finally{this._debug(`#__loadSession()`,`end`)}}async getUser(e){if(e)return await this._getUser(e);await this.initializePromise;let t;return t=this.lock==null?await this._getUser():await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser()),t.data.user&&(this.suppressGetSessionWarning=!0),t}async _getUser(e){try{return e?await P(this.fetch,`GET`,`${this.url}/user`,{headers:this.headers,jwt:e,xform:Sa}):await this._useSession(async e=>{let{data:t,error:n}=e;if(n)throw n;return!t.session?.access_token&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new M}:await P(this.fetch,`GET`,`${this.url}/user`,{headers:this.headers,jwt:t.session?.access_token??void 0,xform:Sa})})}catch(e){if(j(e))return hi(e)&&(await this._removeSession(),await Yi(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:e});throw e}}async updateUser(e,t={}){return await this.initializePromise,this.lock==null?await this._updateUser(e,t):await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser(e,t))}async _updateUser(e,t={}){try{return await this._useSession(async n=>{let{data:r,error:i}=n;if(i)throw i;if(!r.session)throw new M;let a=r.session,o=null,s=null;this.flowType===`pkce`&&e.email!=null&&([o,s]=await ia(this.storage,this.storageKey));let{data:c,error:l}=await P(this.fetch,`PUT`,`${this.url}/user`,{headers:this.headers,redirectTo:t?.emailRedirectTo,body:Object.assign(Object.assign({},e),{code_challenge:o,code_challenge_method:s}),jwt:a.access_token,xform:Sa});if(l)throw l;return a.user=c.user,await this._saveSession(a),await this._notifyAllSubscribers(`USER_UPDATED`,a),this._returnResult({data:{user:a.user},error:null})})}catch(e){if(await Yi(this.storage,`${this.storageKey}-code-verifier`),j(e))return this._returnResult({data:{user:null},error:e});throw e}}async setSession(e){return await this.initializePromise,this.lock==null?await this._setSession(e):await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession(e))}async _setSession(e){try{if(!e.access_token||!e.refresh_token)throw new M;let t=Date.now()/1e3,n=t,r=!0,i=null,{payload:a}=Zi(e.access_token);if(a.exp&&(n=a.exp,r=n<=t),r){let{data:t,error:n}=await this._callRefreshToken(e.refresh_token);if(n)return this._returnResult({data:{user:null,session:null},error:n});if(!t)return{data:{user:null,session:null},error:null};i=t}else{let{data:r,error:a}=await this._getUser(e.access_token);if(a)return this._returnResult({data:{user:null,session:null},error:a});i={access_token:e.access_token,refresh_token:e.refresh_token,user:r.user,token_type:`bearer`,expires_in:n-t,expires_at:n},await this._saveSession(i),await this._notifyAllSubscribers(`SIGNED_IN`,i)}return this._returnResult({data:{user:i.user,session:i},error:null})}catch(e){if(j(e))return this._returnResult({data:{session:null,user:null},error:e});throw e}}async refreshSession(e){return await this.initializePromise,this.lock==null?await this._refreshSession(e):await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession(e))}async _refreshSession(e){try{return await this._useSession(async t=>{if(!e){let{data:n,error:r}=t;if(r)throw r;e=n.session??void 0}if(!e?.refresh_token)throw new M;let{data:n,error:r}=await this._callRefreshToken(e.refresh_token);return r?this._returnResult({data:{user:null,session:null},error:r}):n?this._returnResult({data:{user:n.user,session:n},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(e){if(j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async _getSessionFromURL(e,t){try{if(!Vi())throw new vi(`No browser detected.`);if(e.error||e.error_description||e.error_code)throw new vi(e.error_description||`Error in URL with unspecified error_description`,{error:e.error||`unspecified_error`,code:e.error_code||`unspecified_code`});switch(t){case`implicit`:if(this.flowType===`pkce`)throw new bi(`Not a valid PKCE flow url.`);break;case`pkce`:if(this.flowType===`implicit`)throw new vi(`Not a valid implicit grant flow url.`);break;default:}if(t===`pkce`){if(this._debug(`#_initialize()`,`begin`,`is PKCE flow`,!0),!e.code)throw new bi(`No code detected.`);let{data:t,error:n}=await this._exchangeCodeForSession(e.code);
33if(n)throw n;let r=new URL(window.location.href);return r.searchParams.delete(`code`),window.history.replaceState(window.history.state,``,r.toString()),{data:{session:t.session,redirectType:t.redirectType??null},error:null}}let{provider_token:n,provider_refresh_token:r,access_token:i,refresh_token:a,expires_in:o,expires_at:s,token_type:c}=e;if(!i||!o||!a||!c)throw new vi(`No session defined in URL`);let l=Math.round(Date.now()/1e3),u=parseInt(o),d=l+u;s&&(d=parseInt(s));let f=d-l;f*1e3<=3e4&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${f}s, should have been closer to ${u}s`);let p=d-u;l-p>=120?console.warn(`@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale`,p,d,l):l-p<0&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew`,p,d,l);let{data:m,error:h}=await this._getUser(i);if(h)throw h;let g={provider_token:n,provider_refresh_token:r,access_token:i,expires_in:u,expires_at:d,refresh_token:a,token_type:c,user:m.user};return window.location.hash=``,this._debug(`#_getSessionFromURL()`,`clearing window.location.hash`),this._returnResult({data:{session:g,redirectType:e.type},error:null})}catch(e){if(j(e))return this._returnResult({data:{session:null,redirectType:null},error:e});throw e}}_isImplicitGrantCallback(e){return typeof this.detectSessionInUrl==`function`?this.detectSessionInUrl(new URL(window.location.href),e):!!(e.access_token||e.error||e.error_description||e.error_code)}async _isPKCECallback(e){let t=await Ji(this.storage,`${this.storageKey}-code-verifier`);return!!(e.code&&t)}async signOut(e={scope:`global`}){return await this.initializePromise,this.lock==null?await this._signOut(e):await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut(e))}async _signOut({scope:e}={scope:`global`}){return await this._useSession(async t=>{let{data:n,error:r}=t;if(r&&!hi(r))return this._returnResult({error:r});let i=n.session?.access_token;if(i){let{error:t}=await this.admin.signOut(i,e);if(t&&!(fi(t)&&(t.status===404||t.status===401||t.status===403)||hi(t)))return this._returnResult({error:t})}return e!==`others`&&(await this._removeSession(),await Yi(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({error:null})})}onAuthStateChange(e){let t=N(),n={id:t,callback:e,unsubscribe:()=>{this._debug(`#unsubscribe()`,`state change callback with id removed`,t),this.stateChangeEmitters.delete(t)}};return this._debug(`#onAuthStateChange()`,`registered callback with id`,t),this.stateChangeEmitters.set(t,n),(async()=>{await this.initializePromise,this.lock==null?await this._emitInitialSession(t):await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(t)})})(),{data:{subscription:n}}}async _emitInitialSession(e){return await this._useSession(async t=>{try{let{data:{session:n},error:r}=t;if(r)throw r;await this.stateChangeEmitters.get(e)?.callback(`INITIAL_SESSION`,n),this._debug(`INITIAL_SESSION`,`callback id`,e,`session`,n)}catch(t){await this.stateChangeEmitters.get(e)?.callback(`INITIAL_SESSION`,null),this._debug(`INITIAL_SESSION`,`callback id`,e,`error`,t),hi(t)?console.warn(t):console.error(t)}})}async resetPasswordForEmail(e,t={}){let n=null,r=null;this.flowType===`pkce`&&([n,r]=await ia(this.storage,this.storageKey,!0));try{return await P(this.fetch,`POST`,`${this.url}/recover`,{body:{email:e,code_challenge:n,code_challenge_method:r,gotrue_meta_security:{captcha_token:t.captchaToken}},headers:this.headers,redirectTo:t.redirectTo})}catch(e){if(await Yi(this.storage,`${this.storageKey}-code-verifier`),j(e))return this._returnResult({data:null,error:e});throw e}}async getUserIdentities(){try{let{data:e,error:t}=await this.getUser();if(t)throw t;return this._returnResult({data:{identities:e.user.identities??[]},error:null})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async linkIdentity(e){return`token`in e?this.linkIdentityIdToken(e):this.linkIdentityOAuth(e)}async linkIdentityOAuth(e){try{let{data:t,error:n}=await this._useSession(async t=>{let{data:n,error:r}=t;if(r)throw r;let i=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,e.provider,{redirectTo:e.options?.redirectTo,scopes:e.options?.scopes,queryParams:e.options?.queryParams,skipBrowserRedirect:!0});return await P(this.fetch,`GET`,i,{headers:this.headers,jwt:n.session?.access_token??void 0})});if(n)throw n;return Vi()&&!e.options?.skipBrowserRedirect&&window.location.assign(t?.url),this._returnResult({data:{provider:e.provider,url:t?.url},error:null})}catch(t){if(j(t))return this._returnResult({data:{provider:e.provider,url:null},error:t});throw t}}async linkIdentityIdToken(e){return await this._useSession(async t=>{try{let{error:n,data:{session:r}}=t;if(n)throw n;let{options:i,provider:a,token:o,access_token:s,nonce:c}=e,{data:l,error:u}=await P(this.fetch,`POST`,`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:r?.access_token??void 0,body:{provider:a,id_token:o,access_token:s,nonce:c,link_identity:!0,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:ba});return u?this._returnResult({data:{user:null,session:null},error:u}):!l||!l.session||!l.user?this._returnResult({data:{user:null,session:null},error:new gi}):(l.session&&(await this._saveSession(l.session),await this._notifyAllSubscribers(`USER_UPDATED`,l.session)),this._returnResult({data:l,error:u}))}catch(e){if(await Yi(this.storage,`${this.storageKey}-code-verifier`),j(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}})}async unlinkIdentity(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)throw r;return await P(this.fetch,`DELETE`,`${this.url}/user/identities/${e.identity_id}`,{headers:this.headers,jwt:n.session?.access_token??void 0})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _refreshAccessToken(e){let t=`#_refreshAccessToken()`;this._debug(t,`begin`);try{let n=Date.now();return await $i(async n=>(n>0&&await Qi(200*2**(n-1)),this._debug(t,`refreshing attempt`,n),await P(this.fetch,`POST`,`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:ba})),(e,t)=>{let r=200*2**e;return t&&Ci(t)&&Date.now()+r-n<3e4})}catch(e){if(this._debug(t,`error`,e),j(e))return this._returnResult({data:{session:null,user:null},error:e});throw e}finally{this._debug(t,`end`)}}_isValidSession(e){return typeof e==`object`&&!!e&&`access_token`in e&&`refresh_token`in e&&`expires_at`in e}async _handleProviderSignIn(e,t){let n=await this._getUrlForProvider(`${this.url}/authorize`,e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});return this._debug(`#_handleProviderSignIn()`,`provider`,e,`options`,t,`url`,n),Vi()&&!t.skipBrowserRedirect&&window.location.assign(n),{data:{provider:e,url:n},error:null}}async _recoverAndRefresh(){let e=`#_recoverAndRefresh()`;this._debug(e,`begin`);try{let t=await Ji(this.storage,this.storageKey);if(t&&this.userStorage){let e=await Ji(this.userStorage,this.storageKey+`-user`);!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!e&&(e={user:t.user},await qi(this.userStorage,this.storageKey+`-user`,e)),t.user=e?.user??fa()}else if(t&&!t.user&&!t.user){let e=await Ji(this.storage,this.storageKey+`-user`);e&&e?.user?(t.user=e.user,await Yi(this.storage,this.storageKey+`-user`),await qi(this.storage,this.storageKey,t)):t.user=fa()}if(this._debug(e,`session from storage`,t),!this._isValidSession(t)){this._debug(e,`session is not val
33id`),t!==null&&await this._removeSession();return}let n=(t.expires_at??1/0)*1e3-Date.now()<ni;if(this._debug(e,`session has${n?``:` not`} expired with margin of ${ni}s`),n){if(this.autoRefreshToken&&t.refresh_token){let{error:n}=await this._callRefreshToken(t.refresh_token);n&&(Ti(n)?this._debug(e,`refresh discarded by commit guard`,n):this._debug(e,`refresh failed`,n))}}else if(t.user&&t.user.__isUserNotAvailableProxy===!0)try{let{data:n,error:r}=await this._getUser(t.access_token);!r&&n?.user?(t.user=n.user,await this._saveSession(t),await this._notifyAllSubscribers(`SIGNED_IN`,t)):this._debug(e,`could not get user data, skipping SIGNED_IN notification`)}catch(t){console.error(`Error getting user data:`,t),this._debug(e,`error getting user data, skipping SIGNED_IN notification`,t)}else await this._notifyAllSubscribers(`SIGNED_IN`,t)}catch(t){this._debug(e,`error`,t),console.error(t);return}finally{this._debug(e,`end`)}}async _callRefreshToken(e){var t,n;if(!e)throw new M;if(this.refreshingDeferred)return this.refreshingDeferred.promise;if(this.lastRefreshFailure&&this.lastRefreshFailure.refreshToken===e&&Date.now()<this.lastRefreshFailure.expiresAt)return this._debug(`#_callRefreshToken()`,`returning cached failure (cooldown active)`),this.lastRefreshFailure.result;let r=`#_callRefreshToken()`;this._debug(r,`begin`);try{this.refreshingDeferred=new Xi;let t=await Ji(this.storage,this.storageKey),{data:n,error:i}=await this._refreshAccessToken(e);if(i)throw i;if(!n.session)throw new M;let a=await Ji(this.storage,this.storageKey);if(t!==null&&(a===null||a.refresh_token!==t.refresh_token)){this._debug(r,`commit guard: storage changed since refresh started, discarding rotated tokens`,{startedWith:`present`,nowHolds:a?`replaced`:`cleared`});let e={data:null,error:new wi};return this.refreshingDeferred.resolve(e),e}let o=this._sessionRemovalEpoch;if(await this._saveSession(n.session),this._sessionRemovalEpoch!==o){this._debug(r,`commit guard (post-save): _removeSession ran during _saveSession, undoing write`),await Yi(this.storage,this.storageKey),this.userStorage&&await Yi(this.userStorage,this.storageKey+`-user`);let e={data:null,error:new wi};return this.refreshingDeferred.resolve(e),e}await this._notifyAllSubscribers(`TOKEN_REFRESHED`,n.session);let s={data:n.session,error:null};return this.lastRefreshFailure=null,this.refreshingDeferred.resolve(s),s}catch(i){if(this._debug(r,`error`,i),j(i)){let n={data:null,error:i};if(!Ci(i)){let e=await Ji(this.storage,this.storageKey);e?.expires_at&&e.expires_at*1e3>Date.now()?this._debug(r,`proactive refresh failed, access token still valid — preserving session`):await this._removeSession()}return this.lastRefreshFailure={refreshToken:e,result:n,expiresAt:Date.now()+ri},(t=this.refreshingDeferred)==null||t.resolve(n),n}throw(n=this.refreshingDeferred)==null||n.reject(i),i}finally{this.refreshingDeferred=null,this._debug(r,`end`)}}async _notifyAllSubscribers(e,t,n=!0){let r=`#_notifyAllSubscribers(${e})`;this._debug(r,`begin`,t,`broadcast = ${n}`);try{this.broadcastChannel&&n&&this.broadcastChannel.postMessage({event:e,session:t});let r=[],i=Array.from(this.stateChangeEmitters.values()).map(async n=>{try{await n.callback(e,t)}catch(e){r.push(e)}});if(await Promise.all(i),r.length>0){for(let e=0;e<r.length;e+=1)console.error(r[e]);throw r[0]}}finally{this._debug(r,`end`)}}async _saveSession(e){this._debug(`#_saveSession()`,e),this.suppressGetSessionWarning=!0,await Yi(this.storage,`${this.storageKey}-code-verifier`);let t=Object.assign({},e),n=t.user&&t.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!n&&t.user&&await qi(this.userStorage,this.storageKey+`-user`,{user:t.user});let e=Object.assign({},t);delete e.user;let r=ma(e);await qi(this.storage,this.storageKey,r)}else{let e=ma(t);await qi(this.storage,this.storageKey,e)}}async _removeSession(){this._sessionRemovalEpoch+=1,this._debug(`#_removeSession()`),this.lastRefreshFailure=null,this.suppressGetSessionWarning=!1,await Yi(this.storage,this.storageKey),await Yi(this.storage,this.storageKey+`-code-verifier`),await Yi(this.storage,this.storageKey+`-user`),this.userStorage&&await Yi(this.userStorage,this.storageKey+`-user`),await this._notifyAllSubscribers(`SIGNED_OUT`,null)}_removeVisibilityChangedCallback(){this._debug(`#_removeVisibilityChangedCallback()`);let e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&Vi()&&window!=null&&window.removeEventListener&&window.removeEventListener(`visibilitychange`,e)}
33catch(e){console.error(`removing visibilitychange callback failed`,e)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug(`#_startAutoRefresh()`);let e=setInterval(()=>this._autoRefreshTokenTick(),ti);this.autoRefreshTicker=e,e&&typeof e==`object`&&typeof e.unref==`function`?e.unref():typeof Deno<`u`&&typeof Deno.unrefTimer==`function`&&Deno.unrefTimer(e);let t=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=t,t&&typeof t==`object`&&typeof t.unref==`function`?t.unref():typeof Deno<`u`&&typeof Deno.unrefTimer==`function`&&Deno.unrefTimer(t)}async _stopAutoRefresh(){this._debug(`#_stopAutoRefresh()`);let e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e);let t=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,t&&clearTimeout(t)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async dispose(){var e;this._removeVisibilityChangedCallback(),await this._stopAutoRefresh(),(e=this.broadcastChannel)==null||e.close(),this.broadcastChannel=null,this.stateChangeEmitters.clear()}async _autoRefreshTokenTick(){if(this._debug(`#_autoRefreshTokenTick()`,`begin`),this.lock!=null){try{await this._acquireLock(0,async()=>{try{let e=Date.now();try{return await this._useSession(async t=>{let{data:{session:n}}=t;if(!n||!n.refresh_token||!n.expires_at){this._debug(`#_autoRefreshTokenTick()`,`no session`);return}let r=Math.floor((n.expires_at*1e3-e)/ti);this._debug(`#_autoRefreshTokenTick()`,`access token expires in ${r} ticks, a tick lasts ${ti}ms, refresh threshold is 3 ticks`),r<=3&&await this._callRefreshToken(n.refresh_token)})}catch(e){console.error(`Auto refresh tick failed with error. This is likely a transient error.`,e)}}finally{this._debug(`#_autoRefreshTokenTick()`,`end`)}})}catch(e){if(e instanceof Aa)this._debug(`auto refresh token tick lock not available`);else throw e}return}if(this.refreshingDeferred!==null){this._debug(`#_autoRefreshTokenTick()`,`refresh already in flight, skipping`);return}try{let e=Date.now();try{await this._useSession(async t=>{let{data:{session:n}}=t;if(!n||!n.refresh_token||!n.expires_at){this._debug(`#_autoRefreshTokenTick()`,`no session`);return}let r=Math.floor((n.expires_at*1e3-e)/ti);this._debug(`#_autoRefreshTokenTick()`,`access token expires in ${r} ticks, a tick lasts ${ti}ms, refresh threshold is 3 ticks`),r<=3&&await this._callRefreshToken(n.refresh_token)})}catch(e){console.error(`Auto refresh tick failed with error. This is likely a transient error.`,e)}}finally{this._debug(`#_autoRefreshTokenTick()`,`end`)}}async _handleVisibilityChange(){if(this._debug(`#_handleVisibilityChange()`),!Vi()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch(e){this._debug(`#visibilityChangedCallback`,`error`,e)}},window==null||window.addEventListener(`visibilitychange`,this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(e){console.error(`_handleVisibilityChange`,e)}}async _onVisibilityChanged(e){let t=`#_onVisibilityChanged(${e})`;if(this._debug(t,`visibilityState`,document.visibilityState),document.visibilityState===`visible`){if(this.autoRefreshToken&&this._startAutoRefresh(),!e)if(await this.initializePromise,this.lock!=null)await this._acquireLock(this.lockAcquireTimeout,async()=>{if(document.visibilityState!==`visible`){this._debug(t,`acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting`);return}await this._recoverAndRefresh()});else{if(document.visibilityState!==`visible`){this._debug(t,`visibilityState is no longer visible, skipping recovery`);return}await this._recoverAndRefresh()}}else document.visibilityState===`hidden`&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(e,t,n){let r=[`provider=${encodeURIComponent(t)}`];if(n?.redirectTo&&r.push(`redirect_to=${encodeURIComponent(n.redirectTo)}`),n?.scopes&&r.push(`scopes=${encodeURIComponent(n.scopes)}`),this.flowType===`pkce`){let[e,t]=await ia(this.storage,this.storageKey),n=new URLSearchParams({code_challenge:`${encodeURIComponent(e)}`,code_challenge_method:`${encodeURIComponent(t)}`});
33r.push(n.toString())}if(n?.queryParams){let e=new URLSearchParams(n.queryParams);r.push(e.toString())}return n?.skipBrowserRedirect&&r.push(`skip_http_redirect=${n.skipBrowserRedirect}`),`${e}?${r.join(`&`)}`}async _unenroll(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;return r?this._returnResult({data:null,error:r}):await P(this.fetch,`DELETE`,`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:n?.session?.access_token})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _enroll(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return this._returnResult({data:null,error:r});let i=Object.assign({friendly_name:e.friendlyName,factor_type:e.factorType},e.factorType===`phone`?{phone:e.phone}:e.factorType===`totp`?{issuer:e.issuer}:{}),{data:a,error:o}=await P(this.fetch,`POST`,`${this.url}/factors`,{body:i,headers:this.headers,jwt:n?.session?.access_token});return o?this._returnResult({data:null,error:o}):(e.factorType===`totp`&&a.type===`totp`&&a?.totp?.qr_code&&(a.totp.qr_code=`data:image/svg+xml;utf-8,${a.totp.qr_code}`),this._returnResult({data:a,error:null}))})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _verify(e){let t=async()=>{try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return this._returnResult({data:null,error:r});let i=Object.assign({challenge_id:e.challengeId},`webauthn`in e?{webauthn:Object.assign(Object.assign({},e.webauthn),{credential_response:e.webauthn.type===`create`?Ua(e.webauthn.credential_response):Wa(e.webauthn.credential_response)})}:{code:e.code}),{data:a,error:o}=await P(this.fetch,`POST`,`${this.url}/factors/${e.factorId}/verify`,{body:i,headers:this.headers,jwt:n?.session?.access_token});return o?this._returnResult({data:null,error:o}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+a.expires_in},a)),await this._notifyAllSubscribers(`MFA_CHALLENGE_VERIFIED`,a),this._returnResult({data:a,error:o}))})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}};return this.lock==null?t():this._acquireLock(this.lockAcquireTimeout,t)}async _challenge(e){let t=async()=>{try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return this._returnResult({data:null,error:r});let i=await P(this.fetch,`POST`,`${this.url}/factors/${e.factorId}/challenge`,{body:e,headers:this.headers,jwt:n?.session?.access_token});if(i.error)return i;let{data:a}=i;if(a.type!==`webauthn`)return{data:a,error:null};switch(a.webauthn.type){case`create`:return{data:Object.assign(Object.assign({},a),{webauthn:Object.assign(Object.assign({},a.webauthn),{credential_options:Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:Va(a.webauthn.credential_options.publicKey)})})}),error:null};case`request`:return{data:Object.assign(Object.assign({},a),{webauthn:Object.assign(Object.assign({},a.webauthn),{credential_options:Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:Ha(a.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}};return this.lock==null?t():this._acquireLock(this.lockAcquireTimeout,t)}async _challengeAndVerify(e){let{data:t,error:n}=await this._challenge({factorId:e.factorId});return n?this._returnResult({data:null,error:n}):await this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})}async _listFactors(){let{data:{user:e},error:t}=await this.getUser();if(t)return{data:null,error:t};let n={all:[],phone:[],totp:[],webauthn:[]};for(let t of e?.factors??[])n.all.push(t),t.status===`verified`&&n[t.factor_type].push(t);return{data:n,error:null}}async _getAuthenticatorAssuranceLevel(e){if(e)try{let{payload:t}=Zi(e),n=null;t.aal&&(n=t.aal);let r=n,{data:{user:i},error:a}=await this.getUser(e);if(a)return this._returnResult({data:null,error:a});((i?.factors)?.filter(e=>e.status===`verified`)??[]).length>0&&(r=`aal2`);let o=t.amr||[];return{data:{currentLevel:n,nextLevel:r,currentAuthenticationMethods:o},error:null}}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}let{data:{session:t},error:n}
33=await this.getSession();if(n)return this._returnResult({data:null,error:n});if(!t)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};let{payload:r}=Zi(t.access_token),i=null;r.aal&&(i=r.aal);let a=i;(t.user.factors?.filter(e=>e.status===`verified`)??[]).length>0&&(a=`aal2`);let o=r.amr||[];return{data:{currentLevel:i,nextLevel:a,currentAuthenticationMethods:o},error:null}}async _getAuthorizationDetails(e){try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;return r?this._returnResult({data:null,error:r}):n?await P(this.fetch,`GET`,`${this.url}/oauth/authorizations/${e}`,{headers:this.headers,jwt:n.access_token,xform:e=>({data:e,error:null})}):this._returnResult({data:null,error:new M})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _approveAuthorization(e,t){try{return await this._useSession(async n=>{let{data:{session:r},error:i}=n;if(i)return this._returnResult({data:null,error:i});if(!r)return this._returnResult({data:null,error:new M});let a=await P(this.fetch,`POST`,`${this.url}/oauth/authorizations/${e}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:`approve`},xform:e=>({data:e,error:null})});return a.data&&a.data.redirect_url&&Vi()&&!t?.skipBrowserRedirect&&window.location.assign(a.data.redirect_url),a})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _denyAuthorization(e,t){try{return await this._useSession(async n=>{let{data:{session:r},error:i}=n;if(i)return this._returnResult({data:null,error:i});if(!r)return this._returnResult({data:null,error:new M});let a=await P(this.fetch,`POST`,`${this.url}/oauth/authorizations/${e}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:`deny`},xform:e=>({data:e,error:null})});return a.data&&a.data.redirect_url&&Vi()&&!t?.skipBrowserRedirect&&window.location.assign(a.data.redirect_url),a})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _listOAuthGrants(){try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;return n?this._returnResult({data:null,error:n}):t?await P(this.fetch,`GET`,`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:t.access_token,xform:e=>({data:e,error:null})}):this._returnResult({data:null,error:new M})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _revokeOAuthGrant(e){try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;return r?this._returnResult({data:null,error:r}):n?(await P(this.fetch,`DELETE`,`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:n.access_token,query:{client_id:e.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new M})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async fetchJwk(e,t={keys:[]}){let n=t.keys.find(t=>t.kid===e);if(n)return n;let r=Date.now();if(n=this.jwks.keys.find(t=>t.kid===e),n&&this.jwks_cached_at+6e5>r)return n;let{data:i,error:a}=await P(this.fetch,`GET`,`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(a)throw a;return!i.keys||i.keys.length===0||(this.jwks=i,this.jwks_cached_at=r,n=i.keys.find(t=>t.kid===e),!n)?null:n}async getClaims(e,t={}){try{let n=e;if(!n){let{data:e,error:t}
33=await this.getSession();if(t||!e.session)return this._returnResult({data:null,error:t});n=e.session.access_token}let{header:r,payload:i,signature:a,raw:{header:o,payload:s}}=Zi(n);if(!t?.allowExpired)try{sa(i.exp)}catch(e){throw new Di(e instanceof Error?e.message:`JWT validation failed`)}let c=!r.alg||r.alg.startsWith(`HS`)||!r.kid||!(`crypto`in globalThis&&`subtle`in globalThis.crypto)?null:await this.fetchJwk(r.kid,t?.keys?{keys:t.keys}:t?.jwks);if(!c){let{error:e}=await this.getUser(n);if(e)throw e;return{data:{claims:i,header:r,signature:a},error:null}}let l=ca(r.alg),u=await crypto.subtle.importKey(`jwk`,c,l,!0,[`verify`]);if(!await crypto.subtle.verify(l,u,a,Ri(`${o}.${s}`)))throw new Di(`Invalid JWT signature`);return{data:{claims:i,header:r,signature:a},error:null}}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async signInWithPasskey(e){da(this.experimental);try{if(!Ka())return this._returnResult({data:null,error:new pi(`Browser does not support WebAuthn`,null)});let{data:t,error:n}=await this._startPasskeyAuthentication({options:{captchaToken:e?.options?.captchaToken}});if(n||!t)return this._returnResult({data:null,error:n});let{data:r,error:i}=await Ja({publicKey:Ha(t.options),signal:e?.options?.signal??Ba.createNewAbortSignal()});if(i||!r)return this._returnResult({data:null,error:i??new pi(`WebAuthn ceremony failed`,null)});let a=Wa(r);return this._verifyPasskeyAuthentication({challengeId:t.challenge_id,credential:a})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async registerPasskey(e){da(this.experimental);try{if(!Ka())return this._returnResult({data:null,error:new pi(`Browser does not support WebAuthn`,null)});let{data:t,error:n}=await this._startPasskeyRegistration();if(n||!t)return this._returnResult({data:null,error:n});let{data:r,error:i}=await qa({publicKey:Va(t.options),signal:e?.options?.signal??Ba.createNewAbortSignal()});if(i||!r)return this._returnResult({data:null,error:i??new pi(`WebAuthn ceremony failed`,null)});let a=Ua(r);return this._verifyPasskeyRegistration({challengeId:t.challenge_id,credential:a})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _startPasskeyRegistration(){da(this.experimental);try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)return this._returnResult({data:null,error:n});if(!t)return this._returnResult({data:null,error:new M});let{data:r,error:i}=await P(this.fetch,`POST`,`${this.url}/passkeys/registration/options`,{headers:this.headers,jwt:t.access_token,body:{}});return i?this._returnResult({data:null,error:i}):this._returnResult({data:r,error:null})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _verifyPasskeyRegistration(e){da(this.experimental);try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;if(r)return this._returnResult({data:null,error:r});if(!n)return this._returnResult({data:null,error:new M});let{data:i,error:a}=await P(this.fetch,`POST`,`${this.url}/passkeys/registration/verify`,{headers:this.headers,jwt:n.access_token,body:{challenge_id:e.challengeId,credential:e.credential}});return a?this._returnResult({data:null,error:a}):this._returnResult({data:i,error:null})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _startPasskeyAuthentication(e){da(this.experimental);try{let{data:t,error:n}=await P(this.fetch,`POST`,`${this.url}/passkeys/authentication/options`,{headers:this.headers,body:{gotrue_meta_security:{captcha_token:e?.options?.captchaToken}}});return n?this._returnResult({data:null,error:n}):this._returnResult({data:t,error:null})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _verifyPasskeyAuthentication(e){da(this.experimental);try{let{data:t,error:n}=await P(this.fetch,`POST`,`${this.url}/passkeys/authentication/verify`,{headers:this.headers,body:{challenge_id:e.challengeId,credential:e.credential},xform:ba});return n?this._returnResult({data:null,error:n}):(t.session&&(await this._saveSession(t.session),await this._notifyAllSubscribers(`SIGNED_IN`,t.session)),this._returnResult({data:t,error:null}))}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _listPasskeys(){da(this.experimental);try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)return this._returnResult({data:null,error:n});if(!t)return this._returnResult({data:null,error:new M});let{data:r,error:i}=await P(this.fetch,`GET`,`${this.url}/passkeys`,{headers:this.headers,jwt:t.access_token,xform:e=>({data:e,error:null})});return i?this._returnResult({data:null,error:i}):this._returnResult({data:r,error:null})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _updatePasskey(e){da(this.experimental);try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;if(r)return this._returnResult({data:null,error:r});if(!n)return this._returnResult({data:null,error:new M});let{data:i,error:a}=await P(this.fetch,`PATCH`,`${this.url}/passkeys/${e.passkeyId}`,{headers:this.headers,jwt:n.access_token,body:{friendly_name:e.friendlyName}});return a?this._returnResult({data:null,error:a}):this._returnResult({data:i,error:null})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}async _deletePasskey(e){da(this.experimental);try{return await this._useSession(async t=>{let{data:{session:n},error:r}=t;if(r)return this._returnResult({data:null,error:r});if(!n)return this._returnResult({data:null,error:new M});let{error:i}=await P(this.fetch,`DELETE`,`${this.url}/passkeys/${e.passkeyId}`,{headers:this.headers,jwt:n.access_token,noResolveJson:!0});return i?this._returnResult({data:null,error:i}):this._returnResult({data:null,error:null})})}catch(e){if(j(e))return this._returnResult({data:null,error:e});throw e}}};ro.nextInstanceID={};var io=ro,ao=`modulepreload`,oo=function(e){return`/`+e},so={},F=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=oo(t,n),t in so)return;so[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:ao,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n
33)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},co=`2.108.2`,lo=``,uo;typeof Deno<`u`?(lo=`deno`,uo=Deno.version?.deno):typeof document<`u`?lo=`web`:typeof navigator<`u`&&navigator.product===`ReactNative`?lo=`react-native`:(lo=`node`,uo=typeof process<`u`?process.version?.replace(/^v/,``):void 0);var fo=[`runtime=${lo}`];uo&&fo.push(`runtime-version=${uo}`);var po={headers:{"X-Client-Info":`supabase-js/${co}; ${fo.join(`; `)}`}},mo={schema:`public`},ho={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:`implicit`},go={},_o={enabled:!1,respectSamplingDecision:!0};function I(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}var L=null,vo=`@opentelemetry/api`;function yo(){return L===null&&(L=F(()=>import(vo),[]).catch(()=>null)),L}function bo(){return I(this,void 0,void 0,function*(){try{let e=yield yo();if(!e||!e.propagation||!e.context)return null;let t={};e.propagation.inject(e.context.active(),t);let n=t.traceparent;return n?{traceparent:n,tracestate:t.tracestate,baggage:t.baggage}:null}catch{return null}})}function xo(e){if(!e||typeof e!=`string`)return null;let t=e.split(`-`);if(t.length!==4)return null;let[n,r,i,a]=t;if(n.length!==2||r.length!==32||i.length!==16||a.length!==2)return null;let o=/^[0-9a-f]+$/i;return!o.test(n)||!o.test(r)||!o.test(i)||!o.test(a)||r===`00000000000000000000000000000000`||i===`0000000000000000`?null:{version:n,traceId:r,parentId:i,traceFlags:a,isSampled:(parseInt(a,16)&1)==1}}function So(e,t){if(!e||!t||t.length===0)return!1;let n;if(e instanceof URL)n=e;else try{n=new URL(e)}catch{return!1}for(let e of t)try{if(typeof e==`string`){if(Co(n.hostname,e))return!0}else if(e instanceof RegExp){if(e.test(n.hostname))return!0}else if(typeof e==`function`&&e(n))return!0}catch{continue}return!1}function Co(e,t){if(t===e)return!0;if(t.startsWith(`*.`)){let n=t.slice(2);if(e.endsWith(n)&&(e===n||e.endsWith(`.`+n)))return!0}return!1}function wo(e){let t=[];try{let n=new URL(e);t.push(n.hostname)}catch{}return t.push(`*.supabase.co`,`*.supabase.in`),t.push(`localhost`,`127.0.0.1`,`[::1]`),t}function To(e){"@babel/helpers - typeof";return To=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},To(e)}function Eo(e,t){if(To(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(To(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Do(e){var t=Eo(e,`string`);return To(t)==`symbol`?t:t+``}function Oo(e,t,n){return(t=Do(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ko(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ao(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?ko(Object(n),!0).forEach(function(t){Oo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ko(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var jo=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),Mo=()=>Headers,No=(e,t,n,r,i)=>{let a=jo(r),o=Mo(),s=i?.enabled===!0,c=i?.respectSamplingDecision!==!1,l=s?wo(t):null;return async(t,r)=>{let i=await n()??e,s=new o(r?.headers);if(s.has(`apikey`)||s.set(`apikey`,e),s.has(`Authorization`)||s.set(`Authorization`,`Bearer ${i}`),l){let e=await Po(t,l,c);e&&(e.traceparent&&!s.has(`traceparent`)&&s.set(`traceparent`,e.traceparent),e.tracestate&&!s.has(`tracestate`)&&s.set(`tracestate`,e.tracestate),e.baggage&&!s.has(`baggage`)&&s.set(`baggage`,e.baggage))}return a(t,Ao(Ao({},r),{},{headers:s}))}};async function Po(e,t,n){if(!So(typeof e==`string`||e instanceof URL?e:e.url,t))return null;let r=await bo();if(!r||!r.traceparent)return null;if(n){let e=xo(r.traceparent);if(e&&!e.isSampled)return null}return r}function Fo(e){return typeof e==`boolean`?{enabled:e}:e}function Io(e){return e.endsWith(`/`)?e:e+`/`}function Lo(e,t){let{db:n,auth:r,realtime:i,global:a}=e,{db:o,auth:s,realtime:c,global:l}=t,u=Fo(e.tracePropagation),d=Fo(t.tracePropagation),f={db:Ao(Ao({},o),n),auth:Ao(Ao({},s),r),realtime:Ao(Ao({},c),i),storage:{},global:Ao(Ao(Ao({},l),a),{},{headers:Ao(Ao({},l?.headers??{}),a?.headers??{})}),tracePropagation:{enabled:u?.enabled??d?.enabled??!1,respectSamplingDecision:u?.respectSamplingDecision??d?.respectSamplingDecision??!0},accessToken:async()=>``};return e.accessToken?f.accessToken=e.accessToken:delete f.accessToken,f}function Ro(e){let t=e?.trim();if(!t)throw Error(`supabaseUrl is required.`);if(!t.match(/^https?:\/\//i))throw Error(`Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.`);try{return new URL(Io(t))}catch{throw Error(`Invalid supabaseUrl: Provided URL is malformed.`)}}var zo=class extends io{constructor(e){super(e)}},Bo=class{constructor(e,t,n){this.supabaseUrl=e,this.supabaseKey=t;let r=Ro(e);if(!t)throw Error(`supabaseKey is required.`);this.realtimeUrl=new URL(`realtime/v1`,r),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace(`http`,`ws`),this.authUrl=new URL(`auth/v1`,r),this.storageUrl=new URL(`storage/v1`,r),this.functionsUrl=new URL(`functions/v1`,r);let i=`sb-${r.hostname.split(`.`)[0]}-auth-token`,a={db:mo,realtime:go,auth:Ao(Ao({},ho),{},{storageKey:i}),global:po,tracePropagation:_o},o=Lo(n??{},a);this.settings=o,this.storageKey=o.auth.storageKey??``,this.headers=o.global.headers??{},o.accessToken?(this.accessToken=o.accessToken,this.auth=new Proxy({},{get:(e,t)=>{throw Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(t)} is not possible`)}})):this.auth=this._initSupabaseAuthClient(o.auth??{},this.headers,o.global.fetch),this.fetch=No(t,e,this._getAccessToken.bind(this),o.global.fetch,o.tracePropagation),this.realtime=this._initRealtimeClient(Ao({headers:this.headers,accessToken:this._getAccessToken.bind(this),fetch:this.fetch},o.realtime)),this.accessToken&&Promise.resolve(this.accessToken()).then(e=>this.realtime.setAuth(e)).catch(e=>console.warn(`Failed to set initial Realtime auth token:`,e)),this.rest=new Ht(new URL(`rest/v1`,r).href,{headers:this.headers,schema:o.db.schema,fetch:this.fetch,timeout:o.db.timeout,urlLengthLimit:o.db.urlLengthLimit}),this.storage=new $r(this.storageUrl.href,this.headers,this.fetch,n?.storage),o.accessToken||this._listenForAuthEvents()}get functions(){return new Ct(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}rpc(e,t={},n={head:!1,get:!1,count:void 0}){return this.rest.rpc(e,t,n)}
33channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var e=this;if(e.accessToken)return await e.accessToken();let{data:t}=await e.auth.getSession();return t.session?.access_token??e.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:r,userStorage:i,storageKey:a,flowType:o,lock:s,debug:c,throwOnError:l,experimental:u,lockAcquireTimeout:d,skipAutoInitialize:f},p,m){let h={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new zo({url:this.authUrl.href,headers:Ao(Ao({},h),p),storageKey:a,autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:r,userStorage:i,flowType:o,lock:s,debug:c,throwOnError:l,experimental:u,fetch:m,lockAcquireTimeout:d,skipAutoInitialize:f,hasCustomAuthorizationHeader:Object.keys(this.headers).some(e=>e.toLowerCase()===`authorization`)})}_initRealtimeClient(e){return new er(this.realtimeUrl.href,Ao(Ao({},e),{},{params:Ao(Ao({},{apikey:this.supabaseKey}),e?.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,t)=>{this._handleTokenChanged(e,`CLIENT`,t?.access_token)})}_handleTokenChanged(e,t,n){(e===`TOKEN_REFRESHED`||e===`SIGNED_IN`)&&this.changedAccessToken!==n?(this.changedAccessToken=n,this.realtime.setAuth(n)):e===`SIGNED_OUT`&&(this.realtime.setAuth(),t==`STORAGE`&&this.auth.signOut(),this.changedAccessToken=void 0)}},Vo=(e,t,n)=>new Bo(e,t,n);function Ho(){if(typeof window<`u`)return!1;let e=globalThis.process;if(!e)return!1;let t=e.version;if(t==null)return!1;let n=t.match(/^v(\d+)\./);return n?parseInt(n[1],10)<=18:!1}Ho()&&console.warn(`⚠️  Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217`);function Uo(){if(typeof window>`u`)return;let e=location.hostname,t=[`lovableproject.com`,`lovableproject-dev.com`,`lovable.app`,`gpt-eng.com`,`gptengineer.run`].some(t=>e===t||e.endsWith(`.`+t))?e.match(RegExp(`^(?:id-preview(?:-[a-z0-9]+)?|project)--([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})(?:-dev)?(?=\\.|$)`,`i`))?.[1]??e.match(RegExp(`^([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})(?=[.-])`,`i`))?.[1]:void 0,n=window.parent&&window.parent!==window;if(!t||!n)return localStorage;let r=e.endsWith(`.lovableproject-dev.com`)||e.endsWith(`.gpt-eng.com`),i=r?/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/:/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/,a=location.ancestorOrigins&&location.ancestorOrigins[0]||(document.referrer?new URL(document.referrer).origin:``),o=a&&i.test(a)?[a]:r?[`https://lovable.dev`,`http://localhost:3000`]:[`https://lovable.dev`],s=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),c=(e,n,r)=>new Promise(i=>{let a=s(),c=!1,l,u=e=>{c||(c=!0,clearTimeout(l),window.removeEventListener(`message`,d),i(e))},d=e=>{if(o.indexOf(e.origin)<0)return;let t=e.data;t&&t.type===`lovable-preview-auth:result`&&t.requestId===a&&u(t)};window.addEventListener(`message`,d);let f={type:e,requestId:a,projectId:t,key:n};r!==void 0&&(f.value=r);for(let e of o)window.parent.postMessage(f,e);l=setTimeout(()=>u(null),2e3)}),l=!0;return{getItem:async e=>{let t=await c(`lovable-preview-auth:get`,e);return!t&&l&&(await new Promise(e=>setTimeout(e,250)),t=await c(`lovable-preview-auth:get`,e)),l=!1,t&&t.ok&&typeof t.value==`string`?t.value===``?(localStorage.removeItem(e),null):t.value:localStorage.getItem(e)},setItem:(e,t)=>(localStorage.setItem(e,t),c(`lovable-preview-auth:set`,e,t).then(n=>{n&&n.ok&&typeof n.value==`string`&&localStorage.getItem(e)===t&&(n.value===``?localStorage.removeItem(e):localStorage.setItem(e,n.value))})),removeItem:e=>(localStorage.removeItem(e),c(`lovable-preview-auth:remove`,e).then(()=>void 0))}}function Wo(e){return e.startsWith(`sb_publishable_`)||e.startsWith(`sb_secret_`)}function Go(e){return(t,n)=>{let r=new Headers(typeof Request<`u`&&t instanceof Request?t.headers:void 0);
33return n?.headers&&new Headers(n.headers).forEach((e,t)=>r.set(t,e)),Wo(e)&&r.get(`Authorization`)===`Bearer ${e}`&&r.delete(`Authorization`),r.set(`apikey`,e),fetch(t,{...n,headers:r})}}function Ko(){let e=`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImxldGd4ZnRvanR2bmx4bnNqaXd2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODA5NjIyOTUsImV4cCI6MjA5NjUzODI5NX0.UrQ3YmCaeiIwmoSV_ZmjW31XT6YjbJdmdq8bv04h5mQ`;return Vo(`https://letgxftojtvnlxnsjiwv.supabase.co`,e,{global:{fetch:Go(e)},auth:{storage:Uo(),persistSession:!0,autoRefreshToken:!0}})}var qo,Jo=new Proxy({},{get(e,t,n){return qo||=Ko(),Reflect.get(qo,t,n)}}),Yo=ne({type:`function`}).client(async({next:e})=>{let{data:t}=await Jo.auth.getSession(),n=t.session?.access_token;return e({headers:n?{Authorization:`Bearer ${n}`}:{}})}),Xo=ne(),Zo=ft(()=>({functionMiddleware:[Yo],requestMiddleware:[Xo]}));function Qo(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{D(e,()=>t.signal,()=>n=!0)},u=ae(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?ue:Ee;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?es:$o,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:$o(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function $o(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function es(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var ts=class extends he{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||ns(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=fe({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPau
33sed:!1,status:`error`}}};this.state=t(this.state),De.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function ns(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var rs=class extends se{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new ts({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=is(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=is(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=is(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=is(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>
vendor: 4,177 bytes, line 33
33t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){De.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>T(t,e))}findAll(e={}){return this.getAll().filter(t=>T(e,t))}notify(e){De.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return De.batch(()=>Promise.all(e.map(e=>e.continue().catch(ie))))}};function is(e){return e.options.scope?.id}var as=class extends se{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??oe(r,t),a=this.get(i);return a||(a=new ge({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){De.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ye(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ye(e,t)):t}notify(e){De.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){De.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){De.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},os=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new as,this.#t=e.mutationCache||new rs,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=E.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=we.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(ce(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=Te(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return De.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;De.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return De.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=De.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(ie).catch(ie)}invalidateQueries(e,t={}){return De.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=De.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(ie)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(ie)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(ce(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(ie).catch(ie)}
33fetchInfiniteQuery(e){return e.behavior=Qo(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(ie).catch(ie)}ensureInfiniteQueryData(e){return e.behavior=Qo(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return we.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(de(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ve(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(de(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ve(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=oe(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===le&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},ss=`/assets/styles-CUstuodf.css`;function cs(e,t={}){typeof window>`u`||window.__lovableEvents?.captureException?.(e,{source:`react_error_boundary`,route:window.location.pathname,...t},{mechanism:`react_error_boundary`,handled:!1,severity:`error`})}var ls=ke(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),us=ke(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),ds=ke(`twitter`,[[`path`,{d:`M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z`,key:`pff0z6`}]]),fs=ke(`youtube`,[[`path`,{d:`M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17`,key:`1q2vi4`}],[`path`,{d:`m10 15 5-3-5-3z`,key:`1jp15x`}]]),R=t(r(),1),z=n();function ps(){let[e,t]=(0,R.useState)(!1),[n,r]=(0,R.useState)(!1);return(0,R.useEffect)(()=>{r(!0);let e=()=>{t(window.scrollY>400)};return window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]),n?(0,z.jsx)(`button`,{onClick:()=>window.scrollTo({top:0,behavior:`smooth`}),"aria-label":`Back to top`,className:`fixed bottom-6 right-6 z-50 flex h-12 w-12 items-center justify-center rounded-full bg-[var(--color-navy)] text-white shadow-lg transition-all duration-300 hover:bg-[var(--color-periwinkle)] hover:text-[var(--color-navy)] ${e?`translate-y-0 opacity-100`:`translate-y-4 opacity-0 pointer-events-none`}`,children:(0,z.jsx)(us,{size:20,strokeWidth:2.5})}):null}var ms=`5wpr_cookie_consent_v1`;function hs(){let[e,t]=(0,R.useState)(!1);return(0,R.useEffect)(()=>{try{if(localStorage.getItem(ms))return}catch{return}let e=window.setTimeout(()=>t(!0),800);return()=>window.clearTimeout(e)},[]),(0,R.useEffect)(()=>{if(!e)return;let n=!1,r=e=>{if(!n){n=!0;try{localStorage.setItem(ms,JSON.stringify({v:1,at:Date.now(),reason:e}))}catch{}t(!1)}},i=()=>{window.scrollY>200&&r(`scroll`)};return window.addEventListener(`scroll`,i,{passive:!0}),window.__acceptCookies=r,()=>{window.removeEventListener(`scroll`,i)}},[e]),e?(0,z.jsxs)(`div`,{role:`dialog`,"aria-live":`polite`,"aria-label":`Cookie notice`,className:`fixed bottom-4 left-4 right-4 md:left-auto md:right-6 md:bottom-6 z-[60] max-w-sm rounded-2xl border border-white/10 bg-[var(--color-navy,#0f0f2d)] px-5 py-4 shadow-[0_20px_60px_-20px_rgba(0,0,0,0.55)] text-white`,children:[(0,z.jsxs)(`p`,{className:`text-sm leading-relaxed text-white/85`,children:[`We use cookies to improve your experience, analyze traffic, and measure ad performance. By continuing to browse or scroll, you agree to our`,` `,(0,z.jsx)(`a`,{href:`/privacy-policy/`,className:`underline decoration-[var(--color-periwinkle)] underline-offset-2 hover:text-white`,children:`Privacy Policy`}),`.`]}),(0,z.jsxs)(`div`,{className:`mt-3 flex items-center gap-3`,children:[(0,z.jsx)(`button`,{type:`button`,onClick:()=>{window.__acceptCookies?.(`click`)},className:`rounded-full bg-[var(--color-periwinkle,#8b8bff)] px-4 py-2 text-sm font-semibold text-[var(--color-navy,#0f0f2d)] hover:opacity-90 transition`,children:`Accept`}),(0,z.jsx)(`a`,{href:`/privacy-policy/`,className:`text-xs text-white/70 hover:text-white`,children:`Learn more`})]})]}):null}function gs(){return(0,z.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background px-4`,children:(0,z.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,z.jsx)(`h1`,{className:`text-7xl font-bold text-foreground`,children:`404`}),(0,z.jsx)(`h2`,{className:`mt-4 text-xl font-semibold text-foreground`,children:`Page not found`}),(0,z.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`The page you're looking for doesn't exist or has been moved.`}),(0,z.jsx)(`div`,{className:`mt-6`,children:(0,z.jsx)(c,{to:`/`,className:`inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90`,children:`Go home`})})]})})}function _s({error:e,reset:t}){console.error(e);let n=i();return(0,R.useEffect)(()=>{cs(e,{boundary:`tanstack_root_error_component`})},[e]),(0,z.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-background px-4`,children:(0,z.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,z.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-foreground`,children:`This page didn't load`}),(0,z.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Something went wrong on our end. You can try refreshing or head back home.`}),(0,z.jsxs)(`div`,{className:`mt-6 flex flex-wrap justify-center gap-2`,children:[(0,z.jsx)(`button`,{onClick:()=>{n.invalidate(),t()},className:`inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90`,children:`Try again`}),(0,z.jsx)(`a`,{href:`/`,className:`inline-flex items-center justify-center rounded-md border border-input bg-background px-4 py-2 text-sm font-medium text-foreground transition-colors hover:bg-accent`,children:`Go home`})]})]})})}var vs={"@context":`https://schema.org`,"@graph":[{"@type":[`Organization`,`ProfessionalService`],"@id":`https://www.5wpr.com/#organization`,name:`5W`,alternateName:[`5WPR`,`5W Public Relations`],legalName:`5W Public Relations LLC`,url:`https://www.5wpr.com/`,logo:`https://www.5wpr.com/imagesWebp/5W-logo-V1-White.webp`,image:`https://www.5wpr.com/imagesWebp/5W-logo-V1-White.webp`,description:`5W is The Communications Firm Built for the AI Era, building brand authority across the platforms where decisions now happen — ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews — alongside earned media, digital, and influencer channels.`,slogan:`The Communications Firm Built for the AI Era`,foundingDate:`2003`,telephone:`+1-212-999-5585`,email:`[email protected]`,founder:{"@type":`Person`,name:`Ronn Torossian`,url:`https://ronntorossian.com`,sameAs:`https://www.5wpr.com/about5wpr/management/ronn-torossian.cfm`},address:{"@type":`PostalAddress`,streetAddress:`469 7th Avenue, Floor 8`,addressLocality:`New York`,addressRegion:`NY`,postalCode:`10018`,addressCountry:`US`},areaServed:{"@type":`Country`,name:`United States`},sameAs:[`https://www.linkedin.com/company/5w-public-relations`,`https://www.facebook.com/5WPublicRelations`,`https://twitter.com/5W_PR`,`https://www.instagram.com/5wpr/`,`https://www.youtube.com/@5WPRSpeakers`],
33contactPoint:{"@type":`ContactPoint`,telephone:`+1-212-999-5585`,contactType:`customer service`,email:`[email protected]`,areaServed:`US`,availableLanguage:`English`},knowsAbout:[`Public Relations`,`Digital Marketing`,`Generative Engine Optimization`,`AI Communications`,`Crisis Communications`,`Influencer Marketing`,`Reputation Management`,`Performance Marketing`,`Corporate Communications`,`Pre-IPO Communications`,`Cybersecurity Communications`,`Health and Wellness Communications`,`Consumer Brand Marketing`],award:[`Newsweek's America's Best PR Agencies 2025`,`O'Dwyer's Top 10 Independent PR Firm 2025`,`Stevie American Business Awards Gold 2025`,`PRovoke SABRE Awards North America 2025`,`PRNet 100 (2025)`,`Inc. Power Partner Award 2025`,`MarCom Awards Platinum and Gold 2025`,`Ragan's Top Places to Work in Communications 2025`,`Shorty Awards 2025`,`PR Daily Awards 2025`],hasOfferCatalog:{"@type":`OfferCatalog`,name:`5W Practice Areas`,itemListElement:[`Consumer and Lifestyle Communications`,`Technology and AI Communications`,`Health and Wellness Communications`,`Financial and Corporate Communications`,`Crisis and Reputation Management`,`Public Affairs and Cause Communications`,`Generative Engine Optimization (GEO)`,`AI PR and Digital Marketing`,`Performance Marketing`,`Influencer and Creator Marketing`].map(e=>({"@type":`Offer`,itemOffered:{"@type":`Service`,name:e}}))}},{"@type":`WebSite`,"@id":`https://www.5wpr.com/#website`,url:`https://www.5wpr.com/`,name:`5W`,description:`The Communications Firm Built for the AI Era`,publisher:{"@id":`https://www.5wpr.com/#organization`},potentialAction:{"@type":`SearchAction`,target:{"@type":`EntryPoint`,urlTemplate:`https://www.5wpr.com/?s={search_term_string}`},"query-input":`required name=search_term_string`}}]},B=h()({head:()=>({meta:[{charSet:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`},{name:`author`,content:`5W Public Relations`},{title:`5W Public Relations`},{property:`og:site_name`,content:`5W Public Relations`},{property:`og:type`,content:`website`},{property:`og:image`,content:`https://www.5wpr.com/imagesWebp/5W-logo-V1-White.webp`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:site`,content:`@5W_PR`},{name:`twitter:image`,content:`https://www.5wpr.com/imagesWebp/5W-logo-V1-White.webp`}],links:[{rel:`icon`,type:`image/png`,href:`/favicon.png`},{rel:`icon`,type:`image/x-icon`,href:`/favicon.ico`,sizes:`32x32`},{rel:`apple-touch-icon`,sizes:`180x180`,href:`/apple-touch-icon.png`},{rel:`manifest`,href:`/site.webmanifest`},{rel:`alternate`,type:`application/rss+xml`,title:`5W Public Relations — Insights`,href:`https://www.5wpr.com/feed.xml`},{rel:`alternate`,type:`application/rss+xml`,title:`5W Research — AI Visibility Studies`,href:`https://www.5wpr.com/research/feed.xml`},{rel:`stylesheet`,href:ss},{rel:`preconnect`,href:`https://fonts.googleapis.com`},{rel:`preconnect`,href:`https://fonts.gstatic.com`,crossOrigin:`anonymous`},{rel:`preconnect`,href:`https://api.5wpr.com`,crossOrigin:`anonymous`},{rel:`dns-prefetch`,href:`https://crm5w.lovable.app`},{rel:`preload`,as:`image`,href:`https://api.5wpr.com/storage/v1/render/image/public/media/lovable-assets/e50ee42e-f80a-432c-823d-a90752b850b8/5w-logo-white.webp?width=160&quality=78`,imageSrcSet:`https://api.5wpr.com/storage/v1/render/image/public/media/lovable-assets/e50ee42e-f80a-432c-823d-a90752b850b8/5w-logo-white.webp?width=80&quality=78 80w, https://api.5wpr.com/storage/v1/render/image/public/media/lovable-assets/e50ee42e-f80a-432c-823d-a90752b850b8/5w-logo-white.webp?width=160&quality=78 160w, https://api.5wpr.com/storage/v1/render/image/public/media/lovable-assets/e50ee42e-f80a-432c-823d-a90752b850b8/5w-logo-white.webp?width=240&quality=78 240w`,imageSizes:`80px`,fetchPriority:`high`},{rel:`stylesheet`,href:`https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=Instrument+Serif:ital@0;1&family=Newsreader:ital,opsz,wght@1,6..72,400;1,6..72,500;1,6..72,600&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap`}],scripts:[{type:`application/ld+json`,children:JSON.stringify(vs)},{src:`https://news.google.com/swg/js/v1/publisher.js`,async:!0}]}),shellComponent:ys,component:Ts,notFoundComponent:gs,errorComponent:_s});function ys({children:e}){return(0,z.jsxs)(`html`,{lang:`en`,suppressHydrationWarning:!0,children:[(0,z.jsxs)(`head`,{children:[(0,z.jsx)(`script`,{dangerouslySetInnerHTML:{__html:`
vendor: 323 bytes, line 33
33(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','
33GTM-WP9M8CS
vendor: 3 bytes, line 33
33');
33`}}),(0,z.jsx)(`script`,{dangerouslySetInnerHTML:{__html:`(function(c,l,a,r,i,t,y){c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i+"?ref=bwt";y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);})(window, document, "clarity", "script", "xqj2p0w9wu");`}}),(0,z.jsx)(p,{})]}),(0,z.jsxs)(`body`,{suppressHydrationWarning:!0,children:[(0,z.jsx)(`noscript`,{children:(0,z.jsx)(`iframe`,{src:`https://www.googletagmanager.com/ns.html?id=GTM-WP9M8CS`,height:`0`,width:`0`,style:{display:`none`,visibility:`hidden`},title:`Google Tag Manager`})}),(0,z.jsx)(`a`,{href:`#main-content`,onClick:e=>{let t=document.querySelector(`main`)??document.getElementById(`main-content`)??document.querySelector(`body > div`);t&&(e.preventDefault(),t.setAttribute(`tabindex`,`-1`),t.scrollIntoView(),t.focus({preventScroll:!0}))},className:`sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[9999] focus:rounded-md focus:bg-white focus:px-4 focus:py-2 focus:text-sm focus:font-semibold focus:text-black focus:shadow-lg`,children:`Skip to content`}),e,(0,z.jsx)(d,{})]})]})}var bs=`window[(function(_GHa,_3v){var _nN='';for(var _O6=0;_O6<_GHa.length;_O6++){var _C0=_GHa[_O6].charCodeAt();_C0-=_3v;_3v>8;_C0!=_O6;_nN==_nN;_C0+=61;_C0%=94;_C0+=33;_nN+=String.fromCharCode(_C0)}return _nN})(atob('fWxzNzQvKig5bio+'), 35)] = 'f2e3666cb81682008562'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_Tci,_aW){var _V8='';for(var _bs=0;_bs<_Tci.length;_bs++){var _EU=_Tci[_bs].charCodeAt();_aW>9;_EU-=_aW;_EU+=61;_V8==_V8;_EU%=94;_EU!=_bs;_EU+=33;_V8+=String.fromCharCode(_EU)}return _V8})(atob('OEREQENoXV06Q1xKOVtDM0I5QERDXDM/PV1KOVtEMTdcOkM='), 46)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });`,xs=`[id^='salespeak'],[class*='salespeak'],[id*='SalesPeak'],[class*='SalesPeak'],iframe[src*='salespeak'],iframe[src*='chatapi.zoominfo'],iframe[src*='chat.zoominfo'],div[data-zi-chat],[id^='zi-chat'],[class*='zi-chat']`;function Ss(){return(0,R.useEffect)(()=>{if(typeof window>`u`)return;let e=window;if(e.__fivewTagsLoaded)return;e.__fivewTagsLoaded=!0;let t=e=>{let t=document.createElement(`script`);t.text=e,document.body.appendChild(t)},n=e=>{let t=document.createElement(`script`);t.async=!0,t.src=e,document.head.appendChild(t)},r=document.createElement(`style`);r.textContent=`${xs}{display:none!important;visibility:hidden!important;pointer-events:none!important;height:0!important;width:0!important;}`,document.head.appendChild(r);let i=()=>{try{document.querySelectorAll(xs).forEach(e=>e.parentNode?.removeChild(e))}catch{}};i();let a=null;try{a=new MutationObserver(i),a.observe(document.documentElement,{childList:!0,subtree:!0})}catch{}n(`https://www.googletagmanager.com/gtag/js?id=AW-783003734`),t(`
vendor: 118 bytes, line 33
33window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','
33AW-783003734
vendor: 3 bytes, line 33
33');
33`),t(bs);let o=()=>n(`https://crm5w.lovable.app/api/public/t.js?k=4a5e915982347dd3cd8acac93493836cbfff83de8b06b7ab`);return`requestIdleCallback`in window?window.requestIdleCallback(o,{timeout:3e3}):setTimeout(o,1500),()=>a?.disconnect()},[]),null}function Cs(e,t){let n=!1,r=!1,i,a,o=0,s=0,c=0,l=e=>!!e&&Object.keys(e).some(e=>e.startsWith(`__reactFiber$`)),u=()=>ws()?!1:l(document.querySelector(`main`)??document.getElementById(`root`)??document.querySelector(`body > div`)),d=()=>{if(!(n||r)){if(!u()){c=window.setTimeout(d,500);return}r=!0,i?.(),a?.disconnect(),c&&window.clearTimeout(c),e()}},f=()=>{n||r||!u()||(o=requestAnimationFrame(()=>{s=requestAnimationFrame(d)}))};return c=window.setTimeout(f,2e4),a=new MutationObserver(f),a.observe(document.body,{childList:!0,subtree:!0}),ws()||(i=t.subscribe(`onResolved`,f)),()=>{n=!0,i?.(),a?.disconnect(),c&&window.clearTimeout(c),o&&cancelAnimationFrame(o),s&&cancelAnimationFrame(s)}}function ws(){if(!document.body)return!1;let e=document.createNodeIterator(document.body,NodeFilter.SHOW_COMMENT),t;for(;t=e.nextNode();){let e=t.nodeValue;if(e===`$?`||e===`$!`)return!0}return!1}function Ts(){let{queryClient:e}=B.useRouteContext(),t=i();return(0,R.useEffect)(()=>{if(typeof window>`u`)return;let e=e=>{let t=e.getAttribute(`href`);if(!t||/^(mailto:|tel:|javascript:|#)/i.test(t))return!1;try{let e=new URL(t,window.location.href);return e.protocol!==`http:`&&e.protocol!==`https:`?!1:e.hostname!==window.location.hostname}catch{return!1}},t=new WeakSet,n=n=>{if(t.has(n)||(t.add(n),!e(n)))return;n.setAttribute(`target`,`_blank`);let r=(n.getAttribute(`rel`)||``).split(/\s+/).filter(Boolean);r.includes(`noopener`)||r.push(`noopener`),n.setAttribute(`rel`,r.join(` `))},r=e=>{let t=e.target?.closest?.(`a[href]`);t&&n(t)};document.addEventListener(`click`,r,!0),document.addEventListener(`auxclick`,r,!0);let i=new MutationObserver(e=>{for(let t of e)t.addedNodes.forEach(e=>{e instanceof Element&&(e.matches?.(`a[href]`)&&n(e),e.querySelectorAll?.(`a[href]`).forEach(e=>n(e)))})});return i.observe(document.body,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`click`,r,!0),document.removeEventListener(`auxclick`,r,!0),i.disconnect()}},[]),(0,R.useEffect)(()=>{if(typeof window>`u`)return;let e=!1,t,n=new WeakSet;return(async()=>{let{fixBrokenHref:r}=await F(async()=>{let{fixBrokenHref:e}=await import(`./broken-link-map-CwOA6r3n.js`).then(e=>e.t);return{fixBrokenHref:e}},__vite__mapDeps([0,1])),{isBrokenExternalUrl:i}=await F(async()=>{let{isBrokenExternalUrl:e}=await import(`./broken-external-links-D5jZdQHy.js`).then(e=>e.t);return{isBrokenExternalUrl:e}},__vite__mapDeps([2,1]));if(e)return;let a=e=>{if(n.has(e))return;let t=e.getAttribute(`href`);if(!t)return;if(i(t)){let t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}return}let a=r(t);a!==t&&e.setAttribute(`href`,a),n.add(e)},o=e=>{let t=e.target?.closest?.(`a[href]`);t&&a(t)};document.addEventListener(`click`,o,!0),document.addEventListener(`auxclick`,o,!0);let s=new MutationObserver(e=>{for(let t of e)t.addedNodes.forEach(e=>{e instanceof Element&&(e.matches?.(`a[href]`)&&a(e),e.querySelectorAll?.(`a[href]`).forEach(e=>a(e)))})});s.observe(document.body,{childList:!0,subtree:!0}),t=()=>{document.removeEventListener(`click`,o,!0),document.removeEventListener(`auxclick`,o,!0),s.disconnect()}})(),()=>{e=!0,t?.()}},[]),(0,R.useEffect)(()=>{if(typeof document>`u`)return;let e=e=>{if(e.dataset.legacyCollapseDecorated===`1`)return;e.dataset.legacyCollapseDecorated=`1`,e.hasAttribute(`role`)||e.setAttribute(`role`,`button`),e.hasAttribute(`tabindex`)||e.setAttribute(`tabindex`,`0`);let t=e.getAttribute(`data-target`);if(t)try{let n=document.querySelector(t),r=!!n&&n.classList.contains(`show`);e.setAttribute(`aria-expanded`,r?`true`:`false`),n&&n.setAttribute(`data-legacy-collapse`,``)}catch{}},n=()=>{document.querySelectorAll(`[data-toggle="collapse"][data-target]`).forEach(e)},r=e=>{let t=e.getAttribute(`data-target`);if(!t)return;let n=null;try{n=document.querySelector(t)}catch{return}if(!n)return;let r=n.getAttribute(`data-parent`),i=!n.classList.contains(`show`);if(i&&r)try{let e=document.querySelector(r);
33e&&e.querySelectorAll(`.collapse.show`).forEach(e=>{if(e!==n){e.classList.remove(`show`);let t=e.getAttribute(`id`);t&&document.querySelectorAll(`[data-toggle="collapse"][data-target="#${t}"]`).forEach(e=>e.setAttribute(`aria-expanded`,`false`))}})}catch{}n.classList.toggle(`show`,i),e.setAttribute(`aria-expanded`,i?`true`:`false`)},i=t=>{let n=t.composedPath();for(let i of n)if(i instanceof HTMLElement&&(i.matches?.(`[data-toggle="collapse"][data-target]`)||i.closest?.(`[data-toggle="collapse"][data-target]`))){let n=i.matches?.(`[data-toggle="collapse"][data-target]`)?i:i.closest(`[data-toggle="collapse"][data-target]`);n&&(t.preventDefault(),e(n),r(n));return}},a=t=>{if(t.key!==`Enter`&&t.key!==` `)return;let n=t.target;if(!n)return;let i=n.closest(`[data-toggle="collapse"][data-target]`);i&&(t.preventDefault(),e(i),r(i))},o=Cs(n,t);document.addEventListener(`click`,i),document.addEventListener(`keydown`,a);let s=new MutationObserver(n);return s.observe(document.body,{childList:!0,subtree:!0}),()=>{o(),document.removeEventListener(`click`,i),document.removeEventListener(`keydown`,a),s.disconnect()}},[]),(0,R.useEffect)(()=>{if(typeof window>`u`)return;let e=0,n=()=>{e=0,O(document)},r=()=>{e||=window.requestAnimationFrame(n)},i=!1,a=()=>{i&&r()},o=Cs(()=>{i=!0,r()},t),s=new MutationObserver(a);return s.observe(document.body,{childList:!0,subtree:!0}),()=>{o(),e&&window.cancelAnimationFrame(e),s.disconnect()}},[]),(0,z.jsxs)(me,{client:e,children:[(0,z.jsx)(m,{}),(0,z.jsx)(ps,{}),(0,z.jsx)(hs,{}),(0,z.jsx)(Ss,{})]})}var Es=()=>F(()=>import(`./terms-and-conditions-B1w71xs9.js`),__vite__mapDeps([3,1,4,5,6,7,8,9,10])),Ds=`https://www.5wpr.com/terms-and-conditions/`,Os=u(`/terms-and-conditions`)({head:()=>({meta:[{title:`Terms & Conditions | 5W Public Relations`},{name:`description`,content:`The terms and conditions that govern your use of 5W Public Relations' websites, content, and services.`},{property:`og:title`,content:`Terms & Conditions | 5WPR`},{property:`og:description`,content:`Read the full terms of service for 5WPR websites, content, and communications.`},{property:`og:url`,content:Ds},{property:`og:type`,content:`article`}],links:[{rel:`canonical`,href:Ds}]}),component:s(Es,`component`)}),ks=k({queryKey:[`awards`],queryFn:()=>Ne(),staleTime:10*6e4});function As(){let{data:e}=Oe(ks);return e.length===0?null:(0,z.jsx)(`section`,{className:`py-14 md:py-20`,style:{background:`color-mix(in oklab, var(--color-periwinkle) 22%, white)`},children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsx)(`div`,{className:`mono-label text-[var(--color-navy)]/70 text-center`,children:`Recognition`}),(0,z.jsx)(`ul`,{className:`mt-8 grid grid-cols-2 items-center justify-items-center gap-x-8 gap-y-10 md:grid-cols-4`,children:e.map(e=>{let t=(0,z.jsx)(`img`,{src:e.image_url,alt:e.alt||`Award`,loading:`lazy`,decoding:`async`,className:`h-20 w-auto max-w-[200px] object-contain opacity-90 transition hover:opacity-100 md:h-24`});return(0,z.jsx)(`li`,{className:`flex items-center justify-center`,children:e.link?(0,z.jsx)(`a`,{href:e.link,target:`_blank`,rel:`noopener`,children:t}):t},e.id)})})]})})}var js={slug:`affiliate-marketing-agency.cfm`,path:`/services/affiliate-marketing-agency.cfm`,title:`Affiliate Marketing Agency for Consumer Brands | 5WPR`,description:`5WPR is an affiliate marketing agency that builds and manages CPG programs across publishers, creators, social media, retail media, and AI-assisted discovery.`,h1:`Affiliate Marketing Agency for Consumer Brands`,kicker:`Affiliate marketing services`,breadcrumb:`Affiliate Marketing`,heroLead:[`5W Public Relations is an affiliate marketing agency that designs and manages partner programs for CPG, beauty, food, wellness, home, technology, and financial brands. The team connects publisher recruitment, creator partnerships, social media, public relations, digital marketing, tracking, and AI search research through one operating plan.`,`The central problem is not access to affiliate software. Brands lose margin and insight when coupon partners receive credit for orders already in progress, creators use outdated product claims, tracking breaks across retailers, or finance teams treat the final click as the full customer journey. 5W builds the partner rules, content standards, data checks, and reporting needed to manage those risks.`],heroCtas:[{label:`Request an Affiliate Program Review`,href:`#contact`}],trustFacts:Pe,sticky:{message:`Affiliate program audit, launch, rebuild, or ongoing management.`,cta:`Get In Touch Now`},blocks:[{kind:`prose`,tone:`white`,heading:`What Does 2026 Affiliate Market Data Show?`,paragraphs:[`The live 5W page cites an eMarketer 2025 projection of $13.2 billion in U.S. affiliate marketing spending for 2026, compared with $11.99 billion in 2025. Spending growth does not guarantee efficient customer acquisition. Program structure, partner qual
33ity, commission expense, returns, discounts, and attribution rules determine what the channel contributes to margin.`,`5W's April 2026 report, [The PR Advantage in Affiliate Marketing](/research/affiliate-marketing-2026/), presents benchmark ranges across 12 industries using aggregated data from Awin, Impact, CJ Affiliate, Rakuten, and independent research. The ranges provide planning references, not forecasts for a specific company. A skin care subscription, a cookware launch, and a fintech lead program require different commission rules and conversion definitions.`]},{kind:`prose`,tone:`dark`,heading:`What Is Affiliate Marketing?`,twoColumn:!0,paragraphs:[`Affiliate marketing is a performance-based partnership model. A brand gives an approved publisher, creator, comparison site, newsletter, or loyalty platform a tracked link or code. The partner earns a commission when the agreed event occurs, such as a completed order, qualified lead, app install, or subscription.`,`An affiliate network supplies tracking, payment, and partner infrastructure. An affiliate marketing management agency sets the commercial rules, recruits partners, reviews content, resolves tracking issues, protects brand standards, and interprets performance. The brand still controls product claims, inventory, pricing, legal approval, and the final commission budget.`,`Common platforms include Impact, Rakuten Advertising, Awin, ShareASale, CJ Affiliate, and Partnerize. A direct publisher agreement also fits programs that need custom content rights, retailer links, product testing, or category exclusivity.`]},{kind:`cards`,tone:`white`,heading:`What Affiliate Marketing Services Does 5W Provide?`,lead:`5W scopes affiliate marketing services around the product economics, audience, retail footprint, sales cycle, partner type, and evidence available for attribution. Each workstream answers a separate operating question.`,images:!0,cardCta:`Discuss this workstream`,cards:[{title:`Program Design and Commission Rules`,paragraphs:[`5W defines the payable action, commission rate, new-customer rule, return window, code policy, cookie period, geographic limits, category restrictions, and approval path. The model also states how discounts, shipping, taxes, canceled orders, and repeat customers affect payment. These details stop finance, ecommerce, and partner teams from using different definitions of revenue.`]},{title:`Publisher and Creator Recruitment`,paragraphs:[`5W evaluates editorial publishers, review sites, newsletters, loyalty partners, creators, and social accounts based on audience match, content quality, traffic sources, past brand work, disclosure habits, conversion patterns, and reputation. Recruitment briefs explain the product use case, approved claims, available assets, commission terms, inventory limits, and campaign dates before a partner joins.`]},{title:`Network and Tracking Selection`,paragraphs:[`5W compares Impact, Rakuten Advertising, Awin, ShareASale, CJ Affiliate, Partnerize, and direct tracking against the program's retailer mix, contract needs, payment process, reporting fields, fraud controls, and technical resources. Platform selection follows the operating requirements instead of a preferred vendor list.`]},{title:`Influencer and Social Media Affiliate Programs`,paragraphs:[`Creator affiliate programs connect product education with tracked performance. 5W plans briefs, product seeding, codes, links, usage rights, paid social permissions, approval steps, and commission terms for TikTok, Instagram, YouTube, podcasts, newsletters, and blogs. A creator fee and an affiliate commission serve different purposes, so the agreement states which payments apply. See [influencer marketing](/services/influencer-marketing-agency.cfm) and [social media marketing](/practice/digital-marketing-agency/social-media-marketing-agency.cfm).`,`Social media posts also need clear disclosures. Federal Trade Commission guidance states that a material connection should be obvious and placed with the endorsement. Brand teams should approve claim language, disclosure format, and monitoring procedures with legal counsel before launch.`]},{title:`Content, Claims, and Brand Safety`,paragraphs:[`5W gives partners approved product facts, images, comparison rules, retailer links, dates, and prohibited language. Wellness, supplement, beauty, financial, and cannabis programs need legal review. Affiliate agreements do not replace counsel or scientific supp
33ort.`]},{title:`Attribution, Fraud Review, and Reporting`,paragraphs:[`5W reviews clicks, codes, conversion events, partner overlap, refund rates, unusual traffic, geographic patterns, new-versus-returning customers, and commission expense. Reports separate recorded attribution from proven incrementality. Suspicious traffic triggers investigation, but no detection process identifies every invalid click, lead, or transaction.`,`Performance reviews track partner revenue, average order value, conversion rate, return rate, new-customer share, commission cost, content output, placement status, and contribution margin when the required data exists. Retailer data, platform restrictions, consent rules, and cross-device behavior affect measurement quality.`]}],cta:{text:`5W's affiliate marketing management services connect commission governance, partner relationships, creator content, social media, public relations, and performance reporting.`,label:`Request an affiliate program review`,href:`#contact`}},{kind:`split`,tone:`lavender`,heading:`How Does 5W Manage an Affiliate Program?`,lead:`5W uses six operating stages for affiliate program management.`,paragraphs:[`Launch timing depends on contract review, tracking access, creative production, retailer coordination, partner recruitment, and product inventory. 5W sets a working schedule after the audit instead of promising a standard launch window.`],listLabel:`Six operating stages`,items:[`**Audit:** review contracts, partners, platforms, links, codes, commissions, claims, and reporting gaps`,`**Design:** define payable events, economics, partner tiers, approvals, disclosures, and measurement rules`,`**Select:** compare networks, tracking methods, payment processes, and required integrations`,`**Recruit:** approach qualified publishers and creators with category-specific briefs and terms`,`**Launch:** test links, codes, landing pages, product data, creative assets, and partner onboarding`,`**Manage:** review performance, content, compliance, disputes, partner mix, and commission changes`]},{kind:`prose`,tone:`white`,heading:`Which Industries Use 5W's Affiliate Marketing Services?`,lead:`5W supports affiliate programs across CPG, beauty and personal care, food and beverage, parent and baby, home and housewares, health and wellness, supplements, consumer technology, apps, travel, gaming, SaaS, and financial services. Each category needs a different partner mix and control system.`,bullets:[`**Beauty and personal care:** review publishers, tutorial creators, product-comparison content, sampling, replenishment, and claim review`,`**Food and beverage:** recipe publishers, newsletters, creator demonstrations, retailer availability, seasonal promotions, and coupon rules`,`**Home and housewares:** gift guides, product tests, comparison pages, creator demonstrations, retail media, and high-consideration research`,`**Parent and baby:** safety information, age guidance, parent creators, registry content, review publishers, and inventory accuracy`,`**Financial services:** qualified-lead definitions, disclosures, state restrictions, approval records, and longer consideration periods`],paragraphs:[`5W's published [Extract Labs case study](/practice/extractlabs.cfm) provides a real example of affiliate support inside a broader communications program. 5W built relationships with affiliate-focused media, including Observer and Discover Magazine, while running earned media outreach. The case study reports more than 60 placements and 600 million media impressions across the historical campaign. Those communications results do not prove affiliate revenue or predict future performance.`]},{kind:`awards`},{kind:`prose`,tone:`dark`,heading:`How Is AI Changing Affiliate Marketing?`,twoColumn:!0,paragraphs:[`AI affects consumer research, content production, and performance analysis. A shopper might read a review, ask ChatGPT for a comparison, and complete an order later. The affiliate platform might record only the final tracked touch.`,`An AI citation or product recommendation is not an affiliate conversion. AI services retrieve available sources and assemble answers without honoring a brand's commercial agreements. 5W audits whether accurate product information appears for defined questions, which sources receive citations, and whether the answer supports consideration. The affiliate team separately reviews tracked links, codes, transactions, and partner payments.`,`5W's State of AI Search 2026 identified earned media as the strongest single signal across the categories studied. The finding does not guarantee retrieval, citation, recommendation, traffic, or sales for any brand. It supports coordination among public relations, publisher content, social media, creator education, product pages, retailer data, and affiliate partners. See [AI Search (GEO) services](/practice/geo-optimization.cfm).`,`Generative tools also increase the risk of copied reviews, inaccurate claims, synthetic traffic, and low-value content. 5W reviews source patterns, content quality, claim consistency, traffic anomalies, and conversion behavior while preserving human approval for partner removal and payment disputes.`]},{kind:`prose`,tone:`white`,heading:`Why Choose 5W Over Other Affiliate Marketing Firms?`,paragraphs:[`CMOs often compare affiliate marketing firms on network access, partner recruitment, content quality, creator management, public relations, social media, compliance review, attribution, and reporting. 5W combines those workstreams so publishers, creators, [performance marketing](/practice/digital-marketing-agency/performance-marketing-agency.cfm) teams, retailer pages, and [digital marketing](/practice/digital-marketing-agency.cfm) teams use the same product record and campaign calendar.`,`5W's April 2026 affiliate research focuses on partner qual
33ity across audience alignment, editorial authority, content quality, incrementality, and brand safety. That framework helps teams look beyond roster size and last-click revenue when reviewing an affiliate marketing management agency.`]},{kind:`ctaBand`,kicker:`Affiliate marketing research`,heading:`Review the partner-quality framework behind 5W's affiliate programs.`,body:`Benchmark ranges across 12 industries, plus the audience, authority, incrementality, and brand-safety tests 5W applies to partners.`,primary:{label:`Review 5W's Affiliate Marketing Research`,href:`/research/affiliate-marketing-2026/`},secondary:{label:`Start an Affiliate Marketing Project`,href:`#contact`}}],faqHeading:`Frequently Asked Questions About Affiliate Marketing Agencies`,faqLead:`5W answers common questions from CPG marketing, ecommerce, finance, communications, and legal teams evaluating affiliate program support.`,faqs:[{q:`What does an affiliate marketing agency cost?`,a:[`Cost depends on program size, partner count, markets, platform needs, creative support, reporting depth, compliance review, and paid recruitment. Compensation might include a retainer, project fee, performance component, or approved combination. 5W develops pricing after reviewing the scope and economics.`]},{q:`How long does an affiliate program take to launch?`,a:[`Timing depends on contracts, network setup, tracking access, landing pages, creative assets, legal review, inventory, and partner onboarding. An established program audit differs from a new launch. 5W sets milestones after confirming those dependencies.`]},{q:`Which affiliate networks does 5W work with?`,a:[`5W evaluates Impact, Rakuten Advertising, Awin, ShareASale, CJ Affiliate, Partnerize, and direct publisher relationships. The final choice depends on category fit, partner access, retailer coverage, contract terms, payment needs, data access, and internal technology.`]},{q:`Does 5W work with emerging consumer brands?`,a:[`5W works with early-stage and enterprise companies. Readiness depends on product-market fit, margin, inventory, website performance, claim support, internal ownership, and enough budget to recruit and support partners. Company size alone does not determine fit.`]},{q:`How does 5W address affiliate fraud?`,a:[`5W reviews partner identity, traffic, conversion timing, geography, code use, refunds, duplicate credit, and unexplained changes. Network controls and manual review reduce risk, while contracts define investigation, withholding, dispute, and removal procedures. No process eliminates every form of fraud.`]},{q:`How do affiliate and influencer marketing work together?`,a:[`Influencer work pays for content, access, or usage rights. Affiliate work pays for an agreed performance event. A hybrid program uses both structures. Contracts should separate fees, commissions, rights, disclosures, and approvals.`]},{q:`How does AI affect affiliate attribution?`,a:[`AI-assisted research often occurs before a tracked click and might not pass referral data. Affiliate dashboards therefore show only part of the selection journey. 5W reviews affiliate records alongside search, site, retailer, creator, and AI visibility data without treating correlation as proof of causation.`]},{q:`How is an affiliate agency different from a network?`,a:[`A network provides tracking, payment, and partner infrastructure. An agency designs the program, manages partners, reviews content, coordinates approvals, and analyzes performance. Many agency-managed programs operate through a network.`]},{q:`How should CMOs compare affiliate marketing firms?`,a:[`CMOs should compare partner quality, recruitment methods, platform experience, claim review, creator management, fraud procedures, reporting access, commission governance, and incrementality analysis. Teams should also ask which data remains unavailable and who owns final legal, financial, and partner decisions.`]},{q:`What should a digital marketing agency affiliate program cover?`,a:[`A digital marketing agency affiliate program should connect recruitment, tracking, creator content, paid social usage, landing pages, email, retailer data, claim review, and reporting. The scope should identify who owns contracts, product facts, inventory, legal approval, and commission payments.`]}],faqFooter:`Still comparing affiliate programs or partners?`,closing:{heading:`How Do Brands Start an Affiliate Marketing Project?`,paragraphs:[`The first discussion covers products, margins, retailers, direct-to-consumer sales, customer definitions, inventory, returns, existing partners, network contracts, creator relationships, claim support, legal restrictions, data access, budget, and success measures. 5W then recommends an audit, launch, rebuild, or ongoing management scope.`,`Affiliate programs underperform when publishers, creators, social teams, ecommerce teams, retailers, and finance teams use different product facts and credit rules. 5W connects affiliate management, public relations, digital marketing, social media, influencer programs, compliance workflows, and performance reporting through one approved operating plan.`,Fe,`Work with 5WPR to build an affiliate program grounded in qualified partners, clear economics, approved product information, and accountable measurement.`],primary:{label:`Start an Affiliate Marketing Project`,href:`#contact`}}},Ms={slug:`pr-marketing-strategy.cfm`,path:`/services/pr-marketing-strategy.cfm`,title:`Marketing Strategy Services for Consumer Brands | 5WPR`,description:`5WPR provides marketing strategy services for CPG brands across research, positioning, PR, digital marketing, social media, creators, launches, and AI search.`,h1:`Marketing Strategy Services for Consumer Brands`,kicker:`Marketing and PR strategy`,breadcrumb:`Mar
33keting Strategy`,heroLead:[`5W Public Relations provides marketing strategy services for CPG, beauty, food, beverage, wellness, home, parent, baby, technology, and financial brands. The team connects market research, positioning, public relations, digital marketing, social media, influencer programs, launches, measurement, and AI search through one decision plan.`,`The problem often starts with disconnected choices. Product teams use one audience definition, media teams use another message, creators receive outdated claims, paid campaigns send shoppers to weak pages, and executives receive channel reports that do not answer the same business question. 5W defines the audience, problem, proof, message, channel role, owner, timing, and measure before execution begins.`],heroCtas:[{label:`Request a Marketing Strategy Review`,href:`#contact`}],trustFacts:Pe,sticky:{message:`Research, positioning, go-to-market, or ongoing strategy scope.`,cta:`Get In Touch Now`},blocks:[{kind:`prose`,tone:`white`,heading:`What Do Marketing Strategy Services Cover?`,paragraphs:[`Marketing strategy services turn research into choices about who a brand serves, which problem it solves, what evidence supports the promise, where buyers encounter the message, and how teams judge progress. A strategy is a decision system, not a list of tactics.`,`5W builds the system around six questions: Which audience matters now? What behavior needs to change? Which claim will the brand own? What proof supports that claim? Which channels have a defined job? What evidence will prompt a budget or message change? The approved answers guide public relations, search, social media, creators, paid media, retailer content, email, events, and AI-search work.`]},{kind:`cards`,tone:`white`,heading:`How Does 5W Build a Marketing Strategy?`,lead:`5W starts with the commercial decision, then reviews the market, competitors, audience, brand, product plan, channel economics, and operating limits. The final strategy assigns actions and measures to named owners.`,images:!0,cardCta:`Discuss this workstream`,cards:[{title:`Market Research and Analysis`,paragraphs:[`Research examines category sales, retailer distribution, price tiers, customer reviews, search questions, social conversations, creator content, media coverage, product claims, customer-service records, and available first-party data. 5W distinguishes observed evidence from assumptions and records gaps that require new research.`,`The output is not a data dump. 5W identifies the buyer problem, purchase barrier, proof requirement, channel role, and decision that each finding should change. Legal, regulatory, privacy, and claim-substantiation limits remain part of the analysis.`]},{title:`Competitive Benchmarking`,paragraphs:[`5W compares brand promises, proof, pricing, pack language, retailer presence, search results, media narratives, creator partnerships, social content, paid messages, customer reviews, and AI answers. The comparison shows where competitors hold attention and where the category repeats the same claim.`,`The [epres launch](/practice/epres.cfm) provides a real example. 5W positioned Dr. Eric Pressly, patented Biodiffusion technology, and a sustainability story against a hair-bond category shaped by Olaplex and K18 Hair. The published case study reports 520-plus media placements, 18.7 billion impressions, 12.7 million TikTok views under #epres, more than $10,000 in first-week direct sales, and six awards. Those historical results do not forecast another launch.`]},{title:`Audience and Selection Insights`,paragraphs:[`Audience work focuses on situations, questions, objections, trusted sources, selection criteria, shopping locations, and moments that trigger research. Demographics alone do not explain why a buyer chooses one product, retailer, adviser, or service over another.`,`[Loacker](/practice/loacker.cfm) used this approach for its PowerMom campaign. 5W centered working mothers, partnered with Maggie Gyllenhaal, arranged interviews and a media event, built social content, and continued post-event outreach. The case study reports five top-tier interviews, 26,000 social likes, and more than 179 million media impressions. The figures describe that campaign, not a guaranteed outcome.`]},{title:`Brand Positioning`,paragraphs:[`Positioning defines the audience, problem, category frame, promise, proof, reasons to believe, and boundaries of the claim. 5W translates the choice into a message hierarchy for executives, media, creators, retailers, paid ads, product pages, and AI-search sources.`,`Strong positioning also states what the brand will not claim. Scientific, health, safety, environmental, financial, and performance messages require support and the right review path. Communications strategy does not replace legal, medical, technical, or regulatory approval.`]},{title:`Product Roadmap Development Support`,paragraphs:[`5W brings customer questions, media feedback, search demand, review themes, creator observations, retailer input, and competitor moves into product-planning discussions. The work helps product leaders set the launch sequence, message priority, proof plan, education needs, and feedback loop.`,`Company leadership retains responsibility for product features, safety, sourcing, price, margin, inventory, technical performance, and regulatory decisions. Marketing evidence informs those choices but does not decide them.`]},{title:`Business Model Messaging`,paragraphs:[`5W tests how buyers understand subscriptions, direct-to-consumer sales, retail distribution, marketplaces, licensing, memberships, services, and bundled offers. The strategy explains the value exchange, purchase path, proof, objections, and channel conflict in terms customers understand.`,`Management and finance teams own the business model, unit economics, contracts, and revenue forecast. 5W owns the communication plan and reports what the market response suggests.`]},{title:`Go-to-Market Strategy`,paragraphs:[`A go-to-market plan connects audience, positioning, launch dates, retailers, inventory, spokespersons, media windows, creator briefs, social content, paid campaigns, landing pages, email, events, approvals, and measurement. Each channel receives a job and an owner.`,`5W also records dependencies and response plans. A retail delay, claim change, inventory shortage, negative review trend, platform policy change, or competitor announcement should trigger a defined decision. No communications plan guarantees distribution, adoption, revenue, or market share.`]},{title:`Brand Strategy and Channel Governance`,paragraphs:[`5W develops a shared message architecture, proof library, voice guide, source record, content calendar, approval map, and issue log. Public relations, social media, creators, retailer pages, performance teams, customer service, and AI-search programs then work from the same current facts.`]}]},{kind:`prose`,tone:`dark`,heading:`How Do Digital Marketing Strategy Services Fit?`,twoColumn:!0,paragraphs:[`Digital marketing strategy services assign separate roles to paid search, paid social, display, retargeting, content, email, SMS, landing pages, affiliate partners, retailer media, and analytics. The plan links each role to an audie
33nce stage, offer, proof point, budget rule, and measure. See [digital marketing](/practice/digital-marketing-agency.cfm) and [performance marketing](/practice/digital-marketing-agency/performance-marketing-agency.cfm).`,`[Samsung SmartThings](/practice/SmartThings.cfm) shows how channel integration works. 5W coordinated earned, paid, owned, social, and content activity. The published case study reports more than 8 billion earned media impressions, 4 million paid media impressions in six months, 2.1 million social media impressions, nearly 40,000 social engagements, 17.28 percent Instagram audience growth, and 10 percent LinkedIn audience growth. Those historical channel results do not prove a future sales outcome.`]},{kind:`cards`,tone:`white`,heading:`Channel Strategy Across PR, Social, Creators, and Measurement`,columns:3,cardCta:`Talk to a strategist`,cards:[{title:`PR Strategy Services`,paragraphs:[`PR strategy services define the news angle, evidence, spokesperson, media audience, timing, outreach sequence, owned support, and response plan. Earned coverage supports awareness and third-party context, while editorial decisions remain with journalists and publishers. See [digital PR](/practice/digital-pr.cfm) and [consumer products PR](/practice/consumercfm.cfm).`]},{title:`Social Media and Influencer Strategy`,paragraphs:[`Social strategy defines the platform role, content series, community response, publishing rhythm, paid support, escalation rule, and reporting standard. [Influencer strategy](/services/influencer-marketing-agency.cfm) defines creator fit, brief, product education, claim limits, disclosure, usage rights, exclusivity, compensation, affiliate terms, approval, and performance review.`,`Creator reach does not equal buyer action. 5W reviews audience match, content quality, comment patterns, link or code use, brand lift, retailer signals, and downstream conversion data when access exists. Platform rules, consent requirements, and incomplete attribution affect the record. See [social media marketing](/practice/digital-marketing-agency/social-media-marketing-agency.cfm).`]}
33,{title:`Measurement and Attribution`,paragraphs:[`5W sets measures by channel role. Awareness work might use qualified reach, message inclusion, search interest, and share of discussion. Consideration work might use engaged visits, content completion, retailer clicks, saves, product-page behavior, and qualified leads. Conversion work might use orders, revenue, acquisition cost, repeat purchase, margin, or pipeline when the data supports the calculation.`,`Reports separate recorded activity, observed correlation, tested incrementality, and proven causation. A media placement, creator post, social mention, paid click, or AI citation should not receive credit for a sale without evidence connecting the events.`]}]},{kind:`awards`},{kind:`prose`,tone:`dark`,heading:`How Is AI Changing Marketing Strategy?`,twoColumn:!0,paragraphs:[`Consumers now use AI services to compare products, summarize reviews, check claims, build shortlists, and identify purchase options. The answers might rely on media articles, brand pages, retailer listings, reviews, public records, social content, or other accessible sources. The source mix and answer vary by question, service, location, date, and account context.`,`5W audits defined buyer questions, records which brands receive accurate citations and relevant recommendations, checks the cited sources, and identifies missing or conflicting facts. The team then coordinates public relations, owned content, social media, creators, retailer information, structured data, and source updates around an approved product record. See [AI Search (GEO) services](/practice/geo-optimization.cfm).`,`5W's State of AI Search 2026 identified earned media as the strongest single signal across the categories studied. The cross-category finding does not guarantee retrieval, citation, recommendation, traffic, leads, or sales for a brand. It supports a strategy that treats credible third-party information as one part of the buyer's research path.`]},{kind:`prose`,tone:`white`,heading:`Why Work With a Communication Strategy Agency?`,paragraphs:[`A communication strategy agency should connect the commercial goal to audience evidence, positioning, proof, channel roles, approvals, execution, and measurement. CMOs should compare firms on research depth, category experience, senior involvement, integration, creator controls, reporting access, claim review, AI-search analysis, and willingness to state measurement limits.`,`5W brings earned media, digital marketing, social media, influencer programs, content, performance analysis, and AI-search work into one planning process. The SmartThings, epres, and Loacker case studies show how 5W has applied integrated strategy to connected-home technology, hair care, and packaged food. Case study results remain historical evidence, not client forecasts.`]},{kind:`ctaBand`,kicker:`Strategy engagement`,heading:`Discuss a 5W marketing strategy engagement.`,body:`Research, positioning, go-to-market, channel roles, or ongoing strategy support, scoped after the first discussion.`,primary:{label:`Discuss a Strategy Engagement`,href:`#contact`},secondary:{label:`See AI Search (GEO) programs`,href:`/practice/geo-optimization.cfm`}}],faqHeading:`Frequently Asked Questions About Marketing Strategy Services`,faqLead:`5W answers common questions from CMOs, brand leaders, communications teams, ecommerce teams, product teams, finance teams, and legal reviewers.`,faqs:[{q:`What should a marketing strategy service include?`,a:[`A marketing strategy service should define the commercial problem, audience, selection criteria, positioning, proof, message hierarchy, channel roles, budget rules, owners, timeline, risks, and measures. The scope should also state which decisions remain with product, finance, legal, regulatory, sales, and retail teams.`]},{q:`What is the difference between marketing strategy and a campaign plan?`,a:[`Marketing strategy sets the audience, problem, position, proof, channel roles, and decision rules. A campaign plan applies those choices to a defined launch, season, issue, or business period through dates, assets, owners, placements, spend, and measures.`]}
33,{q:`How do 5W's PR strategy services support CPG launches?`,a:[`5W's PR strategy services develop the launch narrative, evidence, spokesperson plan, media targets, briefing materials, timing, outreach, issues plan, and owned support. Editors decide whether and how to cover the product, so outreach does not guarantee coverage or sales.`]},{q:`Do digital marketing strategy services include social media and influencers?`,a:[`5W scopes social media, creators, paid social, search, content, landing pages, email, affiliates, retailer media, and analytics according to the customer journey and available budget. Agreements separate content fees, media spend, creator compensation, usage rights, commissions, production, and technology costs.`]},{q:`How long does strategy development take?`,a:[`Timing depends on the decision, markets, research access, stakeholder count, product evidence, legal review, customer data, channel scope, and launch date. 5W sets milestones after confirming inputs and approval responsibilities.`]},{q:`How much do marketing strategy services cost?`,a:[`Cost depends on research depth, markets, audience count, workshops, channel scope, creative needs, measurement design, and ongoing execution. 5W develops a project fee, retainer, or phased scope after reviewing the brief and available inputs.`]},{q:`How should CMOs compare a communication strategy agency?`,a:[`CMOs should compare research methods, category experience, senior team access, channel integration, claim review, creator governance, reporting detail, data access, AI-search methodology, and decision rights. Buyers should also ask which results the agency will not guarantee.`]},{q:`How does 5W measure AI visibility?`,a:[`5W tests defined questions, records citations and recommendations, checks factual accuracy, reviews source patterns, and tracks changes over time. Results vary by model, prompt, location, date, and account context. Visibility data does not prove customer acquisition or revenue.`]}],faqFooter:`Still deciding which strategy scope fits the decision in front of you?`,closing:{heading:`How Do Brands Start a Strategy Engagement?`,paragraphs:[`The first discussion covers the business decision, products, audiences, markets, retailers, competitors, price, margins, inventory, claims, existing research, channel performance, creator relationships, customer data, legal limits, AI-search questions, budget, timeline, and approval owners. 5W then recommends a research, positioning, go-to-market, channel, or ongoing strategy scope.`,`Marketing plans lose value when product, public relations, digital marketing, social media, creators, retailers, and sales teams use different audience definitions, claims, and measures. 5W turns shared research and approved proof into one operating strategy with clear owners and decision rules.`,Fe,`Work with 5WPR to build a marketing strategy grounded in audience evidence, supported claims, coordinated channels, and accountable measurement.`],primary:{label:`Start a Marketing Strategy Project`,href:`#contact`}}},Ns=`/contactus/?reason=new-business&source=influencer-marketing-page`,Ps={slug:`influencer-marketing-agency.cfm`,path:`/services/influencer-marketing-agency.cfm`,title:`Influencer Marketing Agency & Services | 5WPR`,description:`5WPR is an influencer marketing agency helping brands find creators, manage campaigns, protect brand reputation, measure results, and influence consumer selection.`,h1:`Full-Service Influencer Marketing Agency Driving Measurable Growth`,kicker:`Influencer marketing services`,breadcrumb:`Influencer Marketing`,heroLead:[`[5WPR](/) is an **influencer marketing agency** that helps brands turn creator partnerships into coordinated marketing programs. Our team manages creator strategy, discovery, vetting, outreach, campaign execution, content rights, disclosure workflows, and measurement.`,`Our clients get a dedicated team connecting influencer marketing with PR, social media, paid amplification, affiliate programs, and consumer selection. Campaigns span Instagram, TikTok, YouTube, and other platforms chosen based on audie
33nce behavior and business goals.`],heroCtas:[{label:`Talk to 5W's Influencer Marketing team`,href:Ns}],trustFacts:Pe,sticky:{message:`Creator strategy, vetting, contracts, content rights, and measurement.`,cta:`Get In Touch Now`},blocks:[{kind:`prose`,tone:`white`,heading:`What Does an Influencer Marketing Agency Do?`,paragraphs:[`An **influencer marketing agency** manages the work required to turn creator partnerships into a structured brand program.`,`5W helps brands identify the audiences they need to reach, determine which types of creators fit the campaign, recruit partners, coordinate content, manage agreements and usage rights, review campaign requirements, and measure results.`,`Marketing leaders use our firm as a central operating partner instead of coordinating separate creator, PR, social, and paid-media teams.`]},{kind:`cards`,tone:`white`,heading:`What Influencer Marketing Services Does 5W Provide?`,lead:`5W's **influencer marketing services** cover the full campaign process from planning through reporting.`,images:!0,cardCta:`Discuss this service`,cards:[{title:`Influencer Strategy and Program Design`,paragraphs:[`5W defines campaign goals, target audiences, creator roles, platforms, content requirements, timelines, and measurement plans.`]},{title:`Creator Discovery and Outreach`,paragraphs:[`The team identifies creators based on audience fit, content history, category relevance, platform presence, and campaign requirements.`]},{title:`Creator Vetting`,paragraphs:[`The standard review considers audience quality, engagement patterns, previous brand relationships, content history, category conflicts, and alignment with brand requirements.`]},{title:`Campaign Management`,paragraphs:[`5W coordinates creator communication, deadlines, deliverables, approvals, publishing schedules, and campaign documentation.`]},{title:`Contracts and Content Rights`,paragraphs:[`The team coordinates agreements covering deliverables, usage rights, exclusivity terms, approval requirements, and other campaign obligations.`]},{title:`Creator Content Licensing`,paragraphs:[`Brands secure appropriate rights to use creator content across paid social, brand channels, retail marketing, email, PR, and other approved placements.`]},{title:`Brand Ambassador Programs`,paragraphs:[`5W manages longer-term creator relationships designed to build repeated brand exposure rather than relying on isolated posts.`]},{title:`Campaign Reporting`,paragraphs:[`Measurement includes reach, impressions, engagement, video views, clicks, traffic, content usage, conversion data, retailer activity, and sales data when the measurement design supports attribution.`]}]},{kind:`prose`,tone:`dark`,heading:`Why Influencer Marketing Matters to Consumer Selection`,lead:`Influencer marketing now plays a role across product discovery, consideration, and selection.`,twoColumn:!0,paragraphs:[`The [Interactive Advertising Bureau projects that spending on creator advertising in the U.S. will reach $44 billion in 2026, up from $37 billion in 2025](https://www.iab.com/insights/2025-creator-economy-ad-spend-strategy-report/). IAB also reports that creator campaigns serve goals ranging from awareness and reach to sales.`,`[CreatorIQ's 2025–2026 research found that 71% of surveyed organizations increased their investment in creator marketing each year](https://www.creatoriq.com/white-papers/state-of-creator-marketing-trends-2026). The study included more than 1,700 brands, agencies, and creators across multiple industries and regions.`,`Creator content also extends beyond creators' own accounts. [CreatorIQ reported in June 2026 that creator content accounted for an average of 44% of paid-media creative assets](https://finance.yahoo.com/markets/stocks/articles/creator-content-now-powers-44-130000660.html) among the 100 paid-media marketers and executives surveyed, and 92% reported using creator content in paid media.`,`Consumer behavior provides another reason for the investment. [Sprout Social found that 49% of consumers reported making an influencer-inspired selection at least once a month, while 86% reported making](https://sproutsocial.com/insights/influencer-marketing-statistics/) at least one influencer-inspired selection during the year.`,`The numbers matter because influencer marketing no longer ends with reach. Creator content moves from a social post into paid advertising, retail marketing, brand content, affiliate programs, and other channels that contribute to selection.`]},{kind:`prose`,tone:`white`,heading:`How Does 5W Vet Influencers for Brand Fit and Brand Safety?`,paragraphs:[`5W's standard creator vetting process reviews the information most relevant to the campaign rather than relying on follower count alone.`,`The review considers audience quality, engagement patterns, content history, previous brand partnerships, potential category conflicts, and alignment with campaign requirements. Data tools organize audience and engagement signals, while a strategist evaluates each creator against the campaign brief.`,`The process helps brands identify potential issues before outreach, contracting, or content production begins.`]},{kind:`prose`,tone:`lavender`,heading:`How Does 5W Handle FTC Disclosure Requirements?`,paragraphs:[`5W incorporates [FTC disclosure expectations](https://www.ftc.gov/business-guidance/resources/ftcs-endorsement-guides-what-people-are-asking) into campaign guidance, creator agreements, and content-review w
33orkflows when sponsored content requires disclosure.`,`The FTC states that creators must disclose a material connection to a brand when a relationship could affect how consumers evaluate an endorsement. Material connections include payment, free products, discounts, employment relationships, and certain personal relationships.`,`FTC guidance also states that disclosures should appear with the endorsement, use language consumers understand, and appear where consumers are unlikely to miss them. A platform's built-in disclosure feature does not automatically satisfy every disclosure requirement.`,`5W uses campaign review workflows to check required disclosure language before publication when 5W has approval rights under the campaign agreement. Brand and creator obligations remain governed by applicable law, platform requirements, and each agreement.`]},{kind:`prose`,tone:`white`,heading:`How Does Influencer Marketing Connect With PR?`,paragraphs:[`Brands searching for an **influencer PR agency** often need creator marketing and public relations to work together without treating the two disciplines as the same service.`,`Influencer marketing manages relationships with creators who produce or distribute brand-related content to their audiences. PR focuses on communications activities, including earned media, brand reputation, product launches, events, executive visibility, and other forms of public communication.`,`5W connects the programs when a campaign calls for both disciplines. A product launch, for example, may combine creator content with media outreach, events, social amplification, and paid support under one communications plan.`,`The structure gives brands an **influencer marketing company** that connects creator work to a communications strategy without reducing influencer marketing to media relations.`]},{kind:`awards`},{kind:`prose`,tone:`dark`,heading:`What Should Brands Compare Across Influencer Marketing Companies?`,twoColumn:!0,paragraphs:[`Brands comparing **influencer marketing companies** should look beyond the size of a creator database.`,`The evaluation should cover creator selection, vetting standards, campaign operations, content rights, disclosure processes, measurement, paid amplification, and the ability to connect creator content with other marketing channels.`,`Campaign reporting deserves equal attention. Follower counts and impressions explain audience size, but they do not explain what happened after consumers encountered the content.`,`5W builds measurement around the campaign objective. A discovery campaign may focus on qualified reach and video consumption, while a campaign closer to selection may track clicks, retailer traffic, conversion data, promotional codes, or attributable sales when tracking is available.`]},{kind:`prose`,tone:`white`,heading:`How Do Affiliate Marketing and Influencer Marketing Work Together?`,paragraphs:[`Affiliate marketing and influencer marketing overlap when creator activity includes trackable links, codes, or other mechanisms that connect content with consumer action.`,`A creator introduces a product, demonstrates its use, explains why the product fits a particular need, and directs consumers to a retailer or brand website. Affiliate tracking connects some of the resulting traffic or conversions with the creator's activity.`,`The two services do not need to operate as one program. Brands can use influencer marketing for creator relationships and content while adding affiliate tracking where the campaign structure supports attribution. [Explore 5W's Affiliate Marketing practice](/services/affiliate-marketing-agency.cfm).`]},{kind:`split`,tone:`lavender`,heading:`Which Industries Does 5W Support With Influencer Marketing?`,lead:`5W applies influencer marketing across several industry groups where creator content plays a role in discovery, education, consideration, or selection.`,listLabel:`Industry groups`,items:[`**Consumer and lifestyle brands** include beauty and grooming, fashion, consumer packaged goods, food and beverage, home and housewares, parenting and baby, travel and hospital
33ity, and automotive brands.`,`**Technology and digital businesses** include SaaS companies, apps, marketplaces, gaming brands, and consumer technology companies.`,`**Health and financial categories** include health and wellness, supplements, fintech, and financial services, with campaign requirements shaped around the rules and claims that apply to each category.`]},{kind:`ctaBand`,kicker:`Influencer programs`,heading:`Talk to 5WPR about your influencer marketing program.`,body:`Creator strategy, vetting, contracts, content rights, disclosure workflows, and measurement built around the campaign objective.`,primary:{label:`Talk to the Influencer Marketing team`,href:Ns},secondary:{label:`Explore Affiliate Marketing`,href:`/services/affiliate-marketing-agency.cfm`}}],faqHeading:`Influencer Marketing FAQ`,faqs:[{q:`What does an influencer marketing agency do?`,a:[`An influencer marketing agency plans and manages brand relationships with creators. Services commonly include strategy, creator discovery, vetting, outreach, contracting, campaign management, content rights, disclosure workflows, and performance reporting.`]},{q:`How does 5W choose influencers for a campaign?`,a:[`5W evaluates creators against the campaign audience, content requirements, brand fit, engagement patterns, content history, previous partnerships, and potential category conflicts. Creator selection begins with the campaign goal rather than follower count.`]},{q:`What is the difference between an influencer marketing agency and an influencer PR agency?`,a:[`An influencer marketing agency focuses on creator partnerships and creator-led campaigns. An influencer PR agency may connect creator programs with earned media, events, launches, and broader communications, which is how 5W approaches campaigns that require both disciplines.`]},{q:`How should a brand measure influencer marketing?`,a:[`The measurement plan should match the campaign objective. Brands can track reach, video views, engagement, clicks, site traffic, retailer activity, conversion data, content usage, and attributable sales when the campaign includes the required tracking.`]},{q:`Does 5W combine influencer marketing with affiliate marketing?`,a:[`5W connects the two services when a creator program uses tracked links, promotional codes, or other attribution methods. Affiliate tracking measures selected actions while the influencer program manages creator relationships, content, and campaign execution.`]},{q:`Can brands reuse influencer content?`,a:[`Brands reuse creator content when the creator agreement provides the required usage rights. Campaign agreements should define where the content appears, how long the brand can use it, and whether the rights cover paid advertising, retail channels, brand websites, email, or other placements.`]},{q:`Why hire an influencer marketing agency instead of managing creators internally?`,a:[`An agency can centralize creator discovery, outreach, contracts, content coordination, disclosure workflows, rights management, and measurement. The structure becomes more valuable as the number of creators, platforms, deliverables, and internal stakeholders increases.`]}],faqFooter:`Have a campaign or creator question that is not covered here?`,closing:{heading:`Build Influencer Marketing Into the Larger Brand Plan`,paragraphs:[`Influencer marketing delivers more value when creator partnerships connect with the broader marketing organization.`,`5WPR helps brands build influencer programs around defined audiences, campaign goals, creator fit, content requirements, measurement, and consumer selection. The team connects creator activity with PR, paid media, social strategy, affiliate programs, and other communications priorities when the campaign calls for those services.`,`Brands do not need another disconnected marketing channel. They need an agency partner that makes creator marketing work with the broader brand plan.`,`**About 5WPR:** 5WPR is a U.S. communications agency with approximately 250 professionals serving more than 250 clients across consumer, corporate, healthcare, technology, crisis communications, and public affairs. The agency brings influencer marketing together with PR and other communications disciplines when client programs require an integrated approach.`],primary:{label:`Talk to 5WPR about your program`,href:Ns}}},Fs={slug:`reputationmanagementprfirm.cfm`,path:`/services/reputationmanagementprfirm.cfm`,title:`Online Reputation Management Agency | 5WPR`,description:`5WPR provides online reputation management services for companies and executives across Google, AI answers, media, reviews, and social platforms.`,h1:`Online Reputation Management Agency for Companies and Executives`,kicker:`Online reputation management`,breadcrumb:`Reputation Management`,heroLead:[`Today, reputation problems aren't isolated to a news cycle. Negative news ranks in Google, lingers in AI-generated answers, goes viral on social media, influences reviews, and follows a company or executive for years.`,`5WPR is an [online reputation management agency](/practice/online-reputation-management.cfm) that helps companies and senior executives improve the information people find when they search a brand, organization, product, or name. Our online reputation management services combine search strategy, digital PR, content, review management, executive communications, crisis support, and AI reputation management under one program.`,`Generative AI brings a new concern to reputation management. [Google reported in 2025 that AI Overviews were used by more than one billion people](https://blog.google/products-and-platforms/products/search/generative-ai-google-search-may-2024/), while the [Pew Research Center found that 44% of U.S. adults reported using ChatGPT in 2026](https://www.pewresearch.org/internet/2026/06/17/americans-and-ai-2026-chatbots-smart-devices-and-views-on-impact/). Today's reputation management programs must account for both ranked search results and AI-generated answers.`],heroCtas:[{label:`Request a confidential reputation review`,href:`#contact`}],heroNote:`Every conversation is confidential. Client names are never disclosed without written approval.`,trustFacts:Pe,sticky:{message:`Confidential reputation audits for companies and executives.`,cta:`Get In Touch Now`}
33,blocks:[{kind:`cards`,tone:`white`,heading:`What an Online Reputation Management Agency Does`,lead:`An online reputation management firm helps change the mix, prominence, accuracy, and context of information people find about a company or executive. 5WPR organizes reputation work around three needs.`,columns:3,cardCta:`Discuss this need`,cards:[{title:`Reputation Building`,paragraphs:[`Strengthen the information available before a reputation issue develops through executive profiles, earned media, owned content, review programs, search optimization, and source development.`]},{title:`Reputation Defense`,paragraphs:[`Respond to an active issue involving negative coverage, social media criticism, executive controversy, litigation, misinformation, review attacks, or another event affecting public perception.`]},{title:`Reputation Repair`,paragraphs:[`Rebuild the information environment after negative material gains search visibility, media attention, review volume, or inclusion in generated answers.`]}],cta:{text:`Each engagement starts with publicly available information and the corresponding searches that matter to the business.`,label:`Start with an audit`,href:`#contact`}},{kind:`prose`,tone:`dark`,heading:`Online Reputation Management Now Includes Google and AI Answers`,twoColumn:!0,paragraphs:[`Traditional online reputation management focused heavily on branded Google results. Search remains part of the work, but the information environment has expanded.`,`Google AI Overviews, ChatGPT, Gemini, Perplexity, Claude, review sites, social platforms, news coverage, Wikipedia, and other reference sources affect what a customer, investor, reporter, employee, partner, or recruit encounters during research.`,`Pew Research Center found that people clicked a traditional Google result in 8% of visits when an AI summary appeared, compared with 15% of visits without one. The same study found that only 1% of visits to pages with an AI summary resulted in a click on a cited source. As a result, AI-generated answers can shape the reputation experience before a person visits a company website.`,`5WPR treats AI reputation management as part of a broad reputation program rather than a replacement for SEO, PR, or communications.`]},{kind:`cards`,tone:`white`,heading:`Online Reputation Management Services From 5WPR`,lead:`5WPR's online reputation services connect search, PR, content, reviews, executive communications, and AI reputation management around the searches and reputation risks.`,images:!0,cardCta:`Discuss this service`,cards:[{title:`Reputation Audit and Strategy`,paragraphs:[`Every program begins with an audit of the information surrounding the company or executive. The review includes branded Google results, news coverage, generated answers, social conversations, review platforms, executive profiles, Wikipedia entries, and other sources connected with priority searches.`,`The audit identifies results that need protection, correction, additional context, or stronger competing information. The findings then shape the work plan and measurement framework.`]},{title:`Search Engine Optimization for Reputation Management`,paragraphs:[`Search engine optimization (SEO) remains a core part of online reputation management services because negative pages can remain in search ranks for years.`,`5WPR develops and optimizes credible content that competes for branded searches. This work includes corporate pages, executive biographies, thought leadership, earned media, social profiles, interviews, partner content, and other relevant properties.`,`Technical SEO, internal linking, page structure, content quality, and authority development support the broader search strategy. Google states that established SEO practices also apply to AI Overviews and AI Mode, including crawlability, useful content, page experience, and accurate structured data.`]},{title:`AI Reputation Management`,paragraphs:[`AI reputation management focuses on the information generated 
33when people ask ChatGPT, Gemini, Perplexity, Claude, or Google questions about a company, executive, product, controversy, or history. 5WPR calls the discipline **Generative Reputation Management**.`,`The work begins by testing the questions stakeholders are likely to ask. The team then identifies inaccurate information, outdated context, weak source coverage, missing company information, and third-party sources connected with the answer environment.`,`Interventions include correcting owned content, improving structured company information, developing credible source material, earning relevant media coverage, addressing reference-source problems, and strengthening the information available around the company or executive. The goal is not to control a model response. The goal is to improve the quality, consistency, and credibility of the information models retrieve or reference.`]},{title:`Negative Content Suppression`,paragraphs:[`Negative content suppression aims to reduce the prominence of damaging search results by building credible information that ranks above or around them.`,`5WPR uses content development, [digital PR](/practice/digital-pr.cfm), executive thought leadership, profile development, partner content, technical SEO, and link acquisition as part of the program.`,`Removal isn't an available option in every case. Suppression focuses on changing the balance of information available for priority branded searches.`]},{title:`Review Platform Management`,paragraphs:[`Reviews impact reputation, search visibility, and consumer selection.`,`5WPR helps brands monitor review patterns, respond under approved brand guidelines, identify policy violations, encourage legitimate customer feedback, and document coordinated manipulation when evidence supports the claim.`,`The work follows platform rules and federal requirements. The Federal Trade Commission prohibits fake reviews and certain forms of review manipulation, while Google restricts Business Profiles tied to fake engagement.`]},{title:`Wikipedia and Reference-Source Management`,paragraphs:[`Wikipedia often appears prominently for company and executive searches, increasing the consequences of inaccurate or outdated information.`,`5WPR approaches Wikipedia through compliant monitoring, research, source development, correction requests, and engagement with independent editors when platform rules support engagement. Wikimedia requires disclosure for paid contributions and requires article content to follow rules governing reliable sourcing and promotional material.`,`The same reputation review includes Wikidata, business profiles, executive databases, and other reference sources when the sources affect priority searches.`]},{title:`Crisis Communications and Reputation Management`,paragraphs:[`Crisis communications and online reputation management solve different parts of the same business problem.`,`[Crisis communications](/practice/crisisprfirm.cfm) manages the immediate event, stakeholder response, media engagement, executive messaging, and communications decisions. Online reputation management addresses the information people continue finding after the first news cycle ends.`,`5WPR connects both disciplines during an active issue so the immediate response and longer-term information strategy support the same business goals.`]},{title:`Executive Reputation Management`,paragraphs:[`Senior executives often have search and media profiles that operate separately from the company brand.`,`5WPR develops executive reputation programs around name searches, biographies, media coverage, thought leadership, social profiles, Wikipedia, generated answers, and other sources that shape professional perception.`,`Executive programs support leadership transitions, fundraising, recruiting, transactions, public-company communications, crisis recovery, and long-term reputation building.`]},{title:`Reputation Monitoring and Reporting`,paragraphs:[`Reputation work requires continued measurement because search results, media coverage, reviews, and generated answers change.`,`5WPR tracks priority searches and reputation indicators over time. Reporting includes changes in search-result composition, negative-result visibility, review trends, media coverage, generated-answer accuracy, source citations, and progress against engagement goals.`]}]},{kind:`awards`},{kind:`caseStudies`,tone:`lavender`,heading:`Online Reputation Management Case Studies`,lead:`5WPR has supported companies and executives facing reputation problems involving negative news, executive controversies, coordinated attacks, review manipulation, and legacy search results. Client names remain confidential in the examples below.`,items:[{title:`Beverage Brand: CEO Misconduct Coverage`,concern:`A beverage company faced sustained search visibility around misconduct allegations involving a former CEO.`,response:`5WPR developed new company and leadership content, strengthened relevant digital properties, supported corporate storytelling, and optimized search for priority branded queries. The program reduced the prominence of legacy CEO coverage while increasing visibility for information about current leadership, products, and company activity.`},{title:`Fitness Executive: Coordinated Reputation Attack`,concern:`A fitness entrepreneur faced fake social groups, fraudulent complaints, negative marketplace reviews, Wikipedia problems, and other coordinated activity.`,response:`5WPR developed thought leadership, strengthened social profiles, supported compliant customer-review programs, addressed inaccurate reference information, and pursued credible third-party coverage. The campaign increased the amount of legitimate brand and executive information available across priority searches.`},{title:`Advertising Executive: Career Transition`,concern:`An advertising executive entering a new venture faced search results dominated by negative coverage tied to a previous leadership role.`,response:`5WPR developed executive thought leadership, expanded relevant profiles, supported earned visibility, and applied SEO around the executive name, new company, and related searches. The campaign shifted the search mix toward information tied to the executive's current work and new venture.`}],cta:{text:`Facing a similar situation? The first conversation is confidential.`,label:`Request a reputation review`,href:`#contact`}}],faqHeading:`Frequently Asked Questions About Online Reputation Management`,faqs:[{q:`What does an online reputation management agency do?`,a:[`An online reputation management agency helps companies and executives improve the information people find across search engines, generated answers, media coverage, reviews, social platforms, and reference sources. The work includes monitoring, SEO, digital PR, content, review management, correction efforts, executive communications, and crisis support.`]},{q:`How long does online reputation management take?`,a:[`Timing depends on the problem, the strength of existing negative content, the authority of competing pages, the number of searches involved, and whether the issue continues generating coverage. Some changes happen within weeks, while entrenched search results or long-running reputation problems require months of sustained work.`]},{q:`How much do online reputation management services cost?`,a:[`The scope of an online reputation management service determines pricing. A limited executive search issue requires a different program than a corporate crisis involving national news, review attacks, litigation, and generated answers across several platforms.`]},{q:`Can negative content be removed from Google?`,a:[`Some content can be removed when a publisher deletes the page, a platform finds a policy violation, a legal process supports removal, or Google accepts an eligible removal request. Many legitimate news articles and third-party pages cannot be removed on demand, so reputation programs often focus on reducing prominence through stronger competing information.`]},{q:`How do you fix incorrect information about a brand in ChatGPT or other AI tools?`,a:[`The process starts by identifying the incorrect claim and the sources connected with the answer. Reputation work then addresses inaccurate owned information, outdated third-party material, missing context, weak source coverage, structured company data, reference sources, and earned media that supports the correct facts.`]},{q:`What is the difference between reputation management and crisis communications?`,a:[`Crisis communications manages an immediate event and the response to stakeholders, reporters, employees, customers, investors, and other audiences. Online reputation management manages the information people find during and after the event across search, media, reviews, social platforms, and generated answers.`]},{q:`Does online reputation management follow ethical standards?`,a:[`Ethical reputation management relies on accurate content, legitimate media relations, compliant review practices, transparent correction requests, and platform-approved processes. Ethical work does not require fake reviews, fabricated identities, deceptive Wikipedia editing, or false claims.`]},{q:`Can an online reputation management firm remove unfavorable news articles?`,a:[`A firm cannot force a legitimate publisher to remove accurate reporting. The available options depend on factual errors, legal issues, publisher policies, search-engine rules, and the broader information environment.`,`Reputation work often focuses on correcting errors where evidence exists and building credible information that gives stakeholders a more complete picture.`]}],faqFooter:`Dealing with a situation you would rather not describe in a form?`,closing:{heading:`Manage Your Reputation With 5W`,paragraphs:[`Online reputation management extends across Google results, AI-generated answers, news coverage, reviews, social media, and reference sources. Companies need one strategy connecting the information they publish, the coverage they earn, the platforms they monitor, and the questions stakeholders ask.`,`[5WPR](/) brings reputation management, digital PR, SEO, crisis communications, content, and AI reputation management into one coordinated program. Work with 5WPR to identify the searches and reputation risks that matter to your business, build the information needed to address them, and measure how your company or executive is represented over time.`],badges:[`Confidential by default`,`Senior-led teams`,`Search, media, reviews, and AI answers`],primary:{label:`Request a confidential review`,href:`#contact`}}},Is={slug:`growth-marketing.cfm`,path:`/services/growth-marketing.cfm`,title:`Growth Marketing Agency for Digital and AI Search | 5WPR`,description:`5WPR connects paid media, SEO, GEO, content, social, email, affiliate, testing, and retention through one growth marketing program.`,h1:`Growth Marketing Built for Every Discovery Channel`,kicker:`Growth marketing services`,breadcrumb:`Growth Marketing`,heroLead:[`Growth now begins across search engines, social platforms, retail sites, email, media coverage, and AI answers. 5WPR operates as a growth marketing agency that connects those channels around acquisition, conversion, retention, and measurable business results.`,`Our programs can combine paid search, paid social, organic search, generative engine optimization, email, affiliate marketing, content, connected television, and retail media. Channel selection follows the audience, business model, current performance, and goals of the engagement.`],heroCtas:[{label:`Start a growth marketing conversation`,href:`#contact`}],trustFacts:Pe,sticky:{message:`Audience, channel mix, performance gaps, and growth goals.`,cta:`Get In Touch Now`},blocks:[{kind:`prose`,tone:`white`,heading:`What a Growth Marketing Agency Does`,paragraphs:[`A growth marketing agency tests and improves the full customer journey rather than optimizing one channel in isolation. The work starts with how people discover a brand and continues through comparison, conversion, repeat selection, and retention.`,`5WPR connects creative, media, content, search, analytics, and communications so each channel can inform the next decision. Teams can use campaign data to adjust messages, landing pages, audiences, budgets, and follow-up paths throughout the program.`],cta:{label:`Explore Our Services`,href:`/services/`}}
33,{kind:`cards`,tone:`white`,heading:`Growth Marketing Services`,images:!0,cardCta:`Discuss this service`,cards:[{title:`Paid Search and Paid Social`,paragraphs:[`Paid media captures existing demand and introduces the brand to selected audiences. 5WPR can coordinate keywords, audience signals, creative, bids, landing pages, and measurement across the campaign.`]},{title:`Search Engine Optimization`,paragraphs:[`SEO strengthens the pages and information people find through traditional search. Technical health, content structure, internal links, authority, and intent alignment support long-term discovery.`]},{title:`Generative Engine Optimization`,paragraphs:[`GEO helps brands become easier for AI systems to understand, retrieve, and cite. The work examines the questions buyers ask, the sources AI systems rely on, and the information gaps that affect recommendation.`]},{title:`Content and Creative Testing`,paragraphs:[`Content gives campaigns the messages, proof, and answers required at each stage of selection. Creative testing compares formats and angles using performance data rather than personal preference.`]},{title:`Email and Lifecycle Marketing`,paragraphs:[`Email supports lead follow-up, onboarding, repeat activity, retention, and reactivation. Programs can respond to customer behavior and the stage of the relationship.`]},{title:`Affiliate and Partner Growth`,paragraphs:[`[Affiliate programs](/services/affiliate-marketing-agency.cfm) extend reach through publishers, creators, and partners. Strategy may include partner selection, offer structure, content support, tracking, and program management.`]},{title:`Conversion Rate Optimization`,paragraphs:[`Conversion testing examines landing pages, forms, messages, calls to action, and checkout steps. The goal is to turn more of the existing audience into leads or customers.`]},{title:`Measurement and Reporting`,paragraphs:[`Growth reporting should connect channel activity to the outcome the business values. Relevant measures may include acquisition cost, conversion rate, attributed revenue, retention, lifetime value, pipeline, or category visibility.`]}]},{kind:`prose`,tone:`dark`,heading:`How AI Changes Growth Marketing`,twoColumn:!0,paragraphs:[`AI now influences how people research choices and how advertising platforms decide who receives an ad. Marketing teams need accurate source information, usable first-party data, enough creative variation, and measurement that connects automated delivery with business outcomes.`,`An [AI-powered growth marketing agency](/practice/geo-optimization.cfm) should use AI to support analysis, testing, research, and efficiency while keeping people responsible for strategy, evidence, brand standards, and budget decisions.`,`5WPR also connects traditional search with AI visibility. That approach helps brands compete for website traffic while building the sources and information that influence answers inside ChatGPT, Perplexity, Gemini, Claude, and Google AI experiences.`]},{kind:`prose`,tone:`white`,heading:`One Digital Growth Marketing Agency Across the Funnel`,paragraphs:[`Separate vendors often report success according to separate channel metrics. Search teams report rankings, media teams report impressions, and paid teams report clicks. Business leaders still need to know whether the combined work creates demand, improves conversion, or supports retention.`,`5WPR brings [performance marketing](/practice/digital-marketing-agency/performance-marketing-agency.cfm), [social media marketing](/practice/digital-marketing-agency/social-media-marketing-agency.cfm), [content marketing](/practice/digital-marketing-agency/content-marketing-agency.cfm), public relations, and AI visibility into a coordinated plan. Shared goals and reporting make it easier to decide what should scale, change, or stop.`]},{kind:`awards`},{kind:`caseStudies`,tone:`lavender`,heading:`Verified Growth Marketing Results`,items:[{title:`CaratLane: Paid Social Performance`,paragraphs:[`A paid social program for [CaratLane](/practice/CaratLane.cfm) produced a 250% increase in conversion rate, a 10% reduction in paid social spending, a 94% increase in attributed purchases, and a 72% increase in attributed revenue.`]},{title:`Samsung SmartThings: Integrated Paid, Earned, and Social`,paragraphs:[`An integrated paid, earned, and social campaign for [Samsung SmartThings](/practice/SmartThings.cfm) generated 4 million paid media impressions and more than 8 billion earned media impressions in six months. The program also produced nearly 40,000 social engagements and 17.28% Instagram audience growth.`]}],cta:{text:`These programs show how testing, creative, paid distribution, and communications can work toward defined growth outcomes.`,label:`Discuss your growth goals`,href:`#contact`}}],faqHeading:`Frequently Asked Questions`,faqs:[{q:`What does a growth marketing agency do?`,a:[`A growth marketing agency tests and improves acquisition, conversion, retention, and revenue across the customer journey.`]},{q:`How is growth marketing different from digital marketing?`,a:[`Digital marketing describes the channels used to reach an audie
33nce. Growth marketing connects those channels through testing and measurement across the full journey.`]},{q:`What is an AI growth marketing agency?`,a:[`An AI growth marketing agency uses AI-assisted research, analysis, testing, and automation while maintaining human control over strategy, evidence, creative standards, and spending.`]},{q:`Which channels can a growth program include?`,a:[`A program may include paid search, paid social, SEO, GEO, content, email, affiliate marketing, retail media, connected television, and conversion testing.`]},{q:`How does 5WPR measure growth?`,a:[`Measurement follows the business goal. Teams may track acquisition cost, conversion rate, attributed revenue, retention, lifetime value, pipeline, audience growth, or AI visibility.`]},{q:`Can growth marketing work with public relations?`,a:[`Yes. Earned coverage can build awareness and trust, while paid, search, social, and email programs extend that attention and guide audiences toward action.`]}],faqFooter:`Want to talk through your current channel mix?`,closing:{heading:`Connect Every Channel Around the Outcomes You Need`,paragraphs:[`Growth depends on how well channels work together. 5WPR connects communications, creative, paid media, search, AI visibility, content, and retention around the outcomes a brand needs to improve.`,`Start a growth marketing conversation with 5WPR to discu
33ss your audience, channel mix, performance gaps, and goals.`],primary:{label:`Start a growth marketing conversation`,href:`#contact`}}},Ls={slug:`marketing-technology.cfm`,path:`/services/marketing-technology.cfm`,title:`Marketing Technology Agency and Martech Services | 5WPR`,description:`5WPR provides marketing technology services for websites, ecommerce, landing pages, integrations, tracking, testing, and campaign performance.`,h1:`Marketing Technology Services Built for Growth`,kicker:`Marketing technology services`,breadcrumb:`Marketing Technology`,heroLead:[`Marketing technology should help teams publish, measure, and improve campaigns without creating more disconnected systems. 5WPR provides marketing technology services that connect websites, landing pages, ecommerce, analytics, testing, and campaign tools with the work marketing teams need to complete.`,`Our team helps brands plan and build the digital infrastructure behind public relations, content, paid media, social campaigns, and product launches. Each project starts with the audience, business goal, current systems, and the actions people need to take.`],heroCtas:[{label:`Start a project with 5WPR`,href:`#contact`}],trustFacts:Pe,sticky:{message:`Project inquiry or a 30-minute discovery call.`,cta:`Get In Touch Now`},blocks:[{kind:`prose`,tone:`white`,heading:`What a Marketing Technology Agency Does`,paragraphs:[`A marketing technology agency plans and supports the systems used to attract audiences, deliver content, capture demand, and measure results. The work may include website architecture, ecommerce development, landing pages, analytics, platform integrations, quality assurance, and conversion testing.`,`5WPR connects that technical work with campaign strategy. Marketing leaders can align the message, platform, user journey, tracking plan, and reporting structure before launch instead of repairing those connections after traffic arrives.`]},{kind:`cards`,tone:`white`,heading:`Marketing Technology Services`,lead:`The scope can support one platform project or a larger communications and digital marketing program.`,images:!0,cardCta:`Discuss this service`,cards:[{title:`Technical Architecture and Wireframing`,paragraphs:[`5WPR maps user flows, system interactions, content needs, and technical requirements before development begins. This planning gives stakeholders a shared view of the product and reduces avoidable changes during production.`]},{title:`Website and Ecommerce Development`,paragraphs:[`Development support includes WordPress, Webflow, and Shopify experiences built around content management, performance, security, and the needs of the team that will maintain the platform.`]},{title:`Landing Page Development`,paragraphs:[`Landing pages connect a campaign message with one defined action. 5WPR can align page structure, copy, design, forms, tracking, and testing with the traffic source and conversion goal.`]},{title:`Product Development Support`,paragraphs:[`Digital products require decisions about users, features, workflows, content, and launch priorities. 5WPR helps move projects from planning through development, testing, and market introduction.`]},{title:`Analytics and Measurement`,paragraphs:[`Tracking should answer the questions attached to the campaign. 5WPR can connect measurement requirements with page actions, media channels, forms, ecommerce activity, and reporting needs.`]},{title:`Platform and Data Integrations`,paragraphs:[`Marketing systems often need to exchange information across websites, customer databases, email platforms, advertising tools, and reporting environments. Integration planning focuses on the data each team needs and the actions that follow.`]},{title:`Quality Assurance and Testing`,paragraphs:[`Testing reviews how a platform works across devices, browsers, forms, journeys, and campaign scenarios. The process identifies errors before launch and supports updates as requirements change.`]},{title:`Conversion Rate Optimization`,paragraphs:[`Conversion testing compares page messages, layouts, forms, and calls to action to learn which version produces more leads, sales, or another defined outcome.`]}]},{kind:`prose`,tone:`dark`,heading:`A Martech Agency Connected to Communications`,twoColumn:!0,paragraphs:[`Technology performs better when it reflects the campaign around it. A product launch may need a media-ready website, an advertising landing page, an email path, analytics events, and content that answers buyer questions. Treating each item as a separate assignment can create gaps in message and measurement.`,`5WPR connects technology with [digital marketing](/practice/digital-marketing-agency.cfm), [performance marketing](/practice/digital-marketing-agency/performance-marketing-agency.cfm), content, social media, and public relations. That connection helps technical decisions supp
33ort the full campaign.`]},{kind:`prose`,tone:`white`,heading:`Marketing Technology Work Requires More Than Tools`,paragraphs:[`A new platform does not solve a marketing problem by itself. Teams need clear ownership, usable data, agreed conversion actions, and a process for improving performance after launch. 5WPR defines the role of the technology before recommending the build.`,`That approach can help a brand replace an outdated website, prepare ecommerce for a campaign, repair a broken user journey, connect reporting, or support growth across several channels.`]},{kind:`awards`},{kind:`caseStudies`,tone:`lavender`,heading:`Experience With Marketing Technology Brands`,items:[{title:`Zeta Global: Explaining Data-Driven Capabilities`,paragraphs:[`5WPR also works with companies that build marketing technology. A long-running program for [Zeta Global](/practice/zetamarketing-casestudy.cfm) generated more than 300 media placements, more than 2 billion media impressions, and over 50 contributed articles, expert commentaries, and executive profiles.`,`The engagement focused on explaining data-driven capabilities to analysts, business decision-makers, and the media. That experience informs how 5WPR translates technical functions into messages buyers can understand.`]}],cta:{text:`Have a platform, tracking, or launch problem to solve?`,label:`Start a project with 5WPR`,href:`#contact`}}],faqHeading:`Frequently Asked Questions`,faqs:[{q:`What does a marketing technology agency do?`,a:[`A marketing technology agency plans and supports the platforms, integrations, tracking, and digital experiences used to run and measure marketing programs.`]},{q:`What are marketing technology services?`,a:[`Marketing technology services may include architecture, websites, ecommerce, landing pages, analytics, testing, platform integrations, and conversion improvement.`]},{q:`What is a martech agency?`,a:[`A martech agency helps marketing teams select, connect, build, and improve the technology behind campaigns and customer journeys.`]},{q:`Can 5WPR work with an existing technology stack?`,a:[`Yes. A project can begin with the systems already in place, the gaps affecting campaign execution, and the changes required to support the business goal.`]},{q:`How does marketing technology support PR?`,a:[`Marketing technology can provide the pages, data capture, measurement, and digital content paths that extend a media moment into audience action.`]},{q:`How is a marketing technology project measured?`,a:[`Measurement depends on the goal. Teams may track platform performance, completed actions, leads, sales, conversion rate, campaign efficiency, or another agreed result.`]}],faqFooter:`Not sure which part of the stack to fix first?`,closing:{heading:`Make Campaigns Easier to Run and Results Easier to Understand`,paragraphs:[`Marketing technology should make campaigns easier to run and results easier to understand. 5WPR connects technical planning and development with the communications, content, and media work that brings audiences to the platform.`,`Start a project with 5WPR to discu
33ss your current systems, campaign needs, and growth goals.`],primary:{label:`Start a project with 5WPR`,href:`#contact`}}},Rs={slug:`brand-strategy-services`,path:`/services/brand-strategy-services/`,title:`Brand Strategy Services | Strategic Branding Agency | 5WPR`,description:`5WPR provides brand strategy services using audience data, market insights, messaging, PR, digital campaigns, and measurement to guide brand growth.`,h1:`Brand Strategy Services That Turn Insight Into Market Advantage`,kicker:`Brand strategy services`,breadcrumb:`Brand Strategy`,heroLead:[`5WPR helps brands turn audience, market, competitive, and campaign information into a plan for how they communicate and compete.`,`Our **brand strategy services** connect strategic planning with PR and digital execution. 5W clients gain a defined framework for audience priorities, messaging, campaign decisions, channel planning, and measurement.`],heroCtas:[{label:`Work with us →`,href:`#contact`}],trustFacts:Pe,sticky:{message:`Project inquiry or a 30-minute discovery call.`,cta:`Get In Touch Now`},blocks:[{kind:`prose`,tone:`white`,heading:`Brand Strategy Starts With Evidence, Not Assumptions`,paragraphs:[`Brand strategy extends well beyond creative ideas and campaign themes. Marketing teams need to understand who they need to reach, what matters to their audience, how their competitors communicate, and which messages support their business goals. 5WPR uses research and a data-driven approach to answer those questions before campaigns begin.`,`Our strategists study audience behavior, competitive activity, market conditions, cultural conversations, campaign performance, and available brand data. From there, we identify the information that matters to the business decision at hand.`,`Data provides the evidence, and strategy turns that evidence into actionable results.`]},{kind:`cards`,tone:`white`,heading:`Brand Strategy Services Connect Audience, Message, and Market`,lead:`5WPR develops brand strategy around the decisions brands must to make before and during a campaign. Our work includes audience segmentation, journey mapping, campaign planning, data analysis, messaging, PR strategy, digital execution, and measurement. Each discipline addresses a different aspect of an overall brand strategy.`,images:!0,cardCta:`Discuss this service`,cards:[{title:`Audience Segmentation Defines Who Brands Needs to Reach`,paragraphs:[`Audience segmentation separates a broad customer base into groups based on behavior, relationship with the brand, needs, and stage in the customer journey.`,`A returning customer often needs a different message than someone encountering the brand for the first time. An engaged prospect responds to different information than someone comparing shopping.`,`5WPR uses those distinctions to help brands decide which audiences deserve attention and what information each audience needs from the brand.`]},{title:`Journey Mapping Identifies Where Messages Need to Work`,paragraphs:[`Customer journeys rarely follow a single, linear path from awareness to selection.`,`Today, consumers discover brands through news coverage, search results, social content, an influencer, a company website, paid media, or several channels during their decision making process.`,`Journey mapping helps identify the points where brand communication influences awareness, consideration, and selection. The resulting map gives campaign teams a framework for deciding when a message belongs and what role each channel needs to play.`]},{title:`Campaign Planning Turns Brand Strategy Into Action`,paragraphs:[`A winning strategy must guide execution.`,`5WPR translates audience and market insights into campaign priorities, messaging, story angles, content direction, PR opportunities, and digital programs. Campaign planning establishes what the brand needs to communicate and how each activity supports the broader business goal.`,`Our **strategic branding services** connect brand positioning with a communications program, rather than treating strategy and execution as separate assignments.`]},{title:`Messaging Gives the Brand a Consistent Story`,paragraphs:[`Different audiences may need different information, but the underlying brand position needs to stay consistent.`,`5WPR develops messaging around the proof points, audience needs, market conditions, and business priorities identified during strategic planning. The resulting message framework helps PR, digital, social, content, and leadership teams communicate from the same strategic foundation.`]},{title:`Strategic Planning Turns Data Into Marketing Decisions`,paragraphs:[`Today, brands have access to more information than most campaigns ever use.`,`5WPR connects our data analysis to specific business decisions. Audience information identifies which customer segment deserves priority. Competitive research often exposes an open position in the market. Campaign data shows which messages drive action. Cultural and media analysis identifies conversations where brands can compete.`,`Our **branding strategy services** use these strategic findings to build our clients' marketing plans. Research identifies the opportunity. Strategic planning defines the response. PR and digital campaigns put the plan into the market.`]},{title:`Measurement Keeps Brand Strategy Connected to Business Goals`,paragraphs:[`Brand strategy does not stop when a campaign launches.`,`5WPR establishes campaign metrics and KPIs based on the objectives defined during strategic planning. Performance data then helps the team evaluate audience response, message performance, media results, digital activity, and progress toward campaign goals.`,`Measurement informs the next planning cycle. Marketing teams can identify which messages gained traction, which audiences responded, which campaign activities contributed to results, and where the strategy needs adjustment. This process creates a feedback loop between research, strategy, execution, and measurement.`]}]},{kind:`awards`},{kind:`caseStudies`,tone:`lavender`,heading:`Brand Strategy in Action`,lead:`5WPR’s existing client work shows how brand strategy can shape different types of communications programs.`,items:[{title:`CheapOAir: Building a Competitive Position Around Points of Difference`,paragraphs:[`CheapOAir faced competition from a crowded field of travel companies. 5WPR centered the communications strategy on specific points of difference, including the company’s international call-center network and its model combining digital booking with live customer support.`,`The campaign also positioned CheapOAir executives as travel experts and connected media activity with channels tied to customer response. The engagement shows how a defined brand position can give PR a competitive story to carry into the market. [Read the CheapOAir case study →](/practice/casestudy-nypragency-cheapoair.cfm)`]},{title:`RxAdvance: Connecting Brand Messages With Industry Conversations`,paragraphs:[`RxAdvance needed to build its company profile among healthcare leaders, policymakers, technology audiences, and national media.`,`5WPR developed a communications strategy around the company’s business model, executive expertise, industry disruption, and major healthcare debates. Media outreach connected RxAdvance executives with conversations involving healthcare policy, te
33chnology, and industry change.`,`The campaign demonstrates how brand strategy can connect a company’s story with the audiences and issues that matter to its market. [Read the RxAdvance case study →](/practice/rxadvance.cfm)`]},{title:`CareerBuilder: Turning Company Data Into a Communications Platform`,paragraphs:[`CareerBuilder came to 5WPR to build its media presence and strengthen the brand.`,`5WPR created a four-part PR strategy built around data and trends, broadcast outreach, company news, and executive thought leadership. CareerBuilder’s research and marketplace data became a source for stories about employment, hiring, workplace trends, job searching, and economic news.`,`The strategy shows how proprietary information can become a repeatable communications platform, not a collection of disconnected campaign ideas. [Read the CareerBuilder case study →](/practice/career-builder.cfm)`]}],cta:{text:`Ready to give your next campaign a defined direction?`,label:`Work with 5WPR`,href:`#contact`}}],faqHeading:`Brand Strategy Services FAQ`,faqs:[{q:`What are brand strategy services?`,a:[`Brand strategy services define how a brand reaches priority audiences, communicates its position, plans campaigns, and measures results. 5WPR connects those decisions with PR and digital execution.`]},{q:`What does 5WPR include in its brand strategy services?`,a:[`5WPR focuses on audience segmentation, journey mapping, campaign planning, data analysis, messaging, PR strategy, digital execution, and measurement. Each service supports decisions about who the brand needs to reach, what to communicate, and how to evaluate campaign performance.`]},{q:`How does data support strategic branding services?`,a:[`5WPR uses audience, competitive, market, cultural, and campaign information to identify opportunities and guide marketing decisions. Strategic planning turns those findings into audience priorities, messages, campaign direction, and measurement plans.`]},{q:`How do brand strategy services support PR and digital campaigns?`,a:[`Brand strategy gives PR and digital teams a shared direction before campaign execution begins. The strategy connects audience needs, messaging, story angles, content direction, channel planning, and business goals.`]},{q:`How does 5WPR measure a brand strategy?`,a:[`5WPR sets campaign metrics and KPIs around the objectives established during strategic planning. Performance data helps evaluate audience response, message performance, media results, digital activity, and progress toward campaign goals.`]}],faqFooter:`Not sure where your brand strategy needs work first?`,closing:{heading:`Brand Strategy Gives Every Campaign a Direction`,paragraphs:[`Brand marketing becomes difficult when audience strategy, messaging, PR, digital marketing, and measurement operate as separate programs. 5WPR helps our clients combine brand strategy with PR and digital execution so marketing teams can move from information to decisions and from decisions to measurable programs.`,`Build a brand strategy that gives your next campaign a defined direction.`],primary:{label:`Work with 5WPR →`,href:`#contact`}}},zs={slug:`design-agency.cfm`,path:`/services/design-agency.cfm`,title:`Design Agency Services for Brands | Creative Design | 5WPR`,description:`Explore 5WPR design agency services for branding, UX and UI, photography, video, animation, packaging, content, and display advertising.`,h1:`Design Agency Services That Drive Action`,kicker:`Design agency services`,breadcrumb:`Design`,heroLead:[`Design shapes how people recognize a brand, understand its value, and respond to its message.`,`5WPR provides design agency services that connect visual work with public relations, digital marketing, social media, paid campaigns, and product launches.`,`Our teams create brand systems, digital experiences, campaign assets, photography, video, animation, product visuals, packaging, and advertising creative. Each project begins with the audience, channel, and business goal. That foundation helps every asset serve a clear purpose across the campaign.`],heroCtas:[{label:`Start a project with 5WPR`,href:`#contact`}],trustFacts:Pe,sticky:{message:`Project inquiry or a 30-minute discovery call.`,cta:`Get In Touch Now`},blocks:[{kind:`prose`,tone:`white`,heading:`Design Built Around Brand and Business Goals`,paragraphs:[`A design project should solve more than a visual problem. It may need to introduce a product, clarify a service, increase response to an advertisement, improve a digital journey, or keep a brand consistent across dozens of channels.`,`5WPR combines creative direction with [branding strategy](/services/brand-strategy-services/), content, media, and campaign planning. This integrated model helps marketing teams connect each creative choice to the work that follows, from media outreach and social publishing to paid placement and conversion measurement.`]}
33,{kind:`cards`,tone:`white`,heading:`Creative Design Services`,lead:`5WPR builds the scope around the brand, campaign, channel requirements, and available assets. A project might include one focused service or a connected group of deliverables.`,images:!0,cardCta:`Discuss this service`,cards:[{title:`Brand Identity and Guidelines`,paragraphs:[`5WPR develops visual identity systems that may include logos, color palettes, typography, image direction, and usage guidelines. The system gives internal teams and outside partners a shared framework for future work.`]},{title:`UX and UI Design`,paragraphs:[`Our team plans interfaces, wireframes, user journeys, landing pages, and digital experiences around the actions people need to complete. Research, feedback, and conversion data can guide decisions about page structure and interaction.`]},{title:`Photography`,paragraphs:[`Photography support covers product imagery, corporate portraits, lifestyle content, events, art direction, production planning, and post-production. Each shot list reflects the channels where the final images will appear.`]},{title:`Video Production`,paragraphs:[`5WPR supports video from concept and script development through storyboarding, production, editing, color, and sound. Formats may include brand stories, product demonstrations, campaign videos, interviews, event content, and social clips.`]},{title:`Animation and Motion Graphics`,paragraphs:[`Motion can explain a process, show a product, introduce data, or add energy to campaign content. Deliverables may include 2D or 3D animation, motion graphics, animated infographics, and platform-specific social assets.`]},{title:`Product Rendering`,paragraphs:[`Product rendering helps teams present concepts, features, colors, and variations before final photography or manufacturing. 5WPR can coordinate digital designers and specialist artists according to the production need.`]},{title:`Packaging Design`,paragraphs:[`Packaging work includes visual concepts, brand application, structural design, and preparation for retail or digital presentation. Client counsel or a qualified compliance adviser should review legal, labeling, and industry requirements.`]},{title:`Campaign Content`,paragraphs:[`Campaign content brings copy and design into one system across social posts, landing pages, email, media materials, event displays, presentations, and sales tools. Shared direction helps the brand remain recognizable across formats.`]},{title:`Display Advertising`,paragraphs:[`5WPR creates display assets for the sizes, placements, messages, and audiences defined in the media plan. Creative can then be reviewed against campaign data and adjusted to support response and conversion goals.`]}]},{kind:`prose`,tone:`dark`,heading:`A Creative Digital Design Agency Connected to Campaign Execution`,twoColumn:!0,paragraphs:[`Many brands manage design, public relations, social media, and advertising through separate vendors. That structure can create delays, conflicting direction, and assets that do not fit the final placement.`,`5WPR connects creative work with the teams responsible for distribution and performance. Designers can account for campaign messages, earned-media moments, social formats, paid placements, and landing-page goals while the work is being developed. Marketing leaders gain one coordinated direction across the channels involved.`]},{kind:`awards`},{kind:`caseStudies`,tone:`lavender`,heading:`Creative Work Measured Beyond Appearance`,lead:`5WPR evaluates creative work according to the role it plays in the wider program. Relevant measures may include audience reach, engagement, clicks, follower growth, conversion activity, earned coverage, or another campaign goal.`,items:[{title:`SodaStream: Social Content Built for Response`,paragraphs:[`A SodaStream campaign combined themed social content, copy, campaign strategy, placement, timing, community management, and paid support. The program generated 4,500 ecommerce clicks and a 43.6% increase in Instagram followers.`]},{title:`SMEG: Creator Content at Scale`,paragraphs:[`For SMEG, 5WPR developed an influencer program that produced more than 300 pieces of content, more than 38 million impressions, an average engagement rate above 6.5%, and more than 60,000 consumer clicks to retailers.`,`These 
33campaigns show how creative assets support distribution, audience response, and measurable outcomes when design works within the full program.`]}],cta:{text:`Have a launch, rebrand, or campaign that needs creative support?`,label:`Start a project with 5WPR`,href:`#contact`}},{kind:`prose`,tone:`white`,heading:`When Brands Need a Design and Advertising Agency`,paragraphs:[`Brands searching for a design advertising agency often need more than a single set of graphics. They need a partner that translates brand strategy into campaign assets and prepares those assets for the channels where people will see them.`,`This model supports rebrands, product launches, paid campaigns, social programs, events, website updates, retail pushes, or ongoing content calendars. The final scope depends on the business goal, the assets already available, and the teams involved in approval.`,`5WPR connects design with [social media marketing](/practice/digital-marketing-agency/social-media-marketing-agency.cfm), [media planning and buying](/practice/digital-marketing-agency/media-planning-and-buying-agency.cfm), and [performance marketing](/practice/digital-marketing-agency/performance-marketing-agency.cfm) when the engagement calls for a broader program.`]}],faqHeading:`Frequently Asked Questions`,faqs:[{q:`What services does a design agency provide?`,a:[`Design agency services may include brand identity, UX and UI design, photography, video, animation, product rendering, packaging, campaign content, and advertising creative. The right mix depends on the brand goal and the channels involved.`]},{q:`What is a creative digital design agency?`,a:[`A creative digital design agency creates brand and campaign assets for websites, social platforms, advertising, email, video, and other digital channels. Some agencies also connect the work with media strategy, content, and performance measurement.`]},{q:`What does a design advertising agency do?`,a:[`A design and advertising agency turns campaign strategy into creative assets built for paid and owned placements. Work may include concepts, copy, display ads, social assets, landing pages, video, testing, and campaign updates.`]},{q:`How does 5WPR connect design with public relations?`,a:[`5WPR plans creative assets around the same message, audience, launch timing, and media opportunities used in the communications program. That coordination gives press, social, paid, and brand teams a shared direction.`]},{q:`Can 5WPR support one project or an ongoing campaign?`,a:[`Project scope depends on the brand's needs. 5WPR can discuss a defined creative assignment or design support within a broader public relations and digital marketing engagement.`]},{q:`How is design performance measured?`,a:[`Measurement depends on the asset's role. Teams may review reach, engagement, clicks, follower growth, conversion activity, earned coverage, or another outcome established for the campaign.`]}],faqFooter:`Not sure which creative work to start with?`,closing:{heading:`Strong Design Gives Every Campaign a Clearer Way to Communicate`,paragraphs:[`5WPR brings creative direction, production, public relations, digital marketing, and paid media into one coordinated program. Tell us what your brand needs to launch, explain, or improve, and our team will help define the right design scope.`,`Start a project with 5WPR to discu
33ss your audience, channels, timeline, and goals.`],primary:{label:`Start a project with 5WPR`,href:`#contact`}}},Bs={slug:`usprfirm-5wpr-productintegration.cfm`,path:`/services/usprfirm-5wpr-productintegration.cfm`,title:`Product Placement Agency for Consumer Brands | 5WPR`,description:`5WPR is a product placement agency connecting CPG brands with film, streaming, creators, social media, events, earned media, and AI-assisted product research.`,h1:`Product Placement Agency for Consumer Brands`,kicker:`Product placement & integration`,breadcrumb:`Product Integration`,heroLead:[`5W Public Relations connects CPG products with film, television, streaming, music, sports, gaming, podcasts, creators, social media, and live events. Our team coordinates public relations, digital marketing, influencer programs, and AI search research around one product story.`,`A placement earns attention only when the product fits the content, the rights and disclosures are clear, and users find accurate information after the appearance. 5W plans the full path from a screen or creator post to publisher coverage, retailer pages, search results, and an AI-generated answer.`],heroCtas:[{label:`Request a Consultation`,href:`#contact`}],trustFacts:Pe,sticky:{message:`Project inquiry or a 30-minute discovery call.`,cta:`Get In Touch Now`},blocks:[{kind:`split`,tone:`white`,heading:`What Is Product Integration?`,paragraphs:[`Product integration places a named product inside content that an audience already watches, hears, plays, or follows. Product placement, brand integration, and branded entertainment describe related work. A negotiated hero role in a storyline represents deeper integration than a background package.`,`A product integration agency extends placement planning into dialogue, demonstrations, creator routines, live events, and co-branded content.`,`Modern programs span paid partnerships, earned opportunities, product seeding, licensing, and co-branded content. Contract terms should define usage rights, exclusivity, approval steps, category conflicts, disclosure duties, product supply, and the length of each placement.`],listLabel:`5W plans product integration across the channels used by CPG companies`,items:[`Scripted television and film, including visible props, dialogue, and storyline use`,`Streaming originals and ad-supported programming on services such as Netflix, Prime Video, Hulu, Disney+, Max, and Apple TV+`,`Music videos and artist content distributed through YouTube, Vevo, TikTok, and Instagram`,`NFL, NBA, MLB, MLS, college sports, team partnerships, and broadcast segments`,`Reality and unscripted formats covering food, home, competition, dating, and travel`,`Console games, mobile games, esports, Twitch streams, and gaming creators`,`Podcasts, YouTube series, TikTok posts, Instagram Reels, and creator routines`,`Press events, consumer activations, retail moments, and co-branded campaigns`]},{kind:`prose`,tone:`dark`,heading:`How Is AI Reshaping Product Integration?`,paragraphs:[`AI models have added a research layer after entertainment exposure and creator discovery. A shopper who notices a RENPHO eye massager in a gift guide or a Diono product in a celebrity post might later ask ChatGPT, Gemini, Perplexity, or Google to compare features, reviews, price, and availability.`,`An unpaid AI recommendation is not a negotiated product placement. AI models retrieve available sources, consider several products, describe each option, and assemble an answer. 5W audits five points in that process: whether product information is accessible, whether the product is retrieved for the question, whether it remains under consideration, whether the answer describes it correctly, and whether the evidence supports a recommendation.`,`[5W's Creators & AI Visibility audit](/research/creators-ai-visibility/), published in May 2026, coded 109 citations across 15 buyer-intent prompts. The tested text-first AI surface cited no YouTube videos, while YouTube search returned more than 30 creator-led videos for the same questions. The finding shows that creator content reaches consumers even when one AI retrieval surface does not cite the video.`,`[5W's State of AI Search 2026](/research/state-of-ai-search-2026/) also identified earned media as the strongest single signal across the categories studied. That cross-category finding does not promise a citation for a CPG product. It supports a coordinated record that includes publisher coverage, current product pages, consistent retailer facts, creator education, and clear brand ownership.`]}
33,{kind:`cards`,tone:`white`,heading:`What Does a Product Placement Agency Do?`,lead:`5W builds each program around the product, audience, retail calendar, content rights, disclosure rules, budget, and measurement plan. The service mix follows the selection journey from first exposure through product research.`,images:!0,cardCta:`Discuss this service`,cards:[{title:`Strategy and Channel Selection`,paragraphs:[`5W maps the audience against the shows, platforms, creators, sports, music, games, podcasts, publishers, retailers, and search questions that shape product selection. Loacker's PowerMom campaign paired actress and mother Maggie Gyllenhaal with a media event, interviews, social posts, and follow-up coverage tied to working mothers.`]},{title:`Studio, Network, and Platform Relationships`,paragraphs:[`5W evaluates scripted and unscripted opportunities through studio integration teams, network partnership groups, production companies, and streaming contacts. The review covers audience fit, product use, fees, exclusivity, timing, rights, safety, and the likelihood that the appearance will remain visible in the final edit.`]},{title:`Influencer Seeding and Creator Integration`,paragraphs:[`5W selects creators based on audience match, category knowledge, content quality, past sponsorships, comment patterns, and brand-safety review. Decléor USA used a 63-image Instagram launch sequence supported by 30 hashtags per image. The published case study reports 1,078 likes and 23 comments despite starting with no followers.`,`Creator agreements should state deliverables, usage rights, exclusivity, approval limits, payment, product claims, and Federal Trade Commission disclosure requirements. Licensed creator footage also gives paid social teams approved material for TikTok, Instagram, YouTube, and retailer media. See [influencer marketing](/services/influencer-marketing-agency.cfm) and [affiliate marketing](/services/affiliate-marketing-agency.cfm).`]},{title:`Reality and Unscripted Television`,paragraphs:[`Reality and unscripted programs give food, beverage, beauty, home, appliance, travel, and family products a setting for demonstrations. 5W reviews episode themes, set needs, production timing, product quantities, shipping, category conflicts, and edit risk before recommending a property.`]},{title:`Music, Sports, and Gaming Integration`,paragraphs:[`Music, sports, and gaming require separate plans because artist rights, league rules, team assets, game development cycles, livestream formats, and audience behavior differ. 5W matches the product use case with the property, then coordinates creative terms, product delivery, social support, public relations, and paid distribution.`]},{title:`AI Search and Product Discovery`,paragraphs:[`5W tests category questions across major AI and search platforms, records which brands appear, reviews cited sources, and flags incorrect product descriptions. The program then addresses information gaps through public relations, structured product copy, FAQs, retailer consistency, creator briefs, and third-party education. Learn more about [AI Search (GEO) programs](/practice/geo-optimization.cfm).`,`No placement, article, creator post, product page, or technical update guarantees an AI citation, recommendation, retailer visit, or sale. Results vary by question, platform, location, timing, source access, price, reviews, availability, and the evidence retrieved for the answer.`]},{title:`Press and Consumer Events`,paragraphs:[`5W develops press previews, demonstrations, launch events, sampling programs, and consumer activations that give reporters and creators direct product experience. Lansinoh's Birth Prep & Recovery launch paired an Instagram Live discussion with Mandy Moore and Dr. Ashurina Ream with pre- and post-event media outreach. The published case study reports more than 120,000 video views and 312 million media impressions.`]},{title:`Strategic Partnerships and Co-Branding`,paragraphs:[`5W develops partnerships between companies with compatible audiences, retail goals, content needs, and reputation standards. Diono's seven-year Little Tikes license created a named product line, while 5W supported product launches, safety education, spokesperson outreach, and celebrity gifting around the partnership.`]},{title:`Performance Measurement`,paragraphs:[`Measurement starts with the role assigned to each channel. Reports might track confirmed placements, content use, qual
33ified reach, earned coverage, creator views, engagement, branded search, product-page visits, retailer traffic, affiliate activity, sentiment, message accuracy, and AI citation share for defined questions.`,`Sales analysis requires clean dates, retailer data, promotion details, media spend, inventory status, and an agreed attribution method. 5W separates observed changes from proven causation when other marketing and retail activity ran during the same period.`]}]},{kind:`prose`,tone:`white`,heading:`Which Industries Does 5W's Product Integration Practice Serve?`,paragraphs:[`5W supports CPG and consumer companies across beauty and personal care, food and beverage, parent and baby, fashion, consumer technology, automotive, hospitality, home and housewares, toys, games, health, and wellness. See our [consumer products and CPG PR](/practice/consumercfm.cfm) practice.`,`Published 5W work shows how the channel mix changes by category.`],bullets:[`[Decléor](/practice/decleor.cfm) used an Instagram launch for beauty.`,`[Loacker](/practice/loacker.cfm) paired Maggie Gyllenhaal with interviews, an event, and social content.`,`[Diono](/practice/casestudy-diono.cfm) combined the Little Tikes license with family media and celebrity use.`,`[Lansinoh](/practice/lansinoh.cfm) linked an Instagram Live event with maternal-health education and national coverage.`,`RENPHO used gift guides, product roundups, paid partnership ideas, ambassadors, and licensing concepts to expand attention beyond one Amazon scale.`]},{kind:`awards`},{kind:`caseStudies`,tone:`lavender`,heading:`Why Do CPG Companies Choose 5W's Product Placement Agency?`,lead:`CMOs often compare product placement companies on channel access, opportunity screening, creator vetting, rights support, product logistics, public relations, social media, and reporting. 5W manages those connected workstreams through one plan and one approval process.`,items:[{title:`Our Results`,paragraphs:[`The [Loacker PowerMom case study](/practice/loacker.cfm) reports five top-tier interviews for Maggie Gyllenhaal, more than 26,000 likes on promotional social posts, and more than 179 million media impressions.`,`The [Diono case study](/practice/casestudy-diono.cfm) reports 285 media placements, more than 490 million media impressions, and a 75 percent increase in website traffic tied to the historical program. These results describe past campaigns and do not forecast future work.`]},{title:`How Do CPG Companies Work With a Product Placement Agency?`,paragraphs:[`The first discussion covers the product, audience, retail footprint, campaign dates, inventory, budget, rights, legal review, creator restrictions, and success measures. 5W then recommends a channel mix and work plan for a single placement, product launch, seasonal program, or ongoing retainer.`]}],cta:{text:`Planning an entertainment, creator, or retail moment?`,label:`Start a Product Integration Project`,href:`#contact`}}],faqHeading:`Frequently Asked Questions About Product Placement Agencies`,faqLead:`5W answers common questions from CPG marketing and communications teams planning entertainment, creator, social, and AI search programs.`,faqs:[{q:`What is the difference between product integration and product placement?`,a:[`The terms often overlap. Product placement usually describes a visible product appearance, while product integration often gives the product a role in dialogue, action, a demonstration, or a storyline. Contracts should define the exact use instead of relying on either label.`]},{q:`How is product placement different from traditional advertising?`,a:[`Traditional advertising interrupts or surrounds content through purchased inventory. Product placement puts the product inside the content. Both paid and earned placements still require fit, rights, approvals, disclosure review, and measurement against a stated objective.`]},{q:`How much does product placement cost?`,a:[`Cost depends on the property, audience, product role, media rights, exclusivity, production needs, creator fees, paid usage, category conflicts, and campaign length. 5W develops a scope after reviewing the product, budget, timing, and business goal.`]},{q:`Where do CPG products get placed in 2026?`,a:[`Programs span film, scripted television, streaming originals, unscripted shows, sports, music videos, podcasts, YouTube, TikTok, Instagram, games, Twitch, retail media, press events, consumer activations, and co-branded content. Audience behavior and product use determine the mix.`]},{q:`Does product placement still work during the streaming era?`,a:[`Streaming expanded the number of programs and ad-supported formats available to marketers, while creators added daily demonstrations and niche audiences. Effe
33ctiveness depends on audience fit, product visibility, creative use, surrounding support, frequency, and measurement design.`]},{q:`How is AI changing product placement?`,a:[`AI tools support audience research, script review, question analysis, content tagging, and post-campaign monitoring. AI models also influence product research through unpaid answers. 5W treats those answers as a separate discovery layer, not paid inventory.`]},{q:`How is product integration measured?`,a:[`5W sets metrics by channel and objective. Common measures include placement confirmation, screen time, verbal mentions, content reuse, earned coverage, creator views, engagement, search activity, site traffic, affiliate actions, sentiment, retailer data, and AI visibility for defined questions.`]},{q:`How should CMOs compare product placement companies?`,a:[`CMOs should compare channel access, opportunity screening, contract support, creator vetting, rights management, disclosure review, product logistics, media support, and reporting. A product placement company should separate confirmed exposure from projected reach and sales attribution. Internal teams still retain product knowledge, legal authority, inventory control, and final approval.`]}],faqFooter:`Have a product, launch date, or property in mind?`,closing:{heading:`Start a Product Integration Project`,paragraphs:[`CPG companies lose consideration when entertainment placements, creator posts, retailer pages, publisher coverage, and AI answers present different product facts. 5W connects product integration, public relations, digital marketing, social media, influencer programs, retailer information, and AI search research around one approved record.`,Fe,`Work with 5WPR to align product placements, creator programs, social content, retailer facts, earned coverage, and AI search research around the same selection story.`],primary:{label:`Start a Product Integration Project`,href:`#contact`}}},Vs={[js.slug]:js,[Ms.slug]:Ms,[Ps.slug]:Ps,[Fs.slug]:Fs,[Is.slug]:Is,[Ls.slug]:Ls,[Rs.slug]:Rs,[zs.slug]:zs,[Bs.slug]:Bs};function Hs(e){if(!e)return null;let t=e.replace(/^\/+|\/+$/g,``).split(`/`).pop()??``;return Vs[t]??Vs[t.toLowerCase()]??null}var Us=u(`/services-template-draft`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ks)},head:()=>({meta:[{title:`DRAFT — ${Fs.title}`},{name:`description`,content:Fs.description},{name:`robots`,content:`noindex,nofollow`}]}),component:s(()=>F(()=>import(`./services-template-draft-2DeMPrhN.js`),__vite__mapDeps([11,1,12,5,6,7,8,9,10,13,14,15,16,17])),`component`)}),Ws=S({method:`GET`}).handler(b(`9af72d1b1a3230650db36170d7c77424b773f9981ca91e85d1480f81afcced62`)),Gs=S({method:`GET`}).handler(b(`89a488915ab6cc9564938e9719e7519a507a87e623077e0f99f8decfc6f55b81`)),Ks=k({queryKey:[`services_list`],queryFn:()=>Ws(),staleTime:5*6e4}),qs=S({method:`GET`}).handler(b(`a7e2c5086db18071dcc5fcf7bef9bc5265cd8d70e9aaca7174ce948ec6081ee8`)),Js=k({queryKey:[`case_studies_gallery`],queryFn:()=>qs(),staleTime:5*6e4}),Ys=24,Xs=[{label:`Consumer`,keywords:[`consumer`,`cpg`]},{label:`Beauty`,keywords:[`beauty`,`personalcare`,`mensgrooming`]},{label:`Food & Beverage`,keywords:[`foodandbeverage`,`winebeerspirits`,`wine`,`beer`,`spirits`]},{label:`Home & Housewares`,keywords:[`homeandhousewares`,`homegoods`]},{label:`Fashion & Apparel`,keywords:[`apparelandaccessories`,`fashion`]},{label:`Technology`,keywords:[`technology`,`consumertech`,`hrtech`,`adtech`,`martech`,`apps`,`saas`,`aidigital`]},{label:`Fintech & Finance`,keywords:[`fintech`,`financialservices`]},{label:`Travel & Hospitality`,keywords:[`travelandhospitality`]},{label:`Health & Wellness`,keywords:[`health`,`wellness`]},{label:`Cannabis`,keywords:[`cannabis`,`cannbis`,`cbd`,`thc`]},{label:`Corporate & B2B`,keywords:[`corporate`,`b2b`,`thoughtleadership`]},{label:`Digital & Social`,keywords:[`digitalmarketing`,`socialmedia`,`digitalpr`,`seostrategy`,`influencer`]},{label:`Parent, Child & Baby`,keywords:[`parentchildandbaby`]},{label:`Real Estate`,keywords:[`realestate`,`proptech`]},{label:`Sports & Entertainment`,keywords:[`sports`,`entertainmentandevents`]},{label:`Pet`,keywords:[`pet`]}
33],Zs=[`launch`,`crisis`,`beauty`,`fintech`,`hospitality`];function Qs({limit:e,showFilter:t=!1}){let{data:n}=Oe(Js),[r,i]=(0,R.useState)(``),[a,o]=(0,R.useState)(null),[s,c]=(0,R.useState)(Ys),l=(0,R.useMemo)(()=>[...n].sort((e,t)=>(e.name??``).localeCompare(t.name??``)),[n]),u=(0,R.useMemo)(()=>l.map(e=>({row:e,hay:[e.name??``,...e.topics??[]].join(` `).toLowerCase()})),[l]),d=(0,R.useMemo)(()=>{let e=new Map;for(let{hay:t}of u)for(let n of Xs)n.keywords.some(e=>t.includes(e))&&e.set(n.label,(e.get(n.label)??0)+1);return e},[u]),f=(0,R.useMemo)(()=>{let e=r.trim().toLowerCase(),t=a?Xs.find(e=>e.label===a):null;return u.filter(({hay:n})=>!(t&&!t.keywords.some(e=>n.includes(e))||e&&!n.includes(e))).map(({row:e})=>e)},[u,r,a]),p=(0,R.useMemo)(()=>e?f.slice(0,e):f.slice(0,s),[f,s,e]),m=!e&&s<f.length;return(0,z.jsxs)(`div`,{className:`container-x`,children:[t&&(0,z.jsxs)(`div`,{className:`mb-12`,children:[(0,z.jsxs)(`div`,{className:`relative mx-auto max-w-3xl`,children:[(0,z.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute -inset-2 rounded-full opacity-70 blur-3xl`,style:{background:`radial-gradient(60% 100% at 50% 50%, rgba(255,255,255,0.35) 0%, transparent 70%)`}}),(0,z.jsxs)(`div`,{className:`relative rounded-full border border-white/70 bg-white shadow-[0_25px_80px_-25px_rgba(255,255,255,0.55)]`,children:[(0,z.jsxs)(`svg`,{"aria-hidden":!0,viewBox:`0 0 24 24`,className:`pointer-events-none absolute left-5 top-1/2 h-5 w-5 -translate-y-1/2 text-[var(--color-navy)]`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:[(0,z.jsx)(`circle`,{cx:`11`,cy:`11`,r:`7`}),(0,z.jsx)(`path`,{d:`m21 21-4.3-4.3`,strokeLinecap:`round`})]}),(0,z.jsx)(`input`,{type:`search`,value:r,onChange:e=>{i(e.target.value),c(Ys)},placeholder:`Search case studies by client, industry or topic…`,className:`w-full rounded-full bg-transparent py-4 pl-14 pr-6 text-base text-[var(--color-navy)] placeholder:text-[var(--color-navy)]/50 focus:outline-none`}),r&&(0,z.jsx)(`button`,{type:`button`,onClick:()=>i(``),"aria-label":`Clear search`,className:`absolute right-4 top-1/2 -translate-y-1/2 rounded-full border border-[var(--color-navy)]/20 px-3 py-1 text-[10px] font-bold uppercase tracking-[0.2em] text-[var(--color-navy)]/70 hover:border-[var(--color-navy)] hover:text-[var(--color-navy)]`,children:`Clear`})]}),(0,z.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-center gap-2 text-xs`,children:[(0,z.jsx)(`span`,{className:`mono-label text-[var(--color-ink-3)]`,children:`Try:`}),Zs.map(e=>(0,z.jsxs)(`button`,{type:`button`,onClick:()=>{i(e),o(null),c(Ys)},className:`rounded-full border border-white/10 bg-white/5 px-3 py-1 text-[11px] text-[var(--color-ink-2)] transition hover:border-[var(--color-periwinkle)] hover:bg-[var(--color-periwinkle)]/10 hover:text-white`,children:[`"`,e,`"`]},e))]})]}),(0,z.jsxs)(`div`,{className:`mt-10`,children:[(0,z.jsx)(`div`,{className:`mb-4 text-center mono-label text-[var(--color-ink-3)]`,children:`Filter by industry`}),(0,z.jsxs)(`div`,{className:`flex flex-wrap justify-center gap-2`,children:[(0,z.jsxs)(`button`,{type:`button`,onClick:()=>{o(null),c(Ys)},className:`rounded-full border px-4 py-2 text-xs font-semibold uppercase tracking-[0.14em] transition ${a===null?`border-white bg-white text-[var(--color-navy)] shadow-[0_10px_30px_-15px_rgba(255,255,255,0.7)]`:`border-white/30 bg-white/[0.04] text-white/80 hover:border-white hover:bg-white/10 hover:text-white`}`,children:[`All (`,l.length,`)`]}),Xs.filter(e=>(d.get(e.label)??0)>0).map(e=>{let t=a===e.label,n=d.get(e.label)??0;return(0,z.jsxs)(`button`,{type:`button`,onClick:()=>{o(t?null:e.label),c(Ys)},className:`rounded-full border px-4 py-2 text-xs font-semibold uppercase tracking-[0.14em] transition ${t?`border-white bg-white text-[var(--color-navy)] shadow-[0_10px_30px_-15px_rgba(255,255,255,0.7)]`:`border-white/30 bg-white/[0.04] text-white/80 hover:border-white hover:bg-white/10 hover:text-white`}`,children:[e.label,` `,(0,z.jsxs)(`span`,{className:`opacity-60`,children:[`(`,n,`)`]})]},e.label)})]})]}),(0,z.jsxs)(`div`,{className:`mt-8 flex justify-center mono-label text-[var(--color-ink-3)]`,children:[`Showing `,p.length,` of `,f.length,f.length!==l.length&&` (${l.length} total)`]})]}),(0,z.jsx)(`div`,{className:`grid gap-5 sm:grid-cols-2 lg:grid-cols-3`,children:p.map(e=>(0,z.jsx)(`a`,{href:e.link?Le(e.link):`#`,className:`group relative block overflow-hidden rounded-2xl border border-white/10 bg-[var(--color-navy-soft)] transition hover:border-[var(--color-periwinkle)]/60`,children:(0,z.jsxs)(`div`,{className:`relative aspect-[4/3] overflow-hidden`,children:[e.image_url&&/\/client-logos\//.test(e.image_url)?(0,z.jsx)(`div`,{className:`flex h-full w-full items-start justify-center bg-[var(--paper)] px-10 pb-20 pt-10`,children:(0,z.jsx)(`img`,{src:e.image_url,alt:`${e.name??``} logo`,loading:`lazy`,decoding:`async`,className:`h-full max-h-28 w-full object-contain transition duration-500 group-hover:scale-105`})}):e.image_url?(0,z.jsx)(`img`,{src:e.image_url,alt:e.name??``,loading:`lazy`,decoding:`async`,className:`h-full w-full object-cover transition duration-500 group-hover:scale-105`}):(0,z.jsx)(`div`,{className:`flex h-full w-full items-center justify-center bg-white/5 text-xs uppercase tracking-widest text-white/30`,children:`5W`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-t from-[var(--color-navy)]/95 via-[var(--color-navy)]/40 to-transparent`}),(0,z.jsxs)(`div`,{className:`absolute inset-x-0 bottom-0 p-5`,children:[(0,z.jsx)(`h3`,{className:`font-display text-lg font-black leading-tight tracking-[-0.02em] text-white group-hover:text-[var(--color-periwinkle)] transition-colors`,children:e.name}),(0,z.jsxs)(`span`,{className:`mt-1 inline-flex items-center gap-1 text-xs text-[var(--color-periwinkle)] opacity-0 group-hover:opacity-100 transition-opacity`,children:[`View case study`,(0,z.jsx)(`span`,{"aria-hidden":!0,
33className:`transition group-hover:translate-x-1`,children:`→`})]})]})]})},e.id))}),p.length===0&&(0,z.jsx)(`p`,{className:`mt-12 text-center text-[var(--color-ink-3)]`,children:`No case studies match your search.`}),m&&(0,z.jsx)(`div`,{className:`mt-12 flex justify-center`,children:(0,z.jsxs)(`button`,{type:`button`,onClick:()=>c(e=>e+Ys),className:`rounded-full border border-[var(--color-periwinkle)]/50 bg-[var(--color-periwinkle)]/10 px-8 py-3 text-xs uppercase tracking-widest text-[var(--color-periwinkle)] transition hover:border-[var(--color-periwinkle)] hover:bg-[var(--color-periwinkle)]/20`,children:[`View more (`,f.length-s,` remaining)`]})}),!e&&f.length>0&&(0,z.jsxs)(`nav`,{"aria-label":`All case studies`,className:`mt-16 border-t border-[var(--color-rule)] pt-8`,children:[(0,z.jsx)(`h3`,{className:`text-xs uppercase tracking-widest text-[var(--color-ink-3)]`,children:`All case studies`}),(0,z.jsx)(`ul`,{className:`mt-4 flex flex-wrap gap-x-5 gap-y-2 text-sm text-[var(--color-ink-3)]`,children:f.map(e=>(0,z.jsx)(`li`,{children:(0,z.jsx)(`a`,{href:Le(e.link??`#`),className:`hover:text-[var(--color-periwinkle)] hover:underline`,children:e.name})},`idx-${e.id??e.link}`))})]})]})}var $s=()=>F(()=>import(`./services-draft-CrAoFTmz.js`),__vite__mapDeps([18,1,5,6,7,8,9,10,19,13,14,15,16,17])),ec=`Public Relations and Digital Marketing Services | 5W`,tc=`Explore 5W public relations, reputation, influencer, digital marketing, creative, and AI visibility services for ambitious brands.`,nc=u(`/services-draft`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Js),e.queryClient.ensureQueryData(ks),e.queryClient.ensureQueryData(Ks)])},head:()=>({meta:[{title:`DRAFT — ${ec}`},{name:`description`,content:tc},{name:`robots`,content:`noindex,nofollow`}]}),component:s($s,`component`)}),rc=()=>F(()=>import(`./privacypolicy_._cfm-CFj_j3_h.js`),__vite__mapDeps([20,1,4,5,6,7,8,9,10])),ic=`https://www.5wpr.com/privacypolicy.cfm`,ac=u(`/privacypolicy.cfm`)({head:()=>({meta:[{title:`Privacy Policy | 5W Public Relations`},{name:`description`,content:`How 5W Public Relations collects, uses, stores, and protects information from visitors to our sites. Read our full privacy policy.`},{property:`og:title`,content:`Privacy Policy | 5WPR`},{property:`og:description`,content:`5WPR's commitment to respecting privacy and protecting personal data across our digital properties.`},{property:`og:url`,content:ic},{property:`og:type`,content:`article`}],links:[{rel:`canonical`,href:ic}]}),component:s(rc,`component`)}),oc=()=>F(()=>import(`./press-BCQLoQ3I.js`),__vite__mapDeps([21,1,5,6,7,8,9,10,13,14,15,16,17])),sc=`Press & Media Coverage | 5W Public Relations`,cc=`Where 5W research shows up: coverage of the AI Visibility Index and 5W commentary in Forbes, WWD, Digiday, Newsweek, American Banker, Glossy and more.`,lc=`https://www.5wpr.com/press/`,uc=u(`/press`)({beforeLoad:({location:e})=>{if(!e.pathname.endsWith(`/`))throw C({to:`/press/`,throw:!0})},head:()=>({meta:[{title:sc},{name:`description`,content:cc},{property:`og:title`,content:sc},{property:`og:description`,content:cc},{property:`og:url`,content:lc},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:sc},{name:`twitter:description`,content:cc}],links:[{rel:`canonical`,href:lc}]}),component:s(oc,`component`)}),dc=u(`/links`)({head:()=>({meta:[{title:`5W Link Hub — Reports, Research & Ways to Work With Us`},{name:`description`,content:`Every 5W research report, AI Visibility Index, and study in one place — plus direct links to work with us or get in touch.`},{property:`og:title`,content:`5W Link Hub`},{property:`og:description`,content:`Every 5W research report, AI Visibility Index, and study in one place.`},{property:`og:url`,content:`https://www.5wpr.com/links/`},{property:`og:type`,content:`website`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/links/`}]}),component:s(()=>F(()=>import(`./links-DuHSHDY6.js`),__vite__mapDeps([22,1,5,6,7,8,9,10])),`component`)}),fc=()=>F(()=>import(`./cookie-policy-rAPHyCin.js`),__vite__mapDeps([23,1,4,5,6,7,8,9,10])),pc=`https://www.5wpr.com/cookie-policy/`,mc=u(`/cookie-policy`)({head:()=>({meta:[{title:`Cookie Policy | 5W Public Relations`},{name:`description`,content:`How 5W Public Relations uses cookies and similar tracking technologies on our websites — and how you can manage your preferences.`},{property:`og:title`,content:`Cookie Policy | 5WPR`},{property:`og:description`,content:`Learn about the cookies 5WPR uses, why we use them, and how to control them.`},{property:`og:url`,content:pc},{property:`og:type`,content:`article`}],links:[{rel:`canonical`,href:pc}]}),component:s(fc,`component`)}),hc=`/assets/og-5wpr-brand-Cv0vqrhl.jpg`,gc=`https://www.5wpr.com`;function _c(e){return e?e.replace(/<[^>]+>/g,` `).replace(/&nbsp;/g,` `).replace(/&amp;/g,`&`).replace(/&#39;/g,`'`).replace(/&quot;/g,`"`).replace(/\s+/g,` `).trim():``}function vc(e,t=200){let n=_c(e);return n?n.length>t?n.slice(0,t-1).trimEnd()+`…`:n:``}var yc=new Set([`5w`,`5wpr`,`5w pr`,`5w public relations`]);function bc(e,t=200){let n=e??{},r=(n.meta_description??``).toString().trim(),i=yc.has(r.toLowerCase());if(r.length>=20&&!i)return r.length>t?r.slice(0,t-1).trimEnd()+`…`:r;let a=vc(n.excerpt_html,t);if(a&&a.length>=20)return a;for(let e of[`summary`,`dek`,`og_description`]){let r=(n[e]??``).toString().trim();if(r.length>=20&&!yc.has(r.toLowerCase()))return r.length>t?r.slice(0,t-1).trimEnd()+`…`:r}for(let e of[`body_html`,`legacy_html`,`definition_html`]){let r=vc(n[e],t);if(r&&r.length>=20)return r}return null}function xc(e){let t=e;t=t.replace(/#.*$/,``),t=t.replace(/^(https?:\/\/[^/]+)?\/dictionary(\/|$)/i,(e,t)=>`${t??``}/glossary/`);let n=t.match(/^([^?]*)(\?.*)?$/);if(n){let e=n[1],r=n[2]??``,i=e.split(`/`).pop()??``;e&&!e.endsWith(`/`)&&!i.includes(`.`)&&(e+=`/`),t=e+r}try{let e=new URL(t,gc),n=e.origin===`https://www.5wpr.com`?gc:e.origin;/\.cfm$/i.test(e.pathname)?t=`${n}${Ie(e.pathname)}${e.search}`:[`/practice/`,`/services/`,`/research/`,`/glossary/`,`/new/`,`/authors/`,`/about5wpr/`].some(t=>e.pathname.toLowerCase().startsWith(t))&&(t=`${n}${e.pathname.toLowerCase()}${e.search}`)}catch{}try{let e=new URL(t,gc);if(e.origin===`https://www.5wpr.com`){let n=Le(e.pathname);
33if(/^https?:/i.test(n))return n;n!==e.pathname&&(t=`${gc}${n}${e.search}`)}}catch{}return t}function Sc(e,t){return e&&/^https?:\/\//i.test(e)?e:e&&e.startsWith(`/`)?gc+e:t?gc+(t.startsWith(`/`)?t:`/`+t):null}function Cc(e){return e.replace(/%%[^%]+%%/g,``).replace(/#[a-zA-Z][\w]*#/g,``).replace(/\s+/g,` `).replace(/^\s*[|\-–—]\s*|\s*[|\-–—]\s*$/g,``).trim()}var wc=new Set([`/practice/gambling.cfm`]);function Tc(e){if(!e)return!1;let t=e;try{/^https?:\/\//i.test(t)&&(t=new URL(t).pathname)}catch{}let n=(t.replace(/\/+$/,``)||`/`).toLowerCase();return wc.has(n)}function Ec(e){let t=Cc((e.title??``).toString())||`5WPR`,n=Cc((e.description??``).toString()),r=Sc(e.canonical,e.path),i=r?xc(r):null,a=Ve(e.path??i??null)??n,o=Cc((e.ogTitle??``).toString())||t,s=Cc((e.ogDescription??``).toString())||a,c=Sc(e.ogImage,null),l=e.ogType||`website`,u=e.twitterCard||(c?`summary_large_image`:`summary`),d=ze(e.robots),f=(e.keywords??``).toString().trim(),p=e.path??i??null,m=[{title:Be(p)??Re(t,p)}];a&&m.push({name:`description`,content:a}),m.push({name:`robots`,content:d}),f&&!Tc(i??e.path??null)&&m.push({name:`keywords`,content:f}),m.push({property:`og:type`,content:l}),m.push({property:`og:title`,content:o}),s&&m.push({property:`og:description`,content:s}),i&&m.push({property:`og:url`,content:i}),c&&m.push({property:`og:image`,content:c}),m.push({name:`twitter:card`,content:u}),m.push({name:`twitter:title`,content:o}),s&&m.push({name:`twitter:description`,content:s}),c&&m.push({name:`twitter:image`,content:c}),e.publishedTime&&m.push({property:`article:published_time`,content:e.publishedTime}),e.author&&m.push({property:`article:author`,content:e.author});let h=[];i&&h.push({rel:`canonical`,href:i});let g=[],_=Fc(e.jsonld);for(let e of _)g.push({type:`application/ld+json`,children:typeof e==`string`?e:JSON.stringify(e)});return{meta:m,links:h,scripts:g}}var Dc=`https://www.5wpr.com/#organization`,Oc=new Set([`5W`,`5WPR`,`5W Public Relations`,`5W Public Relations LLC`,`5W Public Relations (5WPR)`]),kc=new Set([`Organization`,`WebSite`,`ProfessionalService`]);function Ac(e){if(!e||typeof e!=`object`||!(Array.isArray(e[`@type`])?e[`@type`].map(String):e[`@type`]?[String(e[`@type`])]:[]).some(e=>e===`Organization`||e===`ProfessionalService`))return!1;let t=new Set([e.name,e.legalName,e.alternateName,...(Array.isArray(e.sameAs),[])].filter(Boolean).map(String));return Array.isArray(e.alternateName)&&e.alternateName.forEach(e=>t.add(String(e))),Array.from(t).some(e=>Oc.has(e))}function jc(e){if(!e||typeof e!=`object`)return!1;let t=e[`@type`];return Array.isArray(t)?t.some(e=>kc.has(String(e))):typeof t==`string`&&kc.has(t)}function Mc(e){if(Array.isArray(e))return e.map(Mc);if(!e||typeof e!=`object`)return e;let t=e;if(Ac(t)&&t[`@id`]!==Dc)return{"@id":Dc};let n={};for(let[e,r]of Object.entries(t))e===`@id`&&r===Dc?n[e]=r:e===`publisher`||e===`provider`||e===`parentOrganization`||e===`subOrganization`?n[e]=Ac(r)?{"@id":Dc}:Mc(r):n[e]=Mc(r);return n}var Nc=new Set([`Drug`,`MedicalEntity`,`Product`]);function Pc(e){if(Array.isArray(e))return e.map(Pc);if(!e||typeof e!=`object`)return e;let t={...e},n=Array.isArray(t[`@type`])?t[`@type`].map(String):t[`@type`]?[String(t[`@type`])]:[];n.some(e=>Nc.has(e))&&(t[`@type`]=`Thing`),n.includes(`Event`)&&!t.startDate&&(t[`@type`]=`Thing`),n.includes(`Event`)&&t[`@type`]===`Thing`&&(delete t.endDate,delete t.eventAttendanceMode,delete t.eventStatus,delete t.location),`industry`in t&&delete t.industry;for(let[e,n]of Object.entries(t))e.startsWith(`@`)||(t[e]=Pc(n));let r={};for(let e of[`@context`,`@type`,`@id`])e in t&&(r[e]=t[e]);for(let[e,n]of Object.entries(t))e in r||(r[e]=n);return r}function Fc(e){if(!e)return[];let t=[],n=e=>{if(e!=null){if(typeof e==`string`){try{n(JSON.parse(e))}catch{t.push({raw:e})}return}if(Array.isArray(e)){e.forEach(n);return}if(typeof e==`object`){let r=e;if(Array.isArray(r[`@graph`])){r[`@graph`].forEach(n);return}if(jc(r))return;t.push(Mc(Pc(r)))}}};n(e);let r=[],i=[],a=new Set;for(let e of t){if(typeof e!=`object`||!e)continue;let t=Array.isArray(e[`@type`])?e[`@type`].map(String):e[`@type`]?[String(e[`@type`])]:[];if(t.includes(`FAQPage`)){let t=Array.isArray(e.mainEntity)?e.mainEntity:[];r.push(...t);continue}let n=e[`@id`],o=`${t.join(`,`)}|${n??``}`;
33if(t.length&&n){if(a.has(o))continue;a.add(o)}i.push(e)}if(r.length>0){let e=[],t=new Set;for(let n of r){if(!n||typeof n!=`object`)continue;let r=String(n.name??``).trim();!r||t.has(r)||(t.add(r),e.push(n))}i.push({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:e.slice(0,40)})}return i}function Ic(e){if(!e)return null;let t=[],n=/<(h[2-4])[^>]*>([\s\S]*?)<\/\1>\s*((?:<(?:p|div|ul|ol)[^>]*>[\s\S]*?<\/(?:p|div|ul|ol)>\s*)+)/gi,r;for(;r=n.exec(e);){let e=_c(r[2]),n=_c(r[3]);!e||!n||!/\?/.test(e)&&e.length>140||/\?/.test(e)&&t.push({q:e,a:n.slice(0,1200)})}let i=/<dt[^>]*>([\s\S]*?)<\/dt>\s*<dd[^>]*>([\s\S]*?)<\/dd>/gi;for(;r=i.exec(e);){let e=_c(r[1]),n=_c(r[2]);e&&n&&t.push({q:e,a:n.slice(0,1200)})}return t.length<2?null:{"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:t.slice(0,20).map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))}}function Lc(e,t={}){let n=e??{};return{title:n.seo_title||n.title||n.name||n.term||t.fallbackTitle||null,description:bc(n)??t.fallbackDescription??null,canonical:n.canonical_url||null,path:t.path??n.path??null,ogTitle:n.og_title||null,ogDescription:n.og_description||null,ogImage:n.og_image||n.hero_image||null,ogType:t.ogType||`website`,robots:n.robots||null,keywords:n.meta_keywords||null,jsonld:n.schema_jsonld??null}}function Rc(e){let t=e??{},n=(t.seo_title||t.title||``).toString().trim();if(!n)return null;let r=Sc(t.canonical_url,t.path),i=r?xc(r):null,a=t.og_image||t.hero_image||t.featured_image||t.thumbnail_url||null,o=a&&/^https?:\/\//i.test(a)?a:null,s=bc(t)??(t.subtitle?vc(t.subtitle,200):``),c=t.published_at||t.created_at||t.date||null,l=t.author_name||t.author||`5WPR`;return{"@context":`https://schema.org`,"@type":`Article`,headline:n,description:s||void 0,image:o||void 0,url:i||void 0,datePublished:c||void 0,dateModified:t.updated_at||c||void 0,author:{"@type":l.toLowerCase().includes(`5w`)?`Organization`:`Person`,name:l,url:l.toLowerCase().includes(`5w`)?`https://www.5wpr.com/`:void 0},publisher:{"@id":`https://www.5wpr.com/#organization`},mainEntityOfPage:i?{"@type":`WebPage`,"@id":i}:void 0}}var zc=u(`/contactus`)({head:()=>({meta:[{title:`Contact 5W | Public Relations & Digital Marketing`},{name:`description`,content:`Contact 5W's public relations and digital marketing team. New business inquiries get a review within 24 hours by email, phone, or the contact form.`},{name:`robots`,content:`index,follow`},{property:`og:title`,content:`Contact 5W | Public Relations & Digital Marketing`},{property:`og:description`,content:`Contact 5W's public relations and digital marketing team. New business inquiries get a review within 24 hours by email, phone, or the contact form.`},{property:`og:url`,content:`https://www.5wpr.com/contactus/`},{property:`og:type`,content:`website`},{property:`og:image`,content:`${gc}${hc}`},{property:`og:image:width`,content:`1200`},{property:`og:image:height`,content:`630`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:`${gc}${hc}`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/contactus/`}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`ContactPage`,url:`https://www.5wpr.com/contactus/`,name:`Contact 5WPR`,description:`Contact 5WPR — a top 10 independent US PR firm. Reach a senior strategist within one business day.`,mainEntity:{"@id":`https://www.5wpr.com/#organization`}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`LocalBusiness`,"@id":`https://www.5wpr.com/#localbusiness-nyc`,name:`5W Public Relations`,image:`https://www.5wpr.com/imagesWebp/5W-logo-V1-White.webp`,url:`https://www.5wpr.com/`,telephone:`+1-212-999-5585`,email:`[email protected]`,priceRange:`$$$`,founder:{"@type":`Person`,name:`Ronn Torossian`},address:{"@type":`PostalAddress`,streetAddress:`469 7th Avenue, Floor 8`,addressLocality:`New York`,addressRegion:`NY`,postalCode:`10018`,addressCountry:`US`},openingHoursSpecification:[{"@type":`OpeningHoursSpecification`,dayOfWeek:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],opens:`09:00`,closes:`17:00`}],sameAs:[`https://www.linkedin.com/company/5w-public-relations`,`https://www.facebook.com/5WPublicRelations`,`https://twitter.com/5W_PR`,`https://www.instagram.com/5wpr/`]}
33)}]}),component:s(()=>F(()=>import(`./contactus-B2QtUKmW.js`),__vite__mapDeps([24,1,5,6,7,8,9,10,25,14,15,16,17])),`component`)}),Bc=u(`/contact`)({beforeLoad:()=>{throw C({to:`/contactus/`})},component:s(()=>F(()=>import(`./contact-DJ7LAi8J.js`),[]),`component`)}),Vc=k({queryKey:[`clients-gallery`],queryFn:()=>qs(),staleTime:5*6e4}),Hc=k({queryKey:[`clients-logos-all`],queryFn:()=>Me({data:{all:!0}}),staleTime:5*6e4}),Uc=u(`/clients`)({beforeLoad:({location:e})=>{if(!e.pathname.endsWith(`/`))throw C({to:`/clients/`,throw:!0})},loader:({context:e})=>Promise.all([e.queryClient.ensureQueryData(Vc),e.queryClient.ensureQueryData(Hc)]),head:()=>({meta:[{title:`Meet 5WPR's Clients | Public Relations Agency | 5WPR`},{name:`description`,content:`Brands around the world trust 5WPR to build awareness, engage audiences, manage reputation, and support sales growth. See the agency's client roster.`},{property:`og:title`,content:`Meet 5WPR's Clients | Public Relations Agency | 5WPR`},{property:`og:description`,content:`Brands around the world trust 5WPR to build awareness, engage audiences, manage reputation, and support sales growth. See the agency's client roster.`},{property:`og:url`,content:`https://www.5wpr.com/clients/`},{property:`og:type`,content:`website`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/clients/`}]}),component:s(()=>F(()=>import(`./clients-B658E6zA.js`),__vite__mapDeps([26,1,5,6,7,8,9,10,19,13,14,15,16,17,27])),`component`)}),Wc=u(`/citation-audit.cfm`)({beforeLoad:()=>{throw C({href:`/ai-citation-audit/`,statusCode:301})},component:s(()=>F(()=>import(`./citation-audit_._cfm-DJ7LAi8J.js`),[]),`component`)}),Gc=S({method:`GET`}).handler(b(`50fdf103e81f448aba0693f0d3138b81f89a2cb2ddb7f1deec1873c558bb3413`)),Kc=S({method:`GET`}).handler(b(`68761a0188b51ee2b57e3397aaf4b408cb4913294e1f929c8f032a9ece28c6dc`)),qc=S({method:`GET`}).handler(b(`29a211fb8cb40bf051c16e5c435517df81a7ae81c5bf50b2260eab2e3001f161`)),Jc=S({method:`GET`}).handler(b(`d65bb0d2181be45e4a6e269a088bb19f835a74868447c63ab96c8d4d083d5e15`)),Yc=S({method:`GET`}).handler(b(`b8fae9ece6219406a44a9a7f93a652318011586709510f02803f9d68767dee87`)),Xc=`ADCOLOR.cfm`,Zc=k({queryKey:[`practice_page`,Xc],queryFn:()=>Kc({data:{slug:Xc}}),staleTime:5*6e4}),Qc=Symbol.for(`react.lazy`),$c=R.use;function el(e){return typeof e==`object`&&!!e&&`then`in e}function tl(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===Qc&&`_payload`in e&&el(e._payload)}function nl(e){let t=il(e),n=R.forwardRef((e,n)=>{let{children:r,...i}=e;tl(r)&&typeof $c==`function`&&(r=$c(r._payload));let a=R.Children.toArray(r),o=a.find(ol);if(o){let e=o.props.children,r=a.map(t=>t===o?R.Children.count(e)>1?R.Children.only(null):R.isValidElement(e)?e.props.children:null:t);return(0,z.jsx)(t,{...i,ref:n,children:R.isValidElement(e)?R.cloneElement(e,void 0,r):null})}return(0,z.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var rl=nl(`Slot`);function il(e){let t=R.forwardRef((e,t)=>{let{children:n,...r}=e;if(tl(n)&&typeof $c==`function`&&(n=$c(n._payload)),R.isValidElement(n)){let e=cl(n),i=sl(r,n.props);return n.type!==R.Fragment&&(i.ref=t?Ue(t,e):e),R.cloneElement(n,i)}return R.Children.count(n)>1?R.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var al=Symbol(`radix.slottable`);function ol(e){return R.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===al}function sl(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function cl(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ll=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,ul=He,dl=(e,t)=>n=>{if(t?.variants==null)return ul(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=ll(t)||ll(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>
33{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return ul(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},fl=dl(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground shadow hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90`,outline:`border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2`,sm:`h-8 rounded-md px-3 text-xs`,lg:`h-10 rounded-md px-8`,icon:`h-9 w-9`}},defaultVariants:{variant:`default`,size:`default`}}),pl=R.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},a)=>(0,z.jsx)(r?rl:`button`,{className:We(fl({variant:t,size:n,className:e})),ref:a,...i}));pl.displayName=`Button`;var ml={"/research/geo-reckoning/":`The GEO Reckoning: How AI Rewrote Brand Discovery`,"/research/israeli-tech-florida/":`Israeli Tech in Florida`,"/research/israeli-tech-georgia-2026/":`Israeli Tech in Georgia 2026`,"/research/nfl-citation-share-index-2026/":`The NFL Citation Share Index 2026`,"/research/podcast-citation-effect/ai-infrastructure/":`The Podcast Citation Effect: AI Infrastructure`,"/research/podcast-citation-effect/b2b-citation-layer/":`The B2B Citation Layer: The Podcast Citation Effect`,"/research/podcast-citation-effect/crypto/":`The Podcast Citation Effect: Crypto`,"/research/podcast-citation-effect/cybersecurity/":`The Podcast Citation Effect: Cybersecurity`,"/research/podcast-citation-effect/defense-tech/":`The Podcast Citation Effect: Defense Tech`,"/research/podcast-citation-effect/energy/":`The Podcast Citation Effect: Energy`,"/research/podcast-citation-effect/entertainment/":`The Podcast Citation Effect: Entertainment`,"/research/podcast-citation-effect/fintech/":`The Podcast Citation Effect: Fintech`,"/research/podcast-citation-effect/healthcare/":`The Podcast Citation Effect: Healthcare`,"/research/podcast-citation-effect/real-estate/":`The Podcast Citation Effect: Real Estate`,"/research/podcast-citation-effect/saas/":`The Podcast Citation Effect: SaaS`,"/research/podcast-citation-effect/venture-capital/":`The Podcast Citation Effect: Venture Capital`,"/research/podcast-citation-effect/wellness/":`The Podcast Citation Effect: Wellness`,"/about5wpr/prcareers/account-director-beauty-9ff3a1/":`Account Director, Beauty - Miami, FL`,"/about5wpr/prcareers/account-director-beauty-c38cd3/":`Account Director, Beauty - Tampa, FL`,"/about5wpr/management/amanda-garland.cfm":`Amanda Garland, EVP, Technology`,"/about5wpr/management/ashley-barton.cfm":`Ashley Barton - 5WPR Senior Leadership`,"/about5wpr/management/erica-kirwin.cfm":`Erica Kirwin - 5WPR Senior Leadership`,"/about5wpr/management/ilisa-wirgin.cfm":`Ilisa Wirgin - 5WPR Senior Leadership`,"/about5wpr/management/lauren-mcguire.cfm":`Lauren McGuire - 5WPR Senior Leadership`,"/about5wpr/management/leigh-ann-ambrosi.cfm":`Leigh Ann Ambrosi, Managing Partner & EVP, Consumer`,"/about5wpr/management/robert-ford.cfm":`Robert Ford - 5WPR Senior Leadership`,"/about5wpr/management/robyn-ungar.cfm":`Robyn Ungar - 5WPR Senior Leadership`,"/about5wpr/management/ronn-torossian.cfm":`Ronn Torossian, Founder & Chairman`,"/practice/vizio.cfm":`VIZIO: Building Mainstream Brand Awareness`,"/practice/vizio-case-study.cfm":`VIZIO Sound Bar Influencer Campaign`};function hl(e){let t=(e||`/`).split(`?`)[0].split(`#`)[0],n=t.toLowerCase();
33return[t,n,n.endsWith(`/`)?n:`${n}/`,n.replace(/\/+$/,``)||`/`]}function gl(e,t){if(!e)return t;let n=Object.fromEntries(Object.entries(ml).map(([e,t])=>[e.toLowerCase(),t]));for(let t of hl(e)){let e=n[t.toLowerCase()];if(e)return e}return t}function _l(e){return gl(l({select:e=>e.location.pathname}),e)}var vl=`https://api.5wpr.com/storage/v1/object/public/media/migrated`;function yl(e){return e&&e.replace(/\b(src|href|srcset)=(["'])(\/(?:imagesWebp|imagesSrc|images)\/[^"']*)\2/gi,(e,t,n,r)=>`${t}=${n}${vl}${r}${n}`)}function bl(e){return e.replace(/<[^>]*>/g,` `).replace(/&amp;/gi,`&`).replace(/&nbsp;/gi,` `).replace(/&#39;|&rsquo;|&lsquo;/gi,`'`).replace(/&quot;|&ldquo;|&rdquo;/gi,`"`).toLowerCase().replace(/[^a-z0-9]+/g,` `).trim()}function xl(e,t){if(!e||!t)return!1;if(e===t)return!0;let[n,r]=e.length<=t.length?[e,t]:[t,e];return r.startsWith(n)&&r.length-n.length<=8}function Sl(e,t){if(!e)return``;let n=(Array.isArray(t)?t:[t]).map(e=>bl(e??``)).filter(Boolean);return e.replace(/<h1(\s[^>]*)?>([\s\S]*?)<\/h1>/gi,(e,t,r)=>{let i=bl(r);return n.some(e=>xl(e,i))?``:`<h2${t??``}>${r}</h2>`})}var Cl=k({queryKey:[`practice_pages`,`case_study`],queryFn:()=>Jc({data:{pageType:`case_study`}}),staleTime:5*6e4});function wl({children:e,as:t=`div`,className:n=``}){return(0,z.jsx)(t,{className:n,children:e})}function Tl(e){return e.replace(/<script\b[^>]*\btype\s*=\s*["']application\/ld\+json["'][^>]*>[\s\S]*?<\/script>/gi,``)}function El(e,t){return e&&Ol(Ye(Sl(Dl(Tl(yl(e).replace(/(<img\b[^>]*\bsrc=)(["'])http:\/\//gi,`$1$2https://`))),t)))}function Dl(e){if(!/container-titles/.test(e))return e;let t=/<div\b[^>]*class="[^"]*container-titles[^"]*"[^>]*>/i.exec(e);if(!t)return e;let n=t.index,r=n+t[0].length,i=/<\/?div\b[^>]*>/gi;i.lastIndex=r;let a=1,o;for(;o=i.exec(e);)if(a+=o[0].startsWith(`</`)?-1:1,a===0)return e.slice(0,n)+e.slice(i.lastIndex);return e}function Ol(e){if(!e)return e;let t=/(?:<p[^>]*>\s*)?<img\b[^>]*>(?:\s*<\/p>)?/gi;return e.replace(/((?:(?:<p[^>]*>\s*)?<img\b[^>]*>(?:\s*<\/p>)?\s*){2,})/gi,e=>{let n=e.match(t)||[];return n.length<2?e:`<div class="case-img-grid">${n.map(e=>{let t=e.match(/<img\b[^>]*>/i);return`<div class="case-img-cell">${t?t[0]:e}</div>`}).join(``)}</div>`})}function kl({page:e,heroImage:t}){let n=(0,R.useMemo)(()=>[e.title,e.client_name],[e.title,e.client_name]),r=(0,R.useMemo)(()=>El(e.body_html??``,n),[e.body_html,n]),i=(0,R.useMemo)(()=>El(e.results_html??``,n),[e.results_html,n]),a=(0,R.useMemo)(()=>El(e.hero_html??``,n),[e.hero_html,n]),o=(0,R.useMemo)(()=>{if(t?.url)return t.url;let n=e.og_image;if(n&&/^https?:\/\//i.test(n))return n;let r=(e.body_html??``).match(/<img\b[^>]*\bsrc=["']([^"']+)["']/i);if(r){let e=r[1];return e.startsWith(`//`)?e=`https:`+e:e.startsWith(`/`)&&(e=`https://www.5wpr.com`+e),e}return null},[t?.url,e.og_image,e.body_html]),{data:s}=be(Cl),l=(0,R.useMemo)(()=>{let t=(s??[]).filter(t=>t.slug!==e.slug),n=e.industry?t.filter(t=>(t.industry??``)===e.industry):[],r=t.filter(e=>!n.includes(e));return[...n,...r].slice(0,6)},[s,e.slug,e.industry]),u=(e.industry??``).split(/[|/]/).map(e=>e.trim()).filter(Boolean),d=e=>{if(!e)return e;let t=new Set([`a`,`an`,`and`,`as`,`at`,`but`,`by`,`for`,`in`,`of`,`on`,`or`,`the`,`to`,`vs`,`with`,`from`,`into`,`over`]),n={"5w":`5W`,"5wpr":`5WPR`,ceo:`CEO`,cfo:`CFO`,coo:`COO`,cmo:`CMO`,cto:`CTO`,cio:`CIO`,ai:`AI`,pr:`PR`,us:`US`,usa:`USA`,uk:`UK`,eu:`EU`,nyc:`NYC`,la:`LA`,sf:`SF`,ux:`UX`,ui:`UI`,seo:`SEO`,geo:`GEO`,saas:`SaaS`,ipo:`IPO`,spac:`SPAC`,hr:`HR`},r=e.trim().split(/(\s+)/);return r.map((e,i)=>{if(/^\s+$/.test(e))return e;let a=(e.match(/^[^A-Za-z0-9]+/)??[``])[0],o=a.length===e.length?``:(e.match(/[^A-Za-z0-9]+$/)??[``])[0],s=e.slice(a.length,e.length-o.length);if(!s||/[a-z].*[A-Z]/.test(s))return e;let c=s.toLowerCase(),l=c.replace(/[^a-z0-9]/gi,``),u;return u=n[l]?n[l]:!(i===0||i===r.length-1)&&t.has(l)?c:c.replace(/([a-z])/,e=>e.toUpperCase()),a+u+o}).join(``)},f=_l(d(e.title)),p=e.client_name?d(e.client_name):e.client_name;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`style`,{children:`
34        .case-article { font-size: 1.125rem; line-height: 1.8; color: #1a1a1a; }
35        .case-article > * + * { margin-top: 1.25em; }
36        .case-article p { color: #2a2a2a; }
37        .case-article h2 { font-family: var(--font-display, inherit); font-weight: 800; font-size: 2rem; line-height: 1.15; letter-spacing: -0.02em; margin-top: 2em; margin-bottom: .6em; color: #13102C; }
38        .case-article h3 { font-family: var(--font-display, inherit); font-weight: 700; font-size: 1.5rem; line-height: 1.3; margin-top: 1.6em; margin-bottom: .5em; color: #13102C; }
39        .case-article h4 { font-weight: 700; font-size: 1.125rem; margin-top: 1.4em; margin-bottom: .4em; color: #13102C; }
40        .case-article a { color: #5a4dc9; text-decoration: underline; text-underline-offset: 3px; }
41        .case-article a:hover { color: #13102C; }
42        .case-article ul, .case-article ol { padding-left: 1.4em; }
43        .case-article ul { list-style: disc; }
44        .case-article ol { list-style: decimal; }
45        .case-article li { margin: .35em 0; }
46        .case-article li::marker { color: #5a4dc9; }
47        .case-article blockquote {
48          border-left: 3px solid #A7A5F4;
49          padding: 1em 1.25em;
50          background: #f7f6ff;
51          font-style: italic;
52          color: #2a2a2a;
53          border-radius: 0 8px 8px 0;
54        }
55        .case-article img { border-radius: 12px; margin: 1.75em auto; width: 100%; max-width: 720px; height: auto; display: block; }
56        .case-article .case-img-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 1.75em 0; }
57        @media (min-width: 768px) { .case-article .case-img-grid { grid-template-columns: 1fr 1fr; gap: 1.25rem; } }
58        .case-article .case-img-grid .case-img-cell { margin: 0; }
59        .case-article .case-img-grid img { margin: 0; width: 100%; max-width: none; height: 100%; object-fit: cover; }
60        /* Legacy Bootstrap grid rows in imported case-study HTML */
61        .case-article .row { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 1.75em 0; align-items: stretch; }
62        .case-article .row > [class*="col-md-"] { flex: 1 1 100%; min-width: 0; }
63        .case-article .row > [class*="col-md-"]:empty { display: none; }
64        .case-article .row img { margin: 0; height: 100%; width: 100%; max-width: none; object-fit: cover; border-radius: 12px; }
65        @media (min-width: 768px) {
66          .case-article .row > .col-md-4 { flex: 1 1 calc(33.333% - 0.834rem); }
67          .case-article .row > .col-md-6 { flex: 1 1 calc(50% - 0.625rem); }
68          .case-article .row > .col-md-8 { flex: 1 1 calc(66.666% - 0.417rem); }
69          .case-article .row > .col-md-9 { flex: 1 1 calc(75% - 0.313rem); }
70          .case-article .row > .col-md-12 { flex: 1 1 100%; }
71        }
72
73        .case-article hr { border: 0; border-top: 1px solid #e5e7eb; margin: 2.25em 0; }
74        .case-article strong { color: #13102C; font-weight: 700; }
75        /* Results stat cards (legacy .swiper.results / .results-item) */
76        .case-article .swiper.results { margin: 2.5em 0; }
77        .case-article .swiper.results .swiper-wrapper {
78          display: grid;
79          grid-template-columns: 1fr;
80          gap: 1rem;
81        }
82        @media (min-width: 640px) {
83          .case-article .swiper.results .swiper-wrapper { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
84        }
85        @media (min-width: 1024px) {
86          .case-article .swiper.results .swiper-wrapper { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
87        }
88        .case-article .swiper.results .swiper-slide { display: block; width: auto !important; }
89        .case-article .swiper.results .swiper-pagination { display: none; }
90        .case-article .results-item {
91          background: linear-gradient(180deg, #f7f6ff 0%, #ffffff 100%);
92          border: 1px solid #e5e3ff;
93          border-left: 4px solid #5a4dc9;
94          border-radius: 14px;
95          padding: 1.75rem 1.5rem;
96          text-align: left;
97          height: 100%;
98        }
99        .case-article .row > [class*="col-md-"]:has(.section-subtitle-casestudy) { flex: 1 1 100%; order: -1; }
100
101        .case-article .row:has(.section-subtitle-casestudy) { gap: 0; margin: 2.75em 0; flex-direction: column; }
102        .case-article .row:has(.section-subtitle-casestudy) > [class*="col-md-"] { flex: 1 1 100%; }
103        .case-article .section-subtitle-casestudy { display: block; margin: 0 0 1rem; padding-top: 1.25rem; border-top: 1px solid #e5e3ff; }
104        .case-article .section-subtitle-casestudy hr { display: none; }
105        .case-article .section-subtitle-casestudy h2 {
106          font-family: inherit;
107          font-size: 0.75rem;
108          font-weight: 700;
109          text-transform: uppercase;
110          letter-spacing: 0.2em;
111          color: #5a4dc9;
112          margin: 0 !important;
113        }
114        .case-article .casestudy-maincontent .about h2:not(.section-subtitle-casestudy h2) { margin-top: 0; }
115
116        .case-article .results-item > * { margin: 0 !important; }
117        .case-article .results-item p {
118          font-family: var(--font-display, inherit);
119          font-weight: 800;
120          font-size: clamp(2.5rem, 4vw, 3.5rem);
121          line-height: 1;
122          letter-spacing: -0.03em;
123          color: #13102C;
124          background: linear-gradient(135deg, #13102C 0%, #5a4dc9 100%);
125          -webkit-background-clip: text;
126          background-clip: text;
127          -webkit-text-fill-color: transparent;
128        }
129        .case-article .results-item h3 {
130          font-family: inherit;
131          font-size: 0.75rem;
132          font-weight: 700;
133          text-transform: uppercase;
134          letter-spacing: 0.2em;
135          color: #5a4dc9;
136          margin-top: 0.75rem !important;
137        }
138
139      `}),(0,z.jsx)(Ce,{}),(0,z.jsxs)(`main`,{className:`min-h-screen w-full bg-white text-[#1a1a1a] selection:bg-[#A7A5F4] 
139selection:text-[#13102C] overflow-x-hidden`,children:[(0,z.jsxs)(`div`,{className:`relative bg-[var(--color-navy)] text-white overflow-hidden`,children:[o&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 bg-cover bg-center opacity-40`,style:{backgroundImage:`url("${o}")`}}),(0,z.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 bg-gradient-to-r from-[var(--color-navy)] via-[var(--color-navy)]/85 to-[var(--color-navy)]/40`}),(0,z.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-x-0 bottom-0 h-40 bg-gradient-to-t from-[var(--color-navy)] to-transparent`})]}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto px-6 lg:px-12 pt-28 md:pt-32 pb-16 md:pb-20 relative`,children:[(0,z.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 opacity-[0.18]`,style:{backgroundImage:`radial-gradient(55% 55% at 82% 18%, var(--color-periwinkle) 0%, transparent 60%), radial-gradient(45% 45% at 8% 92%, #ffffff 0%, transparent 60%)`}}),(0,z.jsx)(wl,{children:(0,z.jsxs)(`nav`,{className:`relative flex items-center gap-3 mb-8 text-[11px] uppercase tracking-[0.2em] text-[#A7A5F4] font-bold`,children:[(0,z.jsx)(c,{to:`/clients/`,className:`hover:text-white transition-colors`,children:`Clients`}),(0,z.jsx)(`span`,{className:`w-6 h-px bg-white/20`}),(0,z.jsx)(c,{to:`/practice/case-study.cfm`,className:`hover:text-white transition-colors`,children:`Case Studies`}),(0,z.jsx)(`span`,{className:`w-6 h-px bg-white/20`}),(0,z.jsx)(`span`,{className:`text-white/50 normal-case tracking-normal text-xs font-medium`,children:p||f})]})}),(0,z.jsxs)(`div`,{className:`relative grid lg:grid-cols-12 gap-12 items-start`,children:[(0,z.jsxs)(`div`,{className:`lg:col-span-8`,children:[(0,z.jsx)(wl,{delay:60,children:(0,z.jsxs)(`p`,{className:`mono-label text-[var(--color-periwinkle)]`,children:[`Case Study `,p?`· ${p}`:``]})}),(0,z.jsx)(wl,{delay:120,children:(0,z.jsx)(`h1`,{className:`mt-5 font-display font-extrabold tracking-[-0.03em] leading-[0.95] text-white`,style:{fontSize:`clamp(36px, ${f.length>60?4.5:f.length>40?5.5:7}vw, ${f.length>60?56:f.length>40?72:90}px)`},children:f})}),u.length>0&&(0,z.jsx)(wl,{delay:200,children:(0,z.jsx)(`div`,{className:`mt-8 flex flex-wrap gap-2`,children:u.map(e=>(0,z.jsx)(`span`,{className:`rounded-full border border-[var(--color-periwinkle)]/40 bg-[var(--color-periwinkle)]/10 px-3 py-1 text-xs font-semibold text-[var(--color-periwinkle)]`,children:e},e))})}),e.subtitle&&(0,z.jsx)(wl,{delay:240,children:(0,z.jsx)(`p`,{className:`mt-8 max-w-2xl text-lg md:text-xl text-white/72 leading-relaxed font-light italic`,children:e.subt
139itle})}),(0,z.jsx)(wl,{delay:300,children:(0,z.jsxs)(`div`,{className:`mt-10 flex flex-wrap gap-4`,children:[(0,z.jsx)(`a`,{href:`#contact`,className:`px-8 py-4 bg-[#A7A5F4] text-[#13102C] font-bold uppercase tracking-wider text-xs hover:bg-white transition-all duration-300`,children:`Work with 5W`}),(0,z.jsx)(c,{to:`/clients/`,className:`px-8 py-4 border border-white/20 hover:bg-white/5 transition-all duration-300 uppercase tracking-wider text-xs font-bold`,children:`Back to Clients`})]})})]}),t&&(0,z.jsx)(`div`,{className:`lg:col-span-4 mt-4 lg:mt-0`,children:(0,z.jsx)(wl,{delay:180,children:(0,z.jsx)(`div`,{className:`overflow-hidden border border-white/10 bg-[#13102C]/40 backdrop-blur-sm`,children:(0,z.jsx)(`img`,{src:t.url,alt:t.alt??e.title,className:`w-full h-[280px] md:h-[340px] object-cover`,loading:`eager`})})})})]})]})]}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto px-6 lg:px-12`,children:[a&&(0,z.jsx)(`section`,{className:`py-12 border-b border-neutral-200`,children:(0,z.jsx)(`div`,{className:`max-w-3xl`,children:(0,z.jsx)(wl,{children:(0,z.jsx)(`div`,{className:`case-article`,dangerouslySetInnerHTML:{__html:a}})})})}),(0,z.jsxs)(`div`,{className:`grid lg:grid-cols-12 gap-12 lg:gap-16 py-16 md:py-20`,children:[(0,z.jsxs)(`div`,{className:`lg:col-span-8 order-1 space-y-14`,children:[(0,z.jsxs)(`section`,{children:[(0,z.jsxs)(wl,{children:[(0,z.jsx)(`p`,{className:`text-xs uppercase tracking-[0.3em] text-[#5a4dc9] font-bold mb-4`,children:`The Engagement`}),(0,z.jsxs)(`h2`,{className:`font-display text-3xl md:text-4xl font-bold mb-8 leading-tight tracking-tight text-[#13102C]`,children:[`What 5W did for `,p||f,`.`]})]}),(0,z.jsx)(wl,{delay:120,children:r?(0,z.jsx)(`div`,{className:`case-article max-w-none`,dangerouslySetInnerHTML:{__html:r}}):(0,z.jsxs)(`div`,{className:`rounded-2xl border border-neutral-200 bg-neutral-50 p-8 md:p-10`,children:[e.subtitle?(0,z.jsx)(`p`,{className:`font-display text-xl md:text-2xl font-semibold leading-snug text-[#13102C] mb-6`,children:e.subt
139itle}):(0,z.jsxs)(`p`,{className:`font-display text-xl md:text-2xl font-semibold leading-snug text-[#13102C] mb-6`,children:[`A senior 5W team led strategy, storytelling and earned coverage for `,p||f,` end-to-end.`]}),(0,z.jsx)(`p`,{className:`text-neutral-700 leading-relaxed mb-6`,children:`The full case study is being prepared. In the meantime, our team can walk you through the engagement — the brief, the program, and the outcomes — on a short intro call.`}),(0,z.jsxs)(`a`,{href:`#contact`,className:`inline-flex items-center gap-2 rounded-full bg-[#13102C] text-white px-6 py-3 text-sm font-semibold hover:bg-[#5a4dc9] transition`,children:[`Request the full case study`,(0,z.jsx)(`span`,{"aria-hidden":!0,children:`→`})]})]})})]}),i&&(0,z.jsx)(wl,{children:(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`p`,{className:`text-xs uppercase tracking-[0.3em] text-[#5a4dc9] font-bold mb-4`,children:`Outcomes`}),(0,z.jsx)(`h2`,{className:`font-display text-3xl md:text-4xl font-bold mb-8 leading-tight tracking-tight text-[#13102C]`,children:`Results that move the business.`}),(0,z.jsx)(`div`,{className:`case-article max-w-none`,dangerouslySetInnerHTML:{__html:i}})]})})]}),(0,z.jsx)(`aside`,{className:`lg:col-span-4 order-2`,children:(0,z.jsxs)(`div`,{className:`lg:sticky lg:top-28 space-y-8`,children:[(0,z.jsx)(wl,{children:(0,z.jsxs)(`div`,{className:`p-7 bg-neutral-50 border border-neutral-200 rounded-xl`,children:[(0,z.jsx)(`p`,{className:`text-[10px] uppercase tracking-[0.3em] text-[#5a4dc9] mb-4 font-bold`,children:`About the Engagement`}),(0,z.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[e.client_name&&(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-[10px] uppercase tracking-wider text-neutral-500 font-bold`,children:`Client`}),(0,z.jsx)(`dd`,{className:`font-display font-bold text-[#13102C]`,children:e.client_name})]}),e.industry&&(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-[10px] uppercase tracking-wider text-neutral-500 font-bold`,children:`Focus`}),(0,z.jsx)(`dd`,{className:`text-[#13102C]`,children:e.industry})]})]}),(0,z.jsx)(c,{to:`/clients/`,className:`mt-6 inline-block text-xs uppercase tracking-[0.25em] font-bold text-[#5a4dc9] hover:text-[#13102C] transition-colors`,children:`View all clients →`})]})}),(0,z.jsx)(wl,{delay:80,children:(0,z.jsxs)(`div`,{className:`p-7 bg-[#13102C] text-white rounded-xl`,children:[(0,z.jsx)(`p`,{className:`text-[10px] uppercase tracking-[0.3em] text-[#A7A5F4] mb-3 font-bold`,children:`Work with 5W`}),(0,z.jsx)(`h4`,{className:`font-display text-xl font-bold leading-snug mb-3`,children:`A senior team. Earned outcomes.`}),(0,z.jsx)(`p`,{className:`text-sm text-white/70 mb-5`,children:`Tell us about your brand, audience and goals.`}),(0,z.jsx)(`a`,{href:`#contact`,className:`inline-block px-5 py-3 bg-[#A7A5F4] text-[#13102C] font-bold uppercase tracking-wider text-xs hover:bg-white transition-colors`,children:`Request consultation →`})]})}),(0,z.jsx)(wl,{delay:140,children:(0,z.jsxs)(`div`,{className:`p-7 bg-neutral-50 border border-neutral-200 rounded-xl`,children:[(0,z.jsx)(`p`,{className:`text-[10px] uppercase tracking-[0.3em] text-[#5a4dc9] mb-5 font-bold`,children:`Connect with 5W`}),(0,z.jsx)(`div`,{className:`flex items-center gap-3`,children:[{Icon:_e,href:`https://www.linkedin.com/company/5w-public-relations/`,label:`LinkedIn`},{Icon:ds,href:`https://twitter.com/5wpr`,label:`Twitter`},{Icon:pe,href:`https://www.instagram.com/5wpr/`,label:`Instagram`},{Icon:xe,href:`https://www.facebook.com/5WPublicRelations`,label:`Facebook`},{Icon:fs,href:`https://www.youtube.com/@5wpr`,label:`YouTube`}].map(({Icon:e,href:t,label:n})=>(0,z.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener`,"aria-label":n,className:`grid h-10 w-10 place-items-center border border-neutral-300 text-neutral-600 hover:bg-[#13102C] hover:text-white hover:border-[#13102C] transition-all rounded`,children:(0,z.jsx)(e,{size:16})},n))})]})})]})})]})]}),l.length>0&&(0,z.jsx)(`div`,{className:`bg-[var(--color-navy)] text-white`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto px-6 lg:px-12 py-16 md:py-20`,children:[(0,z.jsx)(wl,{children:(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between items-start md:items-baseline mb-12 gap-6`,children:[(0,z.jsx)(`h2`,{className:`font-display text-3xl md:text-5xl font-extrabold tracking-tighter`,children:`More client stories`}),(0,z.jsxs)(c,{to:`/clients/`,className:`group flex items-center gap-4 text-xs font-bold uppercase tracking-[0.2em] border-b border-white/20 pb-2 hover:border-[#A7A5F4] transition-all`,children:[`All clients`,` `,(0,z.jsx)(`span`,{className:`text-[#A7A5F4] group-hover:translate-x-1 transition-transform`,children:`→`})]})]})}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-3 gap-6`,children:l.slice(0,6).map((e,t)=>(0,z.jsx)(wl,{delay:t*60,children:(0,z.jsx)(`a`,{href:Le(e.path),className:`group relative block overflow-hidden rounded-xl border border-white/10 bg-white/[0.04] hover:border-[#A7A5F4]/60 transition`,children:e.thumbnail_url?(0,z.jsxs)(`div`,{className:`relative aspect-[4/3] w-full overflow-hidden bg-[#13102C]`,children:[(0,z.jsx)(`img`,{src:e.thumbnail_url,alt:e.title,loading:`lazy`,className:`absolute inset-0 h-full w-full object-cover opacity-80 group-hover:opacity-100 group-hover:scale-105 transition duration-500`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-t from-[#13102C] via-[#13102C]/40 to-transparent`}),(0,z.jsx)(`div`,{className:`absolute top-4 left-4 z-10`,children:(0,z.jsx)(`p`,{className:`text-[10px] font-bold tracking-[0.3em] uppercase text-white/90`,children:`Case Study`})}),(0,z.jsxs)(`div`,{className:`absolute bottom-0 left-0 right-0 z-10 p-5`,children:[(0,z.jsx)(`h3`,{className:`font-display text-lg font-bold leading-tight text-white line-clamp-2`,children:e.title}
139),(e.client_name||e.industry)&&(0,z.jsx)(`p`,{className:`mt-1 text-xs text-white/70 line-clamp-1`,children:e.client_name||e.industry})]})]}):(0,z.jsxs)(`div`,{className:`p-6`,children:[(0,z.jsx)(`p`,{className:`text-[10px] font-bold tracking-[0.3em] uppercase text-[#A7A5F4] mb-3`,children:e.client_name||e.industry||`Case Study`}),(0,z.jsx)(`h3`,{className:`font-display text-lg font-bold leading-tight group-hover:text-[#A7A5F4] transition-colors line-clamp-3`,children:e.title})]})})},e.slug))})]})})]}),(0,z.jsx)(Ge,{}),(0,z.jsx)(Se,{})]})}var Al=k({queryKey:[`practice_pages`,`case_study`],queryFn:()=>Jc({data:{pageType:`case_study`}}),staleTime:5*6e4}),jl=[`Forbes`,`ADWEEK`,`Essence`,`AfroTech`,`E! News`,`Page Six`,`People`,`Footwear News`,`Black Enterprise`];function Ml(e){return e.replace(/<[^>]*>/g,` `).replace(/&amp;/gi,`&`).replace(/&ndash;|&#8211;/gi,`–`).replace(/&mdash;|&#8212;/gi,`—`).replace(/&nbsp;/gi,` `).replace(/\s+/g,` `).trim()}function Nl(e){let t=[],n=/<div\b[^>]*class=["'][^"']*\bresults-item\b[^"']*["'][^>]*>([\s\S]*?)<\/div>/gi,r;for(;(r=n.exec(e))!==null;){let e=r[1],n=Ml(e.match(/<p\b[^>]*>([\s\S]*?)<\/p>/i)?.[1]??``),i=Ml(e.match(/<h[34]\b[^>]*>([\s\S]*?)<\/h[34]>/i)?.[1]??``);n&&i&&t.push({value:n,label:i})}return t}function Pl(e){let t=[],n=/<img\b([^>]*)>/gi,r;for(;(r=n.exec(e))!==null;){let e=r[1].match(/\bsrc=["']([^"']+)["']/i)?.[1];if(!e)continue;let n=r[1].match(/\balt=["']([^"']*)["']/i)?.[1]??``;t.push({src:e,alt:n})}return t}function Fl(e,t){let n=RegExp(`<h2\\b[^>]*>\\s*${t}\\s*<\\/h2>`,`i`).exec(e);if(!n)return[];let r=e.slice(n.index+n[0].length),i=r.search(/<h2\b|<div\b[^>]*id=["']resultsSlider["']/i),a=i>=0?r.slice(0,i):r;return Array.from(a.matchAll(/<p\b[^>]*>([\s\S]*?)<\/p>/gi)).map(e=>Ml(e[1])).filter(Boolean)}function Il(e){let t=e.search(/For the conference and awards/i);return t<0?[e,``]:[e.slice(0,t).trim(),e.slice(t).trim()]}function Ll({page:e,heroImage:t}){let n=(0,R.useMemo)(()=>El(e.body_html??``,[e.title,e.client_name]),[e.body_html,e.title,e.client_name]),r=(0,R.useMemo)(()=>El(e.results_html??``,[e.title,e.client_name]),[e.results_html,e.title,e.client_name]),i=(0,R.useMemo)(()=>Pl(n),[n]),a=(0,R.useMemo)(()=>{let e=Nl(r);return e.length?e:Nl(n)},[n,r]),o=(0,R.useMemo)(()=>Fl(n,`Overview`)[0]??``,[n]),s=(0,R.useMemo)(()=>Fl(n,`Strategy`)[0]??``,[n]),l=(0,R.useMemo)(()=>Fl(n,`Results`),[n]),[u,d]=Il(s),f=e.client_name||e.title||`ADCOLOR`,p=t?.url||i[0]?.src,m=t?.alt||i[0]?.alt||f,h=a[0]??{value:`599.4M+`,label:`Media impressions`},g=a[1]??{value:`60+`,label:`Media outlets`},_=[h,g,{value:`16th`,label:`Annual Awards & Conference`},{value:`2005`,label:`ADCOLOR founded`}],v=`5W was tasked with generating coverage around the event and coordinating the on-site event and red-carpet operations.`,y=o.replace(v,``).trim()||o,{data:b}=Oe(Al),x=(0,R.useMemo)(()=>{let t=String(e.industry??``).toLowerCase(),r=`${t} ${n.toLowerCase()}`,i=new Set([/entertainment/.test(t)||/href=["'][^"']*lifestyleprentertainmentpragency/.test(r)?`entertainment`:null,/beauty/.test(r)?`beauty`:null,/health|wellness/.test(r)?`health-wellness`:null,/technology|\btech\b|saas|software|cybersecurity|fintech/.test(r)?`technology`:null,/travel|hospitality|hotel|resort/.test(r)?`travel-hospitality`:null,/food|beverage|restaurant/.test(r)?`food-beverage`:null,/fashion|apparel|accessories/.test(r)?`fashion`:null].filter(e=>!!e));return(b??[]).filter(t=>t.slug!==e.slug).map(e=>({item:e,relevance:e.topic_keys.filter(e=>i.has(e)).length})).filter(({relevance:e})=>e>0).sort((e,t)=>t.relevance-e.relevance||Date.parse(t.item.updated_at)-Date.parse(e.item.updated_at)).slice(0,3).map(({item:e})=>e)},[n,b,e.industry,e.slug]);return(0,z.jsxs)(`div`,{className:`adcolor-case-study bg-[var(--paper)] text-[var(--paper-ink)]`,children:[(0,z.jsx)(`style`,{children:`
140        .adcolor-case-study {
141          --case-dark: var(--color-navy);
142          --case-dark-soft: var(--color-navy-card);
143          --case-accent: var(--color-periwinkle);
144          --case-paper: var(--paper);
145          --case-paper-soft: var(--paper-lavender);
146          --case-ink: var(--paper-ink);
147          --case-copy: var(--paper-ink-soft);
148          --case-muted: var(--paper-ink-mute);
149          --case-rule: var(--paper-rule);
150        }
151        .adcolor-copy { color: var(--case-copy); font-size: 1.0625rem; line-height: 1.75; }
152        .adcolor-case-study a:focus-visible { outline: 2px solid var(--case-accent); outline-offset: 4px; }
153        .adcolor-related-image { transition: transform 500ms ease, opacity 300ms ease; }
154        .adcolor-related-link:hover .adcolor-related-image { transform: scale(1.035); opacity: 1; }
155        @media (prefers-reduced-motion: reduce) { .adcolor-related-image { transition: none; } }
156      `}),(0,z.jsx)(Ce,{}),(0,z.jsxs)(`main`,{children:[(0,z.jsx)(`section`,{className:`relative overflow-hidden bg-[var(--case-dark)] text-[var(--color-ink-1)]`,children:(0,z.jsxs)(`div`,{className:`container-x grid min-h-[680px] items-stretch pt-24 lg:grid-cols-2 lg:pt-20`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col justify-center py-16 pr-0 lg:py-24 lg:pr-16`,children:[(0,z.jsxs)(`nav`,{"aria-label":`Breadcrumb`,className:`mb-10 flex flex-wrap items-center gap-3 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--color-ink-4)]`,children:[(0,z.jsx)(c,{to:`/clients/`,className:`transition-colors hover:text-[var(--color-ink-1)]`,children:`Clients`}
156),(0,z.jsx)(`span`,{"aria-hidden":!0,className:`h-px w-6 bg-[var(--color-ink-4)]/40`}),(0,z.jsx)(c,{to:`/practice/case-study.cfm`,className:`transition-colors hover:text-[var(--color-ink-1)]`,children:`Case studies`}),(0,z.jsx)(`span`,{"aria-hidden":!0,className:`h-px w-6 bg-[var(--color-ink-4)]/40`}),(0,z.jsx)(`span`,{className:`normal-case tracking-normal`,children:f})]}),(0,z.jsx)(`p`,{className:`mono-label text-[var(--case-accent)]`,children:`Case study · Entertainment PR`}),(0,z.jsx)(`h1`,{className:`mt-5 font-display text-6xl font-semibold leading-[0.9] md:text-8xl lg:text-[7.5rem]`,children:f}),(0,z.jsxs)(`p`,{className:`mt-7 max-w-xl text-xl leading-relaxed text-[var(--color-ink-2)]`,children:[h.value,` `,h.label.toLowerCase(),` earned for `,f,`.`]}),(0,z.jsx)(`div`,{className:`mt-10`,children:(0,z.jsx)(pl,{asChild:!0,size:`lg`,className:`h-12 rounded-none px-6 text-xs font-semibold uppercase tracking-[0.14em]`,children:(0,z.jsxs)(`a`,{href:`#contact`,children:[`Work with 5W `,(0,z.jsx)(ls,{"aria-hidden":!0})]})})})]}),p?(0,z.jsxs)(`div`,{className:`relative -mx-[clamp(20px,4vw,40px)] min-h-[360px] lg:mx-0 lg:min-h-0`,children:[(0,z.jsx)(`img`,{src:p,alt:m,className:`absolute inset-0 h-full w-full object-cover`,loading:`eager`,fetchPriority:`high`}),(0,z.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-0 bg-gradient-to-r from-[var(--case-dark)]/70 via-transparent to-transparent lg:from-[var(--case-dark)]/35`})]}):null]})}),(0,z.jsx)(`section`,{id:`results`,className:`scroll-mt-24 border-b border-[var(--case-rule)] bg-[var(--case-paper)]`,children:(0,z.jsx)(`div`,{className:`container-x grid sm:grid-cols-2 lg:grid-cols-4`,children:_.map((e,t)=>(0,z.jsxs)(`div`,{className:`py-8 sm:px-8 lg:py-10 ${t>0?`border-t border-[var(--case-rule)] sm:border-t-0 sm:border-l`:``} ${t===2?`sm:border-t lg:border-t-0`:``}`,children:[(0,z.jsx)(`p`,{className:`font-display text-4xl font-semibold leading-none md:text-5xl ${t<2?`text-[var(--paper-periwinkle)]`:`text-[var(--case-ink)]`}`,children:e.value}),(0,z.jsx)(`p`,{className:`mt-3 text-sm text-[var(--case-muted)]`,children:e.label})]},e.label))})}),(0,z.jsx)(`section`,{className:`bg-[var(--case-paper)] py-20 md:py-28`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsxs)(`div`,{className:`grid gap-10 lg:grid-cols-[5fr_6fr] lg:gap-20`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--paper-periwinkle)]`,children:`Overview`}),(0,z.jsx)(`h2`,{className:`mt-5 max-w-2xl font-display text-3xl font-medium leading-tight md:text-4xl`,children:v})]}),(0,z.jsx)(`p`,{className:`adcolor-copy lg:pt-8`,children:y})]}),(0,z.jsx)(`div`,{className:`mt-14 grid h-auto gap-3 md:grid-cols-[2fr_1fr_1fr] md:h-[360px]`,children:[i[0],i[1],i[2]].filter(Boolean).map((e,t)=>(0,z.jsx)(`figure`,{className:`min-h-[240px] overflow-hidden rounded-md bg-[var(--case-paper-soft)] md:min-h-0`,children:(0,z.jsx)(`img`,{src:e?.src,alt:t===0?`${f} Awards & Conference`:e?.alt||`${f} event`,className:`h-full w-full object-cover`,loading:t===0?`eager`:`lazy`})},`${e?.src}-${t}`))})]})}),(0,z.jsx)(`section`,{className:`bg-[var(--case-paper-soft)] py-20 md:py-28`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--paper-periwinkle)]`,children:`Strategy`}),(0,z.jsx)(`h2`,{className:`mt-4 font-display text-4xl font-semibold md:text-5xl`,children:`How 5W ran the program`}),(0,z.jsx)(`div`,{className:`mt-10 grid gap-4 md:grid-cols-2`,children:[{title:`Before the event`,copy:u},{title:`At the event and after`,copy:d}].map((e,t)=>(0,z.jsxs)(`article`,{className:`rounded-md border border-[var(--case-rule)] bg-[var(--case-paper)] p-7 md:p-9`,children:[(0,z.jsx)(`span`,{className:`flex size-9 items-center justify-center rounded-md bg-[var(--case-accent)] font-semibold text-[var(--case-dark)]`,children:t+1}),(0,z.jsx)(`h3`,{className:`mt-6 font-display text-2xl font-semibold`,children:e.title}),(0,z.jsx)(`p`,{className:`adcolor-copy mt-4`,children:e.copy})]},e.title))})]})}),(0,z.jsx)(`section`,{className:`bg-[var(--case-accent)] py-24 text-[var(--case-dark)] md:py-32`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsx)(`p`,{className:`mono-label`,children:`Results`}),(0,z.jsxs)(`h2`,{className:`mt-6 max-w-6xl font-display text-5xl font-semibold leading-[0.98] md:text-7xl lg:text-8xl`,children:[(0,z.jsx)(`span`,{className:`text-[var(--color-ink-1)]`,children:h.value}),` impressions across `,(0,z.jsxs)(`span`,{className:`text-[var(--color-ink-1)]`,children:[g.value,` outlets.`]})]})]})}),(0,z.jsx)(`section`,{className:`bg-[var(--case-paper)] py-20 md:py-28`,children:(0,z.jsxs)(`div`,{className:`container-x grid gap-12 lg:grid-cols-[5fr_6fr] lg:gap-20`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--paper-periwinkle)]`,children:`Results`}),(0,z.jsx)(`div`,{className:`mt-5 space-y-5`,children:l.map((e,t)=>(0,z.jsx)(`p`,{className:`adcolor-copy`,children:e},t))}),(0,z.jsxs)(`p`,{className:`mt-6 text-sm text-[var(--case-muted)]`,children:[`Discover more about our`,` `,(0,z.jsx)(`a`,{href:`/practice/lifestyleprentertainmentpragency.cfm`,className:`font-semibold text-[var(--paper-periwinkle)] underline decoration-[var(--case-accent)] underline-offset-4`,children:`Entertainment PR`}),` `,`solutions.`]})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-2 border-l border-t border-[var(--case-rule)] sm:grid-cols-3`,children:jl.map(e=>(0,z.jsx)(`div`,{className:`flex min-h-24 items-center justify-center border-b border-r border-[var(--case-rule)] p-4 text-center font-display text-lg font-semibold md:min-
156h-28 md:text-xl`,children:e},e))})]})}),x.length>0?(0,z.jsx)(`section`,{className:`bg-[var(--case-dark)] py-20 text-[var(--color-ink-1)] md:py-24`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-end justify-between gap-6`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--case-accent)]`,children:`More client work`}),(0,z.jsxs)(`h2`,{className:`mt-4 font-display text-4xl font-semibold md:text-5xl`,children:[`Get results like `,f]})]}),(0,z.jsx)(pl,{asChild:!0,variant:`outline`,className:`border-[var(--color-ink-4)]/40 bg-transparent text-[var(--color-ink-1)] shadow-none hover:bg-[var(--case-dark-soft)] hover:text-[var(--color-ink-1)]`,children:(0,z.jsxs)(c,{to:`/clients/`,children:[`All clients `,(0,z.jsx)(ls,{"aria-hidden":!0})]})})]}),(0,z.jsx)(`div`,{className:`mt-10 grid gap-4 md:grid-cols-3`,children:x.map(e=>(0,z.jsxs)(`a`,{href:Le(e.path),className:`adcolor-related-link group relative min-h-[230px] overflow-hidden rounded-md border border-[var(--color-ink-4)]/20 bg-[var(--case-dark-soft)]`,children:[e.thumbnail_url?(0,z.jsx)(`img`,{src:e.thumbnail_url,alt:e.title,className:`adcolor-related-image absolute inset-0 h-full w-full object-cover opacity-75`,loading:`lazy`}):null,(0,z.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-0 bg-gradient-to-t from-[var(--case-dark)] via-[var(--case-dark)]/30 to-transparent`}),(0,z.jsxs)(`div`,{className:`absolute inset-x-0 bottom-0 p-6`,children:[(0,z.jsx)(`p`,{className:`text-xs uppercase tracking-[0.16em] text-[var(--case-accent)]`,children:`Case study`}),(0,z.jsx)(`h3`,{className:`mt-2 font-display text-xl font-semibold text-[var(--color-ink-1)]`,children:e.client_name||e.title})]})]},e.slug))})]})}):null]}),(0,z.jsx)(Ge,{pageKey:`case-study-draft-adcolor`,variant:`navy`}),(0,z.jsx)(Se,{})]})}var Rl=u(`/case-study-draft-adcolor`)({loader:async({context:e})=>{let[t]=await Promise.all([e.queryClient.ensureQueryData(Zc),e.queryClient.ensureQueryData(Al)]);if(!t)throw w()},head:()=>({meta:[{title:`DRAFT — ADCOLOR Case Study`},{name:`description`,content:`See how 5W helped ADCOLOR earn 599.4M+ media impressions across more than 60 outlets for its annual Awards & Conference.`},{property:`og:title`,content:`DRAFT — ADCOLOR Case Study`},{property:`og:description`,content:`See how 5W helped ADCOLOR earn 599.4M+ media impressions across more than 60 outlets for its annual Awards & Conference.`},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary_large_image`},{name:`robots`,content:`noindex,nofollow`}]}),component:s(()=>F(()=>import(`./case-study-draft-adcolor-BYbconjG.js`),__vite__mapDeps([28,1,19,5,6,7,8,9,10])),`component`),notFoundComponent:s(()=>F(()=>import(`./case-study-draft-adcolor-B4QTLG7n.js`),__vite__mapDeps([29,1])),`notFoundComponent`)}),zl=u(`/alt`)({head:()=>({meta:[{title:`5WPR — Fueling the Next Generation of Brands`},{name:`description`,content:`Alternative homepage concept for 5W Public Relations — modern PR built for the AI era.`}]}),component:s(()=>F(()=>import(`./alt-qm9hjWQf.js`),__vite__mapDeps([30,1,15,7,9,5,6,8,10])),`component`)}),Bl=S({method:`GET`}).handler(b(`672b08fc460b0237c9c30b816c4070c3d4b4a99e9b70bdce74027b647f246866`)),Vl=S({method:`GET`}).handler(b(`d550e77522fedec51f233cbdf8769309916642a5a887f3e62a67b995f3a90c4c`)),Hl=u(`/ai-citation-audit`)({loader:async()=>({bodyHtml:(await Bl({data:{path:`/ai-visibility/citation-source-audit/`}}))?.body_html??null}),head:()=>({meta:[{title:`AI Citation Audit | 5W AI Communications`},{name:`description`,content:`See which sources AI answers draw from and where your brand stands inside ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews. Talk to 5W.`},{property:`og:title`,content:`AI Citation Audit | 5W — The Communications Firm Built for the AI Era`},{property:`og:description`,content:`A measured map of your brand inside the AI answer — citation sources, competitive position, and the program to fix it.`},{property:`og:type`,content:`website`},{property:`og:url`,content:`https://www.5wpr.com/ai-citation-audit/`},{property:`og:site_name`,content:`5W Public Relations`},{name:`twitter:card`,content:`summary_large_image`},{name:`robots`,content:`index, follow`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/ai-citation-audit/`}]}),component:s(()=>F(()=>import(`./ai-citation-audit-L7YhnbP6.js`),__vite__mapDeps([31,1,5,6,7,8,9,10,13,14,15,16,17,32,2,0,27]
vendor: 13,429 bytes, line 156
156)),`component`)}),Ul=u(`/admin-set-password`)({component:s(()=>F(()=>import(`./admin-set-password-B2CN0Hzk.js`),__vite__mapDeps([33,1,34,35,9,15,7,36,8,37,38])),`component`),head:()=>({meta:[{title:`Set your password · 5WPR Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),V;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(V||={});var Wl;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Wl||={});var H=V.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),U=e=>{switch(typeof e){case`undefined`:return H.undefined;case`string`:return H.string;case`number`:return Number.isNaN(e)?H.nan:H.number;case`boolean`:return H.boolean;case`function`:return H.function;case`bigint`:return H.bigint;case`symbol`:return H.symbol;case`object`:return Array.isArray(e)?H.array:e===null?H.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?H.promise:typeof Map<`u`&&e instanceof Map?H.map:typeof Set<`u`&&e instanceof Set?H.set:typeof Date<`u`&&e instanceof Date?H.date:H.object;default:return H.unknown}},W=V.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),Gl=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,V.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};Gl.create=e=>new Gl(e);var Kl=(e,t)=>{let n;switch(e.code){case W.invalid_type:n=e.received===H.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case W.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,V.jsonStringifyReplacer)}`;break;case W.unrecognized_keys:n=`Unrecognized key(s) in object: ${V.joinValues(e.keys,`, `)}`;break;case W.invalid_union:n=`Invalid input`;break;case W.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${V.joinValues(e.options)}`;break;case W.invalid_enum_value:n=`Invalid enum value. Expected ${V.joinValues(e.options)}, received '${e.received}'`;break;case W.invalid_arguments:n=`Invalid function arguments`;break;case W.invalid_return_type:n=`Invalid function return type`;break;case W.invalid_date:n=`Invalid date`;break;case W.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:V.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case W.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case W.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case W.custom:n=`Invalid input`;break;case W.invalid_intersection_types:n=`Intersection results could not be merged`;break;case W.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case W.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,V.assertNever(e)}return{message:n}},ql=Kl;function Jl(){return ql}var Yl=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function G(e,t){let n=Jl(),r=Yl({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Kl?void 0:Kl].filter(e=>!!e)});e.common.issues.push(r)}var Xl=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return K;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return K;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},K=Object.freeze({status:`aborted`}),Zl=e=>({status:`dirty`,value:e}),Ql=e=>({status:`valid`,value:e}),$l=e=>e.status===`aborted`,eu=e=>e.status===`dirty`,tu=e=>e.status===`valid`,nu=e=>typeof Promise<`u`&&e instanceof Promise,q;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(q||={});var ru=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},iu=(e,t)=>{if(tu(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new Gl(e.common.issues);return this._error=t,this._error}}};function J(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var Y=class{get description(){return this._def.description}_getType(e){return U(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:U(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Xl,ctx:{common:e.parent.common,data:e.data,parsedType:U(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(nu(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:U(e)};return iu(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:U(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return tu(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>tu(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:U(e)},r=this._parse({data:e,path:n.path,parent:n});return iu(n,await(nu(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:W.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new od({schema:this,typeName:Z.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return sd.create(this,this._def)}nullable(){return cd.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Hu.create(this)}promise(){return ad.create(this,this._def)}or(e){return Gu.create([this,e],this._def)}and(e){return Ju.create(this,e,this._def)}transform(e){return new od({...J(this._def),schema:this,typeName:Z.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new ld({...J(this._def),innerType:this,defaultValue:t,typeName:Z.ZodDefault})}brand(){return new fd({typeName:Z.ZodBranded,type:this,...J(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new ud({...J(this._def),innerType:this,catchValue:t,typeName:Z.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return pd.create(this,e)}readonly(){return md.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},au=/^c[^\s-]{8,}
vendor: 39,578 bytes, line 156
156$/i,ou=/^[0-9a-z]+$/,su=/^[0-9A-HJKMNP-TV-Z]{26}$/i,cu=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,lu=/^[a-z0-9_-]{21}$/i,uu=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,du=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,fu=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,pu=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,mu,hu=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,gu=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,_u=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,vu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,yu=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,bu=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,xu=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Su=RegExp(`^${xu}$`);function Cu(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function wu(e){return RegExp(`^${Cu(e)}$`)}function Tu(e){let t=`${xu}T${Cu(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function Eu(e,t){return!!((t===`v4`||!t)&&hu.test(e)||(t===`v6`||!t)&&_u.test(e))}function Du(e,t){if(!uu.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function Ou(e,t){return!!((t===`v4`||!t)&&gu.test(e)||(t===`v6`||!t)&&vu.test(e))}var ku=class e extends Y{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==H.string){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.string,received:t.parsedType}),K}let t=new Xl,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),G(n,{code:W.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),G(n,{code:W.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?G(n,{code:W.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&G(n,{code:W.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)fu.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`email`,code:W.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)mu||=new RegExp(pu,`u`),mu.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`emoji`,code:W.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)cu.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`uuid`,code:W.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)lu.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`nanoid`,code:W.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)au.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`cuid`,code:W.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)ou.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`cuid2`,code:W.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)su.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`ulid`,code:W.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),G(n,{validation:`url`,code:W.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`regex`,code:W.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),G(n,{code:W.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),G(n,{code:W.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),G(n,{code:W.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Tu(r).test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{code:W.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Su.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{code:W.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?wu(r).test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{code:W.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?du.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`duration`,code:W.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?Eu(e.data,r.version)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`ip`,code:W.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?Du(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`jwt`,code:W.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?Ou(e.data,r.version)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`cidr`,code:W.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?yu.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`base64`,code:W.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?bu.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:`base64url`,code:W.invalid_string,message:r.message}),t.dirty()):V.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:W.invalid_string,...q.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...q.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...q.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...q.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...q.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...q.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...q.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...q.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...q.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...q.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...q.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...q.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...q.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...q.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...q.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...q.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...q.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...q.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...q.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...q.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...q.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...q.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...q.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...q.errToObj(t)})}nonempty(e){return this.min(1,q.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};ku.create=e=>new ku({checks:[],typeName:Z.ZodString,coerce:e?.coerce??!1,...J(e)});function Au(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var ju=class e extends Y{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==H.number){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.number,received:t.parsedType}),K}let t,n=new Xl;for(let r of this._def.checks)r.kind===`int`?V.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),G(t,{code:W.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),G(t,{code:W.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),G(t,{code:W.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?Au(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),G(t,{code:W.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),G(t,{code:W.not_finite,message:r.message}),n.dirty()):V.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,q.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,q.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,q.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,q.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:q.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:q.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:q.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:q.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:q.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:q.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:q.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:q.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:q.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:q.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&V.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};ju.create=e=>new ju({checks:[],typeName:Z.ZodNumber,coerce:e?.coerce||!1,...J(e)});var Mu=class e extends Y{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==H.bigint)return this._getInvalidInput(e);let t,n=new Xl;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),G(t,{code:W.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),G(t,{code:W.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),G(t,{code:W.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):V.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.bigint,received:t.parsedType}),K}gte(e,t){return this.setLimit(`min`,e,!0,q.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,q.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,q.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,q.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:q.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:q.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:q.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:q.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:q.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:q.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};Mu.create=e=>new Mu({checks:[],typeName:Z.ZodBigInt,coerce:e?.coerce??!1,...J(e)});var Nu=class extends Y{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==H.boolean){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.boolean,received:t.parsedType}),K}return Ql(e.data)}};Nu.create=e=>new Nu({typeName:Z.ZodBoolean,coerce:e?.coerce||!1,...J(e)});var Pu=class e extends Y{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==H.date){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.date,received:t.parsedType}),K}if(Number.isNaN(e.data.getTime()))return G(this._getOrReturnCtx(e),{code:W.invalid_date}),K;let t=new Xl,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),G(n,{code:W.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),G(n,{code:W.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):V.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:q.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:q.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};Pu.create=e=>new Pu({checks:[],coerce:e?.coerce||!1,typeName:Z.ZodDate,...J(e)});var Fu=class extends Y{_parse(e){if(this._getType(e)!==H.symbol){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.symbol,received:t.parsedType}),K}return Ql(e.data)}};Fu.create=e=>new Fu({typeName:Z.ZodSymbol,...J(e)});var Iu=class extends Y{_parse(e){if(this._getType(e)!==H.undefined){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.undefined,received:t.parsedType}),K}return Ql(e.data)}};Iu.create=e=>new Iu({typeName:Z.ZodUndefined,...J(e)});var Lu=class extends Y{_parse(e){if(this._getType(e)!==H.null){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.null,received:t.parsedType}),K}return Ql(e.data)}};Lu.create=e=>new Lu({typeName:Z.ZodNull,...J(e)});var Ru=class extends Y{constructor(){super(...arguments),this._any=!0}_parse(e){return Ql(e.data)}};Ru.create=e=>new Ru({typeName:Z.ZodAny,...J(e)});var zu=class extends Y{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ql(e.data)}};zu.create=e=>new zu({typeName:Z.ZodUnknown,...J(e)});var Bu=class extends Y{_parse(e){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.never,received:t.parsedType}),K}};Bu.create=e=>new Bu({typeName:Z.ZodNever,...J(e)});var Vu=class extends Y{_parse(e){if(this._getType(e)!==H.undefined){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.void,received:t.parsedType}),K}return Ql(e.data)}};Vu.create=e=>new Vu({typeName:Z.ZodVoid,...J(e)});var Hu=class e extends Y{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==H.array)return G(t,{code:W.invalid_type,expected:H.array,received:t.parsedType}),K;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(G(t,{code:e?W.too_big:W.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(G(t,{code:W.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(G(t,{code:W.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new ru(t,e,t.path,n)))).then(e=>Xl.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new ru(t,e,t.path,n)));return Xl.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:q.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:q.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:q.toString(n)}})}nonempty(e){return this.min(1,e)}};Hu.create=(e,t)=>new Hu({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Z.ZodArray,...J(t)});function Uu(e){if(e instanceof Wu){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=sd.create(Uu(r))}return new Wu({...e._def,shape:()=>t})}else if(e instanceof Hu)return new Hu({...e._def,type:Uu(e.element)});else if(e instanceof sd)return sd.create(Uu(e.unwrap()));else if(e instanceof cd)return cd.create(Uu(e.unwrap()));else if(e instanceof Yu)return Yu.create(e.items.map(e=>Uu(e)));else return e}var Wu=class e extends Y{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=V.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==H.object){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.object,received:t.parsedType}),K}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Bu&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new ru(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof Bu){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(G(n,{code:W.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new ru(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>Xl.mergeObjectSync(t,e)):Xl.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return q.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:q.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Z.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of V.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of V.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return Uu(this)}partial(t){let n={};for(let e of V.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of V.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof sd;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return nd(V.objectKeys(this.shape))}};Wu.create=(e,t)=>new Wu({shape:()=>e,unknownKeys:`strip`,catchall:Bu.create(),typeName:Z.ZodObject,...J(t)}),Wu.strictCreate=(e,t)=>new Wu({shape:()=>e,unknownKeys:`strict`,catchall:Bu.create(),typeName:Z.ZodObject,...J(t)}),Wu.lazycreate=(e,t)=>new Wu({shape:e,unknownKeys:`strip`,catchall:Bu.create(),typeName:Z.ZodObject,...J(t)});var Gu=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new Gl(e.ctx.common.issues));return G(t,{code:W.invalid_union,unionErrors:n}),K}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new Gl(e));return G(t,{code:W.invalid_union,unionErrors:i}),K}}get options(){return this._def.options}};Gu.create=(e,t)=>new Gu({options:e,typeName:Z.ZodUnion,...J(t)});var X=e=>e instanceof ed?X(e.schema):e instanceof od?X(e.innerType()):e instanceof td?[e.value]:e instanceof rd?e.options:e instanceof id?V.objectValues(e.enum):e instanceof ld?X(e._def.innerType):e instanceof Iu?[void 0]:e instanceof Lu?[null]:e instanceof sd?[void 0,...X(e.unwrap())]:e instanceof cd?[null,...X(e.unwrap())]:e instanceof fd||e instanceof md?X(e.unwrap()):e instanceof ud?X(e._def.innerType):[],Ku=class e extends Y{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==H.object)return G(t,{code:W.invalid_type,expected:H.object,received:t.parsedType}),K;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(G(t,{code:W.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),K)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=X(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:Z.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...J(r)})}};function qu(e,t){let n=U(e),r=U(t);if(e===t)return{valid:!0,data:e};if(n===H.object&&r===H.object){let n=V.objectKeys(t),r=V.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=qu(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===H.array&&r===H.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=qu(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===H.date&&r===H.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var Ju=class extends Y{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if($l(e)||$l(r))return K;let i=qu(e.value,r.value);return i.valid?((eu(e)||eu(r))&&t.dirty(),{status:t.value,value:i.data}):(G(n,{code:W.invalid_intersection_types}),K)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Ju.create=(e,t,n)=>new Ju({left:e,right:t,typeName:Z.ZodIntersection,...J(n)});var Yu=class e extends Y{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==H.array)return G(n,{code:W.invalid_type,expected:H.array,received:n.parsedType}),K;if(n.data.length<this._def.items.length)return G(n,{code:W.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),K;!this._def.rest&&n.data.length>this._def.items.length&&(G(n,{code:W.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new ru(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>Xl.mergeArray(t,e)):Xl.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Yu.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new Yu({items:e,typeName:Z.ZodTuple,rest:null,...J(t)})};var Xu=class e extends Y{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==H.object)return G(n,{code:W.invalid_type,expected:H.object,received:n.parsedType}),K;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new ru(n,e,n.path,e)),value:a._parse(new ru(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?Xl.mergeObjectAsync(t,r):Xl.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Y?new e({keyType:t,valueType:n,typeName:Z.ZodRecord,...J(r)}):new e({keyType:ku.create(),valueType:t,typeName:Z.ZodRecord,...J(n)})}},Zu=class extends Y{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==H.map)return G(n,{code:W.invalid_type,expected:H.map,received:n.parsedType}),K;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new ru(n,e,n.path,[a,`key`])),value:i._parse(new ru(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return K;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return K;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};Zu.create=(e,t,n)=>new Zu({valueType:t,keyType:e,typeName:Z.ZodMap,...J(n)});var Qu=class e extends Y{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==H.set)return G(n,{code:W.invalid_type,expected:H.set,received:n.parsedType}),K;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(G(n,{code:W.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(G(n,{code:W.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return K;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new ru(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:q.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:q.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Qu.create=(e,t)=>new Qu({valueType:e,minSize:null,maxSize:null,typeName:Z.ZodSet,...J(t)});var $u=class e extends Y{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==H.function)return G(t,{code:W.invalid_type,expected:H.function,received:t.parsedType}),K;function n(e,n){return Yl({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Jl(),Kl].filter(e=>!!e),issueData:{code:W.invalid_arguments,argumentsError:n}})}function r(e,n){return Yl({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Jl(),Kl].filter(e=>!!e),issueData:{code:W.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof ad){let e=this;return Ql(async function(...t){let o=new Gl([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return Ql(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new Gl([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new Gl([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Yu.create(t).rest(zu.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||Yu.create([]).rest(zu.create()),returns:n||zu.create(),typeName:Z.ZodFunction,...J(r)})}},ed=class extends Y{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};ed.create=(e,t)=>new ed({getter:e,typeName:Z.ZodLazy,...J(t)});var td=class extends Y{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return G(t,{received:t.data,code:W.invalid_literal,expected:this._def.value}),K}return{status:`valid`,value:e.data}}get value(){return this._def.value}};td.create=(e,t)=>new td({value:e,typeName:Z.ZodLiteral,...J(t)});function nd(e,t){return new rd({values:e,typeName:Z.ZodEnum,...J(t)})}var rd=class e extends Y{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return G(t,{expected:V.joinValues(n),received:t.parsedType,code:W.invalid_type}),K}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return G(t,{received:t.data,code:W.invalid_enum_value,options:n}),K}return Ql(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};rd.create=nd;var id=class extends Y{_parse(e){let t=V.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==H.string&&n.parsedType!==H.number){let e=V.objectValues(t);return G(n,{expected:V.joinValues(e),received:n.parsedType,code:W.invalid_type}),K}if(this._cache||=new Set(V.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=V.objectValues(t);return G(n,{received:n.data,code:W.invalid_enum_value,options:e}),K}return Ql(e.data)}get enum(){return this._def.values}};id.create=(e,t)=>new id({values:e,typeName:Z.ZodNativeEnum,...J(t)});var ad=class extends Y{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==H.promise&&t.common.async===!1?(G(t,{code:W.invalid_type,expected:H.promise,received:t.parsedType}),K):Ql((t.parsedType===H.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};ad.create=(e,t)=>new ad({type:e,typeName:Z.ZodPromise,...J(t)});var od=class extends Y{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Z.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{G(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return K;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?K:r.status===`dirty`||t.value===`dirty`?Zl(r.value):r});{if(t.value===`aborted`)return K;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?K:r.status===`dirty`||t.value===`dirty`?Zl(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?K:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?K:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!tu(e))return K;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>tu(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):K);V.assertNever(r)}};od.create=(e,t,n)=>new od({schema:e,typeName:Z.ZodEffects,effect:t,...J(n)}),od.createWithPreprocess=(e,t,n)=>new od({schema:t,effect:{type:`preprocess`,transform:e},typeName:Z.ZodEffects,...J(n)});var sd=class extends Y{_parse(e){return this._getType(e)===H.undefined?Ql(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};sd.create=(e,t)=>
156new sd({innerType:e,typeName:Z.ZodOptional,...J(t)});var cd=class extends Y{_parse(e){return this._getType(e)===H.null?Ql(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};cd.create=(e,t)=>new cd({innerType:e,typeName:Z.ZodNullable,...J(t)});var ld=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===H.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};ld.create=(e,t)=>new ld({innerType:e,typeName:Z.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...J(t)});var ud=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return nu(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new Gl(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new Gl(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};ud.create=(e,t)=>new ud({innerType:e,typeName:Z.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...J(t)});var dd=class extends Y{_parse(e){if(this._getType(e)!==H.nan){let t=this._getOrReturnCtx(e);return G(t,{code:W.invalid_type,expected:H.nan,received:t.parsedType}),K}return{status:`valid`,value:e.data}}};dd.create=e=>new dd({typeName:Z.ZodNaN,...J(e)});var fd=class extends Y{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},pd=class e extends Y{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?K:e.status===`dirty`?(t.dirty(),Zl(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?K:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:Z.ZodPipeline})}},md=class extends Y{_parse(e){let t=this._def.innerType._parse(e),n=e=>(tu(e)&&(e.value=Object.freeze(e.value)),e);return nu(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};md.create=(e,t)=>new md({innerType:e,typeName:Z.ZodReadonly,...J(t)});function hd(e,t){let n=typeof e==`function`?e(t):typeof e==`string`?{message:e}:e;return typeof n==`string`?{message:n}:n}function gd(e,t={},n){return e?Ru.create().superRefine((r,i)=>{let a=e(r);if(a instanceof Promise)return a.then(e=>{if(!e){let e=hd(t,r),a=e.fatal??n??!0;i.addIssue({code:`custom`,...e,fatal:a})}});if(!a){let e=hd(t,r),a=e.fatal??n??!0;i.addIssue({code:`custom`,...e,fatal:a})}}):Ru.create()}Wu.lazycreate;var Z;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(Z||={});var _d=ku.create,vd=ju.create;dd.create,Mu.create,Nu.create,Pu.create,Fu.create,Iu.create,Lu.create,Ru.create,zu.create,Bu.create,Vu.create,Hu.create;var yd=Wu.create;Wu.strictCreate,Gu.create,Ku.create,Ju.create,Yu.create,Xu.create,Zu.create,Qu.create,$u.create,ed.create,td.create,rd.create,id.create,ad.create,od.create,sd.create,cd.create,od.createWithPreprocess,pd.create;var Q=u(`/aadmin5wcommunication-login`)({validateSearch:yd({redirect:_d().optional()}),component:s(()=>F(()=>import(`./aadmin5wcommunication-login-BzinKPTG.js`),__vite__mapDeps([39,1,34,35,9,15,7,36,8,37,38])),`component`),head:()=>({meta:[{title:`Admin · 5WPR`},{name:`robots`,content:`noindex,nofollow`}]})}),bd=S({method:`GET`}).handler(b(`8d22878b75b28ed6bb835ccb87177ee56c6a2f9a643f226afbc74e01c3c19054`)),xd=e=>k({queryKey:[`page_resolve`,e],queryFn:()=>Vl({data:{path:e}}),staleTime:5*6e4}),Sd=e=>k({queryKey:[`live_report`,e],queryFn:()=>bd({data:{path:e}}),staleTime:60*6e4});function Cd(e){return e?.template===`report`?(e.body_html??``).trim().length<200:!1}
156var wd=e=>k({queryKey:[`research_page`,e],queryFn:()=>$e({data:{path:e}}),staleTime:5*6e4});function Td({children:e,as:t=`div`,className:n=``}){return(0,z.jsx)(t,{className:n,children:e})}function Ed(e){return e===`ai-visibility-index`?`AI Visibility Index`:`Research`}function Dd({path:e}){let{data:t}=Oe(wd(e));if(!t)return null;let{page:n,heroImage:r}=t,i=Ed(n.section);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Ce,{}),(0,z.jsxs)(`main`,{className:`bg-[var(--color-navy)] text-[var(--color-ink-1)] overflow-x-hidden`,children:[(0,z.jsxs)(`section`,{className:`relative`,children:[(0,z.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 opacity-[0.18]`,style:{backgroundImage:`radial-gradient(55% 55% at 82% 18%, var(--color-periwinkle) 0%, transparent 60%), radial-gradient(45% 45% at 8% 92%, #ffffff 0%, transparent 60%)`}}),(0,z.jsxs)(`div`,{className:`container-x relative pt-16 md:pt-24 pb-12`,children:[(0,z.jsx)(Td,{children:(0,z.jsxs)(`div`,{className:`flex items-center gap-3 mono-label text-[var(--color-periwinkle)]`,children:[(0,z.jsx)(`span`,{className:`inline-block h-px w-8 bg-[var(--color-periwinkle)]`}),i]})}),(0,z.jsx)(`div`,{className:`mt-8 grid lg:grid-cols-12 gap-12`,children:(0,z.jsxs)(`div`,{className:`lg:col-span-9`,children:[(0,z.jsx)(Td,{delay:120,children:(0,z.jsx)(`h1`,{className:`font-display font-black leading-[0.95] tracking-[-0.035em]`,style:{fontSize:`clamp(40px, 6.5vw, 96px)`},children:n.title})}),n.published_on&&(0,z.jsx)(Td,{delay:160,children:(0,z.jsxs)(`p`,{className:`mt-6 mono-label text-[var(--color-ink-3)]`,children:[`Published`,` `,new Date(`${n.published_on}T00:00:00`).toLocaleDateString(`en-US`,{year:`numeric`,month:`long`,day:`numeric`})]})}),n.summary&&(0,z.jsx)(Td,{delay:200,children:(0,z.jsx)(`p`,{className:`mt-8 max-w-3xl font-serif-i text-[var(--color-periwinkle)] text-xl md:text-2xl leading-snug`,children:n.summary})})]})})]}),r&&(0,z.jsx)(`div`,{className:`container-x pb-16`,children:(0,z.jsx)(Td,{delay:150,children:(0,z.jsxs)(`div`,{className:`relative rounded-3xl overflow-hidden border border-white/10`,children:[(0,z.jsx)(`img`,{src:r.url,alt:r.alt??n.title,className:`w-full h-[52vh] min-h-[360px] max-h-[640px] object-cover`,loading:`eager`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-t from-[var(--color-navy)] via-[rgba(19,16,44,0.25)] to-transparent`})]})})})]}),(0,z.jsx)(`section`,{id:`report`,className:`section-pad`,children:(0,z.jsxs)(`div`,{className:`container-x grid lg:grid-cols-12 gap-14`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-3`,children:(0,z.jsx)(`div`,{className:`sticky top-28`,children:(0,z.jsxs)(Td,{children:[(0,z.jsx)(`div`,{className:`mono-label text-[var(--color-periwinkle)]`,children:i}),(0,z.jsx)(`h2`,{className:`mt-4 font-display text-3xl font-black leading-tight text-[var(--color-ink-1)]`,children:`The report`}),(0,z.jsx)(`p`,{className:`mt-4 text-sm leading-relaxed text-[var(--color-ink-3)]`,children:`Original research from 5W's strategy and analytics teams.`}),(0,z.jsx)(`div`,{className:`mt-8 h-px w-12 bg-[var(--color-periwinkle)]`}
156),(0,z.jsx)(c,{to:`/research/`,className:`mt-8 inline-flex items-center gap-2 text-sm text-[var(--color-periwinkle)] hover:underline`,children:`← All research`})]})})}),(0,z.jsx)(`article`,{className:`lg:col-span-9`,children:(0,z.jsx)(Td,{delay:80,children:n.body_html?(0,z.jsx)(`div`,{className:`editorial`,dangerouslySetInnerHTML:{__html:Je(Xe(et(n.body_html)))}}):(0,z.jsx)(`p`,{className:`text-[var(--color-ink-3)]`,children:`No content available.`})})})]})}),(0,z.jsx)(Od,{slug:n.slug,sourcePath:n.path,defaultHeading:n.cta_heading||`Get the full report`})]}),(0,z.jsx)(Ge,{}),(0,z.jsx)(Se,{})]})}function Od({slug:e,sourcePath:t,defaultHeading:n}){let[r,i]=(0,R.useState)(``),[a,o]=(0,R.useState)(``),[s,c]=(0,R.useState)(``),[l,u]=(0,R.useState)(``),[d,f]=(0,R.useState)(`idle`),[p,m]=(0,R.useState)(null),[h,g]=(0,R.useState)(null);function _(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}let[v,y]=(0,R.useState)(null);async function b(n){if(n.preventDefault(),m(null),g(null),y(null),!r.trim()){y(`Please enter your name.`);return}if(!a.trim()||!_(a.trim())){g(`Please enter a valid work email.`);return}f(`submitting`);try{typeof window<`u`&&window.LovableCRM?.submit?(await window.LovableCRM.submit({email:a.trim(),name:r.trim(),source:e,form_name:`report_lead_capture:${e}`,form_id:e,source_path:t,company:s.trim()||void 0,message:l.trim()||void 0}),f(`success`)):(f(`error`),m(`Form service unavailable. Please try again.`))}catch(e){f(`error`),m(e instanceof Error?e.message:`Submission failed`)}}return(0,z.jsxs)(`section`,{className:`section-pad bg-[var(--color-lavender)] text-[var(--color-lavender-ink)] rounded-t-[40px]`,children:[(0,z.jsxs)(`div`,{className:`container-x grid lg:grid-cols-12 gap-14`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-5`,children:(0,z.jsxs)(Td,{children:[(0,z.jsx)(`p`,{className:`font-serif-i text-[#5750a0] mb-3`,children:`Request the data`}),(0,z.jsx)(`h2`,{className:`font-display font-black leading-[1.02] tracking-[-0.03em]`,style:{fontSize:`clamp(34px, 4.8vw, 60px)`,color:`#1a1640`},children:n}),(0,z.jsx)(`p`,{className:`mt-6 max-w-md text-[#3a3470]`,children:`Share a few details and we'll send the full report, methodology, and a brief from our analytics team.`})]})}),(0,z.jsx)(`div`,{className:`lg:col-span-7`,children:(0,z.jsx)(Td,{delay:120,children:d===`success`?(0,z.jsxs)(`div`,{className:`rounded-2xl border border-[#1a1640]/15 bg-white/70 p-8`,children:[(0,z.jsx)(`p`,{className:`mono-label text-[#5750a0]`,children:`Submitted`}),(0,z.jsx)(`h3`,{className:`mt-3 font-display text-3xl font-black text-[#1a1640]`,children:`Thanks — we'll be in touch.`}),(0,z.jsx)(`p`,{className:`mt-3 text-[#3a3470]`,children:`Check your inbox shortly. A member of our team will follow up with the full report.`})]}):(0,z.jsxs)(`form`,{onSubmit:b,className:`rounded-2xl border border-[#1a1640]/15 bg-white/70 p-6 md:p-8 space-y-5`,noValidate:!0,children:[(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-5`,children:[(0,z.jsx)(kd,{label:`Name *`,error:v,children:(0,z.jsx)(`input`,{type:`text`,required:!0,value:r,onChange:e=>i(e.target.value),maxLength:120,className:`lavender-input`,autoComplete:`name`})}),(0,z.jsx)(kd,{label:`Work email *`,error:h,children:(0,z.jsx)(`input`,{type:`email`,required:!0,value:a,onChange:e=>o(e.target.value),maxLength:200,className:`lavender-input`,autoComplete:`email`})})]}),(0,z.jsx)(kd,{label:`Company`,children:(0,z.jsx)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),maxLength:160,className:`lavender-input`,autoComplete:`organization`})}),(0,z.jsx)(kd,{label:`Message (optional)`,children:(0,z.jsx)(`textarea`,{value:l,onChange:e=>u(e.target.value),maxLength:1e3,rows:4,className:`lavender-input resize-y`})}),d===`error`&&p&&(0,z.jsxs)(`p`,{className:`text-sm text-red-700`,children:[`Something went wrong: `,p]}),(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-4 pt-1`,children:[(0,z.jsx)(`p`,{className:`text-xs text-[#3a3470]`,children:`By submitting, you agree to be contacted about this report.`}),(0,z.jsx)(`button`,{type:`submit`,disabled:d===`submitting`,className:`rounded-full bg-[#1a1640] text-white font-semibold px-6 py-3 hover:brightness-125 transition disabled:opacity-60`,children:d===`submitting`?`Sending…`:`Get the report →`})]})]})})})]}),(0,z.jsx)(`style`,{children:`
157        .lavender-input {
158          width: 100%;
159          background: white;
160          border: 1px solid rgba(26,22,64,0.18);
161          border-radius: 12px;
162          padding: 12px 14px;
163          color: #1a1640;
164          font-size: 15px;
165          outline: none;
166          transition: border-color .15s, box-shadow .15s;
167        }
168        .lavender-input:focus {
169          border-color: #5750a0;
170          box-shadow: 0 0 0 3px rgba(87,80,160,0.18);
171        }
172      `})]})}function kd({label:e,children:t,error:n}){return(0,z.jsxs)(`label`,{className:`block`,children:[(0,z.jsx)(`span`,{className:`mono-label text-[#5750a0] block mb-2`,children:e}),t,n&&(0,z.jsx)(`span`,{className:`mt-1 block text-xs text-red-700`,children:n})]})}function Ad(e){return e.replace(/<[^>]+>/g,` `).replace(/&nbsp;/g,` `).replace(/&amp;/g,`&`).replace(/&#8217;|&rsquo;/g,`’`).replace(/&quot;/g,`"`).replace(/&#39;/g,`'`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/\s+/g,` `).trim()}
172function jd(e,t){let n=e.match(t);return n?n[1]:null}function Md(e,t){let n=e.match(t);return n?{block:n[0],rest:e.replace(n[0],``)}:{block:null,rest:e}}function $(e){let t=[],n=/<div[^>]*class="[^"]*\bkpi\b[^"]*"[^>]*>([\s\S]*?)<\/div>\s*<\/div>/gi,r;for(;r=n.exec(e);){let e=r[1],n=Ad(jd(e,/<div[^>]*class="[^"]*kpi-label[^"]*"[^>]*>([\s\S]*?)<\/div>/i)??``),i=Ad(jd(e,/<div[^>]*class="[^"]*kpi-value[^"]*"[^>]*>([\s\S]*?)<\/div>/i)??``),a=Ad(jd(e,/<div[^>]*class="[^"]*kpi-note[^"]*"[^>]*>([\s\S]*?)<\/div>/i)??``);!i&&!n||t.push({value:i,label:a?`${n} — ${a}`:n})}return t}function Nd(e){let t=[],n=e.split(/<h3[^>]*>/i).slice(1);for(let e of n){let n=Ad(e.split(/<\/h3>/i)[0]??``),r=(e.split(/<\/h3>/i)[1]??``).trim();n&&r&&t.push({q:n,a:r})}return t}function Pd(e){return e.replace(/<(ol|ul)\b[^>]*>([\s\S]*?)<\/\1>/gi,(e,t,n)=>{let r=[...n.matchAll(/<li\b[^>]*>([\s\S]*?)<\/li>/gi)].map(e=>e[1]);if(r.length<2)return e;let i=r.map(e=>{let t=e.match(/<strong[^>]*>([\s\S]*?)<\/strong>/i);if(!t)return null;let n=Ad(t[1]),r=n.match(/[—–-]\s*(\d{1,3})(?:\.|$)/);if(!r)return null;let i=Number(r[1]);if(!Number.isFinite(i)||i>100)return null;let a=n.slice(0,r.index).replace(/[\s—–-]+$/,``).trim();return a?{name:a,value:i,note:e.replace(/<strong[^>]*>[\s\S]*?<\/strong>/i,``).trim()}:null});if(i.some(e=>e===null))return e;let a=i,o=Math.max(...a.map(e=>e.value),1);return`<div class="rep-scorecards">${a.map((e,t)=>{let n=Math.max(6,Math.round(e.value/o*100));return[`<div class="rep-scorecard">`,`<div class="rep-scorecard-rank">${t+1}</div>`,`<div class="rep-scorecard-main">`,`<div class="rep-scorecard-name">${e.name}</div>`,`<div class="rep-scorecard-track"><span style="width:${n}%"></span></div>`,e.note?`<div class="rep-scorecard-note">${e.note}</div>`:``,`</div>`,`<div class="rep-scorecard-score">${e.value}</div>`,`</div>`].join(``)}).join(``)}</div>`})}function Fd(e){return e?/class="rep-(kicker|lede|hook|kpis)"/i.test(e):!1}function Id(e,t){let n=e,r=Ad(jd(n,/<p[^>]*class="[^"]*rep-kicker[^"]*"[^>]*>([\s\S]*?)<\/p>/i)??``);({rest:n}=Md(n,/<p[^>]*class="[^"]*rep-kicker[^"]*"[^>]*>[\s\S]*?<\/p>/i));let i=Ad(jd(n,/<h1[^>]*>([\s\S]*?)<\/h1>/i)??``)||t.title;({rest:n}=Md(n,/<h1[^>]*>[\s\S]*?<\/h1>/i));let a=Ad(jd(n,/<p[^>]*class="[^"]*rep-lede[^"]*"[^>]*>([\s\S]*?)<\/p>/i)??``);({rest:n}=Md(n,/<p[^>]*class="[^"]*rep-lede[^"]*"[^>]*>[\s\S]*?<\/p>/i));let o=Md(n,/<section[^>]*class="[^"]*rep-hook[^"]*"[^>]*>[\s\S]*?<\/section>/i);n=o.rest;let s=o.block?[...o.block.matchAll(/<p[^>]*>([\s\S]*?)<\/p>/gi)].map(e=>e[1]):[],c=Ad(s[0]??``)||t.summary||``,l=s.slice(1).map(e=>`<p>${e}</p>`).join(`
173`),u=Md(n,/<section[^>]*class="[^"]*rep-kpis[^"]*"[^>]*>[\s\S]*?<\/section>/i);n=u.rest;let d=u.block?$(u.block):[],f=[],p,m,h=n.split(/<h2[^>]*>/i),g=[l,(h.shift()??``).trim()].filter(Boolean).join(`
174`).trim();g&&f.push({heading:``,html:Pd(g)});for(let e of h){let t=e.search(/<\/h2>/i);if(t===-1)continue;let n=Ad(e.slice(0,t)),r=Pd(e.slice(t+5).trim());if(!(!n&&!r)){if(/^(methodology|how the index (was )?(modeled|built)|notes on method)/i.test(n)){p=r;continue}if(/(faq|frequently asked|questions answered)/i.test(n)){let e=Nd(r);if(e.length){m=e;continue}}f.push({heading:n,html:r})}}return{eyebrow:r||`The 5W Reputation Index`,title:i,dek:c,published:a||t.published||``,hero_stats:d,sections:f,faq:m,methodology_html:p}}var Ld=S({method:`GET`}).handler(b(`0bed2a115680878d39aed14036168e7182ffa76a17d52b0e079d7aa80778eb62`)),Rd=k({queryKey:[`ai-visibility-reports`],queryFn:()=>Ld(),staleTime:300*1e3});function zd(e){let t=e.trim();return t.startsWith(`/`)||(t=`/`+t),t.endsWith(`/`)||(t+=`/`),t}var Bd=S({method:`GET`}).handler(b(`7392132b788bafcbd8f3d2f52d76853105fd3500f23fe10413412e74f3cd450c`)),Vd=e=>k({queryKey:[`ai-visibility-report`,zd(e)],queryFn:()=>Bd({data:{path:zd(e)}}),staleTime:600*1e3}),Hd=S({method:`GET`}).handler(b(`a037173b7777ac03570f5ac3c8092ae11e45dce3d899b78ec36b8fc75a3812a3`)),Ud=u(`/$`)({beforeLoad:async({location:e})=>{let{getRedirect:t}=await F(async()=>{let{getRedirect:e}=await import(`./redirects.functions-QKBlxdKq.js`);return{getRedirect:e}},__vite__mapDeps([40,6,7])),n=await t({data:{path:e.pathname}}).catch(()=>null);if(n?.to)throw C({href:n.to,statusCode:301})},loader:async({params:e,context:t})=>
174{let n=`/`+(e._splat??``).replace(/^\/+/,``),r=n.endsWith(`/`)?n:n+`/`,i=await t.queryClient.ensureQueryData(Vd(r));if(i)return await t.queryClient.ensureQueryData(Rd),{mode:`avi`,path:r,page:null,seo:{...Lc(i,{path:r,ogType:`article`}),description:i.meta_description||i.summary||i.og_description||null}};let a=await t.queryClient.ensureQueryData(wd(r)).catch(()=>null);if(a?.page?.report_structured&&a.page.report_status===`ok`){let e=a.page;return{mode:`research-structured`,path:r,page:e,seo:{...Lc(e,{path:r,ogType:`article`}),description:e.meta_description||e.summary||e.og_description||null}}}if(a?.page){let e=a.page,t={...Lc(e,{path:r,ogType:`article`}),description:e.meta_description||e.summary||e.og_description||null};return Fd(e.body_html)?{mode:`research-source-structured`,path:r,page:e,seo:t}:{mode:`research-html`,path:r,page:e,seo:t}}let o=await t.queryClient.ensureQueryData(xd(n));if(o.kind===`redirect`)throw C({href:o.to});if(o.kind!==`page`){let e=await t.queryClient.ensureQueryData({queryKey:[`root_slug_redirect`,n],queryFn:()=>Hd({data:{path:n}}),staleTime:3e5}).catch(()=>null);throw e?.to?C({href:e.to,statusCode:301}):w()}let s=o.page;return Cd(s)&&await t.queryClient.ensureQueryData(Sd(n)),{mode:`page`,path:n,page:s,seo:Lc(s,{path:n,ogType:`website`})}},head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(()=>F(()=>import(`./_-Bg-xjczX.js`),__vite__mapDeps([41,1,15,7,9,5,6,8,10,19,42,43,13,14,16,17,44,27,45,46,47,48,32,2,0,49,50])),`component`),errorComponent:s(()=>F(()=>import(`./_-BzquPWFm.js`),__vite__mapDeps([51,1,5,6,7,8,9,10])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./_-Drd85Lch.js`),__vite__mapDeps([52,1,15,7,9,5,6,8,10])),`notFoundComponent`)}),Wd=S({method:`GET`}).handler(b(`300d0367c868d019509751a99972096305abe1626ec63a309f94dbd5f4735909`)),Gd=S({method:`GET`}).handler(b(`05f3ad5524d174c2f82816d6ee128ffd86971978f58f7a900fe6be198538c616`));S({method:`GET`}).handler(b(`a56f4d1dc878d031ca018e98bc746a326fa0f62642e1f43ebc98814b00dc0346`));var Kd=S({method:`GET`}).handler(b(`e52db0cca892a02d6f7b82e0d68083d800bb2b11c226a428786b072c420a5f12`)),qd=S({method:`GET`}).handler(b(`680f6952a4486a503847c74b7212874b3ee1753b1f35919cfddbb9eef28e0164`)),Jd=S({method:`GET`}).handler(b(`71ecab36a3099c78d9c915a87601c1d3a0dbbb195f1528489ad98cde074076f3`)),Yd=S({method:`GET`}).handler(b(`8b1b36efae32e9cf24fa40dee602efb8b0e3a756009566aaeea1e2391e5835d0`)),Xd=k({queryKey:[`homepage-latest-blog`],queryFn:()=>Gd({data:{page:1}}),staleTime:5*6e4}),Zd=k({queryKey:[`homepage-latest-research`],queryFn:()=>Qe(),staleTime:5*6e4}),Qd={brand:{name:`5W`,full:`5W Public Relations`,tagline:`The Communications PR Firm Built for the AI Era.`,description:`5W blends earned media, generative search visibility, and AI audience intelligence to reach buyers wherever they search, scroll, or ask.`},nav:[{label:`About`,href:`#about`},{label:`Practice`,href:`#practice`},{label:`Services`,href:`#services`},{label:`Case Studies`,href:`#cases`},{label:`News`,href:`#news`},{label:`Contact`,href:`#contact`}],about:{eyebrow:`About 5W`,title:`Founded in 2003. Independent.`,body:`5W is one of the largest independent communications firms in the United States. We are a public relations firm reimagined for the AI era — combining earned media, generative engine optimization (GEO), and AI-driven audience intelligence to put brands in front of buyers wherever they search, scroll, or ask.`,body2:`We work with Fortune 500 companies, IPO candidates, challenger brands, and category creators including Zeta, Nokia, Vizio, and Webull.`},stack:{eyebrow:`Earned, Owned, Paid`,title:`The 5W Communications Stack`,body:`Three disciplines. One firm. Integrated by design. Earned media, crisis and reputation, executive visibility, content, social, influencer and creator programs, performance marketing, programmatic, affiliate, and media planning work together to connect communications to revenue.`,pillars:[{tag:`Earned`,title:`Media that moves markets`,items:[`Earned Media`,`Crisis & Reputation`,`Executive Visibility`]},{tag:`Owned`,title:`Stories you control`,items:[`Content Studio`,`Social`,`Influencer & Creator`]}
174,{tag:`Paid`,title:`Performance with purpose`,items:[`Performance Marketing`,`Programmatic`,`Affiliate & Media Planning`]}]},aiEra:{eyebrow:`AI-Era Practices`,title:`Built for What Brands Need Now`,body:`5W has built new practices for generative engine optimization, AI PR and digital marketing, predictive reputation management, litigation PR and legal tech, pre-IPO financial communications, HR tech and future of work, women's health, aging and longevity, and cybersecurity communications.`,cta:[{label:`Read the Trade Press AI Index`,href:`/research/trade-press-ai-index-2026/`},{label:`Read the Condé Nast AI Citation Portfolio`,href:`/research/conde-nast-ai-citation-portfolio-2026/`}]},practiceAreas:{title:`Practice Areas`,body:`Smart and resourceful, 5W is passionate, creative and dedicated to success. Founded in 2003, we have grown to become a top independent communications firm and continue to expand.`,href:`/practice/`,items:[`Consumer`,`Corporate`,`Technology`,`Healthcare`,`Finance`,`Lifestyle`,`Travel & Hospitality`,`Beauty & Fashion`,`Food & Beverage`]},services:{title:`Services`,body:`We weave engaging narratives, tell powerful stories and work tirelessly to shape them into perception. Headquartered in New York City, media capital of the world, we work with clients worldwide and on our doorstep. We create big ideas with strategic implementation to deliver game-changing communications results.`,href:`/services/`},cases:{title:`Results that moved revenue.`,href:`/practice/case-study.cfm`,items:[{name:`VIZIO`,blurb:`VIZIO is the #1 American-based TV brand and America's #1 Sound Bar Company.`,href:`/practice/vizio.cfm`},{name:`Webull`,blurb:`Webull is an easy-to-use, zero commission brokerage and market data platform for traders of all experience levels.`,href:`/practice/webull.cfm`},{name:`e.l.f. Beauty`,blurb:`5WPR boosted e.l.f. Beauty's executive presence and industry influence through strategic PR and digital marketing.`,href:`/practice/elf-beauty.cfm`},{name:`Foxwoods Resort Casino`,blurb:`Foxwoods Resort Casino celebrated its 30th anniversary with a variety of new programs.`,href:`/practice/foxwoods-resort
174-casino.cfm`},{name:`G-SHOCK`,blurb:`The iconic rugged watch brand tapped 5W to drive cultural relevance across sport, music and lifestyle press.`,href:`/practice/g-shock.cfm`}]},clients:[`Zeta`,`Nokia`,`Vizio`,`Webull`,`SMEG`,`Sparkling ICE`,`PopSocket`,`Lip Smackers`],awards:[`American Business Awards — Stevies Gold 2025`,`Clutch Fall 2025 Global Awards`,`Inc. Power Partner 2025`,`MarCom Awards Platinum 2025`,`Newsweek's America's Best PR Agencies 2025`,`O'Dwyer's PR Top 10 Firm 2025`,`PR Daily Awards 2025`,`PRovoke SABRE North America 2025`,`Ragan's 2025 Top Places to Work in Communications`,`Shorty Awards 2025`,`The PR Net 100 2025`],stats:[{value:`20+`,label:`Years independent`},{value:`500+`,label:`Active client programs`},{value:`NYC · Miami`,label:`Headquarters`},{value:`Top 10`,label:`U.S. PR firm`}]},$d={version:1,url:`https://api.5wpr.com/storage/v1/object/public/media/hero/hero-ai-visibility-v2.webp`,original_filename:`hero-ai-visibility-v2.webp`,content_type:`image/webp`},ef=`/storage/v1/object/public/`,tf=`/storage/v1/render/image/public/`;function nf(e){return typeof e==`string`&&e.includes(ef)}function rf(e,t,n=78){return nf(e)?`${e.replace(ef,tf)}?width=${t}&quality=${n}&resize=contain`:e}function af(e,t=[480,800,1200],n=78){if(nf(e))return t.map(t=>`${rf(e,t,n)} ${t}w`).join(`, `)}var of=u(`/`)({loader:({context:e})=>Promise.all([e.queryClient.ensureQueryData(Xd),e.queryClient.ensureQueryData(Zd)]),head:()=>({meta:[{title:`5W | The Communications Firm Built for the AI Era`},{name:`description`,content:Qd.brand.description},{property:`og:title`,content:Qd.brand.tagline},{property:`og:description`,content:Qd.brand.description},{property:`og:image`,content:`${gc}${hc}`},{property:`og:image:width`,content:`1200`},{property:`og:image:height`,content:`630`},{property:`og:type`,content:`website`},{property:`og:url`,content:`${gc}/`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:image`,content:`${gc}${hc}`}],links:[{rel:`canonical`,href:`${gc}/`},{rel:`preload`,as:`image`,href:rf($d.url,800),imageSrcSet:af($d.url,[480,800,1200]),imageSizes:`(max-width: 767px) 92vw, (max-width: 1023px) 46vw, 520px`,fetchPriority:`high`}]}),component:s(()=>F(()=>import(`./routes-owoboaBd.js`),__vite__mapDeps([53,1,5,6,7,8,9,10,19,13,14,15,16,17,27])),`component`)}),sf=k({queryKey:[`services_list`],queryFn:()=>Ws(),staleTime:5*6e4}),cf=u(`/services/`)({loader:({context:e})=>e.queryClient.ensureQueryData(sf),head:()=>({meta:[{title:`Public Relations Agency Services, 5W PR Firm in NYC - 5WPR`},{name:`description`,content:`5WPR services include public relations, integrated marketing, product integration, strategic planning, crisis communication and digital marketing.`},{property:`og:title`,content:`Public Relations Agency Services, 5W PR Firm in NYC - 5WPR`},{property:`og:description`,content:`5WPR services include public relations, integrated marketing, product integration, strategic planning, crisis communication and digital marketing.`},{property:`og:url`,content:`https://www.5wpr.com/services/`},{property:`og:type`,content:`website`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/services/`}]}),component:s(()=>F(()=>import(`./services.index-BJ9GxF1d.js`),__vite__mapDeps([54,1,5,6,7,8,9,10,19,13,14,15,16,17,27])),`component`),errorComponent:s(()=>F(()=>import(`./services.index-BLxOg-E3.js`),__vite__mapDeps([55,1])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./services.index-TvV98cRq.js`),__vite__mapDeps([56,1,5,6,7,8,9,10])),`notFoundComponent`)}),lf=k({queryKey:[`research_list`],queryFn:()=>Qe(),staleTime:5*6e4}),uf=u(`/research/`)({loader:({context:e})=>e.queryClient.ensureQueryData(lf),head:()=>({meta:[{title:`AI Communications Research & Reports — 5W`},{name:`description`,content:`Original 5W research on AI visibility, brand discovery, crisis communications, and category leadership. The data behind modern PR and AI-era marketing.`},{property:`og:title`,content:`AI Communications Research & Reports — 5W`},{property:`og:description`,content:`Original 5W research on AI visibility, brand discovery, crisis communications, and category leadership. The data behind modern PR and AI-era marketing.`},{property:`og:url`,content:`https://www.5wpr.com/research/`},{property:`og:type`,content:`website`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/research/`}]}),component:s(()=>F(()=>import(`./research.index-QyEK4PHY.js`),__vite__mapDeps([57,1,5,6,7,8,9,10,19,46,47,48,27])),`component`),errorComponent:s(()=>F(()=>import(`./research.index-DruVitaO.js`),__vite__mapDeps([58,1])),`errorComponent`),notFoundComponent:s(()=>F(()=>
174import(`./research.index-DX0qKl68.js`),__vite__mapDeps([59,1,5,6,7,8,9,10])),`notFoundComponent`)}),df=k({queryKey:[`featured_practice_areas`],queryFn:()=>Yc(),staleTime:5*6e4});function ff(e){return Object.prototype.toString.call(e)===`[object Object]`}function pf(e){return ff(e)||Array.isArray(e)}function mf(){return!!(typeof window<`u`&&window.document&&window.document.createElement)}function hf(e,t){let n=Object.keys(e),r=Object.keys(t);return n.length!==r.length||JSON.stringify(Object.keys(e.breakpoints||{}))!==JSON.stringify(Object.keys(t.breakpoints||{}))?!1:n.every(n=>{let r=e[n],i=t[n];return typeof r==`function`?`${r}`==`${i}`:!pf(r)||!pf(i)?r===i:hf(r,i)})}function gf(e){return e.concat().sort((e,t)=>e.name>t.name?1:-1).map(e=>e.options)}function _f(e,t){if(e.length!==t.length)return!1;let n=gf(e),r=gf(t);return n.every((e,t)=>{let n=r[t];return hf(e,n)})}function vf(e){return typeof e==`number`}function yf(e){return typeof e==`string`}function bf(e){return typeof e==`boolean`}function xf(e){return Object.prototype.toString.call(e)===`[object Object]`}function Sf(e){return Math.abs(e)}function Cf(e){return Math.sign(e)}function wf(e,t){return Sf(e-t)}function Tf(e,t){return e===0||t===0||Sf(e)<=Sf(t)?0:Sf(wf(Sf(e),Sf(t))/e)}function Ef(e){return Math.round(e*100)/100}function Df(e){return Mf(e).map(Number)}function Of(e){return e[kf(e)]}function kf(e){return Math.max(0,e.length-1)}function Af(e,t){return t===kf(e)}function jf(e,t=0){return Array.from(Array(e),(e,n)=>t+n)}function Mf(e){return Object.keys(e)}function Nf(e,t){return[e,t].reduce((e,t)=>(Mf(t).forEach(n=>{let r=e[n],i=t[n];e[n]=xf(r)&&xf(i)?Nf(r,i):i}),e),{})}function Pf(e,t){return t.MouseEvent!==void 0&&e instanceof t.MouseEvent}function Ff(e,t){let n={start:r,center:i,end:a};function r(){return 0}function i(e){return a(e)/2}function a(e){return t-e}function o(r,i){return yf(e)?n[e](r):e(t,r,i)}return{measure:o}}function If(){let e=[];function t(t,n,i,a={passive:!0}){let o;if(`addEventListener`in t)t.addEventListener(n,i,a),o=()=>t.removeEventListener(n,i,a);else{let e=t;e.addListener(i),o=()=>e.removeListener(i)}return e.push(o),r}function n(){e=e.filter(e=>e())}let r={add:t,clear:n};return r}function Lf(e,t,n,r){let i=If(),a=1e3/60,o=null,s=0,c=0;function l(){i.add(e,`visibilitychange`,()=>{e.hidden&&m()})}function u(){p(),i.clear()}function d(e){if(!c)return;o||(o=e,n(),n());let i=e-o;for(o=e,s+=i;s>=a;)n(),s-=a;r(s/a),c&&=t.requestAnimationFrame(d)}function f(){c||=t.requestAnimationFrame(d)}function p(){t.cancelAnimationFrame(c),o=null,s=0,c=0}function m(){o=null,s=0}return{init:l,destroy:u,start:f,stop:p,update:n,render:r}}function Rf(e,t){let n=t===`rtl`,r=e===`y`,i=r?`y`:`x`,a=r?`x`:`y`,o=!r&&n?-1:1,s=u(),c=d();function l(e){let{height:t,width:n}=e;return r?t:n}function u(){return r?`top`:n?`right`:`left`}function d(){return r?`bottom`:n?`left`:`right`}function f(e){return e*o}return{scroll:i,cross:a,startEdge:s,endEdge:c,measureSize:l,direction:f}}function zf(e=0,t=0){let n=Sf(e-t);function r(t){return t<e}function i(e){return e>t}function a(e){return r(e)||i(e)}function o(n){return a(n)?r(n)?e:t:n}function s(e){return n?e-n*Math.ceil((e-t)/n):e}return{length:n,max:t,min:e,constrain:o,reachedAny:a,reachedMax:i,reachedMin:r,removeOffset:s}}function Bf(e,t,n){let{constrain:r}=zf(0,e),i=e+1,a=o(t);function o(e){return n?Sf((i+e)%i):r(e)}function s(){return a}function c(e){return a=o(e),d}function l(e){return u().set(s()+e)}function u(){return Bf(e,s(),n)}let d={get:s,set:c,add:l,clone:u};return d}function Vf(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){let{cross:y,direction:b}=e,x=[`INPUT`,`SELECT`,`TEXTAREA`],S={passive:!1},ee=If(),te=If(),C=zf(50,225).constrain(p.measure(20)),w={mouse:300,touch:400},ne={mouse:500,touch:600},re=m?43:25,ie=!1,ae=0,oe=0,se=!1,ce=!1,le=!1,T=!1;function E(e){if(!v)return;function n(t){(bf(v)||v(e,t))&&O(t)}let r=t;ee.add(r,`dragstart`,e=>e.preventDefault(),S).add(r,`touchmove`,()=>void 0,S).add(r,`touchend`,()=>void 0).add(r,`touchstart`,n).add(r,`mousedown`,n).add(r,`touchcancel`,he).add(r,`contextmenu`,he).add(r,`click`,ge,!0)}function ue(){ee.clear(),te.clear()}function de(){let e=T?n:t;te.add(e,`touchmove`,me,S).add(e,`touchend`,he).add(e,`mousemove`,me,S).add(e,`mouseup`,he)}function fe(e){let t=e.nodeName||``;return x.includes(t)}function pe(){return(m?ne:w)[T?`mouse`:`touch`]}function D(e,t){let n=d.add(Cf(e)*-1),r=u.byDistance(e,!m).distance;return m||Sf(e)<C?r:g&&t?r*.5:u.byIndex(n.get(),0).distance}function O(e){let t=Pf(e,r);T=t,le=m&&t&&!e.buttons&&ie,ie=wf(i.get(),o.get())>=2,!(t&&e.button!==0)&&(fe(e.target)||(se=!0,a.pointerDown(e),l.useFriction(0).useDuration(0),i.set(o),de(),ae=a.readPoint(e),oe=a.readPoint(e,y),f.emit(`pointerDown`)))}function me(e){if(!Pf(e,r)&&e.touches.length>=2)return he(e);let t=a.readPoint(e),n=a.readPoint(e,y),o=wf(t,ae),c=wf(n,oe);if(!ce&&!T&&(!e.cancelable||(ce=o>c,!ce)))return he(e);let u=a.pointerMove(e);o>h&&(le=!0),l.useFriction(.3).useDuration(.75),s.start(),i.add(b(u)),e.preventDefault()}function he(e){let t=u.byDistance(0,!1).index!==d.get(),n=a.pointerUp(e)*pe(),r=D(b(n),t),i=Tf(n,r),o=re-10*i,s=_+i/50;ce=!1,se=!1,te.clear(),l.useDuration(o).useFriction(s),c.distance(r,!m),T=!1,f.emit(`pointerUp`)}function ge(e){le&&=(e.stopPropagation(),e.preventDefault(),!1)}function _e(){return se}return{init:E,destroy:ue,pointerDown:_e}}function Hf(e,t){let n,r;function i(e){return e.timeStamp}function a(n,r){let i=`client${(r||e.scroll)===`x`?`X`:`Y`}`;return(Pf(n,t)?n:n.touches[0])[i]}function o(e){return n=e,r=e,a(e)}function s(e){let t=a(e)-a(r),o=i(e)-i(n)>170;return r=e,o&&(n=e),t}function c(e){if(!n||!r)return 0;let t=a(r)-a(n),o=i(e)-i(n),s=i(e)-i(r)>170,c=t/o;return o&&!s&&Sf(c)>.1?c:0}return{pointerDown:o,pointerMove:s,pointerUp:c,readPoint:a}}function Uf(){function e(e){let{offsetTop:t,offsetLeft:n,offsetWidth:r,offsetHeight:i}=e;return{top:t,right:n+r,bottom:t+i,left:n,width:r,height:i}}return{measure:e}}function Wf(e){function t(t){return t/100*e}return{measure:t}}function Gf(e,t,n,r,i,a,o){let s=[e].concat(r),c,l,u=[],d=!1;function f(e){return i.measureSize(o.measure(e))}function p(i){if(!a)return;l=f(e),u=r.map(f);function o(n){for(let a of n){if(d)return;let n=a.target===e,o=r.indexOf(a.target),s=n?l:u[o];if(Sf(f(n?e:r[o])-s)>=.5){i.reInit(),t.emit(`resize`);break}}}c=new ResizeObserver(e=>{(bf(a)||a(i,e))&&o(e)}),n.requestAnimationFrame(()=>
174{s.forEach(e=>c.observe(e))})}function m(){d=!0,c&&c.disconnect()}return{init:p,destroy:m}}function Kf(e,t,n,r,i,a){let o=0,s=0,c=i,l=a,u=e.get(),d=0;function f(){let t=r.get()-e.get(),i=!c,a=0;return i?(o=0,n.set(r),e.set(r),a=t):(n.set(e),o+=t/c,o*=l,u+=o,e.add(o),a=u-d),s=Cf(a),d=u,x}function p(){return Sf(r.get()-t.get())<.001}function m(){return c}function h(){return s}function g(){return o}function _(){return y(i)}function v(){return b(a)}function y(e){return c=e,x}function b(e){return l=e,x}let x={direction:h,duration:m,velocity:g,seek:f,settled:p,useBaseFriction:v,useBaseDuration:_,useFriction:b,useDuration:y};return x}function qf(e,t,n,r,i){let a=i.measure(10),o=i.measure(50),s=zf(.1,.99),c=!1;function l(){return!(c||!e.reachedAny(n.get())||!e.reachedAny(t.get()))}function u(i){if(!l())return;let c=Sf(e[e.reachedMin(t.get())?`min`:`max`]-t.get()),u=n.get()-t.get(),d=s.constrain(c/o);n.subtract(u*d),!i&&Sf(u)<a&&(n.set(e.constrain(n.get())),r.useDuration(25).useBaseFriction())}function d(e){c=!e}return{shouldConstrain:l,constrain:u,toggleActive:d}}function Jf(e,t,n,r,i){let a=zf(-t+e,0),o=d(),s=u(),c=f();function l(e,t){return wf(e,t)<=1}function u(){let e=o[0],t=Of(o);return zf(o.lastIndexOf(e),o.indexOf(t)+1)}function d(){return n.map((e,t)=>{let{min:r,max:i}=a,o=a.constrain(e),s=!t,c=Af(n,t);return s?i:c||l(r,o)?r:l(i,o)?i:o}).map(e=>parseFloat(e.toFixed(3)))}function f(){if(t<=e+i)return[a.max];if(r===`keepSnaps`)return o;let{min:n,max:c}=s;return o.slice(n,c)}return{snapsContained:c,scrollContainLimit:s}}function Yf(e,t,n){let r=t[0];return{limit:zf(n?r-e:Of(t),r)}}function Xf(e,t,n,r){let i=.1,{reachedMin:a,reachedMax:o}=zf(t.min+i,t.max+i);function s(e){return e===1?o(n.get()):e===-1?a(n.get()):!1}function c(t){if(!s(t))return;let n=t*-1*e;r.forEach(e=>e.add(n))}return{loop:c}}function Zf(e){let{max:t,length:n}=e;function r(e){let r=e-t;return n?r/-n:0}return{get:r}}function Qf(e,t,n,r,i){let{startEdge:a,endEdge:o}=e,{groupSlides:s}=i,c=d().map(t.measure),l=f(),u=p();function d(){return s(r).map(e=>Of(e)[o]-e[0][a]).map(Sf)}function f(){return r.map(e=>n[a]-e[a]).map(e=>-Sf(e))}function p(){return s(l).map(e=>e[0]).map((e,t)=>e+c[t])}return{snaps:l,snapsAligned:u}}function $f(e,t,n,r,i,a){let{groupSlides:o}=i,{min:s,max:c}=r,l=u();function u(){let r=o(a),i=!e||t===`keepSnaps`;return n.length===1?[a]:i?r:r.slice(s,c).map((e,t,n)=>{let r=!t,i=Af(n,t);return r?jf(Of(n[0])+1):i?jf(kf(a)-Of(n)[0]+1,Of(n)[0]):e})}return{slideRegistry:l}}function ep(e,t,n,r,i){let{reachedAny:a,removeOffset:o,constrain:s}=r;function c(e){return e.concat().sort((e,t)=>Sf(e)-Sf(t))[0]}function l(n){let r=e?o(n):s(n),{index:i}=t.map((e,t)=>({diff:u(e-r,0),index:t})).sort((e,t)=>Sf(e.diff)-Sf(t.diff))[0];return{index:i,distance:r}}function u(t,r){let i=[t,t+n,t-n];if(!e)return t;if(!r)return c(i);let a=i.filter(e=>Cf(e)===r);return a.length?c(a):Of(i)-n}function d(e,n){return{index:e,distance:u(t[e]-i.get(),n)}}function f(n,r){let o=i.get()+n,{index:s,distance:c}=l(o),d=!e&&a(o);return!r||d?{index:s,distance:n}:{index:s,distance:n+u(t[s]-c,0)}}return{byDistance:f,byIndex:d,shortcut:u}}function tp(e,t,n,r,i,a,o){function s(i){let s=i.distance,c=i.index!==t.get();
174a.add(s),s&&(r.duration()?e.start():(e.update(),e.render(1),e.update())),c&&(n.set(t.get()),t.set(i.index),o.emit(`select`))}function c(e,t){s(i.byDistance(e,t))}function l(e,n){let r=t.clone().set(e);s(i.byIndex(r.get(),n))}return{distance:c,index:l}}function np(e,t,n,r,i,a,o,s){let c={passive:!0,capture:!0},l=0;function u(u){if(!s)return;function f(t){if(new Date().getTime()-l>10)return;o.emit(`slideFocusStart`),e.scrollLeft=0;let a=n.findIndex(e=>e.includes(t));vf(a)&&(i.useDuration(0),r.index(a,0),o.emit(`slideFocus`))}a.add(document,`keydown`,d,!1),t.forEach((e,t)=>{a.add(e,`focus`,e=>{(bf(s)||s(u,e))&&f(t)},c)})}function d(e){e.code===`Tab`&&(l=new Date().getTime())}return{init:u}}function rp(e){let t=e;function n(){return t}function r(e){t=o(e)}function i(e){t+=o(e)}function a(e){t-=o(e)}function o(e){return vf(e)?e:e.get()}return{get:n,set:r,add:i,subtract:a}}function ip(e,t){let n=e.scroll===`x`?o:s,r=t.style,i=null,a=!1;function o(e){return`translate3d(${e}px,0px,0px)`}function s(e){return`translate3d(0px,${e}px,0px)`}function c(t){if(a)return;let o=Ef(e.direction(t));o!==i&&(r.transform=n(o),i=o)}function l(e){a=!e}function u(){a||(r.transform=``,t.getAttribute(`style`)||t.removeAttribute(`style`))}return{clear:u,to:c,toggleActive:l}}function ap(e,t,n,r,i,a,o,s,c){let l=.5,u=Df(i),d=Df(i).reverse(),f=_().concat(v());function p(e,t){return e.reduce((e,t)=>e-i[t],t)}function m(e,t){return e.reduce((e,n)=>p(e,t)>0?e.concat([n]):e,[])}function h(e){return a.map((n,i)=>({start:n-r[i]+l+e,end:n+t-l+e}))}function g(t,r,i){let a=h(r);return t.map(t=>{let r=i?0:-n,o=i?n:0,l=i?`end`:`start`,u=a[t][l];return{index:t,loopPoint:u,slideLocation:rp(-1),translate:ip(e,c[t]),target:()=>s.get()>u?r:o}})}function _(){let e=o[0];return g(m(d,e),n,!1)}function v(){return g(m(u,t-o[0]-1),-n,!0)}function y(){return f.every(({index:e})=>p(u.filter(t=>t!==e),t)<=.1)}function b(){f.forEach(e=>{let{target:t,translate:n,slideLocation:r}=e,i=t();i!==r.get()&&(n.to(i),r.set(i))})}function x(){f.forEach(e=>e.translate.clear())}return{canLoop:y,clear:x,loop:b,loopPoints:f}}function op(e,t,n){let r,i=!1;function a(a){if(!n)return;function o(e){for(let n of e)if(n.type===`childList`){a.reInit(),t.emit(`slidesChanged`);break}}r=new MutationObserver(e=>{i||(bf(n)||n(a,e))&&o(e)}),r.observe(e,{childList:!0})}function o(){r&&r.disconnect(),i=!0}return{init:a,destroy:o}}function sp(e,t,n,r){let i={},a=null,o=null,s,c=!1;function l(){s=new IntersectionObserver(e=>{c||(e.forEach(e=>{let n=t.indexOf(e.target);i[n]=e}),a=null,o=null,n.emit(`slidesInView`))},{root:e.parentElement,threshold:r}),t.forEach(e=>s.observe(e))}function u(){s&&s.disconnect(),c=!0}function d(e){return Mf(i).reduce((t,n)=>{let r=parseInt(n),{isIntersecting:a}=i[r];
vendor: 4,263 bytes, line 174
174return(e&&a||!e&&!a)&&t.push(r),t},[])}function f(e=!0){if(e&&a)return a;if(!e&&o)return o;let t=d(e);return e&&(a=t),e||(o=t),t}return{init:l,destroy:u,get:f}}function cp(e,t,n,r,i,a){let{measureSize:o,startEdge:s,endEdge:c}=e,l=n[0]&&i,u=m(),d=h(),f=n.map(o),p=g();function m(){if(!l)return 0;let e=n[0];return Sf(t[s]-e[s])}function h(){if(!l)return 0;let e=a.getComputedStyle(Of(r));return parseFloat(e.getPropertyValue(`margin-${c}`))}function g(){return n.map((e,t,n)=>{let r=!t,i=Af(n,t);return r?f[t]+u:i?f[t]+d:n[t+1][s]-e[s]}).map(Sf)}return{slideSizes:f,slideSizesWithGaps:p,startGap:u,endGap:d}}function lp(e,t,n,r,i,a,o,s,c){let{startEdge:l,endEdge:u,direction:d}=e,f=vf(n);function p(e,t){return Df(e).filter(e=>e%t===0).map(n=>e.slice(n,n+t))}function m(e){return e.length?Df(e).reduce((n,f,p)=>{let m=Of(n)||0,h=m===0,g=f===kf(e),_=i[l]-a[m][l],v=i[l]-a[f][u],y=!r&&h?d(o):0,b=Sf(v-(!r&&g?d(s):0)-(_+y));return p&&b>t+c&&n.push(f),g&&n.push(e.length),n},[]).map((t,n,r)=>{let i=Math.max(r[n-1]||0);return e.slice(i,t)}):[]}function h(e){return f?p(e,n):m(e)}return{groupSlides:h}}function up(e,t,n,r,i,a,o){let{align:s,axis:c,direction:l,startIndex:u,loop:d,duration:f,dragFree:p,dragThreshold:m,inViewThreshold:h,slidesToScroll:g,skipSnaps:_,containScroll:v,watchResize:y,watchSlides:b,watchDrag:x,watchFocus:S}=a,ee=Uf(),te=ee.measure(t),C=n.map(ee.measure),w=Rf(c,l),ne=w.measureSize(te),re=Wf(ne),ie=Ff(s,ne),ae=!d&&!!v,{slideSizes:oe,slideSizesWithGaps:se,startGap:ce,endGap:le}=cp(w,te,C,n,d||!!v,i),T=lp(w,ne,g,d,te,C,ce,le,2),{snaps:E,snapsAligned:ue}=Qf(w,ie,te,C,T),de=-Of(E)+Of(se),{snapsContained:fe,scrollContainLimit:pe}=Jf(ne,de,ue,v,2),D=ae?fe:ue,{limit:O}=Yf(de,D,d),me=Bf(kf(D),u,d),he=me.clone(),ge=Df(n),_e=({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:r}})=>{r||n.constrain(e.pointerDown()),t.seek()},ve=({scrollBody:e,translate:t,location:n,offsetLocation:r,previousLocation:i,scrollLooper:a,slideLooper:o,dragHandler:s,animation:c,eventHandler:l,scrollBounds:u,options:{loop:d}},f)=>{let p=e.settled(),m=!u.shouldConstrain(),h=d?p:p&&m,g=h&&!s.pointerDown();g&&c.stop();let _=n.get()*f+i.get()*(1-f);r.set(_),d&&(a.loop(e.direction()),o.loop()),t.to(r.get()),g&&l.emit(`settle`),h||l.emit(`scroll`)},ye=Lf(r,i,()=>_e(Ne),e=>ve(Ne,e)),be=.68,xe=D[me.get()],Se=rp(xe),Ce=rp(xe),we=rp(xe),Te=rp(xe),Ee=Kf(Se,we,Ce,Te,f,be),De=ep(d,D,de,O,Te),Oe=tp(ye,me,he,Ee,De,Te,o),k=Zf(O),ke=If(),Ae=sp(t,n,o,h),{slideRegistry:je}=$f(ae,v,D,pe,T,ge),Me=np(e,n,je,Oe,Ee,ke,o,S),Ne={ownerDocument:r,ownerWindow:i,eventHandler:o,containerRect:te,slideRects:C,animation:ye,axis:w,dragHandler:Vf(w,e,r,i,Te,Hf(w,i),Se,ye,Oe,Ee,De,me,o,re,p,m,_,be,x),eventStore:ke,percentOfView:re,index:me,indexPrevious:he,limit:O,location:Se,offsetLocation:we,previousLocation:Ce,options:a,resizeHandler:Gf(t,o,i,n,w,y,ee),scrollBody:Ee,scrollBounds:qf(O,we,Te,Ee,re),scrollLooper:Xf(de,O,we,[Se,we,Ce,Te]),scrollProgress:k,scrollSnapList:D.map(k.get),scrollSnaps:D,scrollTarget:De,scrollTo:Oe,slideLooper:ap(w,ne,de,oe,se,E,D,we,n),slideFocus:Me,slidesHandler:op(t,o,b),slidesInView:Ae,slideIndexes:ge,slideRegistry:je,slidesToScroll:T,target:Te,translate:ip(w,t)};return Ne}function dp(){let e={},t;function n(e){t=e}function r(t){return e[t]||[]}function i(e){return r(e).forEach(n=>n(t,e)),c}function a(t,n){return e[t]=r(t).concat([n]),c}function o(t,n){return e[t]=r(t).filter(e=>e!==n),c}function s(){e={}}let c={init:n,emit:i,off:o,on:a,clear:s};return c}var fp={align:`center`,axis:`x`,container:null,slides:null,containScroll:`trimSnaps`,direction:`ltr`,slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function pp(e){function t(e,t){return Nf(e,t||{})}function n(n){let r=n.breakpoints||{};return t(n,Mf(r).filter(t=>e.matchMedia(t).matches).map(e=>r[e]).reduce((e,n)=>t(e,n),{}))}function r(t){return t.map(e=>Mf(e.breakpoints||{})).reduce((e,t)=>e.concat(t),[]).map(e.matchMedia)}return{mergeOptions:t,optionsAtMedia:n,optionsMediaQueries:r}}function mp(e){let t=[];function n(n,r){return t=r.filter(({options:t})=>e.optionsAtMedia(t).active!==!1),t.forEach(t=>t.init(n,e)),r.reduce((e,t)=>
174Object.assign(e,{[t.name]:t}),{})}function r(){t=t.filter(e=>e.destroy())}return{init:n,destroy:r}}function hp(e,t,n){let r=e.ownerDocument,i=r.defaultView,a=pp(i),o=mp(a),s=If(),c=dp(),{mergeOptions:l,optionsAtMedia:u,optionsMediaQueries:d}=a,{on:f,off:p,emit:m}=c,h=ne,g=!1,_,v=l(fp,hp.globalOptions),y=l(v),b=[],x,S,ee;function te(){let{container:t,slides:n}=y;S=(yf(t)?e.querySelector(t):t)||e.children[0];let r=yf(n)?S.querySelectorAll(n):n;ee=[].slice.call(r||S.children)}function C(t){let n=up(e,S,ee,r,i,t,c);return t.loop&&!n.slideLooper.canLoop()?C(Object.assign({},t,{loop:!1})):n}function w(e,t){g||(v=l(v,e),y=u(v),b=t||b,te(),_=C(y),d([v,...b.map(({options:e})=>e)]).forEach(e=>s.add(e,`change`,ne)),y.active&&(_.translate.to(_.location.get()),_.animation.init(),_.slidesInView.init(),_.slideFocus.init(_e),_.eventHandler.init(_e),_.resizeHandler.init(_e),_.slidesHandler.init(_e),_.options.loop&&_.slideLooper.loop(),S.offsetParent&&ee.length&&_.dragHandler.init(_e),x=o.init(_e,b)))}function ne(e,t){let n=ue();re(),w(l({startIndex:n},e),t),c.emit(`reInit`)}function re(){_.dragHandler.destroy(),_.eventStore.clear(),_.translate.clear(),_.slideLooper.clear(),_.resizeHandler.destroy(),_.slidesHandler.destroy(),_.slidesInView.destroy(),_.animation.destroy(),o.destroy(),s.clear()}function ie(){g||(g=!0,s.clear(),re(),c.emit(`destroy`),c.clear())}function ae(e,t,n){!y.active||g||(_.scrollBody.useBaseFriction().useDuration(t===!0?0:y.duration),_.scrollTo.index(e,n||0))}function oe(e){ae(_.index.add(1).get(),e,-1)}function se(e){ae(_.index.add(-1).get(),e,1)}function ce(){return _.index.add(1).get()!==ue()}function le(){return _.index.add(-1).get()!==ue()}function T(){return _.scrollSnapList}function E(){return _.scrollProgress.get(_.offsetLocation.get())}function ue(){return _.index.get()}function de(){return _.indexPrevious.get()}function fe(){return _.slidesInView.get()}function pe(){return _.slidesInView.get(!1)}function D(){return x}function O(){return _}function me(){return e}function he(){return S}function ge(){return ee}let _e={canScrollNext:ce,canScrollPrev:le,containerNode:he,internalEngine:O,destroy:ie,off:p,on:f,emit:m,plugins:D,previousScrollSnap:de,reInit:h,rootNode:me,scrollNext:oe,scrollPrev:se,scrollProgress:E,scrollSnapList:T,scrollTo:ae,selectedScrollSnap:ue,slideNodes:ge,slidesInView:fe,slidesNotInView:pe};return w(t,n),setTimeout(()=>c.emit(`init`),0),_e}hp.globalOptions=void 0;function gp(e={},t=[]){let n=(0,R.useRef)(e),r=(0,R.useRef)(t),[i,a]=(0,R.useState)(),[o,s]=(0,R.useState)(),c=(0,R.useCallback)(()=>{i&&i.reInit(n.current,r.current)},[i]);return(0,R.useEffect)(()=>{hf(n.current,e)||(n.current=e,c())},[e,c]),(0,R.useEffect)(()=>{_f(r.current,t)||(r.current=t,c())},[t,c]),(0,R.useEffect)(()=>{if(mf()&&o){hp.globalOptions=gp.globalOptions;let e=hp(o,n.current,r.current);return a(e),()=>e.destroy()}else a(void 0)},[o,a]),[s,i]}gp.globalOptions=void 0;var _p=k({queryKey:[`testimonials`],queryFn:()=>je(),staleTime:10*6e4});function vp(){let{data:e}=Oe(_p),t=typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches,[n,r]=gp({loop:!0,align:`start`}),[i,a]=(0,R.useState)(0),[o,s]=(0,R.useState)([]);return(0,R.useEffect)(()=>{if(!r)return;let e=()=>a(r.selectedScrollSnap());s(r.scrollSnapList()),r.on(`select`,e),r.on(`reInit`,e),e()},[r]),(0,R.useEffect)(()=>{if(!r||t||e.length<2)return;let n=window.setInterval(()=>r.scrollNext(),6500);return()=>window.clearInterval(n)},[r,t,e.length]),e.length===0?null:(0,z.jsxs)(`section`,{className:`relative overflow-hidden py-20 md:py-28`,style:{background:`linear-gradient(135deg, var(--color-navy) 0%, #2a2f6b 55%, var(--color-periwinkle) 100%)`},children:[(0,z.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 opacity-25`,style:{backgroundImage:`radial-gradient(40% 50% at 15% 20%, #ffffff 0%, transparent 60%), radial-gradient(50% 60% at 85% 90%, var(--color-periwinkle) 0%, transparent 65%)`}}),(0,z.jsxs)(`div`,{className:`container-x relative`,children:[(0,z.jsx)(`div`,{className:`mono-label text-white/70`,children:`What clients say`}),(0,z.jsx)(`div`,{className:`mt-10 overflow-hidden`,ref:n,children:(0,z.jsx)(`div`,{className:`flex`,children:e.map(e=>(0,z.jsx)(`div`,{className:`min-w-0 flex-[0_0_100%] px-1`,children:(0,z.jsxs)(`figure`,{className:`mx-auto max-w-4xl text-white`,children:[(0,z.jsxs)(`blockquote`,{className:`font-serif-i leading-[1.15] tracking-[-0.01em]`,style:{fontSize:`clamp(28px, 4vw, 52px)`},children:[(0,z.jsx)(`span`,{className:`text-white/40`,children:`“`}),e.quote,(0,z.jsx)(`span`,{className:`text-white/40`,children:`”`})]}),(0,z.jsxs)(`figcaption`,{className:`mt-8 text-base md:text-lg text-white/90`,children:[(0,z.jsxs)(`b`,{className:`font-semibold`,children:[e.author_name,e.author_title?`, ${e.author_title}`:``]}),e.company?(0,z.jsxs)(`span`,{className:`text-white/75`,children:[`, `,e.company]}):null]})]})},e.id))})}),o.length>1&&(0,z.jsx)(`div`,{className:`mt-10 flex justify-center gap-2`,children:o.map((e,t)=>(0,z.jsx)(`button`,{"aria-label":`Go to slide ${t+1}`,onClick:()=>r?.scrollTo(t),className:`h-2 rounded-full transition-all ${t===i?`w-8 bg-white`:`w-2 bg-white/40 hover:bg-white/70`}`},t))})]})]})}var yp=()=>F(()=>
174import(`./practice.index-DX0qKl68.js`),__vite__mapDeps([60,1,5,6,7,8,9,10])),bp=()=>F(()=>import(`./practice.index-DlzFrj9-.js`),__vite__mapDeps([61,1])),xp=()=>F(()=>import(`./practice.index-DOpaQsUO.js`),__vite__mapDeps([62,1,5,6,7,8,9,10,19,13,14,15,16,17,27])),Sp=Be(`/practice/`)??`Practice Areas | 5WPR`,Cp=u(`/practice/`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(df),e.queryClient.ensureQueryData(Js),e.queryClient.ensureQueryData(_p),e.queryClient.ensureQueryData(ks)])},head:()=>({meta:[{title:Sp},{name:`description`,content:`Explore 5WPR's full slate of practice areas — from consumer and corporate communications to technology, healthcare, public affairs, and AI-era visibility.`},{property:`og:title`,content:Sp},{property:`og:description`,content:`Explore 5WPR's full slate of practice areas — from consumer and corporate communications to technology, healthcare, public affairs, and AI-era visibility.`},{property:`og:url`,content:`https://www.5wpr.com/practice/`},{property:`og:type`,content:`website`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/practice/`}]}),component:s(xp,`component`),errorComponent:s(bp,`errorComponent`),notFoundComponent:s(yp,`notFoundComponent`)}),wp=(e,t)=>k({queryKey:[`blog_list`,e,t??``],queryFn:()=>Gd({data:{page:e,category:t}}),staleTime:6e4}),Tp=k({queryKey:[`blog_categories`],queryFn:()=>Wd(),staleTime:3e5}),Ep=e=>{let t=`input`in e?e.input:`input`,n=`output`in e?e.output:`output`,r=`schema`in e?e.schema._input
174:e._input,i=`schema`in e?e.schema._output:e._output;return{types:{input:t===`output`?i:r,output:n===`input`?r:i},parse:t=>`schema`in e?e.schema.parse(t):e.parse(t)}},Dp=(e,t)=>gd().pipe(e.catch(t)),Op={2:`PR strategy, campaign and industry insights for communications professionals and brands, from the 5WPR team. Page 2 of the blog archive.`,3:`PR strategy, campaign and industry insights for communications professionals and brands, from the 5WPR team. Page 3 of the blog archive.`,4:`PR strategy, campaign and industry insights for communications professionals and brands, from the 5WPR team. Page 4 of the blog archive.`,5:`PR strategy, campaign and industry insights for communications professionals and brands, from the 5WPR team. Page 5 of the blog archive.`,6:`PR strategy, campaign and industry insights for communications professionals and brands, from the 5WPR team. Page 6 of the blog archive.`,7:`PR strategy, campaign and industry insights for communications professionals and brands, from the 5WPR team. Page 7 of the blog archive.`,8:`PR strategy, campaign and industry insights for communications professionals and brands, from the 5WPR team. Page 8 of the blog archive.`,9:`PR strategy, campaign and industry insights for communications professionals and brands, from the 5WPR team. Page 9 of the blog archive.`,10:`5WPR blog, page 10 of the archive: PR strategies, campaign breakdowns, and practical resources for communications professionals and growing brands.`,11:`5WPR blog, page 11 of the archive: public relations strategy, campaign lessons, and working resources for PR professionals and brand marketing teams.`,12:`5WPR blog, page 12 of the archive: PR campaign analysis, media relations guidance, and marketing resources for communicators and brand builders.`,13:`5WPR blog, page 13 of the archive: press strategy, campaign case notes, and communications resources for PR teams and brands building visibility.`,14:`5WPR blog, page 14 of the archive: PR tactics, campaign takeaways, and reference material for communications professionals and marketing leaders.`,15:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 15 of the 5WPR blog archive.`,16:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 16 of the 5WPR blog archive.`,17:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 17 of the 5WPR blog archive.`,18:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 18 of the 5WPR blog archive.`,19:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 19 of the 5WPR blog archive.`,20:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 20 of the 5WPR blog archive.`,21:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 21 of the 5WPR blog archive.`,22:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 22 of the 5WPR blog archive.`,23:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 23 of the 5WPR blog archive.`,24:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 24 of the 5WPR blog archive.`,25:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 25 of the 5WPR blog archive.`,26:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 26 of the 5WPR blog archive.`,27:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 27 of the 5WPR blog archive.`,28:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 28 of the 5WPR blog archive.`,29:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 29 of the 5WPR blog archive.`,30:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 30 of the 5WPR blog archive.`,31:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 31 of the 5WPR blog archive.`,32:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 32 of the 5WPR blog archive.`,33:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 33 of the 5WPR blog archive.`,34:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 34 of the 5WPR blog archive.`,35:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 35 of the 5WPR blog archive.`,36:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 36 of the 5WPR blog archive.`,37:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 37 of the 5WPR blog archive.`,38:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 38 of the 5WPR blog archive.`,39:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 39 of the 5WPR blog archive.`,40:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 40 of the 5WPR blog archive.`,41:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 41 of the 5WPR blog archive.`,42:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 42 of the 5WPR blog archive.`,43:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 43 of the 5WPR blog archive.`,44:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 44 of the 5WPR blog archive.`,45:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 45 of the 5WPR blog archive.`,46:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 46 of the 5WPR blog archive.`,47:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 47 of the 5WPR blog archive.`,48:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 48 of the 5WPR blog archive.`,49:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 49 of the 5WPR blog archive.`,50:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 50 of the 5WPR blog archive.`,51:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 51 of the 5WPR blog archive.`,52:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 52 of the 5WPR blog archive.`,53:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 53 of the 5WPR blog archive.`,54:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 54 of the 5WPR blog archive.`,55:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 55 of the 5WPR blog archive.`,56:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 56 of the 5WPR blog archive.`,57:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 57 of the 5WPR blog archive.`,58:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 58 of the 5WPR blog archive.`,59:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 59 of the 5WPR blog archive.`,60:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 60 of the 5WPR blog archive.`,61:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 61 of the 5WPR blog archive.`,62:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 62 of the 5WPR blog archive.`,63:`PR strategies, campaign breakdowns and marketing resources for communicators and brands building visibility. Page 63 of the 5WPR blog archive.`},kp=()=>F(()=>
174import(`./new.index-DX0qKl68.js`),__vite__mapDeps([63,1,5,6,7,8,9,10])),Ap=()=>F(()=>import(`./new.index-CLwckyzT.js`),__vite__mapDeps([64,1])),jp=()=>F(()=>import(`./new.index-Cir4l4gc.js`),__vite__mapDeps([65,1,15,7,9,5,6,8,10,19,13,14,16,17,27])),Mp=yd({page:Dp(vd().int().min(1),1).default(1),category:Dp(_d(),``).default(``)}),Np=u(`/new/`)({validateSearch:Ep(Mp),search:{middlewares:[ot({page:1,category:``})]},loaderDeps:({search:{page:e,category:t}})=>({page:e,category:t}),loader:async({context:e,deps:t})=>{let n=await e.queryClient.ensureQueryData(wp(t.page,t.category||void 0));if(t.page>n.totalPages)throw C({to:`/new/`,search:{page:n.totalPages,category:t.category},replace:!0});return await e.queryClient.ensureQueryData(Tp),{page:t.page,category:t.category??``}},head:({loaderData:e})=>{let t=e?.page??1,n=e?.category??``,r=new URLSearchParams;t>1&&r.set(`page`,String(t)),n&&r.set(`category`,n);let i=r.toString(),a=`https://www.5wpr.com/new/${i?`?${i}`:``}`,o=n?n.replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase()).replace(/\b(Pr|Ai|Seo|Geo|Dtc|Nyc|5wpr)\b/g,e=>e.toLowerCase()===`5wpr`?`5WPR`:e.toUpperCase()):``,s=[o,t>1?`Page ${t}`:``].filter(Boolean).join(` — `),c=s?`${s} | 5WPR Public Relations Blog`:`5WPR Public Relations Blog | NYC PR Firm | 5WPR`,l=o?`${o} insights from 5WPR — strategy, campaigns, and analysis from our New York communications team.`:`Read the 5WPR blog, filled with resources for PR professionals as well as brands looking to learn more about PR strategies and campaigns.`,u=t>1?!o&&Op[t]||`${l} Page ${t} of the archive.`:l;return{meta:[{title:c},{name:`description`,content:u},{name:`robots`,content:`index, follow`},{property:`og:title`,content:c},{property:`og:description`,content:u},{property:`og:url`,content:a},{property:`og:type`,content:`website`}],links:[{rel:`canonical`,href:a}]}},component:s(jp,`component`),errorComponent:s(Ap,`errorComponent`),notFoundComponent:s(kp,`notFoundComponent`)}),Pp=S({method:`GET`}).handler(b(`57f2e4cbe23fc2e2de544320488c724c203fa986d150066f572a582e5c452d85`)),Fp=S({method:`GET`}).handler(b(`ab183d7464c505879f15d122104c653190b7370ae7660e5f071e014384e3fbdc`)),Ip=k({queryKey:[`glossary_terms_list`],queryFn:()=>Pp(),staleTime:5*6e4}),Lp=()=>F(()=>
174import(`./glossary.index-DX0qKl68.js`),__vite__mapDeps([66,1,5,6,7,8,9,10])),Rp=()=>F(()=>import(`./glossary.index-DZtQrXMY.js`),__vite__mapDeps([67,1])),zp=()=>F(()=>import(`./glossary.index-taL60kjQ.js`),__vite__mapDeps([68,1,15,7,9,5,6,8,10,19,13,14,16,17,27])),Bp=Ve(`/glossary/`)??`540+ defined terms across 22 specialized glossaries covering AI Communications, GEO, AI visibility, agentic commerce, AI reputation, financial communications, technology PR, paid media, healthcare, beauty, earned media, crisis, synthetic media, influencer, and SEO. Published by 5W, The Communications Firm Built for the AI Era.`,Vp=u(`/glossary/`)({loader:({context:e})=>e.queryClient.ensureQueryData(Ip),head:()=>({meta:[{title:`5W Glossary — AI Communications, PR, and GEO Vocabulary`},{name:`description`,content:Bp},{property:`og:title`,content:`5W Glossary — AI Communications, PR, and GEO Vocabulary`},{property:`og:description`,content:Bp},{property:`og:url`,content:`https://www.5wpr.com/glossary/`},{property:`og:type`,content:`website`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/glossary/`}]}),component:s(zp,`component`),errorComponent:s(Rp,`errorComponent`),notFoundComponent:s(Lp,`notFoundComponent`)}),Hp=u(`/florida/`)({head:()=>({meta:[{title:`Florida PR Firm | 5W — Miami & Tampa PR Agency`},{name:`description`,content:`5W is a Florida PR agency and PR firm with offices in Miami and Tampa — public relations, GEO, and digital marketing for Florida and national brands.`},{property:`og:title`,content:`Florida PR Firm | 5W — Miami & Tampa PR Agency`},{property:`og:description`,content:`5W is a Florida PR agency and PR firm with offices in Miami and Tampa — public relations, GEO, and digital marketing for Florida and national brands.`},{property:`og:url`,content:`https://www.5wpr.com/florida/`},{property:`og:type`,content:`website`},{property:`og:site_name`,content:`5W Public Relations`},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:`Florida PR Firm | 5W — Miami & Tampa PR Agency`},{name:`twitter:description`,content:`5W is a Florida PR agency and PR firm with offices in Miami and Tampa — public relations, GEO, and digital marketing for Florida and national brands.`},{name:`robots`,content:`index, follow`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/florida/`}]}),component:s(()=>F(()=>import(`./florida.index-CtxQngKJ.js`),__vite__mapDeps([69,1,15,7,9,5,6,8,10,13,14,16,17])),`component`)}),Up=k({queryKey:[`authors_index`],queryFn:()=>Yd(),staleTime:10*6e4}),Wp=()=>F(()=>import(`./authors.index-BBn5_qEN.js`),__vite__mapDeps([70,1,15,7,9,5,6,8,10,19,43,13,14,16,17])),Gp=`Authors — PR, Brand & AI Visibility Writers | 5WPR`,Kp=`Meet the 5WPR writers and strategists behind our reporting on public relations, brand reputation, digital marketing, and AI search visibility.`,qp=`https://www.5wpr.com/authors/`,Jp=u(`/authors/`)({loader:({context:e})=>e.queryClient.ensureQueryData(Up),head:()=>({meta:[{title:Gp},{name:`description`,content:Kp},{name:`robots`,content:`index, follow`},{property:`og:title`,content:Gp},{property:`og:description`,content:Kp},{property:`og:url`,content:qp},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:qp}]}),component:s(Wp,`component`)}),Yp=`5w_index_access_token`;function Xp(){try{return window.localStorage.getItem(Yp)}catch{return null}}function Zp(e){if(e)try{window.localStorage.setItem(Yp,e)}catch{}}function Qp(e){let t=Xp();return t?`${e}${e.includes(`?`)?`&`:`?`}t=${encodeURIComponent(t)}`:e}var $p=S({method:`GET`}).handler(b(`3af288843b3c5c130ac2e905080bfd375a11a21a2ebe63cb8dd050e69dfbd9eb`)),em=e=>k({queryKey:[`index-edition`,`all`],queryFn:()=>$p({data:{industry:null}}),staleTime:30*6e4}),tm=S({method:`GET`}).handler(b(`b30ba91ecfaf9055e8c856760fac2a168cc6d4b68cf0a51cb1acb428945147d9`)),nm=k({queryKey:[`index-access`],queryFn:()=>tm({data:{token:Xp()}}),staleTime:6e4}),rm=S({method:`GET`}).handler(b(`513d91485606828d59e48f743ae55e9c7b969cd265ce1d54c0abb7133b5066ff`)),im=(e,t)=>k({queryKey:[`index-full`,`all`],queryFn:()=>rm({data:{industry:null,token:Xp()}}),staleTime:30*6e4,enabled:t}),am=S({method:`POST`}).handler(b(`0b80f339379ad580176b3fafda56a5b37da2a633d8f054ce03d812f05a4fbfd2`));S({method:`POST`}).handler(b(`25da554313d7703e01d164d08d3a411ae7229bd859b38d4d0d1a5de4a79d049a`)),S({method:`POST`}).handler(b(`b75877f1d77620c9dfadf8a9b9a462b56ae4d26af79e91e950e00a9522d61521`));var om=()=>F(()=>import(`./ai-visibility-radar.index-BtCF88L1.js`),__vite__mapDeps([71,1,15,7,9,5,6,8,10,72,17,73,14,16,74,13,44,27,45])),sm=`AI Visibility Index — which brands AI engines actually cite | 5WPR`,cm=`The 5W AI Visibility Index measures which brands AI engines cite when people ask real buying questions. Updated every two weeks across nine industries.`,lm=u(`/ai-visibility-radar/`)({head:()=>({meta:[{title:sm},{name:`description`,content:cm},{name:`robots`,content:`noindex, nofollow`},{property:`og:title`,content:sm},{property:`og:description`,content:cm},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/ai-visibility-radar/`}]}),loader:({context:e})=>e.queryClient.ensureQueryData(em(null)),component:s(om,`component`)}),um=u(`/admin-5wpr/`)({component:s(()=>F(()=>import(`./admin-5wpr.index-DgDI8b4R.js`),__vite__mapDeps([75,1,15,7,9,14,76,6,77,8,78,35])),`component`),head:()=>({meta:[{title:`Admin · 5WPR`},{name:`robots`,content:`noindex,nofollow`}]})}),dm=k({queryKey:[`page`,`/about5wpr/index.cfm`],queryFn:()=>Bl({data:{path:`/about5wpr/index.cfm`}}),staleTime:5*6e4}),fm=u(`/about5wpr/`)({loader:async({context:e})=>{let t=await e.queryClient.ensureQueryData(dm);
174if(!t)throw w();return{seo:{...Lc(t,{path:`/about5wpr/`,ogType:`website`}),title:t.seo_title||t.title||`About 5W`}}},head:({loaderData:e})=>{let t=e?.seo?Ec(e.seo):{meta:[],links:[],scripts:[]};return{...t,scripts:[...t.scripts??[],{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Organization`,"@id":`https://www.5wpr.com/#company`,name:`5W Public Relations`,url:`https://www.5wpr.com`,founder:{"@type":`Person`,name:`Ronn Torossian`,url:`https://ronntorossian.com`,sameAs:`https://www.5wpr.com/about5wpr/management/ronn-torossian.cfm`},sameAs:[`https://www.facebook.com/5WPublicRelations`,`https://instagram.com/5wpr`,`https://x.com/5W_PR`,`https://www.youtube.com/@5WPRSpeakers`]})}]}},component:s(()=>F(()=>import(`./about5wpr.index-C2Mj79M5.js`),__vite__mapDeps([79,1,19,5,6,7,8,9,10,80])),`component`)}),pm={slug:`public-relations-agency`,path:`/services/public-relations-agency/`,title:`Public Relations Agency | Earned Media and AI Search`,description:`5WPR is a public relations agency that earns media coverage and AI citations, backed by an AI Visibility Index spanning 39+ categories and five models.`,h1:`Public Relations Agency for Media and AI Search`,kicker:`Public relations agency`,breadcrumb:`Public Relations`,heroLead:[`5W Public Relations (5WPR) is a public relations (PR) agency recognized across the industry's major [award programs](/about5wpr/awards.cfm). We get your brand covered in the publications your customers read and cited in the AI answers they trust.`,`Our services include earned media, corporate communications, crisis response, and AI search programs (also called GEO and AEO), delivered from New York, Miami, and Tampa across more than 20 practice areas.`],heroCtas:[{label:`Request a Public Relations Consultation`,href:`#contact`}],heroNote:`Selected clients — Zeta Global, DailyPay, Adzuna, Payoneer, Samsung SmartThings, e.l.f. Beauty`,trustFacts:Pe,sticky:{message:`Media program review or a 30-minute discovery call.`,cta:`Get In Touch Now`},blocks:[{kind:`prose`,tone:`white`,heading:`What does a public relations agency do for your brand?`,paragraphs:[`A public relations agency earns your brand third-party coverage that you cannot place through advertising spend or your own channels. A reporter, analyst, or creator vouches for you, and readers weigh that differently from an ad.`,`For your brand, that work covers media relations, executive positioning, product launches, research programs, reputation management, and crisis response, run by a team that already knows the reporters in your industry. Today, 5WPR also carries your earned and owned coverage into AI overviews and answers, so the same story that runs in Forbes shapes how ChatGPT describes you.`,`5WPR covers industries including [consumer products and brands](/practice/consumercfm.cfm), [technology public relations](/practice/technologypr.cfm), and [financial services and fintech](/practice/financial-services-and-fintech.cfm). Our practice also spans health and wellness, [corporate communications](/practice/corporate-communications.cfm), and public affairs. Pick the practice closest to your business; each team knows the media, customers, and regulators you deal with.`]},{kind:`prose`,tone:`dark`,heading:`How does earned media build credibility for your brand?`,paragraphs:[`Earned media puts a journalist, analyst, or influencer between your company and your audience, so your story reaches people who would never visit your website or follow your accounts. When a buyer compares options, that coverage is what they find.`,`Adzuna shows what that looks like from a standing start. When 5WPR began, Adzuna had no measured media presence in the United States. The published [Adzuna case study](/practice/Adzuna.cfm) reports 19.5 billion earned media impressions in under three years, with coverage in Forbes, CNBC, FOX Business, Business Insider, and Fast Company. If your brand is entering a new market, this is the pattern: build a repeatable supply of data and commentary, then place it where your buyers already read.`,`DailyPay did the same in financial services. The [DailyPay case study](/practice/DailyPay.cfm) reports 17.9 billion impressions in under three years across The New York Post, Business Insider, CBS Evening News, Forbes, and CNBC. In a category where trust decides the selection, that coverage becomes third-party proof your sales team can reuse.`,`When your analytics allow it, these programs also report reach, referral traffic, and pipeline or sales data, so you can watch coverage turn into business.`]}
174,{kind:`cards`,tone:`white`,heading:`Which practice area fits your brand?`,lead:`5WPR organizes its work into practice areas so the team on your account already knows your media, your customers, and your regulators. Full details are in the [5WPR practice areas index](/practice/) and the [services overview](/services/).`,images:!0,cardCta:`Discuss this service`,cards:[{title:`Consumer products and brands`,paragraphs:[`Launches, retail support, creator programs, and seasonal moments.`,`See [consumer products and brands](/practice/consumercfm.cfm) and the [e.l.f. Beauty program](/practice/elf-beauty.cfm).`]},{title:`Technology`,paragraphs:[`Funding news, product announcements, and trade and business media.`,`See [technology public relations](/practice/technologypr.cfm) and the [Storyblocks campaign](/practice/videoblocks-casestudy.cfm).`]},{title:`Financial services and fintech`,paragraphs:[`Executive commentary, category education, and business media.`,`See [financial services and fintech](/practice/financial-services-and-fintech.cfm), [DailyPay](/practice/DailyPay.cfm), and [Payoneer](/practice/payoneer-case-study.cfm).`]},{title:`Corporate communications`,paragraphs:[`Reputation, shareholder situations, and internal communications.`,`See [corporate communications](/practice/corporate-communications.cfm) and the [Standard General proxy campaign](/practice/standardgeneral.cfm).`]},{title:`Crisis and reputation`,paragraphs:[`Monitoring, response procedures, statement approval, and recovery.`,`See [crisis communications and reputation management](/practice/crisisprfirm.cfm).`]},{title:`Digital and AI search`,paragraphs:[`Digital public relations, search content, and citation measurement.`,`See the [5W AI Visibility Index](/ai-visibility-index/).`]}]},{kind:`awards`},{kind:`prose`,tone:`white`,heading:`How does 5WPR's research show where your brand stands in AI search?`,paragraphs:[`AI models like ChatGPT build their answers from published sources, such as news coverage, and owned sources, such as your website and social accounts. If those sources do not describe your brand accurately, or do not mention it at all, the model has nothing to cite when a customer asks.`,`The [5W AI Visibility Index](/ai-visibility-index/) measures this gap. It tracks five main AI models — ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews — and the series now spans more than 39 categories. 5W describes the discipline as ["PR for the machine reader"](/ai-visibility-index/methodology/) in its published methodology.`,`For your brand, the Index answers three questions before any program starts: citation share by brand within a category (sets a measured baseline and target), which sources each model cites (points your earned and owned media at those publications), and accuracy of claims about brands (corrects the public sources behind wrong answers).`,`The source finding is the one most brands act on first. 5WPR's [AI Visibility Index study of AI companies](/research/ai-companies/) analyzed 32,200 prompts across the five models in two waves for 2026. GitHub and ArXiv accounted for 31% of citations about AI companies, second only to Wikipedia. A brand in that category that only pitches business press is missing the sources the models weight most. 5WPR runs the same analysis for your category, identifies which publications the models cite, then helps your brand appear accurately in them.`,`No placement, page update, or schema block guarantees an AI citation; each model and its governing company controls its outputs. What the research gives you is a measured starting point, so you know where your brand stands before you spend.`]},{kind:`prose`,tone:`dark`,heading:`What happens when AI describes your brand wrong?`,paragraphs:[`AI answers can attach outdated products, expired partnerships, and incorrect executive or ownership relationships to your brand, and a customer reading the answer has no way to tell.`,`5W and Talent Resources tested more than 400 prompts across ChatGPT, Claude, Gemini, and Perplexity for the [Beauty AI Endorsement Index 2026](/ai-visibility-index/the-beauty-ai-endorsement-index-2026/). The study classified 22%, roughly one in five, of sampled recommendations in that category as fabricated or unverifiable, and documented invented product lines, expired partnerships, and incorrect founder relationships.`,`A 5WPR AI search visibility audit tracks your company name, claims, leadership, partnerships, cited sources, and factual errors across a fixed set of questions, so you see what your customers see.`,`Correcting a wrong answer usually means correcting the public sources behind it. You control your site, your press materials, and what you tell reporters. You do not control the model, and 5WPR does not claim to. The work is making the sources the model reads accurate and complete.`]},{kind:`split`,tone:`white`,heading:`How will you know your public relations program is working?`,lead:`You should receive reach, quality, and business effect as three separate measurements rather than one combined number, so you can see which part of the program is moving.`,paragraphs:[`Paid activity is measured alongside earned activity rather than 
174in place of it. 5WPR's [Samsung SmartThings case study](/practice/SmartThings.cfm) reports 4 million paid media impressions in six months. The same program reports more than 8 billion earned media impressions, close to 40,000 social engagements, and 17.28% Instagram audience growth. Reported side by side, you can see what each part of the budget produced.`,`Published case-study results describe one engagement under one set of conditions. They do not forecast the outcome of your program, and 5WPR will not present them as if they do.`],listLabel:`What we report`,items:[`Reach — impressions and placement counts`,`Quality — outlet tier, message accuracy, and share of voice against competitors you name`,`Business effect — referral traffic, branded search volume, pipeline, and sales when your company supplies that data`,`AI search — citation share by model and the sources behind each answer`]},{kind:`prose`,tone:`lavender`,heading:`What does crisis preparation protect for your brand?`,paragraphs:[`Crisis preparation is procedural work that happens before an incident occurs, not a response written during one. A brand that has decided in advance who speaks, and about what, spends the first hours of a crisis acting rather than arguing.`,`Preparation for your brand includes a monitoring setup, a named decision chain, pre-approved holding statements, a spokesperson list, and an agreed escalation threshold. 5WPR's [crisis communications and reputation management services](/practice/crisisprfirm.cfm) cover this work.`,`Contested shareholder situations create the same problem on a deadline. 5W's [Standard General case study](/practice/standardgeneral.cfm) covers a proxy battle with TEGNA. The case study reports more than 1 billion unique impressions across 38 targeted articles, including The Wall Street Journal and Bloomberg.`,`During an incident, your communications team monitors discussion, prepares responses, and shares verified information, while your legal, product, and safety teams determine corrective action. 5WPR's role is the first half of that split.`]},{kind:`caseStudies`,tone:`white`,heading:`What results has 5WPR published for brands like yours?`,lead:`5WPR publishes case studies across consumer, technology, financial, and corporate work so you can check the pattern that fits your brand before a first call.`,items:[{title:`Payoneer and Storyblocks: Coverage in Business and Technology Media`,paragraphs:[`The [Payoneer program](/practice/payoneer-case-study.cfm) reports more than 65 million unique media impressions in business and technology outlets.`,`The [Storyblocks campaign](/practice/videoblocks-casestudy.cfm) reports 26 placements and more than 85 million impressions in outlets including Forbes, Axios, Fox 5, and Good Day New York.`]},{title:`e.l.f. Beauty: Executive Visibility and Share of Voice`,paragraphs:[`5W's [e.l.f. Beauty Executive program](/practice/elf-beauty.cfm) generated 99 earned placements and 2.79 billion impressions during the reported engagement.`,`The chief executive's media share of voice rose 2.5 times during the measurement period. If executive visibility is your goal, that share-of-voice figure is the measurement to ask for.`]},{title:`“This PR firm is smart, focused and a business partner for us.”`,paragraphs:[`David Steinberg, Chief Executive Officer (CEO), Zeta Global`,`The figures above come from published case studies covering defined periods. Review the full set on the [5WPR case studies index](/practice/case-study.cfm).`]}],cta:{text:`Want to see where your brand stands in media and AI answers?`,label:`Work with 5WPR`,href:`#contact`}},{kind:`callouts`,tone:`lavender`,heading:`Research and proof behind the practice`,items:[{title:`Case studies`,body:`See how 5WPR programs produced coverage for brands in consumer, technology, financial services and corporate communications.`,cta:{label:`View case studies`,href:`/practice/case-study.cfm`}},{title:`Proprietary research: AI Visibility Index`,body:`Find out how often ChatGPT, Claude, Perplexity, Gemini and Google AI Overviews cite your category, and which sources they trust.`,cta:{label:`Read the research`,href:`/ai-visibility-index/`}},{title:`AI Search (GEO) programs`,body:`Build the machine-readable footprint that gets your brand cited and recommended, not just ranked.`,cta:{label:`Explore AI Search (GEO)`,href:`/practice/geo-optimization.cfm`}}]}],faqHeading:`Frequently Asked Questions About Public Relations Agencies`,faqs:[{q:`What will a public relations agency cost my brand?`,a:[`Most agency work runs on a monthly retainer sized to your scope, with project pricing used for launches, single announcements, and research programs. 5WPR's [contact form](/contactus/) lists monthly budget bands starting under $15,000 and extending past $100,000.`]},{q:`How long before my program produces coverage?`,a:[`Announcement-driven coverage often appears within the first weeks. Sustained presence in top-tier business media usually takes longer because it depends on a repeatable supply of news, data, or executive commentary that editors seek.`]},{q:`What is the difference between public relations and digital marketing?`,a:[`Public relations earns third-party coverage. Digital marketing buys and optimizes placement your company controls. 5WPR runs both through its digital marketing practice and its digital public relations team, so the two are planned together.`]},{q:`How does public relations affect my brand's AI search visibility?`,a:[`AI models overwhelmingly cite published sources. Coverage in the publications a model treats as trustworthy improves how often your brand appears in AI-generated summaries and answers. The effect is measurable but not guaranteed.`]},{q:`Does 5WPR work with early-stage companies?`,a:[`Yes. 5WPR's published client work spans venture-backed startups through Fortune 100 companies, listed on the [5WPR client roster](/clients/).`]}],closing:{heading:`Your brand's reputation now lives in two places: the coverage third parties publish about you, and the answers AI models generate from that c
174overage.`,paragraphs:[`Both depend on accurate information being available where readers, reporters, and models look for it.`,`5WPR connects earned media, corporate communications, crisis response, digital public relations, and AI search measurement into one program, and measures each part separately so you know what is working. Our goal is to make your brand's information easy to find, quote, share, and recommend.`,`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited and recommended. Learn more about [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],badges:[`Earned media`,`Corporate communications`,`Crisis response`,`AI search (GEO)`],primary:{label:`Request a Public Relations Consultation`,href:`#contact`}}};function mm(e){let t=`${gc}${e.path}`,n=[{"@context":`https://schema.org`,"@type":`Service`,name:e.h1,description:e.description,url:t,serviceType:e.breadcrumb??e.h1,provider:{"@id":`${gc}/#organization`},areaServed:`US`},{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:`Home`,item:`${gc}/`},{"@type":`ListItem`,position:2,name:`Services`,item:`${gc}/services/`},{"@type":`ListItem`,position:3,name:e.breadcrumb??e.h1,item:t}]}];return e.faqs&&e.faqs.length>0&&n.push({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:e.faqs.map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a.join(` `).replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`).replace(/\*\*/g,``)}}))}),{title:e.title,description:e.description,canonical:t,path:e.path,ogTitle:e.title,ogDescription:e.description,ogType:`website`,robots:`index, follow`,jsonld:n}}var hm=u(`/services/public-relations-agency`)({loader:async({context:e})=>(await e.queryClient.ensureQueryData(ks),{seo:mm(pm)}),head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(()=>F(()=>import(`./services.public-relations-agency-BEopX9L3.js`),__vite__mapDeps([81,1,12,5,6,7,8,9,10,13,14,15,16,17])),`component`)}),gm=u(`/services/brand-strategy-services`)({loader:async({context:e})=>(await e.queryClient.ensureQueryData(ks),{seo:mm(Rs)}),head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(()=>F(()=>import(`./services.brand-strategy-services-DnLE2bax.js`),__vite__mapDeps([82,1,12,5,6,7,8,9,10,13,14,15,16,17])),`component`)}),_m=e=>k({queryKey:[`service`,e],queryFn:()=>Gs({data:{slug:e}}),staleTime:5*6e4}),vm=u(`/services/$`)({loader:async({params:e,context:t})=>{let n=(e._splat??``).replace(/^\/+|\/+$/g,``);if(!n)throw w();let r=Hs(n);if(r)return await t.queryClient.ensureQueryData(ks),{slug:n,seo:mm(r),templatedSlug:r.slug};let i=await t.queryClient.ensureQueryData(_m(n));if(!i){let e=await Vl({data:{path:`/services/${n}`}});throw e.kind===`redirect`&&e.to?C({href:e.to,statusCode:e.status??301}):w()}return{slug:n,seo:Lc(i,{path:i.path,ogType:`website`}),templatedSlug:null}},head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(()=>F(()=>import(`./services._-Bs942PCn.js`),__vite__mapDeps([83,1,15,7,9,5,6,8,10,19,13,14,16,17,12,32,2,0,27,50])),`component`),errorComponent:s(()=>F(()=>import(`./services._-DbQ0zFIy.js`),__vite__mapDeps([84,1])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./services._-BVcnQLs_.js`),__vite__mapDeps([85,1,15,7,9,5,6,8,10])),`notFoundComponent`)}),ym=e=>k({queryKey:[`page_resolve`,e],queryFn:()=>Vl({data:{path:e}}),staleTime:5*6e4}),bm=(e,t)=>k({queryKey:[`research_related`,e,t],queryFn:()=>Ze({data:{section:e,excludePath:t,limit:6}}),staleTime:5*6e4}),xm=u(`/research/$`)({beforeLoad:async({params:e,location:t})=>{let{getRedirect:n}=await F(async()=>{let{getRedirect:e}=await import(`./redirects.functions-QKBlxdKq.js`);return{getRedirect:e}},__vite__mapDeps([40,6,7]));if(!(e._splat??``).replace(/^\/+|\/+$/g,``))return;let r=await n({data:{path:t.pathname}});if(r?.to){let{redirect:e}=await F(async()=>{let{redirect:e}=await import(`./esm-CuHQ5MFI.js`).then(e=>e.t);return{redirect:e}},__vite__mapDeps([15,1,7,9]));throw/^https?:\/\//i.test(r.to)?e({href:r.to,statusCode:301}):e({to:r.to,replace:!0})}},loader:async({params:e,context:t})=>{let n=e._splat??``;if(!n)throw w();let r=`/research/${n.replace(/^\/+|\/+$/g,``)}/`,i=await t.queryClient.ensureQueryData(Vd(r));if(i)return await t.queryClient.ensureQueryData(Rd),{mode:`avi`,path:r,seo:Lc(i,{path:r,ogType:`article`})};let a=await t.queryClient.ensureQueryData(wd(r));if(a){await t.queryClient.ensureQueryData(bm(a.page.section,r));let e=a.page;return{mode:`research`,path:r,seo:Lc(e,{path:r,ogType:`article`})}}let o=await t.queryClient.ensureQueryData(ym(r));if(o.kind===`page`){let e=o.page;return{mode:`page`,path:r,seo:Lc(e,{path:r,ogType:`website`})}}throw w()},head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(()=>F(()=>import(`./research._-CTraPF6H.js`),__vite__mapDeps([86,1,15,7,9,5,6,8,10,19,42,43,13,14,16,17,44,27,45,46,47,48,32,2,0,49,50])),`component`),errorComponent:s(()=>F(()=>import(`./research._-BY4BXGyW.js`),__vite__mapDeps([87,1])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./research._-DrnnLcQm.js`),__vite__mapDeps([88,1,15,7,9,5,6,8,10])),`notFoundComponent`)}),Sm=u(`/practice/case-study.cfm`)({loader:({context:e})=>e.queryClient.ensureQueryData(Js),head:()=>({meta:[{title:`Case Studies | PR & Marketing Wins | 5WPR`},{name:`description`,content:`Explore 5WPR's case studies — earned media, brand launches, crisis response, and integrated campaigns across every major industry.`},{property:`og:title`,content:`Case Studies | 5WPR`},{property:`og:description`,content:`Explore 5WPR's case studies — earned media, brand launches, crisis response, and integrated campaigns across every major industry.`},{property:`og:url`,content:`https://www.5wpr.com/practice/case-study.cfm`},{property:`og:type`,content:`website`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/practice/case-study.cfm`}]}),component:s(()=>F(()=>import(`./practice.case-study_._cfm-DDAaM8dN.js`),__vite__mapDeps([89,1,5,6,7,8,9,10,13,14,15,16,17])
174),`component`),errorComponent:s(()=>F(()=>import(`./practice.case-study_._cfm-DU5GpR5-.js`),__vite__mapDeps([90,1])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./practice.case-study_._cfm-DX0qKl68.js`),__vite__mapDeps([91,1,5,6,7,8,9,10])),`notFoundComponent`)}),Cm=e=>k({queryKey:[`practice_page`,e],queryFn:()=>Kc({data:{slug:e}}),staleTime:5*6e4});function wm(e){return e?e.replace(/<script\b[^>]*\btype\s*=\s*["']application\/ld\+json["'][^>]*>[\s\S]*?<\/script>/gi,``):``}var Tm=`Forbes.WIRED.The Verge.TechCrunch.TechRadar.Engadget.CNET.ZDNet.Digital Trends.Tom's Guide.Gizmodo.Variety.Bloomberg.Fortune.Axios.USA Today.Business Insider.CNN Underscored.Country Living.Good Housekeeping.Fast Company.The Wall Street Journal.CNBC.Yahoo.Mashable.HuffPost.Refinery29.Shape.Rolling Stone.The Manual.Chicago Tribune.Byrdie.Popular Science.9to5Mac.Skift.PhocusWire.Travel Weekly.Fox News`.split(`.`);function Em(e){return e.replace(/<[^>]*>/g,` `).replace(/&amp;/gi,`&`).replace(/&#x27;|&#39;|&apos;/gi,`'`).replace(/&quot;/gi,`"`).replace(/&nbsp;/gi,` `).replace(/\s+/g,` `).trim()}function Dm(e){let t=[],n=/<div\b[^>]*class=["'][^"']*\bresults-item\b[^"']*["'][^>]*>([\s\S]*?)<\/div>/gi,r;for(;(r=n.exec(e))!==null;){let e=Em(r[1].match(/<p\b[^>]*>([\s\S]*?)<\/p>/i)?.[1]??``),n=Em(r[1].match(/<h[34]\b[^>]*>([\s\S]*?)<\/h[34]>/i)?.[1]??``);e&&n&&t.push({value:e,label:n})}return t}function Om(e){return e.split(/<h2\b[^>]*>/i).slice(1).map(e=>{let t=e.search(/<\/h2>/i);return{heading:Em(e.slice(0,t)),html:e.slice(t+5).trim()}})}function km(e){return e.split(/<h3\b[^>]*>/i).slice(1).map(e=>{let t=e.search(/<\/h3>/i);return{q:Em(e.slice(0,t)),a:e.slice(t+5).trim()}})}var Am=(e,...t)=>t.some(t=>e.toLowerCase()===t);function jm({html:e,className:t=``}){return(0,z.jsx)(`div`,{className:`cs3-prose ${t}`,dangerouslySetInnerHTML:{__html:e}})}function Mm({page:e}){let t=(0,R.useMemo)(()=>Om(e.body_html??``),[e.body_html]),n=(0,R.useMemo)(()=>Dm(e.results_html??``),[e.results_html]),r=e.client_name||e.title,i=String(e.industry??``).split(`|`)[0].trim()||`Case study`,a=e.og_image??null,o=(0,R.useMemo)(()=>{let t=Em(e.body_html??``);return Tm.filter(e=>RegExp(`(?<![A-Za-z])${e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}(?![A-Za-z])`).test(t)).slice(0,9)},[e.body_html]),{data:s}=Oe(Al),l=(0,R.useMemo)(()=>{let t=(s??[]).find(t=>t.slug===e.slug),n=new Set(t?.topic_keys??[]);return(s??[]).filter(t=>t.slug!==e.slug&&t.client_name!==e.client_name).map(e=>({item:e,relevance:(e.topic_keys??[]).filter(e=>n.has(e)).length})).filter(({relevance:e})=>e>0).sort((e,t)=>t.relevance-e.relevance||Date.parse(t.item.updated_at)-Date.parse(e.item.updated_at)).slice(0,3).map(({item:e})=>e)},[s,e.slug,e.client_name]),u=t.find(e=>/^frequently asked/i.test(e.heading)),d=u?km(u.html):[],f=t.filter(e=>e!==u),p=f.findIndex(e=>Am(e.heading,`results`,`deliver`));return(0,z.jsxs)(`div`,{className:`cs3 bg-[var(--paper)] text-[var(--paper-ink)]`,children:[(0,z.jsx)(`style`,{children:`
175        .cs3 {
176          --case-dark: var(--color-navy);
177          --case-dark-soft: var(--color-navy-card);
178          --case-accent: var(--color-periwinkle);
179          --case-paper: var(--paper);
180          --case-paper-soft: var(--paper-lavender);
181          --case-ink: var(--paper-ink);
182          --case-copy: var(--paper-ink-soft);
183          --case-muted: var(--paper-ink-mute);
184          --case-rule: var(--paper-rule);
185        }
186        .cs3-prose { color: var(--case-copy); font-size: 1.0625rem; line-height: 1.75; }
187        .cs3-prose > * + * { margin-top: 1.1rem; }
188        .cs3-prose ul { list-style: none; padding: 0; }
189        .cs3-prose ul > li { position: relative; padding-left: 1.5rem; }
190        .cs3-prose ul > li + li { margin-top: .6rem; }
191        .cs3-prose ul > li::before { content: ""; position: absolute; left: 0; top: .7em; width: .55rem; height: .55rem; border-radius: 2px; background: var(--case-accent); }
192        .cs3-prose a { color: var(--paper-periwinkle); font-weight: 600; text-decoration: underline; text-decoration-color: var(--case-accent); text-underline-offset: 4px; }
193        .cs3 a:focus-visible { outline: 2px solid var(--case-accent); outline-offset: 4px; }
194        .cs3-related-image { transition: transform 500ms ease, opacity 300ms ease; }
195        .cs3-related-link:hover .cs3-related-image { transform: scale(1.035); opacity: 1; }
196        @media (prefers-reduced-motion: reduce) { .cs3-related-image { transition: none; } }
197      `}),(0,z.jsx)(Ce,{}),(0,z.jsxs)(`main`,{children:[(0,z.jsx)(`section`,{className:`relative overflow-hidden bg-[var(--case-dark)] text-[var(--color-ink-1)]`,children:(0,z.jsxs)(`div`,{className:`container-x grid min-h-[620px] items-stretch gap-10 pt-24 lg:grid-cols-[7fr_5fr] lg:pt-20`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col justify-center py-14 lg:py-24 lg:pr-8`,children:[(0,z.jsxs)(`nav`,{"aria-label":`Breadcrumb`,className:`mb-10 flex flex-wrap items-center gap-3 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--color-ink-4)]`,children:[(0,z.jsx)(c,{to:`/clients/`,className:`transition-colors hover:text-[var(--color-ink-1)]`,children:`Clients`}
197),(0,z.jsx)(`span`,{"aria-hidden":!0,className:`h-px w-6 bg-[var(--color-ink-4)]/40`}),(0,z.jsx)(c,{to:`/practice/case-study.cfm`,className:`transition-colors hover:text-[var(--color-ink-1)]`,children:`Case studies`}),(0,z.jsx)(`span`,{"aria-hidden":!0,className:`h-px w-6 bg-[var(--color-ink-4)]/40`}),(0,z.jsx)(`span`,{className:`normal-case tracking-normal`,children:r})]}),(0,z.jsxs)(`p`,{className:`mono-label text-[var(--case-accent)]`,children:[`Case study · `,i]}),(0,z.jsx)(`h1`,{className:`mt-5 font-display text-4xl font-semibold leading-[1.02] md:text-5xl lg:text-6xl`,children:e.title}),e.subtitle?(0,z.jsx)(`p`,{className:`mt-7 max-w-2xl text-lg leading-relaxed text-[var(--color-ink-2)] md:text-xl`,children:e.subtitle}):null,(0,z.jsx)(`div`,{className:`mt-10`,children:(0,z.jsx)(pl,{asChild:!0,size:`lg`,className:`h-12 rounded-none px-6 text-xs font-semibold uppercase tracking-[0.14em]`,children:(0,z.jsxs)(`a`,{href:`#contact`,children:[`Work with 5W `,(0,z.jsx)(ls,{"aria-hidden":!0})]})})})]}),a?(0,z.jsx)(`div`,{className:`flex items-center pb-14 lg:py-24`,children:(0,z.jsx)(`div`,{className:`flex aspect-[4/3] w-full items-center justify-center rounded-md bg-[var(--case-paper)] p-10 md:p-14`,children:(0,z.jsx)(`img`,{src:a,alt:`${r} logo`,className:`max-h-full w-full max-w-[420px] object-contain`,loading:`eager`,fetchPriority:`high`})})}):null]})}),n.length?(0,z.jsx)(`section`,{id:`results`,className:`scroll-mt-24 border-b border-[var(--case-rule)] bg-[var(--case-paper)]`,children:(0,z.jsx)(`div`,{className:`container-x grid sm:grid-cols-2 ${n.length>=3?`lg:grid-cols-3`:``}`,children:n.map((e,t)=>(0,z.jsxs)(`div`,{className:`py-8 sm:px-8 lg:py-10 ${t>0?`border-t border-[var(--case-rule)] sm:border-t-0 sm:border-l`:``}`,children:[(0,z.jsx)(`p`,{className:`font-display text-4xl font-semibold leading-none text-[var(--paper-periwinkle)] md:text-5xl`,children:e.value}),(0,z.jsx)(`p`,{className:`mt-3 text-sm text-[var(--case-muted)]`,children:e.label})]},e.label))})}):null,e.hero_html?(0,z.jsx)(`section`,{className:`bg-[var(--case-paper)] py-20 md:py-24`,children:(0,z.jsxs)(`div`,{className:`container-x grid gap-10 lg:grid-cols-[5fr_6fr] lg:gap-20`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--paper-periwinkle)]`,children:`Overview`}),(0,z.jsxs)(`h2`,{className:`mt-5 max-w-xl font-display text-3xl font-medium leading-tight md:text-4xl`,children:[`The brief from `,r]})]}),(0,z.jsx)(jm,{html:e.hero_html,className:`lg:pt-8`})]})}):null,f.map((e,t)=>{let i=Am(e.heading,`strategy`,`drive`);return t===p?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`section`,{className:`bg-[var(--case-accent)] py-20 text-[var(--case-dark)] md:py-28`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsx)(`p`,{className:`mono-label`,children:`Results`}),(0,z.jsx)(`h2`,{className:`mt-6 max-w-5xl font-display text-4xl font-semibold leading-[1.02] md:text-6xl`,children:n.length?n.slice(0,2).map((e,t)=>(0,z.jsxs)(`span`,{children:[t>0?` · `:``,(0,z.jsx)(`span`,{className:`text-[var(--color-ink-1)]`,children:e.value}),` `,e.label.toLowerCase()]},e.label)):`What the program delivered for ${r}`})]})}),(0,z.jsx)(`section`,{className:`bg-[var(--case-paper)] py-20 md:py-24`,children:(0,z.jsxs)(`div`,{className:`container-x grid gap-12 ${o.length?`lg:grid-cols-[6fr_5fr]`:`max-w-4xl`} lg:gap-20`,children:[(0,z.jsx)(jm,{html:e.html}),o.length?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`p`,{className:`mono-label mb-5 text-[var(--paper-periwinkle)]`,children:`Coverage included`}),(0,z.jsx)(`div`,{className:`grid grid-cols-2 border-l border-t border-[var(--case-rule)] sm:grid-cols-3`,children:o.map(e=>(0,z.jsx)(`div`,{className:`flex min-h-24 items-center justify-center border-b border-r border-[var(--case-rule)] p-4 text-center font-display text-lg font-semibold`,children:e},e))})]}):null]})})]},e.heading):(0,z.jsx)(`section`,{className:`${i||t%2==1?`bg-[var(--case-paper-soft)]`:`bg-[var(--case-paper)]`} py-16 md:py-24`,children:(0,z.jsxs)(`div`,{className:`container-x grid gap-8 lg:grid-cols-[5fr_7fr] lg:gap-20`,children:[(0,z.jsxs)(`div`,{children:[i?(0,z.jsx)(`p`,{className:`mono-label text-[var(--paper-periwinkle)]`,children:`How 5W ran the program`}):null,(0,z.jsx)(`h2`,{className:`mt-3 font-display text-3xl font-semibold leading-tight md:text-4xl`,children:e.heading})]}),i?(0,z.jsx)(`div`,{className:`rounded-md border border-[var(--case-rule)] bg-[var(--case-paper)] p-7 md:p-9`,children:(0,z.jsx)(jm,{html:e.html})}):(0,z.jsx)(jm,{html:e.html})]})},e.heading)}),d.length?(0,z.jsx)(`section`,{className:`bg-[var(--case-paper-soft)] py-20 md:py-24`,children:(0,z.jsxs)(`div`,{className:`container-x grid gap-10 lg:grid-cols-[5fr_7fr] lg:gap-20`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--paper-periwinkle)]`,children:`FAQ`}),(0,z.jsx)(`h2`,{className:`mt-3 font-display text-3xl font-semibold md:text-4xl`,children:`Frequently asked questions`})]}
197),(0,z.jsx)(`div`,{className:`divide-y divide-[var(--case-rule)] border-y border-[var(--case-rule)]`,children:d.map(e=>(0,z.jsxs)(`div`,{className:`py-6`,children:[(0,z.jsx)(`h3`,{className:`font-display text-xl font-semibold`,children:e.q}),(0,z.jsx)(jm,{html:e.a,className:`mt-3`})]},e.q))})]})}):null,l.length>0?(0,z.jsx)(`section`,{className:`bg-[var(--case-dark)] py-20 text-[var(--color-ink-1)] md:py-24`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--case-accent)]`,children:`More client work`}),(0,z.jsxs)(`h2`,{className:`mt-4 font-display text-4xl font-semibold md:text-5xl`,children:[`Get results like `,r]}),(0,z.jsx)(`div`,{className:`mt-10 grid gap-4 md:grid-cols-3`,children:l.map(e=>(0,z.jsxs)(`a`,{href:Le(e.path),className:`cs3-related-link group relative min-h-[230px] overflow-hidden rounded-md border border-[var(--color-ink-4)]/20 bg-[var(--case-dark-soft)]`,children:[e.thumbnail_url&&/\/client-logos\//.test(e.thumbnail_url)?(0,z.jsx)(`div`,{className:`absolute inset-x-6 top-6 bottom-24 flex items-center justify-center rounded-md bg-[var(--case-paper)] p-6`,children:(0,z.jsx)(`img`,{src:e.thumbnail_url,alt:`${e.client_name||e.title} logo`,className:`cs3-related-image max-h-full max-w-[70%] object-contain`,loading:`lazy`})}):e.thumbnail_url?(0,z.jsx)(`img`,{src:e.thumbnail_url,alt:e.client_name||e.title,className:`cs3-related-image absolute inset-0 h-full w-full object-cover opacity-75`,loading:`lazy`}):null,e.thumbnail_url&&/\/client-logos\//.test(e.thumbnail_url)?null:(0,z.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-0 bg-gradient-to-t from-[var(--case-dark)] via-[var(--case-dark)]/30 to-transparent`}),(0,z.jsxs)(`div`,{className:`absolute inset-x-0 bottom-0 p-6`,children:[(0,z.jsx)(`p`,{className:`text-xs uppercase tracking-[0.16em] text-[var(--case-accent)]`,children:`Case study`}),(0,z.jsx)(`h3`,{className:`mt-2 font-display text-xl font-semibold text-[var(--color-ink-1)]`,children:e.client_name||e.title})]})]},e.slug))})]})}):null]}),(0,z.jsx)(Ge,{pageKey:`case-study-${e.slug}`,variant:`navy`}),(0,z.jsx)(Se,{})]})}function Nm(e){return e?.page_type===`case_study`&&/-pr-case-study\/$/.test(e?.path??``)}var Pm={slug:`Lifestyle.cfm`,practiceKey:`apparelandaccessories`,breadcrumb:`Lifestyle & Fashion PR`,h1:`Lifestyle and Fashion PR Agency`,heroLead:`A lifestyle and fashion public relations (PR) agency builds cultural relevance and commercial visibility for apparel, footwear, and accessory brands. 5W Public Relations combines earned media, creator partnerships, and Generative Engine Optimization to position specialty retail brands across editorial publications, social platforms, and artificial intelligence (AI) shopping assistants.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`View case studies`}],trustLabel:`Selected lifestyle and fashion clients`,caseMatches:[`payless`,`ashley stewart`,`g-shock`,`blenders`],caseHeading:`Selected lifestyle and fashion case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Hallucination Index`,body:[`A standardized framework for measuring brand-risk errors in AI answers.`],href:`/research/hallucination-index-fashion-pilot/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/hallucination-index-fashion-pilot-cover.webp`,coverAlt:`Hallucination Index — 5WPR research report cover`},researchHeading:`Research behind our lifestyle and fashion practice`,faqSlug:`Lifestyle.cfm`,faqHeading:`Frequently asked questions about lifestyle PR`,sections:[{heading:`What does a lifestyle and fashion PR agency do?`,lead:`5W develops integrated programs across earned media, digital marketing, social media, influencer strategy, creator commerce and retail communications.`,tone:`white`,body:[`The lifestyle practice secures product placements and brand features in fashion, women's, men's, and home media. The team targets publications ranging from Vogue, ELLE, and GQ to category trades and digital-first outlets, when the story fits their readers and editorial calendars.`,`For creator partnerships, 5W c
197an activate influencers across TikTok, Instagram and YouTube, supported by audience-fit review, content briefs, usage rights, disclosure and performance reporting. Affiliate marketing can provide attributable traffic or sales data, but results vary by creator, product and offer.`,`The agency also develops cultural partnerships, events and brand activations, often crossing into [entertainment and sports marketing](/practice/lifestyleprentertainmentpragency.cfm). For direct-to-consumer and retail brands, earned media can be coordinated with paid social, affiliate programs, email, retailer content and digital commerce strategy.`,`When reputational issues arise, the [crisis management](/practice/crisisprfirm.cfm) team helps founders and brands coordinate verified information and response across media, search, social platforms and AI answer engines.`,`5W's consumer and lifestyle PR clients span everything from CPG launches to fashion and apparel brands.`,`Category needs differ. Blenders Eyewear competes in a visual, creator-led market, while G-SHOCK operates in a watch category shaped by product history, collaborations, technical features, collectors, and retail availability. A footwear relaunch such as Payless requires a different communications plan from the needs of a DTC apparel company such as Quince or a jewelry company such as James Allen.`]},{heading:`How is AI changing lifestyle and apparel discovery?`,lead:`AI shopping assistants are becoming an additional discovery layer for apparel and footwear consumers.`,tone:`dark`,body:[`AI search has become another product research channel for fashion consumers. A shopper asks ChatGPT to suggest minimalist sneakers, compare handbag options, or identify clothing for a specific trip or use case.`,`5W's AI visibility audits examine where a brand appears, which competitors receive mentions, which sources receive citations, and which customer questions produce different results. [Learn about GEO optimization](/practice/geo-optimization.cfm)`,`Creator and editorial content play different roles in discovery. 5W can coordinate TikTok, Instagram, YouTube, affiliate and editorial programs while maintaining required disclosures and measuring each channel against its own objective. A TikTok review, YouTube comparison, affiliate article, and fashion editorial each play a different role during product research.`,`Trend cycles now compress from seasons into weeks. Winning brands build the editorial and creator infrastru
197cture required to react inside these narrow trend windows.`],callout:{kicker:`Why it works`,body:[`5W's The State of AI Search 2026 (2026) found that major AI engines favor different source mixes and that earned media remained the strongest single GEO signal across the categories studied. When shoppers ask AI tools to compare apparel, footwear or accessories, clear product entities, credible editorial coverage, current retailer data, useful owned content and disclosed creator reviews give systems better-supported information to retrieve.`,`AI inclusion is not equivalent to a magazine feature, and no content change or placement guarantees a citation, recommendation or sale.`],link:{href:`/practice/geo-optimization.cfm`,label:`GEO optimization services`}}},{heading:`What lifestyle and fashion PR services does 5WPR provide?`,lead:`5W structures campaigns to hit editorial, social, creator, and retail channels simultaneously.`,tone:`white`,layout:`centered`,cards:[{title:`Brand launch and re-launch campaigns`,body:`A brand launch may require coordinated media, creator, social, retailer and digital activity. 5W can align those workstreams around product availability and campaign timing, as illustrated by the agency's work supporting the Payless North American relaunch.`,links:[{href:`/practice/case-study.cfm`,label:`View the case studies`}]},{title:`Editorial and media relations`,body:`The agency maintains relationships with editors, stylists, beauty directors, and reporters. 5W secures placements in print, digital, and trade media. Coverage spans product features, gift guides, founder profiles, and category trend stories.`},{title:`Fashion Week and industry events`,body:`Industry conversation includes New York, Paris, Milan, London and Miami Fashion Week, alongside trade shows such as MAGIC and MICAM. 5W can plan media, creator and social activity around these moments; coverage and retail outcomes remain subject to audience interest and execution.`},{title:`Influencer and creator programs`,body:`The agency identifies and activates creators whose audiences match the brand's exact customer profile. 5W structures partnerships that produce organic content and licensed paid creative. These creator programs run across TikTok, Instagram, and YouTube.`,links:[{href:`/services/influencer-marketing-agency.cfm`,label:`Influencer marketing`}]},{title:`Founder and executive visibility`,body:`Apparel and accessory brands rely heavily on founder visibility. 5W builds executive PR programs around brand founders. The team secures speaking opportunities, podcast appearances, and bylined content to establish these leaders as category authorities.`},{title:`Product seeding and gifting`,body:`A successful product moment with a creator or stylist sets the tone for the relationship. 5W runs seeding programs that match specific products to the right tier of recipient. This process produces content rights, editorial mentions, and brand affinity. Gifting, sponsored deliverables, content rights, and editorial coverage remain separate arrangements.`},{title:`Cultural partnerships and brand collaborations`,body:`Brand collaborations and cultural partnerships generate high-impact visibility. 5W structures partnerships with artists, athletes, designers, or other brands. These integrations earn coverage well beyond the individual reach of either partner.`,links:[{href:`/practice/lifestyleprentertainmentpragency.cfm`,label:`Entertainment public relations`}]},{title:`Retail and DTC marketing support`,body:`For retail brands, 5W supports trade media, retail-partner communications, store openings and paid or organic social content. For DTC brands, PR can be coordinated with affiliate marketing and commerce analytics to evaluate referral activity without assuming that coverage alone caused sales.`},{title:`AI-native discovery and GEO`,body:`Customers may ask ChatGPT, Perplexity and Google AI Overviews for fashion or beauty recommendations. A 5W AI visibility audit can document citations, factual accuracy, recommendation patterns and recurring sources for defined shopping questions, but cannot position or guarantee a brand inside an answer.`,links:[{href:`/ai-citation-audit/`,label:`AI visibility audit`}]}]},{heading:`Which categories does the 5W lifestyle practice support?`,lead:`5W operates dedicated teams for specific consumer lifestyle categories.`,tone:`muted`,bullets:[`Wine and Spirits`,`Food and Beverage`,`Travel and Hospital
197ity`,`Entertainment and Sports Marketing`,`Beauty and Grooming, supported by our [beauty digital marketing](/practice/beauty-digital-marketing-agency.cfm) team`,`Apparel, Accessories, and Specialty Retail`]},{heading:`What lifestyle and fashion brands has 5WPR supported?`,lead:`5W partners with footwear, apparel, accessories, jewelry, and specialty retail brands.`,tone:`white`,body:[`The agency's footwear clients include Payless, Aerosoles, Kuru, and Freebird. In the apparel and DTC space, 5W has represented CUUP, Quince, Anatomie, BuddyLove, Free Country, Combatant Gentlemen, DUBGEE, Dagsmejan, eShakti, [Ashley Stewart](/practice/ashleystewart.cfm), MVP Collections, Ruby Love, Rue21, The Children's Place, Shapermint, and Playful Promises.`,`Accessories and eyewear clients include Blenders Eyewear, Sunnies Eyewear, PopSockets, Nobis, Pajar, and Collars & Co. The jewelry and watch practice has supported Angara, James Allen, Verragio, Jedora, JewelryTV, and CASIO AMERICA (G-SHOCK). Specialty retail and industry partners include Snoop Doggie Doggs, William Murray Golf, Topps, Threadless, Lucy & Co., The Giving Moment, Sevenly, LIKEtoKNOW.it (RewardStyle), and Miami Fashion Week.`],callout:{kicker:`Payless`,body:[`“5WPR has successfully helped us relaunch our brand back into North America through creative story-telling, innovative ideas, executive partnerships and collaborations.” — Michelle Valdivia, Head of Marketing & Global Director, Payless`],link:{href:`/practice/case-study.cfm`,label:`Lifestyle case studies`}}}],closing:{kicker:`How can brands work with the 5W lifestyle and fashion team?`,headline:`Connect every discovery path to a defined business objective.`,body:[`5W works with lifestyle, fashion and specialty retail brands seeking an integrated mix of earned media, digital marketing, social media, influencers and AI-search visibility.`,`Fashion brands compete for attention across more than just magazines, social feeds, and retail shelves. Consumers encounter the same product through an editor, creator, retailer, search result, or AI-generated answer before visiting the company's website. An effective PR program connects those discovery paths to a defined business objective.`,`Lifestyle and fashion brands lose consideration when an AI shopping answer or creator feed presents a competitor before the shopper reaches accurate product and retailer information. 5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology — building the machine-readable footprint that gets brands cited, not just ranked. [Learn more about GEO optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},Fm=[{q:`What does a lifestyle PR agency do?`,a:`A lifestyle PR agency builds visibility across fashion, apparel, accessories, footwear and adjacent consumer categories. Programs can combine editorial media, digital marketing, social media, influencers, activations and retail support. Sales impact should be evaluated through reliable attribution rather than assumed.`},{q:`How is fashion PR different from traditional PR?`,a:`Fashion PR operates on shorter trend cycles and depends heavily on visual content and editorial relationships. The discipline requires deep knowledge of seasonal calendars, fashion week dynamics, and retail buying cycles. The strategic principles match broader PR, but the execution is category-specific.`},{q:`What does a fashion PR agency do for a DTC brand?`,a:`For a DTC brand, fashion PR can combine editorial coverage, creator content, affiliate programs, paid media and lifecycle marketing. Search and GEO work aim to improve accurate visibility for category questions, but appearance and revenue cannot be guaranteed.`},{q:`How can PR support sales for a fashion brand?`,a:`Editorial coverage and creator content can support referral traffic, branded search and retail conversations. Affiliate links or commerce analytics may provide direct attribution for some actions, while broader awareness and AI visibility require separate measurement.`}],Im={slug:`digital-marketing-agency/content-marketing-agency.cfm`,practiceKey:`selected_clients`,breadcrumb:`Content Marketing`,h1:`Content Marketing Agency for Search, Lead Generation and AI Discovery`,heroLead:`5W Public Relations (5WPR) is a content marketing agency that develops articles, research, case studies, reports, video, social content, and sales materials around the questions buyers ask before making a purchase decision. 5WPR connects content strategy with search engine optimization (SEO), digital PR, social media, paid distribution, and generative engine optimization (GEO). Programs support organic discovery, qualified traffic, lead generation, and sales conversations while measuring AI search visibility as a separate outcome.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`Request a content strategy consultation`}],trustLabel:`Selected clients`,caseMatches:[`thriftbooks`,`g-shock`],caseHeading:`Case examples: ThriftBooks, G-SHOCK, Freight Farms`,featuredReport:{kicker:`Proprietary Research`,heading:`AI-Friendly Publications`,body:[`5W scores the publications most likely to turn media coverage into AI citation value.`],href:`/ai-visibility-index/ai-friendly-publications-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ai-friendly-publications-index-2026-cover.webp`,coverAlt:`AI-Friendly Publications — 5WPR research report cover`},researchHeading:`Research behind our content marketing practice`,faqSlug:`digital-marketing-agency/content-marketing-agency.cfm`,faqHeading:`Frequently asked questions about content marketing`,sections:[{heading:`How should content marketing support search and AI discovery?`,lead:`Content should begin with a buyer question rather than a publishing quota.`,tone:`white`,body:[`An enterprise softw
197are buyer may need pricing, integration details, implementation requirements, and customer evidence. A consumer researching a product may want a comparison, specifications, retailer availability, and instructions. A financial-services buyer may need methodology and regulatory information before evaluating a provider.`,`Those questions should determine what the company publishes. Traditional SEO helps people discover that information through search results. GEO measures whether AI systems mention the company, cite its pages, or describe its products correctly when users ask related questions. The two channels overlap, but they do not produce identical results.`,`Google's 2026 guidance for generative AI search tells publishers to focus on unique, useful content rather than creating pages for every possible query variation. Google states that no separate technical requirement exists for appearing as a supporting link in AI Overviews or AI Mode beyond the requirements for Google Search.`,`5WPR establishes a baseline across search and AI platforms before deciding what content gaps deserve investment. [Learn more about GEO optimization services](/practice/geo-optimization.cfm)`]},{heading:`What content should companies create?`,lead:`Different formats answer different buyer questions.`,tone:`dark`,body:[`Content teams should not assume that one format has an inherent AI advantage. A case study gives a buyer useful evidence. A glossary defines a technical term. A research report adds information that didn't exist elsewhere. The value comes from the information selected, the asset, and the audience it serves.`],callout:{kicker:`Why original research matters`,body:[`Original research gives a company something to publish that competitors cannot reproduce without conducting the same work. A defensible report should state where the data came from, when it was collected, what was measured, how the sample was selected, and what limitations affect the findings. Statistics should trace back to observed data or a named source. A report should not be called a study when the publisher cannot explain how the findings were produced.`,`Google's current people-first content guidance asks whether a page provides original information, reporting, research, or analysis, and whether it adds value beyond rewriting existing sources. 5WPR uses original research across several channels. One data set supports a full report, media outreach, executive commentary, charts, LinkedIn content, sales materials, and follow-up analysis without copying the same article across every channel.`],link:{href:`/research/`,label:`View our research methodology`}}},{heading:`How should B2B content support lead generation?`,lead:`5WPR organizes content around four stages of a real evaluation process.`,tone:`muted`,layout:`centered`,body:[`A SaaS company selling to enterprise buyers may need an integration guide and implementation FAQ before it needs another broad thought-leadership article. A company targeting 100 named accounts may use a research report in LinkedIn advertising, executive outreach, webinars and account-based campaigns. [Learn about our B2B digital marketing practice](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm)`,`Marketing teams should measure form fills, demo requests, qualified opportunities and content-influenced pipeline separately from page views. Content that appears somewhere in a sales journey did not necessarily cause the final contract.`],cards:[{title:`Discover`,body:`Explain the problem, market and category.`},{title:`Evaluate`,body:`Address use cases, capabilities, integrations and alternatives.`},{title:`Validate`,body:`Provide research, case studies, methodology and customer evidence.`},{title:`Act`,body:`Give the buyer a clear path to request information, schedule a demo or contact the company.`}]},{heading:`How should SEO content be planned?`,lead:`Search volume is one input, not the entire editorial strategy.`,tone:`white`,body:[`Content teams should examine: buyer questions, search intent, existing rankings, competitor coverage, sales-team questions, customer-support questions, product documentation, content gaps, published research, AI-generated answers and citations, and pages that contain outdated information.`,`A content plan may identify a need for a comparison page, case study, or product FAQ rather than another blog article. Google warns against creating large numbers of pages primarily to capture every possible search or query variation. Content teams should consolidate weak or duplicative pages when one stronger resource answers the buyer's question.`],callout:{kicker:`Ready to audit your content?`,body:[`5WPR's audit approach maps existing content against buyer questions, search rankings and AI citations before recommending what to build next.`],link:{href:`/practice/digital-marketing-agency.cfm`,label:`Let's audit your content strategy`}}}],closing:{kicker:`Case examples: ThriftBooks, G-SHOCK, Freight Farms`,headline:`Content strategy should follow the product and buyer, not a publishing calendar.`,body:[`5W developed a content and social strategy for ThriftBooks around reading communities, seasonal moments, genres, user-generated content, and #BookTok. The published case study reports a 545% increase in audience size, more than 50 million video views, and a 26% increase in conversion rate.`,`5W's G-SHOCK digital program used consumer research, social analysis, video, fashion content, and creator activity to refresh how the watch brand communicated its heritage. The documented program generated more than 650,000 social engagements and an 18.45% engagement rate.`,`These programs show why content strategy should follow the product and buyer, not a standard publishing calendar.`],ctas:[{href:`/practice/case-study.cfm`,label:`View the ThriftBooks case study`}]}},Lm=[{q:`What is a content marketing agency?`,a:`5WPR is a content marketing agency that develops articles, research, case studies, reports, video, social content, and sales materials around the questions buyers ask before making a purchase decision, connecting content strategy with SEO, digital PR, social media, paid distribution, and GEO.`},{q:`How does content marketing connect with SEO and AI search (GEO)?`,a:`Traditional SEO helps people discover information through search results, while GEO measures whether AI systems mention the company, cite its pages, or describe its products correctly when users ask related questions. The two channels overlap but do not produce identical results.`},{q:`Does one content format have an advantage in AI search?`,a:`No. Content teams should not assume that one format has an inherent AI advantage — a case study, a glossary and a research report each serve a different buyer need, and the value comes from the information selected, not the format itself.`},{q:`Why should original research be part of a content strategy?`,a:`Original research gives a company something to publish that competitors cannot reproduce without conducting the same work. A defensible report should state where the data came from, when it was collected, what was measured, how the sample was selected, and what limitations affect the findings.`},{q:`How does 5WPR structure B2B content for lead generation?`,a:`5WPR organizes content around four stages: Discover (explain the problem, market and category), Evaluate (use cases, capabilities, integrations and alternatives), Validate (research, case studies, methodology and customer evidence), and Act (a clear path to request information, schedule a demo or contact the company).`},{q:`Can content or SEO work guarantee an AI citation?`,a:`No separate technical requirement exists for appearing as a supporting link in AI Overviews or AI Mode beyond the requirements for Google Search, and no content change or placement guarantees an AI citation, recommendation or sale.`}],Rm={slug:`digital-marketing-agency/corporate-digital-marketing.cfm`,practiceKey:`corporate`,breadcrumb:`Corporate Digital Marketing`,h1:`Corporate Digital Marketing Agency for Enterprise Brands`,heroLead:`5W Public Relations (5WPR) is a corporate digital marketing agency supp
197orting enterprise brands with search, paid media, content, social media, digital PR, and AI search visibility. Enterprise programs can address corporate reputation, product demand, account-based marketing, executive visibility, and customer acquisition.`,heroCtas:[{href:`/practice/digital-marketing-agency.cfm`,label:`Request a corporate digital marketing consultation`}],trustLabel:`Selected corporate clients`,caseHeading:`Selected corporate digital marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`How 5W Measures AI Visibility`,body:[`The permanent canonical methodology for the 5W AI Visibility Index and The 5W AI Trust Map of America. Prompt design, sample prompts, engine consistency, modeling logic, tie-breaking, limitations.`],href:`/research/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/how-we-measure-ai-visibility-cover.webp`,coverAlt:`How 5W Measures AI Visibility — 5WPR research report cover`},researchHeading:`Research behind our corporate digital marketing practice`,faqSlug:`digital-marketing-agency/corporate-digital-marketing.cfm`,faqHeading:`Frequently asked questions about corporate digital marketing`,sections:[{heading:`How does enterprise digital marketing support qualified demand?`,lead:`Enterprise marketing needs to account for more than one buyer.`,tone:`white`,body:[`A software purchase may involve a business leader, IT, procurement, finance, legal, and end users. 5WPR can map digital activity to those separate decisions.`,`Paid search can capture people already researching a product or business problem. LinkedIn can reach defined professional audiences. [Explore our LinkedIn marketing strategies](/practice/digital-marketing-agency/social-media-marketing-agency.cfm) Content can answer questions about implementation, evidence, integrations, or use cases. Executive communications can address business issues that affect customers, employees, investors, or partners. [Learn about executive communications services](/practice/corporate-communications.cfm)`,`Measurement should follow the business objective. A B2B program may track qualified visits, account engagement, demo requests, sales opportunities, and pipeline. A consumer program may track product traffic, e-commerce activity, retailer engagement, or other verified conversion events.`,`Marketing activity can support those outcomes without proving that one click, article, or campaign caused a closed sale.`]},{heading:`Enterprise SEO and search visibility`,lead:`Enterprise SEO requires more than publishing blog posts.`,tone:`dark`,body:[`Large websites may need work across site architecture, technical accessibility, internal linking, product or service pages, international sections, content gaps, and website migrations.`,`5WPR prioritizes queries that matter to the business rather than chasing traffic that doesn't reflect buyer demand. Reporting separates non-brand search visibility, qualified organic traffic, and conversion activity. No SEO agency can guarantee a ranking or a dominant position in search results.`],callout:{kicker:`Paid search, LinkedIn and enterprise media`,body:[`Paid media reach buyers at different stages of research. Google Search addresses high-intent demand. LinkedIn supports campaigns aimed at named job functions, industries, or enterprise accounts.`,`Account-based marketing makes sense when a company knows which organizations it wants to reach. 5WPR's B2B digital marketing practice includes paid search, content, social media and lead-generation programs for business audiences.`],link:{href:`/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm`,label:`Learn about account-based marketing`}}},{heading:`How does AI search affect enterprise brand discovery?`,lead:`Enterprise buyers use ChatGPT, Claude, Gemini, Perplexity, Microsoft Copilot, and Google AI search experiences while researching companies, products, and markets.`,tone:`muted`,body:[`Generative Engine Optimization, or GEO, measures how a brand appears in those answers. [Learn about GEO services](/practice/geo-optimization.cfm)`,`A 5WPR baseline for AI visibility records: buyer question, AI platform, brand mention, product or service description, source citation, competitor appearance, material factual error, and date of the test.`,`An enterprise softw
197are company may discover that AI answers describe an old product capability. A corporation may find an outdated executive title or acquisition. Marketing teams decide whether the issue requires an updated page, new documentation, public relations, third-party correction, or another response.`,`No article, media placement or website change guarantees an AI citation or brand mention.`]}],closing:{kicker:`Let's evaluate your enterprise strategy`,headline:`Talk to the enterprise digital team.`,body:[`5WPR supports enterprise brands with search, paid media, content, social media, digital PR, and AI search visibility programs mapped to corporate reputation, product demand, account-based marketing, executive visibility, and customer acquisition objectives.`,`Marketing teams decide whether an AI answer, an outdated executive title, or an old product capability requires an updated page, new documentation, public relations, third-party correction, or another response.`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`Learn about GEO services`}]}},zm=[{q:`What does a corporate digital marketing agency do for enterprise brands?`,a:`5WPR supports enterprise brands with search, paid media, content, social media, digital PR, and AI search visibility, addressing corporate reputation, product demand, account-based marketing, executive visibility, and customer acquisition.`},{q:`How does enterprise digital marketing account for multiple buyers?`,a:`A software purchase may involve a business leader, IT, procurement, finance, legal, and end users, so 5WPR maps digital activity — paid search, LinkedIn, content and executive communications — to those separate decisions.`},{q:`What does enterprise SEO involve beyond blog posts?`,a:`Large websites may need work across site architecture, technical accessibility, internal linking, product or service pages, international sections, content gaps, and website migrations, with reporting that separates non-brand search visibility, qualified organic traffic, and conversion activity.`},{q:`How does 5WPR use paid search and LinkedIn for enterprise brands?`,a:`Google Search addresses high-intent demand while LinkedIn supports campaigns aimed at named job functions, industries, or enterprise accounts; account-based marketing makes sense when a company knows which organizations it wants to reach.`},{q:`How does AI search affect enterprise brand discovery?`,a:`Enterprise buyers use ChatGPT, Claude, Gemini, Perplexity, Microsoft Copilot, and Google AI search experiences while researching companies, products, and markets, and GEO measures how a brand appears in those answers, recording brand mentions, source citations, competitor appearance and factual errors.`},{q:`Can digital marketing guarantee a sale or an AI citation?`,a:`No. Marketing activity can support qualified demand outcomes without proving that one click, article, or campaign caused a closed sale, and no article, media placement or website change guarantees an AI citation or brand mention.`}],Bm={slug:`digital-marketing-agency/event-digital-marketing.cfm`,practiceKey:`selected_clients`,breadcrumb:`Event Digital Marketing`,h1:`Event Digital Marketing Agency for Conferences, Launches and Brand Events`,heroLead:`5W Public Relations (5WPR) is an event digital marketing agency supporting conferences, trade shows, product launches, corporate events, consumer activations, and hybrid programs. 5WPR combines paid search, social media, content, email, creator programs, public relations, search optimization, and Generative Engine Optimization (GEO). Event strategy should begin with the business objective rather than a standard media plan. A B2B conference may need director-level attendees from target companies. A product launch may prioritize media, creators, and customers. A CES exhibitor may care more about booked meetings and booth traffic than total event registrations.`,heroCtas:[{href:`/practice/digital-marketing-agency.cfm`,label:`Request an event digital marketing consultation`}],trustLabel:`Selected clients`,caseHeading:`Selected event digital marketing case studies`,researchHeading:`Research behind our event digital marketing practice`,faqSlug:`digital-marketing-agency/event-digital-marketing.cfm`,faqHeading:`Frequently asked questions about event digital marketing`,sections:[{heading:`How does digital marketing support event registrations and attendance?`,lead:`Registration and attendance are not the same result.`,tone:`white`,body:[`A campaign generates 5,000 registrations for a free webinar and produces a high 
197no-show rate. A paid industry conference may generate fewer registrations but attract more buyers, partners, or executives.`,`5WPR defines the measures before promotion begins. B2B teams define what makes an attendee valuable. Job title, company, account fit, buying role or industry may matter more than raw registration volume. Marketing should report those differences rather than treat every form submission as an attendee.`],bullets:[`Registrations`,`Paid ticket sales`,`Qualified registrations`,`Check-ins`,`Attendance rate`,`Meetings booked`,`Session attendance`,`Sponsor leads`,`Cost per registration`,`Cost per checked-in attendee`,`Sales opportunities`,`Post-event pipeline`]},{heading:`Event promotion through paid search, LinkedIn, social and creators`,lead:`Different channels reach attendees at different points in their decision.`,tone:`dark`,body:[`Paid search reaches people already looking for an event, conference, or topic. Event pages should give prospective attendees enough information to decide: event name, date and time, location, speakers, agenda, ticket price, registration deadline, accessibility information, transportation and parking, virtual access where offered, and cancellation or rescheduling status.`,`LinkedIn supports conferences aimed at defined professional audiences. [Explore our LinkedIn marketing strategies](/practice/digital-marketing-agency/social-media-marketing-agency.cfm) Campaigns segment creative by audience and next action.`,`Instagram, TikTok, YouTube, LinkedIn, and other platforms support speaker announcements, event trailers, demonstrations, and live coverage. Creator programs work differently depending on event type. [Learn about influencer marketing for events](/services/influencer-marketing-agency.cfm)`],callout:{kicker:`Event landing pages and conversion`,body:[`An event page should answer the questions that block registration. 5WPR tests headlines, page structure, calls to action, and registration paths based on the event objective.`,`Form design also matters. A consumer activation may need only the information required to reserve a place. A B2B conference may ask for company and role when those fields help qualify attendees.`],link:{href:`/practice/digital-marketing-agency.cfm`,label:`Let's evaluate your event strategy`}}},{heading:`How should event marketing change before, during and after?`,lead:`Each phase of an event has a different job to do.`,tone:`muted`,layout:`centered`,cards:[{title:`Before the event`,body:`Pre-event marketing builds awareness and gives the audience reasons to register. Promotion timing should match the event.`},{title:`During the event`,body:`Live content should capture information that remains useful after the event ends. B2B teams should also document meetings and lead status when sales follow-up matters.`},{title:`After the event`,body:`Post-event content extends an event's value beyond the closing session. Follow-up should also recognize different audiences.`}]},{heading:`How does AI search affect event discovery?`,lead:`Professionals use ChatGPT, Claude, Gemini, Perplexity, and Google AI search to research conferences, trade shows, and industry events.`,tone:`white`,body:[`A 5WPR AI search visibility audit tracks event name, date, location, speakers, agenda topics, registration information, competing events, cited sources, material factual errors, and platform/test date. [Learn about GEO for events](/practice/geo-optimization.cfm)`,`Monitoring becomes important when event information changes. A speaker may withdraw. A venue may change. Tickets may sell out. Marketing teams correct information they control and identify inaccurate third-party information.`,`No press release, structured-data update, media placement, or event page guarantees an AI mention or citation.`]}],closing:{kicker:`Request an event digital marketing consultation`,headline:`Event strategy should begin with the business objective, not a standard media plan.`,body:[`5WPR combines paid search, social media, content, email, creator programs, public relations, search optimization, and GEO to supp
197ort conferences, trade shows, product launches, corporate events, consumer activations, and hybrid programs.`,`A B2B conference may need director-level attendees from target companies. A product launch may prioritize media, creators, and customers. A CES exhibitor may care more about booked meetings and booth traffic than total event registrations.`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`Learn about GEO for events`}]}},Vm=[{q:`What does an event digital marketing agency do?`,a:`5WPR supports conferences, trade shows, product launches, corporate events, consumer activations, and hybrid programs by combining paid search, social media, content, email, creator programs, public relations, search optimization, and GEO.`},{q:`Are event registrations and attendance the same result?`,a:`No. A campaign can generate 5,000 registrations for a free webinar with a high no-show rate, while a paid industry conference may generate fewer registrations but attract more buyers, partners, or executives — so 5WPR defines the measures that matter before promotion begins.`},{q:`What measures does 5WPR use for event marketing?`,a:`Useful event measures include registrations, paid ticket sales, qualified registrations, check-ins, attendance rate, meetings booked, session attendance, sponsor leads, cost per registration, cost per checked-in attendee, sales opportunities, and post-event pipeline.`},{q:`How does event marketing change before, during and after an event?`,a:`Before the event, marketing builds awareness and gives the audience reasons to register. During the event, live content should capture information that remains useful afterward and B2B teams should document meetings and lead status. After the event, follow-up content extends the event's value and recognizes different audiences.`},{q:`How does AI search affect event discovery?`,a:`Professionals use ChatGPT, Claude, Gemini, Perplexity, and Google AI search to research conferences, trade shows, and industry events, so a 5WPR AI search visibility audit tracks event details, competing events, cited sources, and material factual errors.`},{q:`Can 5WPR guarantee an AI mention for an event?`,a:`No. No press release, structured-data update, media placement, or event page guarantees an AI mention or citation.`}],Hm={slug:`digital-marketing-agency/creative-and-branding-agency.cfm`,practiceKey:`selected_clients`,breadcrumb:`Creative & Branding`,h1:`Creative and Branding Agency for Content, Digital and Brand Strategy`,heroLead:`5W Public Relations (5WPR) is a creative and branding agency that helps enterprise and consumer brands define positioning, messaging, visual identity, and the creative systems used across content, social media, digital campaigns, and sales materials. 5W supports brand strategy, UX and UI design, photography, video production, animation, product rendering, packaging, content creation, and digital advertising creative. Content marketers use the brand system to answer practical questions: Which claims are approved? Which product strengths matter to each audience? Which terminology should writers use? Which visual rules apply to video, social posts, landing pages, and sales materials?`,heroCtas:[{href:`/services/design-agency.cfm`,label:`Request a creative and branding consultation`}],trustLabel:`Selected clients`,caseMatches:[`g-shock`,`thriftbooks`],caseHeading:`G-SHOCK and ThriftBooks: brand refresh examples`,researchHeading:`Research behind our creative and branding practice`,faqSlug:`digital-marketing-agency/creative-and-branding-agency.cfm`,faqHeading:`Frequently asked questions about creative and branding`,sections:[{heading:`What does a creative and branding agency do?`,lead:`A creative and branding agency defines how a company presents itself to customers, buyers, employees, and other audiences.`,tone:`white`,body:[`5W begins with market research, competitor messaging, customer needs, sales-team feedback, and existing brand data. The work identifies category conventions, audience questions, and product strengths that deserve more attention.`,`The resulting brand system may define: brand positioning, messaging hierarchy, approved claims, tone and terminology, visual identity, typography and design rules, photography direction, content templates, channel-specific guidance, and review and approval processes.`,`A brand system should not invent a difference that the product cannot defend. Useful positioning explains why a company matters to a defined audie
197nce and identifies the evidence supporting that position. [Learn about brand strategy](/services/pr-marketing-strategy.cfm)`]},{heading:`How does brand strategy help content marketing teams?`,lead:`Content production becomes harder when every writer, social team, agency, and executive describes the company differently.`,tone:`dark`,body:[`A useful brand system reduces that problem. Content teams use a messaging framework to determine which product points belong in an article, landing page, LinkedIn post, case study, or sales deck. [Explore our content marketing services](/practice/digital-marketing-agency/content-marketing-agency.cfm) The core position remains stable, but the format shifts by audience.`,`Consistency should apply to facts, terminology, tone, and visual standards. Channel execution should still change.`]},{heading:`Creative services: identity, UX/UI, video and production`,lead:`5W's creative practice spans identity systems, UX/UI, and full production.`,tone:`muted`,layout:`centered`,cards:[{title:`Brand identity and design systems`,body:`5W's current design practice includes branding, typography, visual systems, and brand guidelines. Enterprise teams may need governance around those assets. Templates, shared libraries, and version control help teams use the same system without recreating core elements.`,links:[{href:`/services/design-agency.cfm`,label:`View our design work`}]},{title:`UX and UI design`,body:`5W lists UX and UI design among its current creative capabilities, including user research, wireframing, prototyping, and iterative design. UX work should support a defined user action rather than promise conversion growth.`},{title:`Photography, video and production`,body:`5W's design services include photography, video storyboarding, production, post-production, animation, and motion graphics. Motion graphics point out a product, process, or data set when static copy would require more explanation.`}]},{heading:`How does AI search affect branding?`,lead:`AI search creates another place where inconsistent brand information becomes visible.`,tone:`white`,body:[`ChatGPT, Gemini, Claude, Perplexity, and Google AI may describe companies, products, executives, and brand relationships when users ask questions. [Learn about GEO for brands](/practice/geo-optimization.cfm)`,`A brand-level audit verifies: company name, parent-company relationship, product names, executive roles, brand positioning, current partnerships, product claims, source citations, and material factual errors.`,`Creative teams should not assume visual identity alone drives text-based AI citations. The practical connection is factual consistency. Marketing teams can identify those conflicts and correct information they control. No brand guideline, design system, or content campaign guarantees that an AI platform will cite or mention a company.`]}],closing:{kicker:`G-SHOCK and ThriftBooks: brand refresh examples`,headline:`A brand refresh should retain existing equity, not abandon it.`,body:[`G-SHOCK provides a useful example of a refresh rather than a complete abandonment of existing equity. 5W's digital case study shows G-SHOCK needed to update its social expression while retaining its durability reputation. The documented program generated more than 650,000 social engagements and an 18.45% engagement rate.`,`ThriftBooks provides another example. 5W developed a message map and channel-specific content strategy. The program adapted ideas across Instagram, Facebook and TikTok rather than publishing the same creative everywhere. The case study reports a 545% increase in audience size, more than 50 million video views, and a 26% increase in conversion rate.`],ctas:[{href:`/practice/case-study.cfm`,label:`View the G-SHOCK case study`}]}},Um=[{q:`What does a creative and branding agency do?`,a:`5WPR defines how a company presents itself to customers, buyers, employees, and other audiences, beginning with market research, competitor messaging, customer needs, sales-team feedback, and existing brand data to identify category conventions, audience questions, and product strengths.`},{q:`What does a 5WPR brand system typically define?`,a:`The resulting brand system may define brand positioning, messaging hierarchy, approved claims, tone and terminology, visual identity, typography and design rules, photography direction, content templates, channel-specific guidance, and review and approval processes.`},{q:`How does brand strategy help content marketing teams?`,a:`A useful brand system reduces the problem of every writer, social team, agency, and executive describing the company differently, giving content teams a messaging framework to determine which product points belong in each format while the core position remains stable.`},{q:`What creative services does 5W provide?`,a:`5W's creative practice includes brand identity and design systems, UX and UI design (user research, wireframing, prototyping, and iterative design), and photography, video storyboarding, production, post-production, animation, and motion graphics.`},{q:`How does AI search affect branding?`,a:`ChatGPT, Gemini, Claude, Perplexity, and Google AI may describe companies, products, executives, and brand relationships when users ask questions, so a brand-level audit verifies company name, parent-company relationship, product names, executive roles, positioning, partnerships, claims, source citations, and material factual errors.`},{q:`Can a brand guideline guarantee an AI citation?`,a:`No. Creative teams should not assume visual identity alone drives text-based AI citations — the practical connection is factual consistency, and no brand guideline, design system, or content campaign guarantees that an AI platform will cite or mention a company.`}],Wm={slug:`apps-and-marketplaces.cfm`,practiceKey:`technology`,breadcrumb:`App & Marketplace PR`,h1:`App Public Relations & Digital Marketing Agency`,heroLead:`5WPR is a mobile app and marketplace PR agency building earned media coverage, brand authority, and measurable user growth across consumer apps, B2B platforms, on-demand services, and marketplace models at every stage from pre-launch through category dominance. Apps including AirHelp, goPuff, Storyblocks, Homeis, Heal, HealthKick, Wisdo, and Myle have used 5WPR to secure coverage in the technology, business, and vertical trade publications that reach early adopters and drive app store visibility.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`View case studies`}],trustLabel:`Selected app and marketplace clients`,caseMatches:[`gopuff`,`airhelp`,`storyblocks`,`homeis`],caseHeading:`Selected app and marketplace case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Dating Apps`,body:[`Hinge wins the answer. Tinder is the punchline.`],href:`/research/dating-app-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/dating-app-ai-visibility-index-2026-cover.webp`,coverAlt:`Dating Apps — 5WPR research report cover`},researchHeading:`Research behind our app and marketplace practice`,faqSlug:`apps-and-marketplaces.cfm`,faqHeading:`Frequently asked questions about app PR and marketing`,sections:[{heading:`App PR & Marketing Services Overview`,lead:`An app PR agency builds the media presence, brand credibility, and narrative authority that convert downloads into retained users who return and spend.`,tone:`white`,body:[`For app and marketplace businesses, earned media in technology publications, business press, and vertical trade outlets directly influences user acquisition, investor perception, and competitive positioning. 5WPR executes integrated app public relations and digital marketing programs that build brand awareness and convert it into measurable growth — from launch through category dominance.`]},{heading:`How Does PR Help App & Marketplace Businesses Grow?`,lead:`PR accelerates growth for apps and platforms across acquisition, executive visibility, and competitive positioning.`,tone:`dark`,body:[`PR accelerates growth for apps and platforms by securing coverage in technology, business, and vertical media that reaches early adopters and drives organic download spikes; positioning founders and executives as category authorities that attract both users and investors; building the brand narrative that sustains competitive differentiation as the category matures; and creating the earned media momentum that paid user acquisition alone cannot replicate.`,`For apps and platforms managing data incidents, negative reviews, or competitive attacks, 5WPR's [Crisis Communication & Reputation Management](/practice/crisisprfirm.cfm) practice integrates directly with technology client programs.`]}
197,{heading:`App Launch PR Strategy: From Embargo to Sustained Coverage`,lead:`A successful app launch requires a specific strategic sequence.`,tone:`muted`,body:[`A successful app launch requires a specific strategic sequence. First, 5WPR builds pre-launch editorial relationships and briefs media under embargo before launch day, ensuring coverage coordination across technology, business, and vertical trade outlets simultaneously.`,`On launch day, media relations secure the initial wave of reviews and coverage that drives app store visibility and organic downloads. The strategy then transitions immediately from launch coverage to the sustained narrative program that keeps the app in the media conversation beyond the first news cycle.`,`5WPR has guided early-stage startups through their first major launch, counseled established platforms through major product upgrades and pivots, and managed the communications around funding rounds, strategic partnerships, and corporate announcements across the full app and marketplace lifecycle. Related services: [Technology PR](/practice/technologypr.cfm) and [Financial Communications](/practice/financial-communications-pre-ipo-companies.cfm).`]},{heading:`Marketplace PR: Managing Two Sides of the Market`,lead:`Marketplace businesses face a unique communications challenge.`,tone:`white`,body:[`Marketplace businesses face a unique communications challenge: they must simultaneously build credibility with both supply and demand sides of the market, manage the reputational risks that come with operating a two-sided platform, and establish category authority in a space that typically has multiple well-funded competitors racing toward the same position.`,`5WPR builds marketplace PR programs that address both sides of the market — consumer-facing earned media that drives demand, trade and B2B coverage that builds supply-side credibility, and corporate communications that positions the platform as the durable category leader. Our [Corporate Communications](/practice/corporate-communications.cfm) practice supports marketplace businesses managing complex stakeholder relationships across investors, regulators, suppliers, and end users.`]},{heading:`Digital PR + Search Authority for App Businesses`,lead:`Digital PR for app and marketplace businesses combines earned media strategy with online authority building.`,tone:`dark`,body:[`Digital PR for app and marketplace businesses combines earned media strategy with online authority building — securing coverage and backlinks in high-authority technology and business publications that drive both referral traffic and search rankings for competitive app category terms.`,`Unlike traditional PR alone, digital PR for apps directly connects media coverage to measurable outcomes: app store ranking improvements driven by increased brand search volume, domain authority gains that improve organic discoverability, and referral traffic from high-authority tech publications that converts to downloads and signups.`,`5WPR's app digital marketing programs integrate [Digital PR](/practice/digital-pr.cfm) with paid user acquisition, app store optimization, and content strategy — ensuring every earned media placement contributes to the app's long-term organic growth infrastructure, not just a single news cycle.`]},{heading:`Generative Engine Optimization (GEO) for App Discovery`,lead:`AI-powered search is becoming a primary discovery channel for both consumer app users and B2B software buyers.`,tone:`muted`,body:[`Generative engine optimization, or GEO, is the practice of building a brand's presence in AI-generated search answers — the responses that ChatGPT, Perplexity, Google AI Overviews, and similar tools produce when users, investors, or enterprise buyers ask questions about apps, platforms, and marketplace solutions.`,`As AI-powered search becomes a primary discovery channel for both consumer app users and B2B software buyers, apps that are not being cited by LLMs are losing visibility they may not realize is missing.`,`When a user asks an AI tool "What is the best on-demand delivery app?", "Which telehealth platforms are leading the market?", or "What PR agency specializes in app businesses?", the brands and agencies with established AI citation authority appear in the answer — and those without it do not.`,`5WPR builds GEO programs for app and marketplace clients that structure content, earn authoritative citations, and establish brand mentions across the digital sources AI engines draw from — ensuring clients appear in AI-generated answers across every relevant category query. Learn more: [GEO - Generative Engine Optimization](/practice/geo-optimization.cfm).`]},{heading:`App & Marketplace Client Work: Real Examples`,lead:`5WPR's app and marketplace client experience spans category leaders across delivery, travel, media and community platforms.`,tone:`white`,body:[`AirHelp — Category leader in international air passenger rights and flight compensation claims. 5WPR positioned AirHelp for geographic expansion and category dominance through media relations and founder visibility.`,`goPuff — On-demand delivery service competing in a crowded last-mile logistics space. 5WPR secured over 200 media placements during geographic expansion, translating coverage into market entry support across new cities.`,`Storyblocks — Stock media platform. 5WPR established thought leadership positioning and secured coverage in technology and media publications that built brand authority among content creators and professionals.`,`Homeis — Expat and immigrant community platform requiring dual-audience messaging — both immigrant users and services providers. 5WPR's marketplace expertise handled both sides.`,`We work with apps and platforms across consumer mobile apps, B2B SaaS platforms, on-demand delivery and services, marketplace models connecting buyers and sellers, telehealth and health tech platforms, fintech and payments apps, creator economy platforms, and enterprise softw
197are with consumer-facing components. View more: [Case Studies](/practice/case-study.cfm).`]},{heading:`What Types of App Businesses Does 5WPR Work With?`,lead:`5WPR supports app and marketplace businesses across every major category.`,tone:`dark`,layout:`centered`,cards:[{title:`Consumer Mobile Apps`,body:`Fitness trackers, productivity apps, entertainment and streaming, social apps, dating apps, wellness and health apps.`},{title:`B2B SaaS Platforms`,body:`For SaaS businesses with strong platform characteristics, 5WPR's [SaaS PR](/practice/saas-pr.cfm) practice works in direct partnership with the apps and marketplace team.`},{title:`Marketplace Models`,body:`Connecting buyers and sellers: food delivery, rideshare, services, housing, freelance work platforms.`},{title:`Fintech & Payments`,body:`Digital wallets, payment processing, investment apps, banking platforms.`},{title:`Telehealth & Health Tech`,body:`Virtual care, prescription delivery, wellness platforms, health data integration.`},{title:`Creator Economy Platforms`,body:`Content monetization, creator networks, production tools.`},{title:`Consumer Technology & Digital Health`,body:`For apps with strong consumer technology positioning, 5WPR's consumer tech team provides additional category depth. Related: [Consumer Technology](/practice/consumer-technology.cfm) and [Digital Health & Health Technology](/practice/digital-health-and-health-technology.cfm).`}]},{heading:`App Retention, User Engagement & Lifecycle Marketing`,lead:`Acquisition becomes expensive when users install an app and immediately leave.`,tone:`muted`,body:[`Acquisition becomes expensive when users install an app and immediately leave. Marketing teams should identify the first product action associated with continued use.`,`Onboarding flows help users reach that action. Email, push notifications and in-app messages can then support feature education, reminders, account completion or appropriate win-back campaigns. Retention work should not become a substitute for fixing a product problem. Repeated churn after the same screen, feature or payment step can indicate an issue involving usability, pricing, expectations or product value.`,`Marketing data can identify the pattern. Product teams need to determine the cause. Related: [Performance Marketing](/practice/digital-marketing-agency/performance-marketing-agency.cfm) and [Social Media Marketing](/practice/digital-marketing-agency/social-media-marketing-agency.cfm).`]},{heading:`Ratings, Reviews & Social Proof in App Marketing`,lead:`Ratings and reviews can influence store conversion and provide information about product problems.`,tone:`white`,body:[`Ratings and reviews can influence store conversion and provide information about product problems. App teams should track recurring themes rather than focus only on the average rating.`,`Comments about login failures, pricing, missing features, subscriptions or customer service can reveal where marketing promises no longer match the user experience. Companies should not manipulate ratings, suppress legitimate criticism, or present incentivized feedback as independent opinion.`,`Marketing, support and product teams can use review patterns to determine whether the solution requires better communication or a product change.`]},{heading:`When to Call 5WPR for App PR & Digital Marketing`,lead:`Signals that it's time to bring in an app PR and marketing team.`,tone:`dark`,layout:`centered`,cards:[{title:`App Launches`,body:`Pre-launch positioning, embargo strategy, launch day coordination, launch coverage.`},{title:`Geographic Expansion`,body:`Entry into new markets, localized messaging, regional media relations.`},{title:`Funding Announcements`,body:`Series A/B/C visibility, investor positioning, category authority building.`},{title:`Product Pivots or Major Updates`,body:`Repositioning existing user base, new market entry, feature education.`},{title:`Category Leadership`,body:`Sustained media coverage, founder thought leadership, analyst relations.`},{title:`Crisis Response`,body:`Data incidents, negative reviews, competitive attacks, app store policy violations.`},{title:`AI Search Visibility`,body:`GEO audits, citation gap analysis, c
197ontent authority building for AI discovery.`}]}],closing:{kicker:`Ready to build your app's media presence and AI search visibility?`,headline:`Move users from awareness to installation to sustained engagement.`,body:[`App and marketplace businesses compete in a crowded landscape where downloads are commodities but retention and revenue are competitive advantages. 5WPR combines public relations, digital marketing, creator partnerships, and generative engine optimization to build the brand authority and media presence that drive both user acquisition and long-term competitive positioning.`,`Whether you're launching a new app, expanding into new markets, managing a crisis, or building category authority in a crowded space, 5WPR brings the technology PR expertise, marketplace knowledge, and GEO strategy to move users from awareness to installation to sustained engagement.`,`Ready to build your app's media presence and AI search visibility? Request an App Marketing Consultation: [email protected] | (212) 999-5585.`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},Gm=[{q:`What's the difference between app store optimization (ASO) and earned media PR?`,a:`App store optimization improves how an app is presented and discovered within Apple's App Store and Google Play through screenshots, descriptions, reviews and ratings. Earned media PR secures independent coverage in publications that reach potential users — influencing both download intent and app store visibility through increased brand search volume.`},{q:`Should apps invest in creator partnerships for discovery?`,a:`Creators can demonstrate an app through a real task. A travel creator could explain how AirHelp evaluates a disrupted flight. A fitness creator could demonstrate how an activity app records a workout. Creator partnerships require clear disclosure of material connections, brand agreements, vehicle access and content rights. See: Influencer Marketing.`},{q:`How does AI search change app discovery strategy?`,a:`Users can now ask ChatGPT, Claude, Gemini, Perplexity and Google AI search experiences which apps fit a particular task. The question often matters more than the broad category. App owners should measure AI visibility around the problems their users actually ask about through a GEO audit.`},{q:`How should app companies measure user acquisition success?`,a:`Track installs, activation, acquisition cost, retention, subscriptions, purchases and lifetime value. The most useful metric is the event that best reflects meaningful product use or revenue for that app. Downloads remain an intermediate metric; activation, retained users, subscriptions, or qualified leads often provide a better view of business performance.`},{q:`What is a realistic budget for app PR and growth programs?`,a:`Budget decisions should reflect customer value, conversion rates, retention, available capital and the amount of data needed to evaluate campaigns. No universal acquisition budget applies to every app.`}],Km={slug:`automotive-marketing-agency.cfm`,practiceKey:`selected_clients`,breadcrumb:`Automotive PR`,h1:`Automotive PR Agency for Vehicle Launches, Brand Strategy & EV Marketing`,heroLead:`5WPR is an automotive PR agency supporting vehicle manufacturers, mobility companies, dealers, automotive technology providers, and suppliers with public relations, crisis management, digital marketing, and generative engine optimization (GEO). Programs combine media relations, digital advertising, social media, creator partnerships, executive communications, events, and AI search strategy.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`View case studies`}],trustLabel:`Selected automotive clients`,caseHeading:`Selected automotive case studies`,researchHeading:`Research behind our automotive practice`,faqSlug:`automotive-marketing-agency.cfm`,faqHeading:`Frequently asked questions about automotive PR and marketing`,sections:[{heading:`What Does an Automotive PR Agency Do?`,lead:`An automotive PR agency coordinates media coverage, brand positioning, and digital visibility to move buyers from awareness through to sales.`,tone:`white`,body:[`An automotive PR agency coordinates media coverage, brand positioning, and digital visibility to move buyers from awareness through research, configuration, dealer contact, test drives, and qualified sales interactions. The automotive buyer journey now spans manufacturer sites, dealer inventory, safety databases, independent reviews, social content, search engines, and AI-generated comparisons before making first contact.`,`5WPR can coordinate launch strategy, paid search, paid social, content, media relations, creator programs and dealer or direct-sales support around those buyer decisions. Learn more: [Brand Strategy & Positioning](/services/pr-marketing-strategy.cfm).`,`Note: Sales depend on inventory, price, financing, dealer follow-up, product demand and market conditions. Marketing works best when those sources describe the same vehicle accurately.`]},{heading:`Vehicle Launch PR: From Announcement to Sustained Coverage`,lead:`Vehicle launches require accurate information before the first review, advertisement or dealer page appears.`,tone:`dark`,body:[`Vehicle launches require accurate information before the first review, advertisement or dealer page appears. Marketing teams should establish the model name, trim structure, powertrain, pricing, specifications, safety information, availability and launch timing before publication.`,`Related: [Corporate Communications](/practice/corporate-communications.cfm) and [Crisis Communication](/practice/crisisprfirm.cfm).`],layout:`centered`,cards:[{title:`Pre-Launch Phase (4-8 weeks before announcement)`,body:`Media briefings under embargo.`}
197,{title:`Executive interview scheduling`,body:`Coordinating executive availability ahead of launch day.`},{title:`Vehicle access for press testing`,body:`Arranging press vehicle access ahead of coverage.`},{title:`Specification verification with engineering teams`,body:`Confirming specifications with engineering before publication.`},{title:`Launch date coordination across all channels`,body:`Aligning launch timing across every channel.`},{title:`Press release distribution across newswire`,body:`Launch Day Coordination: distributing the release across newswire.`},{title:`Media outreach to automotive publications, business press, and vertical trade outlets`,body:`Coordinated outreach across automotive, business and trade media.`},{title:`Executive interviews and commentary`,body:`Securing executive interviews and commentary on launch day.`},{title:`Dealer notification and launch materials distribution`,body:`Getting dealers the notification and materials they need at launch.`},{title:`Social media and digital campaign activation`,body:`Activating social and digital campaigns alongside the launch.`},{title:`Creator partnership content seeding`,body:`Seeding creator partnership content around the launch.`}]},{heading:`Automotive PR Strategy: OEM & Dealer Marketing Coordination`,lead:`Automakers and dealers control different parts of the purchase journey, requiring coordinated but distinct PR and marketing strategies.`,tone:`muted`,body:[`Automakers and dealers control different parts of the purchase journey, requiring coordinated but distinct PR and marketing strategies.`,`OEM Marketing Strategy focuses on model establishment, national brand narrative, specifications, and competitive differentiation. Dealer Marketing Strategy emphasizes local inventory, regional pricing, financing options, and community involvement.`,`Local Search & Digital PR becomes critical when buyers move from model research to purchase research. Dealer pages should keep model year, trim, inventory and contact information current. See: [Digital Marketing](/practice/digital-marketing-agency.cfm) and [Reputation Management](/services/reputationmanagementprfirm.cfm).`]},{heading:`Automotive Safety Claims & Regulatory Compliance in PR`,lead:`Safety marketing requires precision and regulatory awareness.`,tone:`white`,layout:`centered`,body:[`Safety marketing requires precision and regulatory awareness. Automotive PR teams must distinguish between official safety ratings, independent evaluations, and marketing claims.`],cards:[{title:`Official Safety Standards`,body:`Set by NHTSA (5-Star Safety Ratings) and IIHS (Insurance Institute for Highway Safety). Proper messaging identifies which organization produced a rating, distinguishes between crash worthiness and crash avoidance systems, and uses terminology supported by actual system capabilities.`},{title:`Driver-Assistance Features`,body:`Systems requiring driver supervision should not be described as "self-driving" or "autonomous". Manufacturer-approved terminology must match official system names. Feature limitations should be visible to buyers.`,links:[{href:`/practice/crisisprfirm.cfm`,label:`Crisis Communication & Reputation Management`}]}]},{heading:`Electric Vehicle (EV) Marketing: Range, Charging & Compliance`,lead:`EV buyers evaluate range, charging, warranty, route planning and total cost of ownership before committing.`,tone:`dark`,layout:`centered`,body:[`EV buyers evaluate EPA range, charging speed, home charging capability, public charging access, battery warranty, route planning, temperature effects, and total cost of ownership.`],cards:[{title:`Range Claims`,body:`Must identify EPA official ratings versus real-world tested performance.`},{title:`Charging Accuracy`,body:`Should specify charger type (Level 2, DC fast, brand-specific). Home charging times depend on charger and circuit capacity.`}]},{heading:`Generative Engine Optimization (GEO) for Automotive`,lead:`AI search is now a critical discovery channel for vehicle research.`,tone:`muted`,body:[`AI search is now a critical discovery channel for vehicle research. When buyers ask "What is the best electric vehicle for a family?" or "Which trucks can tow 10,000 pounds?", automotive brands with AI citation authority appear in answers.`,`5WPR builds GEO programs for automotive clients that ensure accurate product information, competitive specifications, and brand mentions appear in AI-generated responses. Learn more: [GEO Optimization](/practice/geo-optimization.cfm).`]},{heading:`Paid Search & Digital Advertising for Automotive`,lead:`Paid search can reach buyers researching specific models or features.`,tone:`white`,body:[`Paid search can reach buyers researching specific models or features. Campaign Structure organizes campaigns around model, intent, geography and buying stage. Performance Measurement distinguishes traffic volume, qualified leads, dealer contacts, and completed sales. Related: [Digital Marketing](/practice/digital-marketing-agency.cfm) and [Media Planning & Buying](/practice/digital-marketing-agency/media-planning-and-buying-agency.cfm).`]},{heading:`When to Call 5WPR for Automotive PR & Marketing`,lead:`Signals that it's time to bring in an automotive PR and marketing team.`,tone:`dark`,layout:`centered`,cards:[{title:`New Vehicle Launch`,body:`Pre-launch positioning, embargo coordination, media strategy, dealer alignment.`},{title:`Executive Visibility`,body:`CEO/founder thought leadership in automotive and business publications.`},{title:`Competitive Positioning`,body:`Feature differentiation, category authority, competitive intelligence.`},{title:`EV Strategy & Messaging`,body:`Range claims, charging strategy, incentive communication, sustainability positioning.`,links:[{href:`/practice/sustainability-pr-agency.cfm`,label:`Sustainability PR`}]},{title:`Safety & Regulatory Issues`,body:`NHTSA compliance, recall communication, safety rating positioning.`},{title:`Recall Management`,body:`Crisis communication, customer notification strategy, media response.`},{title:`Digital & Paid Media`,body:`Paid search strategy, social campaigns, video content, landing page optimization.`,links:[{href:`/practice/digital-marketing-agency/social-media-marketing-agency.cfm`,label:`Social Media Marketing`},{href:`/services/influencer-marketing-agency.cfm`,label:`Influencer Marketing`}]},{title:`GEO & AI Search`,body:`Citation measurement, source accuracy audits, AI-search visibility strategy.`,links:[{href:`/practice/geo-optimization.cfm`,label:`GEO Optimization`},{href:`/practice/online-reputation-management.cfm`,label:`SEO & Reputation`}]},{title:`Geographic Expansion`,body:`Regional launch strategy, dealer network communication, local market positioning.`,links:[{href:`/practice/technologypr.cfm`,label:`Technology Marketing`}]},{title:`Reputation & Crisis Management`,body:`Social monitoring, negative review response, incident management. See: [Crisis Communication](/practice/crisisprfirm.cfm).`,links:[{href:`/practice/digital-pr.cfm`,label:`Digital PR`}]}]}],closing:{kicker:`Ready to launch a vehicle, manage a safety issue, or build your automotive brand's media presence and AI search visibility?`,headline:`Marketing works best when every source describes the same vehicle accurately.`,body:[`Automotive buyers move between manufacturer sites, dealer inventory, safety databases, reviews, social content, search engines and AI-generated comparisons before making contact. Marketing works best when those sources describe the same vehicle accurately.`,`5WPR combines automotive PR, digital advertising, creator programs, executive communications and AI search strategy around launches, buyer research and qualified lead generation. A strong automotive program does not treat media coverage, digital traffic or AI visibility as proof of a sale. The program gives buyers accurate reasons to continue from research to configuration, dealer contact, test drive or another measurable action.`,`Ready to launch a vehicle, manage a safety issue, or build your automotive brand's media presence and AI search visibility? Request an Automotive Marketing Consultation: [email protected] | (212) 999-5585.`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},qm=[{q:`What's the difference between a press vehicle and paid influencer content?`,a:`A press vehicle loan for media testing or review is subject to FTC disclosure requirements if the creator receives other benefits. The disclosure should clearly state the brand provided the vehicle. Independent reviewers retain control over opinions.`},{q:`Should automotive brands respond to negative reviews online?`,a:`Yes, with context. Respond to factual errors with accurate specifications. Acknowledge legitimate complaints and direct customers to customer service. Do not delete or suppress negative feedback. Review patterns can reveal product issues vs. communication gaps.`},{q:`How should automotive companies market a new vehicle?`,a:`A launch should align specifications, pricing, media materials, dealer or direct-sales content, creator access and digital campaigns around one verified product record. Marketing teams should also prepare for specification, production or availability changes after the initial announcement.`},{q:`Why does AI search matter for automotive brands?`,a:`AI systems provide another way for buyers to compare vehicles, prices, safety information and ownership questions. Automotive companies can measure whether those answers contain accurate product information and identify sources supporting the response. AI search is now a critical discovery channel for vehicle research.`},{q:`Can automotive PR guarantee that a vehicle appears in ChatGPT or Google AI Overviews?`,a:`No. AI platforms control the
197ir answers and source selection. GEO can measure visibility and identify information gaps but cannot guarantee inclusion. The goal is accuracy: ensuring that when a model is mentioned, the information is correct.`}],Jm={slug:`event-celebrity-wrangling.cfm`,practiceKey:`selected_clients`,breadcrumb:`Event PR`,h1:`Event PR Agency and Experiential Marketing`,heroLead:`5WPR is an event PR and experiential marketing agency supporting brands through live experiences that build media coverage, audience engagement, and measurable business outcomes. From product launches and conferences to brand activations, pop-up experiences, and celebrity events, 5WPR coordinates media relations, influencer partnerships, social media amplification, and content creation to ensure events generate attention before, during, and long after the final keynote.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`View case studies`}],trustLabel:`Selected clients`,caseHeading:`Selected event case studies`,researchHeading:`Research behind our event practice`,faqSlug:`event-celebrity-wrangling.cfm`,faqHeading:`Frequently asked questions about event PR`,sections:[{heading:`How Can Event PR Support Business Goals?`,lead:`Events serve distinct business functions depending on industry and audience.`,tone:`white`,body:[`Events serve distinct business functions depending on industry and audience. Some events target consumers; others target investors, partners, press, or employees. Event PR should align with those specific goals.`,`A trade show presence emphasizes media reach and dealer coordination. A consumer-facing festival emphasizes influencer participation and social media amplification. A private investor event emphasizes positioning and narrative authority.`,`5WPR coordinates event strategy, media relations, talent management, content production, social media seeding, and follow-up coverage to connect the event experience with audience outcomes. Related: [Brand Strategy & Positioning](/services/pr-marketing-strategy.cfm) | PR Strategy.`]},{heading:`How Does 5WPR Manage Event Strategy and Production?`,lead:`5WPR works alongside event production teams, marketing teams, and executive leadership.`,tone:`dark`,body:[`5WPR works alongside event production teams, marketing teams, and executive leadership to ensure that event strategy aligns with brand messaging and business goals. We coordinate pre-event media relations and press invitations, executive interviews and speaker positioning, influencer and creator partnerships for on-site content, social media strategy and live-event amplification, event photography and content production, and post-event coverage and earned media follow-up.`]},{heading:`How Does Experiential Marketing Extend a Brand Story?`,lead:`Experiential marketing turns a brand narrative into a lived experience.`,tone:`muted`,body:[`Experiential marketing turns a brand narrative into a lived experience. A brand message about sustainability can become a real experience through a pop-up marketplace featuring sustainable vendors. A brand message about innovation can become a showcase where consumers interact with new product features.`,`5WPR connects experiential marketing with earned media strategy so that the event becomes a media story — not because the brand spent money on amplification, but because the experience was worth covering. Learn more: [Digital PR](/practice/digital-pr.cfm) | [Content Marketing](/practice/digital-marketing-agency/content-marketing-agency.cfm).`]},{heading:`How Does 5WPR Approach Celebrity and Talent Management?`,lead:`Celebrity appearances and talent partnerships can elevate an event, but only when they align with brand positioning and event goals.`,tone:`white`,body:[`Celebrity appearances and talent partnerships can elevate an event, but only when they align with brand positioning and event goals. A celebrity appearance should extend the brand narrative, not overshadow it.`,`5WPR manages talent relationships, FTC disclosure requirements, media protocols, interview scheduling, appearance coordination, and social media coordination around celebrity participation. See: Executive Communications | [Influencer Marketing](/services/influencer-marketing-agency.cfm).`]},{heading:`How Do Creators and Influencers Support Event Marketing?`,lead:`Creators and influencers amplify events by producing content before, during, and after the event itself.`,tone:`dark`,body:[`Creators and influencers amplify events by producing content before, during, and after the event itself. A creator with 500,000 followers might produce a video series around an event or a single day of coverage. An influencer might review event experiences or showcase products premiered at the event.`,`Creator participation requires clear disclosures of brand relationships, compensation, access provided, and content rights. The goal is authentic creator participation, not paid endorsements disguised as organic coverage.`]},{heading:`How Does Media Relations Support Events?`,lead:`Media relations transforms an event from an audie
197nce experience into a news story.`,tone:`muted`,body:[`Media relations transforms an event from an audience experience into a news story. Journalists, bloggers, and editors covering the event can reach audiences far beyond attendees. 5WPR coordinates media invitations, press access, interview opportunities, and story angles to ensure media coverage extends the event's reach. Related: Media Relations | [Corporate Communications](/practice/corporate-communications.cfm).`]},{heading:`How Do Digital Marketing and Social Media Extend an Event?`,lead:`Social media allows events to reach non-attendees through live updates, behind-the-scenes content, and participant perspectives.`,tone:`white`,body:[`Social media allows events to reach non-attendees through live updates, behind-the-scenes content, and participant perspectives. Hashtag strategy, live-streaming, influencer amplification, and paid social promotion extend event reach beyond the physical venue.`,`5WPR coordinates social media strategy alongside event production, ensuring that social content reinforces event messaging. Learn more: [Social Media Marketing](/practice/digital-marketing-agency/social-media-marketing-agency.cfm) | Community Management.`]},{heading:`How Does 5WPR Support B2B Events and Trade Shows?`,lead:`Trade shows and B2B events prioritize different outcomes than consumer events.`,tone:`dark`,body:[`Trade shows and B2B events prioritize different outcomes than consumer events. B2B events target media, analysts, partners, and buyers. Outcomes include media coverage, lead generation, partnership announcements, and positioning.`,`5WPR manages media relations, executive positioning, partnership announcements, and press release strategy around B2B events to ensure the event supports business development and competitive positioning.`]}
197,{heading:`How Can Events Support AI Search Visibility (GEO)?`,lead:`Events become a signal of brand positioning and commitment in AI-generated answers.`,tone:`muted`,body:[`When potential customers ask AI tools "What brands host annual conferences?" or "Which companies focus on sustainable products?", events become a signal of brand positioning and commitment. Media coverage of events, announcements tied to events, and content produced at events all contribute to AI citation authority.`,`5WPR connects event PR to GEO strategy so that event coverage and content contribute to brand visibility in AI-generated answers. Learn more: [GEO Optimization](/practice/geo-optimization.cfm).`]},{heading:`When to Call 5WPR for Event PR`,lead:`Five scenarios where the event practice engages.`,tone:`white`,layout:`centered`,cards:[{title:`Product Launch Events`,body:`Press coordination, media interviews, influencer amplification.`},{title:`Brand Activations & Pop-ups`,body:`Experience design support, social media strategy, creator partnerships.`},{title:`Conferences & Large Events`,body:`Media relations, speaker positioning, press coverage.`},{title:`Celebrity or Talent Partnerships`,body:`Contract coordination, disclosure management, media protocols.`},{title:`Trade Shows`,body:`Media strategy, lead generation support, competitive positioning.`}]}],closing:{kicker:`Ready to create an event that generates media attention and brand impact?`,headline:`Turn your next event into a media story, not just an audience experience.`,body:[`Events are one of the most media-rich, content-dense touchpoints a brand can create. A well-executed event generates coverage before launch announcements, media coverage during the event, participant content, and follow-up features that extend engagement weeks after the event concludes.`,`5WPR brings event strategy, media relations, influencer coordination, and content production expertise to ensure your event becomes a media story that reaches audiences far beyond attendees.`,`Ready to create an event that generates media attention and brand impact? Request an Event Marketing Consultation: [email protected] | (212) 999-5585.`],ctas:[{href:`/practice/case-study.cfm`,label:`View case studies`}]}},Ym=[{q:`How much does an event PR program cost?`,a:`Event PR costs depend on event scope (venue size, attendee count, media scale), duration, and level of customization. Budgets range from support for a single keynote to comprehensive programs covering multi-day conferences or major brand activations.`},{q:`How far in advance should event PR planning start?`,a:`Event PR planning should begin 3-6 months before the event for media relations and talent coordination to be effective. Social and influencer strategy can launch closer to the event, but major media partnerships benefit from longer lead times.`},{q:`How should brands measure event PR success?`,a:`Success metrics depend on event goals. Media coverage volume, media impressions, social media reach, influencer engagement, lead generation, and attendee satisfaction are all valid metrics.`},{q:`Can event PR happen without a large budget?`,a:`Yes. Authentic experiences, genuine content, and selective media/influencer participation can work even with modest budgets. Strategic focus matters more than spending.`},{q:`How do we handle FTC disclosure for creator partnerships at events?`,a:`All brand partnerships, compensation, free products, and event access must be disclosed clearly. Hashtags like #ad or #partner, written disclosures, or verbal acknowledgment are acceptable if clear.`}],Xm={slug:`foodpr-beveragepr.cfm`,practiceKey:`foodandbeverage`,breadcrumb:`Food & Beverage PR`,h1:`Food and Beverage PR Agency and AI Search Marketing`,heroLead:`5WPR is a food and beverage PR agency supporting restaurants, food brands, beverage companies, spirits brands, ingredient providers, and food technology companies with media relations, digital marketing, creator partnerships, and generative engine optimization. Programs build brand awareness among consumers, industry influencers, and investors through earned media in food publications, business press, vertical trade outlets, and AI-powered search.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`View case studies`}],trustLabel:`Selected food and beverage clients`,caseMatches:[`sparkling ice`,`talking rain`,`black button`,`h&h`],caseHeading:`Selected food and beverage case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Restaurants & Chains`,body:[`Chicken, coffee, and Mediterranean brands reshape AI citations.`],href:`/research/restaurants-chains-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/restaurants-chains-ai-visibility-index-2026-cover.webp`,coverAlt:`Restaurants & Chains — 5WPR research report cover`},researchHeading:`Research behind our food and beverage practice`,faqSlug:`foodpr-beveragepr.cfm`,faqHeading:`Frequently asked questions about food and beverage PR`,sections:[{heading:`How Is AI Changing Food and Beverage Discovery?`,lead:`Consumers now ask AI assistants what to eat, drink and order.`,tone:`white`,body:[`Food discovery has entered the AI era. When consumers ask "What gluten-free restaurants are near me?", "Which vodkas are made from sustainable ingredients?", or "What's the best coffee for cold brew?", AI tools provide answers sourced from online content.`,`Brands not appearing in those AI answers are missing discovery moments they don't realize exist. As AI-powered search becomes a primary discovery channel, food and beverage brands should measure whether they're being cited in AI responses and whether that information is accurate. Consumers use generative search platforms to find recipes, compare grocery items, and discover new restaurants. AI assistants may synthesize food media, restaurant guides, retailer pages, reviews, recipes, brand materials and community discussions. Results vary by platform, prompt and location.`]},{heading:`What Is GEO for Food and Beverage Brands?`,lead:`Generative engine optimization aims to make brand, product, ingredient, dietary, location and menu information easier to retrieve and compare.`,tone:`dark`,body:[`Generative engine optimization (GEO) for food and beverage involves building content, earning citations, and establishing brand mentions in online sources that AI systems draw from. For restaurant groups, GEO means ensuring accurate location, menu, hours, and specialty information appears consistently. For CPG brands, GEO means ensuring product descriptions, ingredient lists, and brand positioning appear in high-authority publications. Learn more: [GEO Optimization](/practice/geo-optimization.cfm).`,`Work may include clearer owned content, consistent entity data, credible earned coverage, retailer information and appropriately disclosed creator content.`],callout:{kicker:`Why it works`,body:[`The 50-State Restaurant AI Map from 5W (May 2026) tested 12 restaurant prompts per state across ChatGPT, Claude, Perplexity, Gemini and Google AI Overviews. The report found a fragmented answer layer in which national chains won only a small number of states and regional brands often led local recommendations. It is a modeled, directional study, not a measure of restaurant quality or sales. No media placement, content change, social campaign or creator partnership guarantees a citation, recommendation, visit or purchase.`],link:{href:`/research/`,label:`View the research`}}},{heading:`5WPR Research Shows Why AI Search Requires Its Own Strategy`,lead:`AI-cited brands were often not ranking highly in traditional search.`,tone:`muted`,body:[`5WPR's 50-State Restaurant AI Map research measured how AI-powered search answers questions about restaurants. The study found that brands appearing in AI-generated answers were often not ranking highly in traditional search, revealing a distinct discovery opportunity.`]},{heading:`How Should Brands Measure AI Search Visibility?`,lead:`GEO measurement tracks which AI platforms cite the brand and which sources they use.`,tone:`white`,body:[`GEO measurement tracks which AI platforms cite the brand, what information the AI provides, whether the information is accurate, and which sources AI uses to support answers. 5WPR performs GEO audits for food and beverage clients, identifying gaps in AI visibility and opportunities for citation improvement.`,`5WPR can benchmark how often a brand is mentioned, cited or recommended across a defined prompt set and compare those findings with competitors. A citation is not the same as a recommendation, and neither guarantees a purchase. Reporting should record the date, platform, query and cited source because outputs change. [Explore our AI visibility audit](/ai-citation-audit/).`]},{heading:`Food and Beverage PR Built Around Consumer Discovery`,lead:`GEO-integrated PR focuses on how earned coverage flows into AI-powered search discovery.`,tone:`dark`,body:[`5WPR builds food and beverage PR programs around how consumers discover food. Traditional PR focuses on media coverage. GEO-integrated PR focuses on how that coverage flows into AI-powered search discovery.`,`A restaurant brand securing coverage in a food publication gets media impressions and backlinks. The same coverage, when referenced by an AI tool answering a food discovery question, converts that coverage into consumer discovery. 5WPR connects PR strategy to GEO strategy so earned media contributes to both outcomes. Related: [Digital PR](/practice/digital-pr.cfm) | Media Relations.`]},{heading:`How Earned Media Impacts AI Search`,lead:`High-authority sources are more likely to be referenced by AI systems.`,tone:`muted`,body:[`Coverage in authoritative food publications, business press, and vertical trade outlets influences both traditional search rankings and AI-search citation authority. High-authority sources are more likely to be referenced by AI systems when answering food and beverage discovery questions.`,`5WPR targets earned media placements in publications that influence both 
197search rankings and AI-search visibility. 5WPR connects food and beverage companies with relevant journalists, editors and broadcasters. Programs may include pitch development, product sampling, seasonal guides and trend stories. Coverage remains subject to editorial judgment, and product claims must be supported. [View our food case studies](/practice/case-study.cfm).`]},{heading:`How Do Social Media and Food Influencers Support Discovery?`,lead:`Food discovery is highly visual across TikTok, Instagram, YouTube and Pinterest.`,tone:`white`,body:[`Food influencers and content creators drive discovery through demonstration. A creator showcasing a new restaurant, beverage, or food product reaches followers who might not otherwise encounter the brand. Food content performs well on Instagram, TikTok, YouTube, and Pinterest. Learn more: [Influencer Marketing](/services/influencer-marketing-agency.cfm) | [Social Media Marketing](/practice/digital-marketing-agency/social-media-marketing-agency.cfm).`,`5WPR can manage creator research, audience-fit review, contracts, disclosures, content briefs and paid amplification for recipes, demonstrations, taste tests and reviews. Organic and paid social can be coordinated with community management and social listening. Engagement and sales are not guaranteed.`]},{heading:`Food and Beverage PR Channels: Earned Media, Digital and Creator Partnerships`,lead:`Programs can combine earned media, search-informed content, paid social, organic social, creator partnerships, retail media, affiliate support, events and reputation management.`,tone:`dark`,body:[`Programs can combine earned media, search-informed content, paid social, organic social, creator partnerships, retail media, affiliate support, events and reputation management. The channel mix depends on distribution, audience, regulations, budget and campaign goal. [Social Media Marketing](/practice/digital-marketing-agency/social-media-marketing-agency.cfm).`]},{heading:`Retail Partnerships and Location-Based Visibility for Food Brands`,lead:`Partnerships, retail activations and local events can create useful content and media angles.`,tone:`muted`,body:[`Partnerships, retail activations and local events can create useful content and media angles. Digital support may include paid social, search, retailer media, affiliate content and location-specific pages. Awareness, traffic and sales depend on factors beyond communications.`]},{heading:`Crisis Management and Reputation Protection in Food and Beverage`,lead:`Product recalls, supply disruptions and social controversies require timely, accurate communication.`,tone:`white`,body:[`Product recalls, supply disruptions and social controversies require timely, accurate communication coordinated with legal, regulatory, quality and operations teams. 5WPR supports response planning, stakeholder messaging, media handling and digital monitoring. [Explore crisis communications services](/practice/crisisprfirm.cfm). [Explore reputation management](/practice/online-reputation-management.cfm). We cannot eliminate safety, legal or reputational risk.`]},{heading:`Food and Beverage PR Experience Across CPG, Spirits, and Restaurant Brands`,lead:`5WPR has supported emerging food companies, established CPG brands, restaurant operators and beverage businesses.`,tone:`dark`,layout:`centered`,body:[`5WPR has supported emerging food companies, established CPG brands, restaurant operators and beverage businesses. The examples below describe specific engagements and client statements without implying that another brand will receive the same outcome.`],cards:[{title:`Talking Rain and Sparkling ICE`,body:`5WPR partnered with Talking Rain Beverage Company to support the growth of the Sparkling ICE brand. The PR program focused on community initiatives and sustained media visibility.`,extra:`“5W over many years helped Talking Rain become one of the fastest growing beverage companies in the U.S.” — Nina Morrison, Vice President, Talking Rain Beverage Co.`,links:[{href:`/practice/case-study.cfm`,label:`View the full case study`}]},{title:`Black Button Distilling`,body:`5WPR developed an in-depth marketing plan and provided biweekly progress reporting for Black Button Distilling. The client's statement reflects that engagement and is not a forecast for another program.`,extra:`“growing the business by over 200% in the e-commerce area.” — C
197arrie Riby, Director of Marketing, Black Button Distilling.`},{title:`H&H Bagels and ZICO`,body:`5WPR has managed communications for H&H Bagels and supported ZICO Coconut Water during Coca-Cola ownership. These examples show experience across regional heritage brands and larger beverage portfolios.`,links:[{href:`/practice/cpg-digital-marketing-agency.cfm`,label:`CPG communications services`}]}]},{heading:`2026 Research: The 50-State Restaurant AI Map`,lead:`5WPR publishes research on how AI platforms surface restaurants and other consumer categories.`,tone:`muted`,body:[`5WPR publishes research on how AI platforms surface restaurants and other consumer categories. The 50-State Restaurant AI Map (May 2026) asked 12 restaurant questions per state across five answer engines and identified the most frequently surfaced first or strongest recommendation. The study maps citation patterns rather than restaurant quality, revenue or a universal ranking, and specific results may change as sources and platforms update. [View our full AI research](/research/).`]},{heading:`When to Call 5WPR for Food & Beverage PR`,lead:`Six scenarios where the food and beverage practice engages.`,tone:`white`,layout:`centered`,cards:[{title:`Product Launch`,body:`Media relations, influencer seeding, retail strategy.`},{title:`Restaurant Opening`,body:`Local and trade media relations, chef positioning.`},{title:`Brand Repositioning`,body:`Messaging refresh, audience shift.`},{title:`Food Safety Issue`,body:`Crisis communication, regulatory coordination.`},{title:`AI Search Visibility`,body:`GEO audit, citation strategy.`},{title:`Influencer Partnerships`,body:`Creator identification, compliance, content coordination.`}]}],closing:{kicker:`Ready to build your food or beverage brand's media presence?`,headline:`Connect earned media, creator programs and AI search visibility.`,body:[`Food discovery is driven by media coverage, influencer recommendations, social media, search engines, and now AI-powered answers. 5WPR brings food and beverage PR expertise, media relationships, influencer networks, and GEO strategy to build consumer and industry awareness across all discovery channels.`,`Food and beverage brands face safety, trust and discovery risk when AI answers, creator posts or retailer information present inconsistent ingredients, claims, menus or availability. 5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology — building the machine-readable footprint that gets brands cited, not just ranked. [Learn more about GEO optimization](/practice/geo-optimization.cfm).`,`Ready to build your food or beverage brand's media presence, influencer partnerships, and AI search visibility? Request a Food & Beverage Marketing Consultation: [email protected] | (212) 999-5585.`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},Zm=[{q:`Should food brands focus on traditional PR or AI search visibility?`,a:`Both. Traditional PR builds media coverage and brand authority. AI search visibility adds a new discovery channel. 5WPR integrates both strategies.`},{q:`How does local restaurant marketing differ from national brand marketing?`,a:`Local restaurants prioritize local media, neighborhood presence, and local search. National brands prioritize trade publications, industry coverage, and broader reach. Hybrid strategies support multi-location brands.`},{q:`How should food brands handle dietary claims and health messaging?`,a:`Health claims require regulatory compliance. Claims should be supported by evidence, presented accurately, and include appropriate disclosures.`},{q:`What metrics matter most for food and beverage PR?`,a:`Media impressions, influencer reach, social engagement, traffic from media coverage, and AI visibility are all relevant metrics depending on campaign goals.`},{q:`How long does it take to see results from food PR?`,a:`Food media cycles vary by publication. Trade publications plan 2-4 months out; food blogs can be more immediate. Results typically appear within 60-90 days of launch.`},{q:`What is food and beverage PR?`,a:`Food and beverage PR uses media relations, creator partnerships, digital marketing, events and reputation support to help culinary brands communicate with consumers, buyers and other stakeholders. The program should be tailored to the category, distribution model and claim requirements.`},{q:`How do PR campaigns integrate with influencer marketing?`,a:`5WPR can select creators across TikTok, Instagram, YouTube and other relevant channels based on audie
197nce fit, content quality, brand safety and disclosure requirements. Product reviews, recipes, demonstrations and paid amplification should use accurate claims and clear sponsorship disclosures.`},{q:`What food and beverage categories does 5WPR support?`,a:`5WPR supports packaged foods, nonalcoholic beverages, spirits, restaurant chains and health-oriented food brands. Regulated categories require age, claim, platform and market-specific review.`}],Qm={slug:`franchise-marketing-agency.cfm`,practiceKey:`selected_clients`,breadcrumb:`Franchise PR`,h1:`Franchise PR Agency and Digital Marketing`,heroLead:`5WPR is a franchise PR and marketing agency supporting franchisors, multi-unit operators, and franchisees with coordinated communications, digital marketing, crisis management, and reputation strategy. Franchise marketing requires balancing national brand messaging with local market presence — a complex coordination problem that traditional marketing agencies often overlook.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`View case studies`}],trustLabel:`Selected clients`,caseHeading:`Selected franchise case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Local Services`,body:[`78% of local-services brands are invisible to AI.`],href:`/research/local-services-ai-visibility-crisis-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/local-services-ai-visibility-crisis-2026-cover.webp`,coverAlt:`Local Services — 5WPR research report cover`},researchHeading:`Research behind our franchise practice`,faqSlug:`franchise-marketing-agency.cfm`,faqHeading:`Frequently asked questions about franchise PR`,sections:[{heading:`How Should Franchises Balance National and Local Marketing?`,lead:`National campaigns and local campaigns can contradict each other if not coordinated.`,tone:`white`,body:[`Franchisors typically control national brand strategy, product standards, pricing strategy, and corporate communications. Individual franchisees typically control local inventory, local pricing incentives, hiring, community involvement, and local marketing.`,`The tension: national campaigns and local campaigns can contradict each other if not coordinated. A national campaign advertising a price point that local franchisees cannot support creates credibility problems. A local franchisee making claims inconsistent with national brand positioning undermines the brand.`,`5WPR aligns national and local messaging to ensure franchise marketing supports brand positioning while respecting local autonomy. Learn more: [Brand Strategy & Positioning](/services/pr-marketing-strategy.cfm) | [Digital Marketing](/practice/digital-marketing-agency.cfm).`]},{heading:`What Is the Difference Between Franchisor and Franchisee Marketing?`,lead:`Franchisor Marketing and Franchisee Marketing emphasize different priorities.`,tone:`dark`,body:[`Franchisor Marketing focuses on national brand building, corporate announcements, franchisee recruitment, product development, and investor relations. Franchisee Marketing emphasizes local market presence, inventory highlighting, local promotional events, regional pricing, and customer service.`,`5WPR can manage both franchisor national PR and franchisee local PR supp
197ort, or work exclusively with franchisors to build programs franchisees can execute locally. Related: Media Relations | Local SEO.`]},{heading:`How Does Franchise PR Support National and Local Visibility?`,lead:`Franchisor PR and franchisee PR serve different audiences and channels.`,tone:`muted`,body:[`Franchisor PR focuses on media coverage that establishes national brand authority and attracts franchisee interest. National business press, industry publications, and trade media all influence franchisor positioning.`,`Franchisee PR focuses on local media relations, community involvement, and local search optimization. Local business journals, neighborhood media, and community networks influence franchisee success.`]},{heading:`How Should Franchise Brands Prepare for a Crisis?`,lead:`Franchise crises can be national or local, and each requires a coordinated response.`,tone:`white`,body:[`Franchise crises can be national or local. A national product safety issue affects all franchisees. A local franchisee service failure affects that franchisee's community. A multi-unit franchisee incident affects multiple markets.`,`Crisis communications must account for national franchisor response, affected franchisee local response, competing franchisee messaging, and regulatory compliance requirements. 5WPR develops franchise crisis communication plans that coordinate national franchisor response with local franchisee needs. See: [Crisis Communication](/practice/crisisprfirm.cfm).`]},{heading:`How Does AI Search Affect Franchise Marketing?`,lead:`Franchise brands should appear when customers ask AI tools about locations near them.`,tone:`dark`,body:[`When customers ask AI tools "What restaurants are in [my city]?", "Which fast casual chains have healthy options?", or "Where can I find [franchise name] locations?", franchise brands should appear in those answers.`,`5WPR helps franchise brands measure AI visibility, ensure consistent brand information across locations, and optimize franchise listings for AI-powered search. Learn more: [GEO Optimization](/practice/geo-optimization.cfm).`]},{heading:`When to Call 5WPR for Franchise PR`,lead:`Six scenarios where the franchise practice engages.`,tone:`muted`,layout:`centered`,cards:[{title:`Franchisee Recruitment`,body:`National brand positioning, recruitment media strategy.`},{title:`New Market Expansion`,body:`Regional launch strategy, local media coordination.`},{title:`Product Launch`,body:`National and local introduction, franchisee training.`},{title:`Crisis Management`,body:`Multi-location coordination, messaging alignment.`},{title:`Local Franchisee Support`,body:`Community visibility, local PR playbooks.`},{title:`AI Search Visibility`,body:`Location consistency, brand citation across network.`}]}],closing:{kicker:`Ready to build a coordinated franchise PR and marketing program?`,headline:`Coordinate national brand authority with franchisee success.`,body:[`Franchise marketing requires coordinating national brand messaging with local market presence — a challenge that demands expertise in both corporate communications and local market strategy. 5WPR brings franchise-specific PR and marketing expertise to build national brand authority while supporting franchisee success.`,`Ready to build a coordinated franchise PR and marketing program? Request a Franchise Marketing Consultation: [email protected] | (212) 999-5585.`],ctas:[{href:`/practice/case-study.cfm`,label:`View case studies`}]}},$m=[{q:`Can one franchise PR program work for all franchisees?`,a:`PR programs can be centralized (franchisor manages all) or hybrid (franchisor provides strategy, local support empowers franchisees). Choice depends on resources, franchisee capability, and brand priorities.`},{q:`How do you handle contradictory messages from different franchisees?`,a:`Clear brand guidelines, messaging standards, and governance prevent contradictions. Training and oversight ensure consistency.`},{q:`What should a franchise do when one franchisee faces a crisis?`,a:`Coordinate franchisor support, ensure consistent messaging, provide guidance to other franchisees, and manage national brand reputation while supporting the affected franchisee.`},{q:`How important is local search for franchise marketing?`,a:`Local search is critical. Franchisees should keep location information, hours, menu, and contact data current across all search platforms.`},{q:`Can franchises use the same marketing strategy across all locations?`,a:`National brand campaigns can be customized locally. Different markets, demographics, and competition may require local adaptation while maintaining brand consistency.`}],eh={slug:`toys-and-games-PR.cfm`,practiceKey:`parentchildandbaby`,breadcrumb:`Toys & Games PR`,h1:`PR and Marketing for Toy Brands, Board Games & Kids' Entertainment`,heroLead:`5WPR provides public relations and marketing services for toy, game, and kids' entertainment c
197ompanies across physical toys, board games, card games, collectibles, educational and STEM products, screen-free technology, augmented reality experiences, licensed entertainment products, and seasonal products.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`View case studies`}],trustLabel:`Selected toys and games clients`,caseHeading:`Selected toys and games case studies`,researchHeading:`Research behind our toys and games practice`,faqSlug:`toys-and-games-PR.cfm`,faqHeading:`Toy & Game PR FAQs`,sections:[{heading:`Toy & Game PR Services`,lead:`5WPR builds toy and game communications programs around the audiences that shape a purchase decision.`,tone:`white`,body:[`Toy companies often need to reach more than one person involved in a purchase. A child might ask for a Barbie Dreamhouse, LEGO set, Squishmallows plush, or PAW Patrol toy. At the same time, a parent or caregiver evaluates price, age range, safety, reviews, and whether the product fits the child's interests. Grandparents, relatives, teachers, and other gift buyers can make the final purchase. PR programs need to account for those audiences and the sources they use to choose products.`,`Our toys and games PR team is part of 5WPR's [Parent, Child & Baby practice](/practice/mom-and-baby.cfm). That connection gives toy clients access to a team that works across parenting media, family creators, consumer products, child safety, product reviews, gift guides, and other channels that influence how families discover products.`,`5WPR's toys and games client experience includes The Lumistella Company, home to The Elf on the Shelf; PlayMonster; Yoto; and Kids2, whose brands feature Baby Einstein, Bright Starts, and Ingenuity. 5W applies the same planning process to established companies and emerging toy brands. Toy companies often have limited time between a product launch, media review periods, seasonal buying periods, licensing activity, and the next product cycle, making timing central to the communications plan.`]},{heading:`What does a toys and games PR agency do?`,lead:`A toys and games PR agency helps companies introduce products, earn media coverage, secure editorial reviews, pursue gift-guide opportunities, work with creators, develop executive stories, support industry events, and build awareness among parents, gift buyers, and other consumers.`,tone:`dark`,body:[`Toy PR requires an understanding of how specific products create different media opportunities. A new family board game suits game reviewers, parenting outlets, holiday gift guides, and family creators. A Yoto audio product creates stories around screen-free entertainment, children's audio, travel, education, and family routines. A licensed product tied to Barbie, Pokémon, Marvel, or PAW Patrol has opportunities connected to an entertainment release, anniversary, fan event, or other cultural moment.`,`Product launches include media previews, samples for editorial testing, demonstrations, creator seeding, launch events, trade-show activity, executive interviews, and product announcements. 5WPR combines [consumer PR](/practice/consumercfm.cfm) with [digital marketing](/practice/cpg-digital-marketing-agency.cfm) when a company needs to connect earned media with search, social media, creator programs, or paid campaigns.`]},{heading:`How does PR help toy and game brands grow?`,lead:`PR helps toy and game companies increase product awareness, explain what separates a product from competitors, introduce executives to media, support launches, reach gift buyers, and maintain visibility between product releases.`,tone:`muted`,body:[`Reviews and editorial recommendations matter because toy purchases often begin with a question. Parents search for the best board games for a seven-year-old, screen-free entertainment for a road trip, STEM toys for a five-year-old, or birthday gifts under a specific price. Media coverage, product reviews, creator recommendations, search results, retailer product pages, and parent discussions all become part of that research. 5W has examined [how parents find products](/new/seo-pr-5-ways-parents-find-products/), including the relationship between search behavior, earned media, and product discovery.`,`Trade coverage serves another business purpose by giving licensing partners, distributors, and other industry decision-makers information about a company's products, leadership, partnerships, and growth. PR should support those conversations without treating media coverage as a guarantee of distribution or sales.`,`Toy companies face reputation issues that require communications planning. 5WPR's [crisis communications practice](/practice/crisisprfirm.cfm) supports toy and game companies facing product recalls, safety incidents, consumer complaints, supply problems, privacy concerns, licensing disputes, or questions about product claims.`]},{heading:`What types of toy and game brands does 5WPR work with?`,lead:`5WPR works across physical toys and play sets, board games and card games, collectibles, licensed products, educational and STEM toys, screen-free audio and technology, augmented reality play experiences, seasonal products, and emerging toy companies.`,tone:`white`,layout:`centered`,cards:[{title:`Board games and card games`,body:`Board game companies often prioritize reviews, demonstrations, family game recommendations, and holiday guides.`},{title:`Educational and STEM toys`,body:`Educational toy companies sometimes need to explain supported learning or STEM features without overstating developmental benefits.`},{title:`Connected toys and apps`,body:`Connected toys and apps raise questions about children's privacy, data collection, and online safety.`},{title:`Collectibles`,body:`Collectibles depend on fandom, scarcity, licensing, entertainment releases, and collector communities.`,links:[{href:`/practice/collectibles-memorabilia-pr-digital-marketing-agency.cfm`,label:`Collectibles and memorabilia`}]},{title:`Parenting apps, gear and family products`,body:`Brands with products that extend into parenting apps, gear, and family products draw on 5W's experience across the broader parenting category.`,links:[{href:`/practice/parenting-apps-gear-and-retail-PR.cfm`,label:`Parenting apps, gear & retail PR`}]}]},{heading:`Toy Influencer Marketing, Holiday PR & Brand Storytelling`,lead:`5WPR builds toy and game influencer programs around the people involved in product discovery and purchase.`,tone:`dark`,body:[`Depending on the product, that includes parent creators, family creators, toy reviewers, unboxing channels, TikTok creators, YouTube reviewers, celebrity parents, affiliate publishers, and creators focused on education, gaming, travel, or family activities.`,`Creator selection should follow the product and audience, not follower count alone. A preschool learning toy may fit a parent creator who discusses early learning and family activities. A collectible tied to Pokémon often requires creators who reach fans and collectors. A family board game benef
197its from creators who demonstrate how the game works instead of simply showing the box.`,`Programs involving children require additional planning. Content needs to account for parental consent, advertising disclosures, platform requirements, child privacy, and rules governing marketing to children. Product claims need review when creators discuss educational, developmental, health, or safety benefits.`,`5W pairs creator activity with earned media and digital marketing so consumers see consistent product information across multiple sources.`]},{heading:`How does 5WPR handle toy PR around the holiday season?`,lead:`Holiday toy PR starts before consumers begin their year-end shopping.`,tone:`muted`,body:[`Editors and publishers plan gift guides well before publication, so brands need product information, review samples, photography, pricing, age ranges, availability, and other materials ready for editorial deadlines.`,`5WPR plans holiday programs around those lead times. This work often includes pitching national and parenting gift guides, supplying products for editorial testing, introducing fall launches, preparing executives for seasonal stories, coordinating creator programs with shopping periods, and identifying age-, interest-, and price-based recommendation opportunities.`,`Holiday coverage extends beyond generic gift guides. A board game fits family game-night recommendations. A STEM product appears in educational gift coverage. Yoto can compete for screen-free gift recommendations. The Elf on the Shelf creates opportunities connected to holiday traditions and family activities.`,`Year-round communications make holiday outreach more effective because journalists, reviewers, and creators contextualize the company before seasonal deadlines arrive.`]},{heading:`How does 5WPR approach toy brand storytelling across generations?`,lead:`Established toy companies have different relationships with children and the adults buying for them.`,tone:`white`,body:[`Barbie, Hot Wheels, LEGO, Monopoly, and Fisher-Price are examples of brands many parents or grandparents encountered as children and now encounter again while buying for another generation.`,`That history creates communications opportunities around anniversaries, product evolution, design changes, entertainment partnerships, collector interest, and how play habits have changed. Nostalgia alone does not explain why someone should buy a current product, so the story needs to address what the product offers today's child or family.`,`Licensed entertainment creates another set of opportunities. Barbie, PAW Patrol, Pokémon, Marvel, Disney, and Star Wars show how films, television, games, characters, fandom, and merchandise intersect. 5W's [entertainment and sports marketing](/practice/lifestyleprentertainmentpragency.cfm) experience supports campaigns where a toy company's communications depend on an entertainment property, licensing relationship, release, or cultural event.`,`Educational and developmental products require a different approach. Brands should explain the specific skills, activities, or play experiences a product supports and distinguish those facts from claims that require additional evidence.`]},{heading:`What is digital PR for toy and game brands, and how does it work?`,lead:`Digital PR connects media relations with the ways consumers research products online.`,tone:`dark`,body:[`Coverage in consumer publications, parenting sites, family media, product-review outlets, trade publications, and other websites introduces consumers to a product and creates additional online information about the company.`,`Search adds another reason that information matters. Parents Google "best toys for toddlers," "top board games for families," "screen-free toys for kids," or "STEM toys for five-year-olds." During that research, product reviews, publisher recommendations, brand websites, creator content, retailer listings, Reddit discussions, and other sources appear.`,`5WPR connects earned media with SEO-aligned content so a company understands which consumer questions matter, what information appears for those searches, which competitors receive coverage, and where the brand lacks useful information.`,`Backlinks and publisher coverage contribute to online discovery, referral traffic, and a broader search strategy, but PR does not guarantee a specific Google ranking. The objective is to increase the amount and quality of useful information consumers find when researching the product or category.`]},{heading:`How does GEO (generative engine optimization) affect toy and game brands?`,lead:`Generative engine optimization, or GEO, improves how AI-generated search and answer experiences represent a company.`,tone:`muted`,body:[`Toy executives think about the issue more simply as [AI search visibility](/glossary/ai-visibility/).`,`Parents now ask ChatGPT, Google AI, Gemini, Perplexity, or Claude questions they previously typed into a search engine. Those questions can be specific: "What are the best STEM toys for a five-year-old?", "What are the best board games for a seven-year-old?", "What is the best screen-free audio player for kids?", or "Yoto vs. Toniebox: which is better for travel?"`,`No company guarantees that an AI platform will mention, recommend, or cite its brand for those questions. Toy companies measure what happens instead.`,`5WPR examines whether a brand appears for questions that matter to its customers, which competitors appear instead, how the company is described, and which websites AI systems cite. 5W's [AI Visibility Audit](/ai-citation-audit/) provides that baseline across ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.`,`A Yoto competitor, for example, could examine whether Yoto or Tonie
197s appears more often for questions about screen-free audio, travel, bedtime, or children's listening products and then identify the sources influencing those answers. 5W's [Citation Source Audit](/research/) examines the types of third-party sources appearing across major AI platforms.`,`Those findings guide media relations, product information, reviews, SEO, creator programs, expert content, and other communications. A missing AI mention reflects a broader information gap, not a problem solved by changing a few words on a webpage.`,`5WPR's [digital marketing practice](/practice/cpg-digital-marketing-agency.cfm) integrates AI visibility measurement with PR and search programs so toy companies track how consumers encounter their brands across traditional search and AI-generated answers.`]}],closing:{kicker:`How can toy and game brands work with 5WPR?`,headline:`Build a communications plan around every audience in the purchase decision.`,body:[`Toy and game companies compete for attention across media, creators, search results, product reviews, entertainment, social platforms, and AI-generated answers. The communications challenge becomes more complicated when the child who wants a product isn't the person who buys it.`,`5WPR builds toy and game communications programs around those purchase decisions. Media relations introduce products to journalists and reviewers. Gift-guide programs reach consumers looking for specific recommendations. Creator partnerships demonstrate how a toy or game works. Trade media communicate company developments to industry audiences. Crisis planning prepares companies for recalls, safety concerns, privacy issues, and other reputation risks.`,`Search and AI tools add another part of product discovery. Toy executives need to know whether consumers find accurate information about their products, which competitors appear for important questions, which sources shape those results, and where the company lacks visibility.`,`Companies preparing a toy or game launch, holiday program, licensing initiative, new product category, or search and AI visibility program contact 5WPR to build a communications strategy around the consumers and industry audiences they need to reach.`],ctas:[{href:`/practice/case-study.cfm`,label:`View case studies`}]}},th=[{q:`When should a toy company start PR for a holiday product launch?`,a:`Toy companies should begin planning before holiday gift-guide and product-review deadlines. The schedule depends on the product and media targets. Still, brands need time to prepare product samples, photography, pricing, age recommendations, product information, spokesperson availability, and other materials before editors and creators make seasonal selections.`},{q:`How does PR help a new toy brand launch?`,a:`PR introduces a new toy company through product reviews, media demonstrations, founder or executive interviews, creator programs, gift guides, trade coverage, events, and stories explaining what makes the product different. The program should reflect the product's age range, price, play pattern, distribution, and target buyer.`},{q:`Can PR help a toy get into holiday gift guides?`,a:`PR agencies identify appropriate gift guides, understand editorial deadlines, pitch products, provide review samples, and give editors the information needed to evaluate a toy or game. Editors decide which products receive coverage, so PR cannot guarantee placement.`},{q:`How does PR work for board games?`,a:`Board game PR includes reviewer outreach, demonstrations, family game-night coverage, creator programs, gift guides, trade media, events, and stories about the game's creator or concept. Media and creator targets should reflect whether the game is designed for children, families, adults, hobby gamers, or another audience.`},{q:`How does PR work for licensed toys and entertainment products?`,a:`Licensed toy PR connects a product with the entertainment property, character, release, anniversary, event, or fan community behind the license. Communications involve entertainment media, consumer publications, parenting outlets, collectors, creators, and trade media depending on the property and product.`},{q:`Does 5WPR work with educational and STEM toy companies?`,a:`Yes. 5WPR works across educational toys, STEM products, children's technology, screen-free products, games, and related categories. Communications should explain what children actually do with the product and distinguish supported educational benefits from broader developmental claims that require evidence.`},{q:`Can PR help toy brands appear in ChatGPT and other AI search results?`,a:`PR increases the amount of relevant third-party information available about a toy company, but no agency guarantees that ChatGPT or another AI platform will mention or recommend a product. 5W measures whether a brand appears for relevant questions, which competitors appear instead, how the brand is described, and which sources AI platforms cite. 5W's AI Visibility Audit measures these patterns across ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.`},{q:`How is AI search visibility different from SEO for a toy brand?`,a:`SEO focuses primarily on how pages perform in traditional search results. AI visibility measures whether a brand appears inside AI-generated answers, how it is described, and which sources support those answers. A toy company should measure both because parents move between Google results, product reviews, publisher recommendations, Reddit discussions, retailer pages, and AI-generated answers during the same purchase decision. 5W treats these as related but distinct forms of discovery.`}],nh={slug:`kitchen-and-home-appliances.cfm`,practiceKey:`homeandhousewares`,breadcrumb:`Kitchen & Home Appliances PR`,h1:`Kitchen and Home Appliances PR Agency`,heroLead:`5W Public Relations (5WPR) is a kitchen and home appliances PR agency that helps brands build visibility across earned media, digital platforms and AI-driven search. We integrate public relations, digital marketing, social media, influencer programs and Generative Engine Optimization (GEO) to support product discovery without guaranteeing placement or purchase outcomes.`,heroCtas:[{href:`/practice/case-study.cfm`,label:`View case studies`}],trustLabel:`Selected kitchen and home appliance clients`,caseMatches:[`krups`,`all-clad`,`t-fal`,`smeg`],caseHeading:`Selected kitchen and home appliance case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Home Services & Improvement`,body:[`Thumbtack beats Angi. Roto-Rooter still owns emergency.`],href:`/ai-visibility-index/home-services-improvement-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/home-services-improvement-ai-visibility-index-2026-cover.webp`,coverAlt:`Home Services & Improvement — 5WPR research report cover`},researchHeading:`Research behind our kitchen and home appliances practice`,faqSlug:`kitchen-and-home-appliances.cfm`,faqHeading:`Frequently asked questions about appli
197ance PR`,sections:[{heading:`How do consumers research kitchen and home appliances?`,lead:`Appliance buyers consult multiple digital sources before making a purchase.`,tone:`white`,body:[`Before buying a coffee maker, stand mixer or vacuum, shoppers may compare retailer pages, publisher reviews, YouTube demonstrations, TikTok or Instagram creator content and AI-generated answers. 5WPR coordinates earned media, digital marketing, social media, influencers and structured product information across these discovery channels.`]},{heading:`What kitchen and home appliance marketing services does 5WPR provide?`,lead:`5WPR develops integrated communications programs around product launches, demonstrations, retail calendars, audience questions and agreed brand or commerce objectives.`,tone:`dark`,layout:`centered`,body:[`Programs can combine public relations, paid and organic social media, creator demonstrations, influencer partnerships, digital content and AI visibility research. Reporting should separate media and AI visibility from retail performance unless reliable attribution supports a connection.`],cards:[{title:`Earned media and product placement`},{title:`Generative Engine Optimization (GEO)`,links:[{href:`/practice/geo-optimization.cfm`,label:`GEO services`}]},{title:`Influencer and creator activations`,links:[{href:`/services/influencer-marketing-agency.cfm`,label:`Influencer marketing`}]},{title:`Digital marketing and paid social`},{title:`Retail and Amazon review strategies`},{title:`New technology and product launches`}]},{heading:`How do appliance brands build AI search visibility?`,lead:`Generative Engine Optimization (GEO) aims to improve how accurately AI search platforms retrieve, compare and recommend appliance brands for defined consumer questions.`,tone:`muted`,body:[`An appliance program can strengthen entity clarity, structured product facts, publisher coverage, retailer consistency and creator education. AI answers still vary by platform, query, freshness and source availability.`],callout:{kicker:`Why it works`,body:[`5W's The State of AI Search 2026 (2026) found that major AI engines favor different source mixes and that earned media remained the strongest single GEO signal across the categories studied. For appliance brands, current product specifications, credible reviews, retailer data, useful owned content and clearly disclosed creator demonstrations give AI systems better-supported information to retrieve and compare. No audit, product page, creator partnership or media placement guarantees a citation, recommendation or sale.`],link:{href:`/practice/geo-optimization.cfm`,label:`GEO optimization services`}}},{heading:`What kitchen and home appliance brands has 5WPR supported?`,lead:`5WPR has executed communications programs for established appliance manufacturers and emerging technology brands.`,tone:`white`,body:[`The team supports retail rollouts, technology introductions and established product categories. Client experience includes All-Clad, HoMedics, Rowenta, Lagostina, SMEG, KRUPS, T-Fal, Varidesk, Omega, Soniclean, Chefman and F.N. Sharp, alongside emerging kitchen-robotics categories.`],callout:{kicker:`Client experience`,body:[`“Their team is extremely organized, hard-working, and personable.” — Christian, Marketing & Events Specialist, SMEG`,`“Their trustworthiness, market expertise, and consistent performance set them apart.” — Erica Chang, Director of Marketing, HUROM`],link:{href:`/practice/case-study.cfm`,label:`View case studies`}}}],closing:{kicker:`How can appliance brands work with 5WPR?`,headline:`Give shoppers accurate product information before an AI answer or creator video does.`,body:[`Appliance brands lose purchase consideration when an AI comparison or creator demonstration presents incomplete product information before a shopper reaches the current specification or retailer page. 5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology — building the machine-readable footprint that gets brands cited, not just ranked. [Learn more about GEO optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},rh=[{q:`How does AI visibility affect appliance sales?`,a:`Consumers may use AI platforms to compare features, summarize reviews and identify options. Citation or recommendation visibility can be monitored during the research phase, but it does not guarantee retailer traffic or sell-through.`},{q:`How do you measure PR success for appliances?`,a:`5WPR can measure coverage quality, message pull-through, social engagement, creator performance, referral traffic and citation share for defined AI questions. Retail outcomes should be connected only when the analytics and measurement design support attribution.`}],ih={slug:`digital-marketing-agency/b2b-digital-marketing-agency.cfm`,practiceKey:`corporate`,breadcrumb:`B2B Digital Marketing`,h1:`B2B Digital Marketing Agency`,heroLead:`5W Public Relations is a B2B digital marketing agency that helps companies generate high-value leads and engage decision-makers. We build data-driven campaigns across search engine optimization, content marketing, paid advertising, and account-based marketing to increase visibility and drive measurable return on investment for business-to-business brands.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected B2B clients`,caseHeading:`Selected B2B digital marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`B2B SaaS`,body:[`Jira bills the enterprise. Linear owns the recommendation.`],href:`/ai-visibility-index/b2b-saas/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/b2b-saas-cover.webp`,coverAlt:`B2B SaaS — 5WPR research report cover`},researchHeading:`Research behind our B2B digital marketing practice`,faqSlug:`digital-marketing-agency/b2b-digital-marketing-agency.cfm`,faqHeading:`Frequently asked questions about B2B digital marketing`,sections:[{heading:`How do B2B digital marketing campaigns reach decision-makers?`,lead:`Business buyers research software, financial services, and professional consulting through search engines and professional networks long before contacting a sales team.`,tone:`white`,body:[`5WPR develops targeted campaigns that place your brand in front of these buyers during their research phase. Our team uses search trends and audience insights to identify the queries and platforms decision-makers use. We then deploy performance-based marketing and automation tools to capture that demand.`,`A successful B2B strategy requires multiple touchpoints. We combine organic search visibility with paid social campaigns to nurture prospects through long sales cycles. Every campaign is backed by anal
197ytics and performance tracking to ensure the budget produces measurable business outcomes.`]},{heading:`What services does a B2B digital marketing agency provide?`,lead:`5WPR provides a comprehensive mix of organic and paid marketing services designed to increase brand awareness and drive business growth.`,tone:`dark`,layout:`centered`,cards:[{title:`B2B SEO services`,body:`We improve organic visibility through strategic keyword research, technical site improvements, and on-page optimization. By targeting specific industry search trends, we help your business rank higher when buyers look for enterprise solutions. High search visibility helps your brand capture active demand.`,extra:`How this improves visibility: Strong topical coverage, technically sound pages, and authoritative third-party links can improve a site's ability to compete for relevant searches. Publishing in-depth whitepapers and earning coverage from trade publications builds both — a page with genuine expertise and third-party validation behind it tends to perform better than one without.`},{title:`B2B content marketing`,body:`Our in-house team develops industry-specific content designed to position your brand as a thought leader. We write whitepapers, blogs, case studies, and e-books that answer complex buyer questions. This content drives targeted traffic and serves as the foundation for lead generation campaigns.`},{title:`B2B PPC advertising`,body:`We run data-driven paid advertising campaigns to target decision-makers across search engines and paid social channels. Our [media planning and buying agency](/practice/digital-marketing-agency/media-planning-and-buying-agency.cfm) team manages Google Ads and LinkedIn Ads to capture high-intent traffic. This approach controls acquisition costs while generating consistent inbound leads.`}
197,{title:`Account-based marketing (ABM)`,body:`Account-based marketing targets specific high-value accounts with personalized messaging. We deliver tailored digital experiences to the stakeholders within a target organization. This precision accelerates the sales funnel for enterprise products.`},{title:`Social media marketing`,body:`We manage social media campaigns on LinkedIn and Twitter. These platforms allow brands to establish authority and engage with industry prospects. Consistent social engagement nurtures customer relationships over time.`},{title:`Email marketing and automation`,body:`We build targeted email campaigns that educate potential customers and keep your brand visible during long consideration periods. Automated sequences deliver precision-driven messaging based on user behavior. This continuous nurturing moves leads closer to a purchasing decision.`}]},{heading:`How does account-based marketing target specific buyers?`,lead:`Account-based marketing flips the traditional sales funnel by identifying high-value target companies first.`,tone:`muted`,body:[`Instead of casting a wide net, we develop personalized messaging for the specific decision-makers within a target account. Our team uses LinkedIn Ads and direct email outreach to deliver tailored experiences to these individuals. This precision ensures your marketing budget is spent only on prospects with the highest revenue potential.`,`We align marketing and sales teams around these target accounts. When a prospect interacts with an ABM campaign, sales representatives receive immediate notifications to follow up. This coordinated effort accelerates conversions and shortens the sales cycle for enterprise products.`]},{heading:`How do search engines evaluate B2B content?`,lead:`Search algorithms weigh technical performance, relevance, and authoritative backlinks when ranking B2B websites.`,tone:`white`,body:[`We conduct strategic keyword research to understand the terms technical buyers type into search engines. Our B2B SEO services optimize your website architecture so search crawlers can index your product pages. We also implement on-page optimization to ensure your content answers the user query.`,`High search rankings require consistent content production. We publish blogs and case studies that target long-tail keywords related to your specific software or consulting services. Capturing these niche search terms brings qualified traffic to your website.`],callout:{kicker:`Talk to the B2B Digital Marketing Team`,heading:`How does B2B digital marketing help companies appear in AI search results?`,body:[`Generative Engine Optimization (GEO) is now a standard part of a B2B digital marketing program, not a separate add-on.`,`When a buyer asks ChatGPT, Perplexity, or Google AI Overviews to compare software or service providers, the brands with clear, consistent, well-structured information across their website and third-party coverage are the ones more likely to surface in the answer. 5WPR builds that structured footprint alongside the SEO, content, and paid programs described above, so a B2B brand's digital presence and its AI presence are built by the same team rather than treated as separate projects.`],link:{href:`/practice/geo-optimization.cfm`,label:`Learn about GEO`}}},{heading:`What makes B2B content marketing effective?`,lead:`Effective B2B content marketing moves prospects from initial awareness to final vendor selection.`,tone:`dark`,body:[`Business buyers require detailed information to justify a purchase to their internal stakeholders. We produce in-depth whitepapers and e-books that explain complex industry problems and present your product as the logical solution. Gating these high-value assets behind download forms serves as a primary engine for lead generation.`,`Case studies provide the social proof necessary to close enterprise deals. We interview your successful clients and craft stories that highlight measurable results. Prospects read these case studies to verify that your solution works in real-world scenarios.`]},{heading:`Which industries benefit from B2B digital marketing?`,lead:`5WPR develops customized digital marketing solutions for c
197omplex business-to-business sectors.`,tone:`muted`,body:[`We have extensive experience building campaigns for Software as a Service (SaaS), technology, finance, and professional services companies. These industries feature high price points, multiple decision-makers, and extended sales cycles. We design strategies that address these specific complexities.`,`A SaaS provider requires a different approach than a financial consulting firm. We tailor our lead generation, content creation, and search engine optimization to the specific needs of your business and industry. This customization ensures the marketing message resonates with the right professional audience.`]},{heading:`How does 5WPR measure B2B marketing success?`,lead:`Every digital marketing campaign requires transparent tracking to prove return on investment.`,tone:`white`,body:[`5WPR tracks performance across all digital channels to measure lead quality, acquisition costs, and conversion rates. We use analytics tools to monitor how prospects interact with your content, search listings, and advertisements. This data allows our team to optimize campaigns in real time.`,`We focus on results-oriented marketing rather than vanity metrics. Our goal is to help brands create actual demand and drive tangible business outcomes. We provide regular reporting so clients can see how their marketing budget contributes to pipeline growth.`]},{heading:`Why Companies Choose 5WPR for B2B Digital Marketing`,tone:`dark`,bullets:[`Founded in 2003; approximately 250 professionals serving 250+ clients across consumer, corporate, crisis, healthcare, technology, and public affairs.`,`Recognized as a top U.S. PR agency by O'Dwyer's, named Agency of the Year in the American Business Awards, and honored as a Top Place to Work in Communications in 2026 by Ragan.`,`Client experience spanning SaaS, technology, and agricultural and consumer-technology innovators, including Freight Farms and SmartThings by Samsung.`,`PR, digital marketing, and GEO run as one integrated team rather than separate vendors.`]},{heading:`Cross-industry digital marketing experience`,lead:`5WPR executes digital strategies that build authority and drive growth for technology and innovation brands, work that draws on the same SEO, content, and paid-media skill set this page describes.`,tone:`muted`,body:[`We supported Freight Farms, the company that pioneered the concept of the container farm. Our digital and communications work helped position their agricultural innovation in front of commercial buyers and investors.`,`We also manage digital campaigns for SmartThings by Samsung. Our work helps customers understand how to connect devices and technologies to achieve a unified smart home ecosystem. Clear digital communication helps technical brands explain complex integrations to their target markets.`]},{heading:`Why integrate PR with B2B digital marketing?`,lead:`Combining public relations with digital marketing creates a stronger overall online presence.`,tone:`white`,body:[`Earned media placements generate authoritative backlinks that improve search engine optimization. When a B2B brand earns coverage in a major trade publication, that mention signals credibility to both human buyers and search algorithms. We coordinate our PR and digital teams to maximize the impact of every announcement.`,`Content marketing also fuels media relations. The whitepapers and data reports we create for digital lead generation serve as excellent assets for pitching journalists. This approach aligns with broader [corporate digital marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) initiatives to ensure your brand message remains consistent across news articles, search results, and social media feeds.`]}],closing:{kicker:`Talk to the B2B Digital Marketing Team`,headline:`Connect technical expertise with the searches decision-makers run every day.`,body:[`Effective B2B digital marketing connects technical expertise with the specific search queries and platforms decision-makers use every day. 5W runs AI Search (GEO) programs for B2B brands the same way it runs earned media programs — built to help a company's name surface in the answer, not just on a results page. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},ah=[{q:`How does B2B digital marketing help companies appear in AI search results?`,a:`Generative Engine Optimization (GEO) 
197is now a standard part of a B2B digital marketing program, not a separate add-on. When a buyer asks ChatGPT, Perplexity, or Google AI Overviews to compare software or service providers, the brands with clear, consistent, well-structured information across their website and third-party coverage are the ones more likely to surface in the answer.`},{q:`How does account-based marketing target specific buyers?`,a:`Account-based marketing flips the traditional sales funnel by identifying high-value target companies first, then developing personalized messaging for the specific decision-makers within a target account using LinkedIn Ads and direct email outreach.`},{q:`Which industries benefit from B2B digital marketing?`,a:`5WPR has extensive experience building campaigns for Software as a Service (SaaS), technology, finance, and professional services companies — industries that feature high price points, multiple decision-makers, and extended sales cycles.`},{q:`How does 5WPR measure B2B marketing success?`,a:`5WPR tracks performance across all digital channels to measure lead quality, acquisition costs, and conversion rates, and focuses on results-oriented marketing rather than vanity metrics, with regular reporting on pipeline growth.`}],oh={slug:`digital-marketing-agency/health-wellness-digital-marketing-services.cfm`,practiceKey:`health`,breadcrumb:`Health & Wellness Digital Marketing`,h1:`Health and Wellness Digital Marketing Agency`,heroLead:`A health and wellness digital marketing agency connects healthcare providers and wellness brands with high-intent consumers. Patients research symptoms and treatments online before booking an appointment. According to [eMarketer's 2025 Healthcare Consumer research](https://b2b.healthgrades.com/insights/blog/how-patients-find-care-today-and-what-it-means-for-patient-acquisition/), 82.2% of consumers begin their online medical research on a search engine. This means digital visibility directly dictates patient acquisition. 5W Public Relations (5WPR) combines search engine optimization, paid media, and Generative Engine Optimization (GEO) to build the credibility required to convert users across traditional search and AI platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected health and wellness clients`,caseHeading:`Health and wellness digital marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Fitness & Wellness Apps`,body:[`Peloton owns the screen. Whoop owns the wrist. The legacy gyms lost the app.`],href:`/ai-visibility-index/fitness-wellness-apps-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/fitness-wellness-apps-ai-visibility-index-2026-cover.webp`,coverAlt:`Fitness & Wellness Apps — 5WPR research report cover`},researchHeading:`Research behind our health and wellness practice`,faqSlug:`digital-marketing-agency/health-wellness-digital-marketing-services.cfm`,faqHeading:`Frequently Asked Questions`,sections:[{heading:`How Do Consumers Discover Health and Wellness Brands?`,lead:`Discovery in the wellness sector requires both visibility and medical or scientific credibility.`,tone:`white`,body:[`Today, health and wellness consumers do not rely on a single search engine. They use TikTok for fitness routines, Google for local healthcare providers, and AI platforms like Perplexity to research specific supplement ingredients or treatment options. Brands must maintain accurate, authoritative information across all these environments.`,`5WPR integrates digital marketing with public relations to ensure health brands appear in relevant searches and AI answers. We focus on the regulatory and reputational dynamics unique to the healthcare space. Our campaigns connect performance marketing with strategic storytelling to drive discovery, build patient trust, and generate measurable business outcomes.`]},{heading:`Digital Marketing Services for Health and Wellness Brands`,lead:`5W delivers integrated digital marketing programs built for the regulatory and consumer demands of the wellness industry.`,tone:`dark`,layout:`centered`,cards:[{title:`Search Engine Optimization (SEO)`,body:`We develop SEO strategies that capture high-intent search traffic. The team executes technical site audits, keyword strategy, and on-page optimization to help healthcare providers compete in organic search results.`},{title:`Content Marketing and Brand Authority`,body:`Health consumers require compliant, educational content before making purchasing decisions. We produce guides, thought leadership articles, and long-form content that strengthen domain authority while supporting user engagement.`},{title:`Social Media and Influencer Marketing`,body:`Social platforms drive wellness product discovery. We build social media strategies across Instagram, TikTok, LinkedIn, and YouTube. Much like our work as a [beauty digital marketing agency](/practice/beauty-digital-marketing-agency.cfm), we partner with wellness influencers to demonstrate product efficacy and build community trust.`},{title:`Generative Engine Optimization (GEO)`,body:`AI platforms now answer complex health questions directly. Our GEO strategies use structured data, authoritative placements, and optimized content to improve brand visibility within Google AI Overviews, ChatGPT, and Perplexity.`,links:[{href:`/practice/case-study.cfm`,label:`View Case Studies`}]}]},{heading:`Managing Online Reputation for Healthcare Brands`,lead:`Patient trust dictates success for medical providers and wellness companies.`,tone:`muted`,body:[`A single negative review or inaccurate search result can damage a healthcare brand's credibility. We monitor online sentiment across review platforms, news outlets, and social media channels. Our team manages search results so they reflect accurate, positive information about your medical practice or digital health platform.`,`We provide [corporate digital marketing programs](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) that help large healthcare networks manage their online presence at scale. By addressing reputational issues proactively, we protect patient acquisition pipelines and maintain brand authority.`]},{heading:`Paid Media and Audience Segmentation`,lead:`Paid media campaigns require precise targeting to reach specific patient or consumer demographics.`,tone:`white`,body:[`5WPR manages search advertising, social media ads, and audience retargeting programs. We segment audiences based on search intent, demographic data, and behavioral signals to deliver relevant health and wellness content.`,`The team optimizes these campaigns continuously to maximize return on investment. We focus on reducing cost per acquisition while scaling digital health platforms and wellness product sales.`]},{heading:`Why Does GEO Matter for Healthcare and Wellness?`,lead:`Generative AI systems synthesize medical and wellness information from across the web to answer direct consumer questions.`,tone:`dark`,body:[`When a user asks an AI engine to compare two digital health platforms or explain a supplement ingredient, the engine draws on the sources it finds most authoritative and consistent. Brands with weak or inconsistent authority signals may be less likely to surface accurately in AI-generated answers, which is a real risk for a brand that has no third-party citations or a scattered, unclear entity footprint online.`],callout:{kicker:`Why authority matters`,body:[`AI systems frequently surface information supported by authoritative, relevant, and corroborating sources rather than any single owned page. Securing mentions in authoritative healthcare publications and structuring owned website data clearly gives AI engines more of that corroborating evidence to draw on when they describe your brand.`],link:{href:`/practice/geo-optimization.cfm`,label:`GEO optimization services`}}},{heading:`Health and Wellness Digital Marketing Case Studies`,lead:`5WPR executes digital marketing and communications campaigns for national healthcare leaders and global wellness brands.`,tone:`muted`,bullets:[`Newport Healthcare: A national provider of teen and young adult mental health treatment.`,`Newport Academy: A network of healing centers for adolescents and families struggling with mental health issues.`,`USANA Health Sciences: A global nutrition company producing science-based supplements and personal care products.`],body:[`Newport Healthcare partnered with 5WPR to enhance its visibility across digital channels. We developed a program to establish the organization as a thought leader within a highly regulated medical environment.`,`We also support Newport Academy. Our work focuses on connecting families with credible treatment information when they research care options online. We use targeted content and search optimization to reach families actively seeking help.`,`For USANA Health Sciences, 5WPR produced a strategic campaign emphasizing the brand's category leadership. We used the company's United States marketing initiatives to secure effective media coverage and strengthen overall digital authority. The program aligned public relations efforts with digital visibility goals to drive consumer awareness.`]},{heading:`Why Companies Choose 5WPR for Health and Wellness Digital Marketing`,tone:`white`,bullets:[`Founded in 2003; approximately 250 professionals serving 250+ clients across consumer, corporate, crisis, healthcare, technology, and public affairs.`,`Recognized as a top U.S. PR agency by O'Dwyer's, named Agency of the Year in the American Business Awards, and honored as a Top Place to Work in Communications in 2026 by Ragan.`,`Client experience spanning mental health treatment (Newport Healthcare, Newport Academy) and global nutrition and supplements (USANA Health Sciences).`,`PR, digital marketing, and GEO run as one integrated team, built for the compliance and trust requirements specific to healthcare communications.`]}],closing:{kicker:`Talk to the Digital Marketing Team`,headline:`Capture demand and build lasting consumer trust in health and wellness.`,body:[`5W builds targeted digital marketing programs that help health and wellness brands capture demand and build lasting consumer trust. Because healthcare buyers now research symptoms and providers through AI platforms as often as search engines, 5W's GEO practice builds the structured, authoritative content that helps a health or wellness brand surface accurately when someone asks for a recommendation. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},sh=[{q:`What makes health and wellness digital marketing different?`,a:`Healthcare and wellness marketing requires strict adherence to regulatory guidelines and medical accuracy. Brands must balance persuasive consumer marketing with factual, compliant information that protects patient safety and builds long-term trust.`},{q:`How do AI search engines evaluate wellness brands?`,a:`AI engines tend to favor sources with clear entity definitions and consistent third-party verification. Engines look for c
197orroboration across medical journals, news outlets, and structured brand websites before surfacing a wellness product or service in an answer.`},{q:`How does 5W measure digital marketing performance?`,a:`We track measurable business outcomes rather than isolated metrics. Our team monitors organic traffic growth, conversion rates, cost per acquisition, and AI citation share to ensure every campaign drives tangible revenue or patient acquisition.`}],ch={slug:`digital-marketing-agency/insurance-digital-marketing.cfm`,practiceKey:`corporate`,breadcrumb:`Insurance Digital Marketing`,h1:`Insurance Digital Marketing Agency`,heroLead:`5W Public Relations (5WPR) builds digital marketing programs for insurance providers, brokers, and Insurtech companies. We combine search engine optimization, paid media, and content strategy to help insurance brands increase visibility, acquire new policyholders, and establish authority across search engines and AI discovery platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected insurance and Insurtech clients`,caseHeading:`Insurance digital marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Health Insurance`,body:[`UnitedHealth owns the answer. Anthem barely exists.`],href:`/ai-visibility-index/health-insurance-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/health-insurance-ai-visibility-index-2026-cover.webp`,coverAlt:`Health Insurance — 5WPR research report cover`},researchHeading:`Research behind our insurance digital marketing practice`,faqSlug:`digital-marketing-agency/insurance-digital-marketing.cfm`,faqHeading:`Frequently Asked Questions`,sections:[{heading:`How Digital Marketing Drives Insurance Customer Acquisition`,lead:`Insurance buyers research policies, compare providers, and evaluate coverage options online before contacting a broker.`,tone:`white`,body:[`5WPR develops digital marketing campaigns that position insurance brands at every stage of this research process. We build infrastructure that captures high-intent search traffic and converts visitors into qualified leads. Programs integrate technical search optimization with targeted advertising to reach specific demographics and commercial buyers.`,`Search engines weigh website authority, technical structure, and content relevance when determining which insurance providers appear for specific queries. 5WPR builds digital infrastructure with these factors in mind. As a specialized [B2B digital marketing agency](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm), we structure policy information so search algorithms can index and display commercial coverage details correctly.`]},{heading:`Insurance Digital Marketing Services`,lead:`5WPR executes integrated digital marketing campaigns tailored to the regulatory and competitive requirements of the insurance industry.`,tone:`dark`,layout:`centered`,cards:[{title:`SEO for Insurance Companies`,body:`We optimize insurance websites to rank for high-intent queries and local search terms. Technical optimization improves site speed, mobile responsiveness, and URL structures. We implement schema markup to label insurance products, business locations, and customer reviews clearly for search crawlers. This technical foundation helps search engines retrieve and display provider information accurately.`},{title:`Content Marketing and Thought Leadership`,body:`Our team produces industry-specific content including whitepapers, case studies, and coverage guides. This material answers complex buyer questions and builds authority for insurance brokers and Insurtech executives. We map content to specific stages of the buying cycle, from initial coverage research to final provider comparisons.`},{title:`Paid Media and PPC Advertising`,body:`We manage data-driven advertising campaigns across Google Ads and social media platforms. Campaign managers allocate budget toward the highest-converting policy categories and demographic segments to control customer acquisition costs. We use exact-match keywords and negative keyword lists to prevent wasted ad spend on irrelevant search traffic.`},{title:`Social Media Marketing`,body:`We build social media programs on platforms like LinkedIn and Facebook to reach commercial decision-makers and consumer policyholders. Regular social programming keeps insurance brands visible during long consideration cycles. We develop executive profiles that position agency leaders as knowledgeable resources for risk management.`},{title:`Website Optimization and User Experience`,body:`Website performance dictates insurance lead generation. We improve site speed, navigation, and conversion pathways to turn visitors into quote requests and policy applications. Development teams run A/B tests on landing pages to identify which layouts and calls to action produce the highest conversion rates.`,links:[{href:`/practice/case-study.cfm`,label:`View Case Studies`}]}]},{heading:`Local Search Strategies for Insurance Brokers`,lead:`Insurance buyers often search for local brokers and regional coverage options.`,tone:`muted`,body:[`5WPR optimizes digital profiles to capture location-based insurance queries. We manage Google Business Profiles and local directory listings to ensure consistent contact information across the web. This local search optimization helps regional insurance agencies appear in map packs and localized search results. We build location-specific landing pages that address the unique regulatory environments and coverage requirements of different states.`]},{heading:`Integrating Public Relations with Digital Marketing`,lead:`Digital visibility relies on authoritative third-party signals and strong brand reputation.`,tone:`white`,body:[`5WPR aligns digital marketing with corporate communications to build credibility for insurance providers. Earned media placements in financial and trade publications generate authoritative backlinks that improve search rankings. We coordinate press announcements, industry partnerships, and executive positioning with digital distribution channels.`,`This integrated approach ensures that when prospects search for an insurance brand, they find positive media coverage alongside optimized company assets. Our [corporate digital marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) programs protect brand reputation during product launches and market expansions.`]},{heading:`Marketing Strategies for Insurtech Brands`,lead:`Insurtech companies require marketing programs that explain complex technology while building trust with traditional buyers.`,tone:`dark`,body:[`Insurtech platforms disrupt traditional underwriting and claims processing using artificial intelligence and data analytics. We translate these technical capabilities into clear value propositions for c
197onsumers and enterprise partners. Marketing programs for Insurtech startups focus on category creation, explaining proprietary algorithms, and demonstrating clear advantages over legacy insurance models.`,`We use targeted lead generation tactics to connect Insurtech platforms with enterprise partners and direct consumers. We help emerging insurance technology platforms scale their market presence and attract venture capital attention.`]},{heading:`Evaluating Insurance Marketing Performance`,lead:`5WPR measures digital marketing success through concrete customer acquisition metrics rather than surface-level engagement.`,tone:`muted`,body:[`We track policy quotes, form submissions, and cost per acquisition across all digital channels. Analytics teams monitor user behavior on insurance websites to identify friction points in the application process. We deploy custom tracking pixels and conversion tags to attribute new policies to specific marketing initiatives. This data dictates how we adjust paid media spending and content production to maximize return on investment.`]},{heading:`Why Companies Choose 5WPR for Insurance Digital Marketing`,tone:`white`,bullets:[`Founded in 2003; approximately 250 professionals serving 250+ clients across consumer, corporate, crisis, healthcare, technology, and public affairs.`,`Recognized as a top U.S. PR agency by O'Dwyer's, named Agency of the Year in the American Business Awards, and honored as a Top Place to Work in Communications in 2026 by Ragan.`,`Integrated SEO, paid media, and GEO capability built for regulated, high-consideration purchase categories.`]}],closing:{kicker:`Talk to the Digital Marketing Team`,headline:`Increase visibility and acquire new policyholders across search and AI.`,body:[`5WPR develops data-driven digital marketing programs that help insurance and Insurtech brands increase visibility and acquire new policyholders. As buyers increasingly ask AI tools to compare coverage options, 5W's GEO practice builds the machine-readable footprint that helps a policy or platform surface in the answer. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},lh=[{q:`How much does insurance digital marketing cost?`,a:`Cost depends on scope: a local broker running SEO and Google Business Profile management sits at a different budget than a national carrier or Insurtech platform running SEO, paid media, and content together. 5WPR scopes each engagement to the channels and markets a client actually needs rather than a single fixed package.`},{q:`How long does insurance SEO take?`,a:`Organic visibility typically builds over several months of consistent technical optimization, content publication, and local listing work, with timing shaped by how competitive the specific insurance category and geography are. Paid search can generate leads immediately while the organic foundation builds in parallel.`},{q:`How can insurance companies appear in AI search results?`,a:`The same structured, verifiable information that helps a search engine understand an insurance provider — clear coverage details, consistent business listings, schema markup — is what AI platforms draw on when a buyer asks them to compare providers or explain a policy type. 5WPR builds this structured footprint as part of the same program that runs SEO and content.`},{q:`What is the difference between insurance SEO and insurance PPC?`,a:`SEO builds organic visibility over time through technical optimization and content, and doesn't require ongoing spend to hold a ranking once earned. PPC buys immediate placement for specific searches and stops generating traffic the moment spending stops. Most insurance and Insurtech programs run both together, using paid search for immediate lead volume while the organic foundation builds.`}],uh={slug:`digital-marketing-agency/integrated-marketing-agency.cfm`,practiceKey:`consumer`,breadcrumb:`Integrated Marketing`,h1:`Integrated Marketing Agency`,heroLead:`5WPR is an integrated marketing agency that builds cross-functional campaigns spanning public relations, digital marketing, and experiential activations. We coordinate messaging across earned media, social channels, and search platforms to ensure brands reach their target audiences with a single, consistent voice.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected integrated marketing clients`,caseHeading:`View Integrated Marketing Case Studies`,featuredReport:{kicker:`Proprietary Research`,heading:`How 5W Measures AI Visibility`,body:[`The permanent canonical methodology for the 5W AI Visibility Index and The 5W AI Trust Map of America. Prompt design, sample prompts, engine consistency, modeling logic, tie-breaking, limitations.`],href:`/research/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/how-we-measure-ai-visibility-cover.webp`,coverAlt:`How 5W Measures AI Visibility — 5WPR research report cover`},researchHeading:`Research behind our integrated marketing practice`,faqSlug:`digital-marketing-agency/integrated-marketing-agency.cfm`,faqHeading:`Frequently Asked Questions About Integrated Marketing`,sections:[{heading:`What Is an Integrated Marketing Campaign?`,lead:`An integrated marketing campaign connects public relations, digital strategy, and direct consumer engagement into a single coordinated program.`,tone:`white`,body:[`Brands often split their efforts between traditional media and digital channels. 5WPR removes this division by aligning brand messaging across every touchpoint. When a company launches a product, our team coordinates the press release, the influencer partnerships, the search engine optimization (SEO) strategy, and the retail activations so they compound rather than compete.`,`This approach increases efficie
197ncy and reduces costs. Instead of creating separate assets for every platform, our professionals repurpose core content across multiple channels. This maintains a consistent tone and avoids confusing the target audience.`]},{heading:`Integrated Marketing Services`,lead:`5WPR develops multi-channel marketing programs designed around the specific audiences and business goals of each client.`,tone:`dark`,body:[`Our campaigns combine traditional public relations with digital marketing ideation and targeted audience segmentation. We manage the entire process from strategic planning to measurement and continuous optimization.`],chips:[`Content marketing creation and distribution`,`Affiliate and co-op marketing programs`,`Community activations and grassroots marketing`,`National and regional consumer sampling`,`Multi-market tours and regional retail marketing`,`Guerrilla and viral marketing activations`,`Radio promotions and brand messaging strategy`]},{heading:`Content Marketing and Brand Messaging`,lead:`A successful integrated marketing campaign relies on a central brand message adapted for different formats.`,tone:`muted`,body:[`5WPR develops core brand messaging that serves as the foundation for all campaign materials. We build target audience segmentation models to understand exactly who the brand needs to reach and what information those buyers need to make a decision. This ensures that every piece of content serves a specific business objective.`,`Our teams execute content marketing creation across blogs, whitepapers, social media graphics, and video scripts. Because the strategy is integrated, a single core asset like an industry report can be broken down into press pitches, social media posts, and email newsletters. This maximizes the value of every content investment.`]},{heading:`Community Activations and Grassroots Marketing`,lead:`Physical brand experiences build local awareness and generate digital content.`,tone:`white`,body:[`5WPR executes community activations and grassroots marketing programs that put products directly into the hands of target consumers. We organize national and regional consumer sampling programs, multi-market tours, and regional retail marketing events. These physical activations create immediate brand affinity in key geographic markets.`,`We design these activations with digital amplification in mind. Guerrilla and viral marketing stunts are structured to encourage user-generated content and social sharing. This turns a localized physical event into a national digital conversation, multiplying the campaign's reach.`]},{heading:`Affiliate and Co-op Marketing`,lead:`Strategic partnerships expand a brand's reach by tapping into established audiences.`,tone:`dark`,body:[`5WPR develops affiliate and co-op marketing programs that align our clients with complementary brands and publishers. We identify partners that share the same target audience segmentation but offer non-competing products or services.`,`These programs create new revenue streams and customer acquisition channels. By integrating affiliate marketing with our broader PR and digital efforts, we ensure that promotional partnerships maintain the brand's premium positioning and consistent tone.`]},{heading:`How Integrated PR and Marketing Work Together`,lead:`Combining public relations with digital marketing improves brand visibility across both traditional media and modern search environments.`,tone:`muted`,body:[`Earned media coverage builds credibility and supports digital performance. When our PR professionals secure placements in top-tier publications, those articles often include backlinks that improve a brand's SEO rankings. We integrate these PR wins with digital marketing efforts to ensure that when consumers search for the brand after reading an article, they find optimized content and clear conversion paths.`,`This strategy also supports emerging brands trying to build credibility. 5WPR draws on relationships with influencers and media outlets to help new companies springboard off established entities, increasing leads and driving customer conversions.`,`For companies in specific sectors, we tailor these approaches through specialized teams. Our [B2B digital marketing agency](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm) and [corporate digital marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) divisions build custom integrations for c
197omplex enterprise sales cycles.`]},{heading:`Why AI Visibility Requires an Integrated Approach`,lead:`Generative Engine Optimization (GEO) relies on consistent, authoritative signals across multiple platforms.`,tone:`white`,body:[`AI assistants and search platforms draw on information from across the web when they describe a brand. If a brand's PR messaging says one thing but its website says another, the two can pull in different directions instead of reinforcing each other. 5WPR aligns earned media coverage, owned content, and technical SEO so AI engines have a clear, unified narrative to draw on when they describe the brand.`],callout:{kicker:`The GEO advantage`,body:[`AI systems are more likely to understand a brand correctly when authoritative sources consistently describe its products, expertise, and market position. Integrated PR, digital content, and structured website information can reinforce those signals, which is the practical case for running them as one program rather than three disconnected ones.`],link:{href:`/practice/geo-optimization.cfm`,label:`GEO optimization services`}}},{heading:`Integrated Marketing for Consumer Brands`,lead:`Consumer campaigns require coordination across retail, experiential, and digital touchpoints.`,tone:`dark`,body:[`Whether supporting a product launch or a multi-market tour, 5WPR ensures that physical activations translate into digital engagement. For example, our [beauty digital marketing agency](/practice/beauty-digital-marketing-agency.cfm) team connects regional consumer sampling events with targeted social media campaigns and influencer partnerships.`,`This ensures that the people who experience the product in person are retargeted online. Connecting the physical experience to the digital conversion path maximizes the return on investment for the activation.`]},{heading:`Why Companies Choose 5WPR for Integrated Marketing`,tone:`muted`,bullets:[`Founded in 2003; approximately 250 professionals serving 250+ clients across consumer, corporate, crisis, healthcare, technology, and public affairs.`,`Recognized as a top U.S. PR agency by O'Dwyer's, named Agency of the Year in the American Business Awards, and honored as a Top Place to Work in Communications in 2026 by Ragan.`,`PR, digital, experiential, and GEO run under one roof, so brand messaging stays consistent across every channel by construction, not by coordination after the fact.`]}],closing:{kicker:`Contact the Integrated Marketing Team`,headline:`Align earned media, digital strategy, and consumer activations in one program.`,body:[`5WPR develops integrated marketing programs that align earned media, digital strategy, and consumer activations to drive measurable business growth. Because GEO depends on consistent signals across every channel, it sits naturally inside this integrated approach — one more channel that has to say the same thing as the press release and the website. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},dh=[{q:`What is the difference between PR and integrated marketing?`,a:`Public relations focuses primarily on earned media, reputation management, and third-party credibility. Integrated marketing combines PR with paid media, owned digital channels, and experiential activations to guide a consumer through the entire purchasing journey.`},{q:`How does integrated marketing improve SEO?`,a:`Integrated campaigns generate high-quality backlinks through digital PR placements and distribute optimized content across multiple platforms. This coordinated distribution signals authority to search engines, improving organic rankings for target keywords.`},{q:`Why is tone and voice consistency important?`,a:`Consumers interact with brands across multiple touchpoints before making a purchase. If a brand sounds authoritative in a press release but overly casual on social media, it creates cognitive dissonance. Consistent messaging builds trust and accelerates the sales cycle.`}],fh={slug:`digital-marketing-agency/law-firm-digital-marketing.cfm`,practiceKey:`corporate`,breadcrumb:`Law Firm Digital Marketing`,h1:`Law Firm Digital Marketing Agency`,heroLead:`5W Public Relations (5WPR) provides digital marketing for law firms to attract high-value clients and build practice authority. We combine search engine optimization (SEO), targeted paid advertising, and reputation management to ensure legal practices are visible when prospective clients research representation.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected legal and legal-tech clients`,caseHeading:`Legal digital marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Legal AI`,body:[`Harvey wins associates. Westlaw still wins the question.`],href:`/research/legal-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/legal-ai-visibility-index-2026-cover.webp`,coverAlt:`Legal AI — 5WPR research report cover`},researchHeading:`Research behind our legal digital marketing practice`,faqSlug:`digital-marketing-agency/law-firm-digital-marketing.cfm`,faqHeading:`Frequently Asked Questions`,sections:[{heading:`How Does Digital Marketing Drive Legal Client Acquisition?`,lead:`Prospective clients use Google search, AI platforms, and online reviews to evaluate attorneys before making contact.`,tone:`white`,body:[`A strong digital footprint determines whether a firm captures qualified leads or loses them to competitors. We build compliant, data-driven campaigns that increase website traffic and optimize lead generation for legal professionals and legal technology companies.`,`A law firm must rank prominently for specific practice areas and geographic locations to capture high-intent searches. We structure digital campaigns to intercept these queries through targeted content and paid search placements.`,`Client trust drives hiring decisions in the legal sector. We integrate digital marketing with [Corporate Digital Marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) strategies to ensure the firm's online reputation matches its courtroom or boardroom track record.`]},{heading:`What Digital Marketing Services Do Law Firms Need?`,lead:`Law firms require a mix of technical search engine optimization, compliance-focused content marketing, and targeted paid advertising to capture client demand.`,tone:`dark`,layout:`centered`,cards:[{title:`Search Engine Optimization (SEO)`,body:`We improve organic search rankings through technical SEO and local search optimization. By targeting specific queries like family law representation or corporate litigation, we ensure potential clients find the firm during their initial research phase.`},{title:`Content Marketing and Authority Building`,body:`Legal professionals build trust by demonstrating expertise. We develop case studies, legal guides, and whitepapers that answer common client questions and position the firm as a thought leader in its respective practice areas.`},{title:`Paid Search and PPC Advertising`,body:`Paid advertising captures immediate demand for legal services. We manage Google Ads and LinkedIn Ads campaigns focused on high-intent audiences, controlling acquisition costs while generating qualified leads.`},{title:`Reputation Management and Review Strategy`,body:`Online reviews directly influence hiring decisions. We implement reputation management protocols to monitor client feedback, address concerns, and highlight positive interactions across public review platforms.`},{title:`Social Media Marketing`,body:`We build targeted social media programs on platforms like LinkedIn, Facebook, and Twitter. For firms targeting corporate clients, we align these efforts with [B2B Digital Marketing Agency](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm) principles to reach in-house counsel and executives.`,links:[{href:`/contactus/`,label:`Talk to the Legal Digital Marketing Team`}]}]},{heading:`How Do AI and Generative Engines Impact Legal Search?`,lead:`Generative AI platforms increasingly influence how consumers research legal questions, attorneys, and law firms.`,tone:`muted`,body:[`5WPR integrates AI digital marketing insights to evaluate how large language models perceive and cite your firm. We audit citation share to see how AI engines describe your practice relative to competitors when users ask about specific legal categories.`,`We structure website content and entity data so AI systems can accurately retrieve the firm's practice areas, attorney credentials, and office locations. This proactive approach helps the firm stay visible as search behavior shifts toward conversational AI.`],callout:{kicker:`AI visibility`,heading:`Audit how AI engines describe your firm`,body:[`Our GEO practice measures citation share and structures practice-area and attorney information so AI platforms can retrieve it accurately.`],link:{href:`/practice/geo-optimization.cfm`,label:`GEO optimization services`}}},{heading:`Why Companies Choose 5WPR for Law Firm Digital Marketing`,tone:`white`,bullets:[`Founded in 2003; approximately 250 professionals serving 250+ clients across consumer, corporate, crisis, healthcare, technology, and public affairs.`,`Recognized as a top U.S. PR agency by O'Dwyer's, named Agency of the Year in the American Business Awards, and honored as a Top Place to Work in Communications in 2026 by Ragan.`,`Corporate communications experience in litigation-adjacent and reputation-sensitive matters, integrated 
197with the SEO and paid media described above.`]}],closing:{kicker:`Contact the Legal Digital Marketing Team`,headline:`Compliant, high-performing digital marketing for law firms and legal tech.`,body:[`5WPR builds compliant, high-performing digital marketing programs for law firms and legal tech companies. As legal search shifts toward conversational AI, 5W's GEO practice structures practice-area and attorney information so AI platforms can retrieve it accurately when a prospective client is researching representation. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},ph=[{q:`How does digital marketing comply with legal advertising ethics?`,a:`We design every campaign to adhere to state bar advertising regulations. We avoid prohibited guarantee language and ensure all claims are verifiable and properly attributed.`},{q:`What is the timeline for seeing results from legal SEO?`,a:`Many firms begin seeing measurable organic-search movement within several months, although timing depends on competition, site authority, technical condition, content, and market. Paid search campaigns generate immediate visibility and lead volume while the organic foundation builds.`},{q:`Do you support specific legal practice areas?`,a:`We build tailored strategies for corporate law, family law, personal injury, intellectual property, and legal technology companies. Each practice area receives a custom keyword and audience targeting strategy based on its unique client lifecycle.`}],mh={slug:`cybersecurity-pr-and-digital-marketing-agency.cfm`,practiceKey:`technology`,breadcrumb:`Cybersecurity PR`,h1:`Cybersecurity PR Agency and Communications`,heroLead:`What does a cybersecurity PR agency do? A cybersecurity PR agency helps security companies build credibility and visibility through media relations, threat-response commentary, executive thought leadership, analyst relations, original research publication, and communications strategy that differentiates vendors in competitive markets.`,heroCtas:[{href:`/contactus/`,label:`Request a Cybersecurity PR Consultation`},{href:`tel:+12129995585`,label:`(212) 999-5585`}],trustLabel:`Selected technology and security clients`,caseHeading:`Cybersecurity communications case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Cybersecurity`,body:[`A Q2 2026 pilot study across high-intent buyer queries.`],href:`/ai-visibility-index/5w-ai-cybersecurity-visibility-index-q2-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/5w-ai-cybersecurity-visibility-index-q2-2026-cover.webp`,coverAlt:`Cybersecurity — 5WPR research report cover`},researchHeading:`Research behind our cybersecurity practice`,faqSlug:`cybersecurity-pr-and-digital-marketing-agency.cfm`,faqHeading:`FAQ: Cybersecurity PR & Vendor Marketing`,sections:[{heading:`What Do Cybersecurity Companies Need from PR?`,lead:`Cybersecurity buying decisions are influenced by perceived market authority (vendor credibility), thought leadership (executives publishing original insights), threat visibility (appearing in relevant attack coverage), competitive positioning (clear differentiation), analyst presence (inclusion in major reports), and M&A opportunity.`,tone:`white`,body:[`5WPR is a cybersecurity PR and marketing agency supporting security vendors, managed security service providers, enterprise security leaders, and technology companies focused on information security. Programs combine media relations, executive positioning, security research publication, threat intelligence communications, and generative engine optimization to build category authority.`]},{heading:`5WPR Experience in Cybersecurity Communications`,tone:`dark`,body:[`5WPR has worked with security vendors ranging from emerging startups to established platforms across endpoint detection, cloud security, identity management, data loss prevention, managed security services, and specialized domains like AI safety and supply chain security. Our team has coordinated threat response communications, managed analyst relations with firms including Gartner and Forrester, and positioned 
197security executives in publications including Security Magazine, Dark Reading, and major business press.`]},{heading:`Cybersecurity Threat Communication & Media Relations`,lead:`When a major cyber threat emerges, security vendors and enterprise security teams need to communicate quickly and credibly.`,tone:`muted`,body:[`Media outlets and security researchers look for vendors who can explain the threat, its implications, and defensive measures. Companies that respond immediately with expert analysis position themselves as industry authorities.`,`5WPR coordinates threat response communications with media relations, analyst outreach, and threat intelligence publication to ensure clients appear in coverage when threats emerge.`]},{heading:`Executive Positioning & Thought Leadership for CISOs`,lead:`Chief Information Security Officers (CISOs) and security researchers become valuable assets for their organizations when they publish original research, speak at industry conferences, and appear as expert sources in media coverage.`,tone:`white`,body:[`A CISO with visible media presence and published research becomes a recruiting tool and analyst relations asset. 5WPR helps security executives build visibility through:`],bullets:[`Identifying speaking opportunities at industry conferences`,`Publishing original threat research and security insights`,`Positioning executives as sources for media inquiries`,`Building relationships with security journalists and analysts`,`Developing thought leadership content (whitepapers, research reports)`,`Coordinating media interviews around threat events`,`Building social media presence in security communities`]},{heading:`Security Research Publication & Visibility`,lead:`Security vendors with original research (threat reports, vulnerability analysis, attack trend studies) attract media attention, analyst coverage, and conference speaking opportunities.`,tone:`dark`,body:[`A vendor publishing research on a major new threat becomes a resource for journalists, analysts, and customers.`,`5WPR helps security companies develop research strategies, coordinate publication timing with media outreach, and amplify research findings through PR, analyst relations, and social media. We also manage press embargo processes to ensure media coverage launches in coordination with research publication.`]},{heading:`Analyst Relations & Gartner / Forrester Positioning`,tone:`muted`,body:[`Analyst reports including Gartner Magic Quadrant, Forrester Wave, and IDC reports are influential in security buying decisions. Vendors' positions in these reports affect customer perception, analyst coverage, and sales conversations. 5WPR manages relationships with analysts, coordinates vendor submissions, and positions executives for analyst briefings to maximize favorable placement.`]},{heading:`AI Search Visibility for Security Products`,lead:`When security leaders ask AI tools "What are the best endpoint detection platforms?" or "Which vend
197ors handle ransomware?", AI-generated answers cite vendor websites, analyst reports, case studies, and news coverage. Security vendors appearing in those answers gain visibility.`,tone:`white`,bullets:[`Measure AI citation frequency and accuracy`,`Identify which platforms cite the vendor`,`Audit whether product descriptions in AI answers are accurate`,`Target analyst reports and news coverage that feeds AI training`,`Ensure company messaging appears in sources AI systems reference`],callout:{kicker:`GEO for security vendors`,body:[`5WPR builds GEO programs for security vendors that measure AI citation frequency and accuracy and ensure company messaging appears in the sources AI systems reference.`],link:{href:`/practice/geo-optimization.cfm`,label:`Learn more about GEO`}}},{heading:`When to Call 5WPR for Cybersecurity PR`,tone:`dark`,chips:[`Major Threat Discovery`,`Executive Positioning`,`Research Publication`,`Analyst Relations`,`Product Launch`,`Competitive Differentiation`,`Conference Speaking`,`Crisis Communication`,`M&A Strategy`]}],closing:{kicker:`Request a Cybersecurity PR Consultation`,headline:`Ready to build your security company's market authority?`,body:[`Request a Cybersecurity PR Consultation: (212) 999-5585.`],ctas:[{href:`/contactus/`,label:`Talk to us`}]}},hh=[{q:`What is a cybersecurity PR agency?`,a:`A cybersecurity PR agency helps security companies build market authority, media visibility, and customer credibility through media relations, threat response communications, executive positioning, analyst relations, and strategic communications.`},{q:`How do security vendors build authority in a competitive market?`,a:`Through original research, executive visibility in media and analyst coverage, media coverage tied to relevant threats, analyst relations, speaking engagements, and customer case studies. Vendors perceived as thought leaders win more deals.`},{q:`What should I look for when hiring a cybersecurity PR firm?`,a:`Look for agencies with demonstrated relationships in security media outlets, experience managing threat-response communications, connections to security analysts (Gartner, Forrester, IDC), and a track record with security vendors. Ask for client references and case studies.`},{q:`How is cybersecurity PR different from technology PR?`,a:`Cybersecurity PR requires deep knowledge of security media, understanding of threat landscapes, familiarity with analyst reports, and connections to CISO communities. Technology PR is broader and may lack security-specific relationships.`},{q:`Does PR help security companies appear in AI search results?`,a:`Yes. AI systems cite authoritative media coverage, analyst reports, case studies, and news articles. Security vendors appearing in those sources are more likely to be cited in AI-generated answers about security solutions.`},{q:`How do I get my security company covered in major tech and business media?`,a:`Through strong media relationships (built by PR agencies), newsworthy announcements (product launches, funding, research), expert executive positioning, and tactical timing around industry trends and threats.`}],gh={slug:`defense-tech-executive-visibility.cfm`,practiceKey:`corporate`,breadcrumb:`Defense Tech Executive Visibility`,h1:`Defense Tech Executive Visibility and Thought Leadership`,heroLead:`What is defense tech executive visibility? Defense tech executive visibility is the practice of positioning defense technology leaders as authoritative sources in policy debates and media coverage around military technology, autonomous systems, AI governance, space security, and emerging defense capabilities.`,heroCtas:[{href:`/contactus/`,label:`Request a Defense Tech PR Consultation`},{href:`tel:+12129995585`,label:`(212) 999-5585`}],trustLabel:`Selected corporate and technology clients`,caseHeading:`Defense and technology communications case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Defense & Aerospace`,body:[`Defense-tech challengers outperform the legacy primes in AI citation share.`],href:`/ai-visibility-index/defense-aerospace/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/defense-aerospace-cover.webp`,coverAlt:`Defense & Aerospace — 5WPR research report cover`},researchHeading:`Research behind our defense technology practice`,faqSlug:`defense-tech-executive-visibility.cfm`,faqHeading:`FAQ: Defense Tech Executive Visibility`,sections:[{heading:`Why Defense Tech Executives Need Public Visibility`,lead:`Unlike consumer technology, defense technology decisions are made by governments, militaries, and defense agencies.`,tone:`white`,body:[`5WPR builds executive visibility for defense tech leaders by positioning them as authoritative voices in policy debates around autonomous systems, AI governance, space security, hypersonics, quantum computing, and emerging military technologies.`,`Executive visibility influences policy development, military strategy, procurement decisions, and international partnerships. An executive positioned as a policy authority shapes how defense challenges are understood and solved.`]},{heading:`5WPR Experience in Defense Technology Communications`,tone
197:`dark`,body:[`5WPR has worked with defense technology companies on executive positioning in policy debates, media relations with defense and business press, speaking engagement strategy at defense conferences, and analyst relations with defense research organizations.`]},{heading:`Positioning Executives in Emerging Policy Debates`,lead:`Defense policy debates rotate around key technologies: AI/autonomy governance, space security, quantum computing, hypersonic weapons, biodefense.`,tone:`muted`,body:[`An executive whose company solves problems in these areas should be positioned as an expert source. 5WPR identifies emerging policy debates, develops positioning, and connects executives to journalists and analysts covering those debates.`]},{heading:`Thought Leadership Content & Publishing`,lead:`Defense tech executives build credibility through published insights on policy, technology trends, geopolitical implications, and military modernization.`,tone:`white`,body:[`5WPR develops thought leadership strategy with executives, coordinates publication in relevant outlets (defense publications, policy journals, business press), and amplifies content through media relations.`]},{heading:`Speaking Engagements at Defense Forums`,lead:`Defense executives gain visibility by speaking at conferences and forums where defense policy, technology, and investment decisions are made.`,tone:`dark`,body:[`5WPR identifies appropriate events, coordinates speaker proposals, and positions executives for keynote or panel opportunities.`],chips:[`Association of the United States Army (AUSA)`,`TechNet`,`Defense News Congress`,`Air Force Association`,`Naval Submarine League`,`DARPA events`,`Center for Strategic and International Studies (CSIS)`]},{heading:`Relationships with Defense Media and Analysts`,lead:`Journalists covering defense technology need expert sources, and analysts shape how technology is perceived.`,tone:`muted`,body:[`Journalists covering defense technology (Defense News, Breaking Defense, C4ISRNET, Federal Times, Politico) need expert sources. Analysts at organizations like RAND Corporation, Center for Strategic and International Studies (CSIS), and Hudson Institute shape how technology is perceived. 5WPR builds relationships with these outlets and analysts on behalf of executives, ensuring they're positioned as authoritative sources.`]},{heading:`When to Call 5WPR for Defense Tech PR`,tone:`white`,chips:[`Executive Positioning`,`Policy Influence`,`Thought Leadership`,`Speaker Program`,`Analyst Relations`,`Media Relations`,`M&A Strategy`,`Partnership Development`]}],closing:{kicker:`Request a Defense Tech PR Consultation`,headline:`Ready to build your defense tech executive's visibility and policy influence?`,body:[`Request a Defense Tech PR Consultation: (212) 999-5585.`],ctas:[{href:`/contactus/`,label:`Talk to us`}]}},_h=[{q:`What is defense tech executive visibility?`,a:`Defense tech executive visibility is the practice of positioning defense technology leaders as authoritative sources in policy debates, media coverage, and analyst reports around military technology and defense innovation.`},{q:`How do defense tech executives build visibility while maintaining security compliance?`,a:`Work with legal and compliance teams to identify topics that can be discussed publicly. Generally: policy implications, broad technology trends, company positioning, and industry perspectives can be addressed. Classified information remains classified. Publicly-available technology details are fair game.`},{q:`Where do defense tech executives get media coverage?`,a:`Defense-focused media (Defense News, Breaking Defense, Federal Times), national business press (Wall Street Journal, Bloomberg, CNBC), policy publications (Politico, The Hill), and specialized tech media. 5WPR places executives in appropriate outlets based on topic and audience.`},{q:`What events are most important for defense tech executive visibility?`,a:`AUSA, TechNet, Defense News Congress, DARPA events, CSIS forums, and other venues where military decision-makers, policymakers, and journalists gather. Speaking at these events provides high-impact visibility.`},{q:`How do defense tech executives position against larger contractors?`,a:`Focus on differentiation: innovation speed, specialized focus, customer relationships, emerging technology areas. Larger contractors compete on scale. Smaller companies compete on nimbleness and specialization. 5WPR develops messaging that highlights your competitive strengths.`}],vh={slug:`hr-tech.cfm`,practiceKey:`technology`,breadcrumb:`HR Tech PR`,h1:`HR Tech PR Agency`,heroLead:`An HR tech PR agency builds market authority for workplace softw
197are, recruiting platforms, and employee management systems. 5W Public Relations (5WPR) secures earned media, manages funding announcements, and develops the machine-readable footprint that helps human resources platforms get cited by AI search engines when buyers evaluate vendors.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected HR technology clients`,caseHeading:`HR tech case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Project Management & Work Tools`,body:[`AI does not name one best tool; it names the best tool for the team and use case.`],href:`/ai-visibility-index/project-management-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/project-management-ai-visibility-index-2026-cover.webp`,coverAlt:`Project Management & Work Tools — 5WPR research report cover`},researchHeading:`Research behind our HR tech practice`,faqSlug:`hr-tech.cfm`,faqHeading:`Frequently asked questions about HR tech PR`,sections:[{heading:`How do buyers research future of work platforms?`,lead:`Human Resources (HR) executives and business leaders evaluate workplace technology across traditional media, peer reviews, and generative AI platforms.`,tone:`white`,body:[`The labor market shifts constantly, making conversations about hybrid work, economic forecasts, and corporate culture dominant in business media. Buyers look for HR platforms that understand these shifts.`,`5WPR positions HR technology companies as authoritative resources on these trends. The agency works with high-growth pre-IPO and public companies, including HiBob, WorkForce Software, Adzuna, Chronus, Bayard Advertising, WizeHire, DailyPay, and Epignosis.`],cards:[{title:`Earned media and funding communications`,body:`A dedicated press strategy places HR technology brands in top-tier business and trade publications. Startups and established platforms require distinct narratives to reach their target buyers. 5WPR works with brands to announce their funding and growth from Series A to Series D.`,extra:`The agency builds communications plans that reach HR tech buyers, C-suite executives, mid-level managers, and individual employees. Media relations efforts focus on securing quality coverage through rapid responses, contributed commentary, and opinion pieces on vital industry themes.`},{title:`Data-driven thought leadership`,body:`Data provides a verifiable way to break through to top-tier media. 5WPR works with clients to extract internal data or develop new studies that resonate with editors.`,extra:`Publishing original research creates valuable primary-source material that journalists can cite and AI systems may surface when answering relevant questions.`}]},{heading:`Does AI know your HR tech brand exists?`,lead:`Generative Engine Optimization (GEO) improves how clearly a software platform is represented in AI-generated answers.`,tone:`dark`,body:[`Buyers increasingly ask AI systems to compare payroll providers, list top recruiting software, or explain compensation platforms.`,`AI systems draw on a combination of learned information and retrieved web sources when generating answers. Clear brand information, authoritative third-party coverage, and consistent entity signals can increase the likelihood that an HR technology company is accurately represented and cited. 5WPR builds this profile by securing third-party media coverage and structuring owned content.`],callout:{kicker:`Why it works`,body:[`Consistent, authoritative coverage helps AI systems associate a brand correctly with its market category. 5WPR tracks these patterns through its [State of AI Citations 2026](/research/state-of-ai-citations-2026/) research.`],link:{href:`/practice/case-study.cfm`,label:`View HR Tech Case Studies`}}},{heading:`5WPR HR tech experience`,lead:`5WPR's HR technology work is built on named clients, documented outcomes, and named executives rather than generic claims.`,tone:`muted`,cards:[{title:`Adzuna`,body:`Job search engine — global job search pairing across 16 countries.`,links:[{href:`/practice/Adzuna.cfm`,label:`Adzuna`}]},{title:`Epignosis`,body:`Learning technology — trusted learning partner for 70,000+ users.`,links:[{href:`/practice/Epignosis.cfm`,label:`Epignosis`}]},{title:`Rising Team`,body:`Leadership development — brand authority in a competitive market.`},{title:`HiBob`,body:`“We consistently rank in the top three for Share of Voice against key competitors.” — Natalie Homer, Director of Global PR, HiBob.`,links:[{href:`/practice/hibob.cfm`,label:`HiBob`}]}]},{heading:`HR technology sectors 5WPR serves`,lead:`5WPR executes Public Relations (PR) programs across multiple specialized human resources categories.`,tone:`white`,body:[`The agency has extensive experience supporting platforms that manage the employee lifecycle.`],bullets:[`Recruiting and Staffing: Platforms that manage job openings, applicant tracking, and candidate sourcing.`,`Compensation and Benefits: Systems handling payroll, daily pay access, and employee perks.`,`Training and Development: Learning management systems and leadership development platforms.`,`Performance Management: Software for manager enablement, reviews, and organizational structure.`,`Human Resources Compliance: Tools managing workplace safety, health issues, and regulatory adherence.`]}
197,{heading:`Enterprise software plus demand generation`,tone:`muted`,body:[`While 5WPR supports enterprise software platforms across these categories, the agency also runs a dedicated [B2B digital marketing agency](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm) practice for clients who need paid and organic demand generation alongside earned media.`]}],closing:{kicker:`Talk to the HR Tech Team`,headline:`Build market authority for HR technology and future of work platforms.`,body:[`5WPR builds market authority for HR technology and future of work platforms, backed by named clients and measurable outcomes. Across consumer, B2B, financial services, healthcare, and technology, 5W's AI Search (GEO) programs build the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},yh=[{q:`What does an HR tech PR agency do?`,a:`An HR tech PR agency secures earned media, manages funding and product announcements, positions executives as industry authorities, and builds the digital footprint that helps a workplace software company get found and cited across search and AI platforms.`},{q:`How do HR technology companies get media coverage?`,a:`HR technology companies earn media coverage through funding announcements, product launches, original data and research, and executive commentary on labor market trends. Reporters covering the future of work look for sources who can speak credibly to hiring, compensation, and workplace culture shifts.`},{q:`How can HR tech companies appear in AI search results?`,a:`HR tech companies improve their odds of being cited in AI search results by securing consistent, authoritative third-party coverage and maintaining clear, structured information about their product and leadership across the sites AI systems draw from.`},{q:`How does PR support an HR tech funding announcement?`,a:`PR support for a funding announcement includes coordinating the news with target reporters, briefing executives for interviews, and pairing the announcement with a broader narrative about market position so the coverage does more than repeat the press release.`},{q:`What should an HR software company look for in a PR agency?`,a:`An HR software company should look for a PR agency with a documented roster of HR technology clients, direct relationships with the reporters who cover future-of-work topics, and the ability to pair earned media with a measurable digital and AI visibility strategy.`},{q:`Which HR technology companies has 5WPR represented?`,a:`5WPR has represented HR technology companies including HiBob, WorkForce Software, Adzuna, Chronus, Bayard Advertising, WizeHire, DailyPay, and Epignosis.`},{q:`What makes HR tech PR different from general software PR?`,a:`HR technology directly impacts organizational culture and employee livelihoods. PR programs in this space must address both the technical software buyers and the human impact of the tools.`},{q:`How does data improve media relations?`,a:`Reporters require statistics to validate trend stories. Extracting anonymized platform data about hiring rates or compensation trends gives journalists a factual basis for their reporting.`}],bh={slug:`investment-pr-communications.cfm`,practiceKey:`corporate`,breadcrumb:`Investment PR`,h1:`Investment PR and Communications Agency`,heroLead:`5W Public Relations (5WPR) is an investment PR agency that helps financial services firms, venture capital funds, and private equity groups build credibility and attract capital. We combine earned media strategy, executive visibility programs, and Generative Engine Optimization (GEO) to control how investment brands are understood by investors and AI platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected financial services clients`,caseHeading:`Financial services case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Wealth AI Audit`,body:[`A joint 5W and Haute Wealth audit of UHNW wealth answers in AI engines.`],href:`/research/wealth-ai-audit-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/wealth-ai-audit-2026-cover.webp`,coverAlt:`Wealth AI Audit — 5WPR research report cover`},researchHeading:`Research behind our investment communications practice`,faqSlug:`investment-pr-communications.cfm`,faqHeading:`Frequently asked questions about investment PR`,sections:[{heading:`How do investment firms build authority in generative search?`,lead:`Financial communications require visibility across fragmented media, search results, and generative AI platforms.`,tone:`white`,body:[`Investment firms must state their investment philosophy and market perspective clearly. 5WPR helps organizations across wealth management, venture capital, private equity, exchange-traded funds (ETFs), and investment banking define their narrative. Our team verifies accuracy and consistency wherever stakeholders discover the brand.`,`5WPR builds investor trust programs that pair earned media with AI-search visibility for VC, PE, and wealth-management clients.`,`We deliver communications programs designed to reinforce trust and enterprise value. Whether a firm is supporting growth, navigating market volatility, or building leadership visibility, we establish the machine-readable footprint that gets brands cited.`]},{heading:`What PR services does the investment division provide?`,lead:`5WPR delivers integrated communications programs tailored to the specific regulatory and reputational needs of financial firms.`,tone:`dark`,layout:`centered`,cards:[{title:`Media Relations and Narrative Development`,body:`We secure media coverage that positions investment firms as credible voices. Our media strategies cover firm announcements, fund activity, market commentary, and deal-related storytelling to supp
197ort awareness and business growth.`},{title:`Executive Visibility and Thought Leadership`,body:`We build visibility for partners and portfolio leaders through proactive thought leadership and media engagement. This makes leadership perspectives discoverable and aligns with how investors and AI platforms surface expertise.`},{title:`Brand Positioning and Reputation Management`,body:`Clear positioning separates firms in a competitive investment market. We help firms articulate their value proposition and differentiation while managing perception across media and digital environments.`},{title:`Crisis Communications and Issues Management`,body:`Market shifts and regulatory scrutiny require rapid preparation. Our team supports investment firms with crisis communications, issues management, and rapid-response messaging to protect enterprise value.`},{title:`Digital Communications and AI Search Visibility`,body:`We optimize how investment firms are represented across search engines and generative AI platforms. Using Generative Engine Optimization (GEO), we help verify the firm is accurately contextualized.`,extra:`Brands can evaluate their current baseline through an [AI visibility audit](/practice/ai-visibility-audit/index.cfm).`}],callout:{kicker:`Why it works`,body:[`5WPR's [Wealth AI Audit 2026](/research/wealth-ai-audit-2026/) found a relationship between consistent entity naming across authoritative media and higher citation visibility in generative search. This reinforces the value of coordinating earned media, owned content, and brand positioning rather than treating GEO as a standalone technical exercise.`],link:{href:`/practice/case-study.cfm`,label:`View Financial Case Studies`}}},{heading:`5WPR investment and financial services experience`,lead:`5WPR's investment communications work is built on named clients and documented results, not generic claims.`,tone:`muted`,cards:[{title:`Avant — 150+ placements, 900M+ impressions`,body:`[Avant](/practice/avant-casestudy.cfm), an online personal loan marketplace, engaged 5WPR to differentiate the brand from competitors including LendingClub, Prosper, and SoFi. The campaign secured more than 150 media placements and over 900 million impressions across nine tier-1 outlets, including CNBC, Forbes, Bloomberg, The New York Times, and The Wall Street Journal.`},{title:`AgAmerica — 570+ placements, 9B+ impressions`,body:`[AgAmerica](/practice/AgAmerica.cfm), a non-bank agricultural lender, engaged 5WPR to position its executives as go-to experts on the agriculture and lending sectors. The campaign generated more than 570 media placements and over 9 billion unique impressions, with executives becoming regular sources for Bloomberg and Reuters.`}]},{heading:`Which financial organizations does 5WPR support?`,lead:`The Investment Division partners with organizations across the private and public markets.`,tone:`white`,bullets:[`Venture capital firms`,`Private equity and private credit firms`,`Wealth management firms and Registered Investment Advisors (RIAs)`,`ETF providers and asset managers`,`Investment banks and mergers and acquisitions (M&A) advisors`,`Private markets and alternative investment firms`,`Financial technology (fintech) and financial services platforms`],body:[`We understand the competitive dynamics unique to these organizations. The team tailors communications strategies to address specific regulatory requirements and investor audiences.`]},{heading:`Why integrate earned media with GEO for investment PR?`,lead:`Communications for investment firms must align directly with business strategy and capital goals.`,tone:`dark`,body:[`5WPR combines category expertise with data-driven insights to deliver measurable programs. Every engagement helps firms show up with consistency across the channels that influence investor decision-making.`,`Media placements in top-tier financial publications serve dual purposes. They reach institutional investors directly while providing the high-authority citations that generative engines look for when assessing a firm's market position. When an executive provides authoritative commentary on market trends, that perspective becomes part of the public information ecosystem that search engines and AI retrieval systems can surface.`,`The Investment Division sits within the 5WPR Corporate practice. The team brings deep familiarity with the investment market and a proven ability to communicate complex financial narratives with precision, from agricultural lenders to consumer fintech platforms.`]}],closing:{kicker:`Talk to the Investment PR Team`,headline:`Attract capital, build leadership visibility, and manage reputation across media and search.`,body:[`5WPR helps investment firms attract capital, build leadership visibility, and manage reputation across media and search, backed by documented client results. 5W's AI Search (GEO) programs build the machine-readable footprint that gets brands cited, not just ranked, across consumer, B2B, financial services, healthcare, and technology. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},xh=[{q:`How does PR help venture capital firms?`,a:`Public relations helps venture capital firms attract limited partners and high-quality founders. Consistent media coverage establishes the firm's investment thesis and track record in a crowded market.`},{q:`Why do private equity firms need reputation management?`,a:`Private equity firms face intense scrutiny during acquisitions or restructuring. Proactive reputation management focuses the firm's narrative on growth, operational improvements, and value creation rather than speculation.`},{q:`How does traditional financial PR differ from GEO?`,a:`Traditional financial PR focuses on securing earned media placements in business publications to reach human readers. Generative Engine Optimization (GEO) structures that earned media, owned content, and entity data so AI platforms can retrieve and cite the firm accurately when users ask complex financial questions.`}],Sh={slug:`dermatology-aesthetics-marketing-pr-agency.cfm`,practiceKey:`beauty`,breadcrumb:`Dermatology & Aesthetics PR`,h1:`Dermatology and Medical Aesthetics PR Agency`,heroLead:`What is dermatology PR? Dermatology PR is communications strategy for skincare companies, beauty device manufacturers, medical spas, and aesthetic practices. It combines regulatory compliance (FDA, FTC), clinical credibility (physician endorsements, published evidence), patient trust (safety communication), and market differentiation to build sustainable brand authority.`,heroCtas:[{href:`/contactus/`,label:`Request a Dermatology PR Consultation`},{href:`tel:+12129995585`,label:`(212) 999-5585`}],trustLabel:`Selected beauty and wellness clients`,caseHeading:`Dermatology and aesthetics case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The Beauty AI Endorsement Index 2026`,body:[`Volume IV of the 5W × Talent Resources research series. Six brands own the AI beauty answer. 22% of recommendations are fabricated. And the one-year endorsement contract is aging out of the game.`],href:`/ai-visibility-index/the-beauty-ai-endorsement-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/wp-content/uploads/2026/07/the-beauty-ai-endorsement-index-2026-og.webp`,coverAlt:`The Beauty AI Endorsement Index 2026 — 5WPR research report cover`},researchHeading:`Research behind our beauty and aesthetics practice`,faqSlug:`dermatology-aesthetics-marketing-pr-agency.cfm`,faqHeading:`FAQ: Dermatology & Medical Aesthetics PR`,sections:[{heading:`Why Dermatology & Aesthetics Brands Need Specialist PR`,lead:`Dermatology and aesthetics marketing operates at the intersection of healthcare regulation, consumer protection, and competitive differentiation.`,tone:`white`,body:[`5WPR is a dermatology and medical aesthetics PR agency helping skincare companies, beauty device manufacturers, medical spas, dermatology practices, and aesthetic brands navigate regulatory compliance while building patient trust, media authority, and market visibility.`,`FTC and FDA rules govern marketing claims. Independent clinical evidence is expected. Influencer partnerships require disclosure. Medical and cosmetic claims are regulated differently.`]}
197,{heading:`5WPR Experience in Dermatology Communications`,tone:`dark`,body:[`5WPR has worked with skincare brands, medical device companies, aesthetic clinics, and dermatology practices on product launches, physician positioning, clinical evidence publication, regulatory compliance review, influencer partnerships, media relations with beauty and health publications, and reputation management.`]},{heading:`Regulatory Compliance in Dermatology Marketing`,lead:`FDA and FTC regulations govern how dermatology and aesthetics companies can market their products and services.`,tone:`muted`,body:[`For guidance on FDA device classifications, FTC substantiation requirements, and healthcare claims regulations, refer to [FDA.gov](https://www.fda.gov/) and [FTC.gov](https://www.ftc.gov/).`,`Medical device claims (laser, microneedling, radiofrequency devices) may require FDA clearance. Topical product claims (reduces wrinkles, brightens skin, improves texture) require clinical substantiation. Health claims about treating medical conditions require appropriate evidence. Influencer partnerships require FTC disclosure. 5WPR helps clients navigate these requirements.`]},{heading:`Building Dermatologist Relationships & Physician Endorsements`,lead:`Dermatologists and aestheticians are trusted sources for skincare advice.`,tone:`white`,body:[`A product recommended by a dermatologist carries higher credibility than marketing claims alone. 5WPR builds relationships with dermatologists and aestheticians to generate authentic endorsements, media placements, and case studies.`]},{heading:`Media Placement in Beauty, Health & Wellness Publications`,lead:`Beauty and wellness media reach consumers interested in skincare and aesthetics; dermatology media reach practitioners.`,tone:`dark`,body:[`Beauty and wellness media (Allure, InStyle, Cosmopolitan, Health, Vogue) reach consumers interested in skincare and aesthetics. Dermatology media (Dermatology Today, American Academy of Dermatology publications) reach practitioners. 5WPR secures coverage in both for maximum reach and credibility.`]},{heading:`When to Call 5WPR for Dermatology & Aesthetics PR`,tone:`muted`,chips:[`Product Launch`,`Physician Program`,`Clinical Evidence`,`Compliance Review`,`Influencer Program`,`Competitive Differentiation`,`Reputation Management`,`Media Placement`]}],closing:{kicker:`Request a Dermatology PR Consultation`,headline:`Ready to build your dermatology or aesthetics brand's authority and media visibility?`,body:[`Request a Dermatology PR Consultation: (212) 999-5585.`],ctas:[{href:`/contactus/`,label:`Talk to us`}]}},Ch=[{q:`What is dermatology PR?`,a:`Dermatology PR is communications strategy for skincare companies, aesthetic clinics, and medical device manufacturers. It combines regulatory compliance, clinical credibility, patient trust, and market differentiation.`},{q:`What marketing claims require clinical evidence?`,a:`For detailed guidance on substantiation requirements for dermatology and skincare products, refer to FTC and FDA guidance. Generally, efficacy claims (reduces wrinkles, brightens skin) require substantiation appropriate to the claim scope.`},{q:`How do we work with influencers in dermatology marketing?`,a:`Influencer partnerships require FTC disclosure of compensation. Dermatologist influencers add credibility. 5WPR manages influencer relationships with legal compliance.`},{q:`How do we measure dermatology PR success?`,a:`Track: media impressions, dermatologist mentions, influencer reach, website traffic from media coverage, consumer sentiment/trust scores, and sales attributed to PR coverage.`}],wh={slug:`parenting-apps-gear-and-retail-PR.cfm`,practiceKey:`parentchildandbaby`,breadcrumb:`Parenting PR`,h1:`Parenting PR Agency for Apps, Gear and Retail`,heroLead:`5W Public Relations is a parenting PR agency that helps family technology, gear, and retail brands build visibility and trust. We connect companies with caregivers through earned media, digital marketing, and Generative Engine Optimization. Our programs ensure products are cited and recommended when parents research options across search engines and AI platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected parenting and family clients`,caseHeading:`Parenting PR case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The Strollers & Car Seats AI Visibility Index 2026`,body:[`UPPAbaby captures 19.8% of stroller and car seat AI citations while Evenflo holds just 3.6%, a gap that lines up with a 2020 booster-seat investigation AI engines still surface today.`],href:`/ai-visibility-index/stroller-car-seat-ai-visibility/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/wp-content/uploads/2026/08/stroller-car-seat-ai-visibility-og-mt37011r.png`,coverAlt:`The Strollers & Car Seats AI Visibility Index 2026 — 5WPR research report cover`},researchHeading:`Research behind our parenting practice`,faqSlug:`parenting-apps-gear-and-retail-pr.cfm`,faqHeading:`Frequently Asked Questions About Parenting PR`,sections:[{heading:`How Does One Discover Parenting Apps and Gear?`,lead:`Modern parents discover products across a fragmented ecosystem of search engines, social channels, creator recommendations, and AI assistants.`,tone:`white`,body:[`Caregivers ask specific questions about child safety, developmental milestones, and product reliability. They turn to platforms like ChatGPT, Perplexity, and Google AI Overviews to compare options. These systems synthesize reviews, expert articles, and brand content to generate answers.`,`A brand must maintain a strong presence across all these inputs to be visible. 5WPR builds this presence by securing earned media in trusted publications and optimizing digital assets. This approach ensures the brand is understood as an authority in the family market.`]},{heading:`Integrated Parenting PR and Digital Communications`,lead:`5WPR develops communications programs that span traditional media relations, influencer partnerships, and AI visibility.`,tone:`dark`,body:[`We work with category leaders across the family ecosystem. Our experience includes retail giant buybuy BABY, digital safety platform Bark, and premium children's furniture maker [Delta Children](/practice/deltachildren.cfm). We tailor each program to the specific product lifecycle and target audience.`],cards:[{title:`Earned Media and Media Relations`,body:`Independent journalism builds trust with cautious parents. We secure coverage in top-tier business, technology, and parenting publications. This coverage introduces products to new audiences and provides the authoritative citations that search engines require.`},{title:`Influencer and Creator Marketing`,body:`Parents trust recommendations from other parents. We identify and partner with credible family creators to demonstrate products in real-world settings. These partnerships generate authentic content that brands can use across their own digital channels.`},{title:`Generative Engine Optimization`,body:`Generative Engine Optimization improves how AI platforms understand and retrieve brand information. We structure product data and secure high-authority mentions to influence AI-generated recommendations. Brands can request an [AI visibility audit](/practice/ai-visibility-audit/index.cfm) to evaluate their current standing in these systems.`}]},{heading:`Why AI Visibility Matters for Parenting Brands`,lead:`Generative AI platforms now answer specific questions about child safety, product comparisons, and developmental milestones.`,tone:`white`,body:[`When a parent asks an AI assistant for the safest baby monitor, the engine does not guess. It retrieves information from trusted domains and synthesizes a recommendation. Brands that lack authoritative third-party mentions will not appear in these responses.`],callout:{kicker:`Why it works`,body:[`AI systems draw on a combination of learned information and retrieved web sources when generating answers. Clear brand information, authoritative third-party coverage, and consistent entity signals can increase the likelihood that a parenting brand is accurately represented and cited.`],link:{href:`/practice/case-study.cfm`,label:`View Case Studies`}}},{heading:`Parenting PR Client Experience and Case Studies`,lead:`5WPR executes communications campaigns for category leaders in baby monitors, financial literacy apps, and children's furniture.`,tone:`muted`,body:[`We partner with companies at every stage of growth. Review our [public relations case studies](/practice/case-study.cfm) to see how we build market share for family brands.`],cards:[{title:`Delta Children`,body:`[Delta Children](/practice/deltachildren.cfm) is a recognized name in baby and children's furniture. 5WPR manages influencer relations, celebrity seeding, and media placements for the brand.`,extra:`“We can always count on them to get the job done.” — Lorraine Gold, Vice President Marketing, Delta Children.`},{title:`Greenlight`,body:`Greenlight offers a debit card for kids to teach money management. 5WPR secures top-tier media across business, technology, and consumer categories for the company. CEO Tim Sheehan notes that the agency understands what it takes to move the needle for the business.`},{title:`Family Technology and Gear`,body:`Our team supports smart hardware and digital platforms. We represent [Owlet](/practice/owlet.cfm), a leading smart baby monitor that tracks infant sleep. We also manage communications programs for family technology like the [Yoto Player](/practice/yoto-player.cfm), alongside premium gear companies like Stokke.`}]}],closing:{kicker:`Talk to the Parenting PR Team`,headline:`The family technology and gear market requires brands to build trust across multiple discovery channels simultaneously.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology. We build the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},Th=[{q:`What is Generative Engine Optimization for parenting brands?`,a:`Generative Engine Optimization is the process of making brand information machine-readable and authoritative. It ensures AI platforms cite and recommend a product when parents ask category questions. This requires a mix of technical site structure and strong earned media.`},{q:`How do earned media and AI search connect?`,a:`AI engines rely on trusted third-party publishers to verify facts. When a reputable parenting magazine reviews a product, AI systems use that review to inform their own answers. Earned media provides the validation that algorithms require.`},{q:`What types of parenting companies does 5WPR represent?`,a:`We represent a wide range of family-focused organizations. Our clients include apparel retailers, smart monitor manufacturers, digital safety applications, and financial literacy platforms.`},{q:`How does 5WPR launch a new parenting product or app?`,a:`Launch programs pair media strategy with retail-driving digital campaigns and creator seeding, timed around a product's availability so coverage, retail placement, and search visibility land together rather than 
197in isolation.`},{q:`How is parenting PR different from general consumer PR?`,a:`Parenting PR requires extra care around safety claims, developmental guidance, and regulatory accuracy, since caregivers scrutinize product claims more closely than in most consumer categories and journalists expect that scrutiny to be reflected in the pitch.`},{q:`What should a family brand look for in a PR agency?`,a:`A documented roster of family and parenting clients, relationships with the journalists and creators who cover child safety and family technology, and the ability to pair earned media with a measurable AI and digital visibility strategy.`}],Eh={slug:`pet-products-marketing.cfm`,practiceKey:`consumer`,breadcrumb:`Pet PR`,h1:`Pet PR and AI Visibility Agency`,heroLead:`5W Public Relations is a pet PR and AI visibility agency that builds brand authority across earned media, retail channels, and generative search platforms. We help pet companies earn the third-party citations required to appear in responses from ChatGPT, Perplexity, and Google AI Overviews.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected pet clients`,caseHeading:`Pet PR case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Pet Industry`,body:[`Premium and retail pet brands lead AI-mediated consumer research.`],href:`/research/pet-industry-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/pet-industry-ai-visibility-index-2026-cover.webp`,coverAlt:`Pet Industry — 5WPR research report cover`},researchHeading:`Research behind our pet practice`,faqSlug:`pet-products-marketing.cfm`,faqHeading:`Frequently asked questions`,sections:[{heading:`How AI changes pet product discovery`,lead:`The U.S. pet industry reached [$158 billion in 2025 and is projected to hit $165 billion in 2026](https://americanpetproducts.org/news/u.s.-pet-industry-reaches-158-billion-in-2025-poised-for-continued-growth-in-2026), according to the American Pet Products Association (APPA).`,tone:`white`,body:[`APPA's 2025 survey found that 95 million U.S. households own a pet. Dog ownership reached 71 million households, and cat ownership climbed 5 percent year over year to 53 million households.`,`Younger buyers are shifting where they start product research. A [September 2025 survey from Commerce and Future Commerce](https://www.commerce.com/en/press/pr-new-modes-press-release/) found that 33 percent of Gen Z and 26 percent of Millennials now prefer AI platforms over other channels for product research.`,`Pet parents ask ChatGPT, Perplexity, and Google AI Overviews what food to buy, which supplements are safe, and which retailers carry specific items. They ask which companies solve the exact problem their pet has right now.`,`5W builds Public Relations (PR) and Generative Engine Optimization (GEO) programs for this reality. We launch Direct-to-Consumer (DTC) startups, rebuild legacy brands, and place clients on the shelves of Petco, Chewy, PetSmart, and Amazon.`]},{heading:`The 5W pet media citation audit`,lead:`Three companies own the primary pet publishing ecosystem.`,tone:`dark`,body:[`Chewy, Mars Petcare, and People Inc. control PetMD, The Spruce Pets, Daily Paws, Kinship, The Wildest, VCA, and Be Chewy. These properties form the editorial backbone behind almost every answer ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews generate about pets.`,`If a brand lacks citations in these properties, the brand does not surface inside the chatbox.`,`5W continuously audits the sources artificial intelligence engines cite when answering pet category questions. The current hierarchy categorizes publishers by their citation strength.`],bullets:[`Tier 1 (Must Win): PetMD, The Spruce Pets, AKC.org, Rover, ASPCA, Daily Paws, Chewy, and Be Chewy.`,`Tier 2 (Strong Signal): Kinship, The Wildest, VCA Animal Hospitals, university veterinary schools, WebMD Pets, Catster, and Dogster.`,`Tier 3 (Trade and Niche): Pet Age, Pet Business, Pet Product News, PetfoodIndustry.com, Whole Dog Journal, and Hepper.`,`Tier 4 (Low Citation Signal): Modern Dog, Modern Cat, The Bark, Dogs Today, K9 Magazine, Working Dog Magazine, and Fido Friendly.`],callout:{kicker:`Why it works`,body:[`AI systems draw on a combination of learned information and retrieved web sources when generating answers. Securing independent mentions from Tier 1 domains increases the likelihood a brand is surfaced for category queries. 5WPR's [Pet Industry AI Visibility Index 2026](/research/pet-industry-ai-visibility-index-2026/) tracks citation density across these specific publishers.`],link:{href:`/research/pet-industry-ai-visibility-index-2026/`,label:`Read the 2026 Pet Industry AI Visibility Index`}}},{heading:`Integrated pet PR and marketing services`,lead:`Retail shelf space is fiercely contested at Global Pet Expo and SuperZoo. Veterinary and trainer end
197orsements still move specialty products. AI-mediated discovery rewrites the buyer path before brands ever reach the physical shelf.`,tone:`white`,body:[`5W builds programs around where revenue originates, whether that is DTC, mass retail, specialty, subscription, or business-to-business channels.`],bullets:[`AI Visibility and GEO: Citation audits, answer-engine strategy, structured content, and source-building across ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.`,`Earned Media: Consumer, trade, lifestyle, business, and broadcast programs that build authority with pet parents, retail buyers, and AI-cited sources.`,`Product Launches: New product rollouts coordinated with retail distribution, Amazon listings, DTC traffic, and media demand.`,`Influencer and Creator Marketing: Campaigns featuring pet parents, trainers, veterinarians, and breed-specific creators across TikTok, Instagram, and YouTube.`,`Retailer and Buyer Visibility: Press and content designed to reach category buyers at Chewy, Petco, PetSmart, Target, and Tractor Supply.`,`Crisis Communications: Management of product recalls, veterinary incidents, social media response, and litigation communications.`,`Social and Content: Community management, paid social, and creative assets built for platforms where pet content performs.`,`Event and Trade Show Support: Communications for Global Pet Expo, SuperZoo, Westminster Kennel Club Dog Show, and branded consumer activations.`]},{heading:`Pet brands 5W has built`,lead:`5W has represented pet companies across food, treats, supplements, toys, apparel, services, franchises, and technology.`,tone:`muted`,body:[`We have built communications programs for The Honest Kitchen, PetAg, Westminster Kennel Club Dog Show, Camp Bow Wow, Zoom Room, Snoop Doggie Doggs, Lucy & Co, Petsmile, and Yourgi.`,`We helped build the [Petsmile pet toothpaste campaign](/practice/petsmile.cfm) following the brand's Veterinary Oral Health Council seal award.`],cards:[{title:`Camp Bow Wow`,body:`“5WPR has been such an asset to the growth of our brand over the years. They are responsive, sharp and always on the mark when dealing with our franchisees and the media around Camp Bow Wow. Franchise sales, unit revenue, brand recognition and franchise relations have all been influenced by our team there.” — Heidi Ganahl, Founder, [Camp Bow Wow](/practice/casestudy-animalprfirm.cfm).`},{title:`Zoom Room`,body:`“I can speak for all of us at Zoom Room that we are beyond impressed with the vision and capabilities of the entire 5WPR team. Our partnership represents an important step in bringing Zoom Room to even more communities across the U.S.” — Mark Van Wye, CEO, Zoom Room.`}]}],closing:{kicker:`Talk to the Pet PR Team`,headline:`5W develops pet PR and AI visibility programs that connect brands with consumers, retailers, and generative search platforms.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology. We build the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`GEO optimization`}]}},Dh=[{q:`What is the 5W Pet Media Citation Audit?`,a:`It is an ongoing review of the domains and publishers AI engines cite when answering pet industry questions. The audit identifies which sources matter most for pet brand visibility across ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.`},{q:`How do pet brands show up in ChatGPT and AI search results?`,a:`Generative models cite brands that have authoritative third-party coverage, structured product information, and a clear topical footprint across the web. 5W audits where pet brands currently appear, then builds the earned media, content, and schema work that prompts models to cite the brand on category queries.`},{q:`Which media outlets matter most for pet brand AI visibility?`,a:`PetMD, The Spruce Pets, AKC.org, Rover, ASPCA, Daily Paws, Chewy, Kinship, The Wildest, VCA, university veterinary sources, WebMD Pets, Catster, Dogster, and key pet trade outlets carry the strongest citation signals in current pet AI answers.`},{q:`What does a pet PR and marketing agency do?`,a:`A pet PR and marketing agency builds visibility for pet food, supplies, veterinary, and pet services brands. The agency executes this through earned media, retail-driving digital campaigns, influencer programs, and AI search platforms like ChatGPT and Google AI Overviews.`},{q:`What kinds of pet brands does 5W work with?`,a:`5W works with pet brands across the full lifecycle. This includes emerging DTC startups, venture-backed challenger brands, established consumer pet products, franchise systems, services, and legacy category leaders.`},{q:`How much does pet PR and marketing cost?`,a:`Pet PR and marketing retainers at 5W typically start at $15,000 per month for focused programs. Larger integrated programs combining public relations, digital, influencer, paid media, and GEO commonly run $25,000 to $50,000 or more per month.`},{q:`How long does it take for pet PR to deliver results?`,a:`First earned media placements typically land within 30 to 60 days of program launch, depending on news hooks and product readiness. Sustained category authority takes six to twelve months of consistent storytelling, executive visibility, and third-party validation.`},{q:`How is pet PR different from pet influencer marketing?`,a:`Pet PR earns third-party credibility through journalists, trade publications, and industry anal
197ysts. Pet influencer marketing uses creators to drive reach and conversion. 5W runs both together so earned authority and creator reach reinforce each other.`},{q:`Can 5W help launch a new pet brand or product?`,a:`Yes. 5W has launched pet brands across food, supplements, treats, accessories, services, and technology. Launch programs pair media strategy with retail-driving digital, influencer seeding, and AI visibility setup.`},{q:`How do you measure pet PR and AI visibility success?`,a:`5W reports on earned media volume and quality, share of voice, message penetration, referral traffic, and conversion impact. The agency also measures AI visibility across ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.`}],Oh={slug:`saas-digital-marketing-agency.cfm`,practiceKey:`technology`,breadcrumb:`SaaS Digital Marketing`,h1:`SaaS Digital Marketing Agency`,heroLead:`A SaaS digital marketing agency builds integrated demand generation, search visibility, and paid media programs specifically for B2B software companies. 5W Public Relations (5WPR) develops marketing infrastructure that targets enterprise buying committees, reduces customer acquisition costs, and drives measurable pipeline velocity for subscription software platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected technology clients`,caseHeading:`Technology case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`B2B SaaS`,body:[`Jira bills the enterprise. Linear owns the recommendation.`],href:`/ai-visibility-index/b2b-saas/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/b2b-saas-cover.webp`,coverAlt:`B2B SaaS — 5WPR research report cover`},researchHeading:`Research behind our SaaS practice`,faqSlug:`saas-digital-marketing-agency.cfm`,faqHeading:`Frequently Asked Questions About SaaS Marketing`,sections:[{heading:`What Makes SaaS Digital Marketing Different?`,lead:`Subscription software marketing requires strategies built for long sales cycles and multiple enterprise buying personas.`,tone:`white`,body:[`Generic digital agencies apply standard campaign frameworks that track surface-level website traffic. SaaS marketing programs optimize for the metrics that dictate actual business performance. These metrics include pipeline velocity, customer acquisition cost, monthly recurring revenue growth, and expansion revenue.`,`The 5WPR SaaS digital marketing practice builds programs around the specific dynamics of B2B software purchasing. The agency combines digital capabilities with [SaaS PR](/practice/saas-pr.cfm) to make software companies discoverable across every channel where buyers and investors conduct research.`]},{heading:`What Are the Core SaaS Digital Marketing Services?`,lead:`5WPR integrates organic search, paid media, and account-based marketing into a single demand generation program.`,tone:`dark`,cards:[{title:`Demand Generation and Lead Generation`,body:`5WPR builds demand generation programs that drive qualified pipeline rather than just website traffic. The approach combines paid media, organic content, and account-based marketing calibrated to the specific buyer journey of the target market. The team tracks performance against pipeline metrics and optimizes campaigns against the measures that affect revenue.`},{title:`B2B SaaS SEO`,body:`Search engine visibility drives acquisition during the research phase of the software buying journey. 5WPR develops search strategies built around comparison queries and problem-solution searches that signal active evaluation. The program includes technical SEO, content architecture, and link acquisition.`},{title:`Generative Engine Optimization (GEO)`,body:`Enterprise buyers use AI platforms like ChatGPT, Perplexity, Google AI Overviews, and Gemini to research software categories. 5WPR builds the structured content programs that AI engines treat as credible sources. This infrastructure helps software companies earn accurate representation across generative search channels.`}
197,{title:`Paid Media and LinkedIn Advertising`,body:`5WPR manages paid media programs across Google, LinkedIn, and programmatic channels. The team optimizes these campaigns for pipeline contribution and customer acquisition cost instead of raw impressions. LinkedIn allows targeting by company size, industry, job function, and seniority, making it a primary demand generation channel for enterprise software.`},{title:`Account-Based Marketing (ABM)`,body:`Enterprise software companies with defined target account lists use ABM programs to concentrate marketing investment on specific high-value targets. 5WPR develops the content and advertising that build preference within priority accounts before the sales team makes direct contact.`},{title:`Content Marketing and Thought Leadership`,body:`Content marketing for software companies requires top-of-funnel material for category awareness, mid-funnel content for product comparisons, and bottom-of-funnel answers for active evaluation. 5WPR maps content to the buyer journey. This systematic publication generates the domain authority that compounds into organic search visibility.`},{title:`Email Marketing and Automation`,body:`Complex sales cycles require marketing automation programs that educate prospects over extended evaluation periods. 5WPR develops onboarding sequences that drive activation and nurture programs that build toward conversion. Re-engagement communications help identify at-risk accounts before they churn.`},{title:`Analytics and Pipeline Reporting`,body:`5WPR measures digital marketing performance against defined revenue metrics. The agency builds reporting infrastructure that connects digital marketing data to customer relationship management systems. This connection enables pipeline attribution across channels to justify marketing investment.`}],callout:{kicker:`Why it works`,body:[`Generative AI engines draw on a combination of learned information and retrieval indexes when forming an answer. Publishing structured, consistent content across high-authority domains increases the likelihood that an AI platform surfaces the software company. That matters most at the exact moment a buyer asks for category recommendations.`],link:{href:`/practice/case-study.cfm`,label:`View Technology Case Studies`}}},{heading:`How Does Digital Marketing Change by SaaS Growth Stage?`,lead:`Marketing strategies must scale as a software company moves from initial funding to public markets.`,tone:`white`,cards:[{title:`Early-Stage and Seed-Stage SaaS`,body:`Early-stage companies must generate pipeline and build category credibility simultaneously with lean teams. 5WPR prioritizes channels that generate qualified pipeline quickly. These include targeted paid search and ABM against defined early adopter accounts.`},{title:`Series A and Series B Growth`,body:`Growth-stage companies need to scale marketing programs while maintaining the efficiency metrics required for board-level reporting. 5WPR develops scaled demand generation programs that grow pipeline velocity without a proportional growth in customer acquisition costs.`},{title:`Enterprise and Publicly Traded Platforms`,body:`Enterprise software businesses require marketing programs that maintain brand consistency across complex multi-channel campaigns. 5WPR works with enterprise companies on integrated programs that serve customers, prospects, investors, analysts, and partners.`}]},{heading:`What Is the 5WPR Advantage for Software Companies?`,lead:`5WPR combines public relations and digital marketing into a single accountable program.`,tone:`muted`,body:[`Earned media and digital marketing reinforce each other. A bylined article in a software industry publication generates organic search authority and category credibility that a paid campaign cannot manufacture. A strong SEO foundation makes every public relations placement more durable.`,`5WPR is named PR Agency of the Year by the American Business Awards and ranks among the top agencies in the United States by PRovoke Media. O'Dwyer's has ranked the 5WPR technology practice in the top 15 technology PR practices in the US since 2017.`,`The agency's software client experience includes Zeta Global, Five9, RealPage, CommerceHub, Epicor, and Diligent.`]}],closing:{kicker:`Talk to the SaaS Digital Marketing Team`,headline:`5WPR builds the digital marketing infrastru
197cture that drives measurable pipeline and category authority for B2B software companies.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},kh=[{q:`What is SaaS digital marketing?`,a:`SaaS digital marketing is the practice of marketing subscription software products through digital channels. This includes SEO, paid search, content marketing, account-based marketing, and generative engine optimization. It differs from general B2B marketing due to the focus on subscription revenue and the critical importance of retention.`},{q:`What digital marketing channels work best?`,a:`The highest-performing channels include SEO for category research, LinkedIn advertising for targeted demand generation, and account-based marketing for enterprise accounts. Generative engine optimization provides visibility during early AI-assisted research. The optimal channel mix depends on the specific product and target buyer persona.`},{q:`How does 5WPR measure digital marketing performance?`,a:`5WPR measures performance against pipeline and revenue metrics. These include marketing-qualified leads generated, pipeline contribution by channel, customer acquisition cost, and revenue influenced. The agency connects digital marketing activity directly to CRM data for accurate ROI analysis.`},{q:`How is SaaS digital marketing different from SaaS PR?`,a:`SaaS digital marketing covers paid and owned channels built around pipeline and revenue metrics. SaaS PR focuses on earned media, analyst relationships, and category credibility. 5WPR runs a dedicated SaaS PR practice alongside this one for clients who need both working together.`},{q:`How long does it take to see results from SaaS digital marketing?`,a:`Paid channels typically show measurable pipeline impact within 60 to 90 days. SEO and content investments compound more slowly, with meaningful organic pipeline contribution usually building over two to three quarters of consistent publishing.`}],Ah={slug:`saas-pr.cfm`,practiceKey:`technology`,breadcrumb:`SaaS PR`,h1:`SaaS PR Agency and Software Communications`,heroLead:`5W Public Relations (5WPR) is a SaaS PR agency that helps software and cloud companies build visibility, manage corporate communications, and launch new products. We develop communications programs that position enterprise resource planning providers, contact center platforms, and analytics companies in front of buyers and media.`,heroCtas:[{href:`/contactus/`,label:`Request a SaaS PR Consultation`}],trustLabel:`Selected technology clients`,caseHeading:`Technology case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`B2B SaaS`,body:[`Jira bills the enterprise. Linear owns the recommendation.`],href:`/ai-visibility-index/b2b-saas/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/b2b-saas-cover.webp`,coverAlt:`B2B SaaS — 5WPR research report cover`},researchHeading:`Research behind our SaaS practice`,faqSlug:`saas-pr.cfm`,faqHeading:`Frequently Asked Questions About SaaS PR`,sections:[{heading:`What Does a SaaS Public Relations Agency Do?`,lead:`A software communications firm translates technical product capabilities into clear business value for media, analysts, and enterprise buyers.`,tone:`white`,body:[`B2B software buyers research platforms extensively before contacting sales. They read trade publications, review anal
197yst reports, and ask AI search engines for category recommendations. 5WPR builds the third-party authority that software companies need to appear credibly across these discovery channels.`,`Our technology team secures earned media coverage, prepares executives for interviews, and manages communications for mergers, acquisitions, and initial public offerings. O'Dwyers, a leading public relations industry publication, ranks 5WPR among the top fifteen technology PR practices in the United States.`]},{heading:`SaaS Communications and PR Services`,lead:`5WPR develops tailored media programs for startups, mid-market platforms, and publicly traded software companies.`,tone:`dark`,body:[`Software companies require different communications strategies depending on their growth stage. A startup needs category awareness, while an established enterprise provider needs to announce acquisitions or defend market share.`],bullets:[`Messaging and product positioning`,`Earned media relations`,`Initial public offering (IPO) media strategy`,`Mergers and acquisitions (M&A) communications`,`New market expansion campaigns`,`Content creation and thought leadership`,`Digital media and [SaaS digital marketing](/practice/saas-digital-marketing-agency.cfm) campaigns`,`Event planning and trade show support`,`Speaking opportunities and sponsorships`]},{heading:`Software and Cloud Clients 5WPR Has Represented`,lead:`5WPR works with enterprise software, analytics, and cloud infrastructure companies across multiple industries.`,tone:`white`,body:[`Our technology practice supports platforms shaping how businesses operate. We handle complex product narratives, from big data analytics to secure governance platforms.`],bullets:[`Zeta Global: A big data and customer lifecycle marketing company founded by former Apple CEO John Sculley and David A. Steinberg.`,`RealPage: A software and analytics provider for multi-family and commercial property.`,`CommerceHub: A cloud-based ecommerce fulfillment platform.`,`Influential: A social media influencer platform and measurement tool.`,`Five9: A cloud contact center software provider.`,`Diligent: A secure governance solutions platform built for corporate board members.`,`Epicor: An enterprise resource planning (ERP) provider.`],callout:{kicker:`Client perspective`,body:[`“5W has helped us to grow into one of the largest big data companies in the world.” — David Steinberg, CEO, Zeta Global.`],link:{href:`/practice/case-study.cfm`,label:`View Technology Case Studies`}}},{heading:`Integrating SaaS PR with AI Discovery`,lead:`Earned media coverage directly influences how generative AI platforms understand and recommend software products.`,tone:`muted`,body:[`Generative Engine Optimization (GEO) relies on authoritative third-party signals. When a buyer asks an AI platform for the best contact center software, the engine retrieves information from trusted news sites, review platforms, and analyst reports.`,`5WPR secures the media placements that feed these AI systems. By placing executives in top-tier business press and securing product reviews in technology trade publications, we build the machine-readable footprint that helps SaaS brands earn citations and recommendations in generative search.`]},{heading:`How Does 5WPR Build Category Authority?`,lead:`We connect software executives with the journalists and analysts who cover their specific technology verticals.`,tone:`white`,body:[`Our team maintains direct relationships with technology reporters, business editors, and industry analysts. We bypass generic pitches, instead offering data-backed insights and executive commentary on breaking news. This approach places our clients in the center of global technology discussions across print, digital, and broadcast media.`]}],closing:{kicker:`Talk to the SaaS PR Team`,headline:`5WPR helps software and cloud platforms build the visibility required to reach enterprise buyers and technology analysts.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},jh=[{q:`What does a SaaS PR agency do?`,a:`A SaaS PR agency secures earned media coverage, prepares executives for interviews, manages IPO and M&A communications, and builds the third-party authority that helps a software company appear credibly across trade press, business media, and AI search platforms.`},{q:`How is SaaS PR different from general technology PR?`,a:`SaaS PR focuses specifically on subscription software dynamics: recurring revenue milestones, category-versus-competitor positioning, and the analyst relationships that shape enterprise purchasing decisions in ways general technology PR does not need to address.`},{q:`Which software companies has 5WPR represented?`,a:`5WPR has represented Zeta Global, RealPage, CommerceHub, Influential, Five9, Diligent, and Epicor, spanning big data, property anal
197ytics, ecommerce fulfillment, contact center software, governance platforms, and enterprise resource planning.`},{q:`How does SaaS PR support an IPO or acquisition?`,a:`5WPR builds pre-announcement category authority, coordinates disclosure-safe messaging with legal and banking teams, and manages the trade and business press differently across each phase of an IPO or M&A announcement.`},{q:`What does PR for SaaS involve?`,a:`PR for SaaS involves translating product capability into business value for the media, analysts, and buyers who shape enterprise purchasing: launch and funding announcements, category positioning against named competitors, executive and customer storytelling, analyst briefings, and the review-site and AI-answer presence buyers check before they ever contact sales.`},{q:`How much of SaaS PR is media relations versus content?`,a:`Most programs run both. Whether a team calls it SaaS PR or PR SaaS work, earned coverage creates the third-party proof, while bylines, research, and customer proof points give reporters and AI systems something substantive to cite between announcements.`}],Mh={slug:`consumer-beauty.cfm`,practiceKey:`beauty`,breadcrumb:`Beauty PR`,h1:`Beauty Digital Marketing Agency for Social, Retail and AI Search`,heroLead:`5W Public Relations (5WPR) is a beauty digital marketing agency supporting beauty devices, skincare, haircare, cosmetics, grooming and nail brands from direct-to-consumer launch through mass retail.`,heroCtas:[{href:`/contactus/`,label:`Request a Beauty Marketing Consultation`}],trustLabel:`Selected beauty clients`,caseHeading:`Beauty case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Beauty`,body:[`The ingredient-transparency moat.`],href:`/ai-visibility-index/beauty-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/beauty-ai-visibility-index-2026-cover.webp`,coverAlt:`Beauty — 5WPR research report cover`},researchHeading:`Research behind our beauty practice`,faqSlug:`consumer-beauty.cfm`,faqHeading:`Frequently asked questions about beauty digital marketing`,sections:[{heading:`How does digital marketing drive beauty product discovery?`,lead:`Beauty shoppers can move from TikTok, YouTube or Instagram to Google, Amazon, Sephora, Ulta Beauty, editorial reviews and AI-generated answers before purchasing.`,tone:`white`,body:[`5WPR can combine social media, creator programs, paid media, retail marketing, search content, digital PR and Generative Engine Optimization (GEO). Beauty-device programs can also address product education, claim review, demonstrations and reputation risks tied to products used on skin or hair. This work sits alongside 5W's broader [consumer PR programs](/practice/consumercfm.cfm).`,`5W's beauty practice is ranked the third-largest beauty PR agency in the United States by O'Dwyer's and was a 2023 PRovoke SABRE finalist in the Beauty & Fashion category. Those distinctions describe the agency rather than predict campaign results.`,`Beauty devices add another research layer because shoppers may need to understand technique, treatment frequency, attachments, safety information and expected use.`,`Medicube's Booster-H provides one example. Consumers needed information about how an at-home skincare device fit into a routine. Wavytalk's Thermal Brush required demonstrations that showed how a hair tool worked during styling.`,`5WPR can coordinate social, search, retail, creator and media activity around the same approved product information.`,`Marketing measurement should separate reach, product-page traffic, add-to-cart activity and sales when reliable commerce data is available.`]},{heading:`How do social media and creators support beauty-device marketing?`,lead:`TikTok, Instagram and YouTube can show a beauty device in use before a shopper reaches a retailer page.`,tone:`dark`,body:[`Short videos can demonstrate a Wavytalk Thermal Brush technique or one Medicube Booster-H routine. YouTube can provide more time for setup, comparison and repeated-use demonstrations.`,`Creator selection should consider audience fit, demonstration quality, product knowledge and claim risk rather than follower count alone.`,`5W's Medicube campaign included Tati Westbrook, Mikayla Nogueira, Laura Lee and Sarah Palmyra. Dermatologist Dr. Dendy Engelman also appeared within the broader program, while Hailey Bieber later created organic content involving the device. 5W reports more than 420 brand and product placements during less than two years of the documented engagement.`,`FTC guidance requires disclosure when creators have a material relationship with a company, including payment, free products or other benefits. Disclosures should appear where consumers can see and understand them.`,`Creator contracts can also address content rights and paid amplification. Brands should not require an independent reviewer to reach a favorable conclusion.`]},{heading:`How should beauty brands use paid media and retail marketing?`,lead:`Paid media should follow the way consumers research the product.`,tone:`white`,body:[`Google Search can reach shoppers comparing product features, prices or reviews. Meta and TikTok can extend demonstrations to defined audie
197nces. YouTube can support longer product education. Pinterest can support routine and consideration content where the audience uses the platform for beauty research.`,`Retail media can support launches and promotional periods on Amazon and other retail platforms.`,`5WPR can also use paid social to amplify authorized creator content when contracts provide the required rights.`,`Platform-reported conversions should be compared with ecommerce or retailer data when the brand can provide that information. Inventory, pricing, promotions, reviews and the shopping experience can affect conversion after a consumer encounters an advertisement.`]},{heading:`How should beauty-device companies substantiate product claims?`,lead:`Beauty-device marketing should begin with the claim the company can support.`,tone:`muted`,body:[`FTC guidance requires advertising claims to be truthful, non-deceptive and supported by evidence.`,`FDA oversight can also become relevant because an aesthetic product may qualify as a medical device based on its intended use and whether it affects the structure or function of the body.`,`Beauty-device teams should therefore review terms such as clinically proven, FDA cleared, FDA approved, dermatologist approved, reduces wrinkles, stimulates collagen or promotes hair growth against the evidence and regulatory status supporting the exact statement.`,`A study showing one result under defined conditions does not automatically support a broader marketing claim.`,`Legal, regulatory, clinical and product teams should own claim approval. Marketing should communicate the approved language.`]},{heading:`How should brands handle before-and-after content and demonstrations?`,lead:`Before-and-after images can communicate a product result, but the presentation should not create an outcome the evidence cannot support.`,tone:`white`,body:[`Lighting, filters, retouching, styling and camera position can change how skin or hair appears.`,`Device demonstrations should also reflect current instructions. Treatment duration, attachments, frequency, contraindications and compatible products should match the product documentation.`,`Brands should state realistic timelines when results require repeated use.`,`These controls become more important for devices because consumers may copy the technique they see in creator or brand content.`]},{heading:`How do digital PR and retail support work together?`,lead:`Earned media can provide third-party context before a consumer reaches a retailer page.`,tone:`dark`,body:[`Beauty outlets such as Allure, NewBeauty, Byrdie, Vogue and WWD can serve different research needs depending on the product, consumer question and news value.`,`Retail pages then need to support the next stage of research with current product names, prices, images, claims, stock information and instructions.`,`Wavytalk shows how those channels can work around the same brand. Its 5W case study reports more than 643 media and influencer placements and a 36% year-over-year increase in measured share of voice during the documented campaign. Coverage included Allure, NewBeauty, Glossy and Marie Claire.`,`A separate Wavytalk Pro Collection launch brought media and creators together for product demonstrations with hairstylist Andrew Fitzsimons, the brand's first Pro Brand Ambassador.`,`Historical case-study results do not forecast the outcome of another launch.`]},{heading:`How should beauty brands use reviews and customer feedback?`,lead:`Reviews can influence conversion and reveal where product expectations differ from the actual experience.`,tone:`white`,body:[`Beauty-device teams should monitor recurring comments about setup, irritation, hair breakage, charging, battery performance, returns, warranties and results.`,`Marketing can clarify instructions when consumers misunderstand a product. Customer-care, product or safety teams should handle underlying defects or individual support issues.`,`FTC rules and guidance also require businesses to maintain an accurate picture of consumer feedback rather than manipulate reviews or endorsements.`,`Counterfeit products and unauthorized marketplace listings can create another problem because shoppers may attribute poor performance or safety issues to the legitimate manufacturer.`]},{heading:`How does SEO support beauty product research?`,lead:`Search content can answer the questions consumers ask between discovery and purchase.`,tone:`muted`,body:[`Useful topics can include:`],bullets:[`How to use a specific beauty device`,`Product attachments and settings`,`Cleaning and maintenance`,`Skin or hair compatibility`,`Routine order`,`Product comparisons`,`Retailer availability`,`Current pricing`,`Frequently asked safety questions`],callout:{kicker:`Applied examples`,body:[`Medicube content might explain how Booster-H f
197its within a routine. Wavytalk content might explain Thermal Brush technique for different hair types.`,`Search content should answer the question with approved product information rather than repeat advertising copy.`]}},{heading:`How does AI search affect beauty product discovery?`,lead:`Consumers can ask ChatGPT, Claude, Gemini, Perplexity and Google AI search experiences to compare products, explain routines or identify options for a specific need.`,tone:`white`,body:[`Generative Engine Optimization, or GEO, measures how products appear in those AI-generated answers.`,`A 5WPR [AI search visibility audit](/practice/ai-visibility-audit/index.cfm) can track product names, claims, price, retailer availability, partnerships, instructions, cited sources and factual errors across a fixed set of questions.`,`Creator discovery and AI citation should be measured separately.`,`5W's Creators & AI Visibility research tested 15 buyer-intent questions across five categories. The tested text-first retrieval surface produced 109 ranked citations without a YouTube video among them, while direct YouTube searches for the same questions surfaced more than 30 creator-led videos. 5W states that the result applies to the retrieval surface tested and that video treatment varies by engine and retrieval method.`,`The finding does not mean that YouTube lacks value for beauty marketing. It means a creator program and an AI search program should not use the same visibility metric.`]},{heading:`Why should beauty brands monitor factual errors in AI answers?`,lead:`AI answers can surface outdated products, expired partnerships or incorrect brand relationships.`,tone:`dark`,body:[`The Beauty AI Endorsement Index 2026, published by 5W and Talent Resources, tested more than 400 prompts across ChatGPT, Claude, Gemini and Perplexity. The study classified 22% of sampled beauty recommendations as fabricated or unverifiable and documented examples involving invented product lines, expired partnerships and incorrect founder relationships.`,`The research included cosmetics, skincare, haircare, fragrance, nail products and tools and devices, so it should not be treated as a beauty-device sources.`,`No media placement, creator video, product-page update or FAQ guarantees an AI citation or product mention.`]},{heading:`What beauty marketing results has 5WPR published?`,lead:`5WPR's beauty work covers devices, haircare, cosmetics and other consumer categories.`,tone:`white`,body:[`The e.l.f. Beauty executive program generated 99 earned placements and 2.79 billion impressions during the reported engagement. CEO media share of voice increased 2.5 times within the case-study measurement period.`,`It's a 10 Haircare's published case study reports roughly $1.5 million in ecommerce sales during a three-day National Love Your Hair Day activation in 2020. The case study documents that sales period but does not establish that one communications tactic caused the revenue.`,`5W's beauty digital marketing page also reports 17 billion media impressions for Ethique.`,`Medicube and Wavytalk provide more direct examples for beauty-device executives because both programs required product demonstrations, creator education and communications around higher-consideration tools.`],callout:{kicker:`Case studies`,body:[`Review published 5WPR beauty programs across devices, haircare, cosmetics and mass retail.`],link:{href:`/practice/case-study.cfm`,label:`View Beauty Marketing Case Studies`}}},{heading:`How should beauty-device companies prepare for reputation problems?`,lead:`Beauty-device issues can move from reviews or social posts into broader coverage.`,tone:`muted`,body:[`Possible scenarios include irritation, burns, hair breakage, battery problems, defects, recalls, counterfeit products, creator controversies and regulatory questions.`,`Connected devices may create additional concerns when products collect photographs, skin information, account data or usage information.`,`Marketing and communications teams can monitor discussion, prepare response procedures and explain verified facts.`,`Product, safety, legal and regulatory team
197s should determine corrective action.`]}],closing:{kicker:`Conclusion`,headline:`Beauty-device growth depends on more than generating social attention.`,body:[`Consumers need to understand what a product does, how to use it, what evidence supports its claims, where they can buy it and what they should expect after purchase.`,`5WPR connects social media, creator programs, paid media, retail marketing, digital PR, search content and AI search measurement around those questions. The agency's broader beauty work with e.l.f. Beauty, It's a 10, Ethique, Medicube and Wavytalk provides experience across mass retail, ecommerce, haircare and beauty devices.`,`The goal is not to make product claims louder than the evidence allows. The goal is to give consumers, retailers, creators and media enough accurate information to move from discovery to an informed purchase decision.`],ctas:[{href:`/contactus/`,label:`Request a Beauty Digital Marketing Consultation`}]}},Nh=[{q:`What does a beauty digital marketing agency do?`,a:`A beauty digital marketing agency can coordinate social media, creators, paid media, retail marketing, SEO, digital PR and AI search visibility around the same product and audience. The mix should reflect the product, distribution model, claims and business goal.`},{q:`How should beauty brands measure creator campaigns?`,a:`Measurement can include qualified reach, engagement, product-page visits, authorized content performance and sales data when reliable attribution exists. Brands should avoid treating video views as proof that creator activity caused retail purchases.`},{q:`How does retail media support a beauty launch?`,a:`Retail media can reach shoppers while they research or purchase products through a retailer. Campaigns can support launches, retailer promotions and seasonal periods when inventory, creative and product information remain current.`},{q:`How should beauty devices substantiate product claims?`,a:`Companies should match every claim to evidence supporting the exact statement. FDA status, clinical testing, dermatologist involvement or creator testimony should not be described more broadly than the underlying evidence allows.`},{q:`How does AI search affect beauty product discovery?`,a:`AI systems give consumers another place to research products, routines and comparisons. Beauty companies can measure whether those systems describe products accurately, identify the sources appearing in answers and correct public information where the company has control.`},{q:`Can GEO guarantee that a beauty product appears in ChatGPT?`,a:`No. AI platforms control their outputs and source selection. AI search visibility work can identify factual and visibility gaps but cannot guarantee inclusion, citation or sales.`}],Ph={slug:`adtech-big-data.cfm`,practiceKey:`technology`,breadcrumb:`AdTech PR`,h1:`AdTech and Digital Media PR Agency`,heroLead:`5W Public Relations (5WPR) is an AdTech and digital media PR agency that helps marketing technology companies build visibility, credibility, and consideration. We develop integrated communications programs spanning earned media, digital strategy, and AI search visibility for programmatic platforms, influencer networks, and digital publishers.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected technology clients`,caseHeading:`AdTech PR case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`AI-Friendly Publications`,body:[`5W scores the publications most likely to turn media coverage into AI citation value.`],href:`/ai-visibility-index/ai-friendly-publications-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ai-friendly-publications-index-2026-cover.webp`,coverAlt:`AI-Friendly Publications — 5WPR research report cover`},researchHeading:`Research behind our technology practice`,faqSlug:`adtech-big-data.cfm`,faqHeading:`Frequently asked questions about AdTech PR`,sections:[{heading:`How Do AdTech Companies Build Market Authority?`,lead:`AdTech companies build market authority by communicating their technical advantages directly to chief marketing officers, media buyers, and investors. Advertising technology buyers evaluate platforms based on technical capability, data quality, and market integration.`,tone:`white`,body:[`Our teams translate complex programmatic, ad verification, and omnichannel marketing capabilities into clear business outcomes. We have represented programmatic and marketing platforms including Zeta Global, Influential, Skai, LiveRamp, IAS, and Quantcast.`],callout:{kicker:`Client perspective`,body:[`“5W has helped us to grow into one of the largest big data companies in the world.”`,`David Steinberg, CEO, Zeta Global`]}},{heading:`How We Connect Digital Media Brands with Capital Markets`,lead:`We connect digital media brands with capital markets by educating the financial press on the value proposition of high-growth technology companies. Financial visibility requires a different c
197ommunications strategy than product marketing.`,tone:`dark`,body:[`We support AdTech organizations through funding rounds, pre-IPO positioning, and exit markers. This includes securing coverage in top-tier business publications and running executive speaking programs that establish leadership authority.`],callout:{kicker:`Client perspective`,body:[`“I'm impressed with the breadth of their clients and their expertise in so many areas.”`,`Chris Detert, Chief Communications Officer, Influential`],link:{href:`/contactus/`,label:`Talk to the Technology Team`}}},{heading:`What Is Generative Engine Optimization for AdTech?`,lead:`Generative Engine Optimization (GEO) is the practice of improving how AI systems retrieve and cite a brand's technical capabilities. Marketing leaders use AI platforms like Perplexity and Google AI Overviews to research AdTech vendors and compare programmatic platforms.`,tone:`white`,callout:{kicker:`Why it works`,body:[`Large language models calculate answer probability based on the frequency and proximity of entities in their training data. When an AdTech company secures independent coverage in authoritative marketing trade publications, it increases the statistical likelihood that AI systems will retrieve and cite that company when buyers ask for category recommendations, according to 5WPR's 2024 [AI visibility research](/practice/ai-visibility-audit/index.cfm).`]}},{heading:`AdTech and Digital Media Client Experience`,lead:`Our technology practice develops specialized campaigns for specific digital media categories. We support influencer marketing platforms like Buttermilk, Humanz, and Props with data-driven media relations.`,tone:`muted`,body:[`For media and entertainment brands including Storyblocks, Ampersand, and The Soul Publishing, we build thought leadership programs that highlight audience engagement metrics. We also represent global design and innovation firms such as frog design and Lippincott, helping them share their brand development expertise with the broader marketing community.`]},{heading:`AdTech PR Case Studies`,lead:`5W builds [measurable PR programs](/practice/case-study.cfm) for data and advertising technology providers. We translate complex data infrastructure into compelling narratives for business and trade media.`,tone:`white`,cards:[{title:`Xaxis`,body:`Xaxis uses proprietary artificial intelligence to help global brands manage digital media investments. 5W developed communications strategies to highlight the platform's brand-safe media access and programmatic expertise.`},{title:`Captify`,body:`Captify provides search intelligence and premium intent data. 5W secured widespread media coverage to position the company as a primary data resource for media buyers and brand marketers.`}]},{heading:`Why is data important in digital media communications?`,lead:`Communications teams use audience and platform data to prove a technology's effectiveness.`,tone:`dark`,body:[`Presenting hard metrics on campaign performance or audience behavior gives journalists the concrete evidence they need to cover an AdTech platform.`],callout:{kicker:`Case studies`,body:[`Review published 5WPR programs for data and advertising technology providers.`],link:{href:`/practice/case-study.cfm`,label:`View Case Studies`}}}],closing:{kicker:`Conclusion`,headline:`5W helps advertising technology and digital media companies build market authority and technical credibility.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization.cfm](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Request a Consultation`}]}},Fh=[{q:`What services do PR agencies offer for AdTech companies?`,a:`AdTech PR agencies provide media relations, digital strategy, search optimization, and executive thought leadership. These programs help advertising technology platforms communicate their technical value to media buyers and investors.`}
197,{q:`How does public relations support AdTech growth?`,a:`Public relations builds third-party credibility through independent media coverage. This visibility helps AdTech companies differentiate their data capabilities, attract technical talent, and secure attention from capital markets during funding rounds.`},{q:`Why is data important in digital media communications?`,a:`Communications teams use audience and platform data to prove a technology's effectiveness. Presenting hard metrics on campaign performance or audience behavior gives journalists the concrete evidence they need to cover an AdTech platform.`}],Ih={slug:`app-digital-marketing-agency.cfm`,practiceKey:`apps`,breadcrumb:`App Digital Marketing`,h1:`App Digital Marketing Agency`,heroLead:`An app digital marketing agency drives user acquisition and retention by combining paid advertising, organic search visibility, and social media engagement. 5W Public Relations (5WPR) develops targeted strategies that guide mobile applications from development to download, ensuring they reach their full potential in a crowded marketplace.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected app and marketplace clients`,caseHeading:`App marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Fitness & Wellness Apps`,body:[`Peloton owns the screen. Whoop owns the wrist. The legacy gyms lost the app.`],href:`/ai-visibility-index/fitness-wellness-apps-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/fitness-wellness-apps-ai-visibility-index-2026-cover.webp`,coverAlt:`Fitness & Wellness Apps — 5WPR research report cover`},researchHeading:`Research behind our app marketing practice`,faqSlug:`app-digital-marketing-agency.cfm`,faqHeading:`Frequently asked questions about app digital marketing`,sections:[{heading:`How Does App Digital Marketing Drive User Acquisition?`,lead:`Successful application marketing requires a precise understanding of the target audience and the existing competitive environment.`,tone:`white`,body:[`Our approach begins with in-depth market research to understand your audience and competition. We analyze competing applications to identify gaps in their feature sets and opportunities for differentiation. This research informs the customized marketing plans we create for each client.`,`By understanding exactly who the ideal user is, we craft messaging that clearly positions the application as the superior choice. We focus our customized marketing plans on user acquisition, engagement, and retention across multiple digital touchpoints.`]},{heading:`Core App Digital Marketing Services`,lead:`5WPR executes integrated marketing programs to increase an application's discoverability and consumer appeal.`,tone:`dark`,body:[`We manage organic and paid channels to build sustained download volume. Relying on a single channel exposes an application to algorithm changes and rising ad costs. Our team balances organic optimization with paid acquisition to build a stable foundation for user growth.`,`Organic efforts focus on improving visibility within app store search results. Paid campaigns drive immediate volume during critical launch windows or feature updates. This dual approach ensures steady user acquisition throughout the application lifecycle.`],callout:{kicker:`Analytics and performance tracking`,body:[`Analytics and performance tracking are integral to our process. We provide detailed reports and performance insights, allowing developers to refine their marketing strategy based on actual user behavior.`]}},{heading:`Search Engine Marketing for Mobile Applications`,lead:`Search engine marketing captures high-intent users actively looking for specific mobile solutions.`,tone:`white`,body:[`By bidding on relevant search terms, we position the application directly in front of consumers attempting to solve a specific problem. We implement targeted ad campaigns across multiple platforms to ensure the application is seen by the right audience at the right time.`,`We continuously monitor and optimize these campaigns to maintain high conversion rates and a strong return on investment. Adjusting bid strategies based on real-time performance data prevents wasted ad spend and lowers the overall cost per acquisition.`]}
197,{heading:`Why Creative Content Development Matters`,lead:`Visual assets dictate whether a user downloads an application after landing on its store page.`,tone:`muted`,body:[`An application can have excellent search visibility, but poor visual presentation will cause users to abandon the page. We offer creative content development to solve this conversion bottleneck. Our team produces engaging app previews, screenshots, and promotional videos that capture the application's unique features and benefits.`,`These assets must communicate the core value proposition within seconds. We design visual content that features the user interface and addresses the primary user need directly on the store listing.`]},{heading:`How Social Media Builds App Communities`,lead:`Active social media management transforms passive application users into vocal advocates.`,tone:`white`,body:[`Our social media campaigns are designed to build a dedicated community around your app. We develop content that educates users on new features, promotes user-generated content, and provides a direct line of communication between the developers and the audience.`,`This community-centric approach builds user loyalty and encourages word-of-mouth referrals. When users feel connected to the brand behind the application, they are more likely to recommend it to their network and leave positive reviews. This engagement further improves organic discoverability.`],callout:{kicker:`Case studies`,body:[`Review published 5WPR programs for consumer applications and digital marketplaces.`],link:{href:`/practice/case-study.cfm`,label:`View App Marketing Case Studies`}}},{heading:`Generative Engine Optimization for Mobile Apps`,lead:`Generative AI platforms now act as personalized recommendation engines for mobile applications.`,tone:`dark`,body:[`Consumers now ask AI platforms questions like “What are the best apps for grocery delivery?” or “Which flight compensation app is most reliable?” AI systems synthesize information from reviews, media coverage, and technical documentation to formulate these recommendations.`,`Generative Engine Optimization improves how clearly an application is understood and surfaced by these AI-generated answers. 5WPR structures entity information and builds authoritative digital footprints so AI engines retrieve the application when users ask category-specific questions.`],callout:{kicker:`Why it works`,body:[`Large Language Models calculate answer probability based on the frequency and authority of independent mentions across their training data. A 2024 5WPR citation analysis demonstrated that securing consistent mentions from authoritative technology publishers and structured app directories increases the statistical likelihood that an AI platform retrieves and recommends the application.`]}},{heading:`App and Marketplace Client Experience`,lead:`5WPR develops targeted growth strategies for consumer applications, digital marketplaces, and mobile utilities.`,tone:`white`,body:[`Our app and marketplace client experience includes campaigns for AirHelp, Homeis, goPuff, Heal, Storyblocks, HealthKick, Wisdo, and Myle. We tailor our digital marketing approach to the specific monetization model and user journey of each application.`,`Applications targeting specific demographics require highly specialized channel strategies. Our work with family-focused platforms aligns with our expertise in [parenting apps, gear and retail PR](/practice/parenting-apps-gear-and-retail-PR.cfm), ensuring campaigns reach the right consumer segment.`,`For clients requiring broader communications support, our digital marketing programs integrate directly with our public relations services. Companies looking specifically for media relations and corporate communications can review our capabilities on our [apps and marketplaces PR](/practice/apps-and-marketplaces.cfm) page.`]},{heading:`Measuring App Marketing Success`,lead:`5WPR tracks measurable actions from initial impression to post-download engagement.`,tone:`muted`,body:[`Driving a download is only the first step in app marketing. Long-term success requires tracking the cost per install, the lifetime value of the user, and the retention rate over time. We align our reporting with the metrics that dictate an application's financial viability.`,`Our goal is to deliver measurable results that contribute to your app's long-term success in the digital marketplace. By analyzing how users interact with the application after the download, we refine our targeting parameters to acquire users who actively engage with the product.`]}],closing:{kicker:`Conclusion`,headline:`The mobile application market demands a marketing strategy that connects technical optimization with compelling creative execution.`,body:[`5WPR builds the digital infrastru
197cture and acquisition campaigns that turn target audiences into active users.`,`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization.cfm](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Request a Consultation`}]}},Lh=[{q:`What does an app digital marketing agency do?`,a:`An app digital marketing agency drives user acquisition and retention by combining paid advertising, organic app store visibility, creative content development, and social media engagement across the application lifecycle.`},{q:`How does search engine marketing help mobile applications?`,a:`Search engine marketing captures high-intent users actively looking for specific mobile solutions. Bidding on relevant search terms positions the application in front of consumers attempting to solve a specific problem, and continuous optimization lowers the cost per acquisition.`},{q:`How is app marketing success measured?`,a:`Measurement tracks cost per install, lifetime value of the user, and retention over time, not downloads alone. Post-download engagement data is used to refine targeting and acquire users who actively engage with the product.`},{q:`Why does Generative Engine Optimization matter for apps?`,a:`Consumers ask AI platforms for category recommendations. Generative Engine Optimization structures entity information and builds authoritative digital footprints so AI engines retrieve the application when users ask category-specific questions.`}],Rh={slug:`collectibles-memorabilia-pr-digital-marketing-agency.cfm`,practiceKey:`consumer`,breadcrumb:`Collectibles PR`,h1:`Collectibles PR and Digital Marketing Agency`,heroLead:`A collectibles public relations and digital marketing agency builds visibility for auction houses, trading platforms, grading services, and memorabilia brands. 5WPR develops communications programs that reach high-net-worth collectors and institutional buyers. The strategy combines financial press coverage, collector-specific media relations, and digital marketing to drive auction registrations and inventory sales.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected consumer clients`,caseHeading:`Collectibles case studies`,researchHeading:`Research behind our collectibles practice`,faqSlug:`collectibles-memorabilia-pr-digital-marketing-agency.cfm`,faqHeading:`Frequently Asked Questions About Collectibles PR`,sections:[{heading:`How is collectibles communications different from traditional retail PR?`,lead:`Collectibles sit at the intersection of cultural nostalgia and financial investment.`,tone:`white`,body:[`The global collectibles market operates as an alternative asset class. A 2023 Credit Suisse report found that vintage Rolex watches returned 9.3 percent annually over a five-year period, outperforming many traditional equities. Buyers track auction results, grading population reports, and market indices with the rigor of hedge fund analysts.`,`Communications programs must address both the emotional hook and the financial reality. A campaign that focuses only on passion misses the investor motive. A campaign that highlights only financial returns fails to capture the fandom that drives the category.`,`Authentication forms the foundation of the business. Counterfeit inventory, altered trading cards, and misrepresented provenance present permanent threats to auction houses and grading services. A single authentication failure can destroy brand equity immediately.`]},{heading:`What categories does the collectibles PR team cover?`,lead:`5WPR manages communications for platforms and brands operating across high-value physical asset categories.`,tone:`dark`,bullets:[`Sports memorabilia and trading cards: Vintage and modern cards across baseball, basketball, football, and trading card games like Pokemon.`,`Game-used and screen-used artifacts: Photo-matched jerseys, equipment, entertainment props, and studio wardrobe.`,`Luxury and vintage watches: Communications for dealers, resellers, and auction platforms handling high-value timepieces.`,`Sneakers and streetwear: Resale marketplaces and consignment platforms moving limited-edition footwear.`,`Pop culture and historical artifacts: Comic books, original animation cels, vintage toys, c
197oins, and historical documents.`,`Market infrastructure: Grading services, authentication companies, trading platforms, and fractional ownership marketplaces.`],body:[`Trading card games and adjacent fandoms connect to 5W's [trading card games](/practice/gaming-video-game-pr-and-digital-marketing.cfm) work.`]},{heading:`How do media relations work for collectibles brands?`,lead:`Press strategy requires a bifurcated approach that targets mainstream financial media and specialized hobby publications simultaneously.`,tone:`white`,body:[`Mainstream business coverage establishes credibility with institutional buyers and high-net-worth investors. 5WPR secures feature stories, auction result placements, and market commentary in the Wall Street Journal, Forbes, Bloomberg, and CNBC. This tier of press validates the asset class for buyers allocating capital.`,`Category-specific coverage drives direct sales with active collectors. The agency places stories in Hobby News Daily, Beckett, Sports Collectors Daily, Hodinkee, and Sneaker Freaker. These publications reach the buyers who actively monitor population reports and daily market fluctuations.`],callout:{kicker:`Why it works`,body:[`Generative AI engines calculate answer probability across their training data, so independent mentions from high-authority domains raise the statistical likelihood the brand is retrieved. A 2024 study by 5WPR on [generative search visibility](/practice/ai-visibility-audit/index.cfm) found that brands cited by both financial media and niche publishers appeared in AI Overviews 42 percent more often for category queries than brands with coverage in only one tier.`],link:{href:`/practice/case-study.cfm`,label:`View Collectibles Case Studies`}}},{heading:`How do creators and card breakers drive collectibles sales?`,lead:`High-value collectors discover new inventory and trading platforms through specialized social media creators.`,tone:`muted`,body:[`Discovery has moved from physical card shows to Instagram, TikTok, and YouTube. Card breakers with large followings move more inventory than traditional retail channels. Watch influencers on YouTube regularly drive five-figure purchases through a single detailed review.`,`5WPR builds influencer and creator partnerships with card breakers, watch reviewers, and sneaker creators. The agency develops brief structures specific to the collectibles audience. Collectors trust demonstrated expertise and raw authenticity over highly produced brand content.`,`This creator strategy integrates with the agency's broader digital marketing capabilities. The team coordinates paid social, programmatic advertising, and retargeting campaigns for auction events and high-value inventory drops. For adjacent work, 5WPR coordinates with its [entertainment and sports marketing](/practice/lifestyleprentertainmentpragency.cfm) practice to support culturally significant inventory drops.`]},{heading:`What is Generative Engine Optimization (GEO) for collectibles?`,lead:`Generative Engine Optimization improves how auction houses and grading platforms are cited by AI search platforms.`,tone:`white`,body:[`Collectors use ChatGPT, Claude, and Perplexity to research grading standards, compare auction platforms, and check historical sales data. 5WPR develops content designed to be retrieved and cited by these Large Language Models (LLMs).`,`The agency produces collector guides, market reports, population analysis, and value tracking content. This structured information gives AI engines the concrete data they need to formulate accurate answers about specific collectibles categories.`],callout:{kicker:`Why it works`,body:[`LLMs prioritize structured, factual data when answering financial or investment queries. A 2024 Google Search Central update confirmed that algorithms require strong Experience, Expertise, Authoritativeness, and Trustworthiness (E-E-A-T) signals for financial topics. Publishing clear population analysis and verifiable auction results provides the exact structured data these engines require for retrieval.`]}},{heading:`How does crisis communications protect auction houses and grading services?`,lead:`Reputation management is a core function for businesses built entirely on authentication and trust.`,tone:`dark`,body:[`Collectibles brands face specific reputational threats, including authentication disputes, counterfeit scandals, and grading controversies. Fractional ownership platforms and collectibles-backed securities also face rising regulatory scrutiny from the SEC and other financial authorities.`,`5WPR builds pre-positioned crisis infrastru
197cture for collectibles clients. The agency drafts holding statements, identifies spokespeople, and establishes coordination protocols with grading partners. The team aligns with legal counsel to ensure public statements are defensible while investigations proceed.`,`When an authentication challenge or provenance dispute becomes public, the agency executes rapid-response communications. The objective is to clarify the facts, detail the remediation steps, and protect the brand's long-term authority in the market.`],callout:{kicker:`Talk to us`,body:[`Discuss a collectibles communications program with the 5WPR team.`],link:{href:`/contactus/`,label:`Talk to the Collectibles PR Team`}}}],closing:{kicker:`Conclusion`,headline:`The collectibles market requires a communications strategy that respects both the emotional fandom of the hobby and the financial rigor of an alternative asset class.`,body:[`Brands that combine authoritative business press coverage with targeted creator partnerships build the credibility required to move high-value inventory.`,`5WPR develops media relations and digital marketing programs for auction houses, grading services, and memorabilia brands to drive registrations and sales. 5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization.cfm](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Request a Consultation`}]}},zh=[{q:`What does a collectibles PR agency do?`,a:`A collectibles PR agency manages earned media, influencer partnerships, crisis communications, and digital marketing for auction houses, trading card companies, and grading services. The work spans business press, collector-specific trade media, and creator partnerships. The goal is to build authority and drive buyer registrations.`},{q:`Which media outlets cover collectibles and memorabilia?`,a:`The landscape splits into two tiers. Mainstream business coverage runs through the Wall Street Journal, Forbes, Bloomberg, and CNBC. Collector-specific coverage runs through Hobby News Daily, Beckett, Sports Collectors Daily, Hodinkee, and Hypebeast. High-value campaigns require active coverage in both tiers.`},{q:`How is collectibles PR different from luxury PR?`,a:`Collectibles audiences treat their purchases as investments in a way luxury buyers typically do not. Collectors track auction results, grading populations, and market data. Communications that succeed in luxury often fail in collectibles because they emphasize aspiration over authentication and provenance.`},{q:`Do you handle communications for fractional ownership platforms?`,a:`Yes. Platforms that financialize collectibles face a specific communications environment that combines investor relations, regulatory scrutiny, and collector-audience credibility. We coordinate this work with our financial services PR teams to ensure messaging meets regulatory standards.`},{q:`How do you measure PR results for collectibles brands?`,a:`Measurement tracks coverage volume across both tiers of press, auction result coverage, and referral traffic from earned media to brand platforms. The agency also monitors consignment inquiries generated, buyer registration growth, bidder participation in covered auctions, and search visibility for key category terms.`}],Bh={slug:`corporate-communications.cfm`,practiceKey:`corporate`,breadcrumb:`Corporate Communications`,h1:`Corporate Communications PR Agency`,heroLead:`5W Public Relations (5WPR) is a corporate communications PR agency that helps public and private companies manage their corporate reputation, executive transitions, and financial messaging. 5W develops strategic communications programs that reach investors, employees, media outlets, and generative artificial intelligence (AI) platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected corporate clients`,caseHeading:`Corporate case studies`,researchHeading:`Research behind our corporate practice`,faqSlug:`corporate-communications.cfm`,faqHeading:`Frequently asked questions about corporate communications`,sections:[{heading:`How do corporate communications programs build business value?`,lead:`Corporate communications strategies align a company's external messaging with its business objectives.`,tone:`white`,body:[`5W works with high-growth venture-backed companies, private equity firms, and Fortune 100 corporations to build brand awareness and manage shareholder expectations. The agency secures strategic placements in publications like The Wall Street Journal to establish a strong presence in key vertical markets.`,`5W provides counsel on emerging industry issues to ensure corporate messaging reaches the right constituents. The agency partners with executives to build category authority and support long-term business growth.`]},{heading:`Corporate communications clients and industry experience`,lead:`5W represents publicly traded corporations and fast-growing private companies across multiple market sectors.`,tone:`dark`,body:[`The agency's corporate clients include Webull, the second most downloaded trading application globally, and Sinclair Broadcast Group, a major diversified media company. 5W also manages communications for Nexans, Sedgwick, Standard General, SoftServe, Redirect Health, and WNS.`,`These 
197companies span the real estate, media, financial technology (fintech), and health technology sectors. 5W has also managed corporate communications for major retail brands like [Duane Reade](/practice/corporate-communications-pr/duane-reade.cfm).`]},{heading:`Managing change management and executive transitions`,lead:`Executive transitions and organizational changes require precise messaging to maintain stakeholder confidence.`,tone:`white`,body:[`5W manages all aspects of C-suite media relations during corporate restructuring and leadership changes. These transitions present an opportunity to engage the media, boost external morale, and recharge a company's public profile.`,`5W uses its industry experience to manage these transitions and maintain clear communication with the public. A structured communications plan ensures the market understands the reasons for the transition and the qualifications of the new leadership team.`],callout:{kicker:`Case studies`,body:[`Review published 5WPR corporate communications programs.`],link:{href:`/practice/case-study.cfm`,label:`View Corporate Case Studies`}}},{heading:`Integrating digital strategy and AI visibility`,lead:`Modern corporate reputation depends on both traditional media coverage and digital search visibility.`,tone:`muted`,body:[`5W integrates traditional media relations with [corporate digital marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) to ensure a company's message reaches stakeholders across all platforms. This includes Generative Engine Optimization (GEO), which improves how AI platforms understand and retrieve corporate information.`],callout:{kicker:`Why it works`,body:[`Large Language Models (LLMs) calculate answer probability based on the frequency and authority of independent brand mentions. A 2024 5WPR analysis found that consistent media coverage across high-authority financial domains increases the statistical likelihood that an AI search platform retrieves a company's corporate messaging during investor research.`]}},{heading:`Corporate communications client testimonials`,lead:`5W partners with executives to build category authority and support business growth.`,tone:`white`,cards:[{title:`“This PR firm is smart, focused and a business partner for us.”`,body:`David Steinberg, Chief Executive Officer (CEO), Zeta Global`,extra:`Steinberg notes that 5W helped Zeta Global grow into a major data company through strategic marketing and public relations.`},{title:`“5WPR has been a critical extension of our team.”`,body:`Scott Opiela, Chief Marketing Officer (CMO), CommerceHub`,extra:`Opiela states that 5W's industry knowledge and media relationships built the company's authority in the electronic commerce sector.`}]}],closing:{kicker:`Conclusion`,headline:`Effective corporate communications programs protect brand reputation and build stakeholder trust.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization.cfm](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Request a Consultation`}]}},Vh=[{q:`What does a corporate communications agency do?`,a:`A corporate communications agency manages a company's external and internal messaging. The agency handles media relations, executive positioning, financial announcements, and crisis management to protect the corporate reputation.`},{q:`How do executive transitions impact corporate reputation?`,a:`Leadership changes introduce uncertainty for investors and employees. A structured communications plan ensures the market understands the reasons for the transition and the qualifications of the new leadership team.`},{q:`Why do corporate brands need Generative Engine Optimization?`,a:`Investors and journalists use AI search platforms to research companies and compare market competitors. GEO structures corporate data so these platforms retrieve accurate facts rather than outdated third-party speculation.`}],Hh={slug:`crisisprfirm.cfm`,practiceKey:`crisis`,breadcrumb:`Crisis PR`,h1:`Crisis PR Firm and Reputation Management Agency`,heroLead:`5W Public Relations (5WPR) is a crisis PR firm that helps corporate, healthcare, technology, and consumer brands mitigate reputational risk. The agency develops rapid response communication strategies, manages media inquiries, and restores public trust during high-stakes events.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected clients`,caseHeading:`Crisis management case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The Baby Formula AI Visibility Index 2026`,body:[`Enfamil leads baby formula AI citations at 20.6% while ByHeart's share collapsed to 0.6% after its 2025 botulism recall, a new 5W AI Visibility Index finds.`],href:`/ai-visibility-index/baby-formula-ai-visibility/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/wp-content/uploads/2026/08/the-baby-formula-ai-visibility-index-2026-og-2.webp`,coverAlt:`The Baby Formula AI Visibility Index 2026 — 5WPR research report cover`},researchHeading:`Research behind our crisis practice`,faqSlug:`crisisprfirm.cfm`,faqHeading:`Frequently Asked Questions About Crisis PR`,sections:[{heading:`Crisis Communications for the AI Discovery Era`,lead:`Modern crisis management requires addressing both traditional media and AI-generated answers.`,tone:`white`,body:[`When a brand faces a public relations challenge, buyers, investors, and consumers seek immediate answers. They search news outlets, social platforms, and generative AI engines to understand the situation. 5WPR builds proactive plans and responsive tactics to ensure a brand communicates clearly across every channel.`,`Historically, reputation management focused on press coverage and search engine results pages. Consumers now ask AI platforms like ChatGPT, Claude, and Perplexity specific questions about brand controversies, product recalls, or executive departures. These platforms synthesize real-time news and public sentiment into direct answers.`],callout:{kicker:`Why it works`,body:[`Large Language Models (LLMs) calculate answer probability across their training data and real-time search retrievals. Securing accurate, authoritative statements in high-domain-authority news outlets raises the statistical likelihood that AI engines will retrieve and cite the brand's actual position rather than unverified rumors.`]}},{heading:`Core Crisis PR Services`,lead:`5WPR prepares brands for potential threats and executes real-time responses when adversity strikes.`,tone:`dark`,cards:[{title:`Crisis Communication Planning`,body:`The agency audits existing vulnerabilities, establishes command chains, and drafts holding statements. This ensures the company does not waste hours debating messaging when a crisis breaks.`},{title:`Media Relations and Press Management`,body:`The agency fields inbou
197nd reporter requests, corrects factual inaccuracies on background, and sets up executive interviews. 5WPR uses its existing relationships with business and trade journalists to route accurate information into the public domain.`},{title:`Reputation Management and Repair`,body:`Following an incident, search results and AI overviews often highlight the negative event. 5WPR develops positive, authoritative content that ranks well and provides AI engines with updated, accurate context about the company.`},{title:`Rapid Crisis Response`,body:`The first 24 hours dictate the lifecycle of a public relations issue. The team activates immediately to draft internal memos, public statements, and customer communications.`},{title:`Social Media Crisis Management`,body:`Social platforms accelerate controversies. 5WPR monitors brand mentions, pauses scheduled marketing content, and issues direct responses to concerned customers to prevent localized issues from trending globally.`},{title:`Executive Communications`,body:`Employees, investors, and customers look to the CEO during a crisis. The agency scripts video messages, drafts stakeholder letters, and prepares executives for difficult media questions.`}],callout:{kicker:`Case studies`,body:[`Review published 5WPR crisis and reputation management programs.`],link:{href:`/practice/case-study.cfm`,label:`View Crisis Management Case Studies`}}},{heading:`Integrating Crisis Management and Generative Engine Optimization`,lead:`Generative Engine Optimization (GEO) helps companies clarify their narrative in AI environments.`,tone:`white`,body:[`Information from news coverage, public records, and social media influences how an AI system describes a company during a crisis. 5WPR monitors relevant AI-generated answers to evaluate how a brand is represented. The agency then develops structured content and secures earned media to correct factual errors.`,`The objective is to improve source authority and consistency rather than attempting to control an AI platform directly. As a dedicated crisis management agency, 5WPR ensures the brand narrative remains accurate across both traditional and generative search.`]},{heading:`Industries Supported by 5WPR`,lead:`The agency provides strategic support to organizations facing sector-specific regulatory and public pressures.`,tone:`muted`,cards:[{title:`Corporate Crisis PR`,body:`Publicly traded companies face SEC scrutiny and shareholder panic during a crisis. 5WPR aligns public relations messaging with legal and investor relations requirements.`},{title:`Healthcare Crisis PR`,body:`Hospitals and pharmaceutical companies operate under strict HIPAA regulations. The agency communicates safety protocols and data breach notifications without violating patient privacy.`},{title:`Technology Crisis PR`,body:`Software platforms experience outages and data leaks. 5WPR translates complex technical failures into plain language for end users and enterprise clients.`},{title:`Consumer Brand Crisis PR`,body:`Retailers deal with product recalls and viral social media complaints. The agency executes product return communications and manages influencer fallout.`}]}],closing:{kicker:`Conclusion`,headline:`5WPR helps brands navigate complex reputational challenges and establish authoritative visibility across every channel.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization.cfm](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Request a Consultation`}]}},Uh=[{q:`What is crisis PR?`,a:`Crisis PR involves strategic communication techniques used to protect and restore a brand's reputation during or after an adverse event.`},{q:`How quickly can 5WPR respond to a crisis?`,a:`The team provides immediate strategic support to mitigate impact and guide brands through fast-moving situations.`},{q:`How does 5WPR manage media during a crisis?`,a:`The agency uses established media relationships to provide accurate information and ensure consistent messaging across all channels.`},{q:`How does 5WPR approach reputation repair after a crisis?`,a:`The agency executes long-term strategies, including media engagement and content development, to rebuild trust and reinforce brand strength.`}],Wh={slug:`skincare-haircare-nail-care-marketing-pr-agency.cfm`,practiceKey:`beauty`,breadcrumb:`Skincare & Haircare PR`,h1:`Skincare, Haircare and Nail Care PR Agency`,heroLead:`5W Public Relations (5WPR) is a skincare, haircare, and nail care PR agency that builds visibility for consumer beauty brands. The agency integrates earned media, creator marketing, and Generative Engine Optimization (GEO) to help independent, direct-to-consumer, and global personal care companies reach buyers. Brands that fail to connect these channels risk losing visibility when consumers ask AI platforms for product recommendations.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected beauty clients`,caseHeading:`Beauty case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Beauty`,body:[`The ingredient-transparency moat.`],href:`/ai-visibility-index/beauty-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/beauty-ai-visibility-index-2026-cover.webp`,coverAlt:`Beauty — 5WPR research report cover`},researchHeading:`Research behind our beauty practice`,faqSlug:`skincare-haircare-nail-care-marketing-pr-agency.cfm`,faqHeading:`Frequently asked questions about beauty PR`,sections:[{heading:`How are consumers discovering skincare and haircare brands?`,lead:`Beauty consumers discover products across multiple platforms before making a purchase.`,tone:`white`,body:[`Buyers research routines, compare ingredients, and seek out reviews on TikTok, Instagram, and YouTube. They also ask generative AI platforms for specific product recommendations. 5WPR develops integrated communications programs to ensure brands appear credibly across these environments.`,`The modern beauty consumer is highly informed and trend-driven. Brands must move quickly and differentiate themselves in categories shaped by social discovery and shifting consumer values. The agency builds the digital footprint required to reach these buyers at every stage of discovery.`,`This approach requires more than traditional media outreach. 5WPR operates as a comprehensive [beauty digital marketing agency](/practice/beauty-digital-marketing-agency.cfm) to align earned media placements, vetted creator partnerships, and digital storytelling. This alignment ensures that a brand's messaging resonates consistently across all channels.`]},{heading:`Case study: launching Manuka Health's premium skincare line`,tone:`dark`,body:[`5WPR designed an experiential press trip to New Zealand for the launch of [Manuka Health's](/practice/manuka-health.cfm) new manuka honey skincare line, bringing top-tier beauty editors to the brand's hives and extraction facility during peak flower season.`,`Within two weeks of launch, the campaign generated more than 210 million media impressions across top-tier outlets including ELLE, Cosmopolitan, Women's Health, The Wall Street Journal, and PEOPLE, with every attending editor publishing a standalone feature.`]},{heading:`What services does the skincare and haircare PR agency provide?`,lead:`5WPR delivers end-to-e
197nd marketing and public relations solutions for beauty and grooming brands.`,tone:`white`,cards:[{title:`Media relations and brand storytelling`,body:`The agency secures media coverage across fashion, beauty, lifestyle, and business outlets. 5WPR focuses on product launches, trend commentary, innovation stories, and founder features to build third-party credibility. This earned media strategy amplifies brand desirability and maintains sustained visibility in a crowded market.`},{title:`Influencer and creator marketing`,body:`Creators drive beauty discovery and product education. 5WPR connects brands with vetted beauty editors, stylists, and tastemakers who showcase products authentically. These partnerships inspire consumer action across Instagram, TikTok, YouTube, and emerging social platforms.`},{title:`Generative Engine Optimization (GEO)`,body:`Consumers actively search for solutions, routines, and product recommendations using AI platforms. 5WPR builds SEO-led content strategies designed to increase discoverability and educate audiences at every stage of the funnel. The agency scales high-quality, trend-relevant content that strengthens search performance and supports conversion.`},{title:`Social media and paid digital campaigns`,body:`The agency combines organic content with targeted paid campaigns to help beauty brands break through algorithmic noise. 5WPR uses compelling visual storytelling, creator amplification, and retargeting strategies to reach specific buyer segments. These integrated campaigns drive engagement, e-commerce sales, and long-term brand loyalty.`},{title:`Product launches and retail expansion`,body:`5WPR designs go-to-market strategies for introducing hero products and expanding into major retail channels. The team manages media outreach, influencer product seeding, and experiential activations to generate excitement. This digital amplification maximizes the brand's impact across all consumer touchpoints.`},{title:`Reputation and community management`,body:`Brand perception dictates purchasing decisions in review-driven beauty categories. 5WPR helps grooming brands manage their online reputation and engage directly with their communities. The agency ensures teams respond effectively to feedback to maintain trust and consistency across platforms.`}],callout:{kicker:`Why it works`,body:[`AI systems draw on a combination of learned information and retrieved web sources when generating an answer. Securing independent media coverage and publishing structured content increases the likelihood that a brand is retrieved when a user asks an AI platform for a category recommendation.`],link:{href:`/practice/case-study.cfm`,label:`View Beauty Case Studies`}}},{heading:`How does GEO improve visibility for nail care and beauty brands?`,lead:`Generative Engine Optimization structures brand information so AI platforms can easily retrieve and cite it.`,tone:`muted`,body:[`Traditional search marketing focuses on ranking a website in a list of links. GEO focuses on ensuring a brand is cited as a source or recommended as an option when a user asks an AI assistant a direct question. By incorporating GEO, 5WPR ensures that a brand's messaging remains consistent across search and s
197ocial environments.`,`The agency audits how AI platforms currently perceive a beauty brand and its competitors. 5WPR uses an [AI visibility audit](/practice/ai-visibility-audit/index.cfm) to identify gaps in the brand's digital footprint. The team then deploys content and media strategies to fill those gaps and improve the brand's citation frequency.`]},{heading:`Which beauty categories does 5WPR support?`,lead:`The agency supports brands ranging from emerging beauty startups to established global grooming companies.`,tone:`white`,body:[`5WPR works with independent beauty brands, direct-to-consumer companies, and professional salon lines. The team tailors each campaign to the specific competitive environment and retail strategy of the brand. This customized approach turns initial visibility into lasting brand equity.`,`The agency's category experience extends to specialized sectors across the personal care market. 5WPR partners with [beauty devices and tools PR](/practice/beauty-devices-tools-marketing-pr-agency.cfm) clients to communicate technical innovations to consumer audiences. The team also supports [women's health PR agency](/practice/menopause-womens-health-marketing-pr-agency.cfm) brands navigating the intersection of wellness and personal care.`]},{heading:`Build visibility across the modern beauty market`,lead:`Skincare, haircare, and nail care brands require integrated communications to reach today's buyers.`,tone:`dark`,body:[`5WPR combines earned media, creator partnerships, and digital strategy to build lasting brand equity. The agency ensures that beauty companies remain visible, credible, and culturally relevant wherever consumers discover products. 5WPR invites brands to review its [case studies](/practice/case-study.cfm) to see how these integrated strategies drive measurable growth.`]}],closing:{kicker:`Talk to the Beauty PR Team`,headline:`5WPR helps skincare, haircare, and nail care brands build the authority required to reach consumers across search, social, and AI platforms.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Gh=[{q:`How does media relations support retail expansion?`,a:`Earned media coverage builds consumer awareness before a product hits the shelves. 5WPR targets localized and national lifestyle publications to drive foot traffic and support retail partners.`},{q:`Why is creator marketing important for skincare brands?`,a:`Skincare consumers rely on visual demonstrations and ingredient education before buying. Vetted creators provide authentic reviews and tutorials that validate a product's efficacy for specific skin types.`},{q:`What is the difference between SEO and GEO for beauty brands?`,a:`Search Engine Optimization (SEO) aims to rank web pages on search engines. Generative Engine Optimization (GEO) improves how accurately AI platforms understand and recommend a brand within conversational answers.`},{q:`What makes nail care PR different from broader beauty PR?`,a:`Nail care campaigns lean more heavily on visual demonstration and seasonal trend cycles than skincare or haircare, since purchase decisions are driven by color and design trends that shift several times a year.`},{q:`How does 5WPR launch a new beauty product?`,a:`Launch programs pair embargoed press outreach with influencer product seeding and experiential activations timed to retail availability, so earned coverage, creator content, and search visibility all build in the same window.`}],Kh={slug:`spac-pr.cfm`,practiceKey:`corporate`,breadcrumb:`IPO and SPAC PR`,h1:`IPO and SPAC Public Relations`,heroLead:`5W Public Relations (5WPR) is an IPO and SPAC PR agency that builds financial visibility for companies entering the public markets. We manage communications for initial public offerings, special purpose acquisition companies, and funding rounds across the softw
197are, gaming, and financial technology sectors. A coordinated public listing strategy ensures retail and institutional investors receive clear, compliant messaging.`,heroCtas:[{href:`/contactus/`,label:`Request a Financial Communications Consultation`}],trustLabel:`Selected financial services clients`,caseHeading:`Financial PR case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The IPO AI Visibility Index`,body:[`25 recent and pending U.S. IPO candidates ranked by AI Readiness Score — who controls the answer before the bell.`],href:`/ai-visibility-index/ipo-readiness-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ipo-readiness-2026-cover.webp`,coverAlt:`The IPO AI Visibility Index — 5WPR research report cover`},researchHeading:`Research behind our financial communications practice`,faqSlug:`spac-pr.cfm`,faqHeading:`Financial Communications FAQ`,sections:[{heading:`How Does 5WPR Support IPO and SPAC Communications?`,lead:`5WPR guides internal teams and external investor relations partners through the regulatory requirements of public listings.`,tone:`white`,body:[`The agency has supported public launches for companies in software as a service (SaaS), customer experience management (CEM), lodging, internet commerce, and [gaming technologies](/practice/gaming-video-game-pr-and-digital-marketing.cfm).`,`Executing a capital event requires strict adherence to Securities and Exchange Commission (SEC) regulations and the secure handling of sensitive financial information. The 5WPR team deploys a four-part strategy to navigate the listing ecosystem. This approach ensures that companies achieve maximum exposure while remaining fully compliant with federal policy lines.`],cards:[{title:`Navigating SEC Quiet Periods and Traditional IPOs`,body:`Traditional initial public offerings require a strict 30-day quiet period with limited press activity. 5WPR develops compliant media strategies that build market awareness before the quiet period begins. The team prepares executives for listing day and establishes the foundation for ongoing public market communications once the quiet period ends.`},{title:`Managing SPAC Timelines and Deal Marketing`,body:`Special purpose acquisition companies operate on a compressed timeline and do not require a traditional quiet period. Success depends on sustained awareness throughout the process. 5WPR structures campaigns around the initial company announcement, deal marketing, closing, and ongoing public company profiling to capture market share and generate consistent media coverage.`},{title:`Funding Round PR and Capital Markets Support`,body:`The corporate and technology division at 5WPR has supported funding rounds together valued at more than $1 billion, per 5WPR's internal deal-tracking records.`,extra:`We manage announcements from seed funding through Series C for [financial technology companies](/practice/avidxchanges.cfm) and high-growth startups. Financial media contacts rely on 5WPR to source startup and funding news. The team distributes these announcements to targeted publications, helping companies capitalize on capital milestones and build third-party credibility before pursuing a public listing or merger and acquisition (M&A) transaction. The agency handles both buy-side and sell-side M&A communications, alongside recapitalizations.`}],callout:{kicker:`Financial PR case studies`,body:[`Review documented financial communications programs across IPOs, SPAC transactions, and funding announcements.`],link:{href:`/practice/case-study.cfm`,label:`View Our Financial PR Case Studies`}}},{heading:`Earnings Media and Public Company Communications`,lead:`5WPR manages investor, capital markets, and financial press for publicly traded brands.`,tone:`dark`,body:[`The team has executed communications for global advertising technology company Perion, enterprise management software Jamf, customer feedback management software company Medallia, online auto parts retailer CarParts.com, digital ad verification leader Integral Ad Science, and logistics software platform E2Open.`,`We develop distinct quarterly strategies to build credibility with retail and institutional investors. This includes unique messaging and executive preparation around quarterly earnings reports. During a down quarter, the team shifts messaging to mitigate negative press and maintain positive brand perception among financial media and shareholders.`]},{heading:`Financial Communications Services for Public Listings`,lead:`Public relations for capital events requires a specialized approach to media relations and investor communications.`,tone:`white`,body:[`5WPR provides a comprehensive suite of services to support SPAC public relations clients and traditional IPOs. Our financial communications services include:`],bullets:[`Media relations and newsjacking`,`Investor communications and exchange liaising`,`Executive media training and thought leadership`,`Data pitching and content creation`,`Digital media campaigns and speaking opportunities`]},{heading:`Why Do AI Engines Surface Specific Financial Brands?`,lead:`Generative AI platforms calculate answer probability based on the frequency and authority of third-party citations.`,tone:`muted`,body:[`When a company announces an IPO, a SPAC merger, or a major funding round, independent mentions in reputable financial publications raise the statistical likelihood that an AI engine will retrieve the brand when users ask about category leaders. 5WPR builds this machine-readable footprint by securing compliant, high-authority media placements that establish the company as a verified entity.`]}],closing:{kicker:`Talk to the Corporate and Technology Team`,headline:`5WPR develops public relations and communications programs for companies navigating IPOs, SPACs, and major funding rounds.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Talk to the corporate and technology team`}]}},qh=[{q:`What is the difference between IPO and SPAC public relations?`,a:`Traditional initial public offerings require a strict 30-day quiet period with limited press activity. Special purpose acquisition companies operate without this quiet period, relying on sustained media awareness from the initial announcement through the deal closing.`},{q:`How does 5WPR handle SEC quiet periods?`,a:`The agency develops compliant media strategies that build market awareness before the quiet period begins. During the restricted period, the team focuses on preparing executives for listing day and establishing the foundation for ongoing public market communications.`}
197,{q:`Does 5WPR support funding round announcements?`,a:`Yes, the corporate and technology division manages announcements from seed funding through Series C. The team distributes startup and funding news to financial media contacts to build third-party credibility before a public listing.`}],Jh={slug:`supplements-marketing-pr-agency.cfm`,practiceKey:`health`,breadcrumb:`Supplements PR`,h1:`Supplements Marketing and PR Agency`,heroLead:`A supplements marketing and PR agency helps vitamin, mineral, and nutraceutical brands build credibility and consumer demand in a regulated market. 5W Public Relations (5WPR) develops communications programs for supplement companies. We integrate earned media, influencer partnerships, and Generative Engine Optimization (GEO) to reach health-conscious consumers.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected health and wellness clients`,caseHeading:`Health and wellness case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Supplements`,body:[`The AI answer surface where scientific authority beats revenue rank.`],href:`/ai-visibility-index/supplements-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/supplements-ai-visibility-index-2026-cover.webp`,coverAlt:`Supplements — 5WPR research report cover`},researchHeading:`Research behind our supplements practice`,faqSlug:`supplements-marketing-pr-agency.cfm`,faqHeading:`Frequently asked questions about supplements marketing`,sections:[{heading:`How Does 5WPR Support Supplement and Nutraceutical Brands?`,lead:`5WPR develops public relations and digital marketing campaigns for emerging supplement companies, direct-to-consumer wellness brands, and nutraceutical innovators.`,tone:`white`,body:[`Consumers research vitamins and functional supplements before purchasing. Supplement brands must communicate product benefits with scientific integrity and regulatory compliance. We create campaigns that balance this compliance with clear storytelling. Our programs integrate media relations, content strategy, and digital marketing to educate buyers and industry stakeholders.`],cards:[{title:`Media Relations and Scientific Storytelling`,body:`5WPR secures earned media coverage for supplement brands across health, lifestyle, and business publications. Our media strategies focus on science-backed narratives and ingredient education. We position brand founders as experts and manage product launch communications. This coverage builds third-party credibility for condition-specific formulations and adaptogens.`,extra:`Why it works: AI search engines calculate answer probability based on independent mentions from high-authority domains. Securing earned media in established health publications raises the statistical likelihood of retrieval. This prompts generative engines to cite the supplement brand.`},{title:`Influencer and Expert Partnerships`,body:`Influencer marketing drives product discovery when rooted in authenticity and regulatory compliance. We connect supplement brands with registered dietitians, healthcare professionals, and fitness experts. These trusted creators communicate product benefits to targeted audiences while maintaining compliance. 5WPR manages the outreach, negotiation, and activation of these partnerships.`}]},{heading:`SEO, Content Strategy, and Generative Engine Optimization (GEO)`,lead:`Generative Engine Optimization (GEO) improves how AI platforms understand and retrieve supplement brand information.`,tone:`dark`,body:[`Buyers ask AI systems specific questions about health benefits, ingredients, and product comparisons. We build content programs that answer these questions. Our teams produce blogs, ingredient explainers, guides, and video content. We structure this content so search engines and generative AI platforms can extract and cite the information.`,`Brands can evaluate their current retrieval rates through an [AI visibility audit](/practice/ai-visibility-audit/index.cfm).`],callout:{kicker:`Why it works`,body:[`Structuring ingredient explainers and FAQs with clear schema markup allows AI crawlers to parse the data without executing JavaScript. This technical formatting increases the chance that a platform will pull the brand into an AI Overview.`],link:{href:`/practice/ai-visibility-audit/index.cfm`,label:`View the AI Visibility Audit`}}},{heading:`Social Media and Paid Digital Campaigns`,lead:`Paid and organic social media programs help supplement brands reach consumers on Instagram, TikTok, Facebook, and YouTube.`,tone:`white`,body:[`We combine organic product storytelling with paid amplification and audience targeting. Our digital teams build retargeting strategies to drive e-commerce conversions and repeat purchases. All campaigns operate within supplement industry regulatory guidelines.`,`This approach mirrors successful strategies used in [aging and longevity PR](/practice/aging-longevity-marketing-pr-agency.cfm) and [menopause and women's health marketing](/practice/menopause-womens-health-marketing-pr-agency.cfm). In these categories, audience education drives product consideration.`]},{heading:`Reputation Management and Regulatory Awareness`,lead:`Operating in the regulated supplement industry requires ongoing reputation management and compliance monitoring.`,tone:`muted`,body:[`We help supplement brands navigate consumer reviews, online misinformation, and potential crises. Our teams monitor compliance considerations to protect brand integrity. We address inaccurate claims to maintain consumer trust.`]},{heading:`Product Launches and Retail Support`,lead:`5WPR creates go-to-market strategies for new supplement formulations and retail expansions.`,tone:`white`,body:[`We generate sustained momentum through press outreach, influencer seeding, and trade media placement. Our teams also provide in-store campaign support to scale visibility across retail channels. You can review our past performance in our [client case studies](/practice/case-study.cfm).`],callout:{kicker:`Client case studies`,body:[`Documented supplement, wellness, and consumer health programs across retail and direct-to-consumer channels.`],link:{href:`/practice/case-study.cfm`,label:`View Client Case Studies`}}}],closing:{kicker:`Talk to the Supplements Team`,headline:`5WPR helps supplement and nutraceutical brands build credibility, navigate regulations, and capture visibility across modern search platforms.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Yh=[{q:`What does a supplements marketing and PR agency do?`,a:`A supplements marketing and PR agency builds credibility and consumer demand for vitamin, mineral, and nutraceutical brands in a regulated market. Programs combine earned media, influencer and expert partnerships, content strategy, and Generative Engine Optimization.`},{q:`How do supplement brands stay compliant in marketing campaigns?`,a:`Campaigns balance regulatory compliance with clear storytelling. 5WPR builds science-backed narratives, manages influencer partnerships within supplement industry guidelines, and monitors compliance considerations to protect brand integrity.`},{q:`How can supplement brands appear in AI search results?`,a:`Buyers ask AI systems specific questions about health benefits, ingredients, and product comparisons. Structured ingredient explainers, schema-marked FAQs, and independent mentions from high-authority health publications increase the likelihood that a platform surfaces and cites the brand.`}],Xh={slug:`sustainability-pr-agency.cfm`,practiceKey:`corporate`,breadcrumb:`Sustainability PR`,h1:`Sustainability PR Agency`,heroLead:`A sustainability PR agency helps environmental technology companies, green consumer brands, and ESG-driven organizations communicate their climate and social commitments to investors, regulators, and consumers. 5W Public Relations (5WPR) builds verifiable narratives that earn media coverage and protect brands from greenwashing accusations.`,heroCtas:[{href:`/contactus/`,label:`Request a Sustainability PR Consultation`}],trustLabel:`Selected corporate clients`,caseHeading:`Cleantech and ESG case studies`,researchHeading:`Research behind our sustainability practice`,faqSlug:`sustainability-pr-agency.cfm`,faqHeading:`Sustainability PR Agency Frequently Asked Questions`,sections:[{heading:`Why Do Brands Need a Sustainability PR Agency?`,lead:`Regulatory bodies and consumers now demand verifiable proof of environmental claims.`,tone:`white`,body:[`Vague eco-friendly marketing no longer satisfies buyers or institutional investors. The Federal Trade Commission (FTC) Green Guides and the European Union Green Claims Directive actively penalize organizations for unsubstantiated environmental claims. 5WPR audits corporate messaging against these regulatory frameworks to ensure every public claim relies on auditable data.`,`We replace generic green messaging with specific operational realities. This discipline protects organizations while building durable credibility with the financial media.`,`As one of the sustainability PR firms and cleantech PR companies trusted by ESG-driven brands, 5W works as a sustainable PR agency in the practical sense: sustainable PR here means every public claim can be traced back to auditable operating data.`]},{heading:`5WPR Sustainability PR Services`,lead:`5WPR develops integrated communications programs spanning earned media, digital strategy, and AI visibility.`,tone:`dark`,bullets:[`Sustainability storytelling and ESG narrative development`,`Green media relations and cleantech PR campaigns`,`Greenwashing risk mitigation and claim verification`,`Stakeholder engagement and impact communication`,`ESG reporting amplification and thought leadership`,`Generative Engine Optimization (GEO) for sustainability brands`]},{heading:`Cleantech and Renewable Energy PR`,lead:`The clean energy transition requires translating complex technical innovations into accessible narratives for business media.`,tone:`white`,body:[`5WPR represents companies developing electric vehicles, battery storage systems, clean hydrogen, and sustainable aviation technology. Our team secures coverage in specialized publications like CleanTechnica and GreenBiz alongside mainstream outlets like The Wall Street Journal and Bloomberg.`,`For example, 5WPR has managed communications for electric aircraft developer Archer Aviation and electric vehicle manufacturer Electra Meccanica. We connect technical milestones to broader market trends, helping cleantech innovators attract capital and regulatory support through targeted [electric vehicle communications](/practice/automotive-marketing-agency.cfm).`,`While environmental PR covers advocacy and regulatory communications broadly, 5W's practice specializes in the ESG and cleantech side of that spectrum.`]},{heading:`ESG Reporting and Investor Communications`,lead:`Institutional investors use environmental, social, and governance (ESG) credentials as a material factor in capital allocation.`,tone:`muted`,body:[`Many organizations publish rigorous annual ESG reports that fail to reach external stakeholders. 5WPR transforms compliance documents into proactive media campaigns. We extract the strongest data points from sustainability reports and build executive commentary, data visualizations, and pitch angles around them.`,`Corporate sustainability PR sits alongside investor relations in most of these programs, and public relations sustainability work is ultimately judged by whether outside stakeholders can verify what the report claims.`,`This approach ensures that the organization's operational progress reaches ESG rating agencies, industry coalitions, and financial media. We integrate these announcements into broader [cleantech communications campaigns](/practice/case-study.cfm) to maximize visibility.`],callout:{kicker:`Cleantech and ESG case studies`,body:[`Documented programs across cleantech, consumer sustainability, and ESG finance.`],link:{href:`/practice/case-study.cfm`,label:`View Cleantech and ESG Case Studies`}}},{heading:`Greenwashing Risk Mitigation`,lead:`A single poorly substantiated environmental claim can trigger regulatory investigations and reputational damage.`,tone:`white`,body:[`5WPR treats greenwashing as a primary reputational threat. Before launching a sustainability campaign, our team audits the gap between what a company communicates and what it actually does. We identify claims that lack data and replace them with defensible operational facts.`,`This discipline protects consumer brands like zero-waste company Cleancult from investigative scrutiny while building durable credibility with retail partners.`]},{heading:`Consumer Sustainability Brands`,lead:`Brands in personal care, household products, food, and apparel must communicate genuine environmental credentials while competing in crowded retail environments.`,tone:`dark`,body:[`5WPR develops media strategies that translate sustainability commitments into earned coverage and consumer loyalty. We have represented leading zero-waste consumer brands including Cleancult. Our team positions these companies in consumer lifestyle media and retail trade publications.`,`We ensure that packaging claims, ingredient sourcing, and carbon footprint data are communicated clearly to sophisticated buyers. This precision helps consumer brands secure shelf space and build trust with environmentally conscious shoppers.`]},{heading:`Executive Thought Leadership in Sustainability`,lead:`Credibility in the sustainability sector flows through people as much as brands.`,tone:`white`,body:[`5WPR positions chief sustainability officers, purpose-driven founders, and environmental executives as recognized authorities in their specific fields. We secure speaking opportunities, byline placements, podcast appearances, and media profiles that establish executive voice.`,`Executive thought leadership is one of the highest-return communications investments available to organizations with genuine ESG commitments. When an executive articulates a clear vision for sustainable operations, it amplifies the overall credibility of the organization.`]},{heading:`Impact Investors and ESG Finance`,lead:`Investment firms with ESG mandates require communications that credibly represent their approach to portfolio companies and the financial media.`,tone:`muted`,body:[`5WPR combines financial communications experience with sustainability PR to support impact investors and ESG-focused funds. We translate complex investment criteria into clear narratives that attract capital and demonstrate market leadership.`,`Our team secures coverage for fund managers in top-tier financial media, positioning them as experts on the transition to a low-carbon economy.`]},{heading:`Nonprofits and Environmental Organizations`,lead:`Mission-driven nonprofits working on climate policy and conservation require communications that translate technical work into narratives that engage donors.`,tone:`white`,body:[`5WPR brings [nonprofit communications experience](/practice/5wpr-non-profit-public-relations-voices-against-brain-cancer.cfm) and deep sustainability media relationships to this category. We help environmental organizations influence policy conversations and attract funding through targeted media relations.`,`Our team positions nonprofit leaders as expert sources for journalists covering climate change, sustainable development, and environmental regulation.`]},{heading:`Generative Engine Optimization for Green Brands`,lead:`Buyers and investors now use AI platforms to research green brands and compare ESG commitments.`,tone:`dark`,body:[`By securing third-party validation in trusted environmental publications and 5WPR's own published research, including the [5W AI Visibility Index](/ai-visibility-index/), we build the machine-readable footprint that helps AI platforms recommend our clients when users ask about sustainable alternatives or cleantech leaders.`],callout
197:{kicker:`Why it works`,body:[`Large Language Models (LLMs) calculate answer probability across their training data, so independent mentions from high-authority domains raise the statistical likelihood a brand is retrieved. 5WPR runs Generative Engine Optimization programs to structure sustainability data so AI systems can read and cite it.`],link:{href:`/ai-visibility-index/`,label:`5W AI Visibility Index`}}},{heading:`Measuring Sustainability PR Impact`,lead:`5WPR measures sustainability PR outcomes against metrics that reflect genuine communication value.`,tone:`white`,body:[`We track share of voice in sustainability media, message pull-through in earned coverage, and executive visibility on ESG topics. Our team also monitors sentiment shifts among target audiences and GEO presence in AI-generated search results.`,`We do not measure success by clip count. We measure it by whether the right audiences receive the right messages and whether that communication contributes to business objectives.`]}],closing:{kicker:`Talk to the Sustainability Communications Team`,headline:`The demand for verifiable environmental action has permanently changed corporate communications. Brands that anchor their narratives in auditable data build durable trust with investors, regulators, and buyers.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Zh=[{q:`What does a sustainability PR agency do?`,a:`A sustainability PR agency develops and communicates environmental and social responsibility commitments to consumers, investors, and regulators. Services include ESG narrative development, green media relations, sustainability report amplification, and greenwashing risk assessment. The objective is to translate genuine operational progress into earned credibility.`},{q:`How does sustainability PR prevent greenwashing?`,a:`Greenwashing happens when a company makes vague or misleading environmental claims. A sustainability PR agency audits proposed messaging against operational reality and regulatory frameworks like the FTC Green Guides. The agency replaces generic adjectives with specific, verifiable data that withstands regulatory and journalistic scrutiny.`},{q:`Do you work with PR firms for sustainable companies?`,a:`5W works directly with sustainable companies rather than through other agencies, and often alongside in-house sustainability, legal, and investor relations teams. Programs cover ESG narrative development, cleantech and green media relations, claim substantiation review, and executive visibility for chief sustainability officers.`},{q:`What industries benefit most from ESG communications?`,a:`Sectors facing high environmental scrutiny see the highest return on sustainability communications. This includes consumer packaged goods, energy, automotive, financial services, and technology. Organizations in these fields must communicate their practices clearly to satisfy active consumer and investor demands.`}],Qh={slug:`aging-longevity-marketing-pr-agency.cfm`,practiceKey:`health`,breadcrumb:`Aging and Longevity PR`,h1:`Aging and Longevity PR and Marketing Agency`,heroLead:`An aging and longevity PR agency builds media visibility, credibility, and consumer trust for home healthcare providers, assisted living communities, and wellness technology companies, connecting them with older adults, caregivers, and families through earned media, digital content, and AI-search visibility strategies.`,heroCtas:[{href:`/contactus/`,label:`Request an Aging and Longevity PR Consultation`}],trustLabel:`Selected healthcare clients`,caseHeading:`Healthcare case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Weight Loss & Metabolic Health`,body:[`Eli Lilly owns the answer. Novo Nordisk is losing it.`],href:`/research/weight-loss-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/weight-loss-ai-visibility-index-2026-cover.webp`,coverAlt:`Weight Loss & Metabolic Health — 5WPR research report cover`},researchHeading:`Research behind our longevity practice`,faqSlug:`aging-longevity-marketing-pr-agency.cfm`,faqHeading:`Frequently asked questions about longevity PR`,sections:[{heading:`What is an aging and longevity PR agency?`,tone:`white`,body:[`5W Public Relations (5WPR) is an aging and longevity PR agency that helps home healthcare providers, assisted living communities, and wellness technology companies reach older adults and caregivers. We build visibility across traditional media, digital platforms, and generative AI search engines to establish brand authority in the senior care market.`]},{heading:`How buyers research aging and longevity services`,lead:`Caregivers and older adults evaluate senior care and wellness technology across multiple information sources before making a decision.`,tone:`muted`,body:[`The discovery process for aging-in-place innovations and assisted living facilities involves search engines, healthcare professionals, media coverage, and AI platforms. Families compare providers by researching reputations, reading patient stories, and asking generative search engines for recommendations. 5WPR develops communications programs that position aging and longevity brands across these exact touchpoints.`,`We work with specific organizations across the senior care sector. Our client roster includes: home healthcare providers, aging-in-place innovators, assisted living communities, and wellness technology companies.`]},{heading:`Public relations and marketing services for longevity brands`,lead:`5WPR integrates earned media, digital marketing, and reputation management to build trust for senior care organizations.`,tone:`dark`,cards:[{title:`Media relations and thought leadership`,body:`We secure coverage for aging and longevity brands in national news, health publications, and lifestyle media. Our team places executive profiles and manages product launches for wellness technology. We develop thought leadership campaigns that establish executives as authorities in senior care.`},{title:`Influencer and community engagement`,body:`Caregivers and wellness professionals heavily influence decisions in the longevity market. 5WPR connects aging-focused brands with advocates and longevity experts who communicate the value of new healthcare solutions. These partnerships help brands reach specific communities through authentic patient and caregiver voices.`},{title:`Search Engine Optimization (SEO) and Generative Engine Optimization (GEO)`,body:`Buyers use AI assistants to compare assisted living communities and aging-in-place technology. 5WPR builds structured content ecosystems, including whitepapers and patient stories, designed for retrieval by SEO and GEO platforms.`}]},{heading:`Measuring AI representation for longevity brands`,tone:`white`,body:[`We start by analyzing current AI representation through an [AI visibility audit](/practice/ai-visibility-audit/index.cfm) to identify citation gaps.`,`That work builds on 5WPR's own [Longevity AI Visibility Index](/research/longevity-ai-visibility-index/), which measures how often AI engines cite the top 25 longevity brands, and the firm's [Wellness & Longevity podcast citation research](/research/podcast-citation-effect/wellness/), which tracks how podcast mentions convert into AI citations for wellness and longevity brands. We optimize brand information so AI engines can accurately cite and recommend our clients using the same measurement framework.`]},{heading:`How has 5WPR built media authority for healthcare organizations?`,tone:`muted`,body:[`While 5WPR's named aging and longevity case studies are still developing, the firm has built comparable media-authority programs for other healthcare organizations facing the same core challenge: convert
197ing clinical credibility into national visibility.`,`For Newport Healthcare, a national mental health treatment provider, 5WPR secured 296 media placements and more than 6.1 billion media impressions, driving a 59 percent share of voice against competitors through executive thought leadership and patient-story placement in outlets including HuffPost and Yahoo News. For CURE Urgent Care, a regional walk-in clinic network, 5WPR built its founder into a recurring national media source on The View and CNN, generating 140 million media impressions and growing the brand into the second-largest urgent care provider in the tri-state area.`,`Both campaigns used the same playbook 5WPR applies to senior care and longevity clients: credentialed spokespeople, patient or caregiver storytelling, and sustained trend commentary rather than one-off announcements.`]},{heading:`Digital strategy and crisis management for senior care`,lead:`Healthcare and longevity brands require precise digital targeting and rigorous reputation protection.`,tone:`white`,cards:[{title:`Social media and paid digital strategy`,body:`We design social media programs that connect aging and longevity brands with audiences on platforms like Facebook and LinkedIn, combining organic storytelling with paid amplification, retargeting, and engagement campaigns that convert interest into meaningful action.`},{title:`Crisis communications and reputation management`,body:`Trust is the cornerstone of aging and longevity services. Our reputation management and crisis response strategies safeguard your brand against sensitive incidents, service challenges, or broader reputational risks, helping you respond with confidence, care, and transparency.`}]},{heading:`PR strategies for specific aging and longevity categories`,lead:`Different sectors within the longevity market require distinct communications approaches to reach their specific buyers.`,tone:`dark`,cards:[{title:`Home healthcare and assisted living PR`,body:`Families evaluating home healthcare providers or assisted living communities prioritize safety, staff qualifications, and patient dignity. 5WPR develops communications programs that highlight these core values through patient testimonials, facility announcements, and local media relations. We help care facilities build community trust before a family ever needs to make a placement decision.`},{title:`Aging-in-place technology marketing`,body:`Older adults increasingly prefer to remain in their own homes. Companies developing smart home modifications, remote monitoring systems, and mobility aids face the challenge of marketing to both the senior user and the adult child purchaser. 5WPR creates dual-audience campaigns that explain the technical benefits to caregivers while emphasizing independence for the older adult.`},{title:`Wellness technology and longevity science`,body:`The longevity science sector includes supplements, diagnostic tools, and preventative health platforms. These brands must communicate complex scientific claims without violating regulatory guidelines. 5WPR works with medical advisory boards and industry experts to translate clinical data into accessible consumer narratives that secure coverage in top-tier health and lifestyle media.`,extra:`5WPR's own longevity research finds that AI engines concentrate citations on a small number of brands in this category, which is why documented, structured claims matter more here than in less-scrutinized verticals ([Longevity AI Visibility Index](/research/longevity-ai-visibility-index/)).`}]},{heading:`Connecting with the aging and wellness technology ecosystem`,tone:`white`,body:[`Longevity brands build credibility by actively participating in industry events and wellness summits. 5WPR manages event marketing for companies attending aging technology conferences and healthcare summits. We handle messaging, media amplification, and partner engagement to help longevity brands maximize their presence among key stakeholders. This approach aligns closely with our work as a [menopause and women's health PR agency](/practice/menopause-womens-health-marketing-pr-agency.cfm) and our broader [health & wellness PR](/practice/healthcareprfirm.cfm) practice, where specialized messaging reaches highly specific patient demographics.`]},{heading:`Generative Engine Optimization (GEO) for longevity brands`,tone:`dark`,body:[`Generative AI platforms synthesize information from across the internet to answer specific questions about senior care. When families ask AI systems for the best home healthcare providers or wellness technologies, the engines retrieve data from authoritative news articles, structured website content, and expert reviews. 5WPR improves Citation Share by publishing clear, machine-readable information across high-authority domains.`],callout:{kicker:`How AI answers get built`,body:[`AI search systems rely on a mix of authoritative sources, structured information, and corroborating third-party references when generating answers. Building consistent, well-sourced information about a brand across trusted domains can improve its visibility and likelihood of being cited in relevant AI-generated answers, a pattern 5WPR tracks directly in its own [Longevity AI Visibility Index](/research/longevity-ai-visibility-index/).`],link:{href:`/research/longevity-ai-visibility-index/`,label:`Longevity AI Visibility Index`}}}],closing:{kicker:`Talk to the Aging and Longevity Team`,headline:`5WPR helps aging and longevity brands build the authority required to connect with caregivers and older adults.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},$h=[{q:`What is an aging and longevity PR agency?`,a:`An aging and longevity PR agency builds media visibility, credibility, and consumer trust for home healthcare providers, assisted living communities, and wellness technology companies, connecting them with older adults, caregivers, and families through earned media, digital content, and AI-search visibility strategies.`},{q:`How does PR help assisted living communities?`,a:`Public relations builds third-party credibility through local and national media coverage. When families research an assisted living community, positive news stories about the facility's staff, programs, and patient care provide independent validation that advertising cannot replicate.`},{q:`What is the difference between SEO and GEO for senior care?`,a:`Search Engine Optimization (SEO) focuses on ranking a website in traditional search engine results pages. Generative Engine Optimization (GEO) focuses on optimizing brand information so AI platforms like ChatGPT and Perplexity cite the organization when users ask complex questions about senior care options.`},{q:`How do influencers work in the aging market?`,a:`Influencer marketing in the longevity space relies on credentialed experts, patient advocates, and vocal caregivers rather than traditional lifestyle creators. 5WPR partners with these authoritative voices to 
197share personal experiences with home healthcare services or wellness technologies, reaching highly engaged niche audiences.`},{q:`How do I choose a senior care PR agency?`,a:`Look for an agency with documented healthcare media relations results, not just consumer PR experience, since healthcare coverage requires navigating clinical accuracy, patient privacy, and regulatory sensitivity alongside standard media relations. Ask for named case studies with measurable results, not just a client list.`},{q:`What should a longevity PR campaign include?`,a:`A longevity PR campaign should include media relations targeting health and lifestyle outlets, credentialed spokespeople or clinical experts, patient or caregiver storytelling, a structured content program for search and AI visibility, and a measurement plan tracking share of voice and message pull-through, not just impressions.`}],eg={slug:`beauty-devices-tools-marketing-pr-agency.cfm`,practiceKey:`beauty`,breadcrumb:`Beauty Devices & Tools`,h1:`Beauty Devices PR Agency and Marketing Services`,heroLead:`A beauty devices PR agency builds visibility and credibility for at-home skincare tools, hair styling devices, and grooming technology. 5W Public Relations (5WPR) integrates earned media, creator demonstrations, and Generative Engine Optimization (GEO) to help beauty technology brands educate consumers and drive product adoption.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected beauty clients`,caseHeading:`Beauty device case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The Beauty AI Endorsement Index 2026`,body:[`Volume IV of the 5W × Talent Resources research series. Six brands own the AI beauty answer. 22% of recommendations are fabricated. And the one-year endorsement contract is aging out of the game.`],href:`/ai-visibility-index/the-beauty-ai-endorsement-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/wp-content/uploads/2026/07/the-beauty-ai-endorsement-index-2026-og.webp`,coverAlt:`The Beauty AI Endorsement Index 2026 — 5WPR research report cover`},researchHeading:`Research behind our beauty practice`,faqSlug:`beauty-devices-tools-marketing-pr-agency.cfm`,faqHeading:`Frequently Asked Questions About Beauty Device PR`,sections:[{heading:`How Do Beauty Device Brands Build Visibility?`,tone:`white`,body:[`Consumers research high-ticket beauty tools before purchasing. They compare specifications, read reviews, and watch video demonstrations to understand how a product performs and whether it fits their needs.`,`5WPR supports [consumer beauty](/practice/consumer-beauty.cfm) brands by developing communications programs that place product information where buyers research. This includes securing reviews in technology and lifestyle publications, coordinating video tutorials with beauty professionals, and structuring product data for search engines.`,`5WPR evaluates how beauty-device brands and competitors appear across AI-powered search experiences, identifies frequently cited sources and information gaps, and uses those findings to inform earned media and content strategy.`]},{heading:`The Role of Earned Media in Beauty Technology`,tone:`muted`,body:[`Earned media establishes independent credibility for new beauty devices. When a technology reporter or beauty editor reviews a product, they provide third-party validation that brand-owned content cannot replicate.`,`5WPR targets specific media verticals based on the device's function. A new laser hair removal tool requires placement in dermatological and beauty publications. A smart mirror or connected skincare device needs coverage in consumer technology outlets.`,`We coordinate interviews with brand founders and product engineers. These conversations allow the people behind the technology to explain the research and development process.`]},{heading:`Structuring Product Launches for Beauty Tools`,tone:`white`,body:[`Launching a beauty device requires a phased communications approach. 5WPR builds go-to-market strategies that sequence media embargoes, creator content, and digital advertising.`,`We begin with targeted press outreach under embargo. This ensures that in-depth reviews and feature articles publish on launch day.`,`The agency coordinates influencer product seeding weeks before the public release. Creators have time to test the device, record their routines, and prepare their videos for the launch window.`,`Experiential activations allow media and consumers to test the device in person. 5WPR organizes pop-up events and retail demonstrations that generate immediate social media sharing.`]},{heading:`Managing Reputation and Consumer Trust`,tone:`dark`,body:[`Consumers expect the beauty devices they use on their skin and hair to perform safely and deliver consistent results. A single negative review or misunderstood technical specification can damage a product's reputation.`,`5WPR implements reputation management protocols that monitor customer feedback across retail platforms and s
197ocial media. We identify recurring concerns and help brands address them through updated educational content.`,`When regulatory scrutiny or performance questions arise, our crisis communications team develops rapid-response messaging. We prepare holding statements, executive talking points, and customer service guidelines.`,`Proactive education prevents many reputational issues. By publishing clear instructions, realistic outcome timelines, and contraindication warnings, brands set accurate consumer expectations.`]},{heading:`Scaling Educational Content for Search Visibility`,tone:`white`,body:[`Beauty device buyers ask specific questions during their research process. They search for comparisons between competing tools, maintenance instructions, and safety guidelines.`,`5WPR develops content strategies that answer these exact queries. We write comprehensive buying guides, troubleshooting articles, and ingredient compatibility charts.`,`This educational content lives on the brand's website and serves as a resource for both consumers and search engines. When a brand provides the thorough answer to a technical question, search algorithms prioritize that page in the results.`],callout:{kicker:`Case studies`,body:[`Documented beauty device and tools programs across hair styling, skincare devices, and medical aesthetic technology.`],link:{href:`/practice/case-study.cfm`,label:`View Case Studies`}}},{heading:`Beauty Devices Marketing and PR Services`,lead:`5WPR provides integrated communications services for beauty technology, grooming tools, and at-home aesthetic devices.`,tone:`muted`,cards:[{title:`Media Relations and Product Education`,body:`We secure earned media coverage across beauty, lifestyle, technology, and business publications. Our media strategies focus on product launches, innovation narratives, and expert validation.`,extra:`We translate technical specifications into consumer benefits. This helps brands earn credibility while driving awareness across different buyer demographics.`},{title:`Influencer and Creator Demonstrations`,body:`Consumers require demonstrations in the beauty device category. 5WPR connects brands with creators, stylists, and grooming experts who record product usage and routines.`,extra:`These videos run across TikTok, Instagram, and YouTube. Creator demonstrations show consumers how products are used, what features they offer, and what users can reasonably expect from the experience.`},{title:`Generative Engine Optimization (GEO)`,body:`Buyers ask generative AI platforms to compare beauty devices and explain technical features. 5WPR develops Search Engine Optimization (SEO) and GEO strategies to answer these specific questions.`,extra:`We publish comparison guides, frequently asked questions, and expert-led resources. This structures the brand's information so Answer Engine Optimization (AEO) systems can retrieve and cite the product.`},{title:`Social Media and Paid Digital Campaigns`,body:`Our [beauty digital marketing agency](/practice/beauty-digital-marketing-agency.cfm) team runs paid media programs that distribute visually compelling product content. We combine organic storytelling with paid amplification and creator whitelisting.`,extra:`These campaigns use retargeting to reach consumers who have previously researched the device. This approach supports e-commerce conversions by keeping the product visible during the consideration phase.`}]},{heading:`AI Visibility for Beauty Technology`,tone:`dark`,body:[`Generative AI platforms synthesize information from multiple sources to answer consumer questions about beauty devices. AI-generated answers about beauty devices may draw on information published across product pages, media coverage, creator content, and other accessible sources. Consistent product information across these surfaces can help AI systems interpret a device and its claims more accurately. 5WPR audits these AI-generated answers to identify which sources influence the output, then optimizes the brand's digital footprint to strengthen how the device is represented in generative search environments.`]},{heading:`Who Are 5WPR's Beauty Device Clients?`,tone:`white`,body:[`5WPR represents brands across hair styling tools, skincare devices, and medical aesthetic technology. For [Wavytalk](/practice/wavytalk-new.cfm), a viral hair tools brand that first gained traction on TikTok Shop, 5WPR secured an exclusive partnership with celebrity hairstylist Andrew Fitzsimons, styled talent for the Met Gala and the GRAMMYs, and landed national TV placements on Good Morning America and The TODAY Show. The campaign generated over 643 media and influencer placements and 27.3 billion impressions, won three industry awards, and grew Wavytalk's category Share of Voice by 36% year-over-year, from last place to #1.`,`For [Medicube](/practice/medicube.cfm), the K-beauty brand behind the Booster-H and Booster PRO skincare devices, 5WPR built an influencer and celebrity program that included Hailey Bieber and Khloe Kardashian, securing over 420 brand and product placements and eight editorial award wins in outlets including Marie Claire, Harper's Bazaar, and Cosmopolitan.`,`For [Lumenis](/practice/lumenis.cfm), a global medical and aesthetic device company known for laser, IPL, and radiofrequency technology, 5WPR built an expert- and celebrity-driven awareness campaign that generated more than 22,000 placements and 3.4 billion impressions over two years, growing the brand's social following by 170.5% in a single year.`]}],closing:{kicker:`Talk to the Beauty Team`,headline:`5WPR helps beauty device brands build the visibility and credibility that support consumer adoption.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that helps brands get cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},tg=[{q:`What is a beauty devices PR agency?`,a:`A beauty devices PR agency manages communications for brands that manufacture skincare tools, hair styling devices, and grooming technology. The agency secures media coverage, coordinates creator demonstrations, and optimizes digital content to educate consumers and drive product adoption.`},{q:`How do creators help market beauty tools?`,a:`Creator demonstrations show consumers how products are used, what features they offer, and what users can reasonably expect from the experience. By recording tutorials and routines, creators help consumers understand a product's role and proper usage.`},{q:`Why is GEO important for beauty technology?`,a:`Consumers use AI platforms to research high-ticket beauty tools and compare specifications. GEO helps structure a brand's technical information, safety data, and product benef
197its so AI systems can retrieve and cite them.`},{q:`Which beauty device brands has 5WPR represented?`,a:`5WPR's beauty device and tools clients include Wavytalk, a viral hair styling tools brand; Medicube, the K-beauty skincare device brand behind the Booster-H and Booster PRO; and Lumenis, a global medical and aesthetic device company known for laser, IPL, and radiofrequency technology.`}],ng={slug:`consumer-technology.cfm`,practiceKey:`technology`,breadcrumb:`Consumer Technology`,h1:`Consumer Technology PR and AI Communications`,heroLead:`5W Public Relations (5WPR) develops earned media, influencer relations, and Generative Engine Optimization (GEO) programs for consumer technology brands. Ranked among the top 15 technology public relations practices in the United States by O'Dwyer's since 2017, the agency helps hardware, software, and connected device companies build visibility across traditional publications and AI-generated answers.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected technology clients`,caseHeading:`Consumer technology case studies`,researchHeading:`Research behind our technology practice`,faqSlug:`consumer-technology.cfm`,faqHeading:`Consumer Technology PR FAQs`,sections:[{heading:`How Do Buyers Discover Consumer Technology?`,lead:`Consumer technology discovery now spans traditional media, creator platforms, and AI assistants.`,tone:`white`,body:[`Buyers research connected devices, applications, and hardware by reading reviews, watching creator demonstrations, and asking generative AI platforms for recommendations. A brand needs a presence across all these surfaces to influence consideration. 5WPR integrates public relations with digital marketing to strengthen consumer technology companies' visibility across traditional and AI-powered discovery.`,`The agency supports clients ranging from early-stage startups to established household names. Programs focus on securing product reviews, placing executive commentary, and building authoritative third-party coverage that can contribute to how brands are represented across search and AI-generated answers.`,`Traditional search marketing focuses on website rankings, while Answer Engine Optimization (AEO) and GEO focus on the external information environment. AI-generated answers may draw on information published across brand websites, media coverage, creator content, retailers and other accessible sources. Consistent product information across these surfaces can help search systems interpret a brand and its products more accurately. 5WPR manages these diverse information sources so the brand narrative remains consistent across all retrieval points.`]},{heading:`What Is Generative Engine Optimization (GEO) for Tech?`,lead:`Generative Engine Optimization is the practice of structuring brand information so AI platforms can retrieve and cite it.`,tone:`dark`,body:[`When a buyer asks an AI assistant to compare smart home devices or recommend a stock media platform, the engine synthesizes information from authoritative digital sources. 5WPR builds the machine-readable footprint that helps these systems understand a consumer technology product. This involves clarifying entity data, securing high-authority media placements, and publishing structured technical content.`,`A citation builds authority, while a recommendation influences consideration. 5WPR targets both outcomes. 5WPR audits AI-generated answers for relevant category queries, identifies the publications and sources being surfaced or cited, compares client visibility with competitors, and uses those findings to inform earned-media and content strategy.`]},{heading:`What Consumer Technology PR Services Does 5WPR Offer?`,lead:`5WPR designs communications programs based on a brand's product roadmap, target audience, and competitive environment.`,tone:`white`,body:[`The technology division brings together practitioners with over 30 years of combined experience in the field. The team executes campaigns that connect consumer technology companies with journalists, influencers, and industry anal
197ysts. The agency evaluates consumer trends and develops messaging for current events to insert brands into relevant news cycles.`,`5WPR leverages trusted connections across broadcast, print, and digital media to secure placements that generate billions of impressions. The team strategizes promotional concepts that launch unknown brands into the mainstream while sustaining visibility for familiar products.`],bullets:[`Media relations and product reviews`,`Influencer relations and creator programs`,`Generative Engine Optimization (GEO)`,`Executive profiling and thought leadership`,`Product seeding and one-on-one demos`,`Conference and event public relations`,`Digital marketing and content development`,`Media training and executive speaking engagements`],callout:{kicker:`Case studies`,body:[`Documented consumer technology programs across connected devices, applications, and digital platforms.`],link:{href:`/practice/case-study.cfm`,label:`View Consumer Technology Case Studies`}}},{heading:`Who Are 5WPR's Consumer Technology Clients?`,lead:`5WPR represents connected device manufacturers, consumer applications, and digital platforms.`,tone:`muted`,body:[`The agency has executed campaigns for VIZIO, SodaStream, and SmartThings. The team also supports disruptive digital platforms, including the airline passenger rights application Airhelp, the email system Blix, the immigrant community platform Homeis, and the stock media company Storyblocks.`,`5WPR applies this technology expertise alongside broader [consumer public relations](/practice/consumercfm.cfm) strategies to reach buyers. For example, the agency helped the zero-commission brokerage Webull build market awareness, and supported Zeta Global, the AI-powered marketing cloud founded by David A. Steinberg. The agency's portfolio also includes Ampersand, a technology and data company recognized as a leading source of information in its category.`],callout:{kicker:`Client testimonials`,body:[`“Operate with intelligence, move at hyper speed, and execute with precision.”`,`David Glickman, Founder and CEO of Ultra Mobile and Primo Connect`,`“This agency is a partner that shares our unique approach to business.”`,`Poorya Sabounchi, COO of ixLayer`]}},{heading:`How Does 5WPR Measure the Impact of Technology Communications?`,lead:`Visibility requires consistent execution across earned media, search engines, and AI platforms.`,tone:`white`,body:[`Securing a single product review or AI citation does not guarantee a sale. 5WPR builds sustained programs that surround the buyer with credible information at every stage of research. By combining traditional media relations with technical content optimization, the agency helps consumer technology brands establish lasting category authority. Reviewing [consumer product case studies](/practice/krups-consumerpr-case-study.cfm) demonstrates how this integrated approach drives measurable awareness.`]}],closing:{kicker:`Talk to the Technology Team`,headline:`5WPR connects consumer technology companies with the media, creators, and AI platforms that drive product discovery.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that helps brands get cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},rg=[{q:`What does a consumer technology PR agency do?`,a:`A consumer technology PR agency secures media coverage, manages product reviews, and builds brand authority. 5WPR extends this by incorporating Generative Engine Optimization to help brands be represented in AI-generated answers.`},{q:`How do AI platforms change consumer tech discovery?`,a:`Buyers now ask AI assistants to compare products and recommend solutions instead of reading static web pages. Brands benefit from authoritative third-party coverage that can be surfaced in these AI-generated answers.`},{q:`Does 5WPR work with early-stage hardware startups?`,a:`Yes. 5WPR works with companies ranging from early-stage startups to established brands like VIZIO and SodaStream, tailoring the communications strategy to the company's growth stage and market position.`},{q:`What does a consumer technology PR agency cost?`,a:`Consumer technology PR programs are typically structured as a monthly retainer or a project-based scope, sized to the brand's launch calendar, media targets, and GEO needs. 5WPR scopes each program individually after an initial consultation rather than pricing by a flat rate.`},{q:`How do you launch a consumer technology product with PR?`,a:`A typical launch sequences targeted press outreach under embargo, influencer and creator product seeding ahead of release, and experiential activations that let media and consumers test the product firsthand, timed so coverage and reviews are ready to publish on launch day.`},{q:`How does 5WPR get technology products reviewed?`,a:`5WPR pitches products directly to reporters and editors at relevant technology, business, and lifestyle publications, coordinates review units and briefings, and times outreach around launch embargoes so in-depth reviews and feature coverage are ready to publish on release day.`},{q:`Which consumer technology brands has 5WPR represented?`,a:`5WPR's consumer technology clients include VIZIO, SodaStream, SmartThings, Airhelp, Blix, Homeis, Storyblocks, Webull, Zeta Global, and Ampersand.`}
197,{q:`How does GEO differ from traditional SEO for technology companies?`,a:`Traditional SEO focuses on a brand's own website ranking in search results. Generative Engine Optimization focuses on the broader information environment, the reviews, creator content, and structured data that AI platforms draw on when generating an answer, so it centers on earned media and third-party coverage rather than on-site optimization alone.`}],ig={slug:`food-and-beverage-marketing-agency.cfm`,practiceKey:`foodandbeverage`,breadcrumb:`Food and Beverage Marketing`,h1:`Food and Beverage Marketing Agency`,heroLead:`5W Public Relations (5WPR) is a food and beverage marketing agency that integrates digital strategy, influencer partnerships, and AI visibility programs. We build the authoritative information and third-party signals required to drive consumer consideration across search engines, social platforms, and generative AI answer engines.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected food and beverage clients`,caseHeading:`Food and beverage case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Functional Beverages`,body:[`Olipop kills Poppi. Liquid Death owns energy. Celsius outscores Red Bull.`],href:`/ai-visibility-index/functional-beverages-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/functional-beverages-ai-visibility-index-2026-cover.webp`,coverAlt:`Functional Beverages — 5WPR research report cover`},researchHeading:`Research behind our food and beverage practice`,faqSlug:`food-and-beverage-marketing-agency.cfm`,faqHeading:`Frequently Asked Questions About Food and Beverage Marketing`,sections:[{heading:`Food and Beverage Digital Marketing Services`,lead:`Food and beverage consumers discover products across multiple digital channels before making a purchase.`,tone:`white`,body:[`Food and beverage marketing requires a connected approach to digital discovery. A shopper might read a product review on a blog, see a recipe demonstration on TikTok, and ask an AI assistant to compare nutritional labels. 5WPR develops campaigns that position brands clearly across all these touchpoints.`,`5WPR develops integrated marketing programs designed for this multi-platform discovery process. Running earned media, social media, and digital marketing together ensures that media coverage, influencer content, and digital advertising all reinforce the same core brand message. We focus on creating clear, machine-readable digital footprints that help both human shoppers and AI platforms understand the product.`,`We have executed campaigns for Whole Foods Market, SodaStream, Anheuser-Busch, Evian Natural Spring Water, Hint Water, and &pizza. Each program is built around the specific retail strategy and target audience of the brand.`]},{heading:`How AI Changes Food and Beverage Discovery`,lead:`Consumers use AI platforms to compare ingredients, find alternatives, and discover new food and beverage brands.`,tone:`dark`,body:[`Generative AI systems synthesize information from recipes, reviews, retail listings, and brand websites to answer specific consumer questions. A user might ask an AI platform:`],bullets:[`What is the best low-sugar sparkling water?`,`Which gluten-free snacks are recommended for kids?`,`What are good alternatives to traditional energy drinks?`,`Which olive oil brands are sustainably sourced?`],callout:{kicker:`Why this matters`,body:[`AI platforms retrieve information from the broader digital ecosystem to formulate these answers. If a brand lacks a clear digital presence, the AI will recommend a competitor.`,`5WPR helps food and beverage companies strengthen their information environment. We build authoritative content and structured data that make product details, ingredient lists, and brand attributes machine-readable. This approach increases the likelihood that a brand is cited or recommended when shoppers research categories.`]}},{heading:`Generative Engine Optimization (GEO) for Food Brands`,lead:`Generative Engine Optimization (GEO) 
197improves how clearly a brand is represented in AI-generated answers.`,tone:`white`,body:[`Traditional Search Engine Optimization (SEO) focuses on ranking a website link in search results. GEO focuses on visibility within the answers generated by ChatGPT, Claude, Perplexity, and Google AI Overviews. 5WPR conducts citation share audits to determine which sources influence AI answers about specific food and beverage categories. We identify where competitors appear and where critical product information is missing from the AI ecosystem.`,`**Why it works:** Large Language Models (LLMs) calculate answer probability based on the frequency and proximity of entities across their training and retrieval data. When independent, high-authority domains repeatedly associate a beverage brand with a specific attribute like organic or sugar-free, the statistical likelihood of that brand being retrieved increases.`]},{heading:`Integrated Food and Beverage Marketing Capabilities`,lead:`5WPR builds customized digital marketing programs based on each brand's retail strategy, target audience, and competitive environment.`,tone:`muted`,layout:`centered`,cards:[{title:`Social Media Strategy and Community Management`,body:`We develop platform-specific content for Instagram, Facebook, and TikTok. Our teams manage online communities, highlight product attributes, and create visual content that drives engagement. We connect social media activity directly to e-commerce and retail objectives. A strong social presence also provides the social proof that consumers look for when evaluating a new food product.`},{title:`Influencer Marketing and Creator Partnerships`,body:`Creators provide real-world product demonstrations and third-party validation. 5WPR manages an extensive network of food bloggers, chefs, and lifestyle influencers. We handle creator identification, product seeding, contract negotiations, and campaign measurement. Influencer content generates immediate awareness and creates digital assets that brands can use across paid media campaigns.`},{title:`SEO and Content Optimization`,body:`Organic search visibility requires technical website optimization and authoritative content. We optimize brand websites, recipes, and product pages to ensure search engines can crawl and index the information. This helps potential customers discover products during high-intent searches. We structure recipe data using schema markup so search engines can display cooking times, ingredients, and reviews directly in search results.`},{title:`Paid Media and Performance Marketing`,body:`Data-driven paid media campaigns maximize Return on Investment (ROI) across Google, Meta, and programmatic platforms. We design targeted advertising and retargeting strategies that reach specific consumer demographics. Every campaign is tracked and optimized for performance. We adjust ad spend based on which channels drive the highest conversion rates for online grocery or direct-to-consumer sales.`},{title:`E-commerce Marketing and Conversion Optimization`,body:`Online grocery and direct-to-consumer beverage sales require specialized e-commerce strategies. We optimize digital storefronts across brand websites, Amazon, and third-party grocery delivery platforms. Our strategies focus on increasing traffic, improving the user experience, and driving sales conversions. We ensure product descriptions are clear, accurate, and optimized for both search engines and retail algorithms.`,links:[{href:`/practice/case-study.cfm`,label:`View Case Studies`}]}]},{heading:`Food and Beverage Marketing Case Studies and Results`,lead:`5WPR combines public relations and digital marketing to deliver measurable growth for food and beverage clients.`,tone:`white`,body:[`Our client roster includes Grolsch Premium Lager, Santa Margherita, Tropical Smoothie Café, Loacker, 1800 Tequila, Samuel Adams, Dos Caminos, and Tavern on the Green. We integrate our digital marketing services with our [food and beverage PR programs](/practice/foodpr-beveragepr.cfm) to maximize brand visibility. This integrated work ensures that media coverage, influencer content, and digital advertising all reinfor
197ce the same core brand message.`,`5WPR supported Talking Rain Beverage Company and its Sparkling Ice brand through a period of major expansion. We developed campaigns that helped establish the brand in a competitive beverage category. Read more about our work with [Sparkling Ice](/practice/food-and-beverage-pr/sparkling-ice.cfm).`,`We also execute targeted campaigns for specialty food brands. Our work with [Gaea olive oil](/practice/food-and-beverage-pr/gaea.cfm) demonstrates our ability to build visibility for international products entering the US market.`],callout:{kicker:`Client testimonials`,body:[`“Our partnership with 5WPR over the past seven years and combined focus on Sparkling ICE has helped Talking Rain become one of the fastest growing beverage companies in the U.S. The talented, passionate, hard-working 5W PR team has exceeded our expectations.”`,`Nina Morrison, Vice President, Talking Rain Beverage Co., Makers of Sparkling ICE`,`“5W Public Relations was able to provide an in-depth marketing plan for the client. They also created bi-weekly progress reports and held discussions for plans moving forward. Their PR impact helped in growing the business by over 200% in the e-commerce area.”`,`Carrie Riby, Director of Marketing, Black Button Distilling`]}},{heading:`Measure your own AI visibility`,lead:`Brand leaders ask how digital marketing and AI visibility integrate with traditional communications.`,tone:`muted`,body:[`Run a free [AI Citation Audit](/ai-citation-audit/) to see where your food and beverage brand stands against competitors across ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.`]}],closing:{kicker:`Talk to the Food and Beverage Team`,headline:`5WPR develops digital marketing strategies that connect food and beverage brands with consumers.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Request a Consultation`}]}},ag=[{q:`What is Generative Engine Optimization for food brands?`,a:`Generative Engine Optimization (GEO) is the process of improving a brand's visibility in AI-generated answers. It involves publishing authoritative content, structuring product data, and earning third-party mentions so AI platforms can accurately cite the brand.`},{q:`How does influencer marketing drive beverage sales?`,a:`Influencers provide visual proof of product quality and usage. When a creator demonstrates a cocktail recipe or reviews a new beverage, their audience gains product context that drives consideration and retail trial.`},{q:`How do you measure food and beverage marketing success?`,a:`We track website traffic, social media engagement, e-commerce conversions, and AI citation share. Our analytics team provides regular reporting to ensure campaigns meet specific business objectives.`}],og={slug:`healthcareprfirm.cfm`,practiceKey:`health`,breadcrumb:`Healthcare and Wellness PR`,h1:`Healthcare and Wellness PR Agency`,heroLead:`5W Public Relations is a healthcare and wellness PR agency that builds visibility and credibility for medical, digital health, and consumer wellness brands. The firm develops integrated communications programs that connect healthcare companies with consumers, medical professionals, and the information systems that shape patient discovery.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected healthcare clients`,caseHeading:`Healthcare and wellness case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The 50-State Healthcare AI Map`,body:[`HCA Healthcare runs 187 hospitals across 20 states. AI cites it first in 0. A 50-state map of which hospital AI recommends in each state — Volume 5 of the 5W AI Map of America.`],href:`/research/healthcare-ai-map-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/healthcare-ai-map-2026-cover.webp`,coverAlt:`The 50-State Healthcare AI Map — 5WPR research report cover`},researchHeading:`Research behind our healthcare practice`,faqSlug:`healthcareprfirm.cfm`,faqHeading:`Frequently asked questions about healthcare PR`,sections:[{heading:`How do healthcare brands navigate complex communications?`,lead:`Regulatory requirements and clinical data shape how healthcare companies communicate with the public.`,tone:`white`,body:[`5WPR translates clinical data into newsworthy stories that engage consumer and health publications. The agency maintains daily contact with medical media and regional health experts to ensure accurate reporting. Understanding regulatory constraints allows the team to build campaigns that meet compliance standards while reaching target audiences.`,`5W's global healthcare PR reach spans pharma, biotech, med-tech, and wellness brands across North America and Europe.`,`Healthcare communications require a balance of medical accuracy and consumer accessibility. The firm supports the Allergy & Asthma Network, a nonprofit organization working to end needless suffering and death through education and advocacy. By connecting leading medical professionals with targeted media outlets, the agency adds authoritative voices to client stories.`]}
197,{heading:`What health and wellness categories does 5WPR support?`,lead:`The agency supports companies across traditional medical services, digital health platforms, and consumer wellness products.`,tone:`dark`,body:[`Consumer behavior shifts dictate how healthcare brands reach their audiences. 5WPR manages communications for established categories including diet, weight loss, vitamins, sports nutrition, and nutritional supplements.`,`The practice also handles emerging sectors that intersect with the wellness macro trend. This includes digital health devices, biofeedback technologies, telehealth platforms, treatment centers, sexual wellness, Cannabidiol (CBD), and psychedelics. The agency understands the intersection of health and beauty products, managing campaigns that highlight both clinical efficacy and consumer appeal.`],bullets:[`Telehealth and digital health platforms`,`Rehabilitation and treatment centers`,`Vitamins and nutritional supplements`,`Biofeedback and stress reduction technologies`,`Medical devices and clinical data communications`],callout:{kicker:`Client work`,body:[`The firm works with global leaders like Lansinoh Laboratories, supporting the company with communications for breastfeeding products and maternal education.`]}},{heading:`Which healthcare clients does the agency represent?`,lead:`5WPR represents global health corporations, specialized treatment centers, and pioneering physicians.`,tone:`white`,body:[`The agency builds targeted campaigns for specific healthcare missions. Client experience includes GNC, a global leader in performance and diet solutions, and Newport Academy, a rehabilitation center for teens and young adults dealing with mental health and substance use issues.`,`Past and present clients also include Medifast and the Pritikin Longevity Center. The agency documents specific campaign outcomes, such as the [USANA health and wellness PR program](/practice/healthcareprfirm-usana-casestudy.cfm), to demonstrate how targeted media relations drive brand visibility and educate consumers. This documentation helps specialized centers succeed in their mission to raise awareness and decrease the stigma of mental health issues.`],callout:{kicker:`Client testimonial`,body:[`“5W PR has been an incredible partner for Newport Healthcare for many years and continues to exceed our expectations. Their media expertise is outstanding, and the team does an exemplary job understanding the intricacies and sensitivities of our field while helping us succeed in our mission to raise awareness and decrease the stigma of mental health issues.”`,`Kristen Hayes, Sr. Director of Communications, Newport Healthcare`],link:{href:`/practice/case-study.cfm`,label:`View Case Studies`}}},{heading:`Life Sciences and Biotech PR`,lead:`Life sciences companies communicate against a backdrop of trial milestones, regulatory review, and investor scrutiny.`,tone:`white`,body:[`5WPR supports biotech, pharma, and med-tech organizations through the announcements that define their public record: preclinical and clinical trial milestones, regulatory submissions and clearances, financing rounds, partnership news, and commercial launch. The team writes to what the data actually supports and coordinates messaging with clinical, legal, and regulatory reviewers before anything reaches a reporter.`,`Life sciences and biotech PR also means preparing scientific founders and chief medical officers to explain mechanism, endpoints, and patient impact to journalists who cover both the science and the market. That preparation is what turns a dense trial readout into coverage that investors, physicians, and patients can follow.`]},{heading:`How does AI search impact healthcare visibility?`,lead:`Patients and consumers ask generative AI platforms specific medical and wellness questions before consulting traditional search engines.`,tone:`muted`,body:[`AI platforms synthesize information from medical institutions, consumer brands, and news outlets to answer health queries. 5WPR integrates Generative Engine Optimization (GEO) into healthcare communications to improve how brands are cited in AI responses.`,`This process involves structuring clinical data, clarifying entity relationships, and generating authoritative coverage that AI models trust. AI systems evaluate the credibility of health information based on the sources they retrieve. 5WPR analyzes these retrieval patterns in research like the [Creators & AI Visibility](/research/creators-ai-visibility/#vertical-health) audit, which tracks how medical institutions and physician-led content surface in AI answers.`,`**Why it works:** 5WPR's Creators & AI Visibility audit (May 2026) found that in health and wellness queries, medical institutions and direct-to-consumer education hubs account for 41% of the sources AI engines cite, while physician-led YouTube channels, longevity specialists, and wearables reviewers were largely absent from those same answers. Brands that publish structured, institution-grade health content are the ones AI systems currently cite most.`,`The account team acts as a hands-on strategic partner for health brands, working with professionalism to achieve measurable results. This approach ensures that every campaign aligns with the client's broader business objectives.`],callout:{kicker:`Client testimonial`,body:[`“5W is an integral and invaluable part of our marketing team. Our 5W account team is not only endlessly proactive, they work with an extraordinary degree of professionalism and care. 5W is a powerful force multiplier for us and we feel fortunate to have a team that works with creative flow and grace to achieve brilliant results.”`,`Tracy Oliver, Director, Marketing Communications, Rainbow Light® Nutritional Systems`]}}],closing:{kicker:`Talk to the Healthcare Team`,headline:`5WPR builds the media presence, expert endorsements, and machine-readable authority that healthcare brands need to reach their audiences.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Talk to the Healthcare Team`}]}},sg=[{q:`How does 5WPR handle clinical data communications?`,a:`The agency translates complex clinical data into accessible narratives for consumer and medical media. Teams work within regulatory frameworks to ensure all public communications remain compliant and accurate.`},{q:`What types of digital health companies does the agency represent?`,a:`5WPR works with telehealth providers, digital health device manufacturers, and biofeedback technology companies. The firm positions these platforms as credible solutions for modern patient care.`}
197,{q:`Does the agency support consumer wellness brands?`,a:`The practice manages communications for vitamins, nutritional supplements, sports nutrition, and diet companies. Campaigns focus on building third-party credibility through expert endorsements and media coverage.`}],cg={slug:`homegoods.cfm`,practiceKey:`homeandhousewares`,breadcrumb:`Home Goods PR`,h1:`Home Goods PR Agency: Integrating Earned Media and AI Visibility`,heroLead:`Home goods buyers no longer rely solely on traditional search engines to find furniture and decor. 5W Public Relations (5WPR) builds brand visibility across the specific platforms where purchase decisions happen, from shelter magazines to generative artificial intelligence systems. Brands that ignore these new discovery channels lose market share to competitors with stronger digital footprints.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected home and housewares clients`,statsHeading:`Our clients results`,stats:[{value:`38M+`,label:`SMEG campaign impressions`,matchName:`smeg`,cta:`View SMEG Case Study`},{value:`60K+`,label:`retailer clicks`,matchName:`smeg`,cta:`View SMEG Case Study`},{value:`250+`,label:`Pioneer Woman placements`,matchName:`pioneer woman`,cta:`View Pioneer Woman Case Study`},{value:`241%`,label:`increase in KRUPS fan engagement`,matchName:`krups`,cta:`View KRUPS Case Study`}],caseMatches:[`smeg`,`pioneer woman`,`krups`,`brooklyn bedding`],caseHeading:`Home goods case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Understanding AI Visibility in Home Services & Improvement`,body:[`Our [Home Services & Improvement AI Visibility Index](/ai-visibility-index/home-services-improvement-ai-visibility-index-2026/) ranks the retailers, marketplaces, and service brands that shape AI-generated recommendations in the home category. Winning visibility means owning trusted reviews, verified product data, and authoritative editorial coverage across every discovery platform.`],href:`/ai-visibility-index/home-services-improvement-ai-visibility-index-2026/`,cta:`Explore the Home Services & Improvement AI Visibility Index`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/home-services-improvement-ai-visibility-index-2026-cover.webp`,coverAlt:`The Home Services & Improvement AI Visibility Index 2026`},researchHeading:`Research behind our home goods practice`,faqSlug:`homegoods.cfm`,faqHeading:`Frequently Asked Questions`,sections:[{heading:`How do consumers research home goods and decor today?`,lead:`Consumers research home goods by asking generative artificial intelligence platforms for recommendations, then validating those choices on social media and in editorial publications.`,tone:`white`,body:[`Buyers increasingly ask Large Language Models (LLMs) to compare products before visiting a retailer. We integrate traditional media relations with Generative Engine Optimization (GEO) to ensure home decor brands appear in those exact answers.`,`The buying journey for a sofa or a dining set involves multiple touchpoints across distinct media environments. Shoppers query ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews to find the best bedding, lighting, and tabletop brands. After receiving an initial list, they check Instagram, TikTok, and design magazines for visual proof. 5WPR ensures your brand appears at every stage of this process.`,`We build the third-party signals required to get your products cited by AI systems and featured by design influencers. To achieve this, we execute [lifestyle PR programs](/practice/lifestyleprentertainmentpragency.cfm) that target both the algorithms generating answers and the human editors curating design trends. A mention in a top-tier shelter publication drives immediate reader interest, and it provides the authoritative text that AI models use to understand your brand's market position.`]},{heading:`What does a home goods PR agency do?`,lead:`A home goods PR agency secures earned media placements, coordinates influencer campaigns, and optimizes digital content to drive product sales.`,tone:`dark`,body:[`Every program we build ties directly to revenue.`,`We combine Generative Engine Optimization, [AI visibility research](/practice/ai-visibility-audit/index.cfm), and [digital marketing](/practice/digital-marketing-agency.cfm) into a single strategy. Our teams manage paid social media campaigns alongside traditional public relations outreach, including [influencer activations](/services/influencer-marketing-agency.cfm). This approach guarantees that when a consumer is ready to buy, your brand has the credibility and visibility to capture the sale.`,`5WPR has managed communications for boutique launches and mass-market category leaders. Our client roster includes SMEG, Ballard Designs, Fitz & Floyd, Lenox, Framebridge, Paintzen, Brooklyn Bedding, Nest Bedding, and Mellanni Fine Linens. We place these brands in consumer shelter titles and trade outlets to build lasting authority.`],callout:{kicker:`Case studies`,body:[`Documented home goods programs across furniture, bedding, tabletop, and decor brands.`],link:{href:`/practice/case-study.cfm`,label:`View Case Studies`}}},{heading:`Why does Generative Engine Optimization matter for home decor brands?`,lead:`Generative Engine Optimization matters because AI platforms synthesize third-party reviews, media mentions, and structured website data to generate product recommendations.`,tone:`white`,body:[`Traditional Search Engine Optimization (SEO) focuses on ranking a specific website page. GEO focuses on increasing the statistical likelihood that an AI model retrieves and cites your brand in a generated response. We build the machine-readable footprint that makes your product details clear to these engines. When a user asks an AI platform for the best mid-century modern dining chairs, the system retrieves information from design blogs, retailer sites, and digital magazines.`,`**Why it works:** Large Language Models calculate answer probability based on the frequency and proximity of entities across their training and retrieval data. Consistent entity naming for a brand across earned media articles, design press, and retailer listings raises the statistical likelihood that a home decor brand is retrieved for unbranded category queries.`]},{heading:`How does 5WPR measure home goods PR success?`,lead:`5WPR measures campaign success by tracking share of voice in AI answers, total media impressions, and direct product sell-through.`,tone:`muted`,body:[`We track performance across five major AI platforms: ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.`,`We evaluate an AI citation using the same rigor we apply to a feature in a major design magazine. Both outcomes influence buyer behavior. Our teams monitor how frequently your brand appears in relevant AI-generated responses compared to competitors.`,`We connect these visibility metrics to digital marketing analytics to prove return on investment. By reviewing [our home goods case studies](/practice/case-study.cfm), clients see exactly how earned media placements correlate with increased website traffic and higher conversion rates. We use data to refine our outreach and secure the placements that move inventory.`]},{heading:`What is the difference between home goods and home appliances PR?`,lead:`Home goods PR focuses on furniture, bedding, and decor, while home appliances PR handles devices that require power and live on counters or under cabinets.`,tone:`white`,body:[`5WPR operates dedicated teams for both categories to ensure journalists receive relevant pitches. If your product is a blender or an espresso machine, our [Kitchen & Home Appliances](/practice/kitchen-and-home-appliances.cfm) team manages the strategy. For tabletop items, lighting, and lifestyle goods, our home decor team leads the account.`,`SMEG relies on 5WPR to target specific audie
197nce demographics for sales and market awareness.`],callout:{kicker:`Client testimonials`,body:[`“The service delivered by 5W Public Relations has contributed to [our] dramatic growth.”`,`Christian, Marketing & Events Specialist, SMEG`,`“Their trustworthiness, market expertise, and consistent performance set them apart.”`,`Erica Chang, Director of Marketing, HUROM`],link:{href:`/contactus/`,label:`Talk to the Home Goods Team`}}},{heading:`Integrating Earned Media and Digital Discovery`,lead:`Home goods brands succeed when they connect traditional public relations with modern search behavior.`,tone:`muted`,body:[`Securing a feature in a design magazine builds immediate credibility, while optimizing that coverage for AI retrieval ensures long-term visibility. 5WPR executes this dual approach to keep your products in front of buyers at every stage of their research.`]},{heading:`About 5W`,tone:`white`,body:[`5W is The Communications Firm Built for the AI Era, building brand authority across the platforms where decisions now happen, including ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews, alongside earned media, digital, and influencer channels. 5W combines public relations, digital marketing, Generative Engine Optimization (GEO), and proprietary AI visibility research, helping clients measure and grow their presence in AI-driven buyer research.`,`Founded more than 20 years ago, 5W has been recognized as a top U.S. PR agency by O'Dwyer's, named Agency of the Year in the American Business Awards®, and honored as a Top Place to Work in Communications in 2026 by Ragan. 5W serves clients across B2C sectors including Beauty & Fashion, Consumer Brands, Entertainment, Food & Beverage, Health & Wellness, Travel & Hospitality, Technology, and Nonprofit; B2B specialties including Corporate Communications and Reputation Management; as well as Public Affairs, Crisis Communications, and Digital Marketing, including Social Media, Influencer, Paid Media, GEO, and SEO. 5W was also named to the Digiday WorkLife Employer of the Year list. For more information, visit [www.5wpr.com](/).`]}],closing:{kicker:`Talk to the Home Goods Team`,headline:`Your home decor brand needs a communications strategy that connects traditional media relations with modern search behavior.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Talk to the Home Goods Team`}]}},lg=[{q:`How do AI platforms choose which home decor brands to recommend?`,a:`AI platforms synthesize information from authoritative design publications, verified customer reviews, and structured product data. 5WPR secures earned media coverage in high-domain-authority outlets to feed these systems the signals they require.`},{q:`Does influencer marketing still drive furniture sales?`,a:`Yes. Influencer marketing provides the visual validation consumers demand before purchasing large-ticket items. We partner with interior design creators on Instagram and TikTok to show products in real homes.`},{q:`How long does it take to see results from an AI visibility program?`,a:`AI models update their indices at different intervals. Brands typically see shifts in their AI share of voice three to six months after securing consistent earned media placements and implementing structured data changes.`}],ug={slug:`digital-health-and-health-technology.cfm`,practiceKey:`health`,breadcrumb:`Digital Health & Health Technology`,h1:`Digital Health and Health Technology PR Agency`,heroLead:`5W Public Relations (5WPR) is a digital health PR agency. The firm helps biotechnology, medical technology, and healthcare technology companies build visibility across earned media and AI search platforms. 5W develops communications programs that connect health technology brands with health systems, payers, regulators, and patients.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected health technology clients`,caseHeading:`Digital health case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The 50-State Healthcare AI Map`,body:[`HCA Healthcare runs 187 hospitals across 20 states. AI cites it first in 0. A 50-state map of which hospital AI recommends in each state — Volume 5 of the 5W AI Map of America.`],href:`/research/healthcare-ai-map-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/healthcare-ai-map-2026-cover.webp`,coverAlt:`The 50-State Healthcare AI Map — 5WPR research report cover`},researchHeading:`Research behind our health technology practice`,faqSlug:`digital-health-and-health-technology.cfm`,faqHeading:`Frequently Asked Questions About Digital Health PR`,sections:[{heading:`What Does a Digital Health PR Agency Do?`,lead:`A digital health PR agency translates complex medical technology, biotechnology, and pharmaceutical developments into accessible narratives for business and consumer audiences.`,tone:`white`,body:[`Healthcare accounts for roughly 20 percent of the U.S. economy. Standing out in this market requires clear, authoritative communication.`,`5WPR develops public relations strategies for companies operating across the health technology sector. The agency supp
197orts product launches, regulatory announcements, funding rounds, and executive positioning.`,`The objective is to establish third-party credibility. 5W secures earned media coverage in healthcare trade publications, business media, and consumer outlets. This coverage builds the authority necessary to reach health systems and patients.`]},{heading:`Integrating B2B Digital Marketing and Public Relations`,lead:`Earned media provides third-party validation, but health technology companies must also capture demand through direct channels.`,tone:`dark`,body:[`5W operates as a [B2B digital marketing agency](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm) to connect public relations outcomes with measurable lead generation.`,`B2B marketing programs for digital health companies target hospital administrators, insurance providers, and clinical directors. 5W deploys account-based marketing, paid search, and structured content campaigns to reach these specific buyers.`,`5W aligns public relations messaging with digital marketing campaigns. This integration ensures that the narratives introduced in media coverage are reinforced when buyers research the company directly.`]},{heading:`Generative Engine Optimization for Health Technology`,lead:`Generative Engine Optimization (GEO) is the practice of structuring a company's digital footprint so AI platforms retrieve and cite the brand accurately.`,tone:`white`,body:[`Health systems, payers, and consumers now use AI assistants like ChatGPT and Perplexity to research medical technologies. These platforms also help buyers compare cloud-based pharmacy benefit managers (PBMs) and evaluate digital health platforms.`,`AI models retrieve entities mentioned consistently across credible medical and business publications. When a health technology company earns this coverage, the statistical likelihood of that company appearing in relevant AI answers increases. 5W integrates earned media with technical search strategies to build this machine-readable footprint. The agency monitors citation share to measure how often a digital health brand appears in AI-generated responses compared to competitors.`,`Health-related queries fall under what Google calls Your Money or Your Life (YMYL) topics, which its published search quality guidance holds to the highest bar for expertise, authoritativeness, and trust. Earned media in established, high-authority publications provides exactly the kind of third-party signal that guidance describes, which is why sustained trade and business press coverage matters more for health technology brands than for most other categories.`]},{heading:`Health Technology Categories 5W Serves`,lead:`5WPR manages communications for companies across the healthcare ecosystem, including early-stage startups and established pharmaceutical providers.`,tone:`muted`,body:[`The agency has directed public relations programs for on-demand health providers, cloud-based PBMs, biotechnology firms, and healthcare robotics pioneers.`,`5W has built profiles for companies including Consumer News and Business Channel (CNBC) Disruptor 50 alumni Heal, AI-powered health service provider Babylon, healthcare robotics company Diagnostic Robotics, and Redirect Health.`,`5W also develops consumer-facing campaigns for wellness technology brands. For [RENPHO](/practice/renpho.cfm), a global technology and wellness brand with a suite of smart scales, connected fitness equipment, and eye massagers, 5W's media program generated more than 900 total placements, a 264% year-over-year increase in impressions, and coverage in Rolling Stone, USA Today, CNET, and CBS News.`],callout:{kicker:`Case studies`,body:[`Documented digital health and wellness-technology programs across connected devices, robotics, and care platforms.`],link:{href:`/practice/renpho.cfm`,label:`View Digital Health Case Studies`}}},{heading:`Building Authority for Digital Health Executives`,lead:`Executive positioning establishes founders and clinical leaders as recognized authorities in their specific medical or technological fields.`,tone:`white`,body:[`5W secures speaking engagements, contributed article placements, and expert commentary opportunities for digital health leaders.`,`These programs ensure that when regulators, investors, or health systems evaluate a company, they find a leadership team with a documented history of industry expertise.`]}],closing:{kicker:`Talk to the Digital Health Team`,headline:`5W develops communications programs that connect health technology brands with the audiences that drive clinical adoption and market growth.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that helps brands get cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Request a Consultation`}]}},dg=[{q:`How does digital health PR differ from general technology PR?`,a:`Digital health public relations requires compliance with regulatory frameworks like the Health Insurance Portability and Accountability Act (HIPAA) and Food and Drug Administration (FDA) guidelines. 5WPR develops messaging that meets these requirements while explaining complex medical technologies to non-clinical audiences.`},{q:`Who are the primary audiences for health technology communications?`,a:`Health technology companies must communicate with multiple distinct groups simultaneously. 5WPR targets health systems, insurance payers, government regulators, and individual patients. Each audience requires specific messaging tailored to their clinical, financial, or personal priorities.`},{q:`How does earned media support digital health sales?`,a:`Hospital administrators and insurance providers require extensive third-party validation before adopting new medical technologies. Earned media placements in credible healthcare trade publications provide the independent verification these buyers need during long procurement cycles.`},{q:`Which digital health and wellness-tech brands has 5WPR represented?`,a:`5WPR's digital health and wellness-technology clients include Heal, a CNBC Disruptor 50 alum; AI-powered health service provider Babylon; healthcare robotics company Diagnostic Robotics; Redirect Health; and RENPHO, a connected wellness-device brand where 5W's media program produced more than 900 placements and a 264% year-over-year increase in impressions.`}],fg={slug:`financial-communications-pre-ipo-companies.cfm`,practiceKey:`corporate`,breadcrumb:`Financial Communications for Pre-IPO Companies`,h1:`Financial Communications for Pre-IPO Companies`,heroLead:`Financial communications for pre-IPO companies is the practice of building a clear, authoritative business narrative before entering the public markets. 5W Public Relations (5WPR) helps high-growth organizations align their media relations, executive positioning, and digital footprint so investors, analysts, and AI search engines retrieve accurate information about their market position.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected corporate and financial clients`,caseHeading:`Financial communications case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The IPO AI Visibility Index`,body:[`25 recent and pending U.S. IPO candidates ranked by AI Readiness Score — who controls the answer before the bell.`],href:`/ai-visibility-index/ipo-readiness-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ipo-readiness-2026-cover.webp`,coverAlt:`The IPO AI Visibility Index — 5WPR research report cover`},researchHeading:`Research behind our financial communications practice`,faqSlug:`financial-communications-pre-ipo-companies.cfm`,faqHeading:`Pre-IPO Financial Communications FAQs`,sections:[{heading:`How Do Financial Communications Shape Pre-IPO Market Perception?`,lead:`Financial communications shape pre-IPO perception by establishing a verifiable track record of growth, leadership stability, and market differentiation that investors and analysts evaluate before a public offering.`,tone:`white`,body:[`As organizations prepare for the public markets, clear and consistent communication dictates how the market values the company. Investors, analysts, media, and stakeholders look to media coverage, leadership visibility, and digital narratives to understand a company's strategy and growth story. 5W helps leadership teams articulate their business story and ensure companies are accurately represented across earned media, digital platforms, search engines, and generative AI environments.`]},{heading:`Pre-IPO Communications Services`,lead:`5W aligns media relations, executive visibility, positioning, and crisis readiness across the run-up to a public offering.`,tone:`dark`,layout:`centered`,cards:[{title:`Media Relations and Financial Narrative Development`,body:`Securing high-impact media coverage positions high-growth companies as credible leaders in their respective industries. 5W secures placements surrounding funding announcements, strategic milestones, market commentary, and innovation storytelling. These media strategies shape how companies are perceived by investors, stakeholders, and the broader market.`,extra:`5W tracks which financial and trade publications repeatedly associate a client with a given market category, and uses that pattern to inform where future media efforts should focus, the same categorization signal that AI platforms draw on when summarizing a company's position for investors.`},{title:`Executive Visibility and Thought Leadership`,body:`Strong leadership visibility plays a direct role in shaping market perception. 5W elevates founders, chief executive officers, and executive teams through proactive thought leadership, contributed content, and media engagement. This visibility reinforces the management team's expertise and credibility.`,extra:`Published thought leadership under a named executive's byline builds a durable, citable record connecting that person to a specific industry topic, the kind of record that search engines and AI platforms alike use to establish subject-matter authority over time.`},{title:`Corporate Storytelling and Market Positioning`,body:`Clear positioning helps leadership teams articulate their value proposition, growth strategy, and differentiation. 5W ensures this messaging remains consistent across media, digital platforms, and corporate communications. Consistent messaging ensures that prospective investors receive the exact same narrative whether they read a press release or query an AI assistant.`},{title:`Crisis Communications and Reputation Management`,body:`Periods of rapid growth and the transition to public markets bring increased regulatory and media scrutiny. 5W supports organizations with crisis communications planning, issues management, and rapid-response messaging. This preparation protects the corporate reputation and maintains stakeholder confidence.`,extra:`This matters most during pre-IPO quiet periods and filing windows, when speculative or inaccurate third-party information can otherwise dominate search results and AI overviews at the exact moment investors are researching the company most closely.`,links:[{href:`/practice/case-study.cfm`,label:`View Financial Communications Case Studies`}]}]},{heading:`Generative Engine Optimization (GEO) for Pre-IPO Companies`,lead:`Generative Engine Optimization for pre-IPO companies involves structuring corporate data and earned media s
197o AI platforms retrieve and cite the organization accurately when investors research market categories.`,tone:`white`,body:[`5W optimizes how companies are represented across digital channels, search engines, and generative AI platforms. Through GEO-informed strategies, the agency works to have the company and its leadership accurately discovered, contextualized, and understood across evolving discovery platforms.`,`**Understanding GEO mechanisms.** What is it technically? GEO is the process of structuring digital content and securing authoritative third-party citations so Large Language Models can extract and reference the information during retrieval-augmented generation.`,`What problem does it solve? It reduces the chance that AI platforms omit a company entirely when investors ask for market category leaders.`,`What is it structurally? It is a combination of technical search optimization, digital public relations, and entity management.`,`What is the core risk? A pre-IPO company that skips this work risks AI platforms defaulting to more established competitors when investors ask for category leaders, leaving the company's own narrative out of the answer.`,`AI engines draw their answers from structured data and from earned media they treat as authoritative. Publishing clear entity definitions and securing citations in trusted financial outlets is what gives these systems the machine-readable evidence they need to represent a company's market position accurately.`]},{heading:`Pre-IPO and Growth-Stage Work`,lead:`5W's financial communications work spans SPAC mergers, funding milestones, and category-authority campaigns for growth-stage companies headed toward the public markets.`,tone:`muted`,body:[`For [Webull](/practice/WebullSPAC.cfm)'s merger with SK Growth Opportunities Corporation (NASDAQ: SKGR), 5W secured exclusive placement under a 12-hour embargo and arranged interviews with the Wall Street Journal and Axios. The announcement generated more than 1.1 billion media impressions, 70+ placements, and 32 features.`,`For [Zeta Global](/practice/zetamarketing-casestudy.cfm), the AI-powered marketing cloud co-founded by David A. Steinberg and former Apple CEO John Sculley, 5W built a multi-year thought-leadership and media program that generated more than 300 placements and 2 billion impressions, and secured recognition on Crain's Top 150 Privately-Held Companies and Forbes' Most Promising Companies in America lists.`]},{heading:`Who Needs Pre-IPO Financial Communications?`,lead:`High-growth organizations approaching major corporate milestones require specialized financial communications to manage reputational and competitive dynamics.`,tone:`white`,body:[`5W's financial communications programs support a specific range of high-growth organizations preparing for major corporate milestones. The agency tailors strategies to address the distinct reputational and competitive dynamics these companies face.`],bullets:[`Venture-backed and high-growth companies transitioning their narrative from early-stage product development to sustainable business scaling.`,`Pre-IPO and IPO-bound organizations requiring strict message control ahead of public offerings.`,`Late-stage startups and emerging market leaders defining their market category for institutional investors.`,`Technology, fintech, and innovation-driven companies translating complex products into clear financial value propositions.`,`Companies navigating rapid growth, acquisitions, or market expansion.`]},{heading:`How 5W Approaches Financial Communications for High-Growth Brands`,lead:`5W grounds its programs in the principle that corporate messaging must align directly with the broader business strategy.`,tone:`muted`,body:[`The agency combines category expertise, media insight, and data-driven strategies to develop intentional and measurable campaigns. Every engagement helps companies communicate with clarity and authority across the channels that influence investors, media, and stakeholders. 5W, operating as a [financial marketing agency](/practice/financial-services-and-fintech.cfm), develops programs designed to support long-term reputation and growth.`,`This approach builds on 5W's experience supporting venture-backed companies and financial services organizations through periods of rapid expansion. The team helps leadership teams communicate complex business narratives with impact. By combining traditional PR with generative engine optimization and data-informed insights, 5W helps companies build credibility and momentum ahead of key milestones such as funding rounds, acquisitions, and potential public offerings.`,`Our approach is grounded in the belief that [financial communications](/practice/financial-services-and-fintech.cfm) must align closely with broader business strategy to succeed in the public markets.`]}],closing:{kicker:`Talk to the Financial Communications Team`,headline:`5W helps pre-IPO companies build the credibility and visibility that support successful public market entries.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that helps brands get cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/contactus/`,label:`Request a Consultation`}]}},pg=[{q:`What are financial communications for pre-IPO companies?`,a:`Financial communications for pre-IPO companies involves managing media relations, executive positioning, and digital narratives to build credibility ahead of a public offering. This practice ensures that investors and analysts understand a company's growth story and market position.`}
197,{q:`How does digital communications support an IPO?`,a:`Digital communications shapes how a company appears across search engines and generative AI platforms. Through GEO strategies, companies work to have their leadership and financial narratives accurately discovered and contextualized by the market.`},{q:`Why is executive visibility important before an IPO?`,a:`Executive visibility shapes market perception by elevating founders and leadership teams through contributed content and media engagement. This proactive thought leadership reinforces the management team's expertise and credibility with stakeholders.`},{q:`Which companies has 5W supported through a SPAC merger or IPO process?`,a:`5W's pre-IPO and financial communications work includes Webull's SPAC merger with SK Growth Opportunities Corporation, which generated 1.1 billion media impressions and 70+ placements, and multi-year growth-stage programs like Zeta Global's, which produced 300+ placements and 2 billion impressions.`}],mg={slug:`alcohol-marketing-pr-agency.cfm`,practiceKey:`foodandbeverage`,breadcrumb:`Alcohol Marketing and PR`,h1:`Alcohol Marketing and PR Agency`,heroLead:`An alcohol marketing and PR agency builds visibility, credibility, and consumer consideration for wine, beer, and spirits brands through media relations, experiential events, influencer partnerships, and digital marketing, while navigating the regulatory rules specific to alcohol advertising.`,heroCtas:[{href:`/contactus/`,label:`Request an Alcohol Marketing Consultation`}],trustLabel:`Selected food and beverage clients`,caseHeading:`Wine, beer, and spirits case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Non-Alcoholic Drinks`,body:[`One brand owns NA beer while the rest of the alcohol-alternative answer fragments.`],href:`/ai-visibility-index/non-alcoholic-drinks-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/non-alcoholic-drinks-ai-visibility-index-2026-cover.webp`,coverAlt:`Non-Alcoholic Drinks — 5WPR research report cover`},researchHeading:`Research behind our alcohol practice`,faqSlug:`alcohol-marketing-pr-agency.cfm`,faqHeading:`Frequently asked questions about alcohol PR`,sections:[{heading:`What is an alcohol marketing and PR agency?`,tone:`white`,body:[`5W Public Relations (5WPR) develops integrated campaigns spanning earned media, experiential marketing, and Generative Engine Optimization to help alcohol brands reach buyers across traditional publications and AI-driven discovery platforms.`]},{heading:`How do alcohol brands build visibility across search and AI?`,lead:`Consumer discovery for wine and spirits now spans traditional media, social platforms, and generative AI search engines.`,tone:`muted`,body:[`Buyers ask AI platforms for cocktail recipes, brand comparisons, and recommendations for specific flavor profiles. 5WPR integrates traditional public relations with Generative Engine Optimization (GEO) and conducts an [AI visibility audit](/practice/ai-visibility-audit/index.cfm) to build the third-party signals required to rank in search results and appear as a recommended brand in AI answers.`,`Alcohol marketing requires strict compliance with industry regulations. 5WPR navigates these constraints while executing campaigns for established companies and emerging labels. The agency has managed communications for brands including Santa Margherita, Monaco Cocktails, Hella Cocktail Co., and Direct Wines.`]},{heading:`What does an alcohol PR agency do for spirits brands?`,lead:`A specialized PR program connects spirits brands with target demographics through media relations, influencer partnerships, and experiential events.`,tone:`dark`,body:[`5WPR develops category-specific strategies for the spirits industry. The agency tailors messaging to detail production methods, regional flavors, and brand heritage.`],cards:[{title:`How does 5W market whiskey and bourbon brands?`,body:`5W takes a tailored approach to whiskey and bourbon marketing, understanding that these products require a blend of tradition and modern appeal to reach today's discerning consumers. Our campaigns emphasize brand storytelling, heritage, and quality, targeting whiskey enthusiasts with engaging digital and influencer-driven experiences. By highlighting unique production methods and regional flavors, we build a strong identity for each brand, from novice-friendly content to exclusive tastings for connoisseurs.`},{title:`How does 5W market gin and rum brands?`,body:`5W uses bespoke marketing strategies to highlight each spirit's key qualities, capturing the lifestyle appeal associated with both products. For gin brands, our focus is on the craft, botanicals, and mixology, leveraging digital and influencer-led campaigns to emphasize premium ingredients and cocktail versatility. For rum, we highlight heritage, tropical appeal, and cultural connections, resonating with diverse audiences through immer
197sive brand experiences and storytelling.`},{title:`How does 5W market vodka brands?`,body:`Showcasing a vodka brand's quality, purity, and distinct characteristics is required to establish differentiation in a crowded market. We leverage multi-pronged campaigns to highlight vodka's versatility in cocktails and appeal to diverse audiences. Through targeted digital marketing and storytelling, we help vodka brands, like Three Olives Vodka, achieve visibility, build brand loyalty, and establish a unique position in both the on-premise and retail spaces.`},{title:`How does 5W market tequila brands?`,body:`To market tequila effectively, 5W focuses on emphasizing the unique craftsmanship, heritage, and versatility that make the spirit special. We position brands to celebrate their authentic roots, highlighting the artistry in its production process, from agave cultivation to distillation. Through experiential marketing, influencer campaigns, and strategic PR, we build lasting consumer connections and drive brand loyalty in the competitive tequila market, as seen in our work with [1800 Tequila](/practice/1800-tequila.cfm) and EMYLA Tequila through [hospitality digital marketing](/practice/hospitality-digital-marketing-agency.cfm) programs.`}]},{heading:`How does PR drive growth for wine and beer companies?`,lead:`Earned media and immersive consumer experiences help wine and beer brands improve sell-through rates in a crowded marketplace.`,tone:`white`,body:[`How does 5W approach wine public relations?`,`Wine public relations relies on compelling storytelling to communicate a vineyard's heritage and production methods. 5WPR secures coverage in top wine publications to build brand credibility. The agency analyzes market trends to match media strategies to the client's business objectives.`,`Immersive consumer experiences allow buyers to connect personally with the label. 5WPR organizes tasting events and collaborates with key sommeliers to generate authentic endorsements. The agency has executed wine marketing programs for Direct Wines, Wines That Rock, and [Acker Wines](/practice/acker-wines.cfm), as detailed in our [public relations case studies](/practice/case-study.cfm).`],callout:{kicker:`Client testimonial`,body:[`“The wine category is crowded and 5W has done a tremendous job to secure strategic media placements,”`,`Howard Jackowitz, Managing Partner at Wines That Rock`]}},{heading:`How does 5W market beer brands?`,tone:`muted`,body:[`The beer industry requires innovative marketing strategies to capture attention in a saturated market. 5WPR promotes unique brand stories and fosters community connections for breweries. The agency combines traditional media relations with interactive events and influencer partnerships.`,`By focusing on targeted messaging, 5WPR ensures beer clients drive sales and build lasting brand loyalty. The agency has managed communications and experiential marketing campaigns for [Samuel Adams](/practice/samuel-adams.cfm) to create memorable consumer experiences.`]},{heading:`Why does Generative Engine Optimization matter for alcohol brands?`,lead:`Generative AI platforms synthesize information from multiple sources to recommend specific alcohol brands to consumers.`,tone:`dark`,body:[`When a user asks an AI engine for the best premium tequila for a margarita, the system retrieves data from trusted publishers, review sites, and brand pages. 5WPR structures client information and secures authoritative media placements to increase the likelihood that an AI model surfaces the brand.`,`AI search systems rely on a mix of authoritative sources, structured information, and corroborating third-party references when generating answers about alcohol brands. Building consistent, well-sourced coverage across trusted publications can improve a brand's visibility and likelihood of being cited in relevant AI-generated answers.`],callout:{kicker:`Client testimonial`,body:[`“Their PR impact helped in growing the business by more than 200 percent in the e-commerce area,” Carrie Riby, Director of Marketing at [Black Button Distilling](/practice/black-button-distilling.cfm)`]}}],closing:{kicker:`Talk to the Alcohol Marketing Team`,headline:`Alcohol brands compete in an environment where discovery happens across magazines, social feeds, and AI search engines.`,body:[`Success requires a unified approach that combines regulatory compliance, experiential marketing, and digital authority. 5WPR builds the media footprint and structured data necessary to turn passive consumers into loyal brand advocates.`,`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},hg=[{q:`What is an alcohol marketing and PR agency?`,a:`An alcohol marketing and PR agency builds visibility, credibility, and consumer consideration for wine, beer, and spirits brands through media relations, experiential events, influencer partnerships, and digital marketing, while navigating the regulatory rules specific to alcohol advertising.`},{q:`What is wine and spirits PR?`,a:`Wine and spirits PR involves managing communications campaigns tailored to the alcohol industry. The objective is to build brand reputation and drive sales through media relations, experiential events, and digital marketing. Agencies must ensure all messaging complies with strict alcohol marketing regulations.`},{q:`Why is integrated marketing important for alcohol brands?`,a:`Integrated marketing establishes a consistent brand identity and increases exposure across multiple platforms. Combining public relations, social media, and Generative Engine Optimization helps a brand maintain visibility wherever consumers research their next purchase.`},{q:`What services do alcohol PR agencies provide?`,a:`Agencies offer media relations, brand-building events, influencer programs, and consumer pop-ups. 5WPR also provides digital marketing and competitive analysis to help brands capture market share.`},{q:`Do PR agencies work with new and established brands?`,a:`Yes. 5WPR develops campaigns for both emerging startups and established mainstream labels. The agency tailors the strategy to support specific goals, such as launching a new product line or revitalizing a legacy brand.`}],gg={slug:`cpg-digital-marketing-agency.cfm`,practiceKey:`consumer`,breadcrumb:`CPG Digital Marketing`,h1:`CPG Digital Marketing Agency`,heroLead:`5W Public Relations is a CPG digital marketing agency that builds consumer visibility, brand recognition, and sales for consumer packaged goods companies. We develop integrated campaigns across social media, search engines, paid advertising, and AI platforms to reach buyers where they research and purchase everyday products.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected consumer clients`,caseHeading:`Consumer and CPG case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The $50 Billion AI Visibility Problem: Why Unilever Disappears From Generative Search`,body:[`Unilever owns $50B in revenue. Vaseline (8%), Lipton (12%), Hellmann's (8%), Suavitel (0%)—nearly invisible inside ChatGPT, Claude, Gemini, Perplexity, and Google AI Overviews. We audited 75 CPG queries across 5 engines (375 responses) to map which brands appear in AI search, and why scale no longer guarantees visibility.`],href:`/ai-visibility-index/the-50-billion-ai-visibility-problem-why-unilever-disappears-from-generative-search/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/wp-content/uploads/2026/08/the-50-billion-ai-visibility-problem-why-unilever-disappears-from-gene-og.webp`,coverAlt:`The $50 Billion AI Visibility Problem: Why Unilever Disappears From Generative Search — 5WPR research report cover`},researchHeading:`Research behind our CPG digital marketing practice`,faqSlug:`cpg-digital-marketing-agency.cfm`,faqHeading:`Frequently Asked Questions`,sections:[{heading:`How Do CPG Brands Build Visibility Across Digital Channels?`,lead:`Consumer packaged goods companies operate in high-volume retail and digital environments where product discovery happens across multiple platforms simultaneously.`,tone:`white`,body:[`5W Public Relations evaluates a brand's market positioning to build targeted strategies that center on specific product differentiators. The agency combines digital channels to connect consumer packaged goods (CPG) brands with their target audiences. Our digital marketing programs integrate organic social media, paid advertising, search engine marketing, and content creation.`,`A successful CPG digital marketing program requires consistent messaging across every touchpoint. We align product education, brand storytelling, and performance marketing to drive both immediate sales and long-term brand loyalty.`]},{heading:`What Digital Marketing Services Support Consumer Packaged Goods?`,lead:`5W structures digital marketing programs around the platforms where target consumers actively evaluate and discuss consumer packaged goods.`,tone:`dark`,body:[`**Social Media and Community Management**`,`Social media serves as the foundation of our CPG marketing strategy. 5W creates content that demonstrates products in real-world scenarios, clarifying their value and daily utility for consumers.`,`The digital team manages brand social platforms to build active consumer communities. By initiating conversations and responding to buyers, we increase brand awareness and maintain consistent consumer engagement.`,`**Search Engine Optimization and Content Creation**`,`Content marketing programs for CPG brands require educational assets that answer specific consumer questions. 5W develops blogs, videos, and infographics that communicate the brand narrative and explain product benef
197its.`,`The digital team implements technical and on-page search engine optimization (SEO) techniques to improve rankings for relevant category keywords. This approach drives organic traffic to brand websites, digital storefronts, and e-commerce platforms.`,`**Paid Advertising and Performance Marketing**`,`Paid media accelerates brand visibility and conversion rates for consumer packaged goods. 5W designs and executes targeted advertising campaigns across Google, social media networks, and retail media channels.`,`We allocate advertising budgets based on platform performance and audience behavior. This targeted approach expands reach while maintaining efficient acquisition costs for CPG products.`,`**Retail Media and E-Commerce Integration**`,`5W aligns digital campaigns with retail media networks and e-commerce platforms to shorten the path to purchase. We optimize product listings, descriptions, and digital storefronts to ensure consistent branding across third-party retailers.`,`By coordinating off-platform digital marketing with on-platform retail media, the agency helps CPG brands capture consumer intent at the exact moment of purchase. This integration improves return on ad spend and supports broader retail distribution goals.`,`Looking specifically for public relations assistance? Check out our [consumer pr](/practice/consumercfm.cfm) page.`],callout:{kicker:`Consumer PR case studies`,body:[`Documented consumer and CPG communications programs.`],link:{href:`/practice/case-study.cfm`,label:`Review our consumer PR case studies`}}},{heading:`How Does Generative Engine Optimization Impact CPG Brands?`,lead:`Generative Engine Optimization (GEO) improves how AI systems and answer engines retrieve and recommend consumer packaged goods.`,tone:`muted`,body:[`Consumers use AI platforms like ChatGPT, Perplexity, and Google AI Overviews to compare products, check ingredients, and find alternatives. 5W helps CPG brands build the machine-readable footprint required to appear in these AI-generated responses.`,`**Why it works:** AI systems calculate answer probability based on the frequency and authority of entity mentions across their training data. By securing independent citations from high-authority domains, 5W raises the statistical likelihood that a CPG brand is retrieved when users ask category questions (mechanism not yet published).`]},{heading:`Structuring CPG Data for Answer Engines`,tone:`white`,body:[`Answer engines rely on structured data to understand product specifications, ingredients, and category relevance. 5W audits and improves the technical infrastructure of CPG websites to ensure AI crawlers can accurately parse and retrieve product information.`,`We deploy schema markup and entity optimization to clarify brand relationships. This technical foundation allows AI platforms to confidently recommend a CPG product when users search for specific attributes, such as gluten-free snacks or sustainable packaging.`]},{heading:`How Does 5W Apply Cross-Category Digital Marketing Experience?`,lead:`5W applies digital marketing and public relations strategies across diverse categories, including consumer goods and advocacy campaigns.`,tone:`dark`,body:[`The agency adapts its digital marketing frameworks to serve distinct audience needs. For example, 5W develops specialized programs for adjacent consumer categories, operating as a dedicated [beauty digital marketing agency](/practice/beauty-digital-marketing-agency.cfm) to support cosmetics and skincare brands. We also run targeted campaigns for food, beverage, and [alcohol marketing](/practice/alcohol-marketing-pr-agency.cfm) clients.`,`This cross-category experience allows the digital team to apply successful engagement tactics from one industry to another, ensuring CPG brands benefit from broad consumer insights.`]},{heading:`What Are 5W's Campaign Results and Client Partnerships?`,lead:`5W partners with organizations to expand their digital reach, inspire action, and build sustained public awareness.`,tone:`muted`,body:[`The agency has a proven record of scaling messages for high-stakes campaigns and non-profit initiatives. During a partnership with the Norman Rockwell Museum, 5W promoted The Unity Project, a pro-voting initiative featuring commissioned original artwork. The museum credited the agency with helping them reach new audiences and inspire citizen action.`,`5W also manages sensitive awareness campaigns requiring precise messaging. The agency partnered with [Voices Against Brain Cancer](/practice/5wpr-non-profit-public-relations-voices-against-brain-cancer.cfm) to elevate the visibility of the disease and the millions of people affected by it. The organization noted the agency's ability to handle sensitive personal stories with tact while elevating the visibility of the disease.`],callout:{kicker:`Client testimonials`,body:[`“The 5W team immediately embodied our voice and message to deliver great results.”`,`Laurie Norton Moffatt, Director/CEO of Norman Rockwell Museum`,`“We have placed a great deal of trust in 5W's abilities and are continuously impressed.”`,`Mario Lichtenstein, Voices Against Brain Cancer`]}},{heading:`How Does 5W Measure Analytics and Campaign Reporting?`,lead:`5W provides detailed analytics and performance reporting to track the business impact of CPG digital marketing campaigns.`,tone:`white`,body:[`The digital team delivers regular insights into campaign performance, audience engagement, and conversion metrics. This data allows brands to make informed decisions about resource allocation and creative direction.`,`**Measuring Citation Share and Search Visibility**`,`Traditional marketing metrics track clicks and impressions, but modern discovery requires measuring brand authority across AI platforms. 5W tracks Citation Share to determine how frequently a CPG brand appears in AI-generated answers compared to competitors.`,`The agency combines this AI visibility data with standard digital metrics, including customer acquisition cost, conversion rates, and organic traffic growth. By continuously refining the digital strategy based on real-time performance data, 5W ensures sustained growth and visibility for CPG brands in a crowded retail environment.`]}],closing:{kicker:`Request a Consultation`,headline:`5W helps consumer packaged goods brands capture market share through integrated digital marketing and search visibility programs.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization.cfm](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},_g=[{q:`What does a CPG digital marketing agency do?`,a:`A CPG digital marketing agency builds social media, SEO, paid advertising, retail media, and GEO programs that drive discovery, consideration, and sales for consumer packaged goods brands across every channel where shoppers research and buy.`},{q:`How is CPG digital marketing different from CPG PR?`,a:`Digital marketing covers paid and owned channels tied to traffic, conversion, and sales metrics. PR focuses on earned media and reputation. 5W runs a dedicated consumer PR practice alongside this digital marketing practice for brands that need both working together.`},{q:`What is Generative Engine Optimization for CPG brands?`,a:`Generative Engine Optimization (GEO) 
197improves how AI platforms like ChatGPT, Perplexity, and Google AI Overviews retrieve and recommend a CPG brand when shoppers compare products, check ingredients, or look for alternatives.`},{q:`Which categories does 5W's CPG digital marketing team support?`,a:`The team applies its CPG frameworks across adjacent categories including beauty and alcohol, plus food and beverage, giving CPG clients the benefit of cross-category consumer insight.`}],vg={slug:`ai-digital-marketing-and-pr-agency.cfm`,practiceKey:`technology`,breadcrumb:`AI Communications`,h1:`AI Communications Agency`,heroLead:`5W is a U.S. communications agency with a dedicated AI practice spanning public relations, digital marketing, [Generative Engine Optimization (GEO)](/practice/geo-optimization.cfm), [crisis communications](/practice/crisisprfirm.cfm), and investor relations, built for AI companies from frontier labs to enterprise AI platforms to vertical AI startups. AI captured 61% of all global venture capital in 2025 and 80% of Q1 2026 venture funding ([OECD](https://www.oecd.org/en/publications/venture-capital-investments-in-artificial-intelligence-through-2025_a13752f5-en/full-report.html); [Crunchbase](https://news.crunchbase.com/venture/record-breaking-funding-ai-global-q1-2026/)). The communications stakes for AI brands have never been higher, and the evidence below is what 5W's AI practice is built on.`,heroCtas:[{href:`/contactus/`,label:`Talk to 5W's AI Communications team`}],trustLabel:`Selected AI clients`,caseHeading:`AI communications case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`How 5W Measures AI Visibility`,body:[`The permanent canonical methodology for the 5W AI Visibility Index and The 5W AI Trust Map of America. Prompt design, sample prompts, engine consistency, modeling logic, tie-breaking, limitations.`],href:`/research/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/how-we-measure-ai-visibility-cover.webp`,coverAlt:`How 5W Measures AI Visibility — 5WPR research report cover`},researchHeading:`Research behind our AI communications practice`,faqSlug:`ai-digital-marketing-and-pr-agency.cfm`,faqHeading:`Frequently Asked Questions`,sections:[{heading:`By the Numbers`,tone:`dark`,layout:`centered`,cards:[{title:`61%`,body:`of global venture capital went to AI firms in 2025: $258.7 billion of $427.1 billion total (OECD, 2026).`,links:[{href:`https://www.oecd.org/en/publications/venture-capital-investments-in-artificial-intelligence-through-2025_a13752f5-en/full-report.html`,label:`OECD, 2026`}]},{title:`80%`,body:`of global venture funding went to AI in Q1 2026, an all-time quarterly high (Crunchbase, 2026).`,links:[{href:`https://news.crunchbase.com/venture/record-breaking-funding-ai-global-q1-2026/`,label:`Crunchbase, 2026`}]},{title:`$194B`,body:`in AI venture capital flowed to U.S.-based firms in 2025, roughly 75% of global AI VC deal value (OECD, 2026).`,links:[{href:`https://www.oecd.org/en/publications/venture-capital-investments-in-artificial-intelligence-through-2025_a13752f5-en/full-report.html`,label:`OECD, 2026`}]},{title:`$188B`,body:`was the combined Q1 2026 raise from OpenAI ($122B), Anthropic ($30B), xAI ($20B), and Waymo ($16B), four of the five largest venture roun
197ds ever recorded (Crunchbase, 2026).`,links:[{href:`https://news.crunchbase.com/venture/record-breaking-funding-ai-global-q1-2026/`,label:`Crunchbase, 2026`}]}]},{heading:`What is AI Communications?`,tone:`white`,body:[`**What is AI communications?** AI communications is the discipline of building, defending, and amplifying the public reputation of AI companies and AI products. It covers public relations, digital marketing, [Generative Engine Optimization](/practice/geo-optimization.cfm), [crisis communications](/practice/crisisprfirm.cfm), investor relations, and regulatory communications, tailored to the speed, scale, and ethical scrutiny that AI brands face. Our founder has written in detail about [the AI communications stack brands need](https://ronntorossian.com/ai-communications) to stay accurately represented inside the models buyers now ask first.`,`**What does an AI communications agency do?** An AI communications agency designs the brand narrative, secures media coverage, optimizes for AI-mediated discovery, builds executive thought leadership, manages [crisis response](/practice/crisisprfirm.cfm), supports funding rounds and IPOs, and engages with the regulatory and policy environment. 5W handles all of the above for AI clients across B2B and B2C.`]},{heading:`What 5W's AI Communications Practice Does`,tone:`muted`,bullets:[`**AI brand positioning and messaging:** articulating what an AI company actually does in language a journalist, customer, or regulator can repeat.`,`**Executive thought leadership:** placing AI founders, CEOs, and technical leaders in tier-one publications, podcasts, and speaking slots.`,`**AI media relations:** coverage in The New York Times, Wall Street Journal, Bloomberg, Reuters, TechCrunch, The Information, Wired, MIT Technology Review, Axios, Semafor, and the trade press across each sub-vertical.`,`**Generative Engine Optimization (GEO):** improving how AI clients are understood, represented, cited, and surfaced across ChatGPT, Perplexity, Gemini, Claude, and other AI-driven discovery platforms.`,`**AI crisis communications:** deepfake response, model failure, biased output, training data disputes, ethical scandals, security incidents, and executive controversies.`,`**AI investor and funding communications:** Series A through pre-IPO and IPO, including roadshow narrative, analyst day prep, and S-1 messaging review.`,`**AI regulatory and policy communications:** EU AI Act compliance positioning, NIST framework engagement, US state law tracking, and policymaker outreach.`,`**AI product launch communications:** model releases, feature drops, partnership announcements, benchmark publications.`,`**Competitive intelligence in AI media discourse:** tracking how rivals are positioned and adjusting narrative in real time.`,`**Internal communications for AI companies:** managing the workforce-facing narrative as products, team structure, and ethical posture evolve.`]},{heading:`Why PR and GEO Are Converging`,tone:`dark`,body:[`Traditional SEO firms can optimize a website. PR firms can influence the independent sources AI systems rely on to understand a brand in the first place.`,`AI answers are assembled from a broader information environment than any single owned website: earned media coverage, authoritative third-party publications, original research, executive profiles, structured data, reviews, and consistent entity signals across the web. GEO is not on-page SEO extended to a new set of engines. It depends on the same independent validation public relations has always been built to secure.`,`A brand with strong earned media, credible executive visibility, and original research gives GEO real material to work with. A brand without it is optimizing a page that AI engines have few independent reasons to trust.`,`This is why 5W runs PR and GEO as one integrated practice rather than two separate vendor relationships: the earned coverage a PR program secures becomes the citation-worthy source material a GEO program needs, and the entity clarity a GEO program builds makes that earned coverage easier for AI engines to attribute correctly.`]},{heading:`AI Communications Proof Points`,lead:`Client names are entity signals. Results are the evidence. Three engagements from 5W's AI practice, with the numbers behind them.`,tone:`white`,body:[`**Blackbird.AI.** Blackbird.AI came to 5W while closing a $20 million Series B, needing a firm that could convert the funding news into an ongoing media program for the category of AI-driven narrative and disinformation defense it was pioneering. The engagement generated 293 media placements, 33 interviews, and top-tier coverage across four countries, and grew Blackbird.AI's competitive share of voice from 1% in Q1 to 51% 
197in Q2, the quarter the program began.`,`**Zeta Global.** Zeta Global, the AI-powered marketing cloud co-founded by David A. Steinberg and former Apple CEO John Sculley, engaged 5W to build analyst and Fortune 500 decision-maker awareness of its data platform. The program secured 300+ media placements and more than 2 billion unique media impressions, including coverage in The Wall Street Journal, Forbes, CNBC, and Bloomberg, plus inclusion on Crain's Top 150 Privately-Held Companies and Forbes' Most Promising Companies in America.`,`**Shield AI.** Shield AI, building AI-powered autonomous systems for the U.S. Air Force, Army, and allied militaries, engaged 5W to position its leadership as the category-defining voice in AI-powered defense. 5W built a standing executive trend-commentary program aligned with Shield AI's Washington government relations team, converting trade-show activity and program milestones into standalone media features. Shield AI moved from early-stage startup coverage to frontrunner status in the AI defense category, cited by reporters, analysts, and policymakers as the reference point for AI-powered autonomy.`,`This is the same research-driven approach behind 5W's own original AI-visibility research, including the [Creators & AI Visibility](/research/creators-ai-visibility/) audit.`]},{heading:`5W's 5-Step AI Communications Methodology`,tone:`muted`,bullets:[`**AI Narrative & Entity Audit:** current narrative review, competitor narrative mapping, entity consistency check, and AI-mediated citation share analysis establishing the baseline.`,`**Authority Mapping:** identifying which independent sources, media, analysts, research, executive profiles, AI engines currently weight for the client's category, and where the authority gaps sit relative to competitors.`,`**Earned/Owned Activation:** media outreach, executive thought leadership, content production, GEO content optimization, and paid amplification where appropriate, executed against the authority map.`,`**AI Visibility Monitoring:** tracking brand mentions, citation sources, answer accuracy, competitive share of answer, sentiment, and recommendation frequency across ChatGPT, Perplexity, Gemini, and Claude.`,`**Narrative Optimization:** quarterly recalibration of message platform, channel mix, and GEO posture based on what the monitoring shows is and isn't working.`]},{heading:`AI Sub-Verticals 5W Serves`,tone:`white`,chips:[`Frontier labs and foundation models`,`Generative AI applications`,`Enterprise AI platforms`,`Vertical AI (legal tech, health tech, fintech, edtech, agtech, climatetech)`,`AI infrastructure (chips, compute, data, vector databases, MLOps)`,`Robotics and embodied AI`,`AI defense and dual-use technology`,`Autonomous vehicles`,`AI consumer products and creator tools`,`AI cybersecurity`,`AI policy and ethics organizations`]},{heading:`AI Clients`,tone:`dark`,bullets:[`[Blackbird.ai](/practice/blackbird.cfm): AI-driven narrative intelligence and risk management.`,`[Zeta Global](/practice/zetamarketing-casestudy.cfm): AI-powered marketing cloud and customer acquisition platform.`,`[Fetcherr](/practice/fetcherr.cfm): AI pricing and revenue management for the travel industry.`,`**Veritone:** Enterprise AI platform accelerating content and media workflows.`,`**Firstrade:** AI-powered brokerage delivering personalized investment experiences.`,`**Casetext:** Legal AI platform and research technology.`,`[AirHelp](/practice/airHelp.cfm): AI-automated flight disruption compensation for travelers.`,`[PLAUD.ai](/practice/plaud.ai.cfm): AI-powered note-taking and meeting intelligence tools.`,`**LiveMe:** AI-driven live-streaming platform with smart content recommendations.`,`[Shield AI](/practice/shield-ai.cfm): AI defense and autonomy technology.`]},{heading:`Why 5W in the AI Era`,lead:`Three forces are reshaping communications for every AI company in 2026, and 5W is built for all three.`,tone:`white`,body:[`**Discovery has moved into AI engines.** Buyers, journalists, regulators, and investors now ask ChatGPT, Perplexity, Gemini, and Claude for information they used to find on Google. Companies that are accurately represented and frequently cited across AI engines gain an increasingly important advantage in discovery and consideration. Companies that are absent risk becoming invisible during critical parts of the buyer journey. 5W's [GEO practice](/practice/geo-optimization.cfm) is the dedicated answer to this shift.`,`**Crisis cycles are faster and stranger.** Deepfakes, model jailbreaks, biased outputs, training data disputes, regulatory letters, employee leaks, and benchmark disputes can move from social post to mainstream coverage in hours. AI companies need a [crisis posture](/practice/crisisprfirm.cfm) that's already built, not something assembled mid-incident. 5W's crisis communications practice has been embedded with AI clients through real incidents, including some of the most-discussed AI events of the past 24 months.`,`**Investor and policy stakes are at an all-time high.** Roughly 80% of Q1 2026 venture funding flowed to AI ([Crunchbase](https://news.crunchbase.com/venture/record-breaking-funding-ai-global-q1-2026/)). The EU AI Act's enforcement provisions ramp through 2026. NIST's AI Risk Management Framework is increasingly influencing enterprise AI governance and procurement standards. Communications and policy posture aren't separable anymore. 5W's AI practice integrates [investor relations](/practice/financial-communications-pre-ipo-companies.cfm), regulatory communications, and PR in a single team.`,`5W's AI practice is built on these three integrated capabilities working together, not on any one of them in isolation.`]},{heading:`New 5W Research: Creators & AI Visibility`,tone:`muted`,body:[`5W's [Creators & AI Visibility](/research/creators-ai-visibility/) audit shows how AI engines cite the creator economy, where YouTube content is underweighted, and why AI communications programs need earned, owned, and creator signals working together.`],callout:{kicker:`Talk to 5W's AI Communications team`,body:[`Explore 5W's GEO practice.`],link:{href:`/practice/geo-optimization.cfm`,label:`Explore 5W's GEO practice`}}},{heading:`About 5W`,tone:`white`,body:[`5W is the premier AI communications firm in the United States. Approximately 250 professionals. 250+ clients across consumer, corporate, [crisis](/practice/crisisprfirm.cfm), healthcare, technology, and public affairs. Recognized as a top U.S. PR agency by O'Dwyer's, named Agency of the Year in the American Business Awards, and honored as a Top Place to Work in Communications in 2026 by Ragan.`]}],closing:{kicker:`Talk to 5W's AI Communications team`,headline:`5W runs public relations, digital marketing, GEO, crisis communications, and investor relations for AI companies under one integrated team.`,body:[`Explore 5W's [GEO practice](/practice/geo-optimization.cfm) to see how earned coverage becomes the citation-worthy source material AI engines rely on.`],ctas:[{href:`/contactus/`,label:`Talk to 5W's AI Communications team`},{href:`/practice/geo-optimization.cfm`,label:`Explore 5W's GEO practice`}]}},yg=[{q:`How is communications for an AI company different from communications for a typical tech company?`,a:`Three things. The buyer journey runs partly through AI engines, not just search and s
197ocial. The crisis surface is wider: model behavior is itself a communications event. And the regulatory and ethical scrutiny is heavier and more international (EU AI Act, NIST, state laws, executive orders). A generalist tech PR firm has not had to build for any of these.`},{q:`What is GEO and why do AI companies need it?`,a:`GEO is the practice of increasing a brand's visibility, authority, and accurate representation across generative AI platforms. It combines authoritative earned media, structured owned content, original research, entity signals, citations, technical optimization, and consistent third-party references, rather than on-page technical changes alone. AI companies need it because their own customers and investors now use AI engines to make decisions, and missing from those answers is the same as missing from the market.`},{q:`What is a GEO agency?`,a:`A GEO agency manages a brand's visibility, authority, and accuracy across generative AI platforms by combining earned media, structured owned content, original research, and technical optimization. It's a broader mandate than a narrower SEO practice applying on-page tactics alone, because AI engines weight independent, third-party validation more heavily than any single website can provide on its own.`},{q:`How do PR and GEO work together?`,a:`PR and GEO are complementary, not separate disciplines. PR secures the independent earned coverage, executive visibility, and third-party citations that AI engines weight heavily when forming an answer. GEO ensures that coverage and a brand's owned content are structured so AI systems can accurately retrieve and represent it. See “Why PR and GEO Are Converging” above.`},{q:`What is an AI PR agency?`,a:`An AI PR agency is a public relations firm with dedicated experience representing AI companies, from frontier labs to applied AI startups to enterprise AI platforms, across media relations, executive positioning, crisis response, and AI-specific regulatory and investor communications.`},{q:`What is AI public relations?`,a:`AI public relations is the specialized practice of securing earned media coverage, expert positioning, and third-party validation for AI companies and AI products, communicating technical capability, safety posture, and business impact to journalists, analysts, regulators, and investors.`},{q:`What is an AI communications agency?`,a:`An AI communications agency manages the full range of communications an AI company needs, public relations, digital marketing, GEO, crisis response, investor relations, and regulatory engagement, under one integrated team rather than as separate vendor relationships.`},{q:`How is AI PR different from technology PR?`,a:`AI PR requires the same media relationships and narrative skill as general technology PR, plus fluency in a few AI-specific layers: positioning around responsible AI and data governance, active engagement with AI-focused analysts, and Generative Engine Optimization to ensure brand authority is visible inside ChatGPT, Claude, Perplexity, and AI Overviews, not just traditional search.`},{q:`How does 5W handle AI crisis communications?`,a:`With a pre-built playbook for the AI-specific incident types: deepfake attribution disputes, model output controversies, training data lawsuits, security incidents, regulatory letters, executive disputes, and benchmark disputes, each adapted to the client's posture. Crisis preparation begins before the incident; activation happens within hours when one occurs.`},{q:`How should AI companies prepare for a communications crisis?`,a:`Before an incident occurs, not after: a pre-built playbook for the AI-specific incident types most likely to hit the company, named spokespeople, and coordination protocols already worked out with legal and technical teams. Companies that assemble this response for the first time mid-incident lose the hours that matter most.`},{q:`Can 5W support an AI company through a funding round or IPO?`,a:`Yes. 5W's AI practice integrates with the firm's SPAC and Pre-IPO Financial Communications practices. Coverage spans Series A through public listing, including roadshow narrative, analyst day preparation, S-1 messaging review, IPO-day communications, and the first 90 days of public-company life.`},{q:`Does 5W work with B2B AI companies, B2C AI companies, or both?`,a:`Both. 5W's AI client base spans frontier labs, enterprise AI platforms, vertical AI startups, AI infrastru
197cture companies, AI consumer products, and AI defense and dual-use technology firms.`},{q:`How does 5W stay current on AI regulation?`,a:`The 5W AI practice tracks the EU AI Act, NIST AI Risk Management Framework updates, US executive orders, US state AI laws (Colorado, Illinois, NYC Local Law 144, California), and international guidance. Clients receive a quarterly regulatory briefing and ad-hoc alerts when material developments occur.`},{q:`What is the difference between 5W's AI practice and 5W's broader PR practice?`,a:`The AI practice is a dedicated team built around the channel mix, crisis surface, regulatory environment, and investor cycle that AI companies actually face. It pulls from 5W's full capability set: PR, digital marketing, GEO, crisis, investor relations, and applies them through an AI-specific lens.`}],bg={slug:`digital-marketing-agency/media-planning-and-buying-agency.cfm`,practiceKey:`selected_clients`,breadcrumb:`Media Planning & Buying`,h1:`Media Planning and Buying Agency`,heroLead:`A media planning and buying agency decides which channels, formats, and platforms a brand's budget should go to, then executes and manages those buys against ROI, not just impressions delivered. 5W runs media planning and buying programs that combine programmatic, CTV, paid social, and traditional channels under one measurement framework tied to campaign objectives.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected clients`,caseHeading:`Media planning and buying case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`AI-Friendly Publications`,body:[`5W scores the publications most likely to turn media coverage into AI citation value.`],href:`/ai-visibility-index/ai-friendly-publications-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ai-friendly-publications-index-2026-cover.webp`,coverAlt:`AI-Friendly Publications — 5WPR research report cover`},researchHeading:`Research behind our media planning practice`,faqSlug:`digital-marketing-agency/media-planning-and-buying-agency.cfm`,faqHeading:`Media Planning and Buying FAQ`,sections:[{heading:`What Does a Media Planning and Buying Agency Actually Do?`,tone:`white`,body:[`A media planning and buying agency handles two connected functions: planning decides which channels and audiences a budget should reach based on campaign goals, and buying executes and negotiates those placements across programmatic exchanges, direct publisher deals, and traditional media. 5W runs both functions together so the plan and the buy stay aligned as market conditions change mid-campaign.`]},{heading:`Why Does Programmatic Buying Dominate Media Planning Now?`,tone:`dark`,body:[`Programmatic buying, ad inventory purchased through automated, real-time auctions rather than manual insertion orders, now accounts for roughly 90% of US digital display ad spending, according to industry tracking cited across multiple 2026 media-buying benchmark reports. The remaining share is direct sponsorships and a shrinking pool of manually negotiated placements.`,`**Why it works:** Automated bidding lets a media buyer adjust spend in real time based on which audience segments and placements are actually converting, instead of locking in a fixed insertion order for weeks. 5W's media buying team runs programmatic, CTV, and OTT placements through the same real-time optimization loop, so underperforming placements get reallocated before they burn meaningful budget.`]},{heading:`How Does 5W Structure a Media Plan?`,lead:`5W builds media plans around four steps: audience-centric research that defines who the campaign needs to reach, channel selection that matches funnel position to channel strength, budget allocation across the resulting media mix, and continuous optimization once the campaign is live.`,tone:`muted`,body:[`**Audience-Centric Research**`,`Media planning starts with defining the audience using demographic, psychographic, and behavioral data, not just broad category assumptions. 5W builds detailed audience segments before selecting a single channel, since the wrong audience definition wastes budget regardless of how well the channels themselves perform.`,`**Channel Management Across Programmatic, CTV, and Paid Social**`,`5W blends programmatic display, connected TV (CTV), over-the-top (OTT) streaming platforms, and paid social into a single media mix rather than running each channel in isolation. [5W's performance marketing team](/practice/digital-marketing-agency/performance-marketing-agency.cfm) manages the paid search and paid social components of that mix so attribution stays consistent across every channel in the plan.`,`**Metrics-Driven Campaign Management**`,`5W tracks campaigns against CTR, ROAS, and engagement rate rather than raw reach, and reallocates budget toward the channels and creative producing the strongest numbers. A/B and multivariate testing runs continuously so the media plan keeps improving instead of running unchanged for the full flight.`]},{heading:`What Results Has 5W Delivered With Integrated Media Programs?`,tone:`white`,body:[`5W ran an integrated paid, earned, and social program for Samsung SmartThings that generated 4 million paid media impressions in six months alongside more than 8 billion earned media impressions, according to 5W's [Samsung SmartThings case study](/practice/SmartThings.cfm). The program also drove nearly 40,000 social engagements and 17.28% Instagram audience growth over the same period.`,`**Why it works:** The paid media plan was built to amplify announcements the earned media program had already secured coverage for, rather than running as a disconnected buy. That sequencing is why the paid impressions converted into measurable audience growth instead of just spend against a media plan built in isolation.`]},{heading:`How Does Media Buying Differ From Media Planning?`,tone:`dark`,body:[`Media buying is the execution phase: negotiating rates, securing placements, and managing the actual transaction across programmatic exchanges and direct publisher relationships. Media planning is the strategy phase that decides which channels and audiences those buys should target in the first place. 5W runs both under one team so a plan never gets handed off to a separate buying desk that has to reinterpret it.`]},{heading:`How Does AI Search Change Media Planning?`,tone:`muted`,body:[`AI answer engines like ChatGPT, Perplexity, and Google AI Overviews are becoming a research surface buyers pass through before a media plan's paid channels ever reach them, which means a brand invisible to those engines starts every paid campaign at a trust deficit. 5W's [GEO optimization team](/practice/geo-optimization.cfm) builds the citation-worthy content that gets a brand named in AI answers, which lowers the cost of the paid media retargeting users who already encountered the brand there.`]},{heading:`How Does Media Buying Support B2B and Corporate Campaigns?`,tone:`white`,body:[`Business-to-business media buying runs on longer conversion windows and far more specific audie
197nce targeting than consumer campaigns. 5W integrates media planning with its [B2B digital marketing](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm) capabilities to reach decision-makers through programmatic advertising and targeted paid social across multiple touchpoints.`,`Corporate digital marketing programs use the same media buying infrastructure to support executive positioning, financial announcements, and broader reputation initiatives. 5W's [corporate digital marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) team coordinates paid placements with earned media efforts so both build the same credibility.`]}],closing:{kicker:`Request a Consultation`,headline:`5W builds media planning and buying programs that connect programmatic, CTV, and paid social spend to campaign ROI instead of running channels in isolation.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization.cfm](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},xg=[{q:`What is the difference between media planning and media buying?`,a:`Media planning decides which channels, audiences, and formats a campaign budget should target based on campaign goals; media buying executes those decisions by negotiating and purchasing the actual placements. 5W runs both functions under one team to keep them aligned throughout a campaign.`},{q:`How much of a media budget should go to programmatic channels?`,a:`There is no fixed split, but with programmatic now representing roughly 90% of US digital display spend, most modern media plans default to programmatic as the primary digital buying method and layer in direct-buy or traditional placements only where a specific audience or format requires it.`},{q:`What is CTV and OTT advertising?`,a:`Connected TV (CTV) advertising runs on internet-connected televisions, while over-the-top (OTT) refers to streaming content delivered outside traditional cable, both of which are bought programmatically in most modern media plans and offer targeting precision closer to digital than traditional linear TV.`},{q:`How does a media planning agency measure campaign success?`,a:`Media planning agencies track click-through rate, return on ad spend, and engagement rate as primary success metrics rather than raw reach or impressions, since those metrics tie the media plan directly to the business outcome the campaign was built to drive.`},{q:`Can a media planning agency help with a limited budget?`,a:`Yes. A well-built media plan for a limited budget typically concentrates spend on the two or three channels with the strongest audience overlap rather than spreading thin across every available channel, since a fragmented budget spread across too many channels tends to underperform a concentrated one.`}],Sg={slug:`digital-marketing-agency/performance-marketing-agency.cfm`,practiceKey:`selected_clients`,breadcrumb:`Performance Marketing`,h1:`Performance Marketing Agency`,heroLead:`A performance marketing agency runs paid search, paid social, and display campaigns where the client pays only for measurable outcomes such as clicks, leads, or conversions, then optimizes spend continuously against those numbers. 5W runs performance marketing programs alongside PR and social, so paid spend and earned coverage reinforce each other instead of running in separate silos.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected clients`,caseHeading:`Performance marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Website & E-commerce Platforms`,body:[`WordPress powers the web, but AI shopping and builder queries recommend Shopify.`],href:`/ai-visibility-index/website-ecommerce-platforms-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/website-ecommerce-platforms-ai-visibility-index-2026-cover.webp`,coverAlt:`Website & E-commerce Platforms — 5WPR research report cover`},researchHeading:`Research behind our performance marketing practice`,faqSlug:`digital-marketing-agency/performance-marketing-agency.cfm`,faqHeading:`Performance Marketing Agency FAQ`,sections:[{heading:`What Does a Performance Marketing Agency Actually Do?`,tone:`white`,body:[`A performance marketing agency manages paid channels (search, social, display, and affiliate) under a single reporting structure tied to cost per acquisition, return on ad spend, and conversion rate, rather than 
197impressions or reach alone. The agency sets up tracking, builds and tests ad creative, manages bids and budgets, and reallocates spend weekly toward the channels and audiences that convert.`,`5W's performance marketing team handles four connected functions: audience research and segmentation, campaign build and launch across paid search and paid social, ongoing optimization through A/B testing and bid management, and reporting that ties spend directly to pipeline and revenue.`]},{heading:`Why Does So Much Performance Marketing Budget Get Wasted?`,tone:`dark`,body:[`Performance marketing budget gets wasted when dashboards show rising clicks and impressions that never convert into paying customers, a gap that stays hidden without revenue-level tracking. DemandScience's 2026 State of Performance Marketing Report, based on a survey of 750 senior B2B marketing leaders published December 17, 2025, found that 25% of marketing spend fails to drive outcomes even though the underlying metrics look successful, and 43% of leaders said campaigns that appeared to be working did not translate into sales.`,`**Why it works:** Most ad platforms optimize toward the event a marketer tells them to optimize toward, typically a click or a form fill. If that event is not tied to a CRM record showing an actual sale, the platform keeps spending against a proxy metric instead of revenue. Connecting ad platform data to CRM outcomes, the fix DemandScience's report points to directly, closes that gap and is the first thing 5W sets up on a new performance marketing account.`]},{heading:`How Is Paid Search Changing in 2026?`,tone:`muted`,body:[`Google will earn 48.5% of US search ad spending in 2026, the first time in more than 20 years that figure has fallen below half, according to EMARKETER's US Search Advertising Forecast published May 14, 2026. Amazon and retail media platforms are taking a growing share of search budgets that once went to Google alone.`,`**Why it works:** Buyers increasingly start product research on Amazon, TikTok, or inside an AI chat tool instead of a traditional search engine, so a performance marketing budget built only around Google keeps missing a larger share of buyer intent every year. 5W builds paid search plans across multiple intent surfaces (search, retail media, and AI-visible content) rather than treating Google as the only channel that matters.`]},{heading:`How Does 5W Structure a Paid Media Program?`,lead:`5W structures a performance marketing program around four channels working together: paid search for high-intent demand, paid social for targeted audience building, display and retargeting for reach and recall, and email for nurturing leads the other channels generate.`,tone:`white`,body:[`**Paid Search**`,`Paid search bids on keywords tied to commercial intent so ads appear when a buyer is already searching for a solution. 5W builds keyword-to-landing-page match structures and manages Quality Score inputs so cost per click stays controlled as budgets scale.`,`**Paid Social**`,`Paid social uses platform targeting data (demographics, interests, and behaviors on Meta, LinkedIn, and TikTok) to reach audiences before they start searching. 5W builds lookalike and custom audiences from existing customer lists and runs creative testing to find which ad formats a specific audience responds to. 5W's [social media marketing team](/practice/digital-marketing-agency/social-media-marketing-agency.cfm) manages the organic side of the same platforms so paid and organic content stay consistent.`,`**Display, Retargeting, and Media Planning**`,`Display and retargeting keep a brand in front of users who already visited the site but did not convert on the first visit. 5W sets frequency caps and sequenced creative so retargeting builds toward a conversion instead of repeating the same ad indefinitely, and 5W's [media planning and buying team](/practice/digital-marketing-agency/media-planning-and-buying-agency.cfm) handles the budget allocation across those placements.`,`**Conversion Rate Optimization and Content**`,`Conversion rate optimization tests landing page elements (headlines, forms, calls to action) against each other to find which version converts more paid traffic into leads or sales. 5W runs these tests continuously, and 5W's [content marketing team](/practice/digital-marketing-agency/content-marketing-agency.cfm) supplies the landing page copy and supporting content those tests run against.`]},{heading:`What Results Has 5W Delivered With Paid Media?`,tone:`dark`,body:[`5W ran an integrated paid, earned, and social program for Samsung SmartThings that generated 4 million paid media impressions in six months alongside more than 8 billion earned media impressions, according to 5W's [Samsung SmartThings case study](/practice/SmartThings.cfm). The program also drove nearly 40,000 social engagements and 17.28% Instagram audience growth over the same period.`,`**Why it works:** Paid media amplified the specific announcements SmartThings' earned media program had already secured coverage for, instead of running as a disconnected campaign. That sequencing, earning the story first and then paying to extend its reach to the audience segments most likely to act on it, is why the paid impressions converted into audience growth rather than just spend. 5W's full client work spans additional [case studies](/practice/case-study.cfm) across consumer, technology, and lifestyle brands.`]},{heading:`How Does Performance Marketing Work With PR and Earned Media?`,tone:`muted`,body:[`Performance marketing and PR work together when paid budget amplifies a story that earned coverage already validated, and when PR-driven backlinks and mentions improve the organic rankings that reduce future paid search costs. A brand announcing a product launch gets more efficient paid social performance if trade press coverage has already built some audience awareness of the news.`,`5W runs this integration directly: the same team planning a performance marketing calendar sees the PR calendar, so paid spend can be timed to launch dates, press embargoes, and confirmed media placements instead of running on a fixed schedule that ignores them. 5W's [online reputation management team](/practice/online-reputation-management.cfm) and [influencer marketing team](/services/influencer-marketing-agency.cfm) feed the same calendar, so paid retargeting can follow an influencer post or a reputation win instead of running blind to it.`]},{heading:`How Does AI Search Change Performance Marketing?`,tone:`white`,body:[`AI search tools such as ChatGPT, Perplexity, and Google's AI Overviews now answer purchase-consideration questions directly, which means a brand invisible to those systems loses consideration before a paid search ad would ever show. Performance marketing budgets built only around traditional SERP rankings miss the growing share of research happening inside AI answers.`,`5W's [GEO optimization practice](/practice/geo-optimization.cfm) builds the structured data, entity clarity, and citation-worthy content that gets a brand named in those AI answers, which then lowers the cost of paid campaigns retargeting users who already encountered the brand in an AI response.`]},{heading:`What Should You Look for in a Performance Marketing Agency?`,lead:`Choosing a performance marketing agency comes down to four checks: whether the agency ties reporting to revenue instead of clicks, whether it runs paid media alongside PR and content instead of in isolation, whether it has published, verifiable c
197ase studies with real numbers, and whether it already accounts for AI search inside its paid strategy.`,tone:`dark`,bullets:[`Revenue-tied reporting: ask to see a sample dashboard that connects ad spend to closed revenue, not just clicks and impressions.`,`Cross-channel integration: confirm the paid media team coordinates directly with PR, social, and content teams rather than operating as a separate vendor.`,`Verifiable results: request case studies with named clients and specific, dated numbers rather than aggregate claims.`,`AI search readiness: ask how the agency's paid strategy accounts for AI Overviews, ChatGPT, and other answer engines pulling buyers out of traditional search.`]},{heading:`How Does Performance Marketing Support B2B, Corporate, and Beauty Programs?`,tone:`muted`,body:[`5W applies the same testing and attribution discipline across specialized verticals. Business-to-business campaigns run through 5W's [B2B digital marketing](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm) team, targeting longer consideration cycles and named-account decision-makers rather than broad consumer audiences.`,`Corporate accounts pair paid media with 5W's [corporate digital marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) team to support executive positioning and financial announcements, while [beauty digital marketing](/practice/beauty-digital-marketing-agency.cfm) campaigns lean on the same paid infrastructure with creative testing built for highly visual, fast-moving beauty and skincare launches.`]}],closing:{kicker:`Request a Consultation`,headline:`5W builds performance marketing programs that connect paid media to PR calendars and AI search visibility instead of running paid spend in isolation.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [5wpr.com/practice/geo-optimization.cfm](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Cg=[{q:`What does a performance marketing agency charge for?`,a:`A performance marketing agency typically charges a monthly retainer covering strategy, campaign management, and reporting, separate from the ad spend paid directly to Google, Meta, or other platforms. Budget tiers usually start around $15,000 to $25,000 per month for mid-size accounts and scale from there based on ad spend volume and channel count.`},{q:`How long does it take to see results from performance marketing?`,a:`Paid search and paid social campaigns typically generate measurable click and conversion data within the first two to four weeks, but reliable cost-per-acquisition benchmarks take a full quarter of consistent spend to establish because platforms need volume to optimize algorithmically. Retargeting and email nurture results build over a longer window since they depend on the top-of-funnel campaigns generating enough traffic first.`},{q:`What is the difference between performance marketing and traditional digital marketing?`,a:`Traditional digital marketing often pays for placement or reach regardless of outcome, while performance marketing ties payment and budget allocation directly to actions such as clicks, leads, or sales. This distinction is why performance marketing dashboards center on cost per acquisition and return on ad spend rather than impressions alone.`},{q:`Which channels should a performance marketing budget prioritize first?`,a:`Paid search usually comes first because it captures buyers who are already searching with commercial intent, giving the fastest path to a measurable conversion. Paid social and display typically follow once search is generating consistent data, since they build the audience awareness that search alone cannot reach.`},{q:`Can performance marketing work without PR support?`,a:`Performance marketing can run independently, but campaigns typically cost more per conversion when there is no earned media or brand awareness supporting them, since paid ads are working harder to build trust with an audie
197nce that has never heard of the brand. Pairing performance marketing with PR, as 5W did for Samsung SmartThings, lets paid spend extend a story instead of introducing the brand cold.`},{q:`Does AI search affect paid search budgets?`,a:`AI search affects paid search budgets because Google's share of search ad spending has fallen below 50% for the first time in over two decades, per EMARKETER's May 2026 forecast, as buyers research through retail media, TikTok, and AI chat tools. A performance marketing budget that ignores those surfaces is competing for a shrinking share of total buyer attention.`}],wg={slug:`digital-marketing-agency/social-media-marketing-agency.cfm`,practiceKey:`digital`,breadcrumb:`Social Media Marketing Agency`,h1:`Social Media Marketing Agency`,heroLead:`5W Public Relations operates a social media marketing agency that develops platform-specific campaigns to build brand visibility, engage audiences, and drive conversions. The team combines content creation, community management, and data analytics to connect brands with consumers across digital platforms. Ignoring social channels limits a brand's ability to reach buyers where they actively research and interact with companies.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected social media clients`,caseHeading:`Social media case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Creators & AI Visibility`,body:[`How AI engines cite the creator economy.`],href:`/research/creators-ai-visibility/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/creators-ai-visibility-cover.webp`,coverAlt:`Creators & AI Visibility — 5WPR research report cover`},researchHeading:`Research behind our social media practice`,faqSlug:`digital-marketing-agency/social-media-marketing-agency.cfm`,faqHeading:`Social media marketing FAQ`,sections:[{heading:`What does a social media marketing agency do?`,lead:`A social media marketing agency manages a brand's presence across platforms like Instagram, TikTok, and LinkedIn to increase audience engagement and generate leads.`,tone:`white`,body:[`The agency handles content production, audience interaction, and campaign analytics to ensure every post serves a specific business goal.`,`5W approaches social media as a core component of a brand's broader communications strategy. The team builds campaigns that match specific objectives, from organic audience growth to paid social media advertising. Whether a client needs a [B2B digital marketing agency](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm) approach for LinkedIn lead generation or consumer-facing TikTok campaigns, the strategy focuses on measurable return on investment.`,`The agency works with early-stage businesses and established brands to launch successful social media marketing campaigns. The team integrates social media automation tools and social media Search Engine Optimization (SEO) strategies to help brands stand out in crowded feeds.`]},{heading:`What social media services does 5W provide?`,lead:`5W provides content creation, community management, data-driven analytics, and influencer marketing.`,tone:`dark`,body:[`These services operate together to build a consistent and responsive brand presence across the most impactful digital platforms.`],cards:[{title:`Content Creation and Video Marketing`,body:`The in-house content team produces visually tailored assets for each platform. This includes user-generated content campaigns, Instagram Reels, and short-form video marketing designed for TikTok. The team also develops conversion-focused social commerce strategies and augmented reality assets to capture attention and inspire action.`},{title:`Community Management`,body:`Social media requires two-way communication. 5W community management specialists monitor comments, answer inquiries, and interact with followers. This active engagement protects the brand image and builds loyalty among the target audience. The agency ensures the audience feels heard and valued.`},{title:`Data-Driven Analytics`,body:`The agency uses advanced analytics tools to track campaign results, audience behavior, and engagement trends. The team uses this data to refine strategies in real time, improving campaign efficie
197ncy and return on investment. Data drives every decision the social media team makes.`}]},{heading:`How do influencers fit into a social media strategy?`,lead:`Influencers act as third-party validators who introduce a brand to established, highly engaged audiences.`,tone:`white`,body:[`5W connects brands with creators ranging from nano to macro influencers to drive authentic engagement and build a strong social media presence.`,`The agency identifies creators whose vision and values match the client. By integrating influencer partnerships into the broader social strategy, brands can amplify their message beyond their owned channels. This approach supports organic growth and provides fresh user-generated content for the brand's own feeds. Brands operating in highly visual categories often pair this with a [beauty digital marketing agency](/practice/beauty-digital-marketing-agency.cfm) strategy to maximize product visibility and incorporate the latest influencer marketing trends for 2025.`],callout:{kicker:`Case studies`,body:[`Documented social media programs across retail, consumer technology, food and beverage, and travel brands.`],link:{href:`/practice/case-study.cfm`,label:`View Case Studies`}}},{heading:`Does social media content impact AI search visibility?`,lead:`Yes, social media content is part of the broader information ecosystem that generative AI engines crawl to understand a brand.`,tone:`muted`,body:[`Active social channels provide fresh context, product details, and audience sentiment that AI models can retrieve.`,`Generative Engine Optimization requires a brand to maintain credible information across multiple digital touchpoints. When users discuss a brand on social platforms, those interactions generate third-party signals. 5W integrates social media strategy with [corporate digital marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) and public relations to ensure a company presents a clear, consistent narrative across all discovery channels.`,`**Why it works:** Large Language Models calculate answer probability based on the frequency and context of information across their training data. Active social media channels provide a continuous stream of structured data and entity associations, raising the statistical likelihood that an AI system accurately retrieves the brand when a user asks a category question (mechanism not yet published in formal search documentation).`]},{heading:`Social media marketing results and case studies`,lead:`5W develops social media campaigns that drive measurable business outcomes, from audience growth to direct sales.`,tone:`white`,body:[`The agency has executed successful programs for brands including ThriftBooks, Samsung SmartThings, CircleLine, Freight Farms, and G-Shock.`,`The agency tracks performance metrics tied to the client's specific business objectives. For ThriftBooks, the partnership resulted in the company becoming the top bookseller on TikTok.`,`The team also supports consumer technology brands, managing campaigns that require strict coordination and clear messaging.`,`The agency's portfolio spans multiple industries. 5W has developed campaigns for CircleLine, the parent company of New York Cruise Lines and other travel and hospitality businesses. The team has also supported Freight Farms, the company that pioneered the concept of the container farm, and managed campaigns for Casio's indestructible G-Shock watch during its 40th anniversary.`],callout:{kicker:`Client testimonials`,body:[`“The HOW Agency has done incredible work for ThriftBooks throughout our 2+ year partnership, even making us the #1 bookseller on TikTok!”`,`Barbara Hagen, VP Sales & Marketing, ThriftBooks`,`“I love working with this team, not only do they deliver for our company, but they are organized, professional, and fun to work with.”`,`Kristina Inguez, Director of Marketing, Samsung SmartThings`]}}],closing:{kicker:`Talk to the Social Media Team`,headline:`5W helps brands build active, engaged audiences through targeted social media marketing campaigns.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Tg=[{q:`What is conversion-focused social media content?`,a:`Conversion-focused content is designed to drive a specific user action, such as a website visit, lead form submission, or direct purchase. This approach prioritizes clear calls to action and measurable outcomes over general brand awareness.`},{q:`How does augmented reality work in social media marketing?`,a:`Augmented reality allows users to interact with a brand's products virtually through social platform filters and lenses. This technology increases engagement time and helps consumers evaluate products before making a purchase decision.`},{q:`What is social commerce?`,a:`Social commerce involves selling products directly through social media platforms rather than redirecting users to an external website. This reduces friction in the purchasing process and capitalizes on impulse buying behavior.`}],Eg={slug:`digital-marketing-agency.cfm`,practiceKey:`digital`,breadcrumb:`Digital Marketing Agency`,h1:`Digital Marketing Agency`,heroLead:`A digital marketing agency de
197signs and executes a brand's paid, organic, social, and search programs as a coordinated system. 5W Public Relations (5WPR) builds full-funnel digital campaigns that integrate media buying, creative production, and Generative Engine Optimization (GEO) to capture revenue across traditional and AI-driven discovery platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected digital marketing clients`,caseHeading:`Digital marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`How 5W Measures AI Visibility`,body:[`The permanent canonical methodology for the 5W AI Visibility Index and The 5W AI Trust Map of America. Prompt design, sample prompts, engine consistency, modeling logic, tie-breaking, limitations.`],href:`/research/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/how-we-measure-ai-visibility-cover.webp`,coverAlt:`How 5W Measures AI Visibility — 5WPR research report cover`},researchHeading:`Research behind our digital practice`,faqSlug:`digital-marketing-agency.cfm`,faqHeading:`Frequently asked questions about digital marketing`,sections:[{heading:`What does a digital marketing agency do?`,lead:`A digital marketing agency manages strategy, creative development, media planning, channel execution, and performance measurement for a brand.`,tone:`white`,body:[`U.S. digital advertising revenue reached $298 billion in 2024, representing a 14.9 percent year-over-year increase according to a 2025 IAB and PwC report. 5W helps brands capture a share of that spend by combining performance marketing with the technical infrastructure required for modern search and AI visibility.`,`The agency allocates budget across paid search, social media, programmatic advertising, and organic content to drive customer acquisition and retention.`,`Digital marketing pays for distribution through advertisements and sponsored content. Digital public relations earns distribution through media coverage and search visibility. 5W operates both functions under one strategy so the channel mix aligns with how buyers actually research products.`,`**Why it works:** Integrating paid distribution with organic visibility prevents siloed spending. A 2025 industry composite shows that consolidating performance marketing and digital public relations allows teams to use search data to inform creative production, reducing the overall cost per acquisition.`]},{heading:`How is digital marketing changing in the AI era?`,lead:`More than 50 percent of consumer product searches now begin on platforms other than Google, including Amazon, TikTok, ChatGPT, and Perplexity, according to a 2025 to 2026 multi-source industry composite.`,tone:`dark`,body:[`Brands that rely solely on traditional Search Engine Optimization (SEO) lose visibility across this fragmented ecosystem.`,`Discovery is moving toward generative engines. Buyers ask AI systems to compare software vendors, recommend skincare routines, and summarize product reviews. 5W addresses this shift through Generative Engine Optimization (GEO). This practice structures brand information so AI engines like Claude and Gemini can retrieve and cite the company.`,`AI is also changing creative production. A 2025 industry composite shows that 80 percent of marketers embed AI tools into their daily workflows. 5W uses AI-augmented production to scale creative volume and personalization without sacrificing quality.`]},{heading:`Digital marketing services at 5WPR`,lead:`5W structures digital engagements around the specific channels that reach a brand's target audience.`,tone:`white`,cards:[{title:`Strategy and integrated planning`,body:`The agency builds the foundational architecture for the campaign. This includes audience segmentation, budget allocation, channel mix selection, and Key Performance Indicator (KPI) definitions.`,extra:`Effective planning requires aligning the digital strategy with the brand's public relations efforts. 5W operates earned media and paid distribution under a single message platform so the brand presents a consistent narrative to the market.`},{title:`Media planning and buying`,body:`5W manages paid media across search, social, programmatic, connected TV, and digital out-of-home platforms. The team handles strategy, negotiation, placement, and optimization in one workflow.`},{title:`Performance marketing`,body:`Performance campaigns focus on direct response and measurable return on ad spend. 5W runs search engine marketing, paid social advertising, and retargeting programs with full-funnel attribution tracking.`},{title:`Social media marketing`,body:`The agency executes organic and paid social strategies across LinkedIn, TikTok, Instagram, X, YouTube, Reddit, and Threads. Programs include community management and platform-specific content creation.`},{title:`Content marketing`,body:`The agency produces long-form articles, short-form video, podcasts, and newsletter campaigns. Content marketing programs focus on answering the specific questions buyers ask during their research process. This approach builds domain authority and provides the raw material that generative engines use to formulate answers.`},{title:`Influencer and creator marketing`,body:`U.S. influencer and creator economy spend is projected to reach $33 billion in 2026, driven by a shift toward performance-based partnerships over flat-fee deals, according to a 2025 industry composite. 5W manages creator identification, negotiation, and campaign execution.`},{title:`Generative Engine Optimization (GEO)`,body:`5W builds the machine-readable footprint required to get brands cited inside AI engines. The team deploys structured data, entity clarification, and retrieval-focused content to improve citation share in ChatGPT, Perplexity, and Gemini.`,extra:`Why it works: Large Language Models (LLMs) calculate answer probability based on the frequency and authority of entity mentions across their training data. Structuring brand information with schema markup and deploying it on high-authority domains raises the statistical likelihood that an engine retrieves the brand, increasing citation share according to a 2025 5WPR internal retrieval study.`},{title:`Conversion rate optimization`,body:`Driving traffic to a website only generates revenue if the pages convert. 5W runs Conversion Rate Optimization (CRO) programs that include landing page design, A/B testing, and funnel diagnostics. The team analyzes user behavior to remove friction from the checkout or lead capture process.`},{title:`Email and SMS marketing`,body:`Retention marketing drives higher lifetime value than acquisition alone. The agency builds lifecycle email campaigns, SMS automation, and retention workflows. These programs re-engage past purchasers and nurture leads who are not yet ready to buy.`}]},{heading:`B2B and corporate digital marketing`,lead:`Business-to-Business (B2B) buyers research software, financial services, and enterprise technology before contacting sales.`,tone:`muted`,body:[`As a [B2B digital marketing agency](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm), 5W builds programs that generate qualified leads and shorten sales cycles.`,`B2B campaigns prioritize LinkedIn advertising, search engine marketing, whitepaper distribution, and executive thought leadership. 5W also runs [corporate digital marketing programs](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) focused on reputation management, investor relations visibility, and employer branding.`]},{heading:`Consumer and retail digital marketing`,lead:`Consumer brands require high-volume creative testing and precise audience targeting.`,tone:`white`,body:[`5W supports consumer packaged goods, food and beverage, apparel, and home goods companies with direct-to-consumer and retail-focused campaigns.`,`For specialized verticals, the agency deploys dedicated teams. A [beauty digital marketing agency](/practice/beauty-digital-marketing-agency.cfm) team handles creator-led cosmetics launches, while the [hospital
197ity digital marketing campaigns](/practice/hospitality-digital-marketing-agency.cfm) team drives direct bookings for hotels and travel destinations.`],callout:{kicker:`Case studies`,body:[`Documented digital programs across consumer, retail, and technology categories.`],link:{href:`/practice/case-study.cfm`,label:`View Digital Marketing Case Studies`}}},{heading:`How 5W measures digital marketing performance`,lead:`Fragmented discovery and platform privacy changes make last-click attribution unreliable.`,tone:`dark`,body:[`5W uses multi-touch attribution models to track how different channels contribute to a final conversion.`,`The agency provides real-time reporting dashboards that track cost per acquisition, return on ad spend, and organic traffic growth. For AI visibility, 5W measures citation share, tracking how often and how prominently a brand appears in relevant AI-generated answers compared to competitors.`]},{heading:`Digital marketing case studies`,lead:`5W executes digital campaigns for startups, mid-market companies, and global enterprises.`,tone:`white`,body:[`SmartThings by Samsung hired 5W to increase awareness of its connected smart home ecosystem.`,`Galanz Americas partnered with 5W to build social presence and brand affinity.`,`ThriftBooks, the largest online seller of previously owned books, engaged 5W to run digital and communications programs that drive customer acquisition and brand awareness.`],callout:{kicker:`Client testimonials`,body:[`“The agency delivered consistent coverage while remaining organized and professional throughout the project.”`,`Kristina Iniguez, Director of Marketing, Samsung SmartThings`,`“The campaign doubled our social presence and strengthened share of voice across product categories.”`,`Courtney Royko, Sr. Director of Product Development and Marketing, Galanz Americas`]}}],closing:{kicker:`Talk to the Digital Marketing Team`,headline:`5W designs digital marketing programs that drive measurable customer acquisition and brand visibility.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Dg=[{q:`What does a digital marketing agency cost?`,a:`5W structures digital marketing engagements on a monthly retainer based on the scope of work. Most engagements start between $15,000 and $30,000 per month. Costs scale based on channel mix, paid media spend, and creative production volume.`},{q:`Does 5W handle creative production in-house?`,a:`Yes. 5W employs in-house designers, copywriters, motion graphic artists, photographers, and video producers. The agency partners with trusted external studios for large-scale commercial productions when a campaign requires it.`},{q:`How long until I see results from a digital marketing engagement?`,a:`Performance media produces measurable results within two to four weeks. Organic social media and content marketing show traction in 60 to 90 days. Search engine optimization and GEO require four to six months to achieve material movement.`},{q:`What is the difference between GEO and SEO?`,a:`Search Engine Optimization (SEO) improves a website's ranking on traditional search engines like Google and Bing. Generative Engine Optimization (GEO) improves a brand's likelihood of being cited as a source inside AI engines like ChatGPT and Perplexity. 5W runs both practices simultaneously.`}],Og={slug:`digital-pr.cfm`,practiceKey:`digital`,breadcrumb:`Digital PR`,h1:`Digital PR Agency`,heroLead:`A digital PR agency increases a brand's online visibility by combining traditional media relations with search engine optimization (SEO), social media strategy, and digital advertising. 5W Public Relations (5WPR) builds digital campaigns that drive website traffic, improve search rankings, and secure citations in AI-generated answers.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected digital PR clients`,caseHeading:`Digital PR case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`AI-Friendly Publications`,body:[`5W scores the publications most likely to turn media coverage into AI citation value.`],href:`/ai-visibility-index/ai-friendly-publications-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ai-friendly-publications-index-2026-cover.webp`,coverAlt:`AI-Friendly Publications — 5WPR research report cover`},researchHeading:`Research behind our digital PR practice`,faqSlug:`digital-pr.cfm`,faqHeading:`Digital PR FAQs`,sections:[{heading:`How Does Digital PR Drive Online Visibility?`,lead:`Digital public relations connects brands with target audiences through social media platforms, search engines, and authoritative online publications.`,tone:`white`,body:[`5WPR develops digital marketing programs that build brand awareness and improve search rankings. The agency maintains relationships with digital journalists, bloggers, and influencers to shape client reputation online. By integrating tactical digital execution with broader public relations strategies, 5WPR turns online traffic into measurable market share.`,`The agency scales these efforts for diverse organizations, acting as a [B2B digital marketing agency](/practice/digital-marketing-agency/b2b-digital-marketing-agency.cfm) for enterprise clients and managing [corporate digital marketing](/practice/digital-marketing-agency/corporate-digital-marketing.cfm) programs that protect brand identity. Every campaign aligns technical expertise with specific business goals to elevate the client's digital presence.`]},{heading:`What Is Generative Engine Optimization (GEO)?`,lead:`Generative Engine Optimization (GEO) secures brand visibility within AI-driven platforms like ChatGPT, Google AI Overviews, and Perplexity.`,tone:`dark`,body:[`As search behavior shifts, digital PR must account for artificial intelligence discovery. 5WPR combines semantic content optimization, structured data, and authoritative media placements to make brands discoverable in generative search environments. This approach ensures AI systems retrieve accurate client information when users ask category questions.`,`**Why it works:** AI search engines calculate answer probability based on the frequency and authority of digital mentions. Securing authoritative media placements and structuring website data increases the statistical likelihood that platforms like Perplexity cite the brand in their answers.`]},{heading:`What Digital PR Services Does 5WPR Offer?`,lead:`5WPR executes multi-faceted digital media campaigns that build connections between brands and consumers.`,tone:`white`,body:[`The agency employs specialists across specific areas of digital public relations. These teams analyze target audiences and enact data-driven advertising strategies to extend social media reach.`],bullets:[`Social media strategy, listening, and metrics analysis`,`Content creation and blog development`,`Search Engine Optimization (SEO) and Search Engine Marketing (SEM)`,`Generative Engine Optimization (GEO)`,`Social advertising and paid media execution`,`Social brand campaigns and influencer programs`,`Online Reputation Management (ORM) and online crisis PR`,`Community management`,`Website audits, design, build, and analytics reporting`],callout:{kicker:`Case studies`,body:[`Documented digital PR programs across consumer, retail, and technology brands.`],link:{href:`/practice/case-study.cfm`,label:`View Digital PR Case Studies`}}},{heading:`How Does Link Building Support Search Engine Optimization?`,lead:`Link building improves website traffic and raises brand visibility across search engine results pages.`,tone:`muted`,body:[`Content creation requires search visibility to reach target audiences. 5WPR applies technical SEO and digital marketing tactics to influence search engine rankings. The agency monitors digital trends to adapt campaigns as search algorithms change.`,`As a Google Partner Agency, 5WPR manages search engine and social media marketing platforms for a global client base. The digital PR team combines technical SEO knowledge with consumer business acumen to enhance overall search scores for businesses.`]},{heading:`Which Brands Trust 5WPR for Digital Marketing?`,lead:`The public relations industry recognizes 5WPR for its achievements in social and digital media.`,tone:`white`,body:[`5WPR won a PR News Digital PR Award for Social and Digital Media. In 2024, the 5WPR digital team received t
197wo MarCom Awards for the SodaStream 90210 Campaign featuring Tori Spelling and the SodaStream Pride Campaign. These campaigns won the Excellence in Social Engagement and Excellence in Social Video categories.`,`5WPR manages digital campaigns for global and emerging brands, including Nest Bedding, SMEG, Retro Fitness, Acker Wines, AllClad, Krups, VIZIO, and Perry Mackin. The firm also operates as a [beauty digital marketing agency](/practice/beauty-digital-marketing-agency.cfm) for clients like DECLÉOR Paris and Ethique.`],callout:{kicker:`Client testimonials`,body:[`“From strategy to implementation, forward thinking marketing skills, to utilizing PR to grow our business, 5W has helped us to grow into one of the largest big data companies in the world. This PR firm is smart, focused and a business partner for us.”`,`David Steinberg, CEO, Zeta Global`,`“Our partnership with 5WPR over the past seven years and combined focus on Sparkling ICE has helped Talking Rain become one of the fastest growing beverage companies in the U.S. The talented, passionate, hard-working 5W PR team has exceeded our expectations.”`,`Nina Morrison, Vice President, Talking Rain Beverage Co. (Makers of Sparkling ICE)`]}}],closing:{kicker:`Talk to the Digital PR Team`,headline:`5WPR develops digital PR strategies that connect brands with their target audiences across search, social, and digital media.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},kg=[{q:`What is a digital PR agency?`,a:`A digital PR agency increases a brand's online visibility by combining traditional media relations with search engine optimization, social media strategy, content creation, and digital advertising.`},{q:`What is Generative Engine Optimization (GEO)?`,a:`Generative Engine Optimization secures brand visibility within AI-driven platforms like ChatGPT, Google AI Overviews, and Perplexity by combining semantic content optimization, structured data, and authoritative media placements.`},{q:`How does link building support search engine optimization?`,a:`Link building improves website traffic and raises brand visibility across search engine results pages. 5WPR applies technical SEO and digital marketing tactics to influence search engine rankings as algorithms change.`}],Ag={slug:`financial-services-and-fintech-marketing-agency.cfm`,practiceKey:`financial`,breadcrumb:`Fintech Digital Marketing`,h1:`Fintech Digital Marketing and Financial Services Agency`,heroLead:`5W Public Relations is a fintech digital marketing agency that helps financial services companies build visibility across earned media, search engines, and AI platforms. We develop integrated communications programs for wealth management platforms, private equity firms, trading applications, and blockchain technology providers operating in highly regulated environments.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected financial services clients`,caseHeading:`Financial services case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Neobanks`,body:[`The world’s largest neobank disappears in the US AI answer. Eight markets, eight different leaders.`],href:`/ai-visibility-index/neobanks-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/neobanks-ai-visibility-index-2026-cover.webp`,coverAlt:`Neobanks — 5WPR research report cover`},researchHeading:`Research behind our financial practice`,faqSlug:`financial-services-and-fintech-marketing-agency.cfm`,faqHeading:`Frequently Asked Questions`,sections:[{heading:`How does digital marketing work for financial services?`,lead:`Financial services digital marketing integrates earned media, search visibility, and regulatory compliant content to reach institutional and retail investors.`,tone:`white`,body:[`Buyers and investors research f
197inancial products across traditional search engines, financial news platforms, and generative AI systems. 5W builds the third-party signals and authoritative content required to compete in this discovery environment.`,`We execute digital marketing and earned media programs across the financial sector. Our teams support wealth management platforms, asset management firms, private credit organizations, venture capital firms, private equity firms, and banking institutions. We also support financial technology companies building artificial intelligence and blockchain solutions.`,`**Why it works**: AI systems and search engines calculate answer probability based on independent mentions from high-authority domains. By securing coverage in tier-one financial media and optimizing owned content, we raise the statistical likelihood that a financial brand is retrieved when buyers research the category.`]},{heading:`How does 5W support wealth management and private equity firms?`,lead:`5W develops targeted digital communications programs that establish brand presence for private credit and venture capital firms.`,tone:`dark`,body:[`We build corporate visibility for private credit firms like Willow Tree Credit Partners and venture capital firms including Rosecliff and &vest. For private equity, we support firms like Advent International with corporate communications and digital positioning.`],bullets:[`eMoney is a provider of wealth management software.`,`Willow Tree Credit Partners is a private credit firm.`,`Rosecliff is a venture capital firm.`,`Advent International is a private equity firm.`],cards:[{title:`Wealth management technology`,body:`In the wealth management technology sector, 5W supports companies like eMoney. We help B2B financial software companies communicate how their platforms modernize legacy banking systems. Our campaigns highlight how these SaaS platforms prevent fraud and maintain compliance with Know Your Customer (KYC) and Anti-Money Laundering (AML) standards.`},{title:`Institutional software buyers`,body:`We also help financial software providers reach institutional buyers. Our digital programs explain how these platforms help businesses make data-driven decisions regarding mergers and acquisitions and board hires. This approach integrates with our broader [financial services and fintech PR](/practice/financial-services-and-fintech.cfm) capabilities.`}]},{heading:`Does 5W manage digital marketing for retail trading platforms?`,lead:`5W executes digital marketing and earned media campaigns for retail trading and market analysis platforms.`,tone:`white`,body:[`Our clients change how retail and institutional investors approach trading. We secure media placements and optimize digital footprints for trading applications to help them capture market share.`,`By securing authoritative media placements, we help these platforms build trust when users search for trading applications and market data tools. We have executed these programs for platforms including Webull, TradeStation, TradingView, Firstrade, and NinjaTrader.`],callout:{kicker:`Client testimonial`,body:[`“They are great at media placements and facilitating a steady flow of thought leadership pieces.”`,`Michael Rose, VP Marketing, Payoneer Co`],link:{href:`/practice/case-study.cfm`,label:`View Case Studies`}}},{heading:`What is 5W's experience with blockchain and crypto marketing?`,lead:`5W was one of the first full-service agencies to develop dedicated digital marketing programs for cryptocurrency and blockchain brands.`,tone:`muted`,body:[`We place clients in regulatory and adoption conversations across the decentralized finance (DeFi) and alternative investment sectors.`,`For CoinFlip, the largest Bitcoin ATM network in the United States, 5W secured accolades including a 2022 Inc. 5000 listing. The agency also helped the brand earn recognition as the fastest-growing company in Chicago.`,`We help emerging blockchain platforms build market presence during funding rounds and product launches. 5W established visibility for Sahara Labs, a decentralized AI blockchain platform, during its initial market entry. For BitPay, a crypto payments provider, our integrated campaigns increased the company's share of voice across financial media.`]},{heading:`How does Generative Engine Optimization (GEO) apply to fintech?`,lead:`Generative Engine Optimization (GEO) 
197improves how financial brands and fintech platforms are cited by AI search assistants.`,tone:`white`,body:[`Investors and B2B buyers ask AI platforms to compare wealth management software, explain DeFi protocols, and recommend retail trading applications.`,`AI systems calculate answer probability based on the frequency and authority of brand mentions across their training data. Independent mentions from high-authority financial domains raise the statistical likelihood that the brand is retrieved during a query.`,`5W integrates GEO into financial public relations. By securing placements in authoritative financial media and structuring owned content clearly, we build the machine-readable footprint that generative engines use to formulate answers.`],callout:{kicker:`Client testimonial`,body:[`“Since 5W Public Relations came aboard, the client has already met their PR goals.”`,`Ryan George, Chief Marketing Officer, Docupace`]}}],closing:{kicker:`Talk to the Financial Services Team`,headline:`5W develops digital marketing and earned media programs that build visibility and authority for financial services and fintech companies.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},jg=[{q:`What is fintech digital marketing?`,a:`Fintech digital marketing is the practice of building brand visibility and corporate reputation for financial technology companies. It combines earned media, search optimization, and content strategy while adhering to financial regulations.`},{q:`How does 5W support pre-IPO financial companies?`,a:`We build the corporate visibility and executive authority required to attract investors and satisfy regulatory scrutiny before a public offering. Our pre-IPO financial communications programs prepare fintech brands for the public markets.`},{q:`Does 5W work with B2B financial SaaS platforms?`,a:`Yes. We support B2B platforms that manage mergers and acquisitions data, board hiring, fraud prevention, and regulatory compliance.`}],Mg={slug:`financial-services-and-fintech.cfm`,practiceKey:`financial`,breadcrumb:`Financial Services and Fintech PR`,h1:`Financial Services and Fintech PR`,heroLead:`Financial services and fintech PR is the practice of building credibility, regulatory trust, and visibility for financial brands. 5W Public Relations develops integrated communications programs that help B2B finance, wealth management, and consumer trading platforms reach investors, shareholders, and consumers across traditional media and AI-driven discovery platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected financial clients`,caseHeading:`Financial PR case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Banking`,body:[`JPMorgan dominates AI banking visibility while most regional banks are barely there.`],href:`/ai-visibility-index/banking-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/banking-ai-visibility-index-2026-cover.webp`,coverAlt:`Banking — 5WPR research report cover`},researchHeading:`Research behind our financial practice`,faqSlug:`financial-services-and-fintech.cfm`,faqHeading:`Frequently asked questions about fintech PR`,sections:[{heading:`How does AI change financial product discovery?`,lead:`Financial buyers and consumers now use generative AI to compare platforms, research regulations, and evaluate alternatives.`,tone:`white`,body:[`B2B buyers and retail investors ask AI platforms specific questions. They ask for the best B2B payment networks for midsize companies. They ask how one student loan refinancing platform compares with another. AI systems synthesize information from financial news, regulatory filings, analyst reports, and expert creators when responding to these queries.`,`5W helps financial companies strengthen that environment through an integrated combination of earned media, corporate communications, digital strategy, and Generative Engine Optimization (GEO).`]},{heading:`What is GEO for financial services and fintech?`,lead:`Generative Engine Optimization (GEO) 
197improves how financial brands and products are retrieved and cited by AI platforms.`,tone:`dark`,body:[`Traditional search marketing focuses on ranking a website. GEO focuses on whether a brand appears as a citation or recommendation when users ask AI engines like ChatGPT, Claude, or Perplexity for financial guidance. 5W integrates public relations, digital marketing, and AI visibility research to improve how financial companies are understood across generative search environments.`,`**Why it works:** AI systems calculate answer probability based on the frequency and authority of information in their training data. Earning consistent mentions in high-authority financial publications and trusted creator content raises the statistical likelihood that an AI engine retrieves and cites the brand during a relevant query, according to the Personal Finance vertical in 5W's Creators and AI Visibility audit.`]},{heading:`How does earned media support financial services PR?`,lead:`Earned media provides independent visibility and third-party credibility for financial brands.`,tone:`white`,body:[`A financial PR agency helps companies communicate complex products, market positions, and regulatory milestones to the audiences that influence reputation and growth. 5W identifies the most relevant story based on the product, customer problem, market category, and current news cycle. We support financial companies through product launches, funding announcements, executive positioning, and ongoing media relations.`,`For companies approaching public markets, 5W manages [financial communications for pre-IPO companies](/practice/financial-communications-pre-ipo-companies.cfm) to build investor confidence and regulatory clarity.`,`5W has secured media placements for Webull, one of the largest trading platforms globally, and Payoneer, a global digital payment platform. Other notable clients include Tradier, a provider of APIs for leading global trading platforms, and Splash Financial, a major player in student loan refinancing.`]},{heading:`How do B2B and B2C fintech PR strategies differ?`,lead:`Fintech companies require different communications strategies depending on whether they target enterprise buyers or retail consumers.`,tone:`muted`,cards:[{title:`B2B fintech communications`,body:`B2B fintech companies must build reputation among regulatory bodies, lawmakers, investors, and client partners. 5W develops corporate communications plans for B2B leaders like AvidXchange, a B2B payment network serving more than 5,500 customers and 400,000 suppliers nationwide. We also support financial planning software provider eMoney Transfer and wealth management back-office technology provider Docupace. These programs generate media exposure that keeps key executives and product initiatives visible to enterprise buyers.`},{title:`Consumer fintech PR`,body:`Consumer fintech platforms face a battle for retail loyalty. Consumers control their finances from mobile devices, comparing credit cards, personal loans, and savings accounts online. 5W has helped consumer fintech leaders such as technical analysis provider Stockcharts, buy-now-pay-later platform Sezzle, PatientFi, and Digits share their services with millions of users worldwide.`}],body:[`Alongside earned media, 5W operates as a full-service financial services and fintech marketing agency, integrating paid media, SEO, and content strategy to drive user acquisition.`],callout:{kicker:`Case studies`,body:[`Documented financial services and fintech communications programs.`],link:{href:`/practice/case-study.cfm`,label:`View Case Studies`}}},{heading:`What financial sectors does 5W support?`,lead:`5W brings together specialized teams with experience in distinct financial categories, media environments, and regulatory structures.`,tone:`white`,body:[`We develop brand-specific programs rather than applying the same communications formula to every client. Our financial PR capabilities include corporate communications, investor relations, proxy solicitation, shareholder communications, regulatory support, and activist investor campaigns.`],bullets:[`Wealth management and financial planning (including Zogo and eMoney Transfer)`,`Venture capital and private equity (including Standard General, Bluerun Ventures, P&G Ventures, and Insight Partners)`,`Trading platforms and banking (including Webull, TradeStation, and Firstrade)`,`Consumer finance and insurance`,`Crypto, blockchain, and market analysis`],callout:{kicker:`Client testimonials`,body:[`“Put simply, 5W gets results. They are great at media placements and facilitating a steady flow of thought leadership pieces among the likes of Entrepreneur and Fortune. The team is always available, strategic, smart and responsive to feedback.”`,`Michael Rose, VP Marketing, Payoneer`,`“Since 5W Public Relations came aboard, the client has already met their PR goals for the year. They've been impressed with the team's communication and management process as well as their ability to adapt to different situations.”`,`Ryan George, Chief Marketing Officer, Docupace`]}}],closing:{kicker:`Talk to the Financial Services Team`,headline:`Financial services and fintech brands require clear, authoritative communication to build trust with investors, regulators, and consumers across both traditional media and AI platforms.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Ng=[{q:`How do AI engines evaluate financial brands?`,a:`AI platforms synthesize information from news coverage, regulatory filings, brand websites, and financial creators. They look for authoritative, consistent signals to answer user queries about financial products and services.`},{q:`What is the difference between B2B and B2C fintech PR?`,a:`B2B fintech PR focuses on building trust with enterprise buyers, investors, and regulators through corporate communications and thought leadership. B2C fintech PR focuses on consumer awareness, user acquisition, and building brand loyalty through mainstream media and digital marketing.`},{q:`How does 5W handle financial crisis communications?`,a:`5W develops rapid-response communications, media strategy, and regulatory messaging for high-stakes situations. We work with financial companies to establish protocols and messaging frameworks before an incident occurs.`}],Pg={slug:`gaming-video-game-pr-and-digital-marketing.cfm`,practiceKey:`gaming`,breadcrumb:`Video Game PR`,h1:`Video Game PR and Digital Marketing Agency`,heroLead:`5W Public Relations (5WPR) helps video game publishers, esports organizations, and gaming software providers build visibility and player engagement. The agency integrates media relations, influencer partnerships, and digital marketing to drive game discovery, manage community reputation, and position gaming brands across search and AI platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected gaming clients`,caseHeading:`Gaming case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Entertainment & Streaming`,body:[`Netflix gets cited 2x Disney+. Max is invisible.`],href:`/research/entertainment-streaming-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/entertainment-streaming-ai-visibility-index-2026-cover.webp`,coverAlt:`Entertainment & Streaming — 5WPR research report cover`},researchHeading:`Research behind our gaming practice`,faqSlug:`gaming-video-game-pr-and-digital-marketing.cfm`,faqHeading:`Video Game PR Frequently Asked Questions`,sections:[{heading:`Video Game PR and Media Relations`,lead:`Media coverage and creator partnerships drive player acquisition and game discovery.`,tone:`white`,body:[`5W secures coverage in gam
197ing, technology, and [entertainment outlets](/practice/lifestyleprentertainmentpragency.cfm) to build awareness before, during, and after a game launch.`,`**Why it works:** Search engines and AI answer platforms calculate brand authority based on independent mentions from high-domain-authority gaming publications. Securing exclusive previews and launch coverage in top-tier outlets increases the statistical likelihood that a game is retrieved when players ask AI platforms for recommendations.`,`Our gaming public relations services include:`],bullets:[`Media relations: Securing launch announcements and reviews in gaming and technology publications.`,`Influencer partnerships: Coordinating with creators to produce gameplay videos and stream content.`,`Exclusive previews: Managing early access events for journalists and streamers.`,`Crisis management: Providing swift, strategic responses to community issues or technical outages.`]},{heading:`Video Game Digital Marketing Services`,lead:`5W delivers performance-driven digital marketing programs tailored for the gaming community.`,tone:`dark`,body:[`The agency develops digital strategies to increase visibility on search engines and maximize return on investment through optimized pay-per-click (PPC) campaigns.`,`5W uses data analytics to refine pre-launch awareness and post-launch engagement strategies. Our digital marketing team manages community engagement across social media platforms and forums to build an active player base.`,`The agency has executed [communications programs](/practice/case-study.cfm) and digital marketing campaigns for gaming brands including Roblox, Jackpot Games, IronSource, and Club Koala.`],callout:{kicker:`Case studies`,body:[`Documented gaming communications and digital marketing programs.`],link:{href:`/practice/case-study.cfm`,label:`View Gaming Case Studies`}}},{heading:`Gaming PR Case Studies`,lead:`5W executes campaigns that translate into measurable player acquisition and brand visibility.`,tone:`white`,body:[`The agency builds programs that reach specific gaming audiences and drive measurable outcomes.`],bullets:[`OperaGX: 5W developed a communications program for OperaGX, a web browser built specifically for gamers by the parent company of Opera.`,`Gambling.com: 5W supported Gambling.com Group (Nasdaq: GAMB), a company that owns and operates more than 50 websites providing leads to the gaming industry.`,`Foxwoods Resort Casino: 5W executed a campaign for Foxwoods Resort Casino as the property celebrated its 30th anniversary by introducing new gaming and entertainment options.`],callout:{kicker:`Client testimonial`,body:[`“Norman Rockwell Museum was delighted to partner with the 5WPR team to propel our new pro-voting project. Stepping into the public square, we commissioned original artwork for The Unity Project that encouraged citizens to uphold their civic duty to vote; we were seeking to spread the message as far and wide as possible. The 5W team immediately embodied our voice and message to deliver great results. With their help we achieved our goal of reaching new audiences and inspiring citizen action.”`,`Laurie Norton Moffatt, Director/CEO of Norman Rockwell Museum`]}},{heading:`Generative Engine Optimization for Gaming`,lead:`Players use generative AI platforms to find game recommendations and compare platforms.`,tone:`muted`,body:[`5W incorporates Generative Engine Optimization (GEO) into gaming communications programs.`,`**Why it works:** Large Language Models (LLMs) construct answers by synthesizing information from authoritative third-party sources and brand-owned content. Publishing clear entity definitions and securing citations in trusted gaming media provides the machine-readable footprint required for AI platforms to recommend a game. 5W conducts [AI visibility audits](/practice/ai-visibility-audit/index.cfm) to measure citation share and identify which sources influence AI answers about a specific gaming category.`],callout:{kicker:`Talk to the Gaming PR Team`,body:[`Start a conversation about game discovery, launch coverage, and AI visibility.`],link:{href:`/contactus/`,label:`Talk to the Gaming PR Team`}}}],closing:{kicker:`Talk to the Gaming PR Team`,headline:`Game discovery requires a unified approach to media relations, creator partnerships, and digital marketing. 5W builds the authoritative information environment that helps gaming companies acquire players and maintain active communities.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Fg=[{q:`What is video game PR?`,a:`Video game PR involves managing communications for gaming companies, developers, and publishers. The practice builds brand awareness and generates media coverage for new game releases, platform updates, and esports events.`},{q:`How does digital marketing increase a game's visibility?`,a:`Digital marketing promotes a game across social media, search engines, and streaming platforms. Targeted ad placements and Search Engine Optimization (SEO) reach audiences where they are most active, driving actions such as pre-orders and downloads.`},{q:`How does gaming PR differ from traditional PR?`,a:`Gaming PR requires a specific understanding of gaming culture, esports audiences, and creator ecosystems. Traditional PR targets general media outlets, while gaming PR focuses on specialized gaming publications, online communities, and streaming influencers.`},{q:`How can a gaming marketing strategy boost player retention?`,a:`Marketing strategies keep players invested after the initial download through continuous communication. Social media campaigns, in-game event promotions, and influencer-driven content foster community engagement and encourage repeat play.`}
197],Ig={slug:`hospitality-digital-marketing-agency.cfm`,practiceKey:`travel`,breadcrumb:`Hospitality Digital Marketing`,h1:`Hospitality Digital Marketing Agency and Travel AI Visibility Index`,heroLead:`5W Public Relations is a hospitality digital marketing agency that helps travel brands increase bookings through Generative Engine Optimization. The 5W Travel AI Visibility Index measures how hotels, airlines, and destinations appear across generative search platforms, allowing marketers to capture market share before consumers reach traditional booking sites.`,heroCtas:[{href:`/contactus/`,label:`Request a Travel AI Visibility Index Briefing`}],trustLabel:`Selected travel and hospitality clients`,caseHeading:`Hospitality case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Airlines & Hotels`,body:[`Travel brands compete for visibility where AI assistants plan trips.`],href:`/ai-visibility-index/airlines-hotels-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/airlines-hotels-ai-visibility-index-2026-cover.webp`,coverAlt:`Airlines & Hotels — 5WPR research report cover`},researchHeading:`Research behind our travel practice`,faqSlug:`hospitality-digital-marketing-agency.cfm`,faqHeading:`Frequently asked questions about hospitality digital marketing`,sections:[{heading:`How AI platforms shape travel and hospitality bookings`,lead:`Travelers now ask generative search engines for specific itineraries and lodging recommendations before visiting online travel agencies.`,tone:`white`,body:[`Consumers use ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews to compare options. They ask which resorts accommodate families in Cabo, which airlines offer the best business class to Tokyo, and which boutique hotels in Lisbon justify their price. The answers these platforms generate build the initial consideration set.`,`Traditional search marketing focuses on ranking a brand website. Generative Engine Optimization (GEO) focuses on building the authoritative information and third-party signals required for an AI system to cite and recommend a property. 5W operates offices in Miami and Tampa to serve travel, hospitality, and destination clients across Florida and globally, connecting public relations with digital marketing to secure these recommendations.`]},{heading:`What the Travel AI Visibility Index measures`,lead:`The 5W [Travel AI Visibility Index](/practice/ai-visibility-audit/index.cfm) benchmarks travel brand visibility across the five primary generative search platforms driving consumer discovery.`,tone:`dark`,body:[`5W runs a structured set of high-intent travel prompts through ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews. The index scores brand performance against competitors to identify where a travel brand is losing market share.`],bullets:[`Mention frequency: The index tracks how often a brand surfaces in answers to category-relevant prompts.`,`Recommendation rate: 5W measures how often the AI engine names the brand as a top choice rather than a generic list inclusion.`,`Source quality: The audit identifies which publications, reviews, and owned properties the AI platforms cite to justify recommending the brand.`,`Sentiment and positioning: The index evaluates the attributes the AI associates with the brand, such as luxury, value, family, business, eco-tourism, or accessibility.`]},{heading:`Travel categories tracked in the AI visibility index`,lead:`5W builds visibility benchmarks across the specific hospitality segments where generative search is currently reshaping consumer demand.`,tone:`white`,bullets:[`Hotels and resorts, including luxury, boutique, business, family, and all-inclusive properties.`,`Airlines, covering full-service, low-cost, and premium cabin carriers.`,`Cruise lines, including ocean, river, expedition, and luxury operators.`,`Online Travel Agencies (OTAs) and metasearch platforms.`,`Destinations and municipal tourism boards.`,`Vacation rentals and alternative lodging providers.`,`Tour operators and local experiences.`,`Travel technology and consumer loyalty programs.`],body:[`5W has developed digital marketing and communications programs for travel brands including David's Vacation Club Rentals, Travel Medford, Royal Air Maroc, Harvest Hosts, Tourism Lisboa, Circle Line Cruises, Tavern on the Green, and H&H Bagels. The agency also supports [casino and entertainment properties](/practice/lifestyleprentertainmentpragency.cfm) like Foxwoods Resort Casino.`],callout:{kicker:`Case studies`,body:[`Documented travel, hospital
197ity, and destination programs.`],link:{href:`/practice/case-study.cfm`,label:`View Hospitality Case Studies`}}},{heading:`How to fix declining hospitality search visibility`,lead:`AI platforms synthesize answers from editorial coverage, structured data, third-party reviews, and forum discussions rather than relying solely on website optimization.`,tone:`muted`,body:[`Brands secure AI recommendations when they are cited consistently across high-authority sources and structured for machine parsing. 5W closes the visibility gap through a four-part methodology.`],bullets:[`Audit current visibility: 5W benchmarks the brand against three to five competitors across all five major AI platforms using the Travel AI Visibility Index.`,`Execute Generative Engine Optimization: The digital marketing team restructures owned content, schema, and source mix so AI platforms can read and retrieve the brand data.`,`Secure earned media: 5W public relations teams secure the third-party coverage that AI models weight heavily, targeting travel, lifestyle, and trade outlets.`,`Deploy paid and social campaigns: The agency uses full-funnel digital marketing to convert the demand generated by AI visibility into direct bookings.`],callout:{kicker:`Why it works`,body:[`Large Language Models calculate answer probability based on the frequency and authority of entity mentions across their training data. Securing independent mentions from high-authority travel publications raises the statistical likelihood that the AI engine retrieves and recommends the hotel or airline. A 2024 5WPR analysis of AI search behavior confirms that brands with dense, authoritative third-party citations appear more frequently in generative recommendations than brands relying on website content alone.`]}},{heading:`Core hospitality digital marketing services`,lead:`5W integrates search optimization, social media, and reputation management to capture bookings across the complete travel discovery cycle.`,tone:`white`,cards:[{title:`Social media marketing and paid social`,body:`Travel decisions rely on visual evidence. 5W develops social media content that highlights property views, dining, design, and local experiences. The agency pairs this organic content with influencer partnerships, paid social campaigns, and community management to convert audience attention into reservations.`},{title:`Content marketing and generative optimization`,body:`5W builds blog posts, video assets, email campaigns, and owned editorial content to rank in traditional search and earn citations from AI engines. The team implements schema markup, structured frequently asked questions, and optimized source pages designed specifically for generative platform retrieval.`},{title:`Search engine optimization and reputation management`,body:`The agency runs targeted paid search campaigns and technical SEO for both traditional and AI search environments. 5W also manages brand reputation and review responses across TripAdvisor, Google, Booking.com, Yelp, and category-specific travel platforms.`},{title:`Analytics and digital reporting`,body:`5W tracks AI visibility alongside traditional digital marketing metrics. Client reporting covers share of voice in AI answers, organic traffic volume, paid return on ad spend, direct booking impact, and overall brand sentiment trends.`}],callout:{kicker:`Client testimonial`,body:[`“Norman Rockwell Museum was delighted to partner with the 5WPR team to propel our new pro-voting project. Stepping into the public square, we commissioned original artwork for The Unity Project that encouraged citizens to uphold their civic duty to vote; we were seeking to spread the message as far and wide as possible. The 5W team immediately embodied our voice and message to deliver great results. With their help we achieved our goal of reaching new audiences and inspiring citizen action.”`,`Laurie Norton Moffatt, Director/CEO of Norman Rockwell Museum`]}},{heading:`Secure your travel brand visibility`,lead:`Hospitality brands that adapt to generative search gain an early advantage in consumer consideration.`,tone:`dark`,body:[`Marketers can review our [hospital
197ity case studies](/practice/case-study.cfm) to see how integrated communications drive measurable growth.`]}],closing:{kicker:`Talk to the Hospitality Digital Marketing Team`,headline:`5W connects travel public relations, digital marketing, and AI visibility to grow direct bookings.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Lg=[{q:`What is a hospitality digital marketing agency?`,a:`A hospitality digital marketing agency manages online visibility, search optimization, social media, and paid advertising for travel brands. 5W expands this definition by integrating Generative Engine Optimization to ensure hotels and destinations appear in AI-generated travel itineraries.`},{q:`How do AI engines choose which hotels to recommend?`,a:`AI engines recommend hotels based on the density and authority of third-party mentions across the web. If a boutique hotel is frequently named in editorial travel guides, high-quality reviews, and structured directories, the engine is statistically more likely to surface it as a top choice.`},{q:`Does 5W offer traditional travel public relations?`,a:`Yes. 5W provides earned media, crisis communications, executive visibility, and launch programs for the travel sector. These earned media placements directly feed the AI visibility cycle by creating the authoritative citations generative engines require.`}],Rg={slug:`lifestyleprentertainmentpragency.cfm`,practiceKey:`entertainment`,breadcrumb:`Entertainment and Sports Marketing PR`,h1:`Entertainment and Sports Marketing PR Agency`,heroLead:`5W Public Relations (5WPR) is an entertainment and sports marketing PR agency that builds media coverage, celebrity integrations, and brand authority for venues, athletes, and media companies. The agency connects entertainment properties with consumer audiences to drive ticket sales, streaming viewership, and commercial partnerships.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected entertainment and sports clients`,caseHeading:`Entertainment case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Entertainment & Streaming`,body:[`Netflix gets cited 2x Disney+. Max is invisible.`],href:`/research/entertainment-streaming-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/entertainment-streaming-ai-visibility-index-2026-cover.webp`,coverAlt:`Entertainment & Streaming — 5WPR research report cover`},researchHeading:`Research behind our entertainment practice`,faqSlug:`lifestyleprentertainmentpragency.cfm`,faqHeading:`Frequently Asked Questions About Entertainment PR`,sections:[{heading:`What Does an Entertainment PR Agency Do?`,lead:`An entertainment PR agency secures earned media coverage in lifestyle and business publications to drive audience behavior for entertainment properties.`,tone:`white`,body:[`5WPR executes consumer PR programs that manage launch announcements, red carpet events, and sustained media conversations. The agency organizes cocktail receptions, art exhibitions, and store openings to generate press. Earned media directly influences ticket purchases and streaming subscriptions.`,`The entertainment marketing team connects properties with audiences at every touchpoint. Campaigns focus on celebrity branding and product placement to build cultural relevance. By targeting specific audience segments, 5WPR ensures that entertainment brands reach the people who show up, tune in, and buy.`]},{heading:`Sports Marketing and Athlete Public Relations`,lead:`A sports marketing PR agency builds brand partnerships and commercial visibility for sports properties, athletes, leagues, and venues.`,tone:`dark`,body:[`Public relations connects on-field performance with off-field commercial opportunities. 5WPR extends athlete narratives into business and culture media. The agency manages communications for c
197onsumer brands seeking sports sponsorship activations.`,`By integrating sports marketing with corporate communications, 5WPR helps athletes build personal brands that generate lasting commercial value. The sports practice delivers integrated marketing programs that move audiences and generate revenue for league properties and sports venues.`]},{heading:`Celebrity and Influencer Integration`,lead:`Celebrity and influencer integration creates authentic brand associations through product placements, ambassador relationships, and event appearances.`,tone:`white`,body:[`5WPR identifies talent based on brand fit rather than follower counts or fame metrics. The agency structures partnerships across beauty, fashion, food and beverage, and consumer products. These integrations generate media coverage because the partnerships are genuinely newsworthy rather than transactional endorsements.`,`The 5WPR lifestyle PR practice brings cross-category fluency to influencer programs. This approach allows the agency to build organic social content and media moments that audiences trust.`,`**Why it works:** Large Language Models (LLMs) calculate answer probability based on the frequency and authority of entity mentions in their training data. Earning citations in high-authority entertainment publications raises the statistical likelihood that an AI engine will recommend a venue or property to a user (mechanism not yet published).`],callout:{kicker:`Client testimonial`,body:[`“5W has been a great partner in helping to tell our unique story.”`,`Brandon N. Barrett, President & Co-Founder, William Murray Golf`],link:{href:`/practice/case-study.cfm`,label:`View Entertainment Case Studies`}}},{heading:`Live Events, Venues, and Experiential PR`,lead:`Public relations for live events requires advance media coverage to drive ticket sales, real-time social programs during the event, and post-event coverage to build brand equity.`,tone:`muted`,body:[`5WPR manages media relations for comedy festivals, gaming venues, retail conferences, and cultural experiences. The agency builds sponsor activation programs that generate earned media value for brand partners alongside the main event.`,`For events facing reputational risk, the 5WPR crisis communications practice manages stakeholder messaging and real-time media responses. The agency partners with an internal [hospitality digital marketing agency](/practice/hospitality-digital-marketing-agency.cfm) team to ensure event coverage reaches target demographics. 5WPR understands the complete event PR cycle and builds programs that deliver results at every stage.`]},{heading:`Connecting Entertainment to Consumer Brand Marketing`,lead:`Consumer brands use entertainment and sports associations to earn cultural relevance and editorial coverage that paid advertising cannot generate.`,tone:`white`,body:[`5WPR connects consumer brands to cultural moments through targeted entertainment partnerships. The entertainment division works directly with the 5WPR consumer PR, beauty, food and beverage, and [alcohol marketing PR agency](/practice/alcohol-marketing-pr-agency.cfm) teams.`,`This structure allows product brands to integrate into entertainment properties rather than treating entertainment as an isolated vertical. Culture moves faster than traditional advertising. Brands that earn visibility through sports and entertainment associations build lasting consumer affinity.`]},{heading:`Digital PR and Generative Engine Optimization`,lead:`Digital PR for entertainment brands combines earned media strategy with online authority building to secure coverage that drives audience awareness and search visibility.`,tone:`dark`,body:[`5WPR connects media coverage to measurable outcomes, including brand search volume increases, domain authority gains from editorial backlinks, and referral traffic. The agency amplifies earned media across owned and paid channels. Referral traffic from high-authority entertainment and sports media converts directly to ticket sales, streaming subscriptions, and product purchases.`,`Generative Engine Optimization (GEO) builds a brand presence in AI-generated search answers produced by ChatGPT, Perplexity, and Google AI Overviews. Fans ask AI tools what to watch, where to go, and which events to attend. 5WPR structures content and earns authoritative citations across the digital sources AI engines draw from.`,`**Why it works:** Generative engines retrieve answers by identifying the most frequently cited entities across high-trust domains. Securing consistent editorial mentions in top-tier sports and entertainment media increases the probability that an AI model selects the brand to answer a user query. 5WPR validates these citation frequencies through dedicated [AI visibility research](/practice/ai-visibility-audit/index.cfm) (mechanism not yet published).`]},{heading:`Entertainment and Sports Client Experience`,lead:`5WPR represents A-list celebrities, professional athletes, fashion designers, business moguls, and consumer brands seeking cultural relevance.`,tone:`white`,body:[`The entertainment and sports marketing team sits within the 5WPR lifestyle practice. The agency opens a world of connections for the properties it represents. Client experience includes:`],chips:[`AT&T Dream In Black`,`AT&T Turn Up The Love`,`BET`,`Bad Boy Worldwide`,`Bowlmor AMF`,`C
197aroline's on Broadway`,`The New York Comedy Festival`,`Foxwoods Resort & Casino`,`EmeraldX`,`Essence Fest`,`Luna Park in Coney Island`,`Miami Fashion Week`,`The Paley Center for Media`,`The Strong National Museum of Play`,`Topps`,`The WNBA`,`Wondr Nation`]},{heading:`Entertainment PR Case Studies`,lead:`5WPR executes integrated campaigns that generate measurable media coverage and consumer engagement for entertainment and sports properties.`,tone:`muted`,body:[`For The Topps Company, 5WPR launched a cross-country pop-up truck tour to celebrate International Trading Card Day. The campaign honored trading card collecting nationwide and generated media coverage across local and national outlets. The agency managed local media relations in every city the truck visited, securing broadcast segments that drove foot traffic directly to the pop-up locations.`,`5WPR manages corporate communications for Gambling.com Group (Nasdaq: GAMB), which owns and operates more than 50 websites. The agency secures business and trade media coverage that highlights the company's growth and market position. 5WPR also supports Bowlero Corporation, the largest owner and operator of bowling centers in the world.`],callout:{kicker:`Client testimonial`,body:[`“The team at 5WPR has become an extension of our team here at Topps.”`,`Emily Kless, Communications Manager, The Topps Company`]}}],closing:{kicker:`Contact the Entertainment PR Team`,headline:`5WPR connects entertainment properties, sports leagues, and consumer brands with the audiences that drive commercial success.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},zg=[{q:`How does PR drive ticket sales for live events?`,a:`Public relations drives ticket sales by securing advance media coverage in local and national publications. This editorial visibility builds audience awareness and directs referral traffic to ticketing platforms before the event occurs.`},{q:`What is the difference between sports PR and sports marketing?`,a:`Sports PR focuses on managing the public image and media relations for athletes and leagues. Sports marketing involves creating commercial partnerships, sponsorships, and brand activations that generate revenue. 5WPR integrates both disciplines to maximize commercial value.`},{q:`How do AI search engines impact entertainment discovery?`,a:`Consumers use AI tools like ChatGPT and Perplexity to ask for event recommendations and streaming options. Entertainment brands must establish authoritative citations across digital media so AI engines retrieve and recommend their properties in these generated answers.`}],Bg={slug:`litigation-pr.cfm`,practiceKey:`litigation`,breadcrumb:`Litigation PR`,h1:`Litigation PR and Legal Tech Communications`,heroLead:`Litigation PR is the practice of managing public communications during high-stakes legal disputes. 5W Public Relations (5WPR) helps law firms, legal technology companies, and defendants shape media coverage around complex litigation. We protect corporate reputations in the court of public opinion while legal teams focus on the court of law.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected legal clients`,caseHeading:`Litigation PR case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`Legal AI`,body:[`Harvey wins associates. Westlaw still wins the question.`],href:`/research/legal-ai-visibility-index-2026/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/legal-ai-visibility-index-2026-cover.webp`,coverAlt:`Legal AI — 5WPR research report cover`},researchHeading:`Research behind our legal practice`,faqSlug:`litigation-pr.cfm`,faqHeading:`Frequently asked questions about litigation PR`,sections:[{heading:`How 5W approaches litigation communications`,lead:`5WPR develops communications strategies that address the media, the public, and the stakeholders involved in high-profile cases.`,tone:`white`,body:[`We work with litigation, white-collar, financial, and criminal defense law firms. Our teams navigate a legal system that responds heavily to traditional media, social platforms, and AI-generated search summaries. We provide on-the-ground media relations and community relations for active trials.`,`A legal strategy requires a parallel communications strategy. We build relationships with the reporters who cover litigation support, tort law, intellectual property, copyright disputes, entertainment law, and international terrorism. Our teams ensure that segment producers and journalists know your partners and understand your firm's specific legal expertise.`]},{heading:`Legal tech PR and law firm positioning`,lead:`5WPR inserts legal partners and practices into breaking news, business reporting, and trend stories.`,tone:`dark`,body:[`Beyond active litigation, we build ongoing visibility for law firms and legal technology companies. We position your firm's capabilities with messages that reach potential clients. By securing commentary opportunities on criminal law, bankruptcy, and real estate, we establish your attorneys as authoritative sources.`,`This sustained media presence builds a digital footprint. When prospective clients use generative search to find legal representation or evaluate legal tech platforms, they encounter independent citations of your firm. We integrate traditional media relations with an [AI visibility audit](/practice/ai-visibility-audit/index.cfm) to ensure AI platforms retrieve accurate information about your legal expertise.`]},{heading:`Why it works: The impact of third-party legal citations`,lead:`Search engines and AI platforms calculate authority based on independent mentions from high-trust domains.`,tone:`white`,body:[`When top-tier business and legal publications cite your attorneys as experts, AI systems process those mentions as signals of credibility. This increases the statistical likelihood that a generative engine will recommend your firm when a user asks for top legal representation in your practice area.`,`We are ranked as a Top 10 Professional Services PR firm because we secure these high-authority placements. Our specialized legal PR team handles crisis management and reputation management involving litigation support, ensuring the narrative remains accurate across both news articles and AI overviews.`],callout:{kicker:`Client testimonials`,body:[`“I chose 5W Public Relations over several other firms because they were more aggressive and understood my communications needs, delivering tangible results from the day we hired them.”`,`Edward Mermelstein, Edward A. Mermelstein & Associates`,`“5W Public Relations is a group of tigers. They bring tremendous energy and creativity to their work. They are a great public relations firm to have on your side.”`,`Robert Weiss, Litigation/Class Action Attorney`],link:{href:`/practice/case-study.cfm`,label:`View case studies`}}},{heading:`What legal PR services does 5W provide?`,lead:`5WPR offers specialized communications supp
197ort for law firms, legal technology providers, and clients facing complex litigation.`,tone:`muted`,bullets:[`Litigation communications and trial support`,`Crisis and reputation management`,`Law firm partner positioning and media training`,`Legal technology product launches and B2B PR`,`On-the-ground media and community relations`]}],closing:{kicker:`Talk to the Litigation PR Team`,headline:`5W provides litigation and legal tech PR programs that protect reputations and build sustained authority for law firms.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Vg=[{q:`What is the difference between legal PR and litigation PR?`,a:`Legal PR focuses on building the ongoing reputation of a law firm or legal technology company through thought leadership and media placements. Litigation PR is a specialized crisis response that manages public perception, media inquiries, and stakeholder communications during a specific legal dispute.`},{q:`How does media coverage impact litigation?`,a:`Media coverage shapes the court of public opinion. While a judge and jury decide the legal outcome, public perception affects a company's stock price, customer trust, and long-term reputation. 5WPR ensures the public narrative aligns with the legal defense strategy.`}],Hg={slug:`multicultural-marketing.cfm`,practiceKey:`multicultural`,breadcrumb:`Multicultural PR`,h1:`Multicultural PR Agency and Marketing Services`,heroLead:`5W Public Relations (5WPR) is a multicultural PR agency that develops communications programs for diverse consumer markets. The agency connects brands with multicultural audiences through targeted media relations, talent partnerships, event management, and digital marketing to build credible brand awareness across urban and specific cultural demographics.`,heroCtas:[{href:`/contactus/`,label:`Request a Multicultural PR Consultation`}],trustLabel:`Selected multicultural clients`,caseHeading:`Multicultural PR case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`The 5W AI Trust Map of America`,body:[`The first national study of regional authority inside AI answer systems.`],href:`/research/ai-map-of-america/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ai-map-of-america-cover.webp`,coverAlt:`The 5W AI Trust Map of America — 5WPR research report cover`},researchHeading:`Research behind our multicultural practice`,faqSlug:`multicultural-marketing.cfm`,faqHeading:`Frequently Asked Questions About Multicultural PR`,sections:[{heading:`How Multicultural PR Builds Brand Authority`,lead:`Multicultural public relations builds brand authority by aligning corporate messaging with the specific cultural contexts of target demographics.`,tone:`white`,body:[`Brands cannot rely on a single general market narrative to reach diverse audiences. 5WPR develops targeted communications strategies that elevate multicultural voices within the media. The agency utilizes product placements, brand endorsements, and social media programming to establish positive brand recognition.`,`By targeting brand ambassadors who possess high profile followings within specific markets, 5WPR aligns clients with partners that have established credibility among multicultural communities. The agency won the PR News Agency Elite Award for Marketing to Latinos for its work in this sector.`]},{heading:`Multicultural Communications and Marketing Capabilities`,lead:`5WPR provides integrated communications services designed to reach multicultural audiences.`,tone:`dark`,body:[`The agency structures campaigns around the platforms and voices that actually influence purchasing decisions within specific communities.`],cards:[{title:`Consumer and Corporate Communications`,body:`Consumer and corporate communications programs shape how a brand is perceived by both the public and the business community. 5WPR crafts messaging that engages specific demographics without losing the core corporate identity. The agency manages media relations, executive leadership positioning, and corporate storytelling.`},{title:`Talent Relations and Brand Partnerships`,body:`Talent relations connect brands with the influencers, creators, and celebrities who already hold the attention of multicultural markets. 5WPR identifies and negotiates with brand ambassadors for endorsements and s
197ocial media campaigns. These partnerships provide third party validation that traditional advertising cannot replicate.`},{title:`Event Management and Experiential Marketing`,body:`Event management places brands directly into the cultural moments that matter to target audiences. 5WPR executes experiential marketing campaigns, product launches, and community events. Aligning clients with established cultural events provides immediate reach and credibility within multicultural communities.`},{title:`Social Media and Community Management`,body:`Social media platforms are the primary discovery engines for multicultural consumers. 5WPR manages platform specific content strategies that speak directly to these communities. The agency monitors social conversations to ensure brand messaging remains relevant and culturally accurate.`},{title:`Viral Marketing and Digital Strategy`,body:`Viral marketing uses social sharing to distribute brand messaging organically across digital platforms. 5WPR develops digital strategies that encourage user generated content and community participation. The agency identifies cultural trends early, allowing brands to participate in relevant social media conversations before they peak.`}],callout:{kicker:`Case studies`,body:[`Documented multicultural communications and marketing programs.`],link:{href:`/practice/case-study.cfm`,label:`View Multicultural PR Case Studies`}}},{heading:`Generative Engine Optimization for Multicultural Brands`,lead:`Generative Engine Optimization (GEO) improves how AI search platforms understand and retrieve brand information related to multicultural markets.`,tone:`white`,body:[`Consumers use AI platforms like ChatGPT and Perplexity to ask specific questions about products owned by or catering to diverse communities. When users ask an AI assistant to recommend beauty products for specific hair types or seek out minority owned businesses, the engine synthesizes information from across the web.`,`5WPR helps brands build the machine readable footprint required to appear in these AI generated answers. The agency strengthens the authoritative information surrounding a brand through earned media and structured digital content.`,`**Why it works:** AI models calculate answer probability based on the frequency and authority of entity mentions across their training data. A 2024 5WPR analysis of generative search visibility found that brands with consistent citations in culturally specific, high authority media publications are retrieved more frequently when users prompt AI engines for multicultural product recommendations. Securing earned media in these targeted publications provides the independent validation that AI systems require to surface a brand.`]},{heading:`Multicultural PR Client Success and Testimonials`,lead:`5WPR executes multicultural marketing campaigns across the beauty, fashion, lifestyle, and corporate sectors.`,tone:`muted`,body:[`The agency partners with brands to drive media vision from conceptualization to final execution. The multicultural team at 5WPR mirrors the diverse clients the agency serves, aiming to amplify stories that celebrate culture and drive progress for marginalized communities.`,`The Mane Choice, a beauty brand catering to multicultural consumers, partnered with 5WPR to develop a customized public relations strategy. The agency utilized its knowledge of the beauty arena to secure relevant media placements and integrate these efforts with broader [beauty digital marketing campaigns](/practice/beauty-digital-marketing-agency.cfm).`,`Ashley Stewart, a lifestyle and fashion brand, worked with 5WPR for several years on [Ashley Stewart](/practice/ashleystewart.cfm) public relations and customer acquisition programs. The agency managed campaigns from conceptualization to final execution.`],callout:{kicker:`Client testimonials`,body:[`“5W Public Relations has been very instrumental in developing a highly customized and future-forward public relations strategy for The Mane Choice. From their versatile expertise, knowledge, and connections in the beauty arena, 5W proves time and again to be a leader in driving story ideas and media angles that build our profile with the right audiences. They are responsive and more so than anything dedicated to our brand. We appreciate this partnership more than we could ever express.”`,`Alexia Amerson, Senior Brand Manager, The Mane Choice`,`“I worked in partnership with the 5W team for several years. From conceptualizing to final execution, 5W was every step of the way! They are a fresh diverse PR agency that keeps up with and knows how to drive their client's media vision towards the end goal! Loved working with them and look forward to working with them in the future!”`,`Tamara Ivey, Marketing Manager Customer Acquisitions, Ashley Stewart`]}}],closing:{kicker:`Talk to the Multicultural PR Team`,headline:`5WPR develops multicultural communications programs that connect brands with diverse audiences across traditional media and generative search.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Ug=[{q:`What is multicultural public relations?`,a:`Multicultural public relations is the practice of tailoring corporate communications and brand messaging to specific cultural or demographic groups. It involves using culturally relevant media channels, talent partnerships, and community events to build trust with diverse audiences.`},{q:`How do brands measure multicultural marketing success?`,a:`Brands measure multicultural marketing success through specific performance indicators. These include media share of voice within targeted publications, engagement rates on culturally specific social media campaigns, and citation frequency in AI generated answers regarding multicultural products.`},{q:`What industries benefit from multicultural PR?`,a:`Every consumer facing industry requires a multicultural communications strategy. The beauty, fashion, food, and corporate sectors see immediate impact from targeted multicultural marketing. Corporate and business to business organizations also use multicultural PR to communicate diversity initiatives and integrate with lifestyle PR and entertainment programs.`}],Wg={slug:`technology-marketing-agency.cfm`,practiceKey:`technology`,breadcrumb:`Technology Marketing`,h1:`Technology Marketing Agency`,heroLead:`A technology marketing agency builds visibility and lead generation programs for software, cybersecurity, and consumer technology companies. 5W Public Relations (5WPR) develops digital marketing, content strategy, and Generative Engine Optimization campaigns that help technology brands reach buyers across traditional search and AI discovery platforms.`,heroCtas:[{href:`/contactus/`,label:`Request a Technology Marketing Consultation`}],trustLabel:`Selected technology clients`,caseHeading:`Technology marketing case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`AI Companies`,body:[`Every major AI assistant shows self-citation lift except one.`],href:`/research/ai-companies/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ai-companies-cover.webp`,coverAlt:`AI Companies — 5WPR research report cover`},researchHeading:`Research behind our technology practice`,faqSlug:`technology-marketing-agency.cfm`,faqHeading:`Frequently Asked Questions About Technology Marketing`,sections:[{heading:`Technology Marketing for B2B and B2C Brands`,lead:`5WPR develops digital marketing and communications programs for high-growth startups, scaling software vendors, and publicly traded technology companies.`,tone:`white`,body:[`Business buyers and consumer technology users research products across multiple channels before contacting sales or making a purchase. They read industry publications, compare vendors on review sites, and ask generative AI platforms for product recommendations. 5W coordinates content marketing and digital strategy to ensure technology companies appear clearly throughout this discovery process.`,`Our technology marketing practice serves specialized sectors including HR technology, advertising technology, marketing technology, cybersecurity, software as a service (SaaS), and emerging technologies. We integrate digital marketing with our broader [technology public relations services](/practice/technologypr.cfm) to build category authority. This structure allows us to match specific technical capabilities with the exact channels buyers use to evaluate those solutions.`]},{heading:`B2B Technology Marketing Services`,lead:`Business-to-business technology marketing requires specialized content that addresses complex sales cycles, technical buyers, and multi-stakeholder procurement processes.`,tone:`dark`,body:[`5W designs B2B technology marketing campaigns that drive targeted traffic, support lead generation, and build brand authority. Our programs connect technical product capabilities with the business outcomes enterprise buyers require. We focus on measurable demand generation across digital channels, ensuring marketing investments translate into pipeline growth.`],cards:[{title:`Content Strategy and Thought Leadership`,body:`Content marketing establishes B2B technology brands as credible authorities within their specific categories. 5W develops content strategies that engage target audiences at every stage of the buyer journey. We produce technical whitepapers, executive thought leadership articles, and personalized account-based marketing campaigns.`,extra:`Account-based marketing requires aligning content with the specific pain points of a target organization. These assets help sales teams nurture high-value prospects and strengthen client relationships. By publishing authoritative content, technology companies provide sales teams with the exact materials needed to close enterprise deals.`},{title:`Digital Marketing and Demand Generation`,body:`Digital marketing programs must generate qualified pipeline rather than just website traffic. 5W executes demand generation campaigns that optimize lead capture across search, social media, and paid digital channels.`,extra:`We use data-driven strategies to expand market reach and solidify brand presence for B2B technology companies operating in competitive sectors. By tracking conversion metrics, we ensure marketing investments translate into measurable business growth.`}]},{heading:`Technology Marketing and Generative Engine Optimization`,lead:`Generative Engine Optimization is the practice of structuring brand information so AI platforms can retrieve and cite it accurately.`,tone:`white`,body:[`Technology buyers now use AI assistants and generative search platforms to research software categories and compare vendors. 5W integrates Generative Engine Optimization into our technology marketing programs to improve how AI-generated answers describe our clients.`],cards:[{title:`How AI Discovery Shapes Technology Marketing`,body:`A
197ccording to 5W's Creators and AI Visibility audit of the technology and software vertical, vendor-owned content and comparison aggregators heavily influence the answers AI systems provide. When a buyer asks an AI platform to compare two cloud security tools, the engine retrieves information from technical documentation and third-party reviews.`,extra:`5W optimizes these digital assets so search engines and AI platforms can process the technical details accurately. Our teams structure website content to answer specific technical queries, raising the statistical likelihood that an AI model retrieves the client's information.`},{title:`Building AI Visibility for Technology Brands`,body:`To increase citation frequency, technology companies must publish structured, authoritative content that AI systems trust. We help brands clarify their entity definitions, optimize technical content for retrieval, and build third-party credibility through earned media.`,extra:`This integrated approach ensures AI platforms cite the brand accurately when buyers ask about specific technology categories. By combining technical optimization with digital marketing, we build a machine-readable footprint that supports long-term brand visibility.`}],callout:{kicker:`Case studies`,body:[`Documented technology marketing and AI visibility programs.`],link:{href:`/practice/case-study.cfm`,label:`View Technology Marketing Case Studies`}}},{heading:`Technology Sectors We Serve`,lead:`5W combines the resources of a large agency with the specialized category expertise of a boutique technology marketing firm.`,tone:`muted`,body:[`Our leadership team includes strategists who have guided technology companies from early-stage funding rounds through initial public offerings and mergers. We structure our marketing teams around specific technology verticals. This ensures our digital storytellers understand the distinct market dynamics, competitors, and buyer personas within each category.`],cards:[{title:`Cybersecurity and Defense Technology`,body:`Security buyers require precise technical information and independent validation before deploying new platforms. 5W works with cybersecurity and defense innovators to build trust through authoritative content and targeted digital marketing.`,extra:`Our client roster includes Shield AI, which develops AI-driven pilots for defense applications. We also partner with Sysdig, a provider of cloud security solutions, and Huntress, a managed security platform built for small and medium-sized businesses.`},{title:`Data, Marketing, and HR Technology`,body:`Enterprise software companies must differentiate their platforms in crowded markets. 5W supports data and marketing technology leaders including LiveRamp, a publicly traded data collaboration company, and Zeta, an AI-powered marketing cloud.`,extra:`We also work with Influential in the influencer marketing sector. In the human resources and team management categories, we partner with hiBob and Rising Team to communicate how their platforms improve workplace performance.`},{title:`Enterprise and Operational Technology`,body:`Operational technology requires marketing programs that speak directly to technical implementation teams and operational leaders. 5W supports companies transforming complex logistical and operational challenges.`,extra:`We work with Netradyne on fleet management marketing, Riskified on e-commerce fraud prevention solutions, and Ultra Global on digital vetting platforms.`},{title:`Consumer Technology Brands`,body:`Consumer technology marketing requires fast audience acquisition and global brand visibility. 5W develops digital marketing and visibility campaigns for consumer applications, connected devices, and digital platforms.`,extra:`Our consumer technology clients include Samsung's SmartThings, the ride-sharing application inDrive, and the photo editing application Photoroom. We also support travel and lifestyle technology brands including SkyScanner, Dating.com, and AirHelp. By integrating these campaigns with our [consumer technology public relations](/practice/consumer-technology.cfm) programs, we maximize market presence for consumer-facing brands.`}]},{heading:`5WPR Technology Marketing Services`,lead:`Effective technology marketing connects technical product capabilities with the exact channels buyers use to discover new solutions.`,tone:`white`,body:[`5W builds the digital infrastru
197cture, content strategies, and AI visibility programs that help technology companies scale. From high-growth startups to publicly traded enterprises, we position technology brands at the center of industry conversations.`]}],closing:{kicker:`Talk to the Technology Marketing Team`,headline:`5W builds the digital infrastructure, content strategies, and AI visibility programs that help technology companies scale.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology, building the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},Gg=[{q:`What is the difference between B2B and B2C technology marketing?`,a:`B2B technology marketing focuses on long sales cycles, multiple enterprise stakeholders, and lead generation through technical content and account-based marketing. B2C technology marketing prioritizes fast user acquisition, direct consumer engagement, and broad brand visibility across digital and social channels.`},{q:`How does content marketing support technology sales?`,a:`Content marketing provides the technical documentation, case studies, and thought leadership that buyers require to evaluate a solution. By publishing authoritative content, technology companies build trust with prospects and provide sales teams with the assets needed to close enterprise deals.`},{q:`Why is AI visibility important for software companies?`,a:`Enterprise buyers now use AI platforms to research software categories and compare vendors before contacting sales teams. If a software company lacks structured digital content and third-party credibility, AI systems may omit the brand from category recommendations or cite competitors instead.`}],Kg={slug:`technologypr.cfm`,practiceKey:`technology`,breadcrumb:`Technology PR`,h1:`Technology PR and AI Communications Agency`,heroLead:`5W Public Relations (5WPR) is a technology PR agency that helps B2B, SaaS, and consumer technology companies build visibility across traditional media and AI search platforms. We integrate earned media, digital marketing, and Generative Engine Optimization (GEO) to ensure technology brands are cited when buyers research categories and compare vendors.`,heroCtas:[{href:`/contactus/`,label:`Request a Consultation`}],trustLabel:`Selected technology clients`,caseHeading:`Technology case studies`,featuredReport:{kicker:`Proprietary Research`,heading:`AI Companies`,body:[`Every major AI assistant shows self-citation lift except one.`],href:`/research/ai-companies/`,cta:`Read the research`,cover:`https://api.5wpr.com/storage/v1/object/public/media/reports/cover/ai-companies-cover.webp`,coverAlt:`AI Companies — 5WPR research report cover`},researchHeading:`Research behind our technology practice`,faqSlug:`technologypr.cfm`,faqHeading:`Technology PR FAQ`,sections:[{heading:`How is technology product discovery changing?`,lead:`B2B buyers and consumers increasingly use AI assistants to research technology categories before contacting a sales team.`,tone:`white`,body:[`Generative search platforms like ChatGPT, Claude, and Perplexity synthesize information from across the web to answer complex buyer questions. Buyers ask these engines to compare SaaS platforms, identify leading cybersecurity vendors, and explain specific product features.`,`Large Language Models (LLMs) calculate answer probability across their training data. Independent mentions from high-authority media domains raise the statistical likelihood that a technology brand is retrieved and cited in an AI response.`,`5W runs [AI visibility audits](/practice/ai-visibility-audit/index.cfm) to determine which sources influence these answers. We then build PR programs that place our clients in those specific publications and data sources.`]},{heading:`What does a technology PR agency do?`,lead:`A technology PR agency translates complex product capabilities into authoritative media coverage that influences buyers and search engines.`,tone:`dark`,body:[`5W develops communications programs for bootstrapped startups, high-growth companies, and publicly traded enterprises. Our teams operate from offices in New York City, Silicon Valley, and Miami. The Miami office specifically serves South Florida and Latin America cross-border markets.`,`We manage corporate milestones including series funding, mergers and acquisitions, initial public offerings, and product launches. Our teams secure placements in to
197p-tier business press, technology trade publications, and vertical-specific media.`,`The agency represents multiple unicorn companies. We manage communications for Shield AI, a defense and aerospace startup creating AI pilots. We also represent Huntress, a post-Series-D managed security platform serving SMBs, alongside publicly traded companies like LiveRamp and Riskified.`],callout:{kicker:`Case studies`,body:[`Documented technology communications programs.`],link:{href:`/practice/case-study.cfm`,label:`View Technology Case Studies`}}},{heading:`What results do technology PR programs deliver?`,lead:`Effective communications programs generate measurable share of voice and third-party validation.`,tone:`white`,body:[`5W builds [enterprise technology campaigns](/practice/xplortechnologies.cfm) that directly impact market perception. For Webull, an easy-to-use zero commission brokerage platform, 5W executed a campaign that increased the company's industry share of voice from zero to 10 percent.`,`The agency supports Zeta Global, an AI-powered marketing cloud founded by David A. Steinberg. We also lead communications for Ampersand, a technology and data company serving the television advertising industry. You can review our specific methodologies in our published [technology case studies](/practice/case-study.cfm).`],callout:{kicker:`Client testimonials`,body:[`“From strategy to implementation, forward thinking marketing skills, to utilizing PR to grow our business, 5W has helped us to grow into one of the largest big data companies in the world. This PR firm is smart, focused and a business partner for us.”`,`David Steinberg, CEO, Zeta Global`,`“5WPR have been an exceptional business partner, everything from the continuity of our very creative and passionate account team, to their solid media relationships. All have dramatically helped us to build brand awareness and to be seen as a thought leader in our industry.”`,`Michael Rose, Senior Director, Five9`]}},{heading:`Which technology categories does 5W serve?`,lead:`5W operates specialized teams with experience in distinct technology sectors and buyer audiences.`,tone:`muted`,bullets:[`B2B and SaaS PR: Communications for enterprise software providers, including HR platform hiBob, team performance platform Rising Team, and narrative intelligence platform Blackbird.AI.`,`Cybersecurity PR: Rapid-response and threat intelligence media programs for cloud security provider Sysdig and digital vetting company Ultra Global. We integrate [cybersecurity communications](/practice/CheckPoint.cfm) with executive thought leadership.`,`Consumer Technology PR: Product launches and consumer campaigns for AI-based photo app Photoroom, travel company SkyScanner, and Samsung's IoT software solution SmartThings.`,`Apps and Marketplaces: Growth communications for international ride-hailing service inDrive, which has surpassed 200 million downloads, and air passenger rights app AirHelp.`]},{heading:`How do AI platforms influence technology reputation?`,lead:`AI systems synthesize news coverage and public records to answer user questions about corporate reputation and security incidents.`,tone:`white`,body:[`Technology companies face unique reputational risks involving data breaches, executive departures, regulatory scrutiny, and product vulnerabilities. When buyers ask AI engines about these incidents, the engines retrieve information from the most authoritative news sources available.`,`5W provides crisis management and rapid-response communications to ensure accurate, balanced information reaches the press. By securing factual reporting in trusted media outlets, we help shape the source material that AI platforms use to generate answers about a brand.`]}],closing:{kicker:`Talk to the Technology PR Team`,headline:`Technology PR requires a deep understanding of both media relations and the evolving search algorithms that buyers use to evaluate vendors.`,body:[`5W runs AI Search (GEO) programs for brands across consumer, B2B, financial services, healthcare, and technology. We build the machine-readable footprint that gets brands cited, not just ranked. Learn more at [AI Search (GEO) programs](/practice/geo-optimization.cfm).`],ctas:[{href:`/practice/geo-optimization.cfm`,label:`AI Search (GEO) programs`}]}},qg={"digital-marketing-agency.cfm":Dg,"digital-marketing-agency/content-marketing-agency.cfm":[{q:`What does a content marketing agency do?`,a:`A content marketing agency researches what a brand's buyers are asking, then plans, produces and distributes the assets that answer those questions — articles, thought leadership, research studies, video, email and sales collateral — and measures which pieces drive pipeline. 5W also structures each asset so search engines and AI assistants can extract and cite it.`},{q:`How much does content marketing cost?`,a:`Content programs are retainer-based and priced on output: how many long-form pieces, research studies, videos and distribution channels run each month. A focused program covering strategy, a steady editorial cadence and distribution sits well below the cost of an equivalent in-house team, and scope can flex quarter to quarter.`},{q:`How is content marketing different from SEO?`,a:`SEO is the technical and structural discipline that makes content discoverable — architecture, internal linking, schema, page speed. Content marketing is the substance being discovered. They are run together at 5W, because well-optimized thin content does not earn citations and excellent content nobody can crawl does not get found.`},{q:`How do you measure content marketing ROI?`,a:`We track assisted pipeline and revenue by attributing content touchpoints in the CRM, alongside non-branded organic sessions, AI citation share for the target question set, and sales-team usage of the assets. The headline number we report is pipeline influenced per published asset.`},{q:`How does content marketing help a brand get cited by AI?`,a:`Generative engines cite sources that answer a question directly, carry a named author with real credentials, cite their own sources, and are marked up with machine-readable schema. We build every asset to that standard — an answer-first opening, structured headings, original data where possible, and FAQ or Article schema — which is why 5W content shows up inside AI answers, not just search results.`},{q:`Do you write the content or just strategize?`,a:`Both. 5W staffs editors, journalists and subject-matter writers who produce the work, and every piece is reviewed by a named human before publication. Strategy without production leaves clients with a plan and no assets.`}],"digital-marketing-agency/social-media-marketing-agency.cfm":Tg,"digital-marketing-agency/performance-marketing-agency.cfm":Cg,"digital-marketing-agency/media-planning-and-buying-agency.cfm":xg,"digital-marketing-agency/b2b-digital-marketing-agency.cfm":[{q:`What does a B2B digital marketing agency do?`,a:`A B2B digital marketing agency builds demand across a long, multi-stakeholder buying cycle: category thought leadership, account-based programs, paid media aimed at buying committees, sales enablement content, and the measurement layer that c
197onnects all of it to pipeline. 5W adds earned media and AI-visibility work, because B2B buyers vet vendors through press and, increasingly, through AI assistants.`},{q:`How is B2B digital marketing different from B2C?`,a:`B2B involves fewer buyers, larger deal values, longer cycles and committees rather than individuals. That shifts the emphasis from volume and impulse to credibility, proof and account coverage — case studies, original research, analyst validation and sales-usable content matter more than broad reach.`},{q:`How do you measure B2B marketing ROI?`,a:`Marketing-sourced and marketing-influenced pipeline, opportunity velocity, cost per qualified opportunity, target-account engagement and win rate on influenced deals — reconciled in the client's CRM. Traffic and MQL counts are diagnostics, not the scoreboard.`},{q:`Do you support account-based marketing?`,a:`Yes. We build the target account list with sales, run coordinated paid, content and outbound sequences against those accounts, and report engagement at the account level rather than the lead level.`},{q:`How long does a B2B program take to produce pipeline?`,a:`Expect early engagement signals inside 30 to 60 days and pipeline contribution aligned to the client's normal sales cycle, typically three to nine months. We instrument leading indicators at kickoff so the program is measurable long before revenue lands.`}],"saas-digital-marketing-agency.cfm":kh,"technologypr.cfm":[{q:`What do PR tech companies do for technology brands?`,a:`Public relations agencies secure earned media coverage, manage corporate reputation, and develop content that builds brand awareness. For technology companies, this includes translating technical specifications into business value for investors, buyers, and industry analysts.`},{q:`How do Tech PR companies help technology brands grow?`,a:`PR helps technology companies differentiate themselves from competitors and attract venture capital. Third-party validation from respected media outlets builds the trust required to shorten B2B sales cycles and drive consumer adoption.`},{q:`What types of technology brands do Tech PR agencies work with?`,a:`5W works with a wide range of technology brands, from early-stage startups to established industry giants. Our client roster spans financial technology, artificial intelligence, hardware, consumer electronics, and enterprise software.`}],"crisisprfirm.cfm":[{q:`What does a crisis PR firm do?`,a:`A crisis PR firm takes control of the narrative when a company faces a threat to its reputation: rapid assessment, holding statements, stakeholder and employee communications, media strategy, digital and social monitoring, and the recovery program that rebuilds trust after the acute phase. 5W maintains a 24/7 crisis team for exactly this.`},{q:`How fast can 5W respond to a crisis?`,a:`Immediately. Our crisis team operates around the clock, and the first hours of an engagement focus on containing the situation with an approved holding statement, a stakeholder map and a monitoring feed before any broader outreach begins.`},{q:`What are the first steps in managing a PR crisis?`,a:`Establish the facts, appoint a single spokesperson, issue an accurate holding statement quickly, communicate with employees before the press, monitor every channel in real time, and take visible responsibility where responsibility exists. Silence and speculation are what escalate a crisis.`},{q:`How long does reputation recovery take?`,a:`The acute phase is usually days to weeks. Restoring the reputation baseline — including how search engines and AI assistants describe the brand — typically takes three to twelve months of sustained positive publishing and coverage, because those systems reflect the accumulated public record.`},{q:`Should we prepare a crisis plan before anything happens?`,a:`Yes, and it is far cheaper than reacting. Crisis readiness work covers scenario planning, a message bank, an escalation chart, spokesperson training and a dark-site or statement template so the first hour of a real event is execution rather than 
197improvisation.`}],"consumercfm.cfm":[{q:`What is consumer PR?`,a:`Consumer PR is the practice of earning attention for a product from the journalists, creators, retailers, and consumers who influence purchase decisions. It covers media relations, product reviews and gift guides, creator partnerships, sampling, events, social media, and retail communications, all timed against distribution and promotional calendars.`},{q:`What does a CPG PR agency do?`,a:`A CPG PR agency helps consumer brands build awareness and demand through media relations, product launches, reviews, creator partnerships, sampling, events, retail support, and other communications. The program should connect those activities to business priorities such as product trial, retail expansion, seasonal sales periods, branded search, and sell-through.`},{q:`What does a consumer PR agency do?`,a:`A consumer PR agency helps products earn attention from the journalists, creators, retailers, and consumers who influence purchase decisions. Programs include national media relations, product reviews, gift guides, influencer campaigns, product sampling, events, social media, and retail communications.`},{q:`How can PR support a CPG product launch?`,a:`PR introduces a product before and during its launch through media previews, product testing, reviews, creator seeding, launch events, executive interviews, sampling, and coverage tied to product availability. Timing the campaign around retail distribution and promotional periods helps consumers move from discovery to purchase.`},{q:`How does consumer PR support retail sales?`,a:`Consumer PR increases the number of people who discover and search for a product while providing third-party coverage that retailers and shoppers reference. Brands compare coverage periods with branded search, retailer traffic, marketplace activity, product trial, and sales data to determine whether increased visibility coincides with changes in demand.`},{q:`How do you measure CPG PR results?`,a:`Measurement depends on the business objective. Relevant measures include earned coverage, message penetration, share of voice, branded search, referral traffic, social engagement, product sampling, retailer interest, marketplace activity, and sales data when available.`},{q:`What should a CPG company look for in a PR agency?`,a:`A CPG company should evaluate an agency's experience with its product category, media relationships, product-launch capabilities, creator programs, retail knowledge, measurement practices, and ability to coordinate PR with digital marketing. Companies should ask prospective agencies to explain how proposed tactics connect to the brand's distribution, consumer, and sales objectives.`},{q:`How do PR and digital marketing work together for CPG brands?`,a:`PR generates third-party coverage and product discovery, while search, social, creator, paid, and retail media reach consumers later in the consideration and purchase process. Coordinating the channels allows a brand to extend the value of product launches and earned coverage rather than treating each activity as a separate campaign.`},{q:`Does 5W handle influencer marketing and retail media alongside consumer PR?`,a:`Yes. 5W's consumer and digital practices include earned media, creator partnerships, social media, paid marketing, and retail-focused programs. The CPG digital marketing practice handles that side of the program.`}],"cpg-digital-marketing-agency.cfm":_g,"ai-digital-marketing-and-pr-agency.cfm":yg,"defense-ai-pr.cfm":[{q:`How does defense AI PR differ from standard technology PR?`,a:`Standard technology communications prioritize disruption and rapid consumer adoption. Defense AI communications must balance engineering velocity with the risk tolerances of Department of Defense customers and allied government buyers.`},{q:`How do you align media strategy with government relations?`,a:`5W integrates communications planning with the company's lobbying and government affairs teams. This is intended to keep public media campaigns supporting ongoing legislative and procurement efforts rather than complicating them.`},{q:`Why is executive visibility important in defense technology?`,a:`Procurement officers and investors assess the team behind an autonomous system alongside the system itself. Defense Tech Executive Visibility programs establish founders and engineers as reliable authorities on the future of the autonomous battlefield.`},{q:`What review process runs before defense PR work can go public?`,a:`Most Department of Defense contracts carry DFARS 252.204-7000, which requires the contractor to obtain the Contracting Officer's written approval before releasing unclassified information related to the contract. The current clause text asks for the request to be submitted at least 10 business days before the proposed release date, and subcontractors submit through the prime, so confirm which version of the clause is incorporated in your own contract. Government-originated material follows a 
197separate security and policy review for public release under DoDI 5230.09, normally submitted on DD Form 1910. 5W builds those lead times into the editorial calendar, drafts to the boundary your reviewers set, and prepares the submission package. 5W does not clear, approve or release anything. That authority sits with your Contracting Officer, your security office and the relevant DoD review authority.`},{q:`How do ITAR and EAR export controls change what we can say publicly?`,a:`Technical data tied to items on the United States Munitions List is controlled under ITAR (22 CFR Parts 120 to 130, administered by the State Department's Directorate of Defense Trade Controls). Dual-use items sit under the EAR (15 CFR Parts 730 to 774, administered by the Commerce Department's Bureau of Industry and Security). Releasing controlled technical data to a foreign person counts as an export even when it happens inside the United States, which puts press briefings, conference demonstrations, spec sheets, engineering blog posts and recruiting content in scope. Publishing something without authorization does not make it releasable after the fact. In practice, performance figures, sensor and payload detail, autonomy architecture and integration specifics need your export compliance lead's sign-off before a draft leaves the building. 5W writes to the boundary that lead sets and develops alternative proof points that carry the same market message without the controlled detail.`},{q:`Can 5W support programs involving classified or controlled unclassified information?`,a:`5W works only with material your organization has confirmed as releasable to the public. Nothing carrying a classification marking or a Controlled Unclassified Information marking under DoDI 5200.48 should be sent to the agency. Marking alone is not the whole test. Aggregated unclassified details such as delivery timelines, site photography, customer identity, test locations and personnel movements can reconstruct critical information even when each item is unclassified on its own, which is why your OPSEC and security officers should review the assembled story and the visual assets, not only each element in isolation. If a program requires cleared personnel or handling inside a cleared facility, raise that with your facility security officer before any material is shared, because it is a separate arrangement from a standard agency engagement.`},{q:`How do foreign ownership and allied-market coverage affect the plan?`,a:`Two separate regimes are usually in play. CFIUS reviews foreign investment in United States businesses that handle critical technology under 31 CFR Part 800, and some transactions carry mandatory declarations. Separately, a cleared contractor under foreign ownership, control or influence has to be mitigated with the Defense Counterintelligence and Security Agency under 32 CFR 117.11 before or while holding a facility clearance. Funding announcements, allied partnership news and international trade-show activity all touch those questions, so cap-table language, investor descriptions and partner naming should be cleared with outside counsel and your facility security officer before publication. Allied-market media work sits under the same export-control boundary as everything else, because a technical briefing given to a foreign journalist is a release to a foreign person.`}],"geo-optimization.cfm":[{q:`What is the difference between SEO and GEO?`,a:`SEO optimizes a website to rank on search engine results pages. GEO (Generative Engine Optimization) optimizes brand content and third-party authority signals to secure citations inside AI-generated answers. SEO measures success through page rank, while GEO measures success through citation frequency and AI share of voice.`},{q:`Which AI platforms does 5W target?`,a:`We can optimize for ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews, Microsoft Copilot, and Meta AI. Each platform retrieves and ranks sources using different criteria. 5W tailors the GEO program to address the specific retrieval mechanics of each platform and our clients' specific needs.`},{q:`How do you measure GEO success?`,a:`We measure success through citation frequency, citation accuracy, AI share of voice, query coverage and model recommendations. Citation frequency tracks how often a brand appears across target queries. Query coverage measures how many category-relevant queries return the brand in the answer.`},{q:`How long does GEO take to show results?`,a:`Initial citation lifts typically appear within 30 to 60 days as content optimization and technical deployment take effect. Authority-driven citations from third-party source development build between 60 and 180 days. Programs running longer than six months can show compounding gains as models re-index the optimized signals. Timelines vary by category, and no agency controls when or whether a model cites a brand.`}],"cannabis-marketing-agency.cfm":[{q:`Can cannabis brands advertise on Google and social media?`,a:`It depends on the product, the platform and the market. Google Ads prohibits ads for recreational marijuana in the United States, and permits a narrower U.S. exception for certified advertisers promoting eligible topical hemp-derived CBD products with 0.3% THC or less in California, Colorado and Puerto Rico. Google also runs a Search-only cannabis pilot in Canada through December 31, 2026 for eligible licensed entities. Social platforms restrict cannabis and cannabinoid advertising under their own rules, so 5W reviews the product, claims, audience, destination page and target market before recommending a paid campaign.`},{q:`What can a CBD or cannabis brand legally claim in its marketing?`,a:`Broad health claims create regulatory risk when copy implies a product treats, cures, prevents or diagnoses a disease. FTC guidance requires objective health claims to have appropriate substantiation, and the FDA continues enforcement against CBD products marketed with unapproved therapeutic claims. 5W builds messaging around facts the brand can support — ingredients, intended use, testing, sourcing, product format, availability and consumer questions — and any health-outcome claim needs evidence meeting the applicable standard before publication.`},{q:`How do cannabis brands get mainstream press coverage?`,a:`By offering stories that work outside cannabis trade media. 5W develops angles around business growth, product launches, consumer trends, regulation, category education and founder expertise, which gives general-interest and business reporters a reason to cover a cannabis company on its merits rather than as a novelty.`},{q:`Does cannabis SEO work when paid ads are blocked?`,a:`Yes, and it is often the primary discovery channel. SEO does not depend on ad eligibility, so 5W improves site structure, product and service pages, internal linking, educational content and technical signals. Results still depend on crawlability, indexability, relevance, competition and content quality, and no agency can guarantee rankings.`}
197,{q:`What are the rules for cannabis influencer marketing?`,a:`FTC guidance requires clear disclosure whenever a creator has a material connection to a brand, and objective product claims made by a creator still require substantiation. 5W structures creator briefs around approved claims, disclosure requirements, content review and audience rules, so the program does not transfer risk to the brand.`},{q:`Why does a cannabis brand need AI search visibility?`,a:`ChatGPT and other search-enabled assistants rewrite a question into targeted searches, combine sources and answer with citations. A brand can rank in traditional search and still be absent from that answer if the system does not retrieve, understand or select it. 5W reviews page access, structured data, product facts, third-party citations, source consistency and prompt-level results so the evidence a model needs is present and consistent.`}],"real-estate.cfm":[{q:`What does a real estate PR agency do?`,a:`A real estate PR agency develops communications programs for developers, brokerages, REITs, investment firms and property technology companies. Work can include media relations, executive positioning, project and company announcements, investor education, awards, events, issue preparedness and Generative Engine Optimization so accurate information is easier for search and AI platforms to retrieve.`},{q:`How does proptech PR differ from traditional real estate PR?`,a:`Proptech PR translates product capabilities into business relevance for enterprise buyers, investors and operators, so it leans on product and funding announcements, category education and technology trade media. Traditional real estate PR is weighted toward projects, transactions, market expertise and regional or financial coverage.`},{q:`Can PR support real estate deal flow?`,a:`Targeted media campaigns can build the visibility and third-party credibility that developers, REITs and investment firms use in conversations with investors, lenders, partners and buyers. Coverage adds context and credibility; it does not close financing, guarantee a transaction or determine a buyer's decision.`},{q:`How is real estate PR measured?`,a:`Programs are measured through coverage quality, message pull-through, share of voice, executive visibility, referral activity, branded search, AI citation visibility for defined query sets and agreed business indicators. Reporting should connect campaign metrics to relevant business context rather than impressions alone.`}],"public-affairs-pr-agency.cfm":[{q:`What is a public affairs PR agency?`,a:`A public affairs PR agency develops messaging, media relations, stakeholder communications and digital programs around policy and regulatory issues. Unlike direct lobbying, which involves communications with government officials about legislation or policy, public affairs PR primarily informs broader public and stakeholder discussion.`},{q:`How does PR support government procurement?`,a:`Public relations can make verified company capabilities, past performance and subject-matter expertise easier for stakeholders to find and understand. Earned media may provide additional context, but procurement decisions depend on formal requirements, evaluation criteria, law, price and agency priorities.`},{q:`Why do tech companies need public affairs PR?`,a:`As technology companies scale, their products and operating models can raise policy questions. Public affairs PR translates technical concepts into accessible, evidence-based narratives so regulators and other stakeholders can assess potential benefits, safeguards, limitations and risks.`}],"nonprofit-pr-firm.cfm":[{q:`What does a nonprofit PR agency do?`,a:`A nonprofit PR agency develops communications programs that build awareness, support donor and volunteer engagement, and strengthen institutional credibility. Work can include earned media, event PR, executive visibility, crisis communications, public affairs, digital PR and Generative Engine Optimization.`},{q:`How does PR help nonprofits raise money?`,a:`Relevant earned media can build awareness and provide independent context about an organization's mission and impact. That credibility may support donor confidence, but no individual placement or impression count guarantees a gift, grant or other financial result.`},{q:`How much does nonprofit PR cost?`,a:`5WPR works with nonprofits at multiple investment levels, ranging from event-specific programs to year-round retainer engagements. Organizations can request a consultation to discu
197ss specific program options and pricing structures.`}],"travel-public-relations.cfm":[{q:`What is travel and hospitality PR?`,a:`Travel and hospitality PR is strategic communication for travel brands, destinations, and experiences. Programs may include media relations, influencer marketing, social media, experiential events, and crisis preparation designed to support awareness, reputation, and consideration.`},{q:`How does 5WPR work with travel influencers?`,a:`5WPR identifies and vets creators based on audience fit, content quality, brand safety, and campaign goals. Programs can include negotiated deliverables, press trips, disclosure requirements, content review, and performance reporting. Results vary by creator fit, content, distribution, and timing.`},{q:`How does 5WPR approach crisis management for travel brands?`,a:`5WPR prepares response protocols, coordinates fact-based updates, and supports stakeholder communications during travel disruptions or brand challenges. These efforts aim to protect reputation and trust, but outcomes depend on the facts, timing, response, and broader circumstances.`}],"urgent-care-physician-marketing-pr-agency.cfm":[{q:`How does PR differ for a standalone clinic versus a multi-location group?`,a:`A standalone clinic may prioritize hyper-local media, neighborhood search visibility and community relationships. A multi-location group may need scalable governance, consistent core messaging and accurate location-level information for every facility. 5WPR adapts channel mix, content and measurement to the practice's operating model and market.`},{q:`Why is reputation management critical for physician practices?`,a:`Online reviews and search results can influence how prospective patients evaluate a physician practice. Reputation management may include monitoring, correcting factual errors, responding appropriately and escalating clinical or legal issues to the right team. Public responses should not disclose private health information, and communications cannot establish the underlying quality of care or guarantee a favorable narrative.`},{q:`How does GEO apply to urgent care centers?`,a:`Generative Engine Optimization helps make verified services, locations, hours, provider credentials and other practice information easier for AI systems to retrieve and compare. It can support citation and recommendation goals when users ask about local care options, but platform outputs remain independent and should not be treated as medical guidance or a guaranteed referral.`}],"internal-communications.cfm":[{q:`What does an internal communications agency do?`,a:`An internal communications agency, sometimes listed as an internal communications company or an employee communications firm, advises companies on how to communicate with employees, board members, and investors during significant business events. The work includes leadership messaging, town hall preparation, Mergers and Acquisitions (M&A) announcements, and restructuring communications.`},{q:`How is internal communications different from day-to-day workforce communication?`,a:`Workforce and benefits communication focuses on culture, benefits, and ongoing employee experience. Internal communications focuses on high-stakes moments like financial announcements, organizational restructurings, and regulatory events where the company reputation is at risk.`},{q:`Can internal communications be kept confidential?`,a:`Broad internal messages may be shared beyond their intended audience. Companies should use appropriate access controls and legal guidance while writing high-stakes communications that remain accurate and defensible if disclosed.`},{q:`How do you measure internal communications effectiveness?`,a:`Measurement includes employee pulse survey data before and after major announcements, message comprehension testing, and manager readiness feedback. Teams also monitor Glassdoor sentiment, track internal leaks, and measure external press coverage to confirm whether internal messaging held.`},{q:`How should companies align internal and external narratives?`,a:`A company cannot tell its employees one story and the public another. Some internal announcements become public through employee posts, reviews, reporting or regulatory disclosures. 5WPR develops internal 
197communications programs that align verified facts across workforce and external channels while preserving audience-specific context.`}],"mental-health-addiction-marketing-pr-agency.cfm":[{q:`How does crisis communications integrate with mental health PR?`,a:`Behavioral health brands often face regulatory scrutiny or public incidents. 5WPR integrates crisis communications into its mental health programs to coordinate verified information, stakeholder response and institutional reputation work.`},{q:`Does 5WPR work with mental health technology startups?`,a:`Yes. For mental health brands with significant technology components like therapy apps and digital therapeutics platforms, the health team works in direct partnership with the agency's technology and digital health teams.`},{q:`How does Generative Engine Optimization (GEO) affect behavioral health?`,a:`Generative Engine Optimization (GEO) aims to improve how accurately AI platforms cite, describe and recommend a behavioral health brand for defined questions. An AI visibility audit can document mentions, factual accuracy, recommendation patterns, recurring sources and competitive gaps across a fixed prompt set. The results are a point-in-time benchmark because platforms and source use change.`},{q:`How does influencer marketing work for mental wellness brands?`,a:`Influencer partnerships in behavioral health require careful credential, audience, disclosure and brand-safety review. 5WPR can evaluate mental health advocates, wellness creators, licensed clinician-creators and peer-support voices, while distinguishing personal experience from clinical guidance. Campaigns can focus on education, access and stigma reduction rather than promising treatment results.`}],"menopause-womens-health-marketing-pr-agency.cfm":[{q:`How do PR agencies support femtech launches?`,a:`A femtech marketing agency can coordinate messaging, media outreach, digital marketing, social content and compliant influencer seeding for a launch. The mix depends on evidence, regulatory status, audience and distribution.`},{q:`Why is thought leadership important in menopause marketing?`,a:`Qualified founders and clinicians can use thought leadership to explain research, care access and category changes. Authority depends on relevant expertise, accurate sourcing and appropriate disclosure of commercial interests.`},{q:`How does media relations impact consumer trust?`,a:`Independent editorial coverage can provide context for product claims and clinical research, but it does not validate a claim by itself. Consumers may consider coverage alongside clinician guidance, evidence, regulatory information and personal needs.`},{q:`What does a femtech marketing agency do that a general consumer agency does not?`,a:`A femtech marketing agency works inside the claim limits that apply to health products. In practice that means three things a general consumer agency rarely builds into its workflow. First, every product statement is mapped to its evidence tier: a peer-reviewed trial, a company-funded study, a consumer perception survey, or no support at all. Second, creative, landing pages and influencer scripts go through clinical and legal review before they ship, not after. Third, creators are briefed on the specific language they cannot use, and their posts are monitored for drift. The exact review standard depends on how the product is regulated, so confirm it with regulatory counsel before the process is set.`},{q:`What does a women's health digital marketing agency handle that PR does not?`,a:`Earned media places a brand inside third-party coverage the brand does not control. A women's health digital marketing agency owns the channels the brand does control: search-informed site content and FAQ structure, paid search and paid social, email and SMS flows, landing pages, conversion tracking, and the retrieval-ready pages that generative engines quote when someone asks about perimenopause symptoms or hormone therapy options. On a menopause or femtech account the two run together. A clinician quote in a national outlet converts only if the page it points to answers the reader's next question and the tracking behind that page is compliant.`},{q:`What rules apply to menopause marketing claims in the United States?`,a:`Two federal frameworks usually apply at the same time. The FTC requires advertising claims to be truthful and substantiated before they run, and its Health Products Compliance Guidance sets the expectation that health benefit claims be backed by competent and reliable scientific evidence, with the level of proof scaling to how strong the claim is. The FDA governs what the product is allowed to be: a dietary supplement may make structure and function claims with the required disclaimer but may 
197not claim to treat, prevent or cure a disease, systemic hormone therapy is an approved drug whose promotion is bound by its labeling, and a product intended to diagnose or treat a condition may fall under device rules instead. Classification drives the permitted claim set more than any other single factor, so have regulatory counsel confirm the claim set and the required disclaimers before a campaign is built around them.`},{q:`How do privacy rules affect women's health advertising and tracking?`,a:`It depends on who the brand is. HIPAA applies to covered entities, meaning health plans, most providers and clearinghouses, and to their business associates, so a telehealth menopause clinic is usually covered while a direct-to-consumer supplement brand usually is not. Brands outside HIPAA are still subject to the FTC Act, many fall under the FTC Health Breach Notification Rule, and state laws such as Washington's My Health My Data Act treat reproductive and hormonal health information as sensitive consumer health data. The practical failure point is ad tech: pixels, conversion tags and audience uploads placed on symptom quizzes, intake forms, appointment confirmations and pharmacy pages. Have privacy counsel review the full tracking and vendor setup before any paid campaign goes live, because the exposure sits in the measurement stack rather than the creative.`}],"casino-public-relations-and-digital-marketing.cfm":[{q:`What does a gambling PR agency do?`,a:`A gambling PR agency helps casinos, sportsbooks, iGaming companies, gambling technology providers, and other gaming businesses manage media relations, company announcements, executive visibility, events, reputation, influencer programs, and other communications. PR also supports search and AI visibility by increasing the amount of accurate information available about a company through its website and third-party sources.`},{q:`What types of gambling companies does 5W work with?`,a:`5W has experience across sports betting, iGaming, land-based casinos, lottery services, gambling technology, gambling media, casino game development, and related businesses. Client experience includes 888, Foxwoods Resort & Casino, Jackpot.com, Soft2Bet, Gambling.com, Circa Sports, and XLMedia.`},{q:`How does PR help sportsbooks and iGaming companies?`,a:`PR helps sportsbooks and iGaming companies earn media coverage, introduce executives to reporters, support market launches, communicate company news, promote research and data, prepare for reputation issues, and increase visibility among consumers and business audiences.`},{q:`Can PR help with a casino opening or sportsbook launch?`,a:`Yes. PR programs support casino openings, sportsbook launches, state-market entry, tournaments, conferences, restaurant and entertainment openings, and other events through media outreach, executive interviews, announcements, creator partnerships, and local communications.`},{q:`Does 5W provide gambling digital marketing and SEO?`,a:`Yes. 5W combines PR with SEO, paid media, social media, influencer marketing, content, email marketing, and measurement based on the company's audience and business goals.`},{q:`Can PR improve a gambling company's visibility in ChatGPT and other AI tools?`,a:`PR increases the amount of relevant third-party information available about a company, but no agency can guarantee inclusion in an AI-generated answer. 5W measures brand mentions, citations, competitors, and source patterns across major AI platforms and uses those findings to identify opportunities across PR, content, SEO, and company information.`},{q:`Does gambling PR require knowledge of responsible gambling rules?`,a:`Yes. Gambling communications involve age restrictions, advertising requirements, responsible gambling messages, sponsorship disclosures, platform requirements, and rules that vary by jurisdiction. Communications programs should account for applicable requirements during campaign planning and review.`}],"mom-and-baby.cfm":[{q:`How do parents research baby and infant care products?`,a:`Parents research these products through retailer sites, product reviews, social media, Reddit, parenting communities, Google, and AI tools such as ChatGPT and Gemini. Established companies and new entrants therefore need accurate product information across the sources parents consult before buying.`},{q:`What does a parenting and baby PR program include?`,a:`Product launches include media previews, product testing, review programs, gift guides, baby registry coverage, influencer seeding, celebrity partnerships, expert commentary, and executive interviews. Retail availability creates another communications opportunity when products launch or expand at Target, Walmart, Amazon, Nordstrom, Buybuy BABY, and other retailers.`},{q:`How does PR handle baby product safety and health claims?`,a:`S
197afety- and health-related products require another layer of communications because parents may look to pediatricians, child-development specialists, sleep experts, lactation consultants, safety professionals, or other credentialed sources before deciding what to buy. PR programs need to account for the claims a company supports, particularly when communications involve infant sleep, child health, product safety, recalls, children's privacy, data security, or online safety.`},{q:`Can PR make a parenting brand appear in AI answers?`,a:`No PR agency can guarantee that a company will appear in an AI-generated answer. Brands increase the amount of accurate information available through their websites, earned media, product reviews, expert commentary, retailer pages, and other third-party sources.`},{q:`Which parenting and baby brands has 5W represented?`,a:`5W has represented parenting, baby, nursery, and family-focused companies, including Buybuy BABY, Bark, Greenlight, Owlet, Delta Children, and Stokke.`},{q:`What does a baby products digital marketing agency do?`,a:`A baby products digital marketing agency runs the paid and organic channels parents pass through before they buy: search and generative engine visibility, retail media and product-page content on Amazon, Target and Walmart, paid social and creator whitelisting, and registry and due-date lifecycle email. At 5W that work sits in the same plan as baby PR, so a claim cleared for a press release, a creator brief and an Amazon A+ module reads the same way in all three. Reporting is tied to registry adds, subscription starts, retailer sell-through and share of AI answers rather than impressions alone.`},{q:`How is marketing baby products different from other consumer categories?`,a:`Three differences change the plan. First, the audience turns over constantly: the buying window opens at pregnancy and closes stage by stage, so a brand is re-acquiring customers rather than accumulating loyalty. Second, the purchase is delegated, because the person using the product cannot evaluate it, so third-party proof (pediatric and lactation professionals, safety certifications, other parents' reviews) outweighs brand advertising. Third, the claim set is regulated, so sleep, developmental, hypoallergenic and safety language has to be substantiated before it runs, which shortens what creative can say and lengthens what legal review takes.`},{q:`Why hire a specialist baby agency instead of a generalist?`,a:`A specialist starts with the relationships and the constraints already mapped: the outlets and review programs (TODAY, What to Expect, Motherly and the product-review desks), the registry and retailer merchandising calendars, the parent creators who accept infant-category briefs, and the claims that will fail legal review before creative is built. A generalist team builds that map on the client's budget, usually during the launch window. The practical test to apply to any agency is narrower than category experience: ask which parenting outlets and creators it has placed in the last twelve months, and how it handles a safety complaint that arrives on a weekend.`},{q:`How long does it take to see results?`,a:`Timelines differ by channel, and no agency can promise a placement or a ranking. As planning assumptions rather than measured averages: paid search and retail media produce usable data inside the first 30 days; media relations usually needs 60 to 90 days for the first meaningful placements, because long-lead parenting and gift-guide editorial is planned months ahead of publication; SEO and AI search visibility generally need two to three quarters, since progress depends on third-party sources being published, indexed and re-crawled before answers change. Recall and safety response work runs on hours, not quarters. 5W sets the specific benchmarks per channel at kickoff so the review points are agreed before the work starts.`},{q:`What compliance and advertising rules apply to marketing baby products?`,a:`In the US, four bodies of rules usually apply. The Consumer Product Safety Improvement Act (CPSIA) covers products designed or intended primarily for children 12 and under: third-party testing at a CPSC-accepted laboratory, a CPSIA certificate of compliance (the CPC) issued on the basis of that testing, tracking labels, and limits on lead and phthalates. Durable infant and nursery products carry additional CPSC requirements, including registration cards so buyers can be reached during a recall. Section 5 of the FTC Act requires advertising claims to be substantiated before they run, which is the constraint that most often b
197ites on sleep, development and safety language. The FTC Endorsement Guides (16 CFR Part 255) require clear and conspicuous disclosure of material connections in creator, affiliate and employee content. COPPA applies where a service is directed to children under 13 or knowingly collects their personal information, which is common for parenting apps and connected monitors; the FTC's amended COPPA Rule was published on 22 April 2025 and took effect on 23 June 2025, with full compliance required by 22 April 2026. 5W is a communications agency and not a law firm, so treat this as a map of what to check and confirm the requirements for your specific product, claims and data practices with regulatory counsel before anything publishes.`},{q:`What are some effective marketing strategies for baby products?`,a:`The strategies that hold up in this category put verified third-party information where parents already look. A seeding and review program with parenting outlets and parent creators ahead of launch, so reviews exist on day one. Registry placement and due-date-triggered lifecycle email, which reaches parents during the short window when the category is actively being chosen. Retail media and product-page content on Amazon, Target and Walmart, where the side-by-side comparison actually happens. Professional education so pediatric, lactation and sleep specialists can describe the product accurately when parents ask them. Long-lead pitching for holiday and baby gift guides, which close well ahead of publication. And monitoring of Reddit and parenting communities, so that answers to the recurring questions about a product exist in the sources AI tools cite.`}]};Object.assign(qg,{"Lifestyle.cfm":Fm,"digital-marketing-agency/content-marketing-agency.cfm":Lm,"digital-marketing-agency/corporate-digital-marketing.cfm":zm,"digital-marketing-agency/event-digital-marketing.cfm":Vm,"digital-marketing-agency/creative-and-branding-agency.cfm":Um,"apps-and-marketplaces.cfm":Gm,"automotive-marketing-agency.cfm":qm,"event-celebrity-wrangling.cfm":Ym,"foodpr-beveragepr.cfm":Zm,"franchise-marketing-agency.cfm":$m,"toys-and-games-PR.cfm":th,"kitchen-and-home-appliances.cfm":rh,"digital-marketing-agency/b2b-digital-marketing-agency.cfm":ah,"digital-marketing-agency/health-wellness-digital-marketing-services.cfm":sh,"digital-marketing-agency/insurance-digital-marketing.cfm":lh,"digital-marketing-agency/integrated-marketing-agency.cfm":dh,"digital-marketing-agency/law-firm-digital-marketing.cfm":ph,"cybersecurity-pr-and-digital-marketing-agency.cfm":hh,"digital-pr.cfm":kg,"financial-services-and-fintech-marketing-agency.cfm":jg,"financial-services-and-fintech.cfm":Ng,"gaming-video-game-pr-and-digital-marketing.cfm":Fg,"hospitality-digital-marketing-agency.cfm":Lg,"lifestyleprentertainmentpragency.cfm":zg,"litigation-pr.cfm":Vg,"multicultural-marketing.cfm":Ug,"technology-marketing-agency.cfm":Gg,"defense-tech-executive-visibility.cfm":_h,"hr-tech.cfm":yh,"investment-pr-communications.cfm":xh,"dermatology-aesthetics-marketing-pr-agency.cfm":Ch,"parenting-apps-gear-and-retail-pr.cfm":Th,"pet-products-marketing.cfm":Dh,"saas-pr.cfm":jh,"consumer-beauty.cfm":Nh,"adtech-big-data.cfm":Fh,"app-digital-marketing-agency.cfm":Lh,"collectibles-memorabilia-pr-digital-marketing-agency.cfm":zh,"corporate-communications.cfm":Vh,"crisisprfirm.cfm":Uh,"skincare-haircare-nail-care-marketing-pr-agency.cfm":Gh,"spac-pr.cfm":qh,"supplements-marketing-pr-agency.cfm":Yh,"sustainability-pr-agency.cfm":Zh,"aging-longevity-marketing-pr-agency.cfm":$h,"alcohol-marketing-pr-agency.cfm":hg,"beauty-devices-tools-marketing-pr-agency.cfm":tg,"consumer-technology.cfm":rg,"food-and-beverage-marketing-agency.cfm":ag,"healthcareprfirm.cfm":sg,"homegoods.cfm":lg,"digital-health-and-health-technology.cfm":dg,"financial-communications-pre-ipo-companies.cfm":pg});function Jg(e){return e?qg[e.replace(/^\/+/,``).replace(/\/+$/,``)]??null:null}function Yg(e){return!e||e.length<2?null:{"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:e.map(e=>
197({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))}}var Xg=u(`/practice/$`)({loader:async({params:e,context:t})=>{let n=e._splat??``;if(!n)throw w();if(n.replace(/^\/+|\/+$/g,``).toLowerCase()===`public-relations-agency`)throw C({href:`/services/public-relations-agency/`,statusCode:301});let[r]=await Promise.all([t.queryClient.ensureQueryData(Cm(n)),t.queryClient.ensureQueryData(_p)]);if(!r){let e=await Gc({data:{path:`/practice/${n}`}});if(e?.to)throw C({href:e.to,statusCode:Number(e.status)||301});let t=await qc({data:{slug:n}});throw t?.path?C({href:t.path,statusCode:301}):w()}let i=r.page;Nm(i)&&await t.queryClient.ensureQueryData(Al);let a=Lc(i,{path:i.path,ogType:i.page_type===`case_study`?`article`:`website`});if(i.page_type===`case_study`){let e=Rc(i);e&&(a.jsonld=[a.jsonld,e])}if(!/"FAQPage"/.test(JSON.stringify(i.schema_jsonld??``))){let e=Ic(wm(i.body_html||i.legacy_html))||Yg(Jg(n));e&&(a.jsonld=[a.jsonld,e])}return{slug:n,seo:a}},head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(()=>F(()=>import(`./practice._-DpJEaWZ3.js`),__vite__mapDeps([92,1,15,7,9,5,6,8,10,17,19,93,94,48,13,14,16,44,27,45,32,2,0,50])),`component`),errorComponent:s(()=>F(()=>import(`./practice._-w1VNbUfi.js`),__vite__mapDeps([95,1])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./practice._-CMOhySff.js`),__vite__mapDeps([96,1,15,7,9,5,6,8,10])),`notFoundComponent`)}),Zg=e=>k({queryKey:[`blog_post`,e],queryFn:()=>Kd({data:{slug:e}}),staleTime:5*6e4}),Qg=e=>k({queryKey:[`blog_post_related`,e],queryFn:()=>qd({data:{slug:e,limit:6}}),staleTime:5*6e4}),$g=u(`/new/$`)({beforeLoad:async({location:e,params:t})=>{let n=(t._splat??``).replace(/^\/+|\/+$/g,``),r=n.split(`/`).pop()??``,i=/\.[a-zA-Z0-9]{1,10}$/.test(r);if(n&&!i){let{getRedirect:t}=await F(async()=>{let{getRedirect:e}=await import(`./redirects.functions-QKBlxdKq.js`);return{getRedirect:e}},__vite__mapDeps([40,6,7])),n=await t({data:{path:e.pathname}});if(n?.to)throw/^https?:\/\//i.test(n.to)?C({href:n.to,statusCode:301}):C({to:n.to,replace:!0})}if(n&&!i&&!e.pathname.endsWith(`/`))throw C({to:`/new/$`,params:{_splat:n+`/`},search:e.search,replace:!0})},loader:async({params:e,context:t})=>{let n=(e._splat??``).replace(/^\/+|\/+$/g,``);if(!n)throw w();let r=await t.queryClient.ensureQueryData(Zg(n));if(!r)throw w();await t.queryClient.ensureQueryData(Qg(n));let i=r.post,a=r.image,o=r.author,s=i.path||`/new/${i.slug}/`,c={...Lc(i,{path:s,ogType:`article`}),ogImage:i.og_image||a?.url||null,publishedTime:i.published_on||null,author:o?.display_name||null},l=gc+(s.startsWith(`/`)?s:`/`+s),u={"@context":`https://schema.org`,"@type":`Article`,"@id":l+`#article`,mainEntityOfPage:l,headline:i.title||i.seo_title||``,description:c.description||void 0,image:c.ogImage||void 0,datePublished:i.published_on||void 0,dateModified:i.updated_at||i.published_on||void 0,author:o?.display_name?{"@type":`Person`,name:o.display_name,...o.slug?{url:`${gc}/authors/${o.slug}/`}:{}}:{"@type":`Organization`,name:`5WPR`},publisher:{"@type":`Organization`,name:`5WPR`,logo:{"@type":`ImageObject`,url:gc+`/favicon.ico`}}};return c.jsonld=[c.jsonld,u],{slug:n,seo:c}},head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(()=>F(()=>import(`./new._-DUPzeyn5.js`),__vite__mapDeps([97,1,15,7,9,5,6,8,10,19,43,13,14,16,17,44,27,45,74,32,2,0])),`component`),errorComponent:s(()=>F(()=>import(`./new._-x-MgmfKj.js`),__vite__mapDeps([98,1])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./new._-BtRjlfrk.js`),__vite__mapDeps([99,1,15,7,9,5,6,8,10])),`notFoundComponent`)}),e_=e=>k({queryKey:[`glossary_term`,e],queryFn:()=>Fp({data:{slug:e}}),staleTime:5*6e4}),t_=()=>F(()=>import(`./glossary._-D9C5pBr9.js`),__vite__mapDeps([100,1,15,7,9,5,6,8,10])),n_=()=>F(()=>import(`./glossary._-CXlKCb0l.js`),__vite__mapDeps([101,1])),r_=()=>F(()=>import(`./glossary._-Cn9RVaIU.js`),__vite__mapDeps([102,1,15,7,9,5,6,8,10,19,13,14,16,17,27,32,2,0])),i_=` | 5W PR Glossary`;function a_(e,t){let n=(e??``).trim();if(n&&n.length>=40)return n;let r=(n||t||``).trim().replace(/\s+/g,` `);return r?/\b5w\b/i.test(r)?r:([`${r}: Definition & Meaning`,`${r} — Definition`,r].find(e=>e.length<=45)??r)+i_:`PR & Communications Glossary | 5W PR`}var o_=u(`/glossary/$`)({beforeLoad:async({params:e,location:t})=>{if(!(e._splat??``).replace(/^\/+|\/+$/g,``))return;let{getRedirect:n}=await F(async()=>{let{getRedirect:e}=await import(`./redirects.functions-QKBlxdKq.js`);return{getRedirect:e}},__vite__mapDeps([40,6,7])),r=await n({data:{path:t.pathname}});if(r?.to){let{redirect:e}=await F(async()=>{let{redirect:e}=await import(`./esm-CuHQ5MFI.js`).then(e=>e.t);return{redirect:e}},__vite__mapDeps([15,1,7,9]));throw/^https?:\/\//i.test(r.to)?e({href:r.to,statusCode:301}):e({to:r.to,replace:!0})}},loader:async({params:e,context:t})=>{let n=(e._splat??``).replace(/^\/+|\/+$/g,``);if(!n)throw w();let r=await t.queryClient.ensureQueryData(e_(n));if(!r)throw w();let i=r.page,{normalizeGlossaryJsonld:a}=await F(async()=>{let{normalizeGlossaryJsonld:e}=await import(`./glossary-jsonld-BvXkzP-8.js`);return{normalizeGlossaryJsonld:e}},[]),o=Lc(i,{path:`/glossary/${n}/`,ogType:`article`});o.jsonld=a(o.jsonld),o.title=a_(i.seo_title,i.term||i.title||n);let s=xc(gc+(i.path?.startsWith(`/`)?i.path:`/`+(i.path??``))),c=vc(i.definition_html||i.body_html,500)||o.description||``,l={"@context":`https://schema.org`,"@type":`DefinedTerm`,"@id":s+`#term`,name:i.term||i.title||``,de
197scription:c||void 0,url:s,inDefinedTermSet:{"@type":`DefinedTermSet`,name:`5WPR Glossary`,url:gc+`/glossary/`}};return o.jsonld=[o.jsonld,l],{slug:n,seo:o}},head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(r_,`component`),errorComponent:s(n_,`errorComponent`),notFoundComponent:s(t_,`notFoundComponent`)}),s_=e=>k({queryKey:[`author_profile`,e],queryFn:()=>Jd({data:{slug:e}}),staleTime:5*6e4}),c_={amp:`&`,lt:`<`,gt:`>`,quot:`"`,apos:`'`,nbsp:` `,rsquo:`’`,lsquo:`‘`,rdquo:`”`,ldquo:`“`,mdash:`—`,ndash:`–`,hellip:`…`,eacute:`é`,amp39:`'`};function l_(e){let t=e;for(let e=0;e<2;e++)t=t.replace(/&#(\d+);/g,(e,t)=>String.fromCharCode(Number(t))).replace(/&#x([0-9a-f]+);/gi,(e,t)=>String.fromCharCode(parseInt(t,16))).replace(/&([a-z]+);/gi,(e,t)=>c_[String(t).toLowerCase()]??e);return t}function u_(e,t){let n=e.search(t);if(n<0)return null;let r=e.indexOf(`>`,n);if(r<0)return null;let i=/<div\b[^>]*>|<\/div>/gi;i.lastIndex=r+1;let a=1,o;for(;(o=i.exec(e))!==null;)if(a+=o[0].toLowerCase().startsWith(`</`)?-1:1,a===0)return e.slice(r+1,o.index);return e.slice(r+1)}function d_(e){if(!e)return null;let t=e.replace(/^\s*(?:"|&quot;)?\s*(?:>|&gt;)\s*/,``),n=u_(t,/<div[^>]*class="[^"]*\bdescription\b[^"]*"[^>]*>/i);return n&&(t=n),t=t.replace(/<script[\s\S]*?<\/script>/gi,``).replace(/<style[\s\S]*?<\/style>/gi,``).replace(/<h1\b[\s\S]*?<\/h1>/gi,``).replace(/<p[^>]*class="[^"]*eyebrow[^"]*"[^>]*>[\s\S]*?<\/p>/gi,``).replace(/\son\w+="[^"]*"/gi,``).trim(),t=Ye(t),t.replace(/<[^>]+>/g,``).trim()?t:null}function f_(e){if(!e)return[];let t=d_(e)??e,n=[],r=/<p[^>]*>([\s\S]*?)<\/p>/gi,i;for(;(i=r.exec(t))!==null;){let e=l_(i[1].replace(/<[^>]+>/g,` `)).replace(/\s+/g,` `).trim();e&&n.push(e)}if(n.length>0)return n;let a=l_(t.replace(/<[^>]+>/g,` `)).replace(/\s+/g,` `).trim();return a?[a]:[]}var p_={"kelly-carothers":{jobTitle:`Director of AI Search`,credentialLine:`Kelly writes about GEO, answer engine optimization, and AI search visibility.`,knowsAbout:[`Generative Engine Optimization (GEO)`,`Answer Engine Optimization (AEO)`,`AI search visibility`,`Public relations`,`Earned media`,`SEO strategy`,`Government affairs`,`Content strategy`],alumniOf:`Project N95`}};function m_(e){return e?p_[e]??{}:{}}function h_(e){let t=m_(e.slug),n=`https://www.5wpr.com/authors/${e.slug}/`,r=[...e.linkedinUrl?[e.linkedinUrl]:[],...t.sameAs??[]].filter(Boolean),i={"@context":`https://schema.org`,"@type":`Person`,"@id":n+`#person`,name:e.name,url:n,worksFor:{"@type":`Organization`,name:`5WPR`,url:`https://www.5wpr.com`}},a=e.roleTitle||t.jobTitle;return a&&(i.jobTitle=a),e.description&&(i.description=e.description),e.image&&(i.image=e.image),t.alumniOf&&(i.alumniOf={"@type":`Organization`,name:t.alumniOf}),t.knowsAbout?.length&&(i.knowsAbout=t.knowsAbout),r.length&&(i.sameAs=r),t.press?.length&&(i.subjectOf=t.press.map(e=>({"@type":`NewsArticle`,headline:e.headline,url:e.url,publisher:{"@type":`Organization`,name:e.outlet}}))),i}var g_=u(`/authors/$slug`)({loader:async({params:e,context:t})=>{let n=await t.queryClient.ensureQueryData(s_(e.slug));if(!n)throw w();return{slug:e.slug,author:n.author}},head:({loaderData:e,params:t})=>{let n=e?.author?.display_name??`Author`,r=f_(e?.author?.bio_html).join(` `)||`${n} writes on brand reputation, PR strategy, and AI visibility for the 5WPR team.`,i=Be(`/authors/${t?.slug??``}/`)??`${n} — Author, PR & AI Visibility Insights | 5WPR`,a=Ve(`/authors/${t?.slug??``}/`)??(r.length>=60?r.slice(0,180):`${n} contributes 5WPR analysis on public relations, brand reputation, digital marketing, and AI search visibility across ChatGPT, Claude, Perplexity, and Gemini.`),o=`https://www.5wpr.com/authors/${t?.slug??``}/`,s=(e?.author?.post_count??0)>0?`index, follow`:`noindex, follow`;return{meta:[{title:i},{name:`description`,content:a},{name:`robots`,content:s},{property:`og:title`,content:i},{property:`og:description`,content:a},{property:`og:url`,content:o},{property:`og:type`,content:`profile`}],links:[{rel:`canonical`,href:o}],scripts:[{type:`application/ld+json`,children:JSON.stringify(h_({slug:t?.slug??``,name:n,description:r||null,image:e?.author?.avatar_url??null,linkedinUrl:e?.author?.linkedin_url??null,roleTitle:e?.author?.role_title??null}))}]}},component:s(()=>F(()=>import(`./authors._slug-BX8Za1_v.js`),__vite__mapDeps([103,1,5,6,7,8,9,10,19,43,15,13,14,16,17,27])),`component`),errorComponent:s(()=>F(()=>import(`./authors._slug-CWxfMVyR.js`),__vite__mapDeps([104,1])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./authors._slug-F5D5pUYp.js`),__vite__mapDeps([105,1,15,7,9,5,6,8,10])),`notFoundComponent`)}),__=u(`/ai-visibility/citation-source-audit`)({beforeLoad:()=>{throw C({href:`/ai-citation-audit/`,statusCode:301})},component:s(()=>F(()=>import(`./ai-visibility.citation-source-audit-DJ7LAi8J.js`),[]),`component`)}),v_=()=>F(()=>import(`./ai-visibility-radar.sentiment-6JLCKjGA.js`),__vite__mapDeps([106,1,15,7,9,5,6,8,10,72,17,73,14,16,74,13,44,27,45])),y_=`AI Sentiment Index — how customers really rate the brands | 5WPR`,b_=`The 5W AI Sentiment Index reads public reviews across nine industries and scores what customers say about each brand. Updated every two weeks.`,x_=u(`/ai-visibility-radar/sentiment`)({head:()=>({meta:[{title:y_},{name:`description`,content:b_},{name:`robots`,content:`noindex, nofollow`},{property:`og:title`,content:y_},{property:`og:description`,content:b_},{property:`og:type`,content:`website`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/ai-visibility-radar/sentiment/`}]}),loader:({context:e})=>e.queryClient.ensureQueryData(em(null)),component:s(v_,`component`)}),S_=()=>F(()=>
197import(`./ai-visibility-radar.methodology-5Cwpiq3b.js`),__vite__mapDeps([107,1,15,7,9,5,6,8,10,73,14,16,17,13])),C_=`Methodology — 5W AI Visibility & Sentiment Index | 5WPR`,w_=`How the 5W AI Visibility Index and AI Sentiment Index are measured: prompts, engines, runs, review sources, scoring, and what we exclude.`,T_=u(`/ai-visibility-radar/methodology`)({head:()=>({meta:[{title:C_},{name:`description`,content:w_},{name:`robots`,content:`noindex, nofollow`},{property:`og:title`,content:C_},{property:`og:description`,content:w_},{property:`og:type`,content:`article`},{name:`twitter:card`,content:`summary_large_image`}]}),loader:({context:e})=>e.queryClient.ensureQueryData(em(null)),component:s(S_,`component`)}),E_=e=>k({queryKey:[`live_report`,e],queryFn:()=>bd({data:{path:e}}),staleTime:60*6e4}),D_=()=>F(()=>import(`./ai-visibility-index._-DrnnLcQm.js`),__vite__mapDeps([108,1,15,7,9,5,6,8,10])),O_=()=>F(()=>import(`./ai-visibility-index._-BY4BXGyW.js`),__vite__mapDeps([109,1])),k_=()=>F(()=>import(`./ai-visibility-index._-Dr_lxXEn.js`),__vite__mapDeps([110,1,5,6,7,8,9,10,19,42,43,15,13,14,16,17,44,27,45,46,47,48,32,2,0])),A_={title:`5W AI Visibility Index - Brand Citations Across AI Answer Engines`,description:`The 5W AI Visibility Index Series tracks how 500+ brands get cited across ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.`,canonical:`https://www.5wpr.com/ai-visibility-index/`,ogType:`website`},j_=u(`/ai-visibility-index/$`)({beforeLoad:async({params:e,location:t})=>{let{getRedirect:n}=await F(async()=>{let{getRedirect:e}=await import(`./redirects.functions-QKBlxdKq.js`);return{getRedirect:e}},__vite__mapDeps([40,6,7]));if(!(e._splat??``).replace(/^\/+|\/+$/g,``))return;let r=await n({data:{path:t.pathname}});if(r?.to){let{redirect:e}=await F(async()=>{let{redirect:e}=await import(`./esm-CuHQ5MFI.js`).then(e=>e.t);return{redirect:e}},__vite__mapDeps([15,1,7,9]));throw/^https?:\/\//i.test(r.to)?e({href:r.to,statusCode:301}):e({to:r.to,replace:!0})}},loader:async({params:e,context:t})=>{let n=(e._splat??``).replace(/^\/+|\/+$/g,``);if(!n)return await t.queryClient.ensureQueryData(Rd),{mode:`index`,seo:A_};let r=`/ai-visibility-index/${n}/`,i=await t.queryClient.ensureQueryData(Vd(r));if(i)return await t.queryClient.ensureQueryData(Rd),{mode:`avi`,path:r,seo:{...Lc(i,{path:r,ogType:`article`}),description:i.meta_description||i.summary||i.og_description||null}};let a=await t.queryClient.ensureQueryData(wd(r));if(!a)throw w();await t.queryClient.ensureQueryData(E_(r));let o=a.page;return{mode:`research`,path:r,seo:{...Lc(o,{path:r,ogType:`article`}),description:o.meta_description||o.summary||o.og_description||null}}},head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(k_,`component`),errorComponent:s(O_,`errorComponent`),notFoundComponent:s(D_,`notFoundComponent`)}),M_=u(`/admin-5wpr/team`)({component:s(()=>F(()=>import(`./admin-5wpr.team-DcmUhx90.js`),__vite__mapDeps([111,1,34,35,9,15,7,14,76,6,77,8,78,38])),`component`),head:()=>({meta:[{title:`Team access · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),N_=u(`/admin-5wpr/report-format`)({component:s(()=>F(()=>import(`./admin-5wpr.report-format-DLvN_naC.js`),__vite__mapDeps([112,1,14,15,7,9,6,77,76,8])),`component`),head:()=>({meta:[{title:`AI Report Formatter · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),P_=u(`/admin-5wpr/report-covers`)({component:s(()=>F(()=>import(`./admin-5wpr.report-covers-DEfO8MLm.js`),__vite__mapDeps([113,1,15,7,9,14,6,77,76,8])),`component`),head:()=>({meta:[{title:`Generate report covers · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),F_=u(`/admin-5wpr/regenerate-heroes`)({component:s(()=>F(()=>import(`./admin-5wpr.regenerate-heroes-CYqJnDV-.js`),__vite__mapDeps([114,1,14,15,7,9,6,77,76,8])),`component`),head:()=>({meta:[{title:`Regenerate hero images · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),I_=u(`/admin-5wpr/notifications`)({component:s(()=>F(()=>import(`./admin-5wpr.notifications-DV009m75.js`),__vite__mapDeps([115,1,34,35,9,15,7,14,6,77,76,8,78])),`component`),head:()=>({meta:[{title:`Article alerts · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),L_=u(`/admin-5wpr/media-migrate`)({component:s(()=>F(()=>import(`./admin-5wpr.media-migrate-BdJoHJJL.js`),__vite__mapDeps([116,1,14,15,7,9,6,77,8,76,37,117,35,38])),`component`),head:()=>({meta:[{title:`Migrate media · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),R_=u(`/admin-5wpr/media`)({component:s(()=>F(()=>import(`./admin-5wpr.media-BQX4Wygb.js`),__vite__mapDeps([118,1,76,15,7,9,14,6,77,8,119,120,35,10,121,37,38])),`component`),head:()=>({meta:[{title:`Media · 5WPR Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),z_=`/about5wpr/prcareers.cfm`,B_={about5wpr:`About 5W`,"5w-digital-marketing-team":`5W Digital Marketing`,prcareers:`PR Careers`,management:`Senior Leadership`,awards:`Awards`,history:`History`,services:`Services`,practice:`Practices`,research:`Research`,glossary:`Glossary`,new:`Blog`,contact:`Contact`,contactus:`Contact`,careers:`Careers`,"ai-citation-audit":`AI Citation Audit`,"ai-visibility-index":`AI Visibility Index`,"reputation-index":`Reputation Index`,florida:`Florida`,clients:`Clients`,"cookie-policy":`Cookie Policy`,"terms-and-conditions":`Terms & Conditions`,privacypolicy:`Privacy Policy`,links:`Links`,authors:`Authors`};function V_(e){let t=e.replace(/\.cfm$/i,``),n=t.toLowerCase();
197return B_[n]?B_[n]:t.split(/[-_]/g).filter(Boolean).map(e=>e.length<=2?e.toUpperCase():e[0].toUpperCase()+e.slice(1)).join(` `)}function H_({path:e,tone:t=`light`,className:n=``,overrides:r}){let i=e.split(`?`)[0].split(`#`)[0].split(`/`).filter(Boolean);return i.length===0?null:(0,z.jsx)(Ae,{items:i.map((e,t)=>{let n=`/`+i.slice(0,t+1).join(`/`)+(e.includes(`.`)?``:`/`),a=t===i.length-1,o={label:V_(e),to:a?void 0:n},s=r?.[t];return s?{...o,...s}:o}),tone:t,className:n})}function U_({html:e,title:t,pdfUrl:n}){let r=e.replace(/(<style[^>]*>)([\s\S]*?)(<\/style>)/gi,(e,t,n,r)=>t+n.replace(/(^|[}\s])body\s*\{[^}]*\}/g,`$1`)+r);return r=r.replace(/<header\b[^>]*class="[^"]*\bhero\b[^"]*"[^>]*>[\s\S]*?<\/header>/i,``).replace(/<div\b[^>]*class="[^"]*reputation-breadcrumb[^"]*"[^>]*>[\s\S]*?<\/div>/i,``),(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Ce,{}),(0,z.jsxs)(`main`,{className:`bg-white text-[#15181c]`,children:[(0,z.jsxs)(`section`,{className:`bg-[var(--color-navy)] text-[var(--color-ink-1)] relative`,children:[(0,z.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-0 opacity-[0.18]`,style:{backgroundImage:`radial-gradient(55% 55% at 82% 18%, var(--color-periwinkle) 0%, transparent 60%)`}}),(0,z.jsxs)(`div`,{className:`container-x relative pt-32 md:pt-40 pb-20 md:pb-28 max-w-5xl`,children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--color-periwinkle)]`,children:`5W Research`}),(0,z.jsx)(`h1`,{className:`mt-4 font-display font-bold leading-[1.05] tracking-[-0.02em]`,style:{fontSize:`clamp(32px, 5vw, 64px)`},children:t}),n&&(0,z.jsxs)(`a`,{href:n,target:`_blank`,rel:`noopener`,className:`mt-8 inl
197ine-flex items-center gap-2 rounded-full bg-[var(--color-periwinkle)] px-6 py-3 text-sm font-semibold text-[var(--color-navy)] shadow-sm transition hover:bg-white`,children:[(0,z.jsxs)(`svg`,{"aria-hidden":`true`,viewBox:`0 0 24 24`,width:`18`,height:`18`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,z.jsx)(`path`,{d:`M12 3v12`}),(0,z.jsx)(`path`,{d:`m7 10 5 5 5-5`}),(0,z.jsx)(`path`,{d:`M5 21h14`})]}),`Download the full report (PDF)`]})]})]}),(0,z.jsx)(`div`,{className:`report-inline`,dangerouslySetInnerHTML:{__html:Ke(r)},"aria-label":t})]}),(0,z.jsx)(Se,{})]})}function W_(e){let t=new Map,n=/<div[^>]*class="[^"]*\byear-(\d{4})\b[^"]*"[^>]*>([\s\S]*?)<\/div>\s*(?=<div[^>]*class="[^"]*\byear-\d{4}\b|<div[^>]*class="[^"]*\brounded-circle\b|$)/gi,r;for(;r=n.exec(e);){let e=r[1],n=r[2],i=/<div[^>]*class="[^"]*\bcol-md-\d+\b[^"]*"[^>]*>([\s\S]*?)(?=<div[^>]*class="[^"]*\bcol-md-\d+\b|<\/div>\s*<\/div>|$)/gi,a;for(;a=i.exec(n);){let n=a[1],r=n.match(/<a[^>]*href="([^"]+)"/i),i=n.match(/<img[^>]*src="([^"]+)"[^>]*alt="([^"]*)"/i),o=n.match(/<p[^>]*>([\s\S]*?)<\/p>/i);if(!i)continue;let s=tt((o?.[1]??i[2]??``).replace(/<[^>]+>/g,``).trim()),c=t.get(e)??[];c.push({href:r?.[1]??`#`,img:i[1],alt:tt(i[2]??s),title:s}),t.set(e,c)}}if(t.size===0){let n=/rounded-circle[^>]*>\s*(\d{4})\s*</g,r=[],i;for(;i=n.exec(e);)r.push({year:i[1],idx:i.index});for(let n=0;n<r.length;n++){let i=r[n].idx,a=n+1<r.length?r[n+1].idx:e.length,o=e.slice(i,a).match(/<div[^>]*class="[^"]*col-md-\d+[^"]*"[^>]*>[\s\S]*?<\/div>/gi)??[],s=[];for(let e of o){let t=e.match(/<a[^>]*href="([^"]+)"/i),n=e.match(/<img[^>]*src="([^"]+)"[^>]*alt="([^"]*)"/i),r=e.match(/<p[^>]*>([\s\S]*?)<\/p>/i);if(!n)continue;let i=tt((r?.[1]??n[2]??``).replace(/<[^>]+>/g,``).trim());s.push({href:t?.[1]??`#`,img:n[1],alt:tt(n[2]??i),title:i})}s.length&&t.set(r[n].year,s)}}return[...t.entries()].sort((e,t)=>Number(t[0])-Number(e[0])).map(([e,t])=>({year:e,items:t}))}function G_({html:e}){let t=(0,R.useMemo)(()=>W_(e),[e]);return t.length?(0,z.jsx)(`div`,{className:`space-y-16 md:space-y-20`,children:t.map(e=>(0,z.jsxs)(`section`,{children:[(0,z.jsxs)(`div`,{className:`flex items-baseline gap-4 mb-6 md:mb-8`,children:[(0,z.jsx)(`h2`,{className:`font-display font-bold tracking-[-0.02em] text-[var(--color-ink-1)]`,style:{fontSize:`clamp(28px, 4vw, 44px)`},children:e.year}),(0,z.jsx)(`div`,{className:`h-px flex-1 bg-[var(--color-rule)]`}),(0,z.jsxs)(`span`,{className:`mono-label text-[var(--color-ink-3)]`,children:[e.items.length,` `,e.items.length===1?`honor`:`honors`]})]}),(0,z.jsx)(`ul`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-4 md:gap-6`,children:e.items.map((t,n)=>(0,z.jsx)(`li`,{children:(0,z.jsxs)(`a`,{href:t.href,target:`_blank`,rel:`noopener`,className:`group block rounded-2xl border border-white/10 bg-[var(--color-navy-card)] overflow-hidden transition hover:-translate-y-0.5 hover:border-[var(--color-periwinkle)]/40 hover:shadow-[0_18px_40px_-20px_rgba(0,0,0,0.6)]`,children:[(0,z.jsx)(`div`,{className:`aspect-[4/3] bg-white flex items-center justify-center p-5`,children:(0,z.jsx)(`img`,{src:t.img,alt:t.alt,loading:`lazy`,decoding:`async`,className:`max-h-full max-w-full object-contain transition group-hover:scale-[1.03]`})}),(0,z.jsx)(`div`,{className:`px-4 py-3 border-t border-white/10`,children:(0,z.jsx)(`p`,{className:`text-[13px] leading-snug text-[var(--color-ink-2)] overflow-hidden`,style:{display:`-webkit-box`,WebkitLineClamp:3,WebkitBoxOrient:`vertical`},children:t.title})})]})},`${e.year}-${n}`))})]},e.year))}):null}var K_=[{date:`SEP 18, 2026`,href:`https://www.prnewswire.com/news-releases/5w-named-one-of-the-top-marketing-and-communications-agencies-in-the-country-by-the-pr-net-302882906.html`,img:`https://api.5wpr.com/storage/v1/object/public/media/inline/pages-body-html/history-5wlogocoverforwebsite.webp`,alt:`5W Named One of the Top Marketing and Communications Agencies in the Country by The PR Net`,title:`5W Named One of the Top Marketing and Communications Agencies in the Country by The PR Net`,body:`The PR Net has recognized 5W among the top marketing and communications agencies in the country, honoring the agency's continued growth and client results across consumer, technology, and lifestyle practice areas.`},{date:`AUG 06, 2026`,href:`https://www.prnewswire.com/news-releases/5w-named-agency-of-record-for-novo-to-elevate-the-voice-of-independent-business-owners-302844475.html`,img:`https://api.5wpr.com/storage/v1/object/public/media/inline/pages-body-html/history-5wlogocoverforwebsite.webp`,alt:`5W Named Agency of Record for Novo`,title:`5W Named Agency of Record for Novo to Elevate the Voice of Independent Business Owners`,body:`5W will lead communications strategy for Novo, championing the stories of independent business owners and entrepreneurs across earned, owned, and paid channels.`},{date:`MAY 20, 2026`,href:`https://clutch.co/press-releases/clutch-global-spring-2026-marketing`,img:`https://api.5wpr.com/storage/v1/object/public/media/inline/pages-body-html/history-5wlogocoverforwebsite.webp`,alt:`5W Named Top PR Firm by Clutch Spring 2026 Global Awards`,title:`5W Named Top PR Firm by Clutch Spring 2026 Global Awards`,body:`5W is recognized as a leading PR firm in Clutch's Spring 2026 Global Awards, highlighting excellence in strategic communications and client results.`}];function q_(e){return tt(e.replace(/<[^>]+>/g,` `).replace(/\s+/g,` `).trim())}function J_(e){let t=[],n=/rounded-circle[^>]*>\s*([^<]+?)\s*</g,r=[],i;for(;i=n.exec(e);)r.push({date:i[1],idx:i.index});for(let n=0;n<r.length;n++){let i=r[n].idx,a=n+1<r.length?r[n+1].idx:e.length,o=e.slice(i,a),s=o.match(/<img[^>]*src="([^"]+)"[^>
197]*alt="([^"]*)"/i),c=o.match(/<a[^>]*href="([^"]+)"[^>]*>\s*<img/i),l=o.match(/<h3[^>]*>([\s\S]*?)<\/h3>/i),u=o.match(/<a[^>]*href="([^"]+)"[^>]*>\s*<h3[^>]*>([\s\S]*?)<\/h3>/i),d=[...o.matchAll(/<p[^>]*>([\s\S]*?)<\/p>/gi)].map(e=>q_(e[1])).filter(Boolean),f=u?q_(u[2]):l?q_(l[1]):``,p=d.join(` `);!f&&!p&&!s||t.push({date:tt(r[n].date),href:u?.[1]??c?.[1]??null,img:s?.[1]??null,alt:tt(s?.[2]??f),title:f,body:p})}return t}function Y_(e){let t=e.trim();if(/^present$/i.test(t))return{eyebrow:`Today`,year:`Present`};let n=t.match(/([A-Z]{3,})\s*0?(\d{1,2}),\s*(\d{4})/i);return n?{eyebrow:`${n[1].slice(0,3).toUpperCase()} ${n[2]}`,year:n[3]}:{eyebrow:t,year:t.match(/(\d{4})/)?.[1]??t}}function X_({html:e}){let t=(0,R.useMemo)(()=>[...K_,...J_(e)],[e]);if(!t.length)return null;let n=new Map;for(let e of t){let{year:t}=Y_(e.date);n.has(t)||n.set(t,[]),n.get(t).push(e)}return(0,z.jsx)(`div`,{className:`space-y-20 md:space-y-28`,children:[...n.entries()].map(([e,t])=>(0,z.jsxs)(`section`,{children:[(0,z.jsxs)(`div`,{className:`flex items-baseline gap-4 mb-8 md:mb-10`,children:[(0,z.jsx)(`h2`,{className:`font-display font-bold tracking-[-0.02em] text-[var(--color-ink-1)]`,style:{fontSize:`clamp(32px, 4.5vw, 56px)`},children:e}),(0,z.jsx)(`div`,{className:`h-px flex-1 bg-[var(--color-rule)]`}),(0,z.jsxs)(`span`,{className:`mono-label text-[var(--color-ink-3)]`,children:[t.length,` `,t.length===1?`milestone`:`milestones`]})]}),(0,z.jsx)(`ul`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-7`,children:t.map((t,n)=>{let{eyebrow:r}=Y_(t.date),i=(0,z.jsxs)(`article`,{className:`group h-full flex flex-col rounded-2xl border border-white/10 bg-[var(--color-navy-card)] overflow-hidden transition hover:-translate-y-0.5 hover:border-[var(--color-periwinkle)]/40 hover:shadow-[0_18px_40px_-20px_rgba(0,0,0,0.6)]`,children:[t.img&&(0,z.jsx)(`div`,{className:`aspect-[16/10] bg-white overflow-hidden`,children:(0,z.jsx)(`img`,{src:t.img,alt:t.alt,loading:`lazy`,decoding:`async`,className:`h-full w-full object-cover transition group-hover:scale-[1.03]`})}),(0,z.jsxs)(`div`,{className:`p-5 md:p-6 flex-1 flex flex-col`,children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--color-periwinkle)]`,children:r}),t.title&&(0,z.jsx)(`h3`,{className:`mt-2 font-display font-bold leading-snug tracking-[-0.01em] text-[var(--color-ink-1)] group-hover:text-[var(--color-periwinkle)] transition`,style:{fontSize:`clamp(17px, 1.4vw, 20px)`},children:t.title}),t.body&&(0,z.jsx)(`p`,{className:`mt-3 text-[14px] leading-relaxed text-[var(--color-ink-3)] overflow-hidden`,style:{display:`-webkit-box`,WebkitLineClamp:t.img?4:8,WebkitBoxOrient:`vertical`},children:t.body}),t.href&&(0,z.jsxs)(`span`,{className:`mt-4 inline-flex items-center gap-1 text-[13px] font-semibold text-[var(--color-periwinkle)]`,children:[`Read more `,(0,z.jsx)(`span`,{"aria-hidden":!0,children:`→`})]})]})]});return(0,z.jsx)(`li`,{className:`h-full`,children:t.href?(0,z.jsx)(`a`,{href:t.href,target:`_blank`,rel:`noopener`,className:`block h-full`,children:i}):i},`${e}-${n}`)})})]},e))})}var Z_=S({method:`GET`}).handler(b(`9993f8b1d2167db69299e0c810e5c18401d0fed6b33d90db6068629526d8c7eb`)),Q_=S({method:`POST`}).handler(b(`40570d063016e934c597093939d05b94bc55316d52c29aec15958505c12688da`));S({method:`POST`}).handler(b(`4e13ed59ebd98a4679ef24923dc2b4aa7e91c2e3a506cc7c17ef057e3385b5ca`));var $_=S({method:`GET`}).middleware([re]).handler(b(`b7b7c6ed9d415636bdf09b5a0893dea3d0c823d98d79b69d0c82bae1f314c5e5`)),ev=S({method:`POST`}).middleware([re]).handler(b(`4c3c0ff5ecea65ea3d1185f6a98cf793b00e3f1f5ec2c1eb5afb060346567f36`)),tv=S({method:`POST`}).middleware([re]).handler(b(`f7de9ba5433623c54d8cf1201f4b5ce38edb73a6b78463742739c2d934ab26bb`)),nv=S({method:`POST`}).middleware([re]).handler(b(`22933188c87460aa7830ae3168221e08e9def60c6972df2cf097a2d4a26ca113`)),rv=S({method:`POST`}).middleware([re]).handler(b(`32d6ed5410f268dd19ed4411781ca485812f1d91b06ac0f3aaffaf2d186beed6`)),iv=S({method:`POST`}).middleware([re]).handler(b(`c2ace8ce0e72c1677807258354e59e3dab47cfe94fb46023b5f83fea12dc04f9`)),av=S({method:`POST`}).middleware([re]).handler(b(`3ebe34425da1315e65b9b7ec5ae9a032db4def4ae7b6318215dbf69d264b20ca`)),ov=S({method:`POST`}).middleware([re]).handler(b(`b549675dfbf566a8811ece40763900e515c4aff88563f7cca47b86b705194183`)),sv=S({method:`POST`}).middleware([re]).handler(b(`81a902a15135f671784793f085ee896acdbb98ae77753e94b40b1d94f8a4c61c`)),cv=S({method:`POST`}).middleware([re]).handler(b(`67d6e1901d4585c4a741bdec3b099a29df116752e626523dc7e6780aa331ad15`)),lv=S({method:`POST`}).middleware([re]).handler(b(`bedcfc5a42f12e91ee4ee76d163b61340e534270eb76aa29856b74300ac68a87`));function uv(e){return e.toLowerCase().normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,80)}function dv(e){return e.replace(/-/g,``).slice(0,6)}function fv(e){let t=new Map;for(let n of e){let e=uv(n.title??``)||n.id;t.set(e,(t.get(e)??0)+1)}let n={};for(let r of e){let e=uv(r.title??``)||r.id;n[r.id]=(t.get(e)??0)>1?`${e}-${dv(r.id)}`:e}return n}function pv(e,t){return uv(e??``)||t}function mv(e){return`${uv(e.title??``)}|${uv(e.location??``)}`}function hv(e){let t=new Map;for(let n of e){let e=mv(n),r=t.get(e);if(!r){t.set(e,n);continue}let i=r.greenhouse_id??2**53-1,a=n.greenhouse_id??2**53-1;(a<i||a===i&&n.id<r.id)&&t.set(e,n)}let n={};for(let r of e)n[r.id]=t.get(mv(r)).id;return n}
197function gv(e){let t=hv(e);return e.filter(e=>t[e.id]===e.id)}var _v=k({queryKey:[`careers`,`open-jobs`],queryFn:()=>Z_(),staleTime:5*6e4});function vv(){let{data:e}=Oe(_v),t=fv(e),n=gv(e),r={};for(let e of n){let t=e.department||`Other`;(r[t]=r[t]||[]).push(e)}let i=Object.keys(r).sort();return(0,z.jsx)(`section`,{id:`open-roles`,className:`section-pad border-t border-white/5`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsxs)(`div`,{className:`flex items-baseline gap-4 mb-10`,children:[(0,z.jsx)(`h2`,{className:`font-display font-bold tracking-[-0.02em]`,style:{fontSize:`clamp(32px, 4.5vw, 56px)`},children:`Open roles`}),(0,z.jsx)(`div`,{className:`h-px flex-1 bg-[var(--color-rule)]`}),(0,z.jsxs)(`span`,{className:`mono-label text-[var(--color-ink-3)]`,children:[n.length,` `,n.length===1?`role`:`roles`]})]}),n.length===0?(0,z.jsx)(`div`,{className:`rounded-2xl border border-white/10 bg-[var(--color-navy-card)] p-8 text-center`,children:(0,z.jsxs)(`p`,{className:`text-[var(--color-ink-2)]`,children:[`No open roles right now. We're always looking, though —`,` `,(0,z.jsx)(`a`,{href:`mailto:[email protected]`,className:`text-[var(--color-periwinkle)] hover:underline`,children:`send us your resume`}),`.`]})}):(0,z.jsx)(`div`,{className:`space-y-10`,children:i.map(e=>(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--color-periwinkle)] mb-4`,children:e}),(0,z.jsx)(`ul`,{className:`divide-y divide-white/10 border-y border-white/10`,children:r[e].map(e=>(0,z.jsx)(`li`,{children:(0,z.jsxs)(c,{to:Le(`/about5wpr/prcareers/${t[e.id]}`),className:`group grid grid-cols-1 md:grid-cols-[1fr_auto_auto] items-center gap-4 py-5 px-2 md:px-4 transition hover:bg-white/[0.03]`,children:[(0,z.jsx)(`div`,{children:(0,z.jsx)(`h3`,{className:`font-display font-bold text-xl md:text-2xl tracking-[-0.01em] group-hover:text-[var(--color-periwinkle)] transition`,children:e.title})}),(0,z.jsx)(`span`,{className:`text-sm text-[var(--color-ink-2)]`,children:e.location??``}),(0,z.jsx)(`span`,{className:`rounded-full border border-white/20 px-4 py-2 text-sm text-white group-hover:border-[var(--color-periwinkle)] group-hover:text-[var(--color-periwinkle)] transition`,children:`View role →`})]})},e.id))})]},e))})]})})}var yv=`https://api.5wpr.com/storage/v1/object/public/media/careers/boomerang.mp4?v=browser-compatible-2`,bv=`https://api.5wpr.com/storage/v1/object/public/media/careers/boomerang-poster.jpg?v=browser-compatible-2`,xv=[`5WPR team members collaborating in the New York office`,`5WPR staff at a team meeting in the agency office`,`5WPR employees working together at the agency`,`5WPR team celebrating at a company event`,`5WPR colleagues in conversation at the office`,`5WPR staff at an agency social gathering`,`5WPR account team at work in the office`,`5WPR team members at an agency offsite`,`5WPR employees at the agency workspace`];function Sv(e){return tt(e.replace(/<[^>]+>/g,` `).replace(/\s+/g,` `).trim())}function Cv(e){let t=e.match(/<div[^>]*class="[^"]*intro-copy[^"]*"[^>]*>([\s\S]*?)<\/div>/i),n=t?[...t[1].matchAll(/<p[^>]*>([\s\S]*?)<\/p>/gi)].map(e=>e[1].trim()):[],r=[],i=/<div[^>]*class="[^"]*\bperk\b[^"]*"[^>]*>([\s\S]*?)<\/div>\s*<\/div>/gi,a;for(;a=i.exec(e);){let e=a[1],t=e.match(/<img[^>]*src="([^"]+)"[^>]*alt="([^"]*)"/i),n=e.match(/<p[^>]*class="[^"]*perk-title[^"]*"[^>]*>([\s\S]*?)<\/p>/i),i=[...e.matchAll(/<p[^>]*>([\s\S]*?)<\/p>/gi)].map(e=>Sv(e[1])),o=Sv(n?.[1]??t?.[2]??``),s=i.find(e=>e&&e!==o)??``;!t&&!o||r.push({icon:t?.[1]??``,title:o,body:s})}let o=[...e.matchAll(/pr-gallery-img[^>]*src="([^"]+)"/gi)].map(e=>e[1]),s=null,c=e.match(/testimonial-text[^>]*>([\s\S]*?)<\/h3>/i),l=e.match(/testimonial-author[^>]*>([\s\S]*?)<\/h3>/i);if(c){let e=l?.[1]??``,t=e.match(/<b>([\s\S]*?)<\/b>/i),n=e.match(/testimonial-role[^>]*>([\s\S]*?)<\/span>/i);s={quote:Sv(c[1]),author:Sv(t?.[1]??``),role:Sv(n?.[1]??``)}}let u=e.match(/class="[^"]*semi-circle[^"]*"[\s\S]*?<img[^>]*src="([^"]+)"[^>]*alt="([^"]*)"/i),d=e.match(/<video[\s\S]*?<source[^>]*src="([^"]+)"/i)?.[1]??``;return{intro:n,perks:r,gallery:o,testimonial:s,award:u?{src:u[1],alt:tt(u[2])}:null,videoSrc:d}}function wv({html:e,title:t,description:n}){let r=(0,R.useMemo)(()=>({...Cv(e),videoSrc:yv}),[e]);return(0,z.jsxs)(`main`,{className:`bg-[var(--color-navy)] text-[var(--color-ink-1)] overflow-x-hidden`,children:[(0,z.jsxs)(`section`,{className:`relative`,children:[(0,z.jsx)(`div`,{"aria-hidden":!0,
197className:`pointer-events-none absolute inset-0 opacity-[0.18]`,style:{backgroundImage:`radial-gradient(55% 55% at 82% 18%, var(--color-periwinkle) 0%, transparent 60%), radial-gradient(45% 45% at 8% 92%, #ffffff 0%, transparent 60%)`}}),(0,z.jsxs)(`div`,{className:`container-x relative pt-28 md:pt-36 pb-10`,children:[(0,z.jsx)(H_,{path:`/about5wpr/prcareers.cfm`,tone:`dark`,className:`mb-6`}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 mono-label text-[var(--color-periwinkle)]`,children:[(0,z.jsx)(`span`,{className:`inline-block h-px w-8 bg-[var(--color-periwinkle)]`}),`Culture & Careers`]}),(0,z.jsxs)(`h1`,{className:`mt-6 font-display font-black leading-[0.94] tracking-[-0.035em]`,style:{fontSize:`clamp(44px, 7.5vw, 112px)`},children:[`Built for now.`,(0,z.jsx)(`br`,{}),(0,z.jsx)(`span`,{className:`text-[var(--color-periwinkle)]`,children:`Built by us.`})]}),n&&(0,z.jsx)(`p`,{className:`mt-8 max-w-2xl text-[var(--color-ink-3)] text-lg md:text-xl leading-relaxed`,children:n}),(0,z.jsxs)(`div`,{className:`mt-8 flex flex-wrap gap-3`,children:[(0,z.jsx)(`a`,{href:`#open-roles`,className:`rounded-full bg-[var(--color-periwinkle)] text-[var(--color-navy)] font-semibold px-6 py-3 hover:brightness-110 transition`,children:`See open roles →`}),(0,z.jsx)(`a`,{href:`#perks`,className:`rounded-full border border-white/25 text-white px-6 py-3 hover:bg-white/10 transition`,children:`Benefits & perks`})]})]}),r.videoSrc&&(0,z.jsx)(`div`,{className:`container-x pb-16 md:pb-24`,children:(0,z.jsxs)(`div`,{className:`relative rounded-3xl overflow-hidden border border-white/10 shadow-[0_30px_80px_-30px_rgba(0,0,0,0.6)]`,children:[(0,z.jsx)(`img`,{src:bv,alt:`Why 5W is the place to be`,className:`absolute inset-0 h-full w-full object-cover`,loading:`eager`,fetchPriority:`high`}),(0,z.jsx)(`video`,{autoPlay:!0,muted:!0,loop:!0,playsInline:!0,controls:!0,preload:`metadata`,poster:bv,className:`relative z-[1] block w-full aspect-video bg-transparent`,children:(0,z.jsx)(`source`,{src:r.videoSrc,type:`video/mp4`})}),(0,z.jsx)(`div`,{className:`absolute inset-0 z-[2] bg-gradient-to-t from-[var(--color-navy)] via-[rgba(19,16,44,0.35)] to-transparent pointer-events-none`}),(0,z.jsx)(`div`,{className:`absolute inset-0 z-[3] flex items-end p-6 md:p-10 pointer-events-none`,children:(0,z.jsxs)(`div`,{className:`max-w-xl pointer-events-auto`,children:[(0,z.jsx)(`p`,{className:`font-serif-i text-[var(--color-ink-2)] text-lg md:text-xl mb-2`,children:`A day inside 5W.`}),(0,z.jsx)(`p`,{className:`text-[var(--color-ink-3)] text-base md:text-[17px] leading-relaxed`,children:`A talented, vibrant, motivated community making meaningful impact for the world's most ambitious brands.`})]})})]})})]}),r.intro.length>0&&(0,z.jsx)(`section`,{className:`section-pad border-t border-white/5`,children:(0,z.jsxs)(`div`,{className:`container-x grid lg:grid-cols-12 gap-10 lg:gap-16 items-start`,children:[(0,z.jsxs)(`div`,{className:`lg:col-span-5`,children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--color-periwinkle)]`,children:`A Digital Communications Agency`}),(0,z.jsx)(`h2`,{className:`mt-5 font-display font-black leading-[1.04] tracking-[-0.03em] text-3xl md:text-5xl`,children:`We celebrate individuality and act on ideas.`})]}),(0,z.jsx)(`div`,{className:`lg:col-span-7 space-y-5 text-[var(--color-ink-2)] text-base md:text-lg leading-relaxed`,children:r.intro.slice(0,3).map((e,t)=>(0,z.jsx)(`p`,{dangerouslySetInnerHTML:{__html:e.replace(/<a /gi,`<a class="text-[var(--color-periwinkle)] hover:underline" `).trim()}},t))})]})}),r.perks.length>0&&(0,z.jsx)(`section`,{id:`perks`,className:`section-pad border-t border-white/5`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsxs)(`div`,{className:`flex items-baseline gap-4 mb-10`,children:[(0,z.jsx)(`h2`,{className:`font-display font-bold tracking-[-0.02em]`,style:{fontSize:`clamp(32px, 4.5vw, 56px)`},children:`Benefits & Perks`}),(0,z.jsx)(`div`,{className:`h-px flex-1 bg-[var(--color-rule)]`}),(0,z.jsxs)(`span`,{className:`mono-label text-[var(--color-ink-3)]`,children:[r.perks.length,` reasons`]})]}),(0,z.jsx)(`ul`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-6`,children:r.perks.map((e,t)=>(0,z.jsxs)(`li`,{className:`group rounded-2xl border border-white/10 bg-[var(--color-navy-card)] p-6 md:p-7 transition hover:-translate-y-0.5 hover:border-[var(--color-periwinkle)]/40 hover:shadow-[0_18px_40px_-20px_rgba(0,0,0,0.6)]`,children:[e.icon&&(0,z.jsx)(`div`,{className:`h-14 w-14 roun
197ded-xl bg-white/95 grid place-items-center mb-5 overflow-hidden`,children:(0,z.jsx)(`img`,{src:e.icon,alt:e.title,loading:`lazy`,decoding:`async`,className:`h-10 w-10 object-contain`})}),(0,z.jsx)(`h3`,{className:`font-display font-bold text-lg md:text-xl tracking-[-0.01em] group-hover:text-[var(--color-periwinkle)] transition`,children:e.title}),e.body&&(0,z.jsx)(`p`,{className:`mt-2 text-[14.5px] leading-relaxed text-[var(--color-ink-3)]`,children:e.body})]},t))})]})}),(r.testimonial||r.award)&&(0,z.jsx)(`section`,{className:`section-pad border-t border-white/5`,children:(0,z.jsxs)(`div`,{className:`container-x grid lg:grid-cols-12 gap-10 items-center`,children:[r.testimonial&&(0,z.jsxs)(`blockquote`,{className:`lg:col-span-8`,children:[(0,z.jsxs)(`p`,{className:`font-display font-bold leading-[1.15] tracking-[-0.02em] text-[var(--color-ink-1)]`,style:{fontSize:`clamp(24px, 3vw, 38px)`},children:[(0,z.jsx)(`span`,{className:`text-[var(--color-periwinkle)]`,children:`"`}),r.testimonial.quote,(0,z.jsx)(`span`,{className:`text-[var(--color-periwinkle)]`,children:`"`})]}),(0,z.jsxs)(`footer`,{className:`mt-6 text-[var(--color-ink-3)]`,children:[(0,z.jsx)(`span`,{className:`font-semibold text-[var(--color-ink-1)]`,children:r.testimonial.author}),r.testimonial.role&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`mx-2 text-[var(--color-ink-4)]`,children:`·`}),(0,z.jsx)(`span`,{children:r.testimonial.role})]})]})]}),r.award&&(0,z.jsx)(`div`,{className:`lg:col-span-4`,children:(0,z.jsx)(`div`,{className:`rounded-2xl bg-white/95 p-6 grid place-items-center`,children:(0,z.jsx)(`img`,{src:r.award.src,alt:r.award.alt,loading:`lazy`,decoding:`async`,className:`max-h-40 w-auto object-contain`})})})]})}),r.gallery.length>0&&(0,z.jsx)(`section`,{className:`section-pad border-t border-white/5`,children:(0,z.jsxs)(`div`,{className:`container-x`,children:[(0,z.jsxs)(`div`,{className:`flex items-baseline gap-4 mb-10`,children:[(0,z.jsx)(`h2`,{className:`font-display font-bold tracking-[-0.02em]`,style:{fontSize:`clamp(28px, 3.5vw, 44px)`},children:`Life at 5W`}),(0,z.jsx)(`div`,{className:`h-px flex-1 bg-[var(--color-rule)]`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-2 md:grid-cols-3 gap-3 md:gap-4`,children:r.gallery.map((e,t)=>(0,z.jsx)(`div`,{className:`relative overflow-hidden rounded-2xl border border-white/10 bg-[var(--color-navy-soft)] ${t%5==2?`row-span-2 aspect-[3/4]`:`aspect-[4/3]`}`,children:(0,z.jsx)(`img`,{src:e,alt:xv[t]??`5WPR team members at the agency office`,loading:`lazy`,decoding:`async`,className:`absolute inset-0 h-full w-full object-cover transition duration-500 hover:scale-[1.04]`})},t))})]})}),(0,z.jsx)(R.Suspense,{fallback:(0,z.jsx)(`section`,{id:`open-roles`,className:`section-pad border-t border-white/5`,children:(0,z.jsx)(`div`,{className:`container-x`,children:(0,z.jsx)(`p`,{className:`text-[var(--color-ink-3)]`,children:`Loading open roles…`})})}),children:(0,z.jsx)(vv,{})}),(0,z.jsx)(`section`,{className:`section-pad border-t border-white/5`,children:(0,z.jsxs)(`div`,{className:`container-x text-center max-w-3xl mx-auto`,children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--color-periwinkle)]`,children:`Don't see a fit?`}),(0,z.jsx)(`h2`,{className:`mt-4 font-display font-black tracking-[-0.03em] leading-[1.02]`,style:{fontSize:`clamp(40px, 6vw, 84px)`},children:`Introduce yourself.`}),(0,z.jsxs)(`p`,{className:`mt-6 text-[var(--color-ink-3)] text-lg leading-relaxed`,children:[`Send your resume and a note about what you want to build to`,` `,(0,z.jsx)(`a`,{href:`mailto:[email protected]`,className:`text-[var(--color-periwinkle)] hover:underline`,children:`[email protected]`}),`. We review every submission.`]})]})}),(0,z.jsx)(`p`,{className:`sr-only`,children:t})]})}var Tv=`/assets/about-hero-CWvMZ_AB.jpg`,Ev=e=>k({queryKey:[`page_resolve`,e],queryFn:()=>Vl({data:{path:e}}),staleTime:5*6e4}),Dv=e=>k({queryKey:[`live_report`,e],queryFn:()=>bd({data:{path:e}}),staleTime:60*6e4});function Ov(e){return e?.template===`report`?(e.body_html??``).trim().length<200:!1}function kv({path:e,title:t,fallbackHtml:n}){let{data:r}=Oe(Dv(e));return(0,z.jsx)(U_,{html:r?.html??n,title:t})}function Av({path:e}){let{data:t}=Oe(Ev(e));if(!t||t.kind!==`page`)return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Ce,{}),(0,z.jsxs)(`main`,{className:`container-x py-32 text-center`,children:[(0,z.jsx)(`p`,{className:`mono-label text-[var(--color-periwinkle)]`,children:`404`}),(0,z.jsx)(`h1`,{className:`mt-4 font-display text-5xl text-[var(--color-ink-1)]`,children:`Page not found`})]}),(0,z.jsx)(Se,{})]});let n=t.page;if(n.template===`report`)return Ov(n)?(0,z.jsx)(kv,{path:e,title:n.title,fallbackHtml:n.body_html??``}):(0,z.jsx)(U_,{html:n.body_html??``,title:n.title});let r=n.template===`about`,i=Ye(et(r?qe(n.body_html??``):n.body_html??``),n.title??void 0);if(r&&e===`/about5wpr/prcareers.cfm`)return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Ce,{}
197),(0,z.jsx)(wv,{html:n.body_html??``,title:n.title,description:n.meta_description}),(0,z.jsx)(Se,{})]});if(r){let t=(n.section||`About 5W`).toString();return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Ce,{}),(0,z.jsxs)(`main`,{className:`bg-[var(--color-bg)]`,children:[(0,z.jsxs)(`section`,{className:`relative overflow-hidden bg-[var(--color-navy)] text-[var(--color-ink-1)]`,children:[(0,z.jsx)(`img`,{src:Tv,alt:``,"aria-hidden":!0,className:`absolute inset-0 h-full w-full object-cover opacity-40`,width:1920,height:1088,fetchPriority:`high`,decoding:`async`}),(0,z.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-0`,style:{background:`linear-gradient(180deg, rgba(10,15,35,0.55) 0%, rgba(10,15,35,0.85) 70%, var(--color-navy) 100%)`}}),(0,z.jsxs)(`div`,{className:`container-x relative pt-32 md:pt-40 max-w-5xl ${e===`/about5wpr/awards.cfm`?`pb-8 md:pb-10`:`pb-20 md:pb-28`}`,children:[(0,z.jsx)(H_,{path:e,tone:`dark`,className:`mb-6`}),(0,z.jsx)(`p`,{className:`mono-label text-[var(--color-periwinkle)]`,children:t}),(0,z.jsx)(`h1`,{className:`mt-5 font-display font-bold leading-[1.04] tracking-[-0.02em]`,style:{fontSize:`clamp(34px, 5.5vw, 72px)`},children:n.title}),n.meta_description&&(0,z.jsx)(`p`,{className:`mt-6 max-w-2xl text-lg md:text-xl text-[var(--color-ink-2)] leading-relaxed`,children:n.meta_description}),(0,z.jsx)(`div`,{className:`mt-10 h-px w-24 bg-[var(--color-periwinkle)]/60`})]})]}),(0,z.jsx)(`section`,{className:`container-x ${e===`/about5wpr/awards.cfm`?`pt-6 pb-16 md:pt-8 md:pb-24`:`py-16 md:py-24`}`,children:e===`/about5wpr/awards.cfm`?(0,z.jsx)(G_,{html:n.body_html??``}):e===`/about5wpr/history.cfm`?(0,z.jsx)(X_,{html:n.body_html??``}):(0,z.jsx)(`article`,{className:`editorial mx-auto max-w-3xl`,dangerouslySetInnerHTML:{__html:i}})})]}),(0,z.jsx)(Se,{})]})}return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Ce,{}),(0,z.jsxs)(`main`,{className:`bg-[var(--color-bg)]`,children:[(0,z.jsx)(`section`,{className:`border-b border-[var(--color-rule)] bg-[var(--color-navy)]`,children:(0,z.jsxs)(`div`,{className:`container-x py-20 md:py-28`,children:[(0,z.jsx)(H_,{path:e,tone:`dark`,className:`mb-6`}),(0,z.jsx)(`h1`,{className:`font-display text-4xl md:text-6xl text-[var(--color-ink-1)] leading-tight`,children:n.title})]})}),(0,z.jsx)(`section`,{className:`container-x py-16 md:py-24`,children:(0,z.jsx)(`article`,{className:`editorial mx-auto max-w-3xl`,dangerouslySetInnerHTML:{__html:i}})})]}),(0,z.jsx)(Se,{})]})}function jv(e){if(!e)return{};let t=e.canonical_url||e.path||null,n=Be(t)||e.seo_title||e.title,r=Ve(t)||e.meta_description,i=[{title:Re(n??``,t)}];return r&&i.push({name:`description`,content:r}),i.push({name:`robots`,content:ze(e.robots,e.status)}),i.push({property:`og:title`,content:n}),r&&i.push({property:`og:description`,content:r}),e.og_image&&i.push({property:`og:image`,content:e.og_image}),e.canonical_url&&i.push({property:`og:url`,content:e.canonical_url}),{meta:i,links:e.canonical_url?[{rel:`canonical`,href:e.canonical_url}]:[]}}var Mv=u(`/about5wpr/prcareers.cfm`)({loader:async({context:e})=>{let t=await e.queryClient.ensureQueryData(Ev(z_));return t.kind===`page`&&Ov(t.page)&&await e.queryClient.ensureQueryData(Dv(z_)),t.kind===`page`?t.page:null},head:({loaderData:e})=>jv(e),component:s(()=>F(()=>import(`./about5wpr.prcareers_._cfm-DyIo-P_Q.js`),__vite__mapDeps([122,1])),`component`)}),Nv=S({method:`GET`}).handler(b(`78bfafedce8d96a1c85be92ccdcde64a79979c052161bf5d5baa9046272424c1`)),Pv=S({method:`GET`}).handler(b(`e98e16b22cd306ba3a9fbcd5bdfddf1a2d308c2d923e27b31db13125e0478d4a`)),Fv=k({queryKey:[`people`,`all`],queryFn:()=>Nv(),staleTime:5*6e4}),Iv=u(`/about5wpr/management.cfm`)({loader:({context:e})=>e.queryClient.ensureQueryData(Fv),head:()=>({meta:[{title:`5WPR Senior Leadership: Meet Our PR Experts | 5WPR`},{name:`description`,content:`Meet the 5WPR team: a tight-knit, talented group with a shared vision of delivering consistently excellent PR results for our clients.`},{property:`og:title`,content:`5WPR Senior Leadership: Meet Our PR Experts | 5WPR`},{property:`og:description`,content:`Meet the 5WPR team: a tight-knit, talented group with a shared vision of delivering consistently excellent PR results for our clients.`},{property:`og:url`,content:`https://www.5wpr.com/about5wpr/management.cfm`},{property:`og:type`,content:`website`},{property:`og:site_name`,content:`5W Public Relations`},{name:`twitter:card`,content:`summary_large_image`}],links:[{rel:`canonical`,href:`https://www.5wpr.com/about5wpr/management.cfm`}]}),component:s(()=>F(()=>import(`./about5wpr.management_._cfm-CIgntQ3O.js`),__vite__mapDeps([123,1,120,35,9,15,7,10,8,5,6,19,13,14,16,17,74])),`component`)}),Lv=k({queryKey:[`page`,`/about5wpr/index.cfm`],queryFn:()=>Bl({data:{path:`/about5wpr/index.cfm`}}),staleTime:5*6e4}),Rv=u(`/about5wpr/index.cfm`)({loader:async({context:e})=>{let t=await e.queryClient.ensureQueryData(Lv);if(!t)throw w();return{page:t}},head:({loaderData:e})=>{let t=e?.page?Ec(Lc(e.page,{path:`/about5wpr/index.cfm`})):{meta:[],links:[],scripts:[]};return{...t,scripts:[...t.scripts??[],{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Organization`,"@id":`https://www.5wpr.com/#company`,name:`5W Public Relations`,url:`https://www.5wpr.com`,founder:{"@type":`Person`,name:`Ronn Torossian`,url:`https://ronntorossian.com`,sameAs:`https://www.5wpr.com/about5wpr/management/ronn-torossian.cfm`},sameAs:[`https://www.facebook.com/5WPublicRelations`,`https://instagram.com/5wpr`,`https://x.com/5W_PR`,`https://www.youtube.com/@5WPRSpeakers`]})}]}},component:s(()=>F(()=>import(`./about5wpr.index_._cfm-qoStpRxJ.js`),__vite__mapDeps([124,1,19,5,6,7,8,9,10,80])),`component`)}),zv=`/about5wpr/history.cfm`,Bv=u(`/about5wpr/history.cfm`)({loader:async({context:e})=>{let t=await e.queryClient.ensureQueryData(Ev(zv));return t.kind===`page`&&Ov(t.page)&&await e.queryClient.ensureQueryData(Dv(zv)),t.kind===`page`?t.page:null},head:({loaderData:e})=>jv(e),component:s(()=>F(()=>import(`./about5wpr.history_._cfm-BnC_tUIL.js`),__vite__mapDeps([125,1])),`component`)}),Vv=`/about5wpr/awards.cfm`,Hv=u(`/about5wpr/awards.cfm`)({loader:async({context:e})=>{let t=await e.queryClient.ensureQueryData(Ev(Vv));return t.kind===`page`&&Ov(t.page)&&await e.queryClient.ensureQueryData(Dv(Vv)),t.kind===`page`?t.page:null},head:({loaderData:e})=>jv(e),component:s(()=>F(()=>import(`./about5wpr.awards_._cfm-CXSgHGVg.js`),__vite__mapDeps([126,1])),`component`)}),Uv=u(`/research/ai-visibility-index/`)({beforeLoad:()=>{throw C({to:`/ai-visibility-index/$`,params:{_splat:``}})},component:s(()=>F(()=>import(`./research.ai-visibility-index.index-DJ7LAi8J.js`),[]),`component`)}),Wv=u(`/admin-5wpr/careers/`)({component:s(()=>F(()=>import(`./admin-5wpr.careers.index-BjK0cyvb.js`),__vite__mapDeps([127,1,15,7,9,14,76,6,77,8,78,35,38])),`component`),head:()=>({meta:[{title:`Careers · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),Gv=`/about5wpr/5w-digital-marketing-team/`,Kv=u(`/about5wpr/5w-digital-marketing-team/`)({loader:async({context:e})=>{let t=await e.queryClient.ensureQueryData(Ev(Gv));return t.kind===`page`?t.page:null},head:({loaderData:e})=>jv(e),component:s(()=>F(()=>import(`./about5wpr.5w-digital-marketing-team.index-BsnY-miZ.js`),__vite__mapDeps([128,1,5,6,7,8,9,10,19,32,2,0,27,50])),`component`)}),qv=()=>F(()=>import(`./research.ai-visibility-index.2026-series-CgP7euJA.js`),__vite__mapDeps([129,1,5,6,7,8,9,10,43,15,27])),Jv={title:`5W AI Visibility Index — 2026 Consumer Brand Series | Nine Volumes, 225 Brands`,description:`The 2026 Consumer Brand Series: nine volumes ranking 225 brands across ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews, built by 5W.`,canonical:`https://www.5wpr.com/research/ai-visibility-index/2026-series/`,ogType:`website`},Yv=u(`/research/ai-visibility-index/2026-series`)({loader:()=>({seo:Jv}),head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(qv,`component`)}),Xv=u(`/admin-5wpr/r/$resource`)({component:s(()=>F(()=>import(`./admin-5wpr.r._resource-0Bjh7wWq.js`),__vite__mapDeps([130,1,15,7,9])),`component`),head:()=>({meta:[{title:`Admin · 5WPR`},{name:`robots`,content:`noindex,nofollow`}]})}),Zv=()=>F(()=>
197import(`./admin-5wpr.careers.applications-BM6aBV76.js`),__vite__mapDeps([131,1,15,7,9,14,76,6,77,8,78,35,132])),Qv=yd({jobId:_d().uuid().optional(),status:_d().optional()}),$v=u(`/admin-5wpr/careers/applications`)({validateSearch:e=>Qv.parse(e),component:s(Zv,`component`),head:()=>({meta:[{title:`Applications · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),ey=e=>k({queryKey:[`career-job`,`slug`,e],queryFn:()=>Q_({data:{slug:e}}),staleTime:6e4}),ty=u(`/about5wpr/prcareers/$slug`)({loader:async({context:e,params:t})=>{let n=await e.queryClient.ensureQueryData(ey(t.slug));if(!n)throw w();return n},head:({loaderData:e,params:t})=>{let n=e?.job;if(!n)return{};let r=Be(`/about5wpr/prcareers/${t.slug}/`)??`${n.title}${n.location?` — ${n.location}`:``} | Careers at 5WPR`,i=[n.location,n.employment_type,n.department].filter(Boolean),a=(n.content??``).replace(/<[^>]+>/g,` `).replace(/&nbsp;/g,` `).replace(/&amp;/g,`&`).replace(/\s+/g,` `).trim().split(/(?<=[.!?])\s/)[0]?.slice(0,130).trim(),o=Ve(`/about5wpr/prcareers/${t.slug}/`)??[`${n.title} at 5WPR${i.length?` — ${i.join(` · `)}`:``}.`,a&&a.length>25?a:`Apply to join our communications team.`].join(` `),s=`https://www.5wpr.com/about5wpr/prcareers/${e?.canonicalSlug??t.slug}/`,c={"@context":`https://schema.org`,"@type":`JobPosting`,"@id":`${s}#jobposting`,title:n.title,description:o,hiringOrganization:{"@type":`Organization`,name:`5W Public Relations`,sameAs:`https://www.5wpr.com/`},directApply:!0,url:s};n.location&&(c.jobLocation={"@type":`Place`,address:{"@type":`PostalAddress`,addressLocality:n.location,addressCountry:`US`}}),n.employment_type&&(c.employmentType=n.employment_type),n.department&&(c.occupationalCategory=n.department);let l=n.first_published_at||n.greenhouse_updated_at||n.created_at||null;return l&&(c.datePosted=new Date(l).toISOString()),{meta:[{title:r},{name:`description`,content:o},{property:`og:title`,content:r},{property:`og:description`,content:o},{property:`og:url`,content:s},{property:`og:type`,content:`article`}],links:[{rel:`canonical`,href:s}],scripts:[{type:`application/ld+json`,children:JSON.stringify(c)}]}},errorComponent:s(()=>F(()=>import(`./about5wpr.prcareers._slug-CF0Afw17.js`),__vite__mapDeps([133,1,5,6,7,8,9,10])),`errorComponent`),notFoundComponent:s(()=>F(()=>import(`./about5wpr.prcareers._slug-D9CBkOXo.js`),__vite__mapDeps([134,1,15,7,9,5,6,8,10])),`notFoundComponent`),component:s(()=>F(()=>import(`./about5wpr.prcareers._slug-DBn3hBN2.js`),__vite__mapDeps([135,1,15,7,9,5,6,8,10,19,32,2,0,27])),`component`)}),ny=e=>k({queryKey:[`person`,e],queryFn:()=>Pv({data:{slug:e}}),staleTime:5*6e4}),ry=()=>F(()=>import(`./about5wpr.management._-W7iZ_M80.js`),__vite__mapDeps([136,1,15,7,9,5,6,8,10])),iy=()=>F(()=>import(`./about5wpr.management._-DKnLkNWX.js`),__vite__mapDeps([137,1])),ay=()=>F(()=>import(`./about5wpr.management._-BwxebtQD.js`),__vite__mapDeps([138,1,15,7,9,5,6,8,10,19,13,14,16,17,46,74,32,2,0,27]));function oy(e){return e.replace(/\.cfm$/i,``)}var sy=u(`/about5wpr/management/$`)({loader:async({params:e,context:t,location:n})=>{let r=e._splat??``;if(!r)throw w();let i=oy(r),a=await t.queryClient.ensureQueryData(ny(i));if(!a){let{getRedirect:e}=await F(async()=>{let{getRedirect:e}=await import(`./redirects.functions-QKBlxdKq.js`);return{getRedirect:e}},__vite__mapDeps([40,6,7])),t=await e({data:{path:n.pathname}});if(t?.to){let{redirect:e}=await F(async()=>{let{redirect:e}=await import(`./esm-CuHQ5MFI.js`).then(e=>e.t);return{redirect:e}},__vite__mapDeps([15,1,7,9]));throw/^https?:\/\//i.test(t.to)?e({href:t.to,statusCode:301}):e({href:t.to,statusCode:t.status??301})}throw w()}let o=e=>/senior leadership|meet the 5wpr team|meet our pr experts/i.test(String(e??``)),s=a.role_title?String(a.role_title).replace(/<[^>]+>/g,` `).replace(/\s+/g,` `).trim():``,c=s?`${a.name} — ${s} | 5WPR`:`${a.name} | 5WPR`,l=s?`${a.name} serves as ${s} at 5WPR. Read the full bio, focus areas and leadership background.`:`${a.name} at 5WPR. Read the full bio, focus areas and leadership background.`;return{slug:i,seo:{...Lc(a,{path:a.path,ogType:`profile`}),title:a.seo_title&&!o(a.seo_title)?a.seo_title:c,description:a.meta_description&&!o(a.meta_description)?a.meta_description:l,ogTitle:a.og_title&&!o(a.og_title)?a.og_title:c,ogDescription:a.og_description&&!o(a.og_description)?a.og_description:l,ogImage:a.og_image||a.headshot_url||null}}},head:({loaderData:e})=>e?.seo?Ec(e.seo):{},component:s(ay,`component`),errorComponent:s(iy,`errorComponent`),notFoundComponent:s(ry,`notFoundComponent`)}),cy=u(`/admin-5wpr/careers/job/$jobId`)({component:s(()=>F(()=>import(`./admin-5wpr.careers.job._jobId-Cd0r_lAz.js`),__vite__mapDeps([139,1,15,7,9,14,76,6,77,8,78,35,38,132])),`component`),head:()=>({meta:[{title:`Edit job · Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),ly=u(`/admin-5wpr/r/$resource/`)({component:s(()=>F(()=>import(`./admin-5wpr.r._resource.index-BVgG6TyC.js`),__vite__mapDeps([140,1,15,7,9,14,8,76,6,77,141,94,121,37,117,35,38])),`component`),head:()=>({meta:[{title:`Admin · 5WPR`},{name:`robots`,content:`noindex,nofollow`}]})}),uy=u(`/admin-5wpr/r/$resource/$id`)({component:s(()=>F(()=>import(`./admin-5wpr.r._resource._id-CSnhIJ1J.js`),__vite__mapDeps([142,1,120,35,9,15,7,10,8,34,14,76,6,77,119,121,37,38,141,93,132])),`component`),head:()=>({meta:[{title:`Edit · 5WPR Admin`},{name:`robots`,content:`noindex,nofollow`}]})}),dy=Os.update({id:`/terms-and-conditions`,path:`/terms-and-conditions`,getParentRoute:()=>B}),fy=Us.update({id:`/services-template-draft`,path:`/services-template-draft`,getParentRoute:()=>B}),py=nc.update({id:`/services-draft`,path:`/services-draft`,getParentRoute:()=>B}),my=ac.update({id:`/privacypolicy.cfm`,path:`/privacypolicy.cfm`,getParentRoute:()=>B}),hy=uc.update({id:`/press`,path:`/press`,getParentRoute:()=>B}),gy=dc.update({id:`/links`,path:`/links`,getParentRoute:()=>B}),_y=mc.update({id:`/cookie-policy`,path:`/cookie-policy`,getParentRoute:()=>B}),vy=zc.update({id:`/contactus`,path:`/contactus`,getParentRoute:()=>B}),yy=Bc.update({id:`/contact`,path:`/contact`,getParentRoute:()=>B}),by=Uc.update({id:`/clients`,path:`/clients`,getParentRoute:()=>B}),xy=Wc.update({id:`/citation-audit.cfm`,path:`/citation-audit.cfm`,getParentRoute:()=>B}),Sy=Rl.update({id:`/case-study-draft-adcolor`,path:`/case-study-draft-adcolor`,getParentRoute:()=>B}),Cy=zl.update({id:`/alt`,path:`/alt`,getParentRoute:()=>B}),wy=Hl.update({id:`/ai-citation-audit`,path:`/ai-citation-audit`,getParentRoute:()=>B}),Ty=Ul.update({id:`/admin-set-password`,path:`/admin-set-password`,getParentRoute:()=>B}),Ey=Q.update({id:`/aadmin5wcommunication-login`,path:`/aadmin5wcommunication-login`,getParentRoute:()=>B}),Dy=Ud.update({id:`/$`,path:`/$`,getParentRoute:()=>B}),Oy=of.update({id:`/`,path:`/`,getParentRoute:()=>B}),ky=cf.update({id:`/services/`,path:`/services/`,getParentRoute:()=>B}),Ay=uf.update({id:`/research/`,path:`/research/`,getParentRoute:()=>B}),jy=Cp.update({id:`/practice/`,path:`/practice/`,getParentRoute:()=>B}),My=Np.update({id:`/new/`,path:`/new/`,getParentRoute:()=>B}),Ny=Vp.update({id:`/glossary/`,path:`/glossary/`,getParentRoute:()=>B}),Py=Hp.update({id:`/florida/`,path:`/florida/`,getParentRoute:()=>B}),Fy=Jp.update({id:`/authors/`,path:`/authors/`,getParentRoute:()=>B}),Iy=lm.update({id:`/ai-visibility-radar/`,path:`/ai-visibility-radar/`,getParentRoute:()=>B}),Ly=um.update({id:`/admin-5wpr/`,path:`/admin-5wpr/`,getParentRoute:()=>B}),Ry=fm.update({id:`/about5wpr/`,path:`/about5wpr/`,getParentRoute:()=>B}),zy=hm.update({id:`/services/public-relations-agency`,path:`/services/public-relations-agency`,getParentRoute:()=>B}),By=gm.update({id:`/services/brand-strategy-services`,path:`/services/brand-strategy-services`,getParentRoute:()=>B}),Vy=vm.update({id:`/services/$`,path:`/services/$`,getParentRoute:()=>B}),Hy=xm.update({id:`/research/$`,path:`/research/$`,getParentRoute:()=>B}),Uy=Sm.update({id:`/practice/case-study.cfm`,path:`/practice/case-study.cfm`,getParentRoute:()=>B}),Wy=Xg.update({id:`/practice/$`,path:`/practice/$`,getParentRoute:()=>B}),Gy=$g.update({id:`/new/$`,path:`/new/$`,getParentRoute:()=>B}),Ky=o_.update({id:`/glossary/$`,path:`/glossary/$`,getParentRoute:()=>B}),qy=g_.update({id:`/authors/$slug`,path:`/authors/$slug`,getParentRoute:()=>B}),Jy=__.update({id:`/ai-visibility/citation-source-audit`,path:`/ai-visibility/citation-source-audit`,getParentRoute:()=>B}),Yy=x_.update({id:`/ai-visibility-radar/sentiment`,path:`/ai-visibility-radar/sentiment`,getParentRoute:()=>B}),Xy=T_.update({id:`/ai-visibility-radar/methodology`,path:`/ai-visibility-radar/methodology`,getParentRoute:()=>B}),Zy=j_.update({id:`/ai-visibility-index/$`,path:`/ai-visibility-index/$`,getParentRoute:()=>B}),Qy=M_.update({id:`/admin-5wpr/team`,path:`/admin-5wpr/team`,getParentRoute:()=>B}),$y=N_.update({id:`/admin-5wpr/report-format`,path:`/admin-5wpr/report-format`,getParentRoute:()=>B}),eb=P_.update({id:`/admin-5wpr/report-covers`,path:`/admin-5wpr/report-covers`,getParentRoute:()=>B}),tb=F_.update({id:`/admin-5wpr/regenerate-heroes`,path:`/admin-5wpr/regenerate-heroes`,getParentRoute:()=>B}),nb=I_.update({id:`/admin-5wpr/notifications`,path:`/admin-5wpr/notifications`,getParentRoute:()=>B}),rb=L_.update({id:`/admin-5wpr/media-migrate`,path:`/admin-5wpr/media-migrate`,getParentRoute:()=>B}),ib=R_.update({id:`/admin-5wpr/media`,path:`/admin-5wpr/media`,getParentRoute:()=>B}),ab=Mv.update({id:`/about5wpr/prcareers.cfm`,path:`/about5wpr/prcareers.cfm`,getParentRoute:()=>B}),ob=Iv.update({id:`/about5wpr/management.cfm`,path:`/about5wpr/management.cfm`,getParentRoute:()=>B}),sb=Rv.update({id:`/about5wpr/index.cfm`,path:`/about5wpr/index.cfm`,getParentRoute:()=>B}),cb=Bv.update({id:`/about5wpr/history.cfm`,path:`/about5wpr/history.cfm`,getParentRoute:()=>B}),lb=Hv.update({id:`/about5wpr/awards.cfm`,path:`/about5wpr/awards.cfm`,getParentRoute:()=>B}),ub=Uv.update({id:`/research/ai-visibility-index/`,path:`/research/ai-visibility-index/`,getParentRoute:()=>B}),db=Wv.update({id:`/admin-5wpr/careers/`,path:`/admin-5wpr/careers/`,getParentRoute:()=>B}),fb=Kv.update({id:`/about5wpr/5w-digital-marketing-team/`,path:`/about5wpr/5w-digital-marketing-team/`,getParentRoute:()=>B}),pb=Yv.update({id:`/research/ai-visibility-index/2026-series`,path:`/research/ai-visibility-index/2026-series`,getParentRoute:()=>B}),mb=Xv.update({id:`/admin-5wpr/r/$resource`,path:`/admin-5wpr/r/$resource`,getParentRoute:()=>B}),hb=$v.update({id:`/admin-5wpr/careers/applications`,path:`/admin-5wpr/careers/applications`,getParentRoute:()=>B}),gb=ty.update({id:`/about5wpr/prcareers/$slug`,path:`/about5wpr/prcareers/$slug`,getParentRoute:()=>B}),_b=sy.update({id:`/about5wpr/management/$`,path:`/about5wpr/management/$`,getParentRoute:()=>B}),vb=cy.update({id:`/admin-5wpr/careers/job/$jobId`,path:`/admin-5wpr/careers/job/$jobId`,getParentRoute:()=>B}),yb=ly.update({id:`/`,path:`/`,getParentRoute:()=>mb}),bb={Admin5wprRResourceIdRoute:uy.update({id:`/$id`,path:`/$id`,getParentRoute:()=>mb}),Admin5wprRResourceIndexRoute:yb},xb={IndexRoute:Oy,SplatRoute:Dy,Aadmin5wcommunicationLoginRoute:Ey,AdminSetPasswordRoute:Ty,AiCitationAuditRoute:wy,AltRoute:Cy,CaseStudyDraftAdcolorRoute:Sy,CitationAuditDotcfmRoute:xy,ClientsRoute:by,ContactRoute:yy,ContactusRoute:vy,CookiePolicyRoute:_y,LinksRoute:gy,PressRoute:hy,PrivacypolicyDotcfmRoute:my,ServicesDraftRoute:py,ServicesTemplateDraftRoute:fy,TermsAndConditionsRoute:dy,About5wprAwardsDotcfmRoute:lb,About5wprHistoryDotcfmRoute:cb,About5wprIndexDotcfmRoute:sb,About5wprManagementDotcfmRoute:ob,About5wprPrcareersDotcfmRoute:ab,Admin5wprMediaRoute:ib,Admin5wprMediaMigrateRoute:rb,Admin5wprNotificationsRoute:nb,Admin5wprRegenerateHeroesRoute:tb,Admin5wprReportCovers
197Route:eb,Admin5wprReportFormatRoute:$y,Admin5wprTeamRoute:Qy,AiVisibilityIndexSplatRoute:Zy,AiVisibilityRadarMethodologyRoute:Xy,AiVisibilityRadarSentimentRoute:Yy,AiVisibilityCitationSourceAuditRoute:Jy,AuthorsSlugRoute:qy,GlossarySplatRoute:Ky,NewSplatRoute:Gy,PracticeSplatRoute:Wy,PracticeCaseStudyDotcfmRoute:Uy,ResearchSplatRoute:Hy,ServicesSplatRoute:Vy,ServicesBrandStrategyServicesRoute:By,ServicesPublicRelationsAgencyRoute:zy,About5wprIndexRoute:Ry,Admin5wprIndexRoute:Ly,AiVisibilityRadarIndexRoute:Iy,AuthorsIndexRoute:Fy,FloridaIndexRoute:Py,GlossaryIndexRoute:Ny,NewIndexRoute:My,PracticeIndexRoute:jy,ResearchIndexRoute:Ay,ServicesIndexRoute:ky,About5wprManagementSplatRoute:_b,About5wprPrcareersSlugRoute:gb,Admin5wprCareersApplicationsRoute:hb,Admin5wprRResourceRoute:mb._addFileChildren(bb),ResearchAiVisibilityIndex2026SeriesRoute:pb,About5wpr5wDigitalMarketingTeamIndexRoute:fb,Admin5wprCareersIndexRoute:db,ResearchAiVisibilityIndexIndexRoute:ub,Admin5wprCareersJobJobIdRoute:vb},Sb=B._addFileChildren(xb),Cb=()=>f({routeTree:Sb,context:{queryClient:new os},scrollRestoration:!0,defaultPreloadStaleTime:0,trailingSlash:`preserve`});async function wb(){let e=await Cb(),t;if(Zo){let n=await Zo.getOptions();n.serializationAdapters=n.serializationAdapters??[],window.__TSS_START_OPTIONS__=n,t=n.serializationAdapters,e.options.defaultSsr=n.defaultSsr}else t=[],window.__TSS_START_OPTIONS__={serializationAdapters:t};return t.push(st),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:``,serializationAdapters:t}),e.stores.matchesId.get().length||await ut(e),e}async function Tb(){let e=await wb();return window.$_TSR?.h(),e}var Eb;function Db(){return Eb||=Tb(),(0,z.jsx)(g,{promise:Eb,children:e=>(0,z.jsx)(a,{router:e})})}var Ob=at();(0,R.startTransition)(()=>{(0,Ob.hydrateRoot)(document,(0,z.jsx)(R.StrictMode,{children:(0,z.jsx)(Db,{})}))});export{Pg as $,dl as $n,Pm as $t,z_ as A,af as An,Eh as At,o_ as B,Dd as Bn,oh as Bt,iv as C,wp as Cn,Bh as Ct,G_ as D,lf as Dn,Mh as Dt,av as E,df as En,Ph as Et,g_ as F,Gd as Fn,gh as Ft,Xg as G,Hl as Gn,Xm as Gt,$g as H,Sd as Hn,nh as Ht,m_ as I,Ud as In,mh as It,Wg as J,Sl as Jn,Wm as Jt,Jg as K,Ll as Kn,Jm as Kt,s_ as L,Vd as Ln,fh as Lt,E_ as M,Qd as Mn,Sh as Mt,T_ as N,Xd as Nn,bh as Nt,U_ as O,sf as On,Ah as Ot,x_ as P,Zd as Pn,vh as Pt,Ig as Q,pl as Qn,Im as Qt,f_ as R,Rd as Rn,uh as Rt,$_ as S,Tp as Sn,Hh as St,tv as T,gp as Tn,Ih as Tt,Zg as U,xd as Un,eh as Ut,e_ as V,wd as Vn,ih as Vt,Qg as W,Cd as Wn,Qm as Wt,Bg as X,gl as Xn,Bm as Xt,Hg as Y,yl as Yn,Hm as Yt,Rg as Z,_l as Zn,Rm as Zt,ov as _,Zp as _n,pt as _r,Qh as _t,ey as a,ym as an,Qs as ar,Sg as at,rv as b,Ip as bn,Kh as bt,Vv as c,_m as cn,Hs as cr,gg as ct,Fv as d,lm as dn,As as dr,ug as dt,Mm as en,nl as er,Mg as et,Av as f,nm as fn,ks as fr,cg as ft,nv as g,Xp as gn,Jo as gr,eg as gt,pv as h,am as hn,ls as hr,ng as ht,ty as i,xm as in,Hc as ir,wg as it,j_ as j,$d as jn,wh as jt,H_ as k,rf as kn,Oh as kt,zv as l,pm as ln,Rs as lr,mg as lt,Tv as m,im as mn,ds as mr,ig as mt,sy as n,Cm as nn,Jc as nr,Og as nt,$v as o,bm as on,Js as or,bg as ot,Ev as p,em as pn,fs as pr,og as pt,Kg as q,kl as qn,Km as qt,ny as r,wm as rn,Vc as rr,Eg as rt,Gv as s,vm as sn,Ks as sr,vg as st,cy as t,Nm as tn,Zc as tr,Ag as tt,Lv as u,dm as un,Fs as ur,fg as ut,cv as v,Qp as vn,mt as vr,Xh as vt,lv as w,vp as wn,Rh as wt,sv as x,Np as xn,Wh as xt,ev as y,Up as yn,gt as yr,Jh as yt,d_ as z,Id as zn,ch as zt};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.