{"version":3,"file":"shared-lib.GyR5igy4.mjs","names":["useRef","useState","useId","p","useMemo","startTransition","metadata","metadata","siteMetadata","metadataVersion","__FramerMetadata__","siteMetadata"],"sources":["https:/framerusercontent.com/modules/cPlnFWXT91mS16iKOnDK/uQD6KQ4GSJsTPXNteOB7/MediaRunway.js","https:/framerusercontent.com/modules/iiLyCw5xk4bQ0yETRf86/32TpGbYBfGpDbWfwmkT7/siteMetadata.js","https:/framerusercontent.com/modules/veQto03VawPRByz11fb6/n3VuGlsKjzCyTYX6b6WM/yVVEUwgkP.js","https:/framerusercontent.com/modules/RmRY9joALcZSoPeDkxXP/o1fznMP0a7hCuMc9nvFz/h86Usj2v2.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useId,useMemo,useRef,useState,startTransition}from\"react\";const STOPS=24;const CARD_HEIGHT=25;const DEFAULT_ITEMS=[\"GfGkADagM4KEibNcIiRUWlfrR0\",\"aNsAT3jCvt4zglbWCUoFe33Q\",\"BYnxEV1zjYb9bhWh1IwBZ1ZoS60\",\"2uTNEj5aTl2K3NJaEFWMbnrA\",\"f9RiWoNpmlCMqVRIHz8l8wYfeI\"].map(id=>({kind:\"image\",img:{src:`https://framerusercontent.com/images/${id}.jpg`}}));const MEDIA_STYLE={display:\"block\",width:\"100%\",height:\"100%\",objectFit:\"cover\"};/** Pose of a card at progress u (0 = birth, 1 = exit) on rail dir. */function pose(u,dir,p){const scale=p.birthHeight/p.cardHeight*Math.pow(p.exitHeight/p.birthHeight,u);const z=p.perspective*(1-1/scale);const rail=p.railExit-(p.railExit-p.railBirth)*Math.pow(1-u,p.fan);const turn=p.turnBirth+(p.turnExit-p.turnBirth)*u;return`translate3d(${(dir*rail).toFixed(2)}cqw,0,${z.toFixed(2)}cqw) rotateY(${(-dir*turn).toFixed(2)}deg)`;}function keyframes(dir,name,p){const steps=[];for(let s=0;s<=STOPS;s++){const u=s/STOPS;steps.push(`${(u*100).toFixed(2)}%{transform:${pose(u,dir,p)}}`);}return`@keyframes ${name}{${steps.join(\"\")}}`;}/** Height (cqw) the corridor needs: the tallest slice of any card that is\n * still inside the frame, projected exactly as CSS does it. */function fitHeight(p){let max=0;const half=p.cardWidth/2;for(let s=0;s<=200;s++){const u=s/200;const scale=p.birthHeight/p.cardHeight*Math.pow(p.exitHeight/p.birthHeight,u);const z=p.perspective*(1-1/scale);const rail=p.railExit-(p.railExit-p.railBirth)*Math.pow(1-u,p.fan);const turn=(p.turnBirth+(p.turnExit-p.turnBirth)*u)*Math.PI/180;const c=Math.cos(-turn);const sn=Math.sin(-turn);for(let k=0;k<=40;k++){const lx=-half+k/40*p.cardWidth;const depth=p.perspective-(z-lx*sn);if(depth<=0)continue;const f=p.perspective/depth;const x=(rail+lx*c)*f;if(Math.abs(x)>50)continue;max=Math.max(max,p.cardHeight*f);}}return Math.max(1,max);}function clean(list){const out=[];for(const entry of list||[]){if(!entry)continue;// Older lists stored bare images.\nconst legacy=entry;if(legacy.src)out.push({kind:\"image\",img:legacy});else if(entry.type===\"video\"&&entry.video)out.push({kind:\"video\",src:entry.video,poster:entry.poster});else if(entry.type!==\"video\"&&entry.image?.src)out.push({kind:\"image\",img:entry.image});}return out;}function CardVideo(props){const ref=useRef(null);useEffect(()=>{const v=ref.current;if(!v)return;if(props.playing)v.play().catch(()=>{});else v.pause();},[props.playing]);return /*#__PURE__*/_jsx(\"video\",{ref:ref,src:props.src,poster:props.poster?.src,muted:true,loop:true,playsInline:true,autoPlay:props.playing,preload:\"metadata\",style:MEDIA_STYLE});}/**\n * Media Runway\n *\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 700\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any\n */export default function MediaRunway(props){const{layout=\"mirror\",cards=9,duration=18,direction=\"in\",hover={},card={},corridor={},style}=props;const ratio=card.ratio??.72;const radius=card.radius??\"6px\";const fill=card.fill??\"#161616\";const isStatic=useIsStaticRenderer();const rootRef=useRef(null);const[inView,setInView]=useState(true);const[hovered,setHovered]=useState(false);// Videos only enter the DOM once the corridor has been on screen.\nconst[seen,setSeen]=useState(false);const[reduced,setReduced]=useState(false);// Loops completed per card, so a reborn card picks up the next media.\nconst[cycles,setCycles]=useState({});const id=useId().replace(/[^a-zA-Z0-9]/g,\"\");const right=`ic-r-${id}`;const left=`ic-l-${id}`;const cardClass=`ic-c-${id}`;const p=useMemo(()=>({perspective:corridor.perspective??30,cardWidth:CARD_HEIGHT*ratio,cardHeight:CARD_HEIGHT,// Scale multiplies every card's apparent size, which also pushes it\n    // outward by the same factor: the whole runway zooms around its\n    // vanishing point while keeping its shape.\n    birthHeight:2.6*((corridor.scale??100)/100),exitHeight:(corridor.depth??46)*((corridor.scale??100)/100),railBirth:-11,railExit:corridor.spread??44,fan:corridor.curve??3.3,turnBirth:6,turnExit:corridor.turn??28}),[corridor.perspective,corridor.depth,corridor.scale,corridor.spread,corridor.curve,corridor.turn,ratio]);const fitH=useMemo(()=>fitHeight(p),[p]);const css=useMemo(()=>isStatic?\"\":`${keyframes(1,right,p)}${keyframes(-1,left,p)}`+`@media(prefers-reduced-motion:reduce){.${cardClass}{animation-play-state:paused!important}}`,[isStatic,right,left,cardClass,p]);// Pause the loop when the corridor is scrolled out of view.\nuseEffect(()=>{if(isStatic)return;const el=rootRef.current;if(!el||typeof IntersectionObserver===\"undefined\")return;const io=new IntersectionObserver(([entry])=>startTransition(()=>{setInView(entry.isIntersecting);if(entry.isIntersecting)setSeen(true);}),{threshold:.1});io.observe(el);return()=>io.disconnect();},[isStatic]);useEffect(()=>{if(isStatic||typeof window===\"undefined\"||!window.matchMedia)return;const mq=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const update=()=>startTransition(()=>setReduced(mq.matches));update();mq.addEventListener?.(\"change\",update);return()=>mq.removeEventListener?.(\"change\",update);},[isStatic]);const userImages=clean(props.images);const mainImages=userImages.length?userImages:DEFAULT_ITEMS;const rightList=mainImages;let leftList=mainImages;if(layout===\"split\"){const custom=clean(props.leftImages);if(custom.length){leftList=custom;}else{// No dedicated list: offset the main one so both sides differ.\nconst shift=Math.ceil(mainImages.length/2);leftList=mainImages.map((_,i)=>mainImages[(i+shift)%mainImages.length]);}}const count=Math.max(2,Math.round(cards));const running=inView;const hoverOn=!!hover.enabled&&!isStatic;const hoverRate=Math.min(1,Math.max(0,(hover.speed??30)/100));// Hover eases the playback rate of every card toward the hover speed\n// (0 = full stop) and back. Changing playbackRate keeps each card where it\n// is, unlike swapping the CSS duration, which would make them jump.\nconst innerRef=useRef(null);const rateRef=useRef(1);useEffect(()=>{const el=innerRef.current;if(!el||typeof el.getAnimations!==\"function\")return;const from=rateRef.current;const to=hoverOn&&hovered?hoverRate:1;if(from===to)return;const start=performance.now();let frame=0;const step=now=>{const t=Math.min(1,(now-start)/500);const eased=1-Math.pow(1-t,3);const rate=from+(to-from)*eased;rateRef.current=rate;for(const anim of el.getAnimations({subtree:true}))anim.playbackRate=rate;if(t<1)frame=requestAnimationFrame(step);};frame=requestAnimationFrame(step);return()=>cancelAnimationFrame(frame);},[hovered,hoverOn,hoverRate]);const videosPlaying=inView&&!reduced;const renderMedia=item=>{if(item.kind===\"image\")return /*#__PURE__*/_jsx(\"img\",{src:item.img.src,srcSet:item.img.srcSet,sizes:\"40vw\",alt:\"\",decoding:\"async\",draggable:false,style:MEDIA_STYLE});const poster=item.poster?.src?/*#__PURE__*/_jsx(\"img\",{src:item.poster.src,alt:\"\",decoding:\"async\",draggable:false,style:MEDIA_STYLE}):null;if(isStatic)return poster||/*#__PURE__*/_jsx(\"video\",{src:`${item.src}#t=0.1`,muted:true,playsInline:true,preload:\"metadata\",style:MEDIA_STYLE});if(!seen)return poster;return /*#__PURE__*/_jsx(CardVideo,{src:item.src,poster:item.poster,playing:videosPlaying},item.src);};const rails=[{name:right,dir:1,list:rightList},{name:left,dir:-1,list:leftList}];// Reveal the runway only once every image and poster is ready, so no\n// card ever flies by empty. Same srcset/sizes as the cards, so the\n// browser caches exactly the file they will ask for.\n// Posters are shown by <video poster>, which only takes the plain src.\nconst stills=[...rightList,...leftList].map(item=>item.kind===\"image\"?item.img:item.poster?.src?{src:item.poster.src}:undefined).filter(img=>!!img?.src);const stillsKey=stills.map(img=>img.src).join(\"|\");const[ready,setReady]=useState(false);useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;let cancelled=false;const show=()=>{if(!cancelled)startTransition(()=>setReady(true));};const loads=stills.map(img=>new Promise(resolve=>{const el=new Image;el.onload=el.onerror=()=>resolve();el.sizes=\"40vw\";if(img.srcSet)el.srcset=img.srcSet;el.src=img.src;}));Promise.all(loads).then(show);// Never hold the section hostage to a slow file.\nconst fallback=window.setTimeout(show,4e3);return()=>{cancelled=true;window.clearTimeout(fallback);};},[isStatic,stillsKey]);return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,onMouseEnter:hoverOn?()=>startTransition(()=>setHovered(true)):undefined,onMouseLeave:hoverOn?()=>startTransition(()=>setHovered(false)):undefined,style:{...style,position:\"relative\",overflow:\"hidden\",// Fit height: the frame takes the corridor's own aspect ratio,\n// ignored when the height is fixed.\naspectRatio:`100 / ${fitH.toFixed(3)}`,containerType:\"inline-size\"},children:[css?/*#__PURE__*/_jsx(\"style\",{children:css}):null,/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{position:\"absolute\",inset:0,pointerEvents:\"none\",perspective:`${p.perspective}cqw`,perspectiveOrigin:\"50% 50%\",opacity:isStatic||ready?1:0,transition:isStatic?\"none\":\"opacity 0.6s ease\"},children:/*#__PURE__*/_jsx(\"div\",{ref:innerRef,style:{position:\"absolute\",inset:0,transformStyle:\"preserve-3d\"},children:rails.map(({name,dir,list})=>Array.from({length:count},(_,i)=>{const key=`${dir}-${i}`;// Birth order: the front card was born first. Each\n    // rebirth (far back, out of sight) takes the next\n    // media, so the whole list streams through.\n    const birth=(cycles[key]||0)*count+(count-1-i);const item=list[birth%list.length];const base={position:\"absolute\",overflow:\"hidden\",left:\"50%\",top:\"50%\",width:`${p.cardWidth}cqw`,height:`${p.cardHeight}cqw`,marginLeft:`${-p.cardWidth/2}cqw`,marginTop:`${-p.cardHeight/2}cqw`,borderRadius:radius,background:fill,backfaceVisibility:\"hidden\"};// Static: freeze each card where its negative delay\n    // would drop it on the first frame.\n    const u=i/count;const cardStyle=isStatic?{...base,transform:pose(direction===\"out\"?1-u:u,dir,p)}:{...base,animation:`${name} ${duration}s linear infinite`,animationDelay:`${-(i*duration)/count}s`,animationDirection:direction===\"out\"?\"reverse\":\"normal\",animationPlayState:running?\"running\":\"paused\"};return /*#__PURE__*/_jsx(\"div\",{className:isStatic?undefined:cardClass,style:cardStyle,onAnimationIteration:isStatic||list.length<=1?undefined:()=>setCycles(c=>({...c,[key]:(c[key]||0)+1})),children:renderMedia(item)},key);}))})})]});}MediaRunway.displayName=\"Media Runway\";const MEDIA_ITEM={type:ControlType.Object,controls:{type:{type:ControlType.Enum,title:\"Type\",options:[\"image\",\"video\"],optionTitles:[\"Image\",\"Video\"],defaultValue:\"image\",displaySegmentedControl:true},image:{type:ControlType.ResponsiveImage,title:\"Image\",hidden:item=>item.type===\"video\"},video:{type:ControlType.File,title:\"Video\",allowedFileTypes:[\"mp4\",\"webm\",\"mov\"],hidden:item=>item.type!==\"video\"},poster:{type:ControlType.ResponsiveImage,title:\"Poster\",hidden:item=>item.type!==\"video\"}}};addPropertyControls(MediaRunway,{images:{type:ControlType.Array,title:\"Media\",control:MEDIA_ITEM,maxCount:24,defaultValue:[{type:\"image\"}],description:\"Keep videos few: every card plays its own copy.\"},layout:{type:ControlType.Enum,title:\"Sides\",options:[\"mirror\",\"split\"],optionTitles:[\"Mirror\",\"Split\"],defaultValue:\"mirror\",displaySegmentedControl:true,description:\"Split shows different images on each side.\"},leftImages:{type:ControlType.Array,title:\"Left Media\",control:MEDIA_ITEM,maxCount:24,description:\"Optional. Empty reuses Media, offset so sides differ.\",hidden:props=>props.layout!==\"split\"},cards:{type:ControlType.Number,title:\"Cards\",defaultValue:9,min:4,max:16,step:1,description:\"Per side. Fewer cards can open gaps near the edges.\"},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:18,min:4,max:60,step:.5,unit:\"s\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"in\",\"out\"],optionTitles:[\"Toward\",\"Away\"],defaultValue:\"in\",displaySegmentedControl:true},hover:{type:ControlType.Object,title:\"Hover\",controls:{enabled:{type:ControlType.Boolean,title:\"Interaction\",defaultValue:false},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:30,min:0,max:100,step:1,unit:\"%\",description:\"Speed while hovered. 0% pauses.\",hidden:h=>!h.enabled}}},card:{type:ControlType.Object,title:\"Card\",controls:{ratio:{type:ControlType.Number,title:\"Ratio\",defaultValue:.72,min:.4,max:1.6,step:.01},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"6px\"},fill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#161616\"}}},corridor:{type:ControlType.Object,title:\"Runway\",controls:{scale:{type:ControlType.Number,title:\"Scale\",defaultValue:100,min:50,max:200,step:1,unit:\"%\"},perspective:{type:ControlType.Number,title:\"Perspective\",defaultValue:30,min:15,max:60,step:1},depth:{type:ControlType.Number,title:\"Exit Size\",defaultValue:46,min:25,max:70,step:1},spread:{type:ControlType.Number,title:\"Spread\",defaultValue:44,min:25,max:70,step:1},curve:{type:ControlType.Number,title:\"Curve\",defaultValue:3.3,min:1,max:6,step:.1},turn:{type:ControlType.Number,title:\"Turn\",defaultValue:28,min:0,max:60,step:1,unit:\"\\xb0\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MediaRunway\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicHeight\":\"700\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MediaRunway.map","// Generated by Framer (d039229)\nexport default function metadata(params,activeLocale){return{robots:\"max-image-preview:large\",title:\"Distortion Effect\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f8e97a5)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"di6ive\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"p4lyht\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"zwo88j\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-3HOLH\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f8e97a5)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"aarv9f\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"92zzlo\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"rsuaww\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-gKvgx\",title:siteMetadata(params,activeLocale).title||\"Mirror\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}