{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/lRDHiNWNVWmE0lqtoVHP/tbiAmyP8q4mMaXLQcmj3/Video.js", "ssg:https://framerusercontent.com/modules/zRdA13jEOO1WtiSJIHPK/rhXudv9Mvk9pj6OmaidI/yOipCvdnx.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsInCurrentNavigationTarget}from\"framer\";import{isMotionValue,useInView}from\"framer-motion\";import{borderRadiusControl,defaultEvents,useIsBrowserSafari,useIsOnCanvas,useOnEnter,useOnExit,useRadius}from\"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\";// https://framer.com/m/framer/default-utils.js@^0.45.0\nimport{memo,useCallback,useEffect,useMemo,useRef,useState}from\"react\";var ObjectFitType;(function(ObjectFitType){ObjectFitType[\"Fill\"]=\"fill\";ObjectFitType[\"Contain\"]=\"contain\";ObjectFitType[\"Cover\"]=\"cover\";ObjectFitType[\"None\"]=\"none\";ObjectFitType[\"ScaleDown\"]=\"scale-down\";})(ObjectFitType||(ObjectFitType={}));var SrcType;(function(SrcType){SrcType[\"Video\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));// Reduce renders\nfunction getProps(props){const{width,height,topLeft,topRight,bottomRight,bottomLeft,id,children,...rest}=props;return rest;}/**\n * VIDEO\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 112\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Video(props){const newProps=getProps(props);return /*#__PURE__*/_jsx(VideoMemo,{...newProps});}function usePlaybackControls(videoRef){const isInCurrentNavigationTarget=useIsInCurrentNavigationTarget();const requestingPlay=useRef(false);const isPlayingRef=useRef(false);const setProgress=useCallback(rawProgress=>{if(!videoRef.current)return;const newProgress=(rawProgress===1?.999:rawProgress)*videoRef.current.duration;const isAlreadySet=Math.abs(videoRef.current.currentTime-newProgress)<.1;if(videoRef.current.duration>0&&!isAlreadySet){videoRef.current.currentTime=newProgress;}},[]);const play=useCallback(()=>{const video=videoRef.current;if(!video)return;video.preload=\"auto\"// makes sure browsers don't throttle: https://html.spec.whatwg.org/multipage/media.html#:~:text=When%20the%20media%20resource%20is%20playing%2C%20hints%20to%20the%20user%20agent%20that%20bandwidth%20is%20to%20be%20considered%20scarce%2C%20e.g.%20suggesting%20throttling%20the%20download%20so%20that%20the%20media%20data%20is%20obtained%20at%20the%20slowest%20possible%20rate%20that%20still%20maintains%20consistent%20playback.\n;const isPlaying=video.currentTime>0&&video.onplaying&&!video.paused&&!video.ended&&video.readyState>=video.HAVE_CURRENT_DATA;if(!isPlaying&&video&&!requestingPlay.current&&isInCurrentNavigationTarget){requestingPlay.current=true;isPlayingRef.current=true;video.play().catch(e=>{})// It's likely fine, swallow error\n.finally(()=>requestingPlay.current=false);}},[]);const pause=useCallback(()=>{if(!videoRef.current||requestingPlay.current)return;videoRef.current.pause();isPlayingRef.current=false;},[]);return{play,pause,setProgress,isPlaying:isPlayingRef};}function useAutoplayBehavior({playingProp,muted,loop,playsinline,controls}){const[initialPlayingProp]=useState(()=>playingProp);const[hasPlayingPropChanged,setHasPlayingPropChanged]=useState(false);if(playingProp!==initialPlayingProp&&!hasPlayingPropChanged){setHasPlayingPropChanged(true);}const behavesAsGif=// passing `playing === true` on mount indicates that the video should\n// autoplay, like a GIF\ninitialPlayingProp&&muted&&loop&&playsinline&&!controls&&// Some users of the <Video> component use it by wrapping it with\n// another smart component and adding their own controls on top. (The\n// controls use transitions to control the video: e.g., when clicking\n// the play button, the smart component will transition to a state with\n// <Video playing={true} />.) In this case, we don't want the video to\n// behave as a gif, as it will be weird if the video suddenly started\n// acting as such (and auto-pausing when leaving the viewport) as soon\n// as the site visitor mutes it and clicks \u201CPlay\u201D.\n!hasPlayingPropChanged;let autoplay;if(behavesAsGif)autoplay=\"on-viewport\";else if(initialPlayingProp)autoplay=\"on-mount\";else autoplay=\"no-autoplay\";return autoplay;}const VideoMemo=/*#__PURE__*/memo(function VideoInner(props){const{// default props\nsrcType=\"URL\",srcUrl,srcFile=\"\",posterEnabled=false,controls=false,playing=true,loop=true,muted=true,playsinline=true,restartOnEnter=false,objectFit=\"cover\",backgroundColor=\"rgba(0,0,0,0)\",radius=0,volume=25,startTime:startTimeProp=0,poster=\"https://framerusercontent.com/images/5ILRvlYXf72kHSVHqpa3snGzjU.jpg\",playing:playingProp,progress,onSeeked,onPause,onPlay,onEnd,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp}=props;const videoRef=useRef();const isSafari=useIsBrowserSafari();const wasPausedOnLeave=useRef(null);const wasEndedOnLeave=useRef(null);const isOnCanvas=useIsOnCanvas();const borderRadius=useRadius(props);// Hard-coding `autoplayBehavior` and `isInViewport` when on canvas as a\n// tiny perf optimization. isOnCanvas won\u2019t change through the lifecycle of\n// the component, so using these hooks conditionally should be safe\nconst autoplayBehavior=isOnCanvas?\"no-autoplay\":useAutoplayBehavior({playingProp,muted,loop,playsinline,controls});const isInViewport=isOnCanvas?true:useInView(videoRef);const isCloseToViewport=isOnCanvas?false:useInView(videoRef,{margin:\"100px\",once:true});// Video elements behave oddly at 100% duration\nconst startTime=startTimeProp===100?99.9:startTimeProp;const{play,pause,setProgress,isPlaying}=usePlaybackControls(videoRef);// Pause/play via props\nuseEffect(()=>{if(isOnCanvas)return;if(playingProp)play();else pause();},[playingProp]);// Pause/play via viewport\nuseEffect(()=>{if(isOnCanvas)return;if(autoplayBehavior!==\"on-viewport\")return;if(isInViewport)play();else pause();},[autoplayBehavior,isInViewport]);/**\n     * The Video component has some effects that sync the video element with props\n     * like `startTime`, `progress`, etc. React calls these effects whenever these\n     * props change. However, it also calls them on the first mount, and this is\n     * troublesome \u2013 if we\u2019re doing SSR, and the user changed the video state before\n     * the video was hydrated, the initial `useEffect` call will reset the video\n     * state. To avoid this, we use this flag.\n     */const isMountedAndReadyForProgressChanges=useRef(false);// Allow scrubbling via progress prop\n// 1) Handle cases when the progress prop itself changes\nuseEffect(()=>{if(!isMountedAndReadyForProgressChanges.current){isMountedAndReadyForProgressChanges.current=true;return;}const rawProgressValue=isMotionValue(progress)?progress.get():(progress!==null&&progress!==void 0?progress:0)*.01;setProgress(// When the progress value exists (e.g. <Video startTime={10}\n// progress={50} />), we respect the `progress` value over\n// `startTime`, even if `startTime` changes. That\u2019s because\n// `startTime` == start == changing it shouldn\u2019t affect the current\n// progress\n(rawProgressValue!==null&&rawProgressValue!==void 0?rawProgressValue:0)||// Then why fall back to `startTime` when `progress` doesn\u2019t exist,\n// you might ask? Now, that\u2019s for\n// - canvas UX: we want the video progress to change when the user\n//   is scrobbling the \u201CStart Time\u201D in component settings.\n// - backwards compatibility: maybe some users *are* scrobbling\n//   using `startTime` instead of `progress`? We don\u2019t know, and it\n//   always supported it, so let\u2019s not break it\n(startTime!==null&&startTime!==void 0?startTime:0)/100);},[startTime,srcFile,srcUrl,progress]);// 2) Handle cases when the motion value inside the progress prop changes\nuseEffect(()=>{if(!isMotionValue(progress))return;return progress.on(\"change\",value=>setProgress(value));},[progress]);// (Prototyping) Checking if we need to play on navigation enter\nuseOnEnter(()=>{if(wasPausedOnLeave.current===null)return;if(videoRef.current){// if (restartOnEnter) setProgress(0)\nif(!wasEndedOnLeave&&loop||!wasPausedOnLeave.current)play();}});// (Prototyping) Pausing & saving playing state on navigation exit\nuseOnExit(()=>{if(videoRef.current){wasEndedOnLeave.current=videoRef.current.ended;wasPausedOnLeave.current=videoRef.current.paused;pause();}});const src=useMemo(()=>{let fragment=\"\";// if (\n//     startTime > 0 &&\n//     videoRef.current &&\n//     !isNaN(videoRef.current.duration) &&\n//     !isOnCanvas\n// ) {\n//     console.log(startTime, videoRef.current.duration)\n//     fragment = `#t=${startTime * videoRef.current.duration}`\n// }\nif(srcType===\"URL\")return srcUrl+fragment;if(srcType===\"Upload\")return srcFile+fragment;},[srcType,srcFile,srcUrl,startTime]);// Autoplay via JS to work in Safari\nuseEffect(()=>{if(isSafari&&videoRef.current&&autoplayBehavior===\"on-mount\"){setTimeout(()=>play(),50);}},[]);// Volume Control\nuseEffect(()=>{if(videoRef.current&&!muted)videoRef.current.volume=(volume!==null&&volume!==void 0?volume:0)/100;},[volume]);// When video is ready, set start-time, then autoplay if needed\nconst handleReady=()=>{const video=videoRef.current;if(!video)return;if(video.currentTime<.3&&startTime>0)setProgress((startTime!==null&&startTime!==void 0?startTime:0)*.01);if(autoplayBehavior===\"on-mount\")play();};return /*#__PURE__*/_jsx(\"video\",{onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,src:src,loop:loop,ref:videoRef,onSeeked:e=>onSeeked===null||onSeeked===void 0?void 0:onSeeked(e),onPause:e=>onPause===null||onPause===void 0?void 0:onPause(e),onPlay:e=>onPlay===null||onPlay===void 0?void 0:onPlay(e),onEnded:e=>onEnd===null||onEnd===void 0?void 0:onEnd(e),autoPlay:autoplayBehavior===\"on-mount\",preload:isPlaying.current?\"auto\":autoplayBehavior!==\"on-mount\"&&posterEnabled&&!isCloseToViewport?\"none\":// `autoplay` overrides this too\n\"metadata\",poster:posterEnabled?poster:undefined,onLoadedData:handleReady,controls:controls,muted:isOnCanvas?true:muted,playsInline:playsinline,style:{cursor:!!onClick?\"pointer\":\"auto\",width:\"100%\",height:\"100%\",borderRadius,display:\"block\",objectFit:objectFit,backgroundColor:backgroundColor,objectPosition:\"50% 50%\"}});});Video.displayName=\"Video\";function capitalizeFirstLetter(value){return value.charAt(0).toUpperCase()+value.slice(1);}export function titleCase(value){const groups=value.match(/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\\d+/gu)||[];return groups.map(capitalizeFirstLetter).join(\" \");}const objectFitOptions=[\"cover\",\"fill\",\"contain\",\"scale-down\",\"none\"];addPropertyControls(Video,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",defaultValue:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",hidden(props){return props.srcType===\"Upload\";}},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"mp4\",\"webm\"],hidden(props){return props.srcType===\"URL\";}},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},posterEnabled:{type:ControlType.Boolean,title:\"Poster\",enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"We recommend adding a poster. [Learn more](https://www.framer.com/help/articles/how-are-videos-optimized-in-framer/).\"},poster:{type:ControlType.Image,title:\" \",hidden:({posterEnabled})=>!posterEnabled},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"},...borderRadiusControl,startTime:{title:\"Start Time\",type:ControlType.Number,min:0,max:100,step:.1,unit:\"%\"},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:objectFitOptions,optionTitles:objectFitOptions.map(titleCase)},// restartOnEnter: {\n//     type: ControlType.Boolean,\n//     title: \"On ReEnter\",\n//     enabledTitle: \"Restart\",\n//     disabledTitle: \"Resume\",\n// },\ncontrols:{type:ControlType.Boolean,title:\"Controls\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false},muted:{type:ControlType.Boolean,title:\"Muted\",enabledTitle:\"Yes\",disabledTitle:\"No\"},volume:{type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({muted})=>muted,defaultValue:25},onEnd:{type:ControlType.EventHandler},onSeeked:{type:ControlType.EventHandler},onPause:{type:ControlType.EventHandler},onPlay:{type:ControlType.EventHandler},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"VideoProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Video\":{\"type\":\"reactComponent\",\"name\":\"Video\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"112\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"titleCase\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Video.map", "// Generated by Framer (48da836)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,getLoadingLazyAtYPosition,Image,RichText,useComponentViewport,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS,withFX}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{Video}from\"https://framerusercontent.com/modules/lRDHiNWNVWmE0lqtoVHP/tbiAmyP8q4mMaXLQcmj3/Video.js\";import Menu from\"#framer/local/canvasComponent/ahodv7kOc/ahodv7kOc.js\";import metadataProvider from\"#framer/local/webPageMetadata/yOipCvdnx/yOipCvdnx.js\";const MenuFonts=getFonts(Menu);const MotionDivWithFX=withFX(motion.div);const VideoFonts=getFonts(Video);const breakpoints={};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-DRc4H\";const variantClassNames={b7oVE_cxR:\"framer-v-1cg9qcy\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transformPerspective:1200,x:0,y:20};const transition1={damping:40,delay:0,mass:1,stiffness:400,type:\"spring\"};const animation1={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transformPerspective:1200,transition:transition1,x:0,y:20};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value}});};const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);React.useEffect(()=>{const metadata=metadataProvider(undefined,activeLocale);if(metadata.robots){let robotsTag=document.querySelector('meta[name=\"robots\"]');if(robotsTag){robotsTag.setAttribute(\"content\",metadata.robots);}else{robotsTag=document.createElement(\"meta\");robotsTag.setAttribute(\"name\",\"robots\");robotsTag.setAttribute(\"content\",metadata.robots);document.head.appendChild(robotsTag);}}},[undefined,activeLocale]);React.useInsertionEffect(()=>{const metadata=metadataProvider(undefined,activeLocale);document.title=metadata.title||\"\";if(metadata.viewport){document.querySelector('meta[name=\"viewport\"]')?.setAttribute(\"content\",metadata.viewport);}},[undefined,activeLocale]);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const ref1=React.useRef(null);const defaultLayoutId=React.useId();useCustomCursors({});const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{primaryVariantId:\"b7oVE_cxR\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1cg9qcy\",className),ref:ref??ref1,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:590,width:\"268px\",y:(componentViewport?.y||0)+0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-k3ymo3-container\",children:/*#__PURE__*/_jsx(Menu,{height:\"100%\",id:\"Kv8klOGfb\",layoutId:\"Kv8klOGfb\",style:{width:\"100%\"},width:\"100%\"})})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-ls5kcn\",children:[/*#__PURE__*/_jsx(MotionDivWithFX,{__framer__animate:{transition:transition1},__framer__animateOnce:true,__framer__enter:animation,__framer__exit:animation1,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__perspectiveFX:false,__targetOpacity:1,className:\"framer-9hd2mq\",style:{transformPerspective:1200},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"h1\",{style:{\"--font-selector\":\"R0Y7S29zdWdpLXJlZ3VsYXI=\",\"--framer-font-family\":'\"Kosugi\", \"Kosugi Placeholder\", sans-serif',\"--framer-font-size\":\"40px\",\"--framer-letter-spacing\":\"-2.1px\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--token-b9c3c957-2c66-49c4-9732-fa196fddac20, rgb(17, 17, 17))\"},children:\"Tora's Adventures\"})}),className:\"framer-q24ol\",fonts:[\"GF;Kosugi-regular\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1e7hnus\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"R0Y7S29zdWdpLXJlZ3VsYXI=\",\"--framer-font-family\":'\"Kosugi\", \"Kosugi Placeholder\", sans-serif',\"--framer-font-size\":\"20px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--token-03d1febd-91c2-4e9a-bc63-3ec9fc1f34ad, rgb(0, 0, 0))\"},children:\"Overview\"})}),className:\"framer-irnvz4\",fonts:[\"GF;Kosugi-regular\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-vp8egc\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"A technical project implementing a 2D tile-based game about my partner (and roommate)'s cat Tora exploring our apartment building. This involved:\"}),/*#__PURE__*/_jsxs(\"ul\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:[/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"p\",{children:\"Constructing class components with 2000+ lines of code over the course of two months with a partner\"})}),/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"p\",{children:\"Developing a random world generation algorithm that generates rooms randomly and connects all of them with hallways.\"})}),/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"p\",{children:\"Created comprehensive unit tests, saving and loading, and interactive hand-drawn animations.\"})})]})]}),className:\"framer-1cz2i7k\",fonts:[\"Inter-Light\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-60w39f\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-3gh75v-container\",children:/*#__PURE__*/_jsx(Video,{backgroundColor:\"rgba(0, 0, 0, 0)\",borderRadius:0,bottomLeftRadius:0,bottomRightRadius:0,controls:false,height:\"100%\",id:\"MCuYBsYrD\",isMixedBorderRadius:false,layoutId:\"MCuYBsYrD\",loop:true,muted:true,objectFit:\"cover\",playing:true,posterEnabled:false,srcFile:\"https://framerusercontent.com/assets/rCr2vkTLUlitHbkErbdgmH4Wr2c.mp4\",srcType:\"Upload\",srcUrl:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",startTime:0,style:{height:\"100%\",width:\"100%\"},topLeftRadius:0,topRightRadius:0,volume:25,width:\"100%\"})})})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-4laq58\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"R0Y7S29zdWdpLXJlZ3VsYXI=\",\"--framer-font-family\":'\"Kosugi\", \"Kosugi Placeholder\", sans-serif',\"--framer-font-size\":\"20px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--token-03d1febd-91c2-4e9a-bc63-3ec9fc1f34ad, rgb(0, 0, 0))\"},children:\"World generation algorithm\"})}),className:\"framer-1spq9mv\",fonts:[\"GF;Kosugi-regular\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1gql32h\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"Our game supports random world generation, meaning that for any seed a player types in, a random layout of rooms and hallways must generate. To do this, we coded an algorithm that first generates rooms with random positions and dimensions, then, randomly connected them using horizontal and vertical hallways.\"}),/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:/*#__PURE__*/_jsx(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"In order to generate a random assortment of rooms, we created the Room class, with a starting coordinate, width, height, and ID. Using a randomly generated position, width, and height, a room would be added to the world if was in bounds of the viewport and not overlapping with existing rooms. We limited the total amount of rooms to control room density and ensure that hallway generation would also work.\"})]}),className:\"framer-fpe6mp\",fonts:[\"Inter-Light\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:602,intrinsicWidth:897,loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+0+1894),pixelHeight:1204,pixelWidth:1794,sizes:\"897px\",src:\"https://framerusercontent.com/images/wAK2CLFFhcReFiVbkkZltPaXGw.png?scale-down-to=1024\",srcSet:\"https://framerusercontent.com/images/wAK2CLFFhcReFiVbkkZltPaXGw.png?scale-down-to=512 512w,https://framerusercontent.com/images/wAK2CLFFhcReFiVbkkZltPaXGw.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/wAK2CLFFhcReFiVbkkZltPaXGw.png 1794w\"},className:\"framer-1o59o5o\",\"data-framer-name\":\"Screenshot 2024-12-29 at 10.54.55\\xe2\\x80\\xafPM\"}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"Rooms randomly generated without hallways\"})}),className:\"framer-1skpv3i\",fonts:[\"Inter-Light\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1eyy9ug\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"Once rooms were generated, we needed to produce hallways to connect them. We determined that hallways must satisfy a set of requirements:\"}),/*#__PURE__*/_jsxs(\"ul\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:[/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"p\",{children:\"Hallways must start and end in a room.\"})}),/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"p\",{children:\"All rooms must be connected to at least one hallway.\"})}),/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"p\",{children:\"Some hallways should intersect and create turns.\"})}),/*#__PURE__*/_jsx(\"li\",{children:/*#__PURE__*/_jsx(\"p\",{children:\"Hallways must be one tile wide, meaning that hallways cannot run parallel and adjacent.\"})})]}),/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:/*#__PURE__*/_jsx(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"To satisfy this set of requirements, we coded an algorithm that iterates through the generated rooms, creating vertical and horizontal hallways until all rooms are connected.\"})]}),className:\"framer-1daff7l\",fonts:[\"Inter-Light\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-10hhbtb\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"We ran into the most issues with ensuring that all rooms were connected; to solve this problem, we utilized the WeightedQuickUnion data structure, adding each room as a node and using hallways to connect the nodes. \"})}),className:\"framer-1wozjz9\",fonts:[\"Inter-Light\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:595,intrinsicWidth:898,loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+0+3360.8),pixelHeight:1190,pixelWidth:1796,sizes:\"898px\",src:\"https://framerusercontent.com/images/y6bbwxbyVth40rrYsYAbUrSF5yU.png?scale-down-to=1024\",srcSet:\"https://framerusercontent.com/images/y6bbwxbyVth40rrYsYAbUrSF5yU.png?scale-down-to=512 512w,https://framerusercontent.com/images/y6bbwxbyVth40rrYsYAbUrSF5yU.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/y6bbwxbyVth40rrYsYAbUrSF5yU.png 1796w\"},className:\"framer-1nso9q5\",\"data-framer-name\":\"Image\"}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"Rooms connected by hallways\"})}),className:\"framer-vrbfbk\",fonts:[\"Inter-Light\"],verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-ei5p36\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"R0Y7S29zdWdpLXJlZ3VsYXI=\",\"--framer-font-family\":'\"Kosugi\", \"Kosugi Placeholder\", sans-serif',\"--framer-font-size\":\"20px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--token-03d1febd-91c2-4e9a-bc63-3ec9fc1f34ad, rgb(0, 0, 0))\"},children:\"World design\"})}),className:\"framer-jpbdar\",fonts:[\"GF;Kosugi-regular\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-j24afw\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:'My roommate and I took many liberties with designing the world, characters, and other components of the game. We hand designed tiles used for the world including hallways, floors, and walls. We created toys that Tora could \"pick up,\" and poop that Tora should avoid. '})}),className:\"framer-1dcon89\",fonts:[\"Inter-Light\"],verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-9php1q\",children:[/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:128,intrinsicWidth:130,loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+0+4288.6+3),pixelHeight:256,pixelWidth:260,src:\"https://framerusercontent.com/images/3dw3IOvRXultL278V2XGMT3mI.png\"},className:\"framer-813ref\",\"data-framer-name\":\"Image\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:146,intrinsicWidth:145,loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+0+4288.6+0),pixelHeight:292,pixelWidth:290,src:\"https://framerusercontent.com/images/CXgEzLbrCbuxSZ5KA2gLbt4Z8.png\"},className:\"framer-175jiqd\",\"data-framer-name\":\"Screenshot 2024-12-29 at 10.59.57\\xe2\\x80\\xafPM\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"framer-1g0nfkr\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{style:{\"--font-selector\":\"SW50ZXItTGlnaHQ=\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-weight\":\"300\",\"--framer-text-color\":\"var(--token-6b236c5c-ccdd-4851-bda3-3c5e9e7e1a25, rgb(110, 110, 110))\"},children:\"We also created a mini game that would trigger once Tora would encounter a box. The goal is to collect all the toys while avoiding the poop. Once all the toys were collected without touching the poop, a hand-drawn animation would appear, congratulating the player. \"})}),className:\"framer-gta7me\",fonts:[\"Inter-Light\"],verticalAlignment:\"top\",withExternalLayout:true})})]})]}),/*#__PURE__*/_jsx(HTMLStyle,{value:\"html body { background: rgb(255, 255, 255); }\"}),/*#__PURE__*/_jsx(\"div\",{id:\"overlay\"})]})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-DRc4H.framer-1u62yzu, .framer-DRc4H .framer-1u62yzu { display: block; }\",\".framer-DRc4H.framer-1cg9qcy { align-content: flex-start; align-items: flex-start; background-color: #ffffff; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 1462px; }\",\".framer-DRc4H .framer-k3ymo3-container { flex: none; height: auto; position: sticky; top: 0px; width: 268px; will-change: transform; z-index: 1; }\",\".framer-DRc4H .framer-ls5kcn { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; max-width: 1462px; overflow: hidden; padding: 0px 0px 30px 0px; position: relative; width: 1px; }\",\".framer-DRc4H .framer-9hd2mq { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; max-width: 100%; overflow: hidden; padding: 50px; position: relative; width: 1010px; }\",\".framer-DRc4H .framer-q24ol { --framer-paragraph-spacing: 0px; flex: 1 0 0px; height: auto; overflow: hidden; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-DRc4H .framer-1e7hnus, .framer-DRc4H .framer-4laq58, .framer-DRc4H .framer-ei5p36 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 50px; height: min-content; justify-content: flex-start; max-width: 100%; overflow: visible; padding: 0px 50px 0px 50px; position: relative; width: 1010px; }\",\".framer-DRc4H .framer-irnvz4, .framer-DRc4H .framer-1cz2i7k, .framer-DRc4H .framer-1spq9mv, .framer-DRc4H .framer-fpe6mp, .framer-DRc4H .framer-1daff7l, .framer-DRc4H .framer-1wozjz9, .framer-DRc4H .framer-jpbdar, .framer-DRc4H .framer-1dcon89, .framer-DRc4H .framer-gta7me { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; --framer-paragraph-spacing: 0px; flex: 1 0 0px; height: auto; overflow: hidden; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-DRc4H .framer-vp8egc, .framer-DRc4H .framer-1gql32h, .framer-DRc4H .framer-1eyy9ug, .framer-DRc4H .framer-10hhbtb, .framer-DRc4H .framer-j24afw, .framer-DRc4H .framer-1g0nfkr { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 50px; height: min-content; justify-content: flex-start; max-width: 100%; overflow: visible; padding: 0px 50px 20px 50px; position: relative; width: 1010px; }\",\".framer-DRc4H .framer-60w39f { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 35px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-DRc4H .framer-3gh75v-container { flex: none; height: 526px; position: relative; width: 795px; }\",\".framer-DRc4H .framer-1o59o5o { aspect-ratio: 1.4900332225913622 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 602px); overflow: visible; position: relative; width: 897px; }\",\".framer-DRc4H .framer-1skpv3i, .framer-DRc4H .framer-vrbfbk { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-DRc4H .framer-1nso9q5 { aspect-ratio: 1.5092436974789916 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 595px); overflow: visible; position: relative; width: 898px; }\",\".framer-DRc4H .framer-9php1q { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 100px; height: min-content; justify-content: center; overflow: hidden; padding: 0px 100px 0px 100px; position: relative; width: 100%; }\",\".framer-DRc4H .framer-813ref { align-content: center; align-items: center; aspect-ratio: 1.015625 / 1; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: var(--framer-aspect-ratio-supported, 440px); justify-content: center; overflow: visible; padding: 0px 100px 0px 100px; position: relative; width: 1px; }\",\".framer-DRc4H .framer-175jiqd { align-content: center; align-items: center; aspect-ratio: 0.9931506849315068 / 1; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: var(--framer-aspect-ratio-supported, 450px); justify-content: center; overflow: visible; padding: 0px 100px 0px 100px; position: relative; width: 1px; }\",\"@supports (background: -webkit-named-image(i)) and (not (scale:1)) { .framer-DRc4H.framer-1cg9qcy, .framer-DRc4H .framer-ls5kcn, .framer-DRc4H .framer-1e7hnus, .framer-DRc4H .framer-vp8egc, .framer-DRc4H .framer-60w39f, .framer-DRc4H .framer-4laq58, .framer-DRc4H .framer-1gql32h, .framer-DRc4H .framer-1eyy9ug, .framer-DRc4H .framer-10hhbtb, .framer-DRc4H .framer-ei5p36, .framer-DRc4H .framer-j24afw, .framer-DRc4H .framer-9php1q, .framer-DRc4H .framer-813ref, .framer-DRc4H .framer-175jiqd, .framer-DRc4H .framer-1g0nfkr { gap: 0px; } .framer-DRc4H.framer-1cg9qcy > *, .framer-DRc4H .framer-813ref > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-DRc4H.framer-1cg9qcy > :first-child, .framer-DRc4H .framer-1e7hnus > :first-child, .framer-DRc4H .framer-vp8egc > :first-child, .framer-DRc4H .framer-60w39f > :first-child, .framer-DRc4H .framer-4laq58 > :first-child, .framer-DRc4H .framer-1gql32h > :first-child, .framer-DRc4H .framer-1eyy9ug > :first-child, .framer-DRc4H .framer-10hhbtb > :first-child, .framer-DRc4H .framer-ei5p36 > :first-child, .framer-DRc4H .framer-j24afw > :first-child, .framer-DRc4H .framer-9php1q > :first-child, .framer-DRc4H .framer-813ref > :first-child, .framer-DRc4H .framer-1g0nfkr > :first-child { margin-left: 0px; } .framer-DRc4H.framer-1cg9qcy > :last-child, .framer-DRc4H .framer-1e7hnus > :last-child, .framer-DRc4H .framer-vp8egc > :last-child, .framer-DRc4H .framer-60w39f > :last-child, .framer-DRc4H .framer-4laq58 > :last-child, .framer-DRc4H .framer-1gql32h > :last-child, .framer-DRc4H .framer-1eyy9ug > :last-child, .framer-DRc4H .framer-10hhbtb > :last-child, .framer-DRc4H .framer-ei5p36 > :last-child, .framer-DRc4H .framer-j24afw > :last-child, .framer-DRc4H .framer-9php1q > :last-child, .framer-DRc4H .framer-813ref > :last-child, .framer-DRc4H .framer-1g0nfkr > :last-child { margin-right: 0px; } .framer-DRc4H .framer-ls5kcn > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-DRc4H .framer-ls5kcn > :first-child, .framer-DRc4H .framer-175jiqd > :first-child { margin-top: 0px; } .framer-DRc4H .framer-ls5kcn > :last-child, .framer-DRc4H .framer-175jiqd > :last-child { margin-bottom: 0px; } .framer-DRc4H .framer-1e7hnus > *, .framer-DRc4H .framer-vp8egc > *, .framer-DRc4H .framer-4laq58 > *, .framer-DRc4H .framer-1gql32h > *, .framer-DRc4H .framer-1eyy9ug > *, .framer-DRc4H .framer-10hhbtb > *, .framer-DRc4H .framer-ei5p36 > *, .framer-DRc4H .framer-j24afw > *, .framer-DRc4H .framer-1g0nfkr > * { margin: 0px; margin-left: calc(50px / 2); margin-right: calc(50px / 2); } .framer-DRc4H .framer-60w39f > * { margin: 0px; margin-left: calc(35px / 2); margin-right: calc(35px / 2); } .framer-DRc4H .framer-9php1q > * { margin: 0px; margin-left: calc(100px / 2); margin-right: calc(100px / 2); } .framer-DRc4H .framer-175jiqd > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 3359\n * @framerIntrinsicWidth 1462\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n * @framerLayoutTemplateCompatible true\n * @framerResponsiveScreen\n */const FrameryOipCvdnx=withCSS(Component,css,\"framer-DRc4H\");export default FrameryOipCvdnx;FrameryOipCvdnx.displayName=\"P5\";FrameryOipCvdnx.defaultProps={height:3359,width:1462};addFonts(FrameryOipCvdnx,[{explicitInter:true,fonts:[{family:\"Kosugi\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/kosugi/v15/pxiFyp4_v8FCjlI4Mbr6f1pdEQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/BkDpl4ghaqvMi1btKFyG2tdbec.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/zAMK70AQRFSShJgUiaR5IiIhgzk.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/IETjvc5qzUaRoaruDpPSwCUM8.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/oLCoaT3ioA0fHdJnWR9W6k7NY.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/Sj0PCHQSBjFmEp6NBWg6FNaKc.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/v2q8JTTTs7McDMSEhnxAIBqd0.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/H4TfENUY1rh8R9UaSD6vngjJP3M.woff2\",weight:\"300\"}]},...MenuFonts,...VideoFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FrameryOipCvdnx\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerResponsiveScreen\":\"\",\"framerLayoutTemplateCompatible\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"1462\",\"framerIntrinsicHeight\":\"3359\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["ObjectFitType", "SrcType", "getProps", "props", "width", "height", "topLeft", "topRight", "bottomRight", "bottomLeft", "id", "children", "rest", "Video", "newProps", "p", "VideoMemo", "usePlaybackControls", "videoRef", "isInCurrentNavigationTarget", "useIsInCurrentNavigationTarget", "requestingPlay", "pe", "isPlayingRef", "setProgress", "te", "rawProgress", "newProgress", "isAlreadySet", "play", "video", "e", "pause", "useAutoplayBehavior", "playingProp", "muted", "loop", "playsinline", "controls", "initialPlayingProp", "ye", "hasPlayingPropChanged", "setHasPlayingPropChanged", "behavesAsGif", "autoplay", "X", "srcType", "srcUrl", "srcFile", "posterEnabled", "playing", "restartOnEnter", "objectFit", "backgroundColor", "radius", "volume", "startTimeProp", "poster", "progress", "onSeeked", "onPause", "onPlay", "onEnd", "onClick", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "isSafari", "useIsBrowserSafari", "wasPausedOnLeave", "wasEndedOnLeave", "isOnCanvas", "useIsOnCanvas", "borderRadius", "useRadius", "autoplayBehavior", "isInViewport", "useInView", "isCloseToViewport", "startTime", "isPlaying", "ue", "isMountedAndReadyForProgressChanges", "rawProgressValue", "isMotionValue", "value", "useOnEnter", "useOnExit", "src", "se", "fragment", "handleReady", "capitalizeFirstLetter", "titleCase", "objectFitOptions", "addPropertyControls", "ControlType", "borderRadiusControl", "defaultEvents", "MenuFonts", "getFonts", "ahodv7kOc_default", "MotionDivWithFX", "withFX", "motion", "VideoFonts", "Video", "breakpoints", "serializationHash", "variantClassNames", "animation", "transition1", "animation1", "HTMLStyle", "value", "useIsOnFramerCanvas", "p", "getProps", "height", "id", "width", "props", "Component", "Y", "ref", "activeLocale", "setLocale", "useLocaleInfo", "style", "className", "layoutId", "variant", "restProps", "ue", "metadata", "robotsTag", "ie", "baseVariant", "hydratedBaseVariant", "useHydratedBreakpointVariants", "breakpoints", "gestureVariant", "scopingClassNames", "cx", "ref1", "pe", "defaultLayoutId", "ae", "useCustomCursors", "componentViewport", "useComponentViewport", "GeneratedComponentContext", "u", "LayoutGroup", "motion", "ComponentViewportProvider", "Container", "ahodv7kOc_default", "MotionDivWithFX", "RichText2", "x", "Video", "Image2", "getLoadingLazyAtYPosition", "css", "FrameryOipCvdnx", "withCSS", "yOipCvdnx_default", "addFonts", "MenuFonts", "VideoFonts", "__FramerMetadata__"]
}
