{"version":3,"file":"shared-lib.BuyjRGmP.mjs","names":["useState","React.useId","_Fragment","React.useRef","React.useLayoutEffect","useEffect"],"sources":["https:/framerusercontent.com/modules/cRnyLYwMsQ2rkESJJ13a/xZEmjmidgk0HUm8tPy69/Tokens.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{useEffect,useState}from\"react\";import{flushSync}from\"react-dom\";/*\n * Tokens (markhaedo.com V2) : le design system partagé par tout le portfolio.\n * Tous les composants (ProfilePanel, ProjectWheel, CaseLayout, AboutLayout)\n * importent ces valeurs : une couleur, un rayon ou une marge changé ici\n * change partout.\n */export const DISPLAY='var(--mh-font-display, Switzer, \"IBM Plex Sans\", system-ui, sans-serif)';export const DS={color:{page:\"#E6E6E6\",panel:\"#FFFFFF\",ink:\"#0A0A0A\",muted:\"rgba(10,10,10,0.6)\",faint:\"rgba(10,10,10,0.4)\",line:\"rgba(10,10,10,0.12)\",inset:\"#F2F2F2\",accent:\"#3341FF\",onImage:\"#FFFFFF\",onImageMuted:\"rgba(255,255,255,0.8)\"},dark:{page:\"#0A0A0A\",panel:\"#161616\",ink:\"#EDEDED\",muted:\"rgba(237,237,237,0.62)\",faint:\"rgba(237,237,237,0.4)\",line:\"rgba(237,237,237,0.14)\",inset:\"#1F1F1F\"},// Voiles sur image (lisibilité du texte blanc)\noverlay:{panel:\"linear-gradient(180deg, rgba(0,0,0,0.42) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 55%, rgba(0,0,0,0.62) 100%)\",top:\"linear-gradient(to bottom, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0) 22%)\"},shadow:{float:\"0 1px 2px rgba(0,0,0,0.08), 0 8px 24px rgba(0,0,0,0.12)\",image:\"0 1px 2px rgba(0,0,0,0.06), 0 12px 32px rgba(0,0,0,0.08)\"},// Espacements : uniquement ces valeurs\nspace:{1:4,2:8,3:12,4:16,5:24,6:32,7:48,8:72,9:96},layout:{gap:12,radius:8,radiusSm:6,panel:42,padTop:36,padX:40,padBottom:30,padMobile:16,contentTop:72},type:{// anciens noms gardés pour compatibilité\nnav:15,label:14,small:13,body:15,lead:18,h1:\"clamp(48px, 5.2vw, 96px)\",weight:{regular:400,medium:500,bold:600},tracking:{tight:\"-0.05em\",snug:\"-0.03em\",text:\"-0.01em\"}},motion:{ease:\"cubic-bezier(0.7, 0, 0.2, 1)\",out:\"cubic-bezier(0.2, 0.8, 0.2, 1)\",fast:\"0.3s\",base:\"0.6s\",slow:\"1.2s\",curtain:\"cubic-bezier(0.5, 0, 0.1, 1)\"}};export const T={// Titres de page (Journal, A bit more about me, titre d'un projet, phrase de fin)\ndisplay:{fontFamily:DISPLAY,fontSize:\"clamp(44px, 5.2vw, 96px)\",lineHeight:.95,fontWeight:600,letterSpacing:\"-0.04em\",margin:0},// Titres de section et d'article\nh2:{fontFamily:DISPLAY,fontSize:\"clamp(26px, 2.4vw, 38px)\",lineHeight:1.1,fontWeight:600,letterSpacing:\"-0.03em\",margin:0},// Sous-titres, chiffres clés, noms\nh3:{fontFamily:DISPLAY,fontSize:22,lineHeight:1.25,fontWeight:500,letterSpacing:\"-0.02em\",margin:0},// Chapeau, accroche\nlead:{fontSize:18,lineHeight:1.45,fontWeight:400,letterSpacing:\"-0.015em\",margin:0},// Texte courant\nbody:{fontSize:15,lineHeight:1.6,fontWeight:400,letterSpacing:\"-0.005em\",margin:0},// Lecture longue (articles du Journal)\nreading:{fontSize:17,lineHeight:1.7,fontWeight:400,letterSpacing:\"-0.005em\",margin:0},// Libellés, dates, métadonnées, filtres, boutons\nlabel:{fontSize:14,lineHeight:1.4,fontWeight:500,letterSpacing:\"-0.005em\",margin:0},// Libellé appuyé : un seul niveau d'emphase (nom, élément actif)\nstrong:{fontSize:14,lineHeight:1.4,fontWeight:600,letterSpacing:\"-0.005em\",margin:0},// Très petit : graduations, légendes d'image\ncaption:{fontSize:12,lineHeight:1.3,fontWeight:500,letterSpacing:\"0.01em\",margin:0},// Menu (Switzer)\nnav:{fontFamily:DISPLAY,fontSize:15,lineHeight:1.2,fontWeight:500,letterSpacing:\"-0.01em\"},// Chiffres (horloge, compteurs géants)\nfigure:{fontFamily:DISPLAY,fontWeight:500,letterSpacing:\"-0.03em\",fontVariantNumeric:\"tabular-nums\",lineHeight:1}};// Menu du site : une seule source pour toutes les pages\nexport const SITE_NAV=[{label:\"Work\",link:\"/\"},{label:\"Art\",link:\"/art\"},{label:\"About\",link:\"/about\"},{label:\"Archive\",link:\"/archive\"}];// Image principale d'un projet : même URL sur l'accueil et la page projet,\n// pour qu'elle soit déjà en cache à l'ouverture (pas de bloc vide).\nexport const heroUrl=src=>/framerusercontent\\.com\\/images\\//.test(src||\"\")?String(src).split(\"?\")[0]+\"?scale-down-to=1600\":src||\"\";// Liens de contact communs (pied de page, panneau d'accueil). cv : lien du PDF\n// une fois téléversé dans Framer (vide = lien masqué).\nexport const SITE_LINKS={email:\"contact@markhaedo.com\",linkedin:\"https://www.linkedin.com/in/markhaedomartinez/\",cv:\"\"};// Pastille (le système utilise des ronds, jamais des carrés)\nexport function dot(size,color){return{display:\"inline-block\",width:size,height:size,borderRadius:\"50%\",background:color,flex:\"0 0 auto\"};}// Séries d'images des œuvres (reprises de markhaedo.com/projects/…), par slug.\n// Utilisées par la page Art et par les pages projet sans galerie.\nexport const ART_SERIES={// Projet (pas une œuvre) : galerie reprise de l'ancienne page /projects/gusteau\ngusteau:\"15R3UJBpLCdPfQcK5D4LqJrD08M.jpg RRPUq5QSBxgi1rh2Q1mqqIJJn0.jpg IoXhV3myXR2hIUKTQgDLgP2Rng.jpg 3yo4M368vm46VlEfTtoUtWTv4.jpg p6xjAYAMGtmUo2xcyVvlbosE9HY.jpg y7ss8x4vwRP9BKhy6LwLnwsd2I.jpg XFaA9xybKosvNNF7x4zsMahllM.jpg lDJpJB33jHjq93de3i1DJrIvc.jpg sNNS4BLcwEr2t8tfQ1ORvp0VVc.jpg GHiXb3wnJXA6DFuScHUt7Dgyrk.jpg ZKHqoRIjQ30zBZiGz9mR3N7D4.jpg sP4ApMDn10Im9Q0ewD6AhufSj4.jpg E2Os9xzRIpCLh6fmiVvkqMD0Go.jpg\",\"dream-of-freedom\":\"I7zMpgNhVtozOgiKZJhrayKhU.jpg sHlUUwpUbMB1YBJJYuSLrJZN3k.jpg Qi37T0WqgCLhhdi1DpGX7hA4c.jpg 8VYZLgVH36txK7mQ3AWJOlNBKzk.jpg wI7FqBgysOJQCHwPLaf0sze2yE4.jpg\",\"welcome-to-peru\":\"ZEKVcRmylF1GWWxl1C1nyWrYqbA.jpg ySLEpBHATzUOcA5JfZKWiG4c0.jpg Mq6Lbva9PkLS0PCiBtoc5pPBGQ.jpg LBbZ4BW2I24dgCVoIylSu2yaSQo.jpg 6xhSmIhYAef8mqhtGjIF2xC1tFE.jpg eSnEgJjE8eIDHEE2TGjU8XjrFK4.jpg beUuIGOxL1S9sbnKKwG2tapxLc.jpg 0Fb68iJ4xTGsZjzYfg9VLg83k7I.jpg YEyiXJPGrkRMk4A42M0ElIUN8.jpg mzM05EfVYsXR6KdrsCtCv2wD8Y.jpg tC5BIlgzkvuonZ3ITxg1UjXanc.jpg Ng38eARGzViQiQOlglqT2waKuIQ.jpg HurPZkKUaC9FZQe5XWtFFcACUI.jpg\",\"the-political-carnival\":\"qlZtLvhT4I2OyVMMmo3Wxda9sCc.jpg WjHK00f92SJU0ERzClG7sHpTb0.jpg pONjKtFJb4porS9cMHIdSUS85U.webp yJ9CYQFfwfSfHvGzqLrerhK3J4.webp hqotsgVXjVxKRvWijB7NUuNfJo.webp BALm6ymxLgJouF60HMjUeFrSh8.webp UjaFTxos4k0enjAj5d7U83HsNlM.webp\",\"portrait-studies\":\"NhYuOQlZw96N62CeC5YtXiUmepY.jpg 8JO9TEus9yVbpZfpdbl9U0aE6sw.jpg ufbpR8NO0GkfBkiUF3gjxodt9tc.jpg x75abIgY6veQLF3auoZdUXxk.jpg hD4jYtZiCvWQCoCtKVzbO3Zfcu8.jpg\",\"andean-scenes\":\"pODfWo97xqRWLsRISEU0t0rpihc.jpg I6cQ6jiVP78GkqjzwP7Ay4M0wZc.jpg YJ9f6xHYiCzXTeWzcMpxYNjZGaI.jpg htGzbM4HzflJsDdPNJ2CT83k.jpg cYdzQJh0tKn80ahDmyfPpMbgBg.jpg\",\"fragmented-bodies\":\"u6twOFrvG172185WZrW7tNSIRU.jpg 3CBCQlplmm0KgmGibEMg5smWtE.jpg XnTkezSB6toqQeQk9IICSXULyDE.jpg jNsb0JRq821ew0iiAFQKQO7v8Lk.jpg widmXyzQqUvewrHDpZvAiplK8zg.jpg\",\"streets-of-cusco\":\"CylkQ5j3UzFHPQtgVbcpvM1CkQM.jpg GJLb4HE516nUCTujJOlH2A.jpg SwE5DrKp4w8UdNCGV2prjFto9I.jpg sszyqFJwaM7KUEVGHivjMEg5o9E.jpg TrVcdaMRwVfv05LCoNATP3bNjA.jpg ZocXncIO4YI7QE7GuXUCVpyPAAQ.jpg\",\"silent-flight\":\"nnaVUqAgh49wuFf6JxOc4eSNYo.jpg FFvlpsAhWUWmCfwIAP3mhmb6rs.jpg tgXYHgNCscBE4bu2anVoobSlU.jpg 7hjbo9FFmKWxzcQkTrFiHsl51E.jpg yMplfDxiGJOGIz5snDsqR0mX6w.jpg Nonn6aKsC7rewWX7Met1Lj1IQ.jpg W8hVfzQ1s0sSLolOT17MsN5nCQk.jpg Uz3a8iAhgF0NGaMjWvBY7t9l8o.jpg fhcSuRUdtTWHcZN1xbhI9oCZ1gk.jpg\",\"the-spectrum-of-emotion\":\"V6sFoRSeRunYloN8MGqx76P6qM.jpg JeW2NiFsTEM0WXH4OnvEMk4rtA.jpg yng88whcGDOwK24rr4x80lmhJc.jpg PmVyjgV0KKWDYPGynsJF6TThY.jpg edEZCvtSyL1feKXRSsbgFXfYRk.jpg SX7QD7jfqzLVCyprIsCtCYwHjB4.jpg wudfZ8P1eRsLwdRNPGvfyzpYcXc.jpg MKLAgWQ0F5shmkLUlvs6OKGjrRE.jpg 6Q0ibPpjo2h48m2r0R98tBGvhMs.jpg mOHGiQZhAWvRQF35IWVnYBgds.jpg kKvDLpKWWhy2BpASGJL7wyMY.jpg oidN79csaTxC8I91sw5VIanaUvU.jpg XlABANInNn4gD9NC3sRvKJcDj4.jpg 914iVCbp3ofKztgRglwu9bANWug.jpg\",\"actor-showreel\":\"CnoOQOqIVY1PmjGTmjTM2804r0Y.jpg Mn6WLHYYNkBCjaVAHsc6wQ4mec.jpg UiVhJbpZDz00SKa76xtNoDjBc.jpg dFuztR7zi95ZCzwJXuKBAAZ3CPU.jpg I6TsiCja1JebwF67wxfJDxKQ3Ps.jpg rgNzpZVF0ks3Zzrl5Wbu67h03s.jpg aY834R98V5nGxiWXhaMn3GLty00.jpg PmCyg2KlqrZMkmFtTtw4T5yd0I.jpg 7ry5NeC4tAJ8EFrVelFtNYctmls.jpg kTdUgPOgdvLUVfoj3YRgbFjggBI.jpg ikBxgr2lS5Tlx1bC4cqWReKmY.jpg bNzdQggumvChdUAXXpUkR9fGI.jpg mzKCca210zJXAnjBbqKDo47LOA.jpg EdBPbiOlFfMHnHt1SGBvXlR687I.jpg\"};// Ordre des œuvres (celui de la page Art) : sert au bloc « Next work »\nexport const ART_ORDER=[[\"dream-of-freedom\",\"Dream of Freedom\"],[\"andean-scenes\",\"Andean Scenes\"],[\"portrait-studies\",\"Portrait Studies\"],[\"streets-of-cusco\",\"Streets of Cusco\"],[\"fragmented-bodies\",\"Fragmented Bodies\"],[\"the-political-carnival\",\"The Political Carnival\"],[\"silent-flight\",\"Silent Flight\"],[\"welcome-to-peru\",\"Welcome to Peru\"],[\"the-spectrum-of-emotion\",\"The Spectrum of Emotion\"],[\"actor-showreel\",\"Actor Showreel\"]];export const slugify=s=>String(s||\"\").toLowerCase().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g,\"\").replace(/[^a-z0-9]+/g,\"-\").replace(/^-|-$/g,\"\");export const seriesUrls=slug=>(ART_SERIES[slug]||\"\").split(\" \").filter(Boolean).map(id=>`https://framerusercontent.com/images/${id}`);// Filtre en pastille (All, E-commerce, Photography…) : fond gris, actif en noir\nexport function chip(on,dark=false){const c=dark?DS.dark:DS.color;return{font:\"inherit\",...T.label,fontWeight:400,fontSize:15,border:0,cursor:\"pointer\",display:\"inline-flex\",alignItems:\"center\",minHeight:34,padding:\"0 14px\",borderRadius:999,background:on?c.ink:c.inset,color:on?dark?DS.dark.page:\"#FFFFFF\":c.ink,transition:`background ${DS.motion.fast} ease, color ${DS.motion.fast} ease`,whiteSpace:\"nowrap\"};}// Couleurs selon le mode\nexport function palette(dark){const c=dark?DS.dark:DS.color;return{page:c.page,panel:c.panel,ink:c.ink,muted:c.muted,faint:c.faint,line:c.line,inset:c.inset,accent:DS.color.accent};}// Padding des blocs\nexport function panelPad(compact){const L=DS.layout;return compact?`24px ${L.padMobile}px`:`${L.padTop}px ${L.padX}px ${L.padBottom}px`;}// Image optimisée : lazy, décodage asynchrone, tailles Framer (scale-down-to)\nexport function imgSrc(src,w=1600){if(!src)return\"\";if(/framerusercontent\\.com\\/images\\//.test(src)&&!/scale-down-to/.test(src)){return src+(src.includes(\"?\")?\"&\":\"?\")+\"scale-down-to=\"+w;}return src;}// Largeur du bloc de gauche, identique sur toutes les pages :\n// 42 % de la largeur disponible (écran moins les 3 marges).\nexport const PANEL_WIDTH=`var(--mh-panel-w, calc((100vw - ${DS.layout.gap*3}px) * ${DS.layout.panel/100}))`;// Polices du site : variables CSS partagées par tous les composants.\n// Pour changer de police partout, modifier --mh-font-sans / --mh-font-mono\n// (ici ou dans le code personnalisé du site, qui a la priorité).\nexport const FONTS_HREF=\"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&display=swap\";// Switzer (menu), comme sur markhaedo.com\nexport const SWITZER_HREF=\"https://api.fontshare.com/v2/css?f[]=switzer@400,500,600&display=swap\";export const FONT_VARS=`:root{--mh-panel-w:calc((100vw - ${DS.layout.gap*3}px) * ${DS.layout.panel/100});--mh-font-sans:\"IBM Plex Sans\",system-ui,-apple-system,sans-serif;--mh-font-mono:\"IBM Plex Sans\",system-ui,sans-serif;--mh-font-nav:\"Switzer\",\"IBM Plex Sans\",system-ui,sans-serif;--mh-font-display:\"Switzer\",\"IBM Plex Sans\",system-ui,sans-serif}\n@media (max-width: 809px){:root{--mh-panel-w:100%}}\n::selection{background:${DS.color.accent};color:#fff}\n.mh-root a:focus-visible,.mh-root button:focus-visible{outline:2px solid ${DS.color.accent};outline-offset:3px;border-radius:2px}\n@media (prefers-reduced-motion: reduce){.mh-root *,.mh-root *::before,.mh-root *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}\n.mh-nav,.mh-nav a,.mh-nav button{font-family:var(--mh-font-nav)!important;font-weight:500!important;letter-spacing:-0.01em!important}\n.mh-link{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s cubic-bezier(.7,0,.2,1);padding-bottom:1px}\n.mh-link:hover,.mh-link:focus-visible{background-size:100% 1px}\n@keyframes mh-rise{from{transform:translateY(105%);opacity:0}to{transform:none;opacity:1}}\n@keyframes mh-menu-in{from{opacity:0}to{opacity:1}}\n@keyframes mh-menu-item{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}`;export const SANS='var(--mh-font-sans, \"IBM Plex Sans\", system-ui, sans-serif)';export const MONO=SANS;export function useGoogleFonts(){useEffect(()=>{if(typeof document===\"undefined\")return;if(!window.__mhClickListener){window.__mhClickListener=true;window.addEventListener(\"pointerdown\",e=>window.__mhClick={x:e.clientX,y:e.clientY},{capture:true,passive:true});}if(!document.getElementById(\"mh-font-vars\")){const st=document.createElement(\"style\");st.id=\"mh-font-vars\";st.textContent=FONT_VARS;document.head.prepend(st);}[\"https://fonts.gstatic.com\",\"https://fonts.googleapis.com\",\"https://api.fontshare.com\"].forEach(h=>{if(document.querySelector(`link[rel=preconnect][href=\"${h}\"]`))return;const pc=document.createElement(\"link\");pc.rel=\"preconnect\";pc.href=h;pc.crossOrigin=\"\";document.head.appendChild(pc);});[[\"mh-fonts-plex\",FONTS_HREF],[\"mh-fonts-switzer\",SWITZER_HREF]].forEach(([id,href])=>{if(document.getElementById(id))return;const l=document.createElement(\"link\");l.id=id;l.rel=\"stylesheet\";l.href=href;document.head.appendChild(l);});},[]);}// Mode sombre partagé par tout le site (home + pages projet), mémorisé\nexport const DARK_PAGE=DS.dark.page;export function paintPage(dark,from){if(typeof document===\"undefined\")return;const els=[document.documentElement,document.body];let p=from?from.parentElement:null;while(p&&p!==document.body){const c=getComputedStyle(p).backgroundColor;if(p.dataset.mhBg!==undefined||c&&c!==\"transparent\"&&!/rgba\\(.*,\\s*0\\)$/.test(c))els.push(p);p=p.parentElement;}els.forEach(el=>{el.dataset.mhBg=DS.color.page;el.style.backgroundColor=dark?DARK_PAGE:DS.color.page;el.style.transition=\"background-color 0.5s ease\";});}// Pré-chargement des pages : au survol d'un lien (200 ms), la page projet est\n// préparée en arrière-plan (Chrome, Edge) ; le clic l'affiche sans écran blanc.\nfunction injectSpeculation(){try{const w=window;const S=HTMLScriptElement;if(w.__mhSpec||!S.supports||!S.supports(\"speculationrules\"))return;w.__mhSpec=1;const s=document.createElement(\"script\");s.type=\"speculationrules\";s.textContent=JSON.stringify({prerender:[{where:{or:[{href_matches:\"/work/*\"},{href_matches:\"/art/*\"}]},eagerness:\"moderate\"}],prefetch:[{where:{href_matches:\"/*\"},eagerness:\"moderate\"}]});document.head.appendChild(s);}catch{}}export function useDarkMode(ref){const[dark,setDark]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return;injectSpeculation();let v=window.__mhDark;if(v===undefined){try{v=window.localStorage.getItem(\"mh-dark\")===\"1\";}catch{v=false;}}setDark(!!v);paintPage(!!v,ref.current);const on=e=>{setDark(!!e.detail);paintPage(!!e.detail,ref.current);};window.addEventListener(\"mh-dark\",on);return()=>window.removeEventListener(\"mh-dark\",on);},[]);const set=v=>{if(typeof window===\"undefined\")return;window.__mhDark=v;try{window.localStorage.setItem(\"mh-dark\",v?\"1\":\"0\");}catch{}const apply=()=>window.dispatchEvent(new CustomEvent(\"mh-dark\",{detail:v}));const doc=document;const reduce=window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;if(!doc.startViewTransition||reduce){apply();return;}// Vague : le nouveau thème s'étend en cercle depuis le bouton cliqué\nconst c=window.__mhClick||{x:window.innerWidth/2,y:window.innerHeight/2};const r=Math.hypot(Math.max(c.x,window.innerWidth-c.x),Math.max(c.y,window.innerHeight-c.y));const html=document.documentElement;html.classList.add(\"mh-wave\");// Les éléments nommés (visuel héro) passeraient au-dessus de la vague : on les\n// retire de la capture le temps de l'animation\nconst named=Array.from(document.querySelectorAll(\"[style*='view-transition-name']\")).filter(el=>el.style.viewTransitionName&&el.style.viewTransitionName!==\"none\");const names=named.map(el=>el.style.viewTransitionName);named.forEach(el=>el.style.viewTransitionName=\"none\");// Pendant la capture, le rendu est suspendu (pas de requestAnimationFrame) :\n// on applique le thème de façon synchrone, sinon la page gèle ~4 s.\nconst t=doc.startViewTransition(()=>{try{flushSync(apply);}catch{apply();}});t.ready.then(()=>{html.animate({clipPath:[`circle(0px at ${c.x}px ${c.y}px)`,`circle(${r}px at ${c.x}px ${c.y}px)`]},{duration:700,easing:\"cubic-bezier(0.7, 0, 0.2, 1)\",pseudoElement:\"::view-transition-new(root)\"});}).catch(()=>{});t.finished.finally(()=>{html.classList.remove(\"mh-wave\");named.forEach((el,i)=>el.style.viewTransitionName=names[i]);});};return[dark,set];}// ---------------------------------------------------------------------------\n// Sons d'interface : désactivés par défaut, mémorisés, synthétisés (aucun fichier)\n// ---------------------------------------------------------------------------\nlet AUDIO=null;export function soundOn(){// Sons d'interface retirés (le réglage n'est plus proposé)\nreturn false;if(typeof window===\"undefined\")return false;const w=window;if(w.__mhSound===undefined){try{w.__mhSound=window.localStorage.getItem(\"mh-sound\")===\"1\";}catch{w.__mhSound=false;}}return!!w.__mhSound;}export function playTick(kind=\"tick\"){if(!soundOn())return;try{const Ctx=window.AudioContext||window.webkitAudioContext;if(!Ctx)return;AUDIO=AUDIO||new Ctx;const t0=AUDIO.currentTime;const o=AUDIO.createOscillator();const g=AUDIO.createGain();o.type=kind===\"tick\"?\"triangle\":\"sine\";o.frequency.setValueAtTime(kind===\"tick\"?2200:660,t0);o.frequency.exponentialRampToValueAtTime(kind===\"tick\"?1400:440,t0+.04);g.gain.setValueAtTime(1e-4,t0);g.gain.exponentialRampToValueAtTime(kind===\"tick\"?.05:.08,t0+.004);g.gain.exponentialRampToValueAtTime(1e-4,t0+(kind===\"tick\"?.045:.12));o.connect(g).connect(AUDIO.destination);o.start(t0);o.stop(t0+.15);}catch{}}export function useSound(){const[on,setOn]=useState(false);useEffect(()=>{setOn(soundOn());const h=e=>setOn(!!e.detail);window.addEventListener(\"mh-sound\",h);return()=>window.removeEventListener(\"mh-sound\",h);},[]);const set=v=>{window.__mhSound=v;try{window.localStorage.setItem(\"mh-sound\",v?\"1\":\"0\");}catch{}window.dispatchEvent(new CustomEvent(\"mh-sound\",{detail:v}));if(v)playTick(\"tap\");};return[on,set];}// Bouton clair / sombre : un seul, dans la navigation de chaque page\nexport function ThemeToggle(props){const{dark,setDark,color=\"inherit\"}=props;const label=dark?\"Switch to light mode\":\"Switch to dark mode\";const uid=\"mhtt\"+String(React.useId?React.useId():\"0\").replace(/[^a-z0-9]/gi,\"\");const ease=\"cubic-bezier(.2,.7,.2,1)\";// Interrupteur : pastille pleine (couleur du texte) avec l'icône évidée, l'autre mode en filigrane.\n// Tout est en currentColor : lisible sur fond clair, sombre ou sur image.\nreturn /*#__PURE__*/_jsxs(\"button\",{onClick:()=>setDark(!dark),role:\"switch\",\"aria-checked\":dark,\"aria-label\":label,title:label,className:\"mh-tt\",style:{font:\"inherit\",border:0,padding:0,cursor:\"pointer\",color,position:\"relative\",width:52,height:28,borderRadius:14,flex:\"0 0 auto\",display:\"inline-block\",background:\"color-mix(in srgb, currentColor 10%, transparent)\",boxShadow:\"inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent)\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`.mh-tt:focus-visible{outline:2px solid currentColor;outline-offset:2px}.mh-tt:hover .mh-tt-k{transform:var(--mh-tt-x) scale(1.06)}`}),/*#__PURE__*/_jsxs(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",style:{position:\"absolute\",left:8,top:8,opacity:dark?.5:0,transition:`opacity .3s ${ease}`},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"4.5\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 1.5v3M12 19.5v3M1.5 12h3M19.5 12h3M4.6 4.6l2.1 2.1M17.3 17.3l2.1 2.1M4.6 19.4l2.1-2.1M17.3 6.7l2.1-2.1\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\"})]}),/*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",style:{position:\"absolute\",right:8,top:8,opacity:dark?0:.5,transition:`opacity .3s ${ease}`},children:/*#__PURE__*/_jsx(\"path\",{d:\"M20.5 14.5A8.5 8.5 0 1 1 9.5 3.5a7 7 0 0 0 11 11z\",fill:\"currentColor\"})}),/*#__PURE__*/_jsxs(\"svg\",{className:\"mh-tt-k\",width:\"22\",height:\"22\",viewBox:\"0 0 22 22\",\"aria-hidden\":\"true\",style:{position:\"absolute\",left:3,top:3,[\"--mh-tt-x\"]:dark?\"translateX(24px)\":\"translateX(0)\",transform:dark?\"translateX(24px)\":\"translateX(0)\",transition:`transform .35s ${ease}`},children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsxs(\"mask\",{id:uid+\"s\",children:[/*#__PURE__*/_jsx(\"rect\",{width:\"22\",height:\"22\",fill:\"#fff\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"11\",cy:\"11\",r:\"3.2\",fill:\"#000\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M11 4.6v1.6M11 15.8v1.6M4.6 11h1.6M15.8 11h1.6M6.5 6.5l1.1 1.1M14.4 14.4l1.1 1.1M6.5 15.5l1.1-1.1M14.4 7.6l1.1-1.1\",stroke:\"#000\",strokeWidth:\"1.5\",strokeLinecap:\"round\"})]}),/*#__PURE__*/_jsxs(\"mask\",{id:uid+\"m\",children:[/*#__PURE__*/_jsx(\"rect\",{width:\"22\",height:\"22\",fill:\"#fff\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M15.6 12.6A5 5 0 1 1 9.4 6.4a4.1 4.1 0 0 0 6.2 6.2z\",fill:\"#000\"})]})]}),/*#__PURE__*/_jsx(\"circle\",{cx:\"11\",cy:\"11\",r:\"11\",fill:\"currentColor\",mask:`url(#${uid}${dark?\"m\":\"s\"})`})]})]});}export function ContrastIcon(){return /*#__PURE__*/_jsxs(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 18 18\",fill:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"9\",r:\"7.5\",stroke:\"currentColor\",strokeWidth:\"1.3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9 1.5a7.5 7.5 0 0 1 0 15z\",fill:\"currentColor\"})]});}// ---------------------------------------------------------------------------\n// Mobile (≤ 809 px, breakpoint Phone de Framer) : un seul scroll, barre fixe\n// en haut + menu plein écran. Partagé par toutes les pages.\n// ---------------------------------------------------------------------------\nexport const useIsoLayoutEffect=typeof window!==\"undefined\"?React.useLayoutEffect:useEffect;export const PHONE_MAX=809;export const BAR_H=56;// Avant l'hydratation, le serveur rend la version desktop : sur téléphone on la\n// masque (classe mh-desk) le temps que le JS bascule sur la version mobile.\nexport const PRE_CSS=`@media (max-width: ${PHONE_MAX}px){.mh-desk{visibility:hidden}}\n@media (min-width: 600px) and (max-width: ${PHONE_MAX}px){.mh-tab>aside{max-width:680px;margin-left:auto!important;margin-right:auto!important}.mh-tab>:not(aside):not(header):not(style):not([role=dialog]){max-width:712px;margin-left:auto!important;margin-right:auto!important}.mh-grid2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:48px!important}.mh-measure{max-width:640px}}\n.mh-nav{container:mhnav/inline-size}.mh-nav-wide{container-name:mhwide}.mh-mail-short{display:none}\n@container mhnav (max-width:500px){.mh-mail-full{display:none}.mh-mail-short{display:inline}}\n@container mhwide (max-width:500px){.mh-mail-full{display:none}.mh-mail-short{display:inline}}\n@container mhnav (max-width:500px){.mh-nav>div:first-child{column-gap:20px!important}}\n@container mhwide (max-width:560px){.mh-nav>div:first-child{column-gap:20px!important}}\n@container mhnav (max-width:440px){.mh-nav>div{column-gap:14px!important}}\n@container mhwide (max-width:500px){.mh-nav>div{column-gap:14px!important}}\n@container mhwide (max-width:470px){.mh-nav-index{display:none!important}}\n@container mhwide (max-width:440px){.mh-nav>div{column-gap:11px!important;font-size:14px}}\n@container mhnav (max-width:420px){.mh-nav>div{column-gap:11px!important;font-size:14px}}\n@view-transition{navigation:auto}\n::view-transition-old(root),::view-transition-new(root){animation-duration:.5s}\n::view-transition-group(mh-hero){animation-duration:1.1s;animation-timing-function:cubic-bezier(.4,.3,0,1);overflow:hidden;border-radius:${DS.layout.radius}px}\n::view-transition-old(mh-hero),::view-transition-new(mh-hero){width:100%;height:100%;object-fit:cover;mix-blend-mode:normal}\n::view-transition-old(mh-hero){animation:none}\n::view-transition-new(mh-hero){animation:mh-hero-in .45s ease .45s both}\n@keyframes mh-hero-in{from{opacity:0}}\nhtml.mh-wave::view-transition-old(root),html.mh-wave::view-transition-new(root){animation:none;mix-blend-mode:normal}\nhtml.mh-wave *,html.mh-wave *::before,html.mh-wave *::after{transition:none!important}\n@media (prefers-reduced-motion: reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}`;export function usePhone(){const[phone,setPhone]=useState(false)// = rendu serveur ; corrigé avant affichage\n;useIsoLayoutEffect(()=>{if(!window.matchMedia)return;const mq=window.matchMedia(`(max-width: ${PHONE_MAX}px)`);const on=()=>setPhone(mq.matches);on();if(mq.addEventListener)mq.addEventListener(\"change\",on);else mq.addListener(on);return()=>{if(mq.removeEventListener)mq.removeEventListener(\"change\",on);else mq.removeListener(on);};},[]);return phone;}const btnReset={font:\"inherit\",color:\"inherit\",background:\"none\",border:0,padding:0,margin:0,cursor:\"pointer\"};export function MobileBar(props){const{current,dark,setDark,email=\"contact@markhaedo.com\",brand=\"Mark Haedo\"}=props;const[open,setOpen]=useState(false);const P=palette(dark);const S=DS.space;useEffect(()=>{if(!open||typeof document===\"undefined\")return;const html=document.documentElement;const prev=html.style.overflow;html.style.overflow=\"hidden\";const onKey=e=>{if(e.key===\"Escape\")setOpen(false);};window.addEventListener(\"keydown\",onKey);return()=>{html.style.overflow=prev;window.removeEventListener(\"keydown\",onKey);};},[open]);const line=(top,rot)=>({position:\"absolute\",left:0,right:0,top,height:1.5,background:\"currentColor\",transform:`rotate(${rot}deg)`,transition:`transform ${DS.motion.fast} ${DS.motion.out}, top ${DS.motion.fast} ${DS.motion.out}`});return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"header\",{className:\"mh-nav\",style:{...T.nav,position:\"sticky\",top:0,zIndex:90,width:\"100%\",height:BAR_H,boxSizing:\"border-box\",padding:`0 ${S[4]}px`,display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",background:P.panel,borderBottom:`1px solid ${open?\"transparent\":P.line}`,color:P.ink,transition:`background ${DS.motion.base} ease`,flex:\"0 0 auto\"},children:[/*#__PURE__*/_jsx(\"a\",{href:\"/\",style:{color:\"inherit\",textDecoration:\"none\",fontSize:16,minHeight:44,display:\"inline-flex\",alignItems:\"center\"},children:brand}),/*#__PURE__*/_jsxs(\"button\",{onClick:()=>setOpen(!open),\"aria-expanded\":open,\"aria-controls\":\"mh-menu\",style:{...btnReset,height:44,marginRight:-6,padding:\"0 6px\",display:\"inline-flex\",alignItems:\"center\",gap:S[3],fontSize:16},children:[open?\"Close\":\"Menu\",/*#__PURE__*/_jsxs(\"span\",{\"aria-hidden\":\"true\",style:{position:\"relative\",width:16,height:10,display:\"inline-block\"},children:[/*#__PURE__*/_jsx(\"span\",{style:line(open?4.25:0,open?45:0)}),/*#__PURE__*/_jsx(\"span\",{style:line(open?4.25:8.5,open?-45:0)})]})]})]}),open&&/*#__PURE__*/_jsxs(\"div\",{id:\"mh-menu\",role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Menu\",style:{position:\"fixed\",inset:0,zIndex:89,background:P.panel,color:P.ink,paddingTop:BAR_H,boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",justifyContent:\"space-between\",animation:`mh-menu-in ${DS.motion.fast} ease both`},children:[/*#__PURE__*/_jsx(\"nav\",{\"aria-label\":\"Main\",style:{padding:`${S[6]}px ${S[4]}px`,display:\"flex\",flexDirection:\"column\",gap:S[1]},children:SITE_NAV.map((l,k)=>{const on=l.label===current;return /*#__PURE__*/_jsxs(\"a\",{href:l.link,\"aria-current\":on?\"page\":undefined,onClick:()=>setOpen(false),style:{...T.display,fontSize:44,lineHeight:1.15,color:on?P.ink:P.faint,textDecoration:\"none\",display:\"flex\",alignItems:\"center\",gap:S[3],animation:`mh-menu-item ${DS.motion.base} ${DS.motion.out} ${.04+k*.05}s both`},children:[l.label,on&&/*#__PURE__*/_jsx(\"span\",{style:dot(8,P.ink)})]},l.label);})}),/*#__PURE__*/_jsxs(\"div\",{style:{padding:`0 ${S[4]}px ${S[4]}px`,display:\"flex\",gap:S[5],marginTop:\"auto\"},children:[/*#__PURE__*/_jsx(\"a\",{href:\"/journal\",style:{...T.label,fontSize:15,color:current===\"Journal\"?P.ink:P.muted,textDecoration:\"none\",minHeight:44,display:\"inline-flex\",alignItems:\"center\"},children:\"Journal\"}),/*#__PURE__*/_jsx(\"a\",{href:SITE_LINKS.linkedin,target:\"_blank\",rel:\"noopener noreferrer\",style:{...T.label,fontSize:15,color:P.muted,textDecoration:\"none\",minHeight:44,display:\"inline-flex\",alignItems:\"center\"},children:\"LinkedIn ↗\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:{padding:`${S[4]}px ${S[4]}px ${S[6]}px`,borderTop:`1px solid ${P.line}`,display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",gap:S[4]},children:[/*#__PURE__*/_jsxs(\"a\",{href:`mailto:${email}`,style:{...T.label,fontSize:15,color:P.ink,textDecoration:\"none\"},children:[email,\" ↗\"]}),/*#__PURE__*/_jsxs(\"button\",{onClick:()=>setDark(!dark),\"aria-pressed\":dark,style:{...btnReset,...T.label,fontSize:15,height:44,display:\"inline-flex\",alignItems:\"center\",gap:S[2]},children:[/*#__PURE__*/_jsx(ContrastIcon,{}),dark?\"Light\":\"Dark\"]})]})]})]});}// Pied de page commun à toutes les pages : e-mail, LinkedIn, CV, mention.\nexport function SiteFooter(props){const P=palette(props.dark);const email=props.email||SITE_LINKS.email;const link={...T.label,color:P.ink,textDecoration:\"none\",minHeight:44,display:\"inline-flex\",alignItems:\"center\"};return /*#__PURE__*/_jsxs(\"footer\",{className:\"mh-footer\",style:{marginTop:props.card?0:DS.space[9],borderTop:props.card?\"none\":`1px solid ${P.line}`,background:props.card?P.panel:undefined,borderRadius:props.card?DS.layout.radius:undefined,padding:props.card?`${DS.space[3]}px ${DS.space[5]}px`:`${DS.space[2]}px 0 0`,display:\"flex\",flexWrap:\"wrap\",justifyContent:\"space-between\",alignItems:\"center\",gap:`0 ${DS.space[5]}px`,color:P.ink,...props.style},children:[/*#__PURE__*/_jsxs(\"nav\",{\"aria-label\":\"Contact\",style:{display:\"flex\",flexWrap:\"wrap\",gap:`0 ${DS.space[5]}px`},children:[/*#__PURE__*/_jsxs(\"a\",{href:`mailto:${email}`,className:\"mh-link\",style:link,children:[email,\" ↗\"]}),/*#__PURE__*/_jsx(\"a\",{href:SITE_LINKS.linkedin,target:\"_blank\",rel:\"noopener noreferrer\",className:\"mh-link\",style:link,children:\"LinkedIn ↗\"}),/*#__PURE__*/_jsx(\"a\",{href:\"/journal\",className:\"mh-link\",style:link,children:\"Journal\"}),SITE_LINKS.cv&&/*#__PURE__*/_jsx(\"a\",{href:SITE_LINKS.cv,target:\"_blank\",rel:\"noopener noreferrer\",className:\"mh-link\",style:link,children:\"CV (PDF) ↓\"})]}),/*#__PURE__*/_jsx(\"span\",{style:{...T.label,color:P.muted,minHeight:44,display:\"inline-flex\",alignItems:\"center\"},children:\"\\xa9 2026 Mark Haedo Martinez\"})]});}// ---------------------------------------------------------------------------\n// Effets signature : rideau de couleur, trait de graphite, loupe, intro,\n// raccourcis clavier. Tous respectent « réduire les animations ».\n// ---------------------------------------------------------------------------\nexport function reducedMotion(){return typeof window!==\"undefined\"&&!!window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;}export function finePointer(){return typeof window!==\"undefined\"&&!!window.matchMedia&&window.matchMedia(\"(hover: hover) and (pointer: fine)\").matches;}// Teinte d'un visuel : moyenne pondérée par la saturation (la couleur dominante, pas le gris)\nfunction hueSat(r,g,b){const R=r/255,G=g/255,B=b/255;const mx=Math.max(R,G,B),mn=Math.min(R,G,B);const l=(mx+mn)/2;const d=mx-mn;let h=0;let s=0;if(d>0){s=d/(1-Math.abs(2*l-1));if(mx===R)h=(G-B)/d%6;else if(mx===G)h=(B-R)/d+2;else h=(R-G)/d+4;h*=60;if(h<0)h+=360;}return[Math.round(h),s,l];}// Version très claire (panneau gauche des pages projet, rideau en mode clair)\nexport function pastelFrom(r,g,b){const[h,s]=hueSat(r,g,b);if(s<.1)return\"hsl(30, 18%, 94%)\";return`hsl(${h}, ${Math.round(Math.min(55,Math.max(22,s*60)))}%, 92%)`;}// Version très sombre (rideau en mode sombre)\nexport function deepFrom(r,g,b){const[h,s]=hueSat(r,g,b);if(s<.1)return DS.dark.panel;return`hsl(${h}, ${Math.round(Math.min(34,Math.max(12,s*40)))}%, 11%)`;}const AVG={};export function averageColor(src){if(!src||typeof window===\"undefined\")return Promise.resolve(null);if(AVG[src])return AVG[src];AVG[src]=new Promise(res=>{const im=new Image;im.crossOrigin=\"anonymous\";im.decoding=\"async\";im.onload=()=>{try{const c=document.createElement(\"canvas\");c.width=c.height=24;const x=c.getContext(\"2d\");if(!x)return res(null);x.drawImage(im,0,0,24,24);const d=x.getImageData(0,0,24,24).data;let r=0,g=0,b=0,w=0;for(let i=0;i<d.length;i+=4){const mx=Math.max(d[i],d[i+1],d[i+2]);const mn=Math.min(d[i],d[i+1],d[i+2]);const wt=.15+(mx-mn)/255;r+=d[i]*wt;g+=d[i+1]*wt;b+=d[i+2]*wt;w+=wt;}res([r/w,g/w,b/w]);}catch{res(null);}};im.onerror=()=>res(null);im.src=imgSrc(src,512);});return AVG[src];}export function tintFor(rgb,dark,fallback){if(!rgb)return fallback;return dark?deepFrom(rgb[0],rgb[1],rgb[2]):pastelFrom(rgb[0],rgb[1],rgb[2]);}// Rideau : un aplat à la couleur du projet monte depuis le bas, puis la page\n// suivante remonte par-dessus (voir PRE_CSS / PRE_JS). « keep » : l'image\n// cliquée reste au-dessus du rideau et devient l'image principale de la page.\nexport function curtainTo(href,color,keep){if(typeof window===\"undefined\"||!href)return;const go=()=>{window.location.href=href;};const body=document.body;if(reducedMotion()||!body||!body.animate)return go();try{window.sessionStorage.setItem(\"mh-curtain\",String(Date.now()));}catch{}const Z=2147483e3;const veil=document.createElement(\"div\");veil.setAttribute(\"aria-hidden\",\"true\");veil.style.cssText=`position:fixed;inset:0;z-index:${Z};background:${color};clip-path:inset(100% 0 0 0);pointer-events:auto`;body.appendChild(veil);let clone=null;let keptName=\"\";if(keep){const r=keep.getBoundingClientRect();if(r.width>0&&r.bottom>0&&r.top<window.innerHeight){clone=keep.cloneNode(true);const cs=getComputedStyle(keep);clone.style.cssText+=`;position:fixed;left:${r.left}px;top:${r.top}px;width:${r.width}px;height:${r.height}px;margin:0;transform:none;translate:none;scale:none;rotate:none;z-index:${Z+1};border-radius:${cs.borderRadius};overflow:hidden;pointer-events:none;flex:none;opacity:1;transition:none`;keptName=keep.style.viewTransitionName||\"\";keep.style.viewTransitionName=\"none\";clone.style.viewTransitionName=\"mh-hero\";body.appendChild(clone);}}const a=veil.animate([{clipPath:\"inset(100% 0 0 0)\"},{clipPath:\"inset(0 0 0 0)\"}],{duration:560,easing:\"cubic-bezier(0.7, 0, 0.2, 1)\",fill:\"forwards\"});let done=false;const fin=()=>{if(done)return;done=true;go();};a.onfinish=fin;setTimeout(fin,800);// Retour arrière (cache de page) : on enlève le rideau\nconst back=e=>{if(!e.persisted)return;veil.remove();if(clone)clone.remove();if(keep)keep.style.viewTransitionName=keptName;};window.addEventListener(\"pageshow\",back,{once:true});}// Script lu pendant le chargement (avant le premier affichage) :\n// - « mh-seen » : l'intro a déjà été vue dans cette session ;\n// - type de transition « curtain » quand on arrive par un rideau.\nexport const PRE_JS=`(function(){try{var d=document.documentElement;if(sessionStorage.getItem(\"mh-intro\"))d.classList.add(\"mh-seen\");if(window.__mhPre)return;window.__mhPre=1;addEventListener(\"pagereveal\",function(e){try{var t=+sessionStorage.getItem(\"mh-curtain\")||0;sessionStorage.removeItem(\"mh-curtain\");if(e.viewTransition&&Date.now()-t<4000)e.viewTransition.types.add(\"curtain\")}catch(_){}})}catch(_){}})()`;// Trait de graphite dessiné à la main (procédural, texture crayon), qui se\n// trace quand il entre dans l'écran.\nfunction rng(seed){let s=Math.abs(Math.floor(seed*9973))%233280||1;return()=>(s=(s*9301+49297)%233280)/233280;}// Trait en forme pleine (pression du crayon : attaque fine, plein au milieu, levée)\nfunction strokeShape(w,h,seed,second){const r=rng(seed);const k=Math.min(1,w/280);const mid=h/2;const x0=second?w*(.08+r()*.12):1+r()*3;const x1=second?w*(.82+r()*.16):w-1-r()*4;const n=Math.max(4,Math.round((x1-x0)/22));const tilt=(r()-.35)*4.4*k;const sag=(r()-.5)*4.6*k;const off=second?1.8+r()*1.6:0;const W0=(second?1.7:2.7)*(.75+.25*k);const top=[];const bot=[];for(let i=0;i<=n;i++){const t=i/n;const x=x0+(x1-x0)*t;const y=mid+off+tilt*(t-.5)*2+sag*Math.sin(Math.PI*t)+(r()-.5)*.7;// pression : monte vite, plateau irrégulier, s'affine à la levée\nconst p=Math.min(1,t/.08)*Math.min(1,(1-t)/.22)*(.8+r()*.35);const hw=Math.max(.25,W0/2*(.35+.65*p));top.push([x,y-hw]);bot.push([x,y+hw]);}const pts=[...top,...bot.reverse()];const f=q=>`${q[0].toFixed(1)} ${q[1].toFixed(2)}`;let d=`M${f(pts[0])}`;for(let i=1;i<pts.length-1;i++){const m=[(pts[i][0]+pts[i+1][0])/2,(pts[i][1]+pts[i+1][1])/2];d+=` Q${f(pts[i])} ${f(m)}`;}return d+` L${f(pts[pts.length-1])} Z`;}export function GraphiteLine(props){const{width=\"100%\",seed=1,color=\"currentColor\",delay=0,style}=props;const ref=React.useRef(null);const[w,setW]=useState(0);const[on,setOn]=useState(false);useIsoLayoutEffect(()=>{const el=ref.current;if(!el)return;setW(Math.round(el.getBoundingClientRect().width));if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(e=>setW(Math.round(e[0].contentRect.width)));ro.observe(el);return()=>ro.disconnect();},[]);useEffect(()=>{const el=ref.current;if(!el)return;if(reducedMotion()||typeof IntersectionObserver===\"undefined\"){setOn(true);return;}const io=new IntersectionObserver(es=>{if(es.some(e=>e.isIntersecting)){setOn(true);io.disconnect();}},{rootMargin:\"0px 0px -12% 0px\"});io.observe(el);return()=>io.disconnect();},[]);const H=14;const d1=React.useMemo(()=>w?strokeShape(w,H,seed,false):\"\",[w,seed]);const d2=React.useMemo(()=>w?strokeShape(w,H,seed+7,true):\"\",[w,seed]);const uid=React.useMemo(()=>Math.random().toString(36).slice(2,8),[]);const ease=\"cubic-bezier(0.65, 0, 0.25, 1)\";const dur=Math.min(1.3,.6+(w||0)/900);const sweep=dl=>({transform:on?\"scaleX(1)\":\"scaleX(0)\",transformOrigin:\"0 0\",transition:`transform ${dur}s ${ease} ${dl}s`});return /*#__PURE__*/_jsx(\"span\",{ref:ref,\"aria-hidden\":\"true\",style:{display:\"block\",width,maxWidth:\"100%\",height:H,color,pointerEvents:\"none\",...style},children:w>0&&/*#__PURE__*/_jsxs(\"svg\",{width:w,height:H,viewBox:`0 0 ${w} ${H}`,style:{display:\"block\",overflow:\"visible\"},children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsxs(\"filter\",{id:`g${uid}`,x:\"-2%\",y:\"-80%\",width:\"104%\",height:\"260%\",children:[/*#__PURE__*/_jsx(\"feTurbulence\",{type:\"fractalNoise\",baseFrequency:\"0.9\",numOctaves:\"2\",seed:Math.round(seed*5)%50,result:\"n\"}),/*#__PURE__*/_jsx(\"feColorMatrix\",{in:\"n\",type:\"matrix\",values:\"0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  2.6 0 0 0 -0.45\",result:\"m\"}),/*#__PURE__*/_jsx(\"feComposite\",{in:\"SourceGraphic\",in2:\"m\",operator:\"in\",result:\"g\"}),/*#__PURE__*/_jsx(\"feDisplacementMap\",{in:\"g\",in2:\"n\",scale:\"1.2\",xChannelSelector:\"R\",yChannelSelector:\"G\"})]}),/*#__PURE__*/_jsx(\"clipPath\",{id:`a${uid}`,children:/*#__PURE__*/_jsx(\"rect\",{x:\"-4\",y:\"-10\",width:w+8,height:H+20,style:sweep(delay)})}),/*#__PURE__*/_jsx(\"clipPath\",{id:`b${uid}`,children:/*#__PURE__*/_jsx(\"rect\",{x:\"-4\",y:\"-10\",width:w+8,height:H+20,style:sweep(delay+dur*.45)})})]}),/*#__PURE__*/_jsxs(\"g\",{filter:`url(#g${uid})`,fill:\"currentColor\",children:[/*#__PURE__*/_jsx(\"path\",{d:d1,clipPath:`url(#a${uid})`,opacity:.9}),/*#__PURE__*/_jsx(\"path\",{d:d2,clipPath:`url(#b${uid})`,opacity:.7})]})]})});}// Loupe : posée dans un conteneur positionné qui contient une image ; une\n// lentille ronde suit la souris et grossit l'image (souris uniquement). La\n// lentille reste découpée dans les limites de l'image.\nexport function Loupe(props){const{src,zoom=2.2,size=180}=props;const ref=React.useRef(null);const lensRef=React.useRef(null);useEffect(()=>{const box=ref.current;const lens=lensRef.current;const host=box?.parentElement;if(!box||!lens||!host||!src||!finePointer())return;let primed=false;const hide=()=>{box.style.opacity=\"0\";};const move=e=>{if(e.pointerType&&e.pointerType!==\"mouse\")return;const img=host.querySelector(\"img\");if(!img)return;const r=img.getBoundingClientRect();const x=e.clientX-r.left;const y=e.clientY-r.top;if(x<0||y<0||x>r.width||y>r.height)return hide();if(!primed){primed=true;lens.style.backgroundImage=`url(\"${imgSrc(src,2400)}\"), url(\"${img.currentSrc||img.src}\")`;}// Contenu réellement affiché (object-fit : cover ou contain)\nconst nw=img.naturalWidth||r.width;const nh=img.naturalHeight||r.height;const cs=getComputedStyle(img);let cw=r.width,ch=r.height;if(cs.objectFit===\"cover\"||cs.objectFit===\"contain\"){const k=cs.objectFit===\"cover\"?Math.max(r.width/nw,r.height/nh):Math.min(r.width/nw,r.height/nh);cw=nw*k;ch=nh*k;}const ox=(r.width-cw)/2;const oy=(r.height-ch)/2;const hr=host.getBoundingClientRect();// Cadre = l'image (même arrondi) ; la lentille se déplace dedans\nbox.style.left=`${r.left-hr.left}px`;box.style.top=`${r.top-hr.top}px`;box.style.width=`${r.width}px`;box.style.height=`${r.height}px`;box.style.borderRadius=cs.borderRadius;box.style.opacity=\"1\";lens.style.transform=`translate(${x-size/2}px, ${y-size/2}px)`;lens.style.backgroundSize=`${cw*zoom}px ${ch*zoom}px, ${cw*zoom}px ${ch*zoom}px`;const bx=-((x-ox)*zoom-size/2);const by=-((y-oy)*zoom-size/2);lens.style.backgroundPosition=`${bx}px ${by}px, ${bx}px ${by}px`;};host.addEventListener(\"pointermove\",move);host.addEventListener(\"pointerleave\",hide);window.addEventListener(\"scroll\",hide,{passive:true});return()=>{host.removeEventListener(\"pointermove\",move);host.removeEventListener(\"pointerleave\",hide);window.removeEventListener(\"scroll\",hide);};},[src,zoom,size]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,\"aria-hidden\":\"true\",style:{position:\"absolute\",left:0,top:0,width:0,height:0,zIndex:3,overflow:\"hidden\",pointerEvents:\"none\",opacity:0,transition:\"opacity .18s ease\"},children:/*#__PURE__*/_jsx(\"div\",{ref:lensRef,style:{position:\"absolute\",left:0,top:0,width:size,height:size,borderRadius:\"50%\",backgroundColor:\"#fff\",backgroundRepeat:\"no-repeat\",boxShadow:\"0 0 0 1px rgba(255,255,255,.85), 0 14px 36px rgba(0,0,0,.28)\",willChange:\"transform\"}})});}// Intro au premier chargement (une fois par session) : la grille se trace,\n// les lettres du nom arrivent de colonnes éparses et se placent, puis le\n// voile remonte. 100 % CSS (visible avant même le chargement du JS).\nconst INTRO_CSS=`.mh-intro{position:fixed;inset:0;z-index:2147482000;background:#0B0B0B;color:#fff;pointer-events:none;--c:calc((100vw - 48px) / 12);animation:mh-i-out .75s cubic-bezier(.7,0,.2,1) 1.95s both}\n.mh-intro.mh-skip{animation:mh-i-out2 .45s cubic-bezier(.7,0,.2,1) 0s both}\nhtml.mh-seen .mh-intro{display:none}\n@media (prefers-reduced-motion: reduce){.mh-intro{display:none}}\n.mh-intro i{position:absolute;top:0;bottom:0;width:1px;background:rgba(255,255,255,.12);transform-origin:50% 0;animation:mh-i-line .8s cubic-bezier(.7,0,.2,1) both}\n.mh-intro b{display:inline-block;font-weight:inherit;animation:mh-i-l 1.15s cubic-bezier(.7,0,.2,1) both}\n.mh-intro u{position:absolute;left:24px;right:24px;height:1px;background:rgba(255,255,255,.5);transform-origin:0 50%;text-decoration:none;animation:mh-i-rule .9s cubic-bezier(.7,0,.2,1) .95s both}\n.mh-intro small{animation:mh-i-fade .5s ease 1s both}\n@keyframes mh-i-line{from{transform:scaleY(0)}to{transform:scaleY(1)}}\n@keyframes mh-i-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n@keyframes mh-i-fade{from{opacity:0}to{opacity:1}}\n@keyframes mh-i-l{0%{opacity:0;transform:translate(calc(var(--dx) * var(--c)),var(--dy))}28%{opacity:1;transform:translate(calc(var(--dx) * var(--c)),var(--dy))}100%{opacity:1;transform:none}}\n@keyframes mh-i-out{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 100% 0);visibility:hidden}}\n@keyframes mh-i-out2{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 100% 0);visibility:hidden}}`;export function Intro(props){const{name=\"Mark Haedo\",left=\"Art director and digital creative lead\",right=\"Lausanne, Switzerland\"}=props;const[on,setOn]=useState(true);const ref=React.useRef(null);useEffect(()=>{let seen=false;try{seen=!!window.sessionStorage.getItem(\"mh-intro\");window.sessionStorage.setItem(\"mh-intro\",\"1\");}catch{}if(seen||reducedMotion()){setOn(false);return;}const end=()=>setOn(false);const t=setTimeout(end,2900);let t2=null;const skip=()=>{if(ref.current)ref.current.classList.add(\"mh-skip\");clearTimeout(t);t2=setTimeout(end,500);off();};const evs=[\"keydown\",\"pointerdown\",\"wheel\",\"touchstart\"];const off=()=>evs.forEach(ev=>window.removeEventListener(ev,skip));evs.forEach(ev=>window.addEventListener(ev,skip,{passive:true}));return()=>{clearTimeout(t);clearTimeout(t2);off();};},[]);if(!on)return null;const chars=Array.from(name);return /*#__PURE__*/_jsxs(\"div\",{ref:ref,className:\"mh-intro\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"style\",{children:INTRO_CSS}),/*#__PURE__*/_jsx(\"script\",{dangerouslySetInnerHTML:{__html:PRE_JS}}),Array.from({length:13}).map((_,k)=>/*#__PURE__*/_jsx(\"i\",{style:{left:`calc(24px + ${k} * var(--c))`,animationDelay:`${k*.03}s`}},k)),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:24,right:24,top:\"50%\",transform:\"translateY(-55%)\",fontFamily:DISPLAY,fontWeight:600,fontSize:\"clamp(56px, 12.5vw, 240px)\",lineHeight:.9,letterSpacing:\"-0.05em\",whiteSpace:\"nowrap\"},children:chars.map((ch,i)=>{// Décalage en colonnes, borné pour que chaque lettre reste dans l'écran\nconst n=chars.length;const lo=-Math.floor(i/n*8);const hi=Math.floor((n-1-i)/n*8)+3;const dx=lo+(i*7+3)%(hi-lo+1);const dy=((i*3+1)%3-1)*.55;return /*#__PURE__*/_jsx(\"b\",{style:{[\"--dx\"]:dx,[\"--dy\"]:`${dy}em`,animationDelay:`${.22+i*.045}s`,width:ch===\" \"?\"0.26em\":undefined},children:ch===\" \"?\"\\xa0\":ch},i);})}),/*#__PURE__*/_jsx(\"u\",{style:{top:\"calc(50% + clamp(34px, 7vw, 132px))\"}}),/*#__PURE__*/_jsxs(\"small\",{style:{...T.label,position:\"absolute\",left:24,right:24,bottom:24,display:\"flex\",justifyContent:\"space-between\",color:\"rgba(255,255,255,.66)\",fontSize:13},children:[/*#__PURE__*/_jsx(\"span\",{children:left}),/*#__PURE__*/_jsx(\"span\",{children:right})]})]});}// Raccourcis clavier : ← → projet précédent / suivant, I index, H accueil,\n// D mode sombre, ? aide. Ignorés dans les champs de saisie et sous une fenêtre.\nexport function Shortcuts(props){const{onPrev,onNext,onIndex,home,dark,setDark,prevLabel=\"Previous / next project\"}=props;const[open,setOpen]=useState(false);const closeRef=React.useRef(null);const P=React.useRef(props);P.current=props;useEffect(()=>{if(typeof window===\"undefined\")return;const onKey=e=>{if(e.metaKey||e.ctrlKey||e.altKey)return;const t=e.target;if(t&&(t.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName)))return;const p=P.current;if(e.key===\"?\"||e.key===\"/\"&&e.shiftKey){e.preventDefault();setOpen(o=>!o);return;}if(e.key===\"Escape\"){setOpen(false);return;}// Une autre fenêtre (visionneuse, menu) a la main\nif(document.querySelector(\"[role=dialog][aria-modal=true]:not(.mh-keys)\"))return;const k=e.key.toLowerCase();if(e.key===\"ArrowLeft\"&&p.onPrev){e.preventDefault();setOpen(false);p.onPrev();}else if(e.key===\"ArrowRight\"&&p.onNext){e.preventDefault();setOpen(false);p.onNext();}else if(k===\"i\"&&p.onIndex){setOpen(false);p.onIndex();}else if(k===\"h\"&&!p.home){window.location.href=\"/\";}else if(k===\"d\"){const w=window;w.__mhClick={x:window.innerWidth-60,y:40};p.setDark(!p.dark);}};const onOpen=()=>setOpen(true);window.addEventListener(\"keydown\",onKey);window.addEventListener(\"mh-keys\",onOpen);return()=>{window.removeEventListener(\"keydown\",onKey);window.removeEventListener(\"mh-keys\",onOpen);};},[]);useEffect(()=>{if(open&&closeRef.current)closeRef.current.focus();},[open]);if(!open)return null;const rows=[];if(onPrev||onNext)rows.push([[\"←\",\"→\"],prevLabel]);if(home)rows.push([[\"↑\",\"↓\"],\"Scroll the wheel\"]);if(onIndex)rows.push([[\"I\"],\"Index / wheel view\"]);if(!home)rows.push([[\"H\"],\"Home\"]);rows.push([[\"D\"],dark?\"Light mode\":\"Dark mode\"]);rows.push([[\"?\"],\"Show or hide shortcuts\"]);rows.push([[\"Esc\"],\"Close\"]);const kbd={...T.label,fontFamily:DISPLAY,minWidth:28,height:28,padding:\"0 8px\",boxSizing:\"border-box\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:6,border:\"1px solid rgba(255,255,255,.22)\",color:\"#fff\"};return /*#__PURE__*/_jsxs(\"div\",{className:\"mh-keys mh-root\",role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Keyboard shortcuts\",onClick:()=>setOpen(false),style:{position:\"fixed\",inset:0,zIndex:2147481e3,background:\"rgba(0,0,0,.45)\",backdropFilter:\"blur(6px)\",WebkitBackdropFilter:\"blur(6px)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:16,animation:`mh-keys-in ${DS.motion.fast} ease both`},children:[/*#__PURE__*/_jsx(\"style\",{children:`@keyframes mh-keys-in{from{opacity:0}to{opacity:1}}`}),/*#__PURE__*/_jsxs(\"div\",{onClick:e=>e.stopPropagation(),style:{width:\"min(440px, 100%)\",background:\"#0B0B0B\",color:\"#fff\",borderRadius:DS.layout.radius,padding:DS.space[6],boxSizing:\"border-box\",boxShadow:\"0 30px 80px rgba(0,0,0,.35)\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:DS.space[4]},children:[/*#__PURE__*/_jsx(\"span\",{style:{...T.h3,color:\"#fff\"},children:\"Keyboard shortcuts\"}),/*#__PURE__*/_jsx(\"button\",{ref:closeRef,onClick:()=>setOpen(false),style:{...T.label,background:\"none\",border:0,color:\"rgba(255,255,255,.66)\",cursor:\"pointer\",minHeight:44,padding:\"0 4px\"},children:\"Close\"})]}),/*#__PURE__*/_jsx(\"ul\",{style:{listStyle:\"none\",margin:0,padding:0},children:rows.map(([keys,label])=>/*#__PURE__*/_jsxs(\"li\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",gap:DS.space[4],padding:`${DS.space[3]}px 0`,borderTop:\"1px solid rgba(255,255,255,.12)\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{...T.body,color:\"rgba(255,255,255,.86)\"},children:label}),/*#__PURE__*/_jsx(\"span\",{style:{display:\"flex\",gap:6},children:keys.map(k=>/*#__PURE__*/_jsx(\"kbd\",{style:kbd,children:k},k))})]},label))})]})]});}export function Lightbox(props){const{images=[],index,onClose,onIndex}=props;const n=images.length;const open=index!==null&&n>0;const i=open?Math.max(0,Math.min(n-1,index)):0;const go=d=>onIndex((i+d+n)%n);useEffect(()=>{if(!open||typeof window===\"undefined\")return;const onKey=e=>{if(e.key===\"Escape\")onClose();if(e.key===\"ArrowRight\")go(1);if(e.key===\"ArrowLeft\")go(-1);};const prev=document.documentElement.style.overflow;document.documentElement.style.overflow=\"hidden\";window.addEventListener(\"keydown\",onKey);return()=>{document.documentElement.style.overflow=prev;window.removeEventListener(\"keydown\",onKey);};},[open,i,n]);const[tx,setTx]=useState(null);if(!open)return null;const im=images[i];const btn={...T.nav,font:\"inherit\",fontFamily:DISPLAY,fontWeight:500,color:DS.color.onImage,background:\"none\",border:0,padding:\"0 4px\",minHeight:44,cursor:\"pointer\",letterSpacing:\"0.02em\"};return /*#__PURE__*/_jsxs(\"div\",{role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":im.alt||\"Image\",className:\"mh-root\",onTouchStart:e=>setTx(e.touches[0].clientX),onTouchEnd:e=>{if(tx===null)return;const dx=e.changedTouches[0].clientX-tx;if(Math.abs(dx)>50)go(dx<0?1:-1);setTx(null);},style:{position:\"fixed\",inset:0,zIndex:1e3,background:DS.dark.page,display:\"grid\",gridTemplateRows:\"minmax(0,1fr) auto\",padding:\"4vh 4vw 0\",boxSizing:\"border-box\",fontFamily:DISPLAY,animation:`mh-lb-in ${DS.motion.fast} ease both`},children:[/*#__PURE__*/_jsx(\"style\",{children:`@keyframes mh-lb-in{from{opacity:0}to{opacity:1}}@keyframes mh-lb-img{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}`}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",minHeight:0},onClick:onClose,children:[/*#__PURE__*/_jsx(\"img\",{src:imgSrc(im.src,2400),srcSet:im.srcSet,sizes:\"92vw\",alt:im.alt||\"\",decoding:\"async\",onClick:e=>e.stopPropagation(),style:{position:\"absolute\",inset:0,margin:\"auto\",maxWidth:\"100%\",maxHeight:\"100%\",width:\"auto\",height:\"auto\",objectFit:\"contain\",display:\"block\",animation:`mh-lb-img ${DS.motion.base} ${DS.motion.out} both`}},i),images[i+1]&&/*#__PURE__*/_jsx(\"link\",{rel:\"prefetch\",as:\"image\",href:imgSrc(images[i+1].src,2400)})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"grid\",gridTemplateColumns:\"1fr auto 1fr\",alignItems:\"center\",padding:\"2.5vh 2vw 3vh\",color:DS.color.onImage},children:[/*#__PURE__*/_jsxs(\"span\",{style:{...T.nav,fontVariantNumeric:\"tabular-nums\"},children:[String(i+1).padStart(2,\"0\"),/*#__PURE__*/_jsxs(\"span\",{style:{color:DS.color.onImageMuted},children:[\"/\",String(n).padStart(2,\"0\")]})]}),/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-flex\",alignItems:\"center\",gap:DS.space[4]},children:n>1&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{style:btn,onClick:()=>go(-1),\"aria-label\":\"Previous image\",className:\"mh-link\",children:\"Prev\"}),/*#__PURE__*/_jsx(\"span\",{style:dot(6,DS.color.onImage)}),/*#__PURE__*/_jsx(\"button\",{style:btn,onClick:()=>go(1),\"aria-label\":\"Next image\",className:\"mh-link\",children:\"Next\"})]})}),/*#__PURE__*/_jsx(\"span\",{style:{textAlign:\"right\"},children:/*#__PURE__*/_jsx(\"button\",{style:btn,onClick:onClose,className:\"mh-link\",children:\"Close\"})})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"SITE_LINKS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PANEL_WIDTH\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DARK_PAGE\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paintPage\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"T\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BAR_H\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PRE_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"seriesUrls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"soundOn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PRE_JS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tintFor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SITE_NAV\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SWITZER_HREF\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SiteFooter\":{\"type\":\"reactComponent\",\"name\":\"SiteFooter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"MONO\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSound\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"reducedMotion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONTS_HREF\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Intro\":{\"type\":\"reactComponent\",\"name\":\"Intro\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"playTick\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsoLayoutEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"pastelFrom\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"curtainTo\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"imgSrc\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"deepFrom\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ART_SERIES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContrastIcon\":{\"type\":\"reactComponent\",\"name\":\"ContrastIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"finePointer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONT_VARS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Loupe\":{\"type\":\"reactComponent\",\"name\":\"Loupe\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"panelPad\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useGoogleFonts\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useDarkMode\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"chip\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SANS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"palette\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LightboxImage\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DISPLAY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePhone\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ThemeToggle\":{\"type\":\"reactComponent\",\"name\":\"ThemeToggle\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"MobileBar\":{\"type\":\"reactComponent\",\"name\":\"MobileBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Shortcuts\":{\"type\":\"reactComponent\",\"name\":\"Shortcuts\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"dot\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GraphiteLine\":{\"type\":\"reactComponent\",\"name\":\"GraphiteLine\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"averageColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"slugify\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"heroUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Lightbox\":{\"type\":\"reactComponent\",\"name\":\"Lightbox\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"PHONE_MAX\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ART_ORDER\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Tokens.map"],"mappings":"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"}