1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return v}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let l=e.r(90809),s=e.r(43476),i=l._(e.r(71645)),a=e.r(95057),c=e.r(8372),d=e.r(18581),u=e.r(18967),f=e.r(5550),h=e.r(88540),p=e.r(91949),x=e.r(73668),m=e.r(9396);function y(t){var r;let n,o,l,[y,v]=(0,i.useOptimistic)(p.IDLE_LINK_STATUS),j=(0,i.useRef)(null),{href:b,as:w,children:k,prefetch:N=null,passHref:C,replace:E,shallow:L,scroll:S,onClick:T,onMouseEnter:P,onTouchStart:M,legacyBehavior:_=!1,onNavigate:O,transitionTypes:R,ref:I,unstable_dynamicOnHover:A,...B}=t;n=k,_&&("string"==typeof n||"number"==typeof n)&&(n=(0,s.jsx)("a",{children:n}));let $=i.default.useContext(c.AppRouterContext),D=!1!==N,U=!1===N?"none":!0===N?"full":"auto",F="none"!==U?"auto"===U?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,K="string"==typeof(r=w||b)?r:(0,a.formatUrl)(r);if(_){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=i.default.Children.only(n)}let W=_?o&&"object"==typeof o&&o.ref:I,z,V=i.default.useCallback(e=>(null!==$&&(j.current=(0,p.mountLinkInstance)(e,K,$,F,D,v,z)),()=>{j.current&&((0,p.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,p.unmountPrefetchableInstance)(e)}),[D,K,$,F,v,z]),J={ref:(0,d.useMergedRef)(V,W),onClick(t){_||"function"!=typeof T||T(t),_&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!$||t.defaultPrevented||function(t,r,n,o,l,s,a,c="none"){if("u">typeof window){let d,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,x.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);i.default.startTransition(()=>{f(r,o?"replace":"push",!1===l?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,n.current,a,c)})}}(t,K,j,E,S,O,R,U)},onMouseEnter(e){_||"function"!=typeof P||P(e),_&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),$&&D&&(0,p.onNavigationIntent)(e.currentTarget,!0===A)},onTouchStart:function(e){_||"function"!=typeof M||M(e),_&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),$&&D&&(0,p.onNavigationIntent)(e.currentTarget,!0===A)}};return(0,u.isAbsoluteUrl)(K)?J.href=K:_&&!C&&("a"!==o.type||"href"in o.props)||(J.href=(0,f.addBasePath)(K)),l=_?i.default.cloneElement(o,J):(0,s.jsx)("a",{...B,...J,children:n}),(0,s.jsx)(g.Provider,{value:y,children:l})}let g=(0,i.createContext)(p.IDLE_LINK_STATUS),v=()=>(0,i.useContext)(g);("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)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(71645);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=l(e,n)),t&&(o.current=l(t,n))},[e,t])}function l(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("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)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return l}});let n=e.r(18967),o=e.r(52817);function l(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return a},searchParamsToUrlQuery:function(){return l},urlQueryToSearchParams:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function l(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,s(e));else t.set(r,s(n));return t}function a(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return c},urlObjectKeys:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let l=e.r(90809)._(e.r(98183)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",i=e.hash||"",a=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),a&&"object"==typeof a&&(a=String(l.urlQueryToSearchParams(a)));let d=e.search||a&&`?${a}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||s.test(n))&&!1!==c?(c="//"+(c||""),o&&"/"!==o[0]&&(o="/"+o)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),d&&"?"!==d[0]&&(d="?"+d),o=o.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${n}${c}${o}${d}${i}`}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return i(e)}},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return j},NormalizeError:function(){return g},PageNotFoundError:function(){return v},SP:function(){return x},ST:function(){return m},WEB_VITALS:function(){return l},execOnce:function(){return s},getDisplayName:function(){return u},getLocationOrigin:function(){return c},getURL:function(){return d},isAbsoluteUrl:function(){return a},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let l=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&i.test(e)};function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function d(){let{href:e}=window.location,t=c();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let x="u">typeof performance,m=x&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);
1class y extends Error{}class g extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},63936,e=>{"use strict";var t=e.i(43476),r=e.i(22016),n=e.i(46932),o=e.i(84834),l=e.i(13642),s=e.i(25052),i=e.i(33499);let a=[{titleKey:"projects.scholarfolio.title",descKey:"projects.scholarfolio.desc",url:"https://www.scholarfolio.org",gradient:"from-teal-600 to-emerald-500",logoContent:(0,t.jsxs)("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",children:[(0,t.jsx)("path",{d:"M6 10C6 8 8 7 10 7C12 7 14 8 16 9C18 8 20 7 22 7C24 7 26 8 26 10V23C26 24 25 25 23 25C21 25 19 24 16 23C13 24 11 25 9 25C7 25 6 24 6 23V10Z",stroke:"#2d7d7d",strokeWidth:"1.8",fill:"none"}),(0,t.jsx)("line",{x1:"16",y1:"9",x2:"16",y2:"23",stroke:"#2d7d7d",strokeWidth:"1.5"}),(0,t.jsx)("path",{d:"M18 16L21 12L24 8",stroke:"#2d7d7d",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("circle",{cx:"24",cy:"8",r:"1.5",fill:"#2d7d7d"})]}),nameDisplay:"ScholarFolio",tags:["React","TypeScript","Supabase","D3.js","Stripe","SerpAPI"]},{titleKey:"projects.researchchat.title",descKey:"projects.researchchat.desc",url:"https://www.researchchatai.com",gradient:"from-pink-400 to-sky-400",logoContent:(0,t.jsxs)("svg",{width:"34",height:"34",viewBox:"0 0 36 36",fill:"none",children:[(0,t.jsx)("circle",{cx:"10",cy:"10",r:"8",fill:"#b0b0c0"}),(0,t.jsx)("circle",{cx:"26",cy:"10",r:"8",fill:"#f06080"}),(0,t.jsx)("circle",{cx:"10",cy:"26",r:"8",fill:"#f0b020"}),(0,t.jsx)("circle",{cx:"26",cy:"26",r:"8",fill:"#66d1fc"})]}),nameDisplay:"ResearchChatAI",tags:["Chatbot Platform","AI Agents","No-Code","Research Studies"]},{titleKey:"projects.ai2ai.title",descKey:"projects.ai2ai.desc",url:"https://www.ai2aichat.com",gradient:"from-orange-500 to-sky-500",logoContent:(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"#f97316",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,t.jsx)("circle",{cx:"9",cy:"16",r:"1"}),(0,t.jsx)("circle",{cx:"15",cy:"16",r:"1"}),(0,t.jsx)("path",{d:"M8 11V7a4 4 0 0 1 8 0v4"})]}),(0,t.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"#0ea5e9",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:-10},children:[(0,t.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,t.jsx)("circle",{cx:"9",cy:"16",r:"1"}),(0,t.jsx)("circle",{cx:"15",cy:"16",r:"1"}),(0,t.jsx)("path",{d:"M8 11V7a4 4 0 0 1 8 0v4"})]})]}),nameDisplay:"AI2AI-Chat",tags:["React","TypeScript","Supabase","OpenAI","Anthropic","Gemini"]}];function c({eyebrow:e,title:r}){let{ref:o,isVisible:l}=(0,s.useScrollAnimation)(.1);return(0,t.jsxs)(n.motion.div,{ref:o,initial:{opacity:0,y:20},animate:l?{opacity:1,y:0}:{},transition:{duration:.6},className:"mb-10",children:[(0,t.jsx)("p",{className:"text-sm font-semibold uppercase tracking-wider mb-1",style:{color:"var(--color-accent-secondary)"},children:e}),(0,t.jsx)("h2",{className:"text-2xl sm:text-3xl font-bold",style:{color:"var(--color-text)"},children:r})]})}e.s(["default",0,function(){let{t:e}=(0,i.useI18n)();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.default,{}),(0,t.jsx)("main",{id:"main-content",className:"font-[family-name:var(--font-geist-sans)] pt-24 pb-24 px-6",children:(0,t.jsxs)("div",{className:"max-w-4xl mx-auto",children:[(0,t.jsxs)(n.motion.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6},className:"mb-16",children:[(0,t.jsx)("h1",{className:"text-4xl sm:text-5xl font-bold mb-4",style:{color:"var(--color-text)"},children:e("projects.heading")}),(0,t.jsx)("p",{className:"text-lg",style:{color:"var(--color-text-secondary)"},children:e("projects.intro")})]}),(0,t.jsx)(c,{eyebrow:e("projects.eyebrow"),title:e("projects.sectionTitle")}),(0,t.jsx)("div",{className:"space-y-8",children:a.map((r,o)=>(0,t.jsxs)(n.motion.a,{href:r.url,target:"_blank",rel:"noopener noreferrer",initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-40px"},transition:{duration:.5,delay:.1*o},className:"glass-card rounded-2xl overflow-hidden block group cursor-pointer",style:{textDecoration:"none"},children:[(0,t.jsx)("div",{className:`h-2 bg-gradient-to-r ${r.gradient}`}),(0,t.jsx)("div",{className:"p-8 sm:p-10",children:(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row items-start gap-6",children:[(0,t.jsx)("div",{className:"w-16 h-16 rounded-xl flex items-center justify-center flex-shrink-0",style:{background:"var(--color-bg)"},children:r.logoContent}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,t.jsx)("h3",{className:"text-xl sm:text-2xl font-bold group-hover:opacity-80 transition-opacity",style:{color:"var(--color-text)"},children:r.nameDisplay}),(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-40 group-hover:opacity-70 transition-opacity flex-shrink-0",style:{color:"var(--color-text)"},children:[(0,t.jsx)("path",{d:"M7 17L17 7"}),(0,t.jsx)("path",{d:"M7 7h10v10"})]})]}),(0,t.jsx)("p",{className:"text-base leading-relaxed mb-4",style:{color:"var(--color-text-secondary)"},children:e(r.descKey)}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:r.tags.map(e=>(0,t.jsx)("span",{className:"text-xs font-medium px-2.5 py-1 rounded-full",style:{background:"var(--color-bg)",color:"var(--color-text-secondary)",border:"1px solid var(--color-border)"},children:e},e))})]})]})})]},r.titleKey))}),(0,t.jsx)(n.motion.div,{initial:{opacity:0}
1,whileInView:{opacity:1},viewport:{once:!0},transition:{duration:.5,delay:.3},className:"mt-16 text-center",children:(0,t.jsxs)(r.default,{href:"/",className:"text-sm font-medium hover:opacity-70 transition-opacity",style:{color:"var(--color-accent)"},children:["â ",e("projects.back")]})})]})}),(0,t.jsx)(l.default,{})]})}])},13642,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(22016),o=e.i(33499);function l({user:e,domain:n}){let[o,s]=(0,r.useState)(!1);if((0,r.useEffect)(()=>s(!0),[]),!o)return(0,t.jsx)("span",{children:"[email protected]"});let i=`${e}@${n}`;return(0,t.jsx)("a",{href:`mailto:${i}`,className:"underline underline-offset-4 decoration-1 hover:opacity-70",style:{color:"var(--color-accent)"},children:i})}function s({text:e,href:r,onAction:n}){let o="underline underline-offset-4 decoration-1 hover:opacity-70";return(0,t.jsx)(t.Fragment,{children:e.split(/<a>|<\/a>/).map((e,l)=>1===l?r?(0,t.jsx)("a",{href:r,target:"_blank",rel:"noopener noreferrer",className:o,style:{color:"var(--color-accent)"},children:e},l):(0,t.jsx)("button",{type:"button",onClick:n,className:`${o} transition-opacity`,style:{color:"var(--color-accent)"},children:e},l):(0,t.jsx)("span",{children:e},l))})}e.s(["default",0,function(){let[e,i]=(0,r.useState)(!1),{t:a}=(0,o.useI18n)(),c=(0,r.useRef)(null),d=(0,r.useRef)(null),u=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{let e=()=>i(!0);return window.addEventListener("open-impressum",e),()=>window.removeEventListener("open-impressum",e)},[]),(0,r.useEffect)(()=>{if(!e)return;u.current=!0;let t=e=>{if("Escape"===e.key)return void i(!1);if("Tab"!==e.key)return;let t=c.current;if(!t)return;let r=t.querySelectorAll('a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])');if(0===r.length)return;let n=r[0],o=r[r.length-1],l=document.activeElement;e.shiftKey?(l===n||l===t)&&(e.preventDefault(),o.focus()):l===o&&(e.preventDefault(),n.focus())};return document.addEventListener("keydown",t),c.current?.focus(),()=>document.removeEventListener("keydown",t)},[e]),(0,r.useEffect)(()=>{!e&&u.current&&d.current?.focus()},[e]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("footer",{className:"py-8 px-6 border-t text-center text-sm",style:{borderColor:"var(--color-border)",color:"var(--color-text-secondary)"},children:[(0,t.jsxs)("p",{children:["© ",new Date().getFullYear()," Dr. Jonas Heller. ",a("footer.rights")]}),(0,t.jsxs)("p",{className:"mt-2 flex flex-wrap justify-center gap-x-4 gap-y-1",children:[(0,t.jsx)(n.default,{href:"/publications",className:"hover:opacity-70 transition-opacity",children:a("pubPage.heading")}),(0,t.jsx)(n.default,{href:"/academic",className:"hover:opacity-70 transition-opacity",children:a("academic.heading")}),(0,t.jsx)("a",{href:"https://orcid.org/0000-0002-3214-0724",target:"_blank",rel:"noopener noreferrer",className:"hover:opacity-70 transition-opacity",children:"ORCID 0000-0002-3214-0724"})]}),(0,t.jsx)("button",{ref:d,onClick:()=>i(!0),className:"mt-2 hover:opacity-70 transition-opacity underline underline-offset-4 decoration-1",style:{color:"var(--color-text-secondary)"},children:a("footer.impressum")})]}),e&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{backgroundColor:"rgba(0, 0, 0, 0.6)"},onClick:e=>{e.target===e.currentTarget&&i(!1)},children:(0,t.jsxs)("div",{ref:c,role:"dialog","aria-modal":"true","aria-labelledby":"impressum-title",tabIndex:-1,className:"glass-card rounded-2xl p-8 sm:p-10 max-w-lg w-full max-h-[80vh] overflow-y-auto relative focus:outline-none",style:{color:"var(--color-text)"},children:[(0,t.jsx)("button",{onClick:()=>i(!1),className:"absolute top-4 right-4 text-xl hover:opacity-70 transition-opacity",style:{color:"var(--color-text-secondary)"},"aria-label":a("legal.close"),children:"Ã"}),(0,t.jsx)("h2",{id:"impressum-title",className:"text-xl font-bold mb-6",children:"Impressum"}),(0,t.jsxs)("div",{className:"space-y-4 text-sm",style:{color:"var(--color-text-secondary)"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",style:{color:"var(--color-text)"},children:a("legal.responsible")}),(0,t.jsx)("p",{children:"Dr. Jonas Heller"}),(0,t.jsx)("p",{children:"Maastricht University"}),(0,t.jsx)("p",{children:"School of Business and Economics"}),(0,t.jsx)("p",{children:"Tongersestraat 53, 6211 LM Maastricht"}),(0,t.jsx)("p",{children:a("legal.countryNL")})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",style:{color:"var(--color-text)"},children:a("legal.contact")}),(0,t.jsx)("p",{children:(0,t.jsx)(l,{user:"j.heller",domain:"maastrichtuniversity.nl"})}),(0,t.jsx)("p",{className:"mt-1",children:(0,t.jsx)(s,{text:a("legal.contactForm"),onAction:()=>{i(!1),document.getElementById("contact")?.scrollIntoView({behavior:"smooth"})}})})]}),(0,t.jsx)("hr",{style:{borderColor:"var(--color-border)"}}
1),(0,t.jsx)("h3",{className:"text-base font-bold pt-2",style:{color:"var(--color-text)"},children:a("legal.privacyNotice")}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",style:{color:"var(--color-text)"},children:a("legal.controller")}),(0,t.jsxs)("p",{children:["Dr. Jonas Heller, Maastricht University, Tongersestraat 53, 6211 LM Maastricht, ",a("legal.countryNL"),"."," ",(0,t.jsx)(l,{user:"j.heller",domain:"maastrichtuniversity.nl"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",style:{color:"var(--color-text)"},children:a("legal.formTitle")}),(0,t.jsx)("p",{children:(0,t.jsx)(s,{text:a("legal.formText"),href:"https://formspree.io/legal/privacy-policy"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",style:{color:"var(--color-text)"},children:a("legal.hosting")}),(0,t.jsx)("p",{children:(0,t.jsx)(s,{text:a("legal.hostingText"),href:"https://vercel.com/legal/privacy-policy"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",style:{color:"var(--color-text)"},children:a("legal.cookies")}),(0,t.jsx)("p",{children:a("legal.cookiesText")})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",style:{color:"var(--color-text)"},children:a("legal.rights")}),(0,t.jsx)("p",{children:a("legal.rightsText")})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",style:{color:"var(--color-text)"},children:a("legal.complain")}),(0,t.jsx)("p",{children:(0,t.jsx)(s,{text:a("legal.complainText"),href:"https://www.autoriteitpersoonsgegevens.nl"})})]})]})]})})]})}])},42573,e=>{"use strict";var t=e.i(43476),r=e.i(71645);e.s(["default",0,function({children:e,className:n="",style:o,as:l="button",type:s,href:i,target:a,rel:c,onClick:d,"aria-label":u,"aria-expanded":f,title:h}){let p=(0,r.useRef)(null),[x,m]=(0,r.useState)({x:0,y:0}),y={ref:p,className:n,style:{...o,transform:`translate(${x.x}px, ${x.y}px)`,transition:0===x.x&&0===x.y?"transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)":"transform 0.1s ease-out"},onMouseMove:e=>{if(!p.current||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let t=p.current.getBoundingClientRect(),r=t.left+t.width/2,n=t.top+t.height/2;m({x:Math.max(-8,Math.min(8,.2*(e.clientX-r))),y:Math.max(-8,Math.min(8,.2*(e.clientY-n)))})},onMouseLeave:()=>{m({x:0,y:0})},"data-magnetic":!0,onClick:d,"aria-label":u,"aria-expanded":f,title:h};return"a"===l?(0,t.jsx)("a",{...y,href:i,target:a,rel:c??("_blank"===a?"noopener noreferrer":void 0),children:e}):(0,t.jsx)("button",{...y,type:s??"button",children:e})}])},84834,e=>{"use strict";var t=e.i(43476),r=e.i(22016),n=e.i(63178),o=e.i(71645),l=e.i(42573),s=e.i(33499);let i=[{key:"nav.speaking",href:"#speaking"},{key:"nav.consulting",href:"#consulting"},{key:"nav.about",href:"#about"},{key:"nav.publications",href:"/publications"},{key:"nav.projects",href:"/projects"},{key:"nav.cv",href:"/cv"},{key:"nav.contact",href:"#contact"}],a=["en","de","nl"];e.s(["default",0,function(){let{theme:e,setTheme:c}=(0,n.useTheme)(),{locale:d,setLocale:u,t:f}=(0,s.useI18n)(),[h,p]=(0,o.useState)(!1),[x,m]=(0,o.useState)(!1),[y,g]=(0,o.useState)(!1);(0,o.useEffect)(()=>{p(!0);let e=()=>m(window.scrollY>50);return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),(0,o.useEffect)(()=>(y?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[y]),(0,o.useEffect)(()=>{if(!y)return;let e=e=>{"Escape"===e.key&&g(!1)},t=window.matchMedia("(min-width: 1024px)"),r=()=>{t.matches&&g(!1)};return document.addEventListener("keydown",e),t.addEventListener("change",r),document.querySelector("#mobile-menu a")?.focus(),()=>{document.removeEventListener("keydown",e),t.removeEventListener("change",r)}},[y]);let v=(0,o.useCallback)((e,t)=>{if(!t.startsWith("#"))return;if(g(!1),"/"!==window.location.pathname&&"/index.html"!==window.location.pathname){e.currentTarget.href="/"+t;return}e.preventDefault();let r=document.getElementById(t.slice(1));if(r){let e=r.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:e,behavior:"smooth"})}},[]);return(0,t.jsxs)("nav",{className:`fixed top-0 left-0 right-0 z-50 transition-all duration-300 ${x||y?"backdrop-blur-xl shadow-sm":""}`,style:{backgroundColor:x||y?"var(--color-nav-bg)":"transparent",borderBottom:x?"1px solid var(--color-border)":"1px solid transparent"},children:[(0,t.jsxs)("div",{className:"max-w-6xl mx-auto px-6 py-4 flex items-center justify-between",children:[(0,t.jsx)(r.default,{href:"/",className:"text-lg font-bold tracking-tight",style:{color:"var(--color-text)"},children:"JH"}),(0,t.jsx)("div",{className:"hidden lg:flex items-center gap-6 xl:gap-8",children:i.map(e=>(0,t.jsxs)("a",{href:e.href,onClick:t=>v(t,e.href),className:"text-sm font-medium hover:opacity-70 transition-opacity inline-flex items-center gap-1",style:{color:"var(--color-text-secondary)"},children:[f(e.key),!e.href.startsWith("#")&&(0,t.jsxs)("svg",{"aria-hidden":"true",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M7 17L17 7"}),(0,t.jsx)("path",{d:"M7 7h10v10"})]})]},e.href))}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"flex items-center rounded-full border text-xs",style:{borderColor:"var(--color-border)"},children:a.map(e=>(0,t.jsx)("button",{onClick:()=>u(e),"aria-label":`${f("a11y.switchLang")} ${s.localeNames[e]}`,"aria-pressed":d===e,className:"px-2 py-1.5 rounded-full transition-colors font-medium",style:{backgroundColor:d===e?"var(--color-accent)":"transparent",color:d===e?"#fff":"var(--color-text-secondary)"},children:s.localeLabels[e]},e))}),(0,t.jsx)(l.default,{className:"w-10 h-10 rounded-full flex items-center justify-center border transition-colors",style:{borderColor:"var(--color-border)",color:"var(--color-text)"},onClick:()=>c("dark"===e?"light":"dark"),"aria-label":"Toggle dark mode",title:"Toggle dark mode",children:h?"dar
1k"===e?(0,t.jsxs)("svg",{"aria-hidden":"true",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,t.jsx)("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),(0,t.jsx)("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),(0,t.jsx)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),(0,t.jsx)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),(0,t.jsx)("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),(0,t.jsx)("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),(0,t.jsx)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),(0,t.jsx)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}):(0,t.jsx)("svg",{"aria-hidden":"true",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}):(0,t.jsx)("span",{className:"w-[18px] h-[18px]"})}),(0,t.jsx)("button",{className:"lg:hidden w-10 h-10 flex items-center justify-center rounded-full border transition-colors",style:{borderColor:"var(--color-border)",color:"var(--color-text)"},onClick:()=>g(!y),"aria-label":y?"Close menu":"Open menu","aria-expanded":y,"aria-controls":"mobile-menu",children:(0,t.jsx)("svg",{"aria-hidden":"true",width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:y?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("line",{x1:"4",y1:"4",x2:"14",y2:"14"}),(0,t.jsx)("line",{x1:"14",y1:"4",x2:"4",y2:"14"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("line",{x1:"3",y1:"5",x2:"15",y2:"5"}),(0,t.jsx)("line",{x1:"3",y1:"9",x2:"15",y2:"9"}),(0,t.jsx)("line",{x1:"3",y1:"13",x2:"15",y2:"13"})]})})})]})]}),y&&(0,t.jsx)("div",{id:"mobile-menu",className:"lg:hidden px-6 pb-6 pt-2 flex flex-col gap-4",style:{backgroundColor:"var(--color-nav-bg)"},children:i.map(e=>(0,t.jsxs)("a",{href:e.href,className:"text-base font-medium py-2 hover:opacity-70 transition-opacity inline-flex items-center gap-1",style:{color:"var(--color-text)"},onClick:t=>v(t,e.href),children:[f(e.key),!e.href.startsWith("#")&&(0,t.jsxs)("svg",{"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M7 17L17 7"}),(0,t.jsx)("path",{d:"M7 7h10v10"})]})]},e.href))})]})}])},25052,e=>{"use strict";var t=e.i(71645);e.s(["useScrollAnimation",0,function(e=.15){let r=(0,t.useRef)(null),[n,o]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return void o(!0);let t=new IntersectionObserver(([e])=>{e.isIntersecting&&(o(!0),t.unobserve(e.target))},{threshold:e}),n=r.current;return n&&t.observe(n),()=>{n&&t.unobserve(n)}},[e]),{ref:r,isVisible:n}}])}]);
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.