1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,808341,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cancelIdleCallback:function(){return o},requestIdleCallback:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},o="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},479520,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return x},handleClientScriptLoad:function(){return g},initScriptLoader:function(){return y}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(555682),o=e.r(190809),s=e.r(843476),l=i._(e.r(174080)),c=o._(e.r(271645)),u=e.r(742732),d=e.r(922737),f=e.r(808341),h=new Map,p=new Set,m=e=>{let{src:t,id:r,onLoad:n=()=>{},onReady:a=null,dangerouslySetInnerHTML:i,children:o="",strategy:s="afterInteractive",onError:c,stylesheets:u}=e,f=r||t;if(f&&p.has(f))return;if(h.has(t)){p.add(f),h.get(t).then(n,c);return}let m=()=>{a&&a(),p.add(f)},g=document.createElement("script"),y=new Promise((e,t)=>{g.addEventListener("load",function(t){e(),n&&n.call(this,t),m()}),g.addEventListener("error",function(e){t(e)})}).catch(function(e){c&&c(e)});i?(g.innerHTML=i.__html||"",m()):o?(g.textContent="string"==typeof o?o:Array.isArray(o)?o.join(""):"",m()):t&&(g.src=t,h.set(t,y)),(0,d.setAttributesFromProps)(g,e),"worker"===s&&g.setAttribute("type","text/partytown"),g.setAttribute("data-nscript",s),u&&(e=>{if(l.default.preinit)return e.forEach(e=>{l.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(u),document.body.appendChild(g)};function g(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>m(e))}):m(e)}function y(e){e.forEach(g),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");p.add(t)})}function b(e){let{id:t,src:r="",onLoad:n=()=>{},onReady:a=null,strategy:i="afterInteractive",onError:o,stylesheets:d,...h}=e,{updateScripts:g,scripts:y,getIsSsr:b,appDir:x,nonce:w}=(0,c.useContext)(u.HeadManagerContext);w=h.nonce||w;let v=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let e=t||r;v.current||(a&&e&&p.has(e)&&a(),v.current=!0)},[a,t,r]);let S=(0,c.useRef)(!1);if((0,c.useEffect)(()=>{if(!S.current){if("afterInteractive"===i)m(e);else"lazyOnload"===i&&("complete"===document.readyState?(0,f.requestIdleCallback)(()=>m(e)):window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>m(e))}));S.current=!0}},[e,i]),("beforeInteractive"===i||"worker"===i)&&(g?(y[i]=(y[i]||[]).concat([{id:t,src:r,onLoad:n,onReady:a,onError:o,...h,nonce:w}]),g(y)):b&&b()?p.add(t||r):b&&!b()&&m({...e,nonce:w})),x){if(d&&d.forEach(e=>{l.default.preinit(e,{as:"style"})}),"beforeInteractive"===i)if(!r)return h.dangerouslySetInnerHTML&&(h.children=h.dangerouslySetInnerHTML.__html,delete h.dangerouslySetInnerHTML),(0,s.jsx)("script",{nonce:w,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...h,id:t}])})`}});else return l.default.preload(r,h.integrity?{as:"script",integrity:h.integrity,nonce:w,crossOrigin:h.crossOrigin}:{as:"script",nonce:w,crossOrigin:h.crossOrigin}),(0,s.jsx)("script",{nonce:w,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([r,{...h,id:t}])})`}});"afterInteractive"===i&&r&&l.default.preload(r,h.integrity?{as:"script",integrity:h.integrity,nonce:w,crossOrigin:h.crossOrigin}:{as:"script",nonce:w,crossOrigin:h.crossOrigin})}return null}Object.defineProperty(b,"__nextScript",{value:!0});let x=b;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esMo
1dule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63369,e=>{"use strict";var t=e.i(271645),r=e.i(618566),n=e.i(306552),a=e.i(604570),i=e.i(375679),o=e.i(541872),s=e.i(174629);let l="uxa_session_started",c="uxa_last_seen";function u(){try{return"denied"===localStorage.getItem("uxa_consent")}catch{return!1}}function d(){let e=(0,r.usePathname)(),d=(0,r.useSearchParams)();return(0,t.useEffect)(()=>{u()||(0,n.initPostHog)(),function(e=new Date){if((0,o.trackingAllowed)())try{let t="1"===sessionStorage.getItem(l),r=null;try{r=localStorage.getItem(c)}catch{}let n=function(e){let{hasSessionFlag:t,lastSeenIso:r,now:n}=e;if(t)return{isNewSession:!1,isReturning:!1};if(!r)return{isNewSession:!0,isReturning:!1};let a=new Date(r);if(isNaN(a.getTime()))return{isNewSession:!0,isReturning:!1};let i=n.getTime()-a.getTime();return i<18e5?{isNewSession:!0,isReturning:!1}:{isNewSession:!0,isReturning:!0,daysSinceLastVisit:Math.floor(i/864e5)}}({hasSessionFlag:t,lastSeenIso:r,now:e});if(n.isNewSession){try{sessionStorage.setItem(l,"1")}catch{}(0,s.track)("session_start"),n.isReturning&&(0,s.track)("returned_to_site",{days_since_last_visit:n.daysSinceLastVisit})}try{localStorage.setItem(c,e.toISOString())}catch{}}catch{}}()},[]),(0,t.useEffect)(()=>{u()||(a.default.capture("$pageview",{$current_url:window.location.href}),fetch("/api/track/activity/",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({distinct_id:i.analytics.getDistinctId(),page_path:window.location.pathname,page_url:window.location.href})}).catch(()=>{}))},[e,d]),null}e.s(["PostHogPageview",()=>d],63369)},355160,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(618566),a=e.i(192971),i=e.i(80092),o=e.i(375679);let s="uxa_exit_shown",l="uxa_lead";function c(){let e=(0,n.usePathname)(),[c,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)("brochure"),h=(0,r.useRef)(!1);function p(){if(h.current)return;h.current=!0,localStorage.setItem(s,"1");let t=e.startsWith("/blog")?"masterclass":"brochure";f(t),u(!0),o.analytics.exitPopupShown(t)}function m(e){u(!1),o.analytics.exitPopupDismissed(e)}(0,r.useEffect)(()=>{if(["/thank-you","/checkout","/enrol","/scholarship","/masterclass","/book-a-call","/in-house-ux-training","/students","/submit-a-project","/write-for-us","/unsubscribe","/study"].some(t=>e.startsWith(t)))return void u(!1);if("1"===localStorage.getItem(s)||"1"===localStorage.getItem(l))return;let t=!1,r=setTimeout(()=>{t=!0},5e3);function n(e){t&&e.clientY<=0&&!e.relatedTarget&&p()}document.addEventListener("mouseout",n);let a=0;function i(){if(!t)return;let e=window.scrollY,r=document.documentElement.scrollHeight-window.innerHeight;r<=0||(e/r>=.6&&(a=Math.max(a,e)),a>0&&e<200&&p())}return window.addEventListener("scroll",i,{passive:!0}),()=>{clearTimeout(r),document.removeEventListener("mouseout",n),window.removeEventListener("scroll",i)}},[e]),(0,r.useEffect)(()=>{if(c)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e);function e(e){if("Escape"===e.key)return void m("escape");if("Tab"===e.key&&g.current){let t=Array.from(g.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter(e=>!e.hasAttribute("disabled"));if(0===t.length)return void e.preventDefault();let r=t[0],n=t[t.length-1];e.shiftKey?document.activeElement!==r&&g.current.contains(document.activeElement)||(e.preventDefault(),n.focus()):document.activeElement!==n&&g.current.contains(document.activeElement)||(e.preventDefault(),r.focus())}}},[c]);let g=(0,r.useRef)(null);return((0,r.useEffect)(()=>{c&&g.current?.focus()},[c]),c)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{onClick:()=>m("backdrop"),style:{position:"fixed",inset:0,zIndex:9998,background:"rgba(28, 20, 16, 0.55)"},"aria-hidden":"true"}),(0,t.jsxs)("div",{ref:g,role:"dialog","aria-modal":"true","aria-label":"masterclass"===d?"Watch the free UX masterclass recording":"Get the free course brochure",tabIndex:-1,style:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",zIndex:9998,width:"min(480px, calc(100vw - 32px))",background:"var(--offwhite)",borderRadius:16,padding:"36px 32px 32px",boxShadow:"var(--shadow-xl)",outline:"none"},children:[(0,t.jsx)("button",{onClick:()=>m("close"),"aria-label":"Close",style:{position:"absolute",top:14,right:16,background:"transparent",border:"none",cursor:"pointer",fontSize:"1.4rem",lineHeight:1,color:"var(--text-muted)",padding:"4px 8px",borderRadius:6},children:"Ã"}),(0,t.jsx)("h2",{style:{fontFamily:"var(--font-display)",fontSize:"1.65rem",fontWeight:400,color:"var(--ink)",lineHeight:1.25,marginBottom:10,paddingRight:28},children:"masterclass"===d?"Before you go -- see how UX actually works":"Before you go -- which course is right for you?"}),(0,t.jsx)("p",{style:{fontSize:"0.95rem",color:"var(--text-muted)",marginBottom:24,lineHeight:1.5},children:"masterclass"===d?"The next live masterclass isn't scheduled yet, but you can watch the recording from the last one free -- meet our lead instructor and see exactly how we teach, no sales pitch.":"Answer one question and we will send the exact brochure for your situation. Takes 10 seconds."}),"masterclass"===d?(0,t.jsx)(i.default,{variant:"free",ctaLabel:"Send me the recording"}):(0,t.jsx)(a.default,{formId:"general-lead",source:"exit-intent-popup",defaultCourse:"",showName:!1,showCourse:!0,showMessage:!1,ctaLabel:"Email me the brochure",onSuccess:()=>{try{localStorage.setItem(l,"1")}catch{}}})]})]}):null}e.s(["ExitIntentPopup",()=>c])},456194,e=>{"use strict";let t,r,n;var a=e.i(843476),i=e.i(271645),o=e.i(604570),s=e.i(369251),l=e.i(685149);let c=["human","real person","speak to a person","talk to someone","talk to a human","contact you","speak to someone","talk to a person"],u=[{label:"Which course suits me?",answer:"It depends on where you're starting from -- what's your current background?"},{label:"How much time does it take?",answer:"One live session per week (Wed evenings, 6-8:30pm UK) plus about 3-4 hours of project work -- around 5 hours total. Are you looking to fit this around a full-time job?"},{label:"What jobs can I get?",answer:"Graduates have landed UX Designer, Product Designer and Researcher roles at organisations including Airbnb, IBM, Knight Frank and Prostate Cancer UK. What kind of role are you aiming for?"}],d={"beginner-ux-design":{whoDetail:"Complete career-changers with no design background. Marketers, PMs, customer service, HR, teaching, law -- anyone curious about UX.",project:"End-to-end UX project for a real client brief",tools:"Figma (free), Maze or Useberry for usability testing, Notion",timeCommitment:"~5-6 hours/week (session + project work)",outcomeNote:"Certificate in Beginner UX (AI) Design, portfolio case study",instructors:"Natalia Veretenyk (lead instructor), Jonathan Hill, Goncalo Andrade, Ben Sauer"},"advanced-ux-design":{whoDetail:"Designers who can do the process but want depth in research methods, synthesis, and presenting findings to stakeholders.",instructors:"Jonathan Hill, Nora Goerne, Stratis Valachis, Enrico Furfaro, Jiri Jerabek"},"ux-strategy":{whoDetail:"Mid-senior designers wanting to move into strategy, design leadership, or Head of UX roles.",instructors:"Stratis Valachis, Hara Mihailidou, Jiri Jerabek",graduate:"Claire (was Senior UX Designer, now Head of UX within 6 months)"},"product-design":{whoDetail:"Designers and PMs who work on digital products and want to understand how AI changes the design process.",instructors:"Stratis Valachis, Ben Sauer"},"ux-career-track":{whoDetail:"People who have finished Beginner UX (AI) Design and want a second real project plus help landing the job. It is an EXT
1ENSION, not a standalone course -- do not recommend it to someone starting from scratch.",outcomeNote:"a SECOND live client brief from a real UK company, worked as a design team, plus 1:1 job support (portfolio critique, CV review, mock interviews, job-search plan) that continues past the end of the course.",important:"Beginner UX (AI) Design already includes one real client project and portfolio prep. The Career Track's value is the SECOND brief and the 1:1 support. Never describe it as work experience at a start-up or a placement -- we do not offer placements."},"ux-accessibility":{whoDetail:"Designers who want to build inclusive, WCAG-compliant products.",instructors:"Nora Goerne"}};l.PRIMARY_CTA_HREF,t=s.courses.find(e=>"ux-career-track"!==e.slug)??s.courses[0],r=(0,s.getCourseBySlug)("ux-career-track"),n=(0,s.getCourseBySlug)("beginner-ux-design")??t,r?((0,s.coursePrice)(t),(0,s.coursePrice)(r)):(0,s.coursePrice)(t),r&&n&&(n.title,(0,s.courseDuration)(n),(0,s.coursePrice)(n),r.title,(0,s.courseDuration)(r),(0,s.coursePrice)(r),s.FULL_PROGRAM_WEEKS,(0,s.gbp)(s.FULL_PROGRAM_PRICE)),(0,s.gbp)(t.depositGBP),(0,s.gbp)(t.depositGBP),s.NEXT_COHORT_START,s.courses.length,s.courses.map((e,t)=>{let r,n,a,i,o;return n=d[(r=s.courses[t]).slug]??{},(a=[`${t+1}. ${r.title} (slug: ${r.slug})`]).push(` Who it's for: ${n.whoDetail??r.who}`),i="beginner-ux-design"===r.slug?`, one live session/week (${s.SCHEDULE})`:"",a.push(` Duration: ${(0,s.courseDuration)(r)}${i}`),o="ux-career-track"===r.slug?". REGISTER-INTEREST ONLY -- no checkout, no deposit.":"",a.push(` Price: ${(0,s.coursePrice)(r)}${o}`),n.project&&a.push(` Project: ${n.project}`),n.tools&&a.push(` Tools: ${n.tools}`),n.timeCommitment&&a.push(` Time commitment: ${n.timeCommitment}`),n.outcomeNote&&a.push(` ${"ux-career-track"===r.slug?"What it adds":"Outcome"}: ${n.outcomeNote}`),n.instructors&&a.push(` Instructors: ${n.instructors}`),n.graduate&&a.push(` Graduate: ${n.graduate}`),n.important&&a.push(` Important: ${n.important}`),a.join("\n")}).join("\n\n");var f=e.i(375679),h=e.i(541872);function p(){try{let e=sessionStorage.getItem("uxacademy_chat");if(e)return JSON.parse(e)}catch{}return null}let m=()=>()=>{},g=["/thank-you","/checkout","/enrol","/study"];function y(){let[e]=(0,i.useState)(p),[t,r]=(0,i.useState)("closed"),[n,s]=(0,i.useState)(()=>e?.messages?.length?e.messages:[]),[d,y]=(0,i.useState)(""),[v,S]=(0,i.useState)(()=>e?.aiExchangeCount||0),[k,_]=(0,i.useState)(()=>!!e?.emailCaptured),[I,j]=(0,i.useState)(!1),[E,C]=(0,i.useState)(""),[R,T]=(0,i.useState)(""),[O,D]=(0,i.useState)(!0),[A,N]=(0,i.useState)(null),[P,L]=(0,i.useState)(()=>e?.capturedCtaUrl||l.PRIMARY_CTA_HREF),M=(0,i.useRef)(!1),[H,F]=(0,i.useState)(!1),U=(0,i.useId)().replace(/:/g,""),z=(0,i.useRef)(null),W=(0,i.useRef)(null),$=(0,i.useRef)(null),q=(0,i.useRef)(null),B=(0,i.useRef)(null),J=(0,i.useRef)(0),X=(0,i.useRef)(null),G=(0,i.useSyncExternalStore)(m,()=>{if(null===X.current){let e=window.location.pathname;X.current=!g.some(t=>e.startsWith(t))}return X.current},()=>!1);(0,i.useEffect)(()=>{let e=()=>F(!!document.querySelector("[data-uxa-sticky-cta]"));e();let t=new MutationObserver(e);return t.observe(document.body,{childList:!0,subtree:!0}),()=>t.disconnect()},[]),(0,i.useEffect)(()=>{try{sessionStorage.setItem("uxacademy_chat",JSON.stringify({messages:n,emailCaptured:k,aiExchangeCount:v,capturedCtaUrl:P}))}catch{}},[n,k,v,P]),(0,i.useEffect)(()=>{if("closed"!==t)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e);function e(e){"Escape"===e.key&&(r("closed"),z.current?.focus())}},[t]),(0,i.useEffect)(()=>{$.current?.scrollIntoView({behavior:"smooth"})},[n,t]),(0,i.useEffect)(()=>{"closed"!==t&&setTimeout(()=>W.current?.focus(),50)},[t]);let V=(0,i.useCallback)(()=>{B.current&&clearTimeout(B.current),B.current=setTimeout(()=>{M.current||(M.current=!0,s(e=>[...e,{role:"assistant",content:(0,l.cohortStartLabelShort)()?`Still thinking it over? Cohort 1 starts ${(0,l.cohortStartLabelShort)()} -- happy to answer anything, or I can point you to a quick call with the team.`:"Still thinking it over? Happy to answer anything, or I can point you to a quick call with the team."}]),j(!0))},3e4)},[]),K=(0,i.useCallback)(()=>{q.current&&(clearInterval(q.current),q.current=null)},[]),Y=(0,i.useCallback)(e=>{J.current=0,q.current=setInterval(async()=>
1{if(J.current+=1,J.current>360)return void K();try{let t=await fetch(`/api/chat-handoff?session_id=${encodeURIComponent(e)}`),n=await t.json();n.reply&&(N(n.reply),K(),r("open"))}catch{}},5e3)},[K]);function Q(e,t){s(r=>[...r,{role:e,content:t}])}function Z(e,t){f.analytics.gtagEvent(e,t??{}),(0,h.trackingAllowed)()&&o.default.capture(e,t)}async function ee(e){let t=[...n,{role:"user",content:e}];s(t),r("ai_responding"),s(e=>[...e,{role:"assistant",content:""}]);let a=window.location.pathname;O&&D(!1),O&&Z("chat_first_message");try{let e=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:t.slice(-20),pageUrl:a,...O?{firstMessage:!0}:{}})});if(!e.ok||!e.body){s(e=>{let t=[...e];return t[t.length-1]={role:"assistant",content:"Sorry, something went wrong. Please try again."},t}),r("open");return}let n=e.body.getReader(),i=new TextDecoder;for(;;){let{done:e,value:t}=await n.read();if(e)break;for(let e of i.decode(t,{stream:!0}).split("\n"))if(e.startsWith("data: ")&&"data: [DONE]"!==e)try{let t=JSON.parse(e.slice(6)),r=t.choices?.[0]?.delta?.content;r&&s(e=>{let t=[...e],n=t[t.length-1];return t[t.length-1]={...n,content:n.content+r},t})}catch{}}let o=v+1;S(o),o>=1&&!k&&j(!0),r("open"),V()}catch{s(e=>{let t=[...e];return t[t.length-1]={role:"assistant",content:"Sorry, something went wrong. Please try again."},t}),r("open")}}async function et(e){e.preventDefault();let n=d.trim();if(n&&"ai_responding"!==t){let e;if(y(""),e=n.toLowerCase(),c.some(t=>e.includes(t))){Q("user",n),r("human_handoff");return}await ee(n)}}async function er(e){if(e.preventDefault(),E){B.current&&clearTimeout(B.current);try{let e=await fetch("/api/chat-lead",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:E,conversation:n,sessionId:U,pageUrl:window.location.pathname})}),t=await e.json();t.cta_url&&L(t.cta_url)}catch{}_(!0),j(!1),Q("assistant","Done -- your course guide is on its way. Ready for the next step?"),Z("chat_lead_captured",{email_domain:E.split("@")[1]??"unknown"})}}async function en(e){e.preventDefault();let t=R||E,a=window.location.pathname;try{await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({handoff:!0,sessionId:U,email:t,conversation:n,pageUrl:a})})}catch{}Q("assistant",`Done -- the team has been notified. If you stay on this page, their reply will appear here. We'll also email you at ${t}.`),r("awaiting_human"),Y(U)}if((0,i.useEffect)(()=>()=>K(),[K]),(0,i.useEffect)(()=>()=>{B.current&&clearTimeout(B.current)},[]),!G)return null;let ea="closed"!==t;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("style",{children:` 2 .uxa-chat-bubble { bottom: calc(20px + env(safe-area-inset-bottom)); } 3 .uxa-chat-panel { bottom: calc(80px + env(safe-area-inset-bottom)); } 4 @media (max-width: 768px) { 5 .uxa-chat-bubble.uxa-has-sticky { bottom: calc(96px + env(safe-area-inset-bottom)); } 6 .uxa-chat-panel.uxa-has-sticky { bottom: calc(156px + env(safe-area-inset-bottom)); } 7 } 8 `}),(0,a.jsx)("button",{ref:z,className:`uxa-chat-bubble${H?" uxa-has-sticky":""}`,"aria-label":ea?"Close chat":"Open chat","aria-expanded":ea,onClick:()=>{ea?(B.current&&clearTimeout(B.current),r("closed")):(r("open"),Z("chat_opened"),n.length)},style:{position:"fixed",right:20,zIndex:9999,width:52,height:52,borderRadius:"50%",background:"var(--ink, #1C1410)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 16px rgba(0,0,0,0.18)",color:"#fff",fontSize:"1.4rem",lineHeight:1},children:ea?"Ã":"ð¬"}),ea&&(0,a.jsxs)("div",{role:"complementary","aria-label":"Chat with UX Academy",className:`uxa-chat-panel${H?" uxa-has-sticky":""}`,style:{position:"fixed",right:20,zIndex:9998,width:"min(380px, calc(100vw - 40px))",height:"min(480px, calc(100dvh - 100px))",background:"var(--offwhite, #fafaf8)",borderRadius:14,boxShadow:"0 8px 32px rgba(0,0,0,0.16)",display:"flex",flexDirection:"column",overflow:"hidden",border:"1px solid rgba(0,0,0,0.08)"},children:[(0,a.jsxs)("div",{style:{padding:"10px 16px",background:"var(--color-primary, #AD1022)",color:"#fff",display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0},children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,a.jsx)("img",{src:"https://i.pravatar.cc/150?img=47",alt:"Sarah",width:36,height:36,style:{borderRadius:"50%",objectFit:"cover",border:"2px s
8olid rgba(255,255,255,0.4)"}}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{style:{fontFamily:"var(--font-body)",fontWeight:600,fontSize:"0.95rem",lineHeight:1.2},children:"Sarah"}),(0,a.jsx)("div",{style:{fontFamily:"var(--font-body)",fontSize:"0.7rem",opacity:.8,lineHeight:1.2},children:"UX Academy"})]})]}),(0,a.jsx)("button",{"aria-label":"Close chat",onClick:()=>{B.current&&clearTimeout(B.current),r("closed"),z.current?.focus()},style:{background:"transparent",border:"none",color:"#fff",cursor:"pointer",fontSize:"1.2rem",lineHeight:1,padding:"2px 6px"},children:"Ã"})]}),(0,a.jsxs)("div",{role:"log","aria-live":"polite","aria-label":"Chat messages",style:{flex:1,overflowY:"auto",padding:"16px 14px",display:"flex",flexDirection:"column",gap:10},children:[(0,a.jsx)("div",{style:b("assistant"),children:"Hi, I'm Sarah! I can answer any questions about our UX design courses. What would you like to know?"}),0===n.length&&(0,a.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:u.map(e=>(0,a.jsx)("button",{onClick:()=>{Q("user",e.label),Q("assistant",e.answer),S(1),j(!0),V()},style:{background:"#fff",border:"1px solid #e5e5e2",borderRadius:8,padding:"8px 12px",fontSize:"0.85rem",cursor:"pointer",textAlign:"left",color:"var(--ink, #1a1a18)",fontFamily:"var(--font-body)"},children:e.label},e.label))}),n.map((e,t)=>(0,a.jsx)("div",{style:b(e.role),children:e.content},t)),A&&(0,a.jsxs)("div",{style:b("assistant"),children:[(0,a.jsx)("strong",{children:"Naveed:"})," ",A]}),"ai_responding"===t&&n[n.length-1]?.content===""&&(0,a.jsx)("div",{"aria-live":"polite","aria-atomic":"true",style:b("assistant"),children:"..."}),I&&!k&&(0,a.jsxs)("form",{onSubmit:er,style:{background:"var(--offwhite)",border:"1px solid var(--border)",borderRadius:10,padding:"10px 12px",display:"flex",flexDirection:"column",gap:8,marginTop:4},children:[(0,a.jsx)("p",{style:{fontSize:"0.8rem",color:"var(--ink)",margin:0,fontFamily:"var(--font-body)",fontWeight:600},children:"Want the full course guide sent over?"}),(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)("input",{type:"email",required:!0,value:E,onChange:e=>C(e.target.value),placeholder:"[email protected]",style:{...x,flex:1,fontSize:"1rem"}}),(0,a.jsx)("button",{type:"submit",style:{...w,fontSize:"0.8rem",padding:"7px 12px"},children:"Send it"})]}),(0,a.jsx)("p",{style:{fontSize:"0.7rem",color:"var(--text-muted)",margin:0,fontFamily:"var(--font-body)"},children:"No spam. Unsubscribe anytime."})]}),k&&(0,a.jsx)("a",{href:P,style:{display:"block",background:"var(--color-primary, #AD1022)",color:"#fff",textAlign:"center",padding:"10px 16px",borderRadius:8,fontFamily:"var(--font-body)",fontWeight:600,fontSize:"0.875rem",textDecoration:"none",marginTop:4},children:P.startsWith("/masterclass")?`${l.PRIMARY_CTA_LABEL_SHORT} â`:"View the course â"}),"human_handoff"===t&&(0,a.jsxs)("form",{onSubmit:en,style:{display:"flex",flexDirection:"column",gap:8},children:[(0,a.jsxs)("p",{style:{fontSize:"0.875rem",color:"var(--ink)",margin:0,fontFamily:"var(--font-body)"},children:["I'll connect you with the team -- they usually respond within a few hours.",!k&&" What's your email so they can reach you?"]}),!k&&(0,a.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,a.jsx)("input",{type:"email",required:!0,value:R,onChange:e=>T(e.target.value),placeholder:"[email protected]",style:x}),(0,a.jsx)("button",{type:"submit",style:w,children:"Connect me"})]}),k&&(0,a.jsx)("button",{type:"submit",style:w,children:"Notify the team"})]}),"awaiting_human"===t&&(0,a.jsx)("div",{"aria-live":"polite",style:{fontSize:"0.8rem",color:"var(--text-muted, #777)",textAlign:"center",padding:"8px 0"},children:"Waiting for the team to reply..."}),(0,a.jsx)("div",{ref:$})]}),(0,a.jsxs)("form",{onSubmit:et,style:{padding:"10px 12px",borderTop:"1px solid #e5e5e2",display:"flex",gap:8,flexShrink:0},children:[(0,a.jsx)("input",{ref:W,type:"text",value:d,onChange:e=>{y(e.target.value),B.current&&clearTimeout(B.current)},placeholder:"Ask a question...",disabled:"ai_responding"===t||"awaiting_human"===t,"aria-label":"Chat message",maxLength:800,style:{...x,flex:1}}),(0,a.jsx)("button",{type:"submit",disabled:!d.trim()||"ai_responding"===t||"awaiting_human"===t,"aria-label":"Send message",style:w,children:"Send"})]})]})]})}function b(e){return{alignSelf:"user"===e?"flex-end":"flex-start",background:"user"===e?"var(--color-primary, #AD1022)":"#fff",color:"user"===e?"#fff":"var(--ink, #1a1a18)",borderRadius:"user"===e?"12px 12px 2px 12px":"12px 12px 12px 2px",padding:"8px 12px",maxWidth:"85%",fontSize:"0.875rem",lineHeight:1.5,fontFamily:"var(--font-body)",border:"assistant"===e?"1px solid #e5e5e2":"none",whiteSpace:"pre-wrap",wordBreak:"break-word"}}let x={border:"1px solid #e5e5e2",borderRadius:8,padding:"8px 10px",fontSize:"1rem",fontFamily:"var(--font-body)",outline:"none",background:"#fff",color:"var(--ink, #1a1a18)"},w={background:"var(--color-primary, #AD1022)",color:"#fff",border:"none",borderRadius:8,padding:"8px 14px",fontSize:"0.875rem",fontWeight:600,cursor:"pointer",fontFamily:"var(--font-body)",whiteSpace:"nowrap"};e.s(["ChatWidget",()=>y],456194)},720770,e=>{"use strict";var t=e.i(271645),r=e.i(618566);function n(){let e=(0,r.usePathname)();return(0,t.useEffect)(()=>{let e=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting&&(t.target.classList.add("is-visible"),e.unobserve(t.target))})},{threshold:0,rootMargin:"0px 0px -40px 0px"}),t=()=>{document.querySelectorAll(".reveal:not(.is-visible), .reveal-stagger:not(.is-visible), .statbar:not(.is-visible)").forEach(t=>e.observe(t))};t();let r=document.querySelector("main")??document.body,n=null,a=new MutationObserver(()=>{n&&clearTimeout(n),n=setTimeout(()=>{t(),0===r.querySelectorAll(".reveal:not(.is-visible), .reveal-stagger:not(.is-visible), .statbar:not(.is-visible)").length&&a.disconnect()},50)});return a.observe(r,{childList:!0,subtree:!0}),()=>{e.disconnect(),a.disconnect(),n&&clearTimeout(n)}},[e]),null}e.s(["default",()=>n])},887025,e=>{"use strict";var t=e.i(271645),r=e.i(668791),n=e.i(101277);let a=["utm_source","utm_medium","utm_campaign","utm_term","utm_content","gclid"],i="uxa_f
8irst_touch";function o(){return(0,t.useEffect)(()=>{let e=new URLSearchParams(window.location.search);(0,n.captureReferralCode)(e.get("ref"));let t=null;try{let e=sessionStorage.getItem(i);t=e?JSON.parse(e):null}catch{return}if(t)return;let r={};for(let t of a){let n=e.get(t);n&&(r[t]=n)}let o=Object.keys(r).length>0?r:{utm_source:"direct"};try{sessionStorage.setItem(i,JSON.stringify(o))}catch{}},[]),(0,t.useEffect)(()=>{(0,r.restoreGa4UserId)();let e=0,t=(0,r.readGaClientId)();if(t)return void(0,r.persistGaClientId)(t);let n=setInterval(()=>{e+=1;let t=(0,r.readGaClientId)();t?((0,r.persistGaClientId)(t),clearInterval(n)):e>=20&&clearInterval(n)},500);return()=>clearInterval(n)},[]),null}e.s(["default",()=>o])},236320,e=>{"use strict";var t=e.i(271645),r=e.i(618566),n=e.i(375679);let a=[25,50,75,100];function i(){let e=(0,r.usePathname)(),i=(0,t.useRef)(new Set);return(0,t.useEffect)(()=>{i.current=new Set;let e=!1,t=()=>{e=!1;let t=document.documentElement,r=t.scrollHeight-window.innerHeight<=0?100:Math.min(100,(window.scrollY+window.innerHeight)/t.scrollHeight*100);for(let e of a)r>=e&&!i.current.has(e)&&(i.current.add(e),n.analytics.scrollDepth(e))},r=()=>{e||(e=!0,window.requestAnimationFrame(t))};return t(),window.addEventListener("scroll",r,{passive:!0}),window.addEventListener("resize",r,{passive:!0}),()=>{window.removeEventListener("scroll",r),window.removeEventListener("resize",r)}},[e]),null}e.s(["default",()=>i])},30827,e=>{"use strict";var t=e.i(843476),r=e.i(685149),n=e.i(476627),a=e.i(959673),i=e.i(271645);function o(){let e=(0,a.useMasterclassLive)(),[o,s]=(0,i.useState)(!1);return((0,i.useEffect)(()=>{if(!e)return;let t=(0,n.masterclassStartIso)("free"),a=t?Date.parse(t):NaN,i=Date.parse(r.MASTERCLASS_FREE_END_ISO);if(Number.isNaN(a)||Number.isNaN(i))return;let o=()=>s(Date.now()>=a);o();let l=setInterval(o,3e4);return()=>clearInterval(l)},[e]),e)?(0,t.jsxs)("div",{role:"region","aria-label":"Masterclass live now",style:{position:"sticky",top:0,zIndex:120,background:"var(--red)",color:"#FFFFFF",padding:"0.625rem 1rem",display:"flex",flexWrap:"wrap",alignItems:"center",justifyContent:"center",gap:"0.75rem",fontSize:"0.9375rem",fontWeight:600,lineHeight:1.4,textAlign:"center"},children:[(0,t.jsx)("span",{children:o?"The free UX masterclass is live now.":"The free UX masterclass starts shortly."}),(0,t.jsx)("a",{href:r.MASTERCLASS_JOIN_URL,style:{background:"#FFFFFF",color:"var(--red)",padding:"0.4rem 1rem",borderRadius:9999,textDecoration:"none",fontWeight:700,whiteSpace:"nowrap"},children:"Join now â"})]}):null}e.s(["MasterclassLiveBar",()=>o])}]);
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.