1var e=`[data-basket-count]`,t=`basket-drawer`,n=null;function r(){return document.querySelector(`meta[name="csrf-token"]`)?.content??``}function i(t){document.querySelectorAll(e).forEach(e=>{e.textContent=String(t),e.hidden=t===0;let n=e.closest(`[data-basket-link]`);n&&n.setAttribute(`aria-label`,t===0?`Your basket (empty)`:`Your basket, ${t} item${t===1?``:`s`}`)})}function a(){n&&clearTimeout(n),document.getElementById(t)?.remove()}function o(e){a();let r=document.createElement(`div`);r.id=t,r.className=`basket-drawer`,r.setAttribute(`role`,`status`),r.setAttribute(`aria-live`,`polite`);let i=document.createElement(`div`);i.className=`basket-drawer__head`;let o=document.createElement(`span`);o.className=`basket-drawer__tick`,o.textContent=`â`,o.setAttribute(`aria-hidden`,`true`);let s=document.createElement(`p`);s.className=`basket-drawer__title`,s.textContent=`Added to your basket`;let c=document.createElement(`button`);c.type=`button`,c.className=`basket-drawer__close`,c.setAttribute(`aria-label`,`Close`),c.textContent=`Ã`,c.addEventListener(`click`,a),i.append(o,s,c);let l=document.createElement(`p`);l.className=`basket-drawer__line`,l.innerHTML=``;let u=document.createElement(`strong`);u.textContent=e.quantity>1?`${e.quantity} Ã `:``;let d=document.createElement(`strong`);d.textContent=e.added,l.append(u,d);let f=document.createElement(`div`);f.className=`basket-drawer__total`;let p=document.createElement(`span`);p.textContent=`${e.basket_count} item${e.basket_count===1?``:`s`} in your basket`;let m=document.createElement(`strong`);m.textContent=e.basket_total,f.append(p,m);let h=document.createElement(`div`);h.className=`basket-drawer__acts`;let g=document.createElement(`a`);g.className=`cf-btn cf-btn--block`,g.href=e.basket_url,g.textContent=`View basket & checkout`;let _=document.createElement(`button`);if(_.type=`button`,_.className=`cf-btn cf-btn--outline cf-btn--block`,_.textContent=`Keep shopping`,_.addEventListener(`click`,a),h.append(g,_),r.append(i,l,f,h),e.checkout_hint){let t=document.createElement(`p`);t.className=`basket-drawer__line`,t.style.fontSize=`13.5px`,t.textContent=e.checkout_hint,r.append(t)}document.body.append(r),n=setTimeout(a,6e3)}function s(n){o({added:n,quantity:1,basket_count:Number(document.querySelector(e)?.textContent??0)||0,basket_total:``,basket_url:`/basket`,checkout_hint:null});let r=document.querySelector(`#${t} .basket-drawer__title`),i=document.querySelector(`#${t} .basket-drawer__tick`);r&&(r.textContent=`Could not add that`),i&&(i.textContent=`!`,i.style.background=`var(--cf-rhubarb)`)}function c(){document.addEventListener(`submit`,async e=>{let t=e.target.closest(`form[action*="/add"]`);if(!t||!t.action.includes(`/shop/`))return;e.preventDefault();let n=t.querySelector(`[type="submit"]`);n&&(n.disabled=!0);try{let e=await fetch(t.action,{method:`POST`,headers:{Accept:`application/json`,"X-CSRF-TOKEN":r()},body:new FormData(t)}),n=await e.json().catch(()=>({}));if(!e.ok){s(n?.errors?Object.values(n.errors).flat()[0]:n?.message??`Please try again.`);return}i(n.basket_count??0),o(n)}catch{t.submit()}finally{n&&(n.disabled=!1)}}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&a()})}document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,c):c();var l=`[data-lightbox]`,u=null,d=null,f=null,p=[],m=0;function h(){u=document.createElement(`dialog`),u.className=`lightbox`,u.innerHTML=` 2 <button class="lightbox__close" type="button" aria-label="Close">×</button> 3 <button class="lightbox__nav lightbox__nav--prev" type="button" aria-label="Previous photograph">‹</button> 4 <img class="lightbox__img" alt=""> 5 <button class="lightbox__nav lightbox__nav--next" type="button" aria-label="Next photograph">›</button> 6 <p class="lightbox__caption" aria-live="polite"></p> 7 `,d=u.querySelector(`.lightbox__img`),f=u.querySelector(`.lightbox__caption`),u.querySelector(`.lightbox__close`).addEventListener(`click`,()=>u.close()),u.querySelector(`.lightbox__nav--prev`).addEventListener(`click`,()=>g(m-1)),u.querySelector(`.lightbox__nav--next`).addEventListener(`click`,()=>g(m+1)),u.addEventListener(`click`,e=>{e.target===u&&u.close()}
7),u.addEventListener(`keydown`,e=>{e.key===`ArrowLeft`&&(e.preventDefault(),g(m-1)),e.key===`ArrowRight`&&(e.preventDefault(),g(m+1))}),document.body.appendChild(u)}function g(e){if(p.length===0)return;m=(e+p.length)%p.length;let t=p[m];d.src=t.src,d.alt=t.alt,f.textContent=p.length>1?`${m+1} of ${p.length}`:``,u.classList.toggle(`is-single`,p.length<2)}function _(e){u||h();let t=Array.from(document.querySelectorAll(l));p=t.map(e=>({src:e.dataset.lightboxSrc||e.getAttribute(`src`),alt:e.getAttribute(`alt`)||``})),g(t.indexOf(e)),u.showModal()}function v(){let e=document.querySelectorAll(l);e.length!==0&&e.forEach(e=>{e.addEventListener(`click`,t=>{t.preventDefault(),_(e)}),e.setAttribute(`role`,`button`),e.setAttribute(`tabindex`,`0`),e.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),_(e))})})}var y=`[data-turnstile]`,ee=6e3,b=null;function x(){return document.querySelector(y)?.dataset.turnstileKey??``}function S(){return b||(x()?(b=new Promise((e,t)=>{window.__canalsideTurnstileReady=()=>e();let n=document.createElement(`script`);n.src=`https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&onload=__canalsideTurnstileReady`,n.async=!0,n.defer=!0,n.onerror=()=>t(Error(`Turnstile failed to load`)),document.head.append(n)}),b):Promise.reject(Error(`No Turnstile site key`)))}function C(e){let t=x();return t?Promise.race([S().then(()=>new Promise(n=>{if(e.dataset.turnstileToken){n(e.dataset.turnstileToken);return}window.turnstile.render(e,{sitekey:t,action:e.dataset.turnstileAction||`submit`,callback:t=>{e.dataset.turnstileToken=t,n(t)},"error-callback":()=>n(null),"timeout-callback":()=>n(null)})})).catch(()=>null),new Promise(e=>setTimeout(()=>e(null),ee))]):Promise.resolve(null)}function w(){if(!document.querySelector(y))return;let e=t=>{t.target.closest?.(`form:has(${y})`)&&(document.removeEventListener(`focusin`,e),S().catch(()=>{}))};document.addEventListener(`focusin`,e),document.addEventListener(`submit`,async e=>{let t=e.target,n=t.querySelector?.(y);if(!n)return;let r=t.querySelector(`[data-turnstile-response]`);if(!r||r.value)return;e.preventDefault();let i=t.querySelector(`[type="submit"]`);i&&(i.disabled=!0),r.value=await C(n)??``,i&&(i.disabled=!1),t.submit()})}var T=`[data-site-analytics]`,E=`cf:cookie-consent`,D=`__cfScrubAnalytics`,O=[[/^\/book\/checkout\/[^/]+/,`/book/checkout/-`],[/^\/account\/magic\/[^/]+/,`/account/magic/-`]],k=[`pw`,`code`,`token`,`email`,`password`,`signature`,`expires`],A=!1;function j(e){if(typeof e!=`string`||e===``)return e;let t;try{t=new URL(e,window.location.origin)}catch{return e}if(t.origin!==window.location.origin)return e;for(let[e,n]of O)if(e.test(t.pathname)){t.pathname=t.pathname.replace(e,n);break}k.forEach(e=>t.searchParams.delete(e));let n=t.pathname+t.search+t.hash;return/^https?:/i.test(e)?t.origin+n:n}function M(){let{pathname:e,search:t,hash:n}=window.location;return j(e+t+n)}function N(e,t={}){let n=document.createElement(`script`);return n.async=!0,Object.entries(t).forEach(([e,t])=>n.setAttribute(e,t)),n.src=e,document.head.append(n),n}function P({umamiSrc:e,umamiWebsiteId:t,umamiDomains:n}){window[D]=(e,t)=>(t&&typeof t==`object`&&(t.url=j(t.url),t.referrer=j(t.referrer)),t),N(e,{"data-website-id":t,"data-before-send":D,...n?{"data-domains":n}:{}})}function F(e){window.dataLayer=window.dataLayer||[];function t(){window.dataLayer.push(arguments)}window.gtag=t,t(`js`,new Date),t(`config`,e,{page_location:window.location.origin+M(),anonymize_ip:!0}),N(`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(e)}`)}function I(e){if(window.fbq)return;let t=function(){t.callMethod?t.callMethod.apply(t,arguments):t.queue.push(arguments)};t.push=t,t.loaded=!0,t.version=`2.0`,t.queue=[],window.fbq=t,window._fbq=window._fbq||t,N(`https://connect.facebook.net/en_US/fbevents.js`),t(`init`,e),t(`track`,`PageView`,{},{page_location:window.location.origin+M()})}function L(){if(window.FlodeskObject)return;window.FlodeskObject=`fd`,window.fd=window.fd||function(){(window.fd.q=window.fd.q||[]).push(arguments)};let e=`?v=${Math.floor(Date.now()/12e4)*60}`;N(`https://assets.flodesk.com/universal.mjs${e}`,{type:`module`}),N(`https://assets.flodesk.com/universal.js${e}`,{nomodule:``})}function R(e){if(A)return;A=!0;let t=e.dataset;t.umamiWebsiteId&&P(t),t.ga4Id&&F(t.ga4Id),t.metaPixelId&&I(t.metaPixelId),t.flodesk&&L()}function z(){let e=document.querySelector(T);if(e){if(window.cfCookieConsent?.()===`all`){R(e);return}document.addEventListener(E,t=>{t.detail===`all`&&R(e)})}}var B=[`.cf-sh`,`.pillar`,`.cf-event`,`.cf-prod`,`.rec`,`.route`,`.dept`,`.iv`,`.job`,`.award--link`,`.band__in`,`.visit__in`,`.pyo__card`],V=[`.hero`,`.hdr`,`.ftr`,`.mnav`,`[data-no-reveal]`],H=70,U=5,W=`0px 0px -6% 0px`,G=.04,K=1.05;function q(){if(typeof IntersectionObserver>`u`||window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches)return;let e=document.querySelectorAll(B.join(`,`));if(e.length===0)return;let t=[],n=window.innerHeight*K;
7if(e.forEach(e=>{V.some(t=>e.closest(t))||e.getBoundingClientRect().top<n||t.push(e)}),t.length===0)return;let r=new Map;t.forEach(e=>{let t=e.parentElement??document.body,n=r.get(t)??0;r.set(t,n+1),e.setAttribute(`data-reveal`,``),e.style.setProperty(`--reveal-delay`,`${Math.min(n,U)*H}ms`)}),document.documentElement.classList.add(`reveal-ready`);let i=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add(`is-revealed`),i.unobserve(e.target))})},{rootMargin:W,threshold:G});t.forEach(e=>i.observe(e))}function J(){let e=document.querySelector(`[data-site-header]`);if(!e)return;let t=e.closest(`.site`)||document.documentElement,n=()=>{let n=Math.round(e.getBoundingClientRect().height)+`px`;t.style.getPropertyValue(`--hdr-h`)!==n&&t.style.setProperty(`--hdr-h`,n)};if(n(),typeof ResizeObserver>`u`){window.addEventListener(`resize`,n);return}new ResizeObserver(n).observe(e)}function Y(){let e=document.querySelector(`[data-site-menu]`),t=document.querySelector(`[data-site-menu-open]`);if(!e||!t)return;let n=Array.from(e.querySelectorAll(`[data-stagger]`)),r=e.querySelectorAll(`[data-site-menu-close]`),i=null,a=e=>{n.forEach((t,r)=>{let i=e?90+r*45:(n.length-1-r)*30;t.style.transitionDelay=i+`ms`})},o=()=>{clearTimeout(i),e.hidden=!1,e.removeAttribute(`aria-hidden`),a(!0),requestAnimationFrame(()=>e.classList.add(`is-open`)),t.setAttribute(`aria-expanded`,`true`),document.body.style.overflow=`hidden`;let r=n[0];r&&r.focus({preventScroll:!0})},s=()=>{a(!1),e.classList.remove(`is-open`),t.setAttribute(`aria-expanded`,`false`),document.body.style.overflow=``,i=setTimeout(()=>{e.setAttribute(`aria-hidden`,`true`)},420),t.focus({preventScroll:!0})};t.addEventListener(`click`,o),r.forEach(e=>e.addEventListener(`click`,s)),document.addEventListener(`keydown`,t=>{t.key===`Escape`&&e.classList.contains(`is-open`)&&s()})}var X=`cf-cookie-consent`;function Z(){try{return window.localStorage.getItem(X)}catch{return null}}window.cfCookieConsent=Z;function Q(){let e=document.querySelector(`[data-site-cookie-bar]`);if(!e)return;let t=()=>{e.hidden=!1},n=()=>{e.hidden=!0};Z()||t(),e.querySelectorAll(`[data-site-cookie-choice]`).forEach(e=>{e.addEventListener(`click`,()=>{try{window.localStorage.setItem(X,e.dataset.siteCookieChoice)}catch{}document.dispatchEvent(new CustomEvent(E,{detail:e.dataset.siteCookieChoice})),n()})}),document.querySelectorAll(`[data-site-cookie-reset]`).forEach(n=>{n.addEventListener(`click`,n=>{n.preventDefault();try{window.localStorage.removeItem(X)}catch{}t(),e.scrollIntoView({behavior:`smooth`,block:`end`})})})}function te(){let e=document.querySelector(`[data-site-subnav]`);if(!e)return;let t=Array.from(e.querySelectorAll(`a[href^="#"]`));if(!t.length)return;let n=t.map(e=>document.getElementById(decodeURIComponent(e.hash.slice(1)))).filter(Boolean);if(!n.length)return;let r=e=>{t.forEach(t=>{t.classList.toggle(`is-active`,t.hash===`#`+e)})},i=new IntersectionObserver(e=>{let t=e.filter(e=>e.isIntersecting).sort((e,t)=>t.intersectionRatio-e.intersectionRatio)[0];t&&r(t.target.id)},{rootMargin:`-30% 0px -60% 0px`,threshold:[0,.25,.5,1]});n.forEach(e=>i.observe(e))}function ne(){let e=()=>{document.querySelectorAll(`.hero__slide[data-slide-bg]`).forEach(e=>{e.style.backgroundImage=`url('${e.dataset.slideBg}')`,delete e.dataset.slideBg})};if(document.readyState===`complete`){e();return}window.addEventListener(`load`,e,{once:!0})}function re(){document.querySelectorAll(`[data-site-carousel]`).forEach(e=>{let t=Array.from(e.querySelectorAll(`.hero__slide`)),n=Array.from(e.querySelectorAll(`.hero__copy`));if(t.length<2)return;let r=Number(e.dataset.siteCarousel)||6e3,i=0,a=null,o=e=>{[t,n].forEach(t=>{!t[i]||!t[e]||(t[i].classList.remove(`is-on`),t[i].setAttribute(`aria-hidden`,`true`),t[e].classList.add(`is-on`),t[e].removeAttribute(`aria-hidden`))}),i=e},s=()=>o((i+1)%t.length),c=()=>{a||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches||(a=setInterval(s,r))},l=()=>{clearInterval(a),a=null};e.addEventListener(`mouseenter`,l),e.addEventListener(`mouseleave`,c),document.addEventListener(`visibilitychange`,()=>{document.hidden?l():c()}
7),e.querySelectorAll(`[data-slide-next]`).forEach(e=>{e.addEventListener(`click`,()=>{l(),s(),c()})}),c()})}function ie(){document.querySelectorAll(`.cf-event`).forEach(e=>{let t=e.querySelector(`.cf-event__cta`);if(!t)return;let n=null;e.addEventListener(`mousedown`,e=>{n={x:e.clientX,y:e.clientY}}),e.addEventListener(`click`,e=>{if(!e.target.closest(`a, button`)){if(n){let t=Math.hypot(e.clientX-n.x,e.clientY-n.y);if(n=null,t>6)return}t.click()}})})}function $(){J(),w(),v(),Y(),Q(),z(),q(),te(),re(),ne(),ie()}document.readyState===`loading`?document.addEventListener(`DOMContentLoaded`,$):$();
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.