{"version":3,"file":"shared-lib.BAZ2eIsi.mjs","names":["useRef","useMemo","_Fragment","useState","useRef","useMemo","_Fragment","_Fragment","React.Fragment","useState","useRef","useMemo","_jsx","c","__esmMin","pe","init_npm_react_18_3_1","init_ssg_sandbox_shims","window","x","init_npm_react_dom_18_3_1","l","_e","Ha","p","c","init_jsx_runtime","ce","de","init_framer_BWFVvmND","RenderTarget","addPropertyControls","ControlType","CSS","init_PfStyles","Card","src","project","cardRef","onNav","href","onHover","imgRef","position","i","Carousel","cards","imgs","list","items","out","raf","current","scroll","layout","H","getHeight","total","el","y","img","shift","clamp","tick","lerp","frozen","t","hrefOf","useDefilement","actif","root","previous","touchY","onWheel","menuOuvert","onTouchStart","onTouchMove","MOBILE_QUERY","slugify","CADRAGES","init_PfBlocs","s","fx","fy","b","a","v","TITRES","TEXTE_APROPOS","surAbout","LIGNE_PARCOURS","REGLAGES","init_PfReglages","Entete","isCanvas","nom","menuOpen","onOpen","mobile","libelleMenuMobile","libelleMenu","lienApropos","libelleApropos","lienInstagram","libelleInstagram","Menu","menuIndex","setMenuIndex","menuLinks","libelleTout","base","projets","onClose","heroImage","heroFit","heroPosition","useCurseur","tx","ty","onMove","cursorRef","init_PfNavigation","petiteImage","image","useRebond","box","zone","liste","dx","VITESSE_REBOND","dy","index","last","dt","maxX","maxY","choc","PageProjet","rebond","pied","couverture","projet","medias","video","imagesRebond","texte","suivant","hrefSuivant","libelleSuivant","email","lieu","init_PfProjet","useLogoAnime","ref","W","logoW","logoH","ox","oy","cx","cy","vx","vitesse","vy","avant","measure","style","padX","padY","boxW","boxH","ratio","ANCRE_X","ANCRE_Y","now","angle","dureeTour","cos","sin","gauche","droite","haut","bas","CONTOUR","px","py","observateur","marge","Lignes","lien","ligne","partie","Portfolio","lieuRegle","props","ANCIENNE_MENTION","MENTION","mounted","setMounted","setMobile","setMenuOpen","leaving","setLeaving","introDone","setIntroDone","cursorOn","setCursorOn","slug","setSlug","topRef","logoRef","menuOpenRef","cheminProjets","indexProjet","vue","affichage","imageFixe","focusFixeX","focusFixeY","mq","update","onShow","onKey","on","getTopHeight","getGridHeight","columns","col","ajustementFixe","heroPadding","margeFixe","margeAccueil","MARGE_ORDINATEUR","paddingAccueil","animationLogo","dureeLogo","baladeLogo","header","chrome","libelleVoir","stack","fondFixe","description","c$1","texteApropos","libelleContact","libelleClients","clients","libelleServices","services","titre","libelleExperience","experiences","libelleFormation","formations","lignes","init_Portfolio","metadata","init_siteMetadata"],"sources":["https:/framerusercontent.com/modules/hbiOkPXQsJbYiUiPj1un/1YS7LG61leaknAhFZstV/PfStyles.js","https:/framerusercontent.com/modules/CyMDrpUxef4MMNygjhsh/j5q7kdZzZDqZq2EovE1B/PfBlocs.js","https:/framerusercontent.com/modules/laMxGaJv4Ws93YyJPAH6/vTyEnpnQfUJ8REuL4v0S/PfReglages.js","https:/framerusercontent.com/modules/Aj6hRabY3XwCUdrSnABC/gFiyMw8UJXSNJFEY6O8A/PfNavigation.js","https:/framerusercontent.com/modules/tV3VfzyMLbdzBFNeuuS2/OSM16HWZyshwiwlM8uHX/PfProjet.js","https:/framerusercontent.com/modules/QfRWunKvyFmJv4KsnJVB/tYVlmSzj3lPYsp7ByXdG/Portfolio.js","https:/framerusercontent.com/modules/iyGnPbcdRl2k8DrnYqLF/8stqaLIZ3q9WLU5aiJ7n/siteMetadata.js"],"sourcesContent":["// ÉTAPE 1 — Toute l'apparence du site : typographie, grille, animations.\nexport const CSS=`\n@import url(\"https://fonts.googleapis.com/css2?family=Archivo:wght@500&display=swap\");\n\n.pf-root, .pf-header, .pf-menu, .pf-cursor, .pf-mobile-name {\n  --pf-margin: 20px;\n  --pf-gutter: 20px;\n  --pf-col: calc((100vw - var(--pf-margin) * 2 - var(--pf-gutter) * 9) / 10);\n  --pf-big: clamp(30px, 3vw, 40px);\n  --pf-white: #fafafa;\n  --pf-black: #0a0a0a;\n  font-family: Archivo, \"Helvetica Neue\", Arial, sans-serif;\n  font-weight: 500;\n  text-transform: uppercase;\n  -webkit-font-smoothing: antialiased;\n}\n.pf-root, .pf-header, .pf-menu, .pf-root *, .pf-header *, .pf-menu * { box-sizing: border-box; margin: 0; }\n.pf-root { position: relative; width: 100%; height: 100%; min-height: 100%; overflow: hidden; background: var(--pf-white); isolation: isolate; }\n.pf-root a, .pf-header a, .pf-menu a { color: inherit; text-decoration: none; }\n.pf-entete { background: transparent; pointer-events: none; }\n\n/* Accueil */\n.pf-accueil { display: flex; flex-direction: column; height: 100dvh; }\n.pf-top { position: relative; flex: 1 1 auto; min-height: 0; width: 100%; background: var(--pf-black); }\n.pf-hero { display: block; width: calc(var(--pf-col) * 6 + var(--pf-gutter) * 5.5 + var(--pf-margin)); height: 100%; object-fit: cover; user-select: none; }\n.pf-side { position: absolute; top: 0; right: 0; bottom: 0; width: calc(var(--pf-col) * 4 + var(--pf-gutter) * 3.5 + var(--pf-margin)); overflow: hidden; background: var(--pf-white); }\n.pf-description { position: relative; z-index: 2; flex-shrink: 0; padding: var(--pf-margin); color: var(--pf-white); mix-blend-mode: difference; pointer-events: none; }\n.pf-description p { width: calc(var(--pf-col) * 6 + var(--pf-gutter) * 5); font-size: var(--pf-big); line-height: 1; white-space: pre-line; overflow-wrap: normal; word-break: normal; hyphens: none; }\n\n/* Tous les projets */\n.pf-grille { display: flex; height: 100dvh; background: var(--pf-black); }\n.pf-col { position: relative; flex: 1 1 0; height: 100%; overflow: hidden; }\n\n/* \\xc0 propos */\n.pf-apropos { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); grid-template-rows: auto 1fr auto; column-gap: var(--pf-gutter); min-height: 100dvh; height: auto; padding: 53px var(--pf-margin) var(--pf-margin); color: var(--pf-black); }\n.pf-about-text { grid-column: 6 / span 3; font-size: 13px; line-height: 1.1; white-space: pre-line; }\n.pf-about-logo { grid-column: 1 / -1; align-self: center; justify-self: center; width: clamp(160px, 15vw, 260px); aspect-ratio: 1; margin: 40px 0; }\n.pf-about-logo img { display: block; width: 100%; height: 100%; }\n.pf-about-contact { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: start; }\n.pf-about-label { grid-column: 3 / span 3; font-size: 13px; line-height: 1; }\n.pf-about-links { grid-column: 6 / span 5; display: flex; flex-direction: column; align-items: flex-start; font-size: var(--pf-big); line-height: 1; overflow-wrap: anywhere; }\n.pf-about-bloc { margin-top: 100px; }\n.pf-about-liste { grid-column: 6 / span 5; font-size: 13px; line-height: 1.6; white-space: pre-line; }\n.pf-about-parcours { grid-column: 6 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: var(--pf-gutter); margin-top: 100px; }\n.pf-about-parcours .pf-about-label { margin-bottom: 24px; }\n.pf-about-item { margin-bottom: 16px; font-size: 13px; line-height: 1; }\n.pf-about-item span { display: block; color: #8a8a8a; }\n\n/* Carte */\n.pf-card { position: absolute; top: 0; left: 0; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; overflow: hidden; background: #d9d9d9; cursor: pointer; will-change: transform; }\n.pf-card-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; user-select: none; will-change: transform; }\n.pf-card-title { position: relative; z-index: 1; width: 100%; padding: 10px; color: #fff; font-size: clamp(20px, 2vw, 28px); line-height: 1; text-align: center; mix-blend-mode: difference; user-select: none; }\n.pf-hover { position: absolute; inset: 0; pointer-events: none; visibility: hidden; transition: visibility 0s linear .6s; }\n.pf-hover-strip { position: absolute; inset: 0; overflow: hidden; clip-path: inset(0 calc(100% - var(--l)) 0 var(--l)); transition: clip-path .4s cubic-bezier(.2, .7, .2, 1); }\n.pf-hover-strip img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: translate3d(0, var(--pf-shift, 0), 0) scale(1.14); }\n@media (hover: hover) and (pointer: fine) {\n  .pf-card:hover .pf-hover { visibility: visible; transition-delay: 0s; }\n  .pf-card:hover .pf-hover-strip { clip-path: inset(0 var(--r) 0 var(--l)); }\n}\n\n/* Page projet */\n.pf-root.pf-projet { height: auto; min-height: 100vh; overflow: visible; }\n.pf-projet-corps { position: relative; z-index: 1; background: var(--pf-white); }\n.pf-projet-couverture { display: block; width: 100%; height: auto; user-select: none; }\n.pf-projet-galerie { width: 50%; margin-left: auto; }\n.pf-projet-galerie img { display: block; width: 100%; height: auto; user-select: none; }\n.pf-projet-fixe { position: sticky; bottom: 0; height: 0; color: var(--pf-white); mix-blend-mode: difference; pointer-events: none; }\n.pf-projet-texte { position: absolute; bottom: var(--pf-margin); left: calc(var(--pf-margin) + (var(--pf-col) + var(--pf-gutter)) * 2); width: calc(var(--pf-col) * 3 + var(--pf-gutter) * 2); font-size: 16px; line-height: 1; white-space: pre-line; }\n.pf-projet-texte h1 { display: none; font: inherit; font-size: var(--pf-big); }\n.pf-projet-suivant { position: relative; z-index: 1; display: block; height: 100vh; overflow: hidden; background: var(--pf-black); }\n.pf-projet-suivant img, .pf-projet-voile { position: absolute; inset: 0; width: 100%; height: 100%; }\n.pf-projet-suivant img { object-fit: cover; user-select: none; }\n.pf-projet-voile { background: rgba(255, 255, 255, .5); }\n.pf-projet-suivant-texte { position: absolute; inset: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: var(--pf-margin); color: var(--pf-white); mix-blend-mode: difference; font-size: 16px; line-height: 1; }\n.pf-projet-suivant-texte strong { font-weight: inherit; font-size: var(--pf-big); text-align: right; }\n.pf-projet-pied { position: sticky; bottom: 0; z-index: 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; height: 100vh; padding: var(--pf-margin); overflow: hidden; background: var(--pf-white); color: var(--pf-black); }\n.pf-projet-rebond { position: absolute; top: 0; left: 0; width: 180px; height: 180px; object-fit: cover; user-select: none; will-change: transform; }\n.pf-projet-email { position: relative; font-size: 4.7vw; line-height: 1; overflow-wrap: anywhere; }\n.pf-projet-lieu { position: relative; flex-shrink: 0; font-size: 13px; line-height: 1; text-align: right; }\n\n/* En-t\\xeate */\n.pf-header { position: fixed; z-index: 20; top: 0; left: 0; display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); column-gap: var(--pf-gutter); width: 100%; padding: var(--pf-margin); color: var(--pf-white); mix-blend-mode: difference; font-size: 13px; line-height: 1; pointer-events: none; }\n.pf-header.is-canvas { position: absolute; }\n.pf-header a, .pf-header button { pointer-events: auto; }\n.pf-header-name { grid-column: span 2; }\n.pf-header-works { grid-column: span 3; font-size: var(--pf-big); line-height: .9; }\n.pf-header-works button { display: block; padding: 0; border: 0; background: none; color: inherit; font: inherit; line-height: inherit; text-transform: inherit; cursor: pointer; }\n.pf-header-infos { grid-column: span 5; display: flex; justify-content: space-between; }\n\n/* Menu */\n.pf-menu { position: fixed; z-index: 25; inset: 0; visibility: hidden; opacity: 0; transition: opacity .3s ease, visibility 0s linear .3s; }\n.pf-menu.is-open { visibility: visible; opacity: 1; transition: opacity .3s ease; }\n.pf-menu-bg { position: absolute; inset: 0; overflow: hidden; background: var(--pf-white); }\n.pf-menu-bg::after { content: \"\"; position: absolute; inset: 0; background: rgba(250, 250, 250, .5); }\n.pf-menu-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(5px); transform: scale(1.05); transition: opacity .35s ease; }\n.pf-menu-list { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: var(--pf-margin) var(--pf-margin) var(--pf-margin) calc(var(--pf-margin) + var(--pf-col) * 2 + var(--pf-gutter) * 2); color: var(--pf-white); mix-blend-mode: difference; font-size: var(--pf-big); line-height: .9; }\n.pf-menu-row { display: block; margin-top: -6px; padding: 6px 0 3px; overflow: hidden; border: 0; background: none; color: inherit; font: inherit; line-height: inherit; text-transform: inherit; cursor: pointer; }\n.pf-menu-row span { display: block; transform: translateY(110%); transition: transform .45s cubic-bezier(.2, .7, .2, 1); }\n.pf-menu.is-open .pf-menu-row span { transform: none; }\n\n/* Mots cliquables : le texte s'estompe au survol */\n@media (hover: hover) and (pointer: fine) {\n  .pf-header a, .pf-header-works button, .pf-about-links a, .pf-about-liste a, .pf-projet-email { transition: opacity .2s ease; }\n  .pf-menu-row span { transition: transform .45s cubic-bezier(.2, .7, .2, 1), opacity .2s ease; }\n  .pf-header a:hover, .pf-header-works button:hover, .pf-menu-row:hover span, .pf-about-links a:hover, .pf-about-liste a:hover, .pf-projet-email:hover { opacity: .6; }\n}\n\n/* \\xc9tiquette du curseur */\n.pf-cursor { position: fixed; z-index: 30; top: 0; left: 0; padding: 5px 10px; background: var(--pf-black); color: var(--pf-white); font-size: 13px; line-height: 1; pointer-events: none; clip-path: inset(0 100% 0 0); transition: clip-path .25s ease; will-change: transform, clip-path; }\n.pf-cursor.is-on { clip-path: inset(0 0 0 0); }\n@media (hover: none) { .pf-cursor { display: none; } }\n\n/* Rideau de transition */\n.pf-curtain { position: fixed; z-index: 40; top: 0; left: 0; display: flex; flex-direction: column; width: 100vw; height: 100vh; pointer-events: none; }\n.pf-curtain i { display: block; flex: 1 1 0; margin-bottom: -1px; background: var(--pf-black, #0a0a0a); }\n.pf-curtain.is-entering i { transform-origin: 50% 100%; animation: pf-open .55s cubic-bezier(.7, 0, .2, 1) .15s both; }\n.pf-curtain.is-leaving { pointer-events: auto; }\n.pf-curtain.is-leaving i { transform-origin: 50% 0; animation: pf-close .3s cubic-bezier(.7, 0, .2, 1) both; }\n@keyframes pf-open { from { transform: scaleY(1); } to { transform: scaleY(0); } }\n@keyframes pf-close { from { transform: scaleY(0); } to { transform: scaleY(1); } }\n\n/* Mobile */\n.pf-mobile-name { position: fixed; z-index: 20; top: 50%; left: 0; width: 100%; margin: 0; color: var(--pf-white); mix-blend-mode: difference; font-size: 16px; line-height: 1; text-align: center; transform: translateY(-50%); pointer-events: none; }\n.pf-mobile-name.is-top { top: 14px; font-size: 13px; transform: none; }\n.pf-root.is-mobile { display: block; height: auto; overflow: visible; }\n.is-mobile .pf-top { height: 100svh; }\n.is-mobile .pf-hero { width: 100%; }\n.is-mobile .pf-side { position: static; width: 100%; overflow: visible; }\n.is-mobile .pf-col { height: auto; overflow: visible; }\n.is-mobile .pf-card { position: relative; height: auto; aspect-ratio: 4 / 5; }\n.is-mobile .pf-card-img { transform: none; }\n.is-mobile .pf-card-title { font-size: 22px; }\n.is-mobile .pf-description { position: absolute; top: 0; left: 0; display: flex; align-items: flex-end; width: 100%; height: 100svh; padding: 10px; }\n.is-mobile .pf-description p { width: 100%; font-size: 28px; }\n.pf-root.pf-apropos.is-mobile { display: flex; flex-direction: column; min-height: 100svh; padding: 70px 10px 10px; }\n.is-mobile .pf-about-label { margin-bottom: 10px; }\n.is-mobile .pf-about-contact { display: block; }\n.is-mobile .pf-about-links { font-size: 6vw; }\n.is-mobile .pf-about-bloc { margin-top: 40px; }\n.is-mobile .pf-about-parcours { grid-template-columns: 1fr; gap: 24px; margin-top: 40px; }\n.is-mobile .pf-about-parcours .pf-about-label { margin-bottom: 10px; }\n.is-mobile .pf-projet-galerie { width: 100%; }\n.is-mobile .pf-projet-texte { left: var(--pf-margin); width: calc(100% - var(--pf-margin) * 2); }\n.is-mobile .pf-projet-texte h1 { display: block; }\n.is-mobile .pf-projet-suivant { height: auto; aspect-ratio: 4 / 5; }\n.is-mobile .pf-projet-pied { height: 100svh; }\n.is-mobile .pf-projet-pied { flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 8px; }\n.is-mobile .pf-projet-email { font-size: 6vw; }\n.is-mobile .pf-projet-lieu { text-align: left; }\n.is-mobile .pf-projet-rebond { width: 130px; height: 130px; }\n\n@media (max-width: 900px) {\n  .pf-root, .pf-header, .pf-menu, .pf-cursor, .pf-mobile-name { --pf-margin: 10px; --pf-big: 28px; --pf-col: 0px; }\n  .pf-header { display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: flex-start; }\n  .pf-header-name, .pf-header-infos a:not(.pf-about) { display: none; }\n  .pf-header-infos { position: absolute; top: 14px; left: 10px; }\n  .pf-menu-list { padding: 60px var(--pf-margin) var(--pf-margin); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .pf-curtain { display: none; }\n  .pf-menu-row span, .pf-hover-strip { transition: none; }\n}\n`;\nexport const __FramerMetadata__ = {\"exports\":{\"CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PfStyles.map","// ÉTAPE 2 — Les blocs projet : carte, effet volet au survol, carrousel infini.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useMemo,useRef}from\"react\";export const STRIPS=9// volets de l'effet de survol\n;export const INTRO_STRIPS=12// bandes de la transition de page\n;export const MOBILE_QUERY=\"(max-width: 900px)\";export const LEAVE_MS=620;export const slugify=s=>(s||\"\").normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g,\"\").toLowerCase().replace(/[^a-z0-9]+/g,\"-\").replace(/^-+|-+$/g,\"\");// Cadrage conseillé pour chaque projet : [X, Y] en %.\n// Il s'applique tant que le curseur Cadrage du panneau reste à 50.\nconst CADRAGES={photographie:[85,85],therapeau:[54,50],\"by-leou\":[45,50],\"atelier-lumen\":[50,45],\"nouvelle-vague\":[40,50]};export const position=p=>{const[x,y]=CADRAGES[slugify(p.titre)]??[50,50];const fx=p.focusX??50;const fy=p.focusY??50;return`${fx===50?x:fx}% ${fy===50?y:fy}%`;};const clamp=(v,a,b)=>Math.min(b,Math.max(a,v));/* ---------- Carte projet ---------- */export function Card({project,href,onNav,onHover,cardRef,imgRef}){const src=project.image?.src;return /*#__PURE__*/_jsxs(\"a\",{ref:cardRef,className:\"pf-card\",href:href,onClick:e=>onNav(e,href),onMouseEnter:()=>onHover(true),onMouseLeave:()=>onHover(false),children:[src&&/*#__PURE__*/_jsx(\"img\",{ref:imgRef,className:\"pf-card-img\",src:src,srcSet:project.image?.srcSet,sizes:\"(max-width: 900px) 100vw, 40vw\",alt:project.image?.alt||project.titre,draggable:false,style:{objectPosition:position(project)}}),src&&/*#__PURE__*/_jsx(\"div\",{className:\"pf-hover\",\"aria-hidden\":\"true\",children:Array.from({length:STRIPS},(_,i)=>/*#__PURE__*/_jsx(\"div\",{className:\"pf-hover-strip\",style:{\"--l\":`${i/STRIPS*100}%`,\"--r\":`${Math.max(0,100-(i+1)/STRIPS*100-.2)}%`,transitionDelay:`${i*25}ms`},children:/*#__PURE__*/_jsx(\"img\",{src:src,alt:\"\",draggable:false,style:{objectPosition:position(project)}})},i))}),/*#__PURE__*/_jsx(\"p\",{className:\"pf-card-title\",children:project.titre})]});}/* ---------- Colonne infinie ---------- */export function Carousel({items,hrefOf,scroll,lerp,getHeight,frozen,onNav,onHover}){const cards=useRef([]);const imgs=useRef([]);// Il faut au moins 4 cartes pour que la boucle ne laisse jamais de trou.\nconst list=useMemo(()=>{if(!items.length)return[];const out=[...items];while(out.length<4)out.push(...items);return out;},[items]);useEffect(()=>{let raf=0;let current=scroll.current;const layout=()=>{const H=getHeight();if(!H)return;const total=list.length*H;cards.current.forEach((el,i)=>{if(!el)return;let y=((i*H-current)%total+total)%total;if(y>total-H)y-=total;el.style.height=`${H}px`;el.style.transform=`translate3d(0, ${y}px, 0)`;const img=imgs.current[i];if(img){const shift=-clamp(y/H,-1,1)*4;img.style.transform=`translate3d(0, ${shift}%, 0) scale(1.08)`;el.style.setProperty(\"--pf-shift\",`${shift}%`);}});};const tick=()=>{current+=(scroll.current-current)*lerp;layout();raf=requestAnimationFrame(tick);};if(frozen){layout();const t=setTimeout(layout,60);window.addEventListener(\"resize\",layout);return()=>{clearTimeout(t);window.removeEventListener(\"resize\",layout);};}tick();return()=>cancelAnimationFrame(raf);},[list,lerp,frozen,getHeight,scroll]);return /*#__PURE__*/_jsx(_Fragment,{children:list.map((p,i)=>/*#__PURE__*/_jsx(Card,{project:p,href:hrefOf(p),onNav:onNav,onHover:onHover,cardRef:el=>cards.current[i]=el,imgRef:el=>imgs.current[i]=el},i))});}/* ---------- Défilement à la molette / au doigt ---------- */export function useDefilement(actif,scroll,menuOuvert){useEffect(()=>{if(!actif)return;const root=document.documentElement;const previous=root.style.overflow;root.style.overflow=\"hidden\";let touchY=0;const onWheel=e=>{e.preventDefault();if(!menuOuvert.current)scroll.current+=e.deltaY;};const onTouchStart=e=>{touchY=e.touches[0].clientY;};const onTouchMove=e=>{const y=e.touches[0].clientY;if(!menuOuvert.current)scroll.current+=(touchY-y)*1.5;touchY=y;};window.addEventListener(\"wheel\",onWheel,{passive:false});window.addEventListener(\"touchstart\",onTouchStart,{passive:true});window.addEventListener(\"touchmove\",onTouchMove,{passive:true});return()=>{root.style.overflow=previous;window.removeEventListener(\"wheel\",onWheel);window.removeEventListener(\"touchstart\",onTouchStart);window.removeEventListener(\"touchmove\",onTouchMove);};},[actif]);}\nexport const __FramerMetadata__ = {\"exports\":{\"Carousel\":{\"type\":\"reactComponent\",\"name\":\"Carousel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Card\":{\"type\":\"reactComponent\",\"name\":\"Card\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"position\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Project\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LEAVE_MS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"INTRO_STRIPS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useDefilement\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Nav\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Hover\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Img\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"STRIPS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MOBILE_QUERY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"slugify\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PfBlocs.map","// ÉTAPE 3 — Vos contenus par défaut et le panneau de réglages de Framer.\nimport{ControlType}from\"framer\";export const TITRES=[\"Eurydice\",\"Photographie\",\"Th\\xe9rapeau\",\"By Leou\",\"Poster\",\"Covers\",\"Atelier Lumen\",\"Nouvelle Vague\",\"Zebo Magazine\"];export const TEXTE_APROPOS=`My name is Clara Kerneis, an independent art director and graphic designer based in Paris, France.\n\nI work across art direction, visual identity, graphic and editorial design, photography, communication and web design, bringing ideas to life through thoughtful and distinctive visual approaches.\n\nAlways curious, I enjoy exploring different mediums, creative fields and ways of telling stories.`;const surAbout=p=>p.vue!==\"apropos\";const LIGNE_PARCOURS={type:ControlType.Object,controls:{titre:{type:ControlType.String,title:\"Titre\",defaultValue:\"Title\"},detail:{type:ControlType.String,title:\"D\\xe9tail\",displayTextArea:true}}};export const REGLAGES={vue:{type:ControlType.Enum,title:\"Vue\",options:[\"accueil\",\"grille\",\"apropos\",\"entete\"],optionTitles:[\"Accueil\",\"Tous les projets\",\"\\xc0 propos\",\"En-t\\xeate seul\"],defaultValue:\"accueil\"},nom:{type:ControlType.String,title:\"Nom\",defaultValue:\"Clara Kerneis\"},description:{type:ControlType.String,title:\"Pr\\xe9sentation\",displayTextArea:true,defaultValue:\"Independent Art Director & Graphic Designer based in Paris.\\nVisual identities, creative direction & visual storytelling.\",hidden:p=>p.vue!==\"accueil\"},imageFixe:{type:ControlType.ResponsiveImage,title:\"Logo / image fixe\",hidden:p=>p.vue!==\"accueil\"&&p.vue!==\"apropos\"},ajustementFixe:{type:ControlType.Enum,title:\"Ajustement\",options:[\"contain\",\"cover\"],optionTitles:[\"Logo entier\",\"Image plein cadre\"],defaultValue:\"contain\",hidden:p=>p.vue!==\"accueil\"&&p.vue!==\"apropos\"},margeFixe:{type:ControlType.Number,title:\"Marge du logo\",min:0,max:40,unit:\"%\",defaultValue:8,hidden:p=>p.vue!==\"accueil\"&&p.vue!==\"apropos\"||p.ajustementFixe===\"cover\"},animationLogo:{type:ControlType.Boolean,title:\"Logo anim\\xe9\",defaultValue:true,enabledTitle:\"Oui\",disabledTitle:\"Non\",hidden:p=>p.vue!==\"accueil\"&&p.vue!==\"apropos\"||p.ajustementFixe===\"cover\"},baladeLogo:{type:ControlType.Number,title:\"Vitesse de balade\",min:0,max:150,step:5,unit:\" px/s\",defaultValue:40,hidden:p=>p.vue!==\"accueil\"&&p.vue!==\"apropos\"||p.ajustementFixe===\"cover\"||p.animationLogo===false},dureeLogo:{type:ControlType.Number,title:\"Dur\\xe9e d'un tour\",min:6,max:60,step:1,unit:\" s\",defaultValue:24,hidden:p=>p.vue!==\"accueil\"&&p.vue!==\"apropos\"||p.ajustementFixe===\"cover\"||p.animationLogo===false},fondFixe:{type:ControlType.Color,title:\"Fond du logo\",defaultValue:\"#0A0A0A\",hidden:p=>p.vue!==\"accueil\"&&p.vue!==\"apropos\"},texteApropos:{type:ControlType.String,title:\"Texte \\xc0 propos\",displayTextArea:true,defaultValue:TEXTE_APROPOS,hidden:p=>p.vue!==\"apropos\"},libelleContact:{type:ControlType.String,title:\"Texte contact\",defaultValue:\"CONTACT\",hidden:p=>p.vue!==\"apropos\"},email:{type:ControlType.String,title:\"E-mail\",defaultValue:\"kerneis.clara1@gmail.com\",hidden:p=>p.vue!==\"apropos\"},lieu:{type:ControlType.String,title:\"Lieu\",defaultValue:\"Based in Paris, available worldwide\",hidden:p=>p.vue!==\"apropos\"},libelleClients:{type:ControlType.String,title:\"Titre clients\",defaultValue:\"Clients\",hidden:surAbout},clients:{type:ControlType.String,title:\"Clients\",displayTextArea:true,defaultValue:\"Kwaidan Records\\nShake Paris\",hidden:surAbout},libelleServices:{type:ControlType.String,title:\"Titre services\",defaultValue:\"Services\",hidden:surAbout},services:{type:ControlType.String,title:\"Services\",displayTextArea:true,defaultValue:\"Art Direction\\nEditorial Design\\nGraphic Design\\nBranding\\nPhotography\\nWeb Design\",hidden:surAbout},libelleExperience:{type:ControlType.String,title:\"Titre exp\\xe9rience\",defaultValue:\"Experience\",hidden:surAbout},experiences:{type:ControlType.Array,title:\"Exp\\xe9rience\",control:LIGNE_PARCOURS,defaultValue:[{titre:\"Graphic Designer, Art Director & Community Manager\",detail:\"Kwaidan Records, music label — Apprenticeship — 09.2025 – 11.2026\"},{titre:\"Graphic Designer & Assistant Art Director\",detail:\"Agence Shake, Paris — Apprenticeship — 09.2024 – 06.2025\"},{titre:\"International Experience\",detail:\"Australia & Indonesia — 2022 – 2023\"}],hidden:surAbout},libelleFormation:{type:ControlType.String,title:\"Titre formation\",defaultValue:\"Education\",hidden:surAbout},formations:{type:ControlType.Array,title:\"Formation\",control:LIGNE_PARCOURS,defaultValue:[{titre:\"Master's in Digital Art Direction\",detail:\"Digital Campus, Paris — 2026\"},{titre:\"Bachelor's in International Marketing\",detail:\"Kedge Business School, Bordeaux — 2023\"}],hidden:surAbout},focusFixeX:{type:ControlType.Number,title:\"Cadrage X\",min:0,max:100,unit:\"%\",defaultValue:50,hidden:p=>p.vue!==\"accueil\"},focusFixeY:{type:ControlType.Number,title:\"Cadrage Y\",min:0,max:100,unit:\"%\",defaultValue:50,hidden:p=>p.vue!==\"accueil\"},projets:{type:ControlType.Array,title:\"Projets\",control:{type:ControlType.Object,controls:{titre:{type:ControlType.String,title:\"Titre\",defaultValue:\"Projet\"},image:{type:ControlType.ResponsiveImage,title:\"Couverture\"},texte:{type:ControlType.String,title:\"Description\",displayTextArea:true},...Object.fromEntries(Array.from({length:12},(_,i)=>[[`image${i+1}`,{type:ControlType.ResponsiveImage,title:`Image ${i+1}`}],[`video${i+1}`,{type:ControlType.File,title:`Vid\\xe9o ${i+1}`,allowedFileTypes:[\"mp4\",\"webm\"]}]]).flat()),focusX:{type:ControlType.Number,title:\"Cadrage X\",min:0,max:100,unit:\"%\",defaultValue:50},focusY:{type:ControlType.Number,title:\"Cadrage Y\",min:0,max:100,unit:\"%\",defaultValue:50}}},defaultValue:TITRES.map(titre=>({titre,focusX:50,focusY:50}))},cheminProjets:{type:ControlType.String,title:\"Chemin projets\",defaultValue:\"/works\"},libelleMenu:{type:ControlType.String,title:\"Texte menu\",defaultValue:\"WORKS,\"},libelleMenuMobile:{type:ControlType.String,title:\"Menu mobile\",defaultValue:\"MENU\"},libelleFermer:{type:ControlType.String,title:\"Texte fermer\",defaultValue:\"CLOSE,\"},libelleTout:{type:ControlType.String,title:\"Texte tout voir\",defaultValue:\"VIEW ALL\"},libelleVoir:{type:ControlType.String,title:\"Texte curseur\",defaultValue:\"VIEW\"},libelleSuivant:{type:ControlType.String,title:\"Texte projet suivant\",defaultValue:\"NEXT PROJECT\"},libelleApropos:{type:ControlType.String,title:\"Texte \\xe0 propos\",defaultValue:\"ABOUT ME\"},lienApropos:{type:ControlType.String,title:\"Lien \\xe0 propos\",defaultValue:\"/about\"},libelleInstagram:{type:ControlType.String,title:\"Texte Instagram\",defaultValue:\"IG\"},lienInstagram:{type:ControlType.String,title:\"Lien Instagram\",placeholder:\"https://instagram.com/…\",defaultValue:\"https://www.instagram.com/clara.kerneis/\"}};\nexport const __FramerMetadata__ = {\"exports\":{\"REGLAGES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TEXTE_APROPOS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TITRES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PfReglages.map","// ÉTAPE 4 — L'en-tête, le menu plein écran et l'étiquette qui suit le curseur.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{position}from\"https://framerusercontent.com/modules/CyMDrpUxef4MMNygjhsh/j5q7kdZzZDqZq2EovE1B/PfBlocs.js\";/* ---------- En-tête ---------- */export function Entete({isCanvas,mobile,menuOpen,current,nom,libelleMenu,libelleMenuMobile,libelleApropos,lienApropos,libelleInstagram,lienInstagram,onOpen,onNav}){return /*#__PURE__*/_jsxs(\"header\",{className:`pf-header${isCanvas?\" is-canvas\":\"\"}`,children:[/*#__PURE__*/_jsx(\"div\",{className:\"pf-header-name\",children:/*#__PURE__*/_jsx(\"a\",{href:\"/\",onClick:e=>onNav(e,\"/\"),children:nom})}),/*#__PURE__*/_jsxs(\"div\",{className:\"pf-header-works\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-expanded\":menuOpen,onClick:()=>onOpen(),children:mobile?libelleMenuMobile:libelleMenu}),current&&!mobile&&/*#__PURE__*/_jsx(\"p\",{children:current})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"pf-header-infos\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"pf-about\",href:lienApropos,onClick:e=>onNav(e,lienApropos),children:libelleApropos}),lienInstagram&&/*#__PURE__*/_jsx(\"a\",{href:lienInstagram,target:\"_blank\",rel:\"noreferrer\",children:libelleInstagram})]})]});}/* ---------- Menu plein écran ---------- */export function Menu({menuOpen,mobile,heroImage,heroFit,heroPosition,projets,base,hrefOf,libelleFermer,libelleTout,libelleApropos,lienApropos,onClose,onNav}){const[menuIndex,setMenuIndex]=useState(-1);const menuLinks=[{label:libelleTout,href:base||\"/\"},...projets.map(p=>({label:p.titre,href:hrefOf(p)})),...mobile?[{label:libelleApropos,href:lienApropos}]:[]];return(// Un clic ailleurs que sur un lien referme le menu.\n/*#__PURE__*/_jsxs(\"div\",{className:`pf-menu${menuOpen?\" is-open\":\"\"}`,\"aria-hidden\":!menuOpen,onClick:e=>{if(!e.target.closest(\"a\"))onClose();},children:[/*#__PURE__*/_jsxs(\"div\",{className:\"pf-menu-bg\",children:[heroImage?.src&&/*#__PURE__*/_jsx(\"img\",{src:heroImage.src,alt:\"\",style:{objectFit:heroFit,objectPosition:heroPosition,opacity:menuIndex<0?1:0}}),menuOpen&&projets.map((p,i)=>p.image?.src?/*#__PURE__*/_jsx(\"img\",{src:p.image.src,alt:\"\",style:{objectPosition:position(p),opacity:menuIndex===i?1:0}},i):null)]}),/*#__PURE__*/_jsx(\"div\",{className:\"pf-menu-list\",children:menuLinks.map((l,i)=>/*#__PURE__*/_jsx(\"a\",{className:\"pf-menu-row\",href:l.href,tabIndex:menuOpen?0:-1,onClick:e=>onNav(e,l.href),onMouseEnter:()=>setMenuIndex(i-1),onMouseLeave:()=>setMenuIndex(-1),children:/*#__PURE__*/_jsx(\"span\",{style:{transitionDelay:`${(i+1)*25}ms`},children:l.label})},l.href+i))})]}));}/* ---------- Étiquette qui suit le curseur ---------- */export function useCurseur(isCanvas,cursorRef){useEffect(()=>{if(isCanvas)return;let raf=0;let x=0;let y=0;let tx=0;let ty=0;const onMove=e=>{tx=e.clientX;ty=e.clientY;};const tick=()=>{x+=(tx-x)*.18;y+=(ty-y)*.18;if(cursorRef.current){cursorRef.current.style.transform=`translate3d(${x}px, ${y}px, 0) translate(-50%, -50%)`;}raf=requestAnimationFrame(tick);};window.addEventListener(\"mousemove\",onMove);tick();return()=>{cancelAnimationFrame(raf);window.removeEventListener(\"mousemove\",onMove);};},[isCanvas]);}\nexport const __FramerMetadata__ = {\"exports\":{\"Menu\":{\"type\":\"reactComponent\",\"name\":\"Menu\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"Entete\":{\"type\":\"reactComponent\",\"name\":\"Entete\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useCurseur\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PfNavigation.map","// ÉTAPE 6 — La page d'un projet : couverture, images, projet suivant et pied de page.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useMemo,useRef}from\"react\";import{position}from\"https://framerusercontent.com/modules/CyMDrpUxef4MMNygjhsh/j5q7kdZzZDqZq2EovE1B/PfBlocs.js\";const VITESSE_REBOND=180// pixels par seconde, sur chaque axe\n;// La plus petite version de l'image suffit pour le carré du pied de page.\nfunction petiteImage(image){return image.srcSet?.split(\",\")[0].trim().split(\" \")[0]||image.src;}// L'image du pied de page avance en ligne droite, rebondit contre les bords\n// et passe à l'image suivante du projet à chaque choc.\nfunction useRebond(image,zone,liste){useEffect(()=>{const el=image.current;const box=zone.current;if(!el||!box)return;if(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;liste.forEach(({src})=>{new Image().src=src;});let x=-1;let y=0;let dx=VITESSE_REBOND;let dy=VITESSE_REBOND;let index=0;let last=0;let raf=0;const tick=t=>{const dt=Math.min((t-last)/1e3,.05);last=t;const maxX=box.clientWidth-el.offsetWidth;const maxY=box.clientHeight-el.offsetHeight;if(x<0){x=maxX*.7;y=maxY*.2;}x+=dx*dt;y+=dy*dt;let choc=false;if(x<=0||x>=maxX){x=Math.min(Math.max(x,0),maxX);dx=x===0?VITESSE_REBOND:-VITESSE_REBOND;choc=true;}if(y<=0||y>=maxY){y=Math.min(Math.max(y,0),maxY);dy=y===0?VITESSE_REBOND:-VITESSE_REBOND;choc=true;}if(choc&&liste.length>1){index=(index+1)%liste.length;el.src=liste[index].src;el.style.objectPosition=liste[index].position;}el.style.transform=`translate3d(${x}px, ${y}px, 0)`;raf=requestAnimationFrame(tick);};raf=requestAnimationFrame(tick);return()=>cancelAnimationFrame(raf);},[image,zone,liste]);}export function PageProjet({projet,suivant,hrefSuivant,libelleSuivant,email,lieu,onNav,onHover}){const rebond=useRef(null);const pied=useRef(null);const couverture=projet.image?.src;const medias=useMemo(()=>Array.from({length:12},(_,i)=>({image:projet[`image${i+1}`],video:projet[`video${i+1}`]})).filter(({image,video})=>video||image?.src),[projet]);const imagesRebond=useMemo(()=>[...couverture?[{src:petiteImage(projet.image),position:position(projet)}]:[],...medias.filter(({image})=>image?.src).map(({image})=>({src:petiteImage(image),position:\"50% 50%\"}))],[projet,couverture,medias]);useRebond(rebond,pied,imagesRebond);const texte=projet.texte;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"pf-projet-corps\",children:[couverture&&/*#__PURE__*/_jsx(\"img\",{className:\"pf-projet-couverture\",src:couverture,srcSet:projet.image?.srcSet,sizes:\"100vw\",alt:projet.image?.alt||projet.titre,draggable:false}),medias.length>0&&/*#__PURE__*/_jsx(\"div\",{className:\"pf-projet-galerie\",children:medias.map(({image,video},i)=>video?/*#__PURE__*/_jsx(\"video\",{src:video,poster:image?.src,autoPlay:true,muted:true,loop:true,playsInline:true,style:{display:\"block\",width:\"100%\",height:\"auto\"}},i):/*#__PURE__*/_jsx(\"img\",{src:image.src,srcSet:image.srcSet,sizes:\"(max-width: 900px) 100vw, 50vw\",alt:image.alt||`${projet.titre} ${i+1}`,loading:\"lazy\",draggable:false},i))}),/*#__PURE__*/_jsx(\"div\",{className:\"pf-projet-fixe\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"pf-projet-texte\",children:[/*#__PURE__*/_jsx(\"h1\",{children:projet.titre}),texte&&/*#__PURE__*/_jsx(\"p\",{children:texte})]})})]}),suivant&&/*#__PURE__*/_jsxs(\"a\",{className:\"pf-projet-suivant\",href:hrefSuivant,onClick:e=>onNav(e,hrefSuivant),onMouseEnter:()=>onHover(true),onMouseLeave:()=>onHover(false),children:[suivant.image?.src&&/*#__PURE__*/_jsx(\"img\",{src:suivant.image.src,srcSet:suivant.image.srcSet,sizes:\"100vw\",alt:\"\",loading:\"lazy\",draggable:false,style:{objectPosition:position(suivant)}}),/*#__PURE__*/_jsx(\"span\",{className:\"pf-projet-voile\"}),/*#__PURE__*/_jsxs(\"span\",{className:\"pf-projet-suivant-texte\",children:[/*#__PURE__*/_jsx(\"span\",{children:libelleSuivant}),/*#__PURE__*/_jsx(\"strong\",{children:suivant.titre})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"pf-projet-pied\",ref:pied,children:[couverture&&/*#__PURE__*/_jsx(\"img\",{ref:rebond,className:\"pf-projet-rebond\",src:imagesRebond[0].src,alt:\"\",draggable:false,style:{objectPosition:imagesRebond[0].position}}),email&&/*#__PURE__*/_jsx(\"a\",{className:\"pf-projet-email\",href:`mailto:${email}`,children:email}),lieu&&/*#__PURE__*/_jsx(\"p\",{className:\"pf-projet-lieu\",children:lieu})]})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"PageProjet\":{\"type\":\"reactComponent\",\"name\":\"PageProjet\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PfProjet.map","// ÉTAPE 5 — Le composant à glisser sur vos pages. Il assemble les 4 fichiers précédents.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{useEffect,useMemo,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,RenderTarget}from\"framer\";import{CSS}from\"https://framerusercontent.com/modules/hbiOkPXQsJbYiUiPj1un/1YS7LG61leaknAhFZstV/PfStyles.js\";import{Card,Carousel,INTRO_STRIPS,LEAVE_MS,MOBILE_QUERY,position,slugify,useDefilement}from\"https://framerusercontent.com/modules/CyMDrpUxef4MMNygjhsh/j5q7kdZzZDqZq2EovE1B/PfBlocs.js\";import{REGLAGES}from\"https://framerusercontent.com/modules/laMxGaJv4Ws93YyJPAH6/vTyEnpnQfUJ8REuL4v0S/PfReglages.js\";import{Entete,Menu,useCurseur}from\"https://framerusercontent.com/modules/Aj6hRabY3XwCUdrSnABC/gFiyMw8UJXSNJFEY6O8A/PfNavigation.js\";import{PageProjet}from\"https://framerusercontent.com/modules/tV3VfzyMLbdzBFNeuuS2/OSM16HWZyshwiwlM8uHX/PfProjet.js\";/* ---------- Logo : rotation constante, rebonds contre les bords ---------- */// Point d'ancrage dans l'image : le centre du cercle qui entoure l'éventail.\n// Sur ordinateur, la marge du logo est réduite pour l'agrandir sur l'accueil.\nconst MARGE_ORDINATEUR=.75;const ANCRE_X=.528;const ANCRE_Y=.557;// Contour de l'éventail, relatif au point d'ancrage (en fraction de l'image) :\n// le rebond a lieu quand le dessin lui-même touche le bord.\nconst CONTOUR=[[-.374,.174],[-.37,.08],[-.356,-.006],[-.341,-.074],[-.28,-.203],[-.24,-.252],[-.102,-.351],[.033,-.386],[.213,-.368],[.294,-.335],[.336,-.3],[.341,-.277],[.132,.11],[.119,.129],[.102,.141],[-.321,.306],[-.34,.296],[-.369,.212],[-.374,.176]];function useLogoAnime(ref,actif,dureeTour,vitesse,marge){useEffect(()=>{const el=ref.current;if(!el||!actif)return;if(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;let raf=0;let W=0;let H=0;let logoW=0;let logoH=0;let ox=0// point d'ancrage dans l'image affichée\n;let oy=0;let cx=-1// position du point d'ancrage dans le panneau\n;let cy=-1;let vx=vitesse*Math.cos(.66);let vy=vitesse*Math.sin(.66);let avant=0;const measure=()=>{const style=getComputedStyle(el);const padX=parseFloat(style.paddingLeft)||0;const padY=parseFloat(style.paddingTop)||0;W=el.clientWidth;H=el.clientHeight;const boxW=W-padX*2;const boxH=H-padY*2;const ratio=(el.naturalWidth||1)/(el.naturalHeight||1);logoW=Math.min(boxW,boxH*ratio);logoH=logoW/ratio;const[fx,fy]=style.objectPosition.split(\" \").map(v=>v.endsWith(\"%\")?parseFloat(v)/100:.5);ox=padX+(boxW-logoW)*fx+logoW*ANCRE_X;oy=padY+(boxH-logoH)*fy+logoH*ANCRE_Y;el.style.transformOrigin=`${ox}px ${oy}px`;if(cx<0){cx=W/2;cy=H/2;}};const tick=now=>{const dt=Math.min((now-avant)/1e3,.05);avant=now;const angle=now/1e3/dureeTour%1*Math.PI*2;el.style.transform=`rotate(${angle}rad)`;if(vitesse>0){cx+=vx*dt;cy+=vy*dt;// Étendue réelle du logo à cet angle.\nconst cos=Math.cos(angle);const sin=Math.sin(angle);let gauche=0;let droite=0;let haut=0;let bas=0;for(const[a,b]of CONTOUR){const px=a*logoW;const py=b*logoH;const x=px*cos-py*sin;const y=px*sin+py*cos;if(x<gauche)gauche=x;if(x>droite)droite=x;if(y<haut)haut=y;if(y>bas)bas=y;}// Rebond : seule la direction change, jamais la vitesse.\nif(droite-gauche>=W)cx=W/2;else if(cx+gauche<0){cx=-gauche;vx=Math.abs(vx);}else if(cx+droite>W){cx=W-droite;vx=-Math.abs(vx);}if(bas-haut>=H)cy=H/2;else if(cy+haut<0){cy=-haut;vy=Math.abs(vy);}else if(cy+bas>H){cy=H-bas;vy=-Math.abs(vy);}el.style.translate=`${cx-ox}px ${cy-oy}px`;}raf=requestAnimationFrame(tick);};// Le panneau change de taille après le chargement de la police :\n// sans nouvelle mesure, le logo tournerait autour d'un mauvais centre.\nmeasure();el.addEventListener(\"load\",measure);const observateur=new ResizeObserver(measure);observateur.observe(el);avant=performance.now();raf=requestAnimationFrame(tick);return()=>{cancelAnimationFrame(raf);el.removeEventListener(\"load\",measure);observateur.disconnect();el.style.transform=\"\";el.style.translate=\"\";el.style.transformOrigin=\"\";};},[ref,actif,dureeTour,vitesse,marge]);}// Remplace aussi l'ancienne mention, restée enregistrée sur les composants déjà posés.\nconst MENTION=\"Based in Paris, available worldwide\";const ANCIENNE_MENTION=\"Based in Paris\";// Une ligne \"Nom | https://site\" devient un lien, une ligne simple reste du texte.\nfunction Lignes({texte}){return /*#__PURE__*/_jsx(_Fragment,{children:texte.split(\"\\n\").map((ligne,i)=>{const[nom,lien]=ligne.split(\"|\").map(partie=>partie.trim());return /*#__PURE__*/_jsxs(React.Fragment,{children:[i>0&&\"\\n\",lien?/*#__PURE__*/_jsx(\"a\",{href:lien,target:\"_blank\",rel:\"noreferrer\",children:nom}):nom]},i);})});}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 1440\n * @framerIntrinsicHeight 900\n */export default function Portfolio(props){const{vue=\"accueil\",nom=\"\",description=\"\",imageFixe,focusFixeX=50,focusFixeY=50,ajustementFixe=\"contain\",margeFixe=8,animationLogo=true,dureeLogo=24,baladeLogo=40,fondFixe=\"#0A0A0A\",texteApropos=\"\",libelleContact=\"CONTACT\",email=\"kerneis.clara1@gmail.com\",lieu:lieuRegle=\"\",libelleClients=\"Clients\",clients=\"\",libelleServices=\"Services\",services=\"\",libelleExperience=\"Experience\",experiences=[],libelleFormation=\"Education\",formations=[],projets=[],cheminProjets=\"/works\",libelleMenu=\"WORKS,\",libelleMenuMobile=\"MENU\",libelleFermer=\"CLOSE,\",libelleTout=\"VIEW ALL\",libelleVoir=\"VIEW\",libelleSuivant=\"NEXT PROJECT\",libelleApropos=\"ABOUT ME\",lienApropos=\"/about\",libelleInstagram=\"IG\",lienInstagram=\"https://www.instagram.com/clara.kerneis/\"}=props;const lieu=!lieuRegle||lieuRegle===ANCIENNE_MENTION?MENTION:lieuRegle;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[mounted,setMounted]=useState(false);const[mobile,setMobile]=useState(false);const[menuOpen,setMenuOpen]=useState(false);const[leaving,setLeaving]=useState(false);const[introDone,setIntroDone]=useState(false);const[cursorOn,setCursorOn]=useState(false);const[slug,setSlug]=useState(\"\");const scroll=useRef(0);const topRef=useRef(null);const cursorRef=useRef(null);const logoRef=useRef(null);const menuOpenRef=useRef(false);menuOpenRef.current=menuOpen;const base=cheminProjets.replace(/\\/+$/,\"\");const hrefOf=useMemo(()=>p=>`${base}${base.includes(\"?\")?\"&\":\"?\"}p=${slugify(p.titre)}`,[base]);// La page \"Tous les projets\" affiche un projet quand l'adresse se termine par ?p=nom-du-projet.\nconst indexProjet=vue===\"grille\"&&slug?projets.findIndex(p=>slugify(p.titre)===slug):-1;const projet=projets[indexProjet];const suivant=projets.length>1?projets[(indexProjet+1)%projets.length]:undefined;const affichage=projet?\"projet\":vue;const heroImage=imageFixe||projets[0]?.image;const heroPosition=imageFixe?`${focusFixeX}% ${focusFixeY}%`:projets[0]?position(projets[0]):\"50% 50%\";useEffect(()=>{// Framer fixe la largeur à 1200 px sans breakpoint mobile : le téléphone\n// afficherait alors la version ordinateur, réduite.\nif(!isCanvas){document.querySelector('meta[name=\"viewport\"]')?.setAttribute(\"content\",\"width=device-width, initial-scale=1\");}setMounted(true);setSlug(new URLSearchParams(window.location.search).get(\"p\")||\"\");const mq=window.matchMedia(MOBILE_QUERY);// La largeur de l'écran est juste tout de suite, celle de la page un instant après.\nconst update=()=>setMobile(mq.matches||window.screen.width<=900);update();mq.addEventListener(\"change\",update);// Retour arrière du navigateur : on retire le rideau de transition.\nconst onShow=e=>{if(e.persisted)setLeaving(false);};window.addEventListener(\"pageshow\",onShow);return()=>{mq.removeEventListener(\"change\",update);window.removeEventListener(\"pageshow\",onShow);};},[]);const carouselView=(affichage===\"accueil\"||affichage===\"grille\")&&!mobile&&!isCanvas;useDefilement(carouselView,scroll,menuOpenRef);useCurseur(isCanvas,cursorRef);useEffect(()=>{if(!menuOpen)return;const onKey=e=>{if(e.key===\"Escape\")setMenuOpen(false);};window.addEventListener(\"keydown\",onKey);return()=>window.removeEventListener(\"keydown\",onKey);},[menuOpen]);const onNav=(e,href)=>{if(isCanvas){e.preventDefault();return;}if(e.metaKey||e.ctrlKey||e.shiftKey)return;e.preventDefault();setLeaving(true);window.setTimeout(()=>{window.location.href=href;},LEAVE_MS);};const onHover=on=>setCursorOn(on);// Deuxième ligne sous \"PROJETS,\" : le projet ou la page en cours.\nconst current=useMemo(()=>{if(projet)return projet.titre;return vue===\"grille\"?libelleTout:\"\";},[vue,projet,libelleTout]);const getTopHeight=useMemo(()=>()=>topRef.current?.offsetHeight??0,[]);const getGridHeight=useMemo(()=>()=>isCanvas?630:window.innerHeight*.7,[isCanvas]);const columns=useMemo(()=>[0,1,2].map(c=>projets.filter((_,i)=>i%3===c)).filter(col=>col.length>0),[projets]);const heroFit=ajustementFixe===\"contain\"?\"contain\":\"cover\";const heroPadding=heroFit===\"contain\"?`${margeFixe}%`:undefined;const margeAccueil=mobile?margeFixe:margeFixe*MARGE_ORDINATEUR;const paddingAccueil=heroFit===\"contain\"?`${margeAccueil}%`:undefined;useLogoAnime(logoRef,animationLogo&&heroFit===\"contain\"&&!isCanvas,dureeLogo,baladeLogo,vue===\"accueil\"?margeAccueil:margeFixe);const header=/*#__PURE__*/_jsx(Entete,{isCanvas:isCanvas,mobile:mobile,menuOpen:menuOpen,current:current,nom:nom,libelleMenu:libelleMenu,libelleMenuMobile:libelleMenuMobile,libelleApropos:libelleApropos,lienApropos:lienApropos,libelleInstagram:libelleInstagram,lienInstagram:lienInstagram,onOpen:()=>setMenuOpen(true),onNav:onNav});const menu=/*#__PURE__*/_jsx(Menu,{menuOpen:menuOpen,mobile:mobile,heroImage:heroImage,heroFit:heroFit,heroPosition:heroPosition,projets:projets,base:base,hrefOf:hrefOf,libelleFermer:libelleFermer,libelleTout:libelleTout,libelleApropos:libelleApropos,lienApropos:lienApropos,onClose:()=>setMenuOpen(false),onNav:onNav});const chrome=/*#__PURE__*/_jsxs(_Fragment,{children:[header,mobile&&/*#__PURE__*/_jsx(\"p\",{className:`pf-mobile-name${heroFit===\"contain\"||vue!==\"accueil\"?\" is-top\":\"\"}`,children:/*#__PURE__*/_jsx(\"a\",{href:\"/\",onClick:e=>onNav(e,\"/\"),style:{color:\"inherit\",textDecoration:\"none\",pointerEvents:\"auto\"},children:nom})}),menu,/*#__PURE__*/_jsx(\"div\",{ref:cursorRef,className:`pf-cursor${cursorOn?\" is-on\":\"\"}`,\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"span\",{children:libelleVoir})})]});const stack=list=>list.map((p,i)=>/*#__PURE__*/_jsx(Card,{project:p,href:hrefOf(p),onNav:onNav,onHover:onHover},i));return /*#__PURE__*/_jsxs(\"div\",{className:`pf-root pf-${affichage}${mobile?\" is-mobile\":\"\"}`,children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),vue===\"accueil\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{className:\"pf-top\",ref:topRef,style:{background:fondFixe,overflow:\"hidden\"},children:heroImage?.src&&/*#__PURE__*/_jsx(\"img\",{ref:logoRef,className:\"pf-hero\",src:heroImage.src,srcSet:heroImage.srcSet,sizes:\"(max-width: 900px) 100vw, 60vw\",alt:heroImage.alt||nom,draggable:false,style:{objectFit:heroFit,objectPosition:heroPosition,padding:paddingAccueil}})}),/*#__PURE__*/_jsx(\"div\",{className:\"pf-side\",children:mobile?stack(projets):/*#__PURE__*/_jsx(Carousel,{items:projets,hrefOf:hrefOf,scroll:scroll,lerp:.09,getHeight:getTopHeight,frozen:isCanvas,onNav:onNav,onHover:onHover})}),/*#__PURE__*/_jsx(\"div\",{className:\"pf-description\",children:/*#__PURE__*/_jsx(\"p\",{children:description})})]}),projet&&/*#__PURE__*/_jsx(PageProjet,{projet:projet,suivant:suivant,hrefSuivant:suivant?hrefOf(suivant):\"\",libelleSuivant:libelleSuivant,email:email,lieu:lieu,onNav:onNav,onHover:onHover}),affichage===\"grille\"&&(mobile?/*#__PURE__*/_jsx(\"div\",{className:\"pf-col\",children:stack(projets)}):columns.map((col,c)=>/*#__PURE__*/_jsx(\"div\",{className:\"pf-col\",children:/*#__PURE__*/_jsx(Carousel,{items:col,hrefOf:hrefOf,scroll:scroll,lerp:[.11,.085,.065][c],getHeight:getGridHeight,frozen:isCanvas,onNav:onNav,onHover:onHover})},c))),vue===\"apropos\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{className:\"pf-about-text\",children:texteApropos}),/*#__PURE__*/_jsx(\"div\",{className:\"pf-about-logo\",style:{background:fondFixe,overflow:\"hidden\"},children:heroImage?.src&&/*#__PURE__*/_jsx(\"img\",{ref:logoRef,src:heroImage.src,alt:heroImage.alt||nom,draggable:false,style:{objectFit:heroFit,padding:heroPadding}})}),/*#__PURE__*/_jsxs(\"div\",{className:\"pf-about-contact\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"pf-about-label\",children:libelleContact}),/*#__PURE__*/_jsxs(\"div\",{className:\"pf-about-links\",children:[lienInstagram&&/*#__PURE__*/_jsx(\"a\",{href:lienInstagram,target:\"_blank\",rel:\"noreferrer\",children:\"Instagram\"}),email&&/*#__PURE__*/_jsx(\"a\",{href:`mailto:${email}`,children:email}),lieu&&/*#__PURE__*/_jsx(\"p\",{style:{whiteSpace:\"pre-line\"},children:lieu.replace(\", \",\",\\n\")})]})]}),[[libelleClients,clients],[libelleServices,services]].map(([titre,texte])=>texte&&/*#__PURE__*/_jsxs(\"div\",{className:\"pf-about-contact pf-about-bloc\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"pf-about-label\",children:titre}),/*#__PURE__*/_jsx(\"p\",{className:\"pf-about-liste\",children:/*#__PURE__*/_jsx(Lignes,{texte:texte})})]},titre)),/*#__PURE__*/_jsx(\"div\",{className:\"pf-about-parcours\",children:[[libelleExperience,experiences],[libelleFormation,formations]].map(([titre,lignes])=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"p\",{className:\"pf-about-label\",children:titre}),lignes.map((ligne,i)=>/*#__PURE__*/_jsxs(\"p\",{className:\"pf-about-item\",children:[ligne.titre,/*#__PURE__*/_jsx(\"span\",{children:ligne.detail})]},i))]},titre))})]}),isCanvas?header:mounted&&/*#__PURE__*/createPortal(chrome,document.body),!isCanvas&&(leaving||!introDone)&&/*#__PURE__*/_jsx(\"div\",{className:`pf-curtain ${leaving?\"is-leaving\":mounted?\"is-entering\":\"\"}`,\"aria-hidden\":\"true\",children:Array.from({length:INTRO_STRIPS},(_,i)=>/*#__PURE__*/_jsx(\"i\",{style:{animationDelay:`${i*28}ms`},onAnimationEnd:!leaving&&i===INTRO_STRIPS-1?()=>setIntroDone(true):undefined},i))})]});}addPropertyControls(Portfolio,REGLAGES);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Portfolio\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1440\",\"framerIntrinsicHeight\":\"900\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0918601)\nexport default function metadata(params,contentLocale){return{description:\"clarakerneis.com\",favicon:\"https://framerusercontent.com/assets/gYmzk3AWQ3KwGkzMkNab2IAUAk.jpg\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/Va8jDwEFiJU3FAIFa4o9ga25Mw.jpg\",title:\"clarakerneis.com\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}