{"version":3,"file":"shared-lib.CyDM96Gt.mjs","names":["React.useRef","React.useRef","React.useState","React.startTransition","React.useRef","React.useState","React.startTransition","React.useCallback","React.useMemo"],"sources":["https:/framerusercontent.com/modules/iVVZ4aZxrC5s0KxoemxT/CdO27YH8o7sedjiO9fYX/QuireMotion.js","https:/framerusercontent.com/modules/9u306IiFtaVE1IRzgTQp/m9OYeezi3y5Lfi5r831D/QuireNav.js","https:/framerusercontent.com/modules/bKc7syk2quK3RqxAF9hR/SoXNYSWivznQALXISKbj/QuireReel.js","https:/framerusercontent.com/modules/cHTozViB5Avd9KR06C7L/XClKXIYYZ8TNxrcxjyib/siteMetadata.js"],"sourcesContent":["// Quire motion controller — drop ONE instance on each page. It adds:\n// 1. ENTRANCE: the ink curtain LIFTS UP off the page, then everything above\n//    the fold rises up into place, staggered — headings out of a blur,\n//    paragraphs and images with a soft lift.\n// 2. EXIT: the same gesture, reversed. Content sinks back DOWN and fades\n//    while the curtain descends from the top, and only then does it\n//    navigate. The curtain closes on the way out and opens on the way in.\n// 3. Scroll reveals: the entrance, triggered as content enters the viewport.\n// 4. Hover animations: linked cards lift slightly and their image eases in\n//    scale; plain text links dim.\n// 5. Optional wheel-lerped scrolling — OFF by default (native scrolling is\n//    compositor-driven and stays smooth even while images decode).\n// Everything respects prefers-reduced-motion and does nothing on the canvas.\n//\n// ---------------------------------------------------------------------\n// THE ONE THING TO UNDERSTAND BEFORE EDITING THIS FILE\n//\n// The curtain is driven by TWO different mechanisms and they must never\n// fight over the same frame:\n//   • OPENING is a pure CSS animation (qm-open). It has to be, because the\n//     arriving page is a fresh document: anything JavaScript does happens\n//     only after hydration, which is the old \"page visible → black →\n//     reveal\" flash. The veil therefore renders ALREADY COVERING in the\n//     server-rendered markup, with its keyframes in a <style> inside this\n//     component, and lifts with animation-fill-mode \"both\" — no scripting\n//     required, so it can never strand anyone behind a black screen.\n//   • CLOSING is a CSS transition set from the click handler.\n//\n// v12 tried to hand over from one to the other inside the click: set\n// animation:none, re-park, force a reflow, then transition. That is fragile\n// and it broke. The instant the animation is removed, the transform falls\n// back to the INLINE value — which is \"covering\" — and Chrome can collapse\n// the re-park and the transition into one frame, so the curtain SNAPPED\n// shut instead of sliding. It looked like the close simply wasn't there.\n//\n// v13 does the handover ONCE, at mount (\"adopt\"), while nobody is looking:\n// the animation is dropped and the inline transform is rewritten to the\n// parked position, so from then on the veil's resting state is genuinely\n// parked and the close is an ordinary transition from a stable value.\n// adopt() is idempotent and also runs at the top of the click, in case\n// someone clicks before the opening has finished.\n// ---------------------------------------------------------------------\n//\n// Hover link-warming is kept: it is what stops a gentle exit from turning\n// back into a wait. Measured: a cold document costs ~580ms to\n// DOMContentLoaded, a warm one ~164ms.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// arriving: fast out of the gate, settles soft\nconst EASE=\"cubic-bezier(.22,1,.36,1)\";// leaving: symmetric and unhurried — gentle at both ends\nconst EASE_LEAVE=\"cubic-bezier(.45,0,.55,1)\";// a beat of full cover before the curtain starts to lift\nconst OPEN_DELAY=80;const PARKED=\"translate3d(0, -101%, 0)\";const COVERING=\"translate3d(0, 0, 0)\";// every part of the exit is a fixed proportion of the one Close value, so\n// nothing drifts out of step when it is dialled up or down\nconst leaveParts=ms=>({curtain:ms,handover:ms+40,head:Math.round(ms*.84),para:Math.round(ms*.81),image:Math.round(ms*.9),step:Math.round(ms*.07),stepMax:Math.round(ms*.28),markDelay:Math.round(ms*.62)});// Rendered INSIDE the component so it exists at first paint. The opening\n// must not wait for the effect to inject a stylesheet.\nconst OPEN_CSS=`\n@keyframes qm-open {\n  from { transform: translate3d(0, 0, 0); }\n  to   { transform: translate3d(0, -101%, 0); }\n}\n@keyframes qm-mark-out {\n  0%   { opacity: .62; }\n  55%  { opacity: 0; }\n  100% { opacity: 0; }\n}\n@media (prefers-reduced-motion: reduce) {\n  .qm-veil { animation: none !important; transform: translate3d(0, -101%, 0) !important; }\n  .qm-veil-mark { animation: none !important; opacity: 0 !important; }\n}\n`;const makeCSS=ms=>{const p=leaveParts(ms);return`\nhtml.qm-ready .qm-pre-h { opacity: 0; transform: translateY(26px); filter: blur(6px); }\nhtml.qm-ready .qm-pre-p { opacity: 0; transform: translateY(18px); }\nhtml.qm-ready .qm-pre-i { opacity: 0; transform: translateY(22px) scale(1.03); }\nhtml.qm-ready .qm-in-h { opacity: 1; transform: none; filter: blur(0px);\n  transition: opacity .7s ${EASE}, transform .7s ${EASE}, filter .7s ${EASE}; }\nhtml.qm-ready .qm-in-p { opacity: 1; transform: none;\n  transition: opacity .65s ${EASE}, transform .65s ${EASE}; }\nhtml.qm-ready .qm-in-i { opacity: 1; transform: none;\n  transition: opacity .8s ${EASE}, transform .9s ${EASE}; }\n\n/* the exit: the entrance, reversed — down instead of up */\nhtml.qm-ready .qm-out-h { opacity: 0; transform: translateY(22px); filter: blur(5px);\n  transition: opacity ${p.head}ms ${EASE_LEAVE}, transform ${p.head}ms ${EASE_LEAVE}, filter ${p.head}ms ${EASE_LEAVE}; }\nhtml.qm-ready .qm-out-p { opacity: 0; transform: translateY(15px);\n  transition: opacity ${p.para}ms ${EASE_LEAVE}, transform ${p.para}ms ${EASE_LEAVE}; }\nhtml.qm-ready .qm-out-i { opacity: 0; transform: translateY(18px) scale(.995);\n  transition: opacity ${p.image}ms ${EASE_LEAVE}, transform ${p.image}ms ${EASE_LEAVE}; }\n\n@keyframes qm-breathe { 0%, 100% { opacity: .62 } 50% { opacity: .24 } }\n`;};const HOVER_CSS=`\nhtml.qm-hover a[data-framer-name] { transition: transform .5s ${EASE}; }\nhtml.qm-hover a[data-framer-name]:hover { transform: translateY(-4px); }\nhtml.qm-hover a img.qm-in-i, html.qm-hover a img:not([class*=\"qm-\"]) {\n  transition: transform .7s ${EASE}, opacity .8s ${EASE}; }\nhtml.qm-hover a:hover img { transform: scale(1.04); }\nhtml.qm-hover p a, html.qm-hover [data-framer-component-type=\"RichTextContainer\"] a { transition: opacity .25s ease; }\nhtml.qm-hover p a:hover, html.qm-hover [data-framer-component-type=\"RichTextContainer\"] a:hover { opacity: .55; }\n`;/**\n * @framerIntrinsicWidth 1\n * @framerIntrinsicHeight 1\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function QuireMotion(props){const{smoothScroll=false,reveals=true,hovers=true,transitions=true,enterMs=760,exitMs=860,wordmark=\"QUIRE\",style}=props;const isStatic=useIsStaticRenderer();const veilRef=React.useRef(null);const markRef=React.useRef(null);// On the canvas, and whenever transitions are switched off, the curtain\n// must never cover anything — park it above the viewport from the start.\nconst curtainActive=transitions&&!isStatic;React.useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;const reduced=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const touch=window.matchMedia(\"(hover: none)\").matches;const cleanups=[];const T=leaveParts(exitMs);/* ---- styles ---- */const styleEl=document.createElement(\"style\");styleEl.textContent=makeCSS(exitMs)+(hovers&&!touch?HOVER_CSS:\"\");document.head.appendChild(styleEl);document.documentElement.classList.add(\"qm-ready\");if(hovers&&!touch)document.documentElement.classList.add(\"qm-hover\");cleanups.push(()=>{styleEl.remove();document.documentElement.classList.remove(\"qm-ready\",\"qm-hover\");});/* ---- entrance + scroll reveals ---- */if(reveals&&!reduced){const skip=el=>!!el.closest(\"section, nav, [aria-hidden='true'], [role='marquee']\");const marks=[];document.querySelectorAll(\"h1, h2, h3\").forEach(el=>{if(!skip(el))marks.push({el:el,cls:\"h\"});});document.querySelectorAll(\"p\").forEach(el=>{if(!skip(el))marks.push({el:el,cls:\"p\"});});document.querySelectorAll(\"img\").forEach(el=>{if(!skip(el))marks.push({el:el,cls:\"i\"});});const io=new IntersectionObserver(entries=>{let order=0;entries.forEach(e=>{if(!e.isIntersecting)return;const el=e.target;const cls=el.dataset.qm||\"p\";el.style.transitionDelay=`${Math.min(order*70,350)}ms`;el.classList.remove(`qm-pre-${cls}`);el.classList.add(`qm-in-${cls}`);io.unobserve(el);order++;});},{rootMargin:\"0px 0px -8% 0px\",threshold:.05});const entrance=[];const timers=[];marks.forEach(({el,cls})=>{const r=el.getBoundingClientRect();el.dataset.qm=cls;el.classList.add(`qm-pre-${cls}`);if(r.top>window.innerHeight*.92){io.observe(el);}else{entrance.push({el,cls});}});entrance.sort((a,b)=>a.el.getBoundingClientRect().top-b.el.getBoundingClientRect().top);// hold the content until the curtain is most of the way up, so\n// the rise is seen rather than hidden behind the ink\nconst lead=curtainActive?Math.round(OPEN_DELAY+enterMs*.55):60;const play=()=>{entrance.forEach(({el,cls},i)=>{el.style.transitionDelay=`${Math.min(lead+i*80,lead+640)}ms`;el.classList.remove(`qm-pre-${cls}`);el.classList.add(`qm-in-${cls}`);});};const rafId=requestAnimationFrame(()=>requestAnimationFrame(play));timers.push(window.setTimeout(play,400));timers.push(window.setTimeout(()=>{document.querySelectorAll('[class*=\"qm-pre-\"]').forEach(el=>{const r=el.getBoundingClientRect();if(r.top<window.innerHeight){const cls=el.dataset.qm||\"p\";el.classList.remove(`qm-pre-${cls}`);el.classList.add(`qm-in-${cls}`);}});},6e3));cleanups.push(()=>{io.disconnect();cancelAnimationFrame(rafId);timers.forEach(t=>window.clearTimeout(t));});}/* ---- optional lerped scroll (off by default) ---- */if(smoothScroll&&!reduced&&!touch){let targetY=window.scrollY;let currentY=window.scrollY;let raf=0;let active=false;const max=()=>Math.max(0,document.documentElement.scrollHeight-window.innerHeight);const tick=()=>{currentY+=(targetY-currentY)*.13;if(Math.abs(targetY-currentY)<.4){currentY=targetY;active=false;window.scrollTo(0,currentY);return;}window.scrollTo(0,currentY);raf=requestAnimationFrame(tick);};const onWheel=e=>{if(e.ctrlKey)return;e.preventDefault();if(!active){targetY=window.scrollY;currentY=window.scrollY;}const step=e.deltaMode===1?e.deltaY*24:e.deltaMode===2?e.deltaY*window.innerHeight:e.deltaY;targetY=Math.min(max(),Math.max(0,targetY+step));if(!active){active=true;raf=requestAnimationFrame(tick);}};window.addEventListener(\"wheel\",onWheel,{passive:false});cleanups.push(()=>{window.removeEventListener(\"wheel\",onWheel);cancelAnimationFrame(raf);});}/* ---- page transition: the curtain closes on the way out ---- */if(transitions&&!reduced){const veil=veilRef.current;const mark=markRef.current;if(veil){let leaving=false;let adopted=false;// Take the veil off the CSS opening animation and make its\n// INLINE resting state the parked position. Until this runs,\n// dropping the animation would snap the veil back to the\n// inline \"covering\" transform React rendered — which is\n// exactly what broke the close in v12. Idempotent.\nconst adopt=()=>{if(adopted)return;adopted=true;veil.style.animation=\"none\";veil.style.transition=\"none\";veil.style.transform=PARKED;if(mark){mark.style.animation=\"none\";mark.style.transition=\"none\";mark.style.opacity=\"0\";}// commit it, so the next transition has a stable start\nvoid veil.offsetHeight;};// whichever comes first: the opening ending, or its full\n// duration elapsing (animationend never fires if the tab was\n// in the background for the whole opening)\nconst onAnimEnd=e=>{if(e.animationName===\"qm-open\")adopt();};veil.addEventListener(\"animationend\",onAnimEnd);const adoptTimer=window.setTimeout(adopt,OPEN_DELAY+enterMs+120);cleanups.push(()=>{veil.removeEventListener(\"animationend\",onAnimEnd);window.clearTimeout(adoptTimer);});const park=()=>{leaving=false;adopted=false;adopt();document.querySelectorAll(\"[data-qm]\").forEach(node=>{const el=node;const cls=el.dataset.qm||\"p\";if(el.classList.contains(`qm-out-${cls}`)){el.style.transitionDelay=\"0ms\";el.classList.remove(`qm-out-${cls}`);el.classList.add(`qm-in-${cls}`);}});};// coming back via bfcache: the document is restored exactly\n// as it was left — mid-close — so put the curtain away again\nconst onPageShow=e=>{if(e.persisted)park();};window.addEventListener(\"pageshow\",onPageShow);cleanups.push(()=>window.removeEventListener(\"pageshow\",onPageShow));const eligible=a=>{if(!a)return null;if(a.target&&a.target!==\"_self\")return null;const raw=a.getAttribute(\"href\")||\"\";if(raw===\"#\"||raw===\"\")return null;let url;try{url=new URL(a.href,location.href);}catch(_){return null;}if(url.origin!==location.origin)return null;if(url.protocol!==\"http:\"&&url.protocol!==\"https:\")return null;// same page (with or without a hash) → let the browser do it\nif(url.pathname===location.pathname)return null;return url;};/* --- warm the next document on hover --------------------\n                 * Every internal link here is a full document navigation, so\n                 * the only way this gentle exit does not turn back into a\n                 * wait is to have the next page already fetched before the\n                 * click. Prefetch always (it is the part that reliably\n                 * lands); ask for a prerender as a bonus where supported.\n                 */const conn=navigator.connection;const cheapNetwork=!conn||!conn.saveData&&!/2g/.test(String(conn.effectiveType||\"\"));const warmed=new Set;let supportsRules=false;try{supportsRules=typeof HTMLScriptElement!==\"undefined\"&&typeof HTMLScriptElement.supports===\"function\"&&HTMLScriptElement.supports(\"speculationrules\");}catch(_){supportsRules=false;}const warm=url=>{if(!cheapNetwork)return;const href=url.pathname;if(warmed.has(href)||warmed.size>=3)return;warmed.add(href);try{const l=document.createElement(\"link\");l.rel=\"prefetch\";l.href=href;document.head.appendChild(l);if(supportsRules){const s=document.createElement(\"script\");s.type=\"speculationrules\";s.textContent=JSON.stringify({prerender:[{urls:[href]}]});document.head.appendChild(s);}}catch(_){}};const onOver=e=>{const a=e.target?.closest?.(\"a[href]\");const url=eligible(a);if(url)warm(url);};document.addEventListener(\"pointerover\",onOver,true);cleanups.push(()=>document.removeEventListener(\"pointerover\",onOver,true));// send the visible content back down the way it came up\nconst sink=()=>{const vh=window.innerHeight;const outs=[];document.querySelectorAll(\"[data-qm]\").forEach(node=>{const el=node;const cls=el.dataset.qm||\"p\";if(el.classList.contains(`qm-pre-${cls}`))return;const r=el.getBoundingClientRect();if(r.bottom<0||r.top>vh)return;outs.push(el);});outs.sort((a,b)=>a.getBoundingClientRect().top-b.getBoundingClientRect().top);outs.forEach((el,i)=>{const cls=el.dataset.qm||\"p\";el.style.transitionDelay=`${Math.min(i*T.step,T.stepMax)}ms`;el.classList.remove(`qm-in-${cls}`);el.classList.add(`qm-out-${cls}`);});};const onClick=e=>{if(e.defaultPrevented||e.button!==0)return;if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const a=e.target.closest(\"a[href]\");const url=eligible(a);if(!url)return;e.preventDefault();if(leaving)return;leaving=true;warm(url);// 1. the marked content sinks back down, top to bottom\nsink();// 2. the curtain comes down. adopt() has almost always\n//    run long ago; calling it here only matters if the\n//    click lands while the page is still opening.\nadopt();veil.style.willChange=\"transform\";veil.style.transition=`transform ${T.curtain}ms ${EASE_LEAVE}`;veil.style.transform=COVERING;// 3. the wordmark arrives late and quiet, and breathes\n//    if the next document keeps us waiting\nif(mark){mark.style.transition=`opacity 320ms ${EASE_LEAVE} ${T.markDelay}ms`;mark.style.opacity=\"0.62\";mark.style.animation=`qm-breathe 2.2s ease-in-out ${T.handover+320}ms infinite`;}window.setTimeout(()=>{location.href=url.href;},T.handover);};document.addEventListener(\"click\",onClick,true);cleanups.push(()=>document.removeEventListener(\"click\",onClick,true));}}return()=>cleanups.forEach(fn=>fn());},[isStatic,smoothScroll,reveals,hovers,transitions,exitMs,enterMs,curtainActive]);return /*#__PURE__*/_jsxs(\"div\",{style:{width:1,height:1,position:\"relative\",...style},children:[/*#__PURE__*/_jsx(\"style\",{children:OPEN_CSS}),/*#__PURE__*/_jsx(\"div\",{ref:veilRef,className:\"qm-veil\",\"aria-hidden\":\"true\",style:{position:\"fixed\",inset:0,zIndex:99999,background:\"#0e0e0c\",// covering at first paint, then lifted away by qm-open.\n// adopt() rewrites this to PARKED once the open is done.\ntransform:curtainActive?COVERING:PARKED,animation:curtainActive?`qm-open ${enterMs}ms ${EASE} ${OPEN_DELAY}ms both`:\"none\",backfaceVisibility:\"hidden\",boxShadow:\"0 24px 70px rgba(14,14,12,.26)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"span\",{ref:markRef,className:\"qm-veil-mark\",style:{font:\"500 11px/1 'Geist Mono', ui-monospace, monospace\",letterSpacing:\".3em\",textTransform:\"uppercase\",color:\"#f7f6f3\",opacity:0,animation:curtainActive?`qm-mark-out ${enterMs}ms ease ${OPEN_DELAY}ms both`:\"none\"},children:wordmark})})]});}addPropertyControls(QuireMotion,{smoothScroll:{type:ControlType.Boolean,title:\"Lerp scroll\",defaultValue:false},reveals:{type:ControlType.Boolean,title:\"Reveals\",defaultValue:true},hovers:{type:ControlType.Boolean,title:\"Hovers\",defaultValue:true},transitions:{type:ControlType.Boolean,title:\"Transitions\",defaultValue:true},enterMs:{type:ControlType.Number,title:\"Open\",min:300,max:1600,step:20,unit:\"ms\",defaultValue:760,hidden:p=>!p.transitions},exitMs:{type:ControlType.Number,title:\"Close\",min:300,max:1600,step:20,unit:\"ms\",defaultValue:860,hidden:p=>!p.transitions},wordmark:{type:ControlType.String,title:\"Wordmark\",defaultValue:\"QUIRE\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"QuireMotion\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"1\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QuireMotion.map","// QuireNav — the floating navigation.\n//\n// Desktop & tablet: one centred cluster — ink logo pill, frosted link pill,\n// availability badge. Phone (< 810px): logo left, badge + menu button right;\n// the button opens a full-screen ink menu (Esc or ✕ closes it).\n//\n// Place ONE instance per page, anywhere on the canvas: it pins itself to the\n// top of the viewport. Edit links, badge text and menu contact details in\n// the property panel. The current page's link is marked automatically.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,AnimatePresence,useReducedMotion}from\"framer-motion\";const INK=\"#0e0e0c\";const BONE=\"#f7f6f3\";const SIGNAL=\"#1f1be8\";const DEFAULT_LINKS=[{label:\"Work\",link:\"/work\"},{label:\"About\",link:\"/about\"},{label:\"Contact\",link:\"/contact\"}];// Resolve whatever the Link control stored; fall back to \"/label\".\nconst hrefOf=(l,label)=>{const fallback=label?\"/\"+label.trim().toLowerCase().replace(/\\s+/g,\"-\"):\"#\";if(!l)return fallback;if(typeof l===\"string\")return l||fallback;if(typeof l.href===\"string\"&&l.href)return l.href;if(typeof l.url===\"string\"&&l.url)return l.url;return fallback;};const GLASS={WebkitBackdropFilter:\"blur(16px) saturate(1.6)\",backdropFilter:\"blur(16px) saturate(1.6)\",border:\"1px solid rgba(228,226,220,.75)\",boxShadow:\"0 6px 24px rgba(14,14,12,.06)\"};const MONO_10={font:\"500 10px/1 'Geist Mono', ui-monospace, monospace\",letterSpacing:\".16em\",textTransform:\"uppercase\"};const CSS=`\n.qn-link:hover { background: rgba(14,14,12,.06); }\n.qn-link[aria-current=\"page\"] { background: rgba(14,14,12,.08); }\n.qn a:focus-visible, .qn button:focus-visible, .qn-menu a:focus-visible, .qn-menu button:focus-visible { outline: 2px solid ${SIGNAL}; outline-offset: 2px; }\n@media (max-width: 809px) {\n  .qn { justify-content: space-between !important; }\n  .qn-links { display: none !important; }\n  .qn-burger { display: flex !important; }\n}\n`;/**\n * @framerIntrinsicHeight 38\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function QuireNav(props){const{logo=\"QUIRE\",links=DEFAULT_LINKS,availability=\"Open for Q1\",showAvailability=true,topOffset=22,email=\"studio@marasandor.com\",address=\"Gammel Kongevej 21, 1610 K\\xf8benhavn\",socials=\"Instagram \\xb7 Are.na \\xb7 LinkedIn\",style}=props;const isStatic=useIsStaticRenderer();const reduced=useReducedMotion();const rootRef=React.useRef(null);const[open,setOpen]=React.useState(false);const[compact,setCompact]=React.useState(false);const[path,setPath]=React.useState(\"\");const items=links&&links.length?links:DEFAULT_LINKS;// Framer wraps code components in its own container. When that container\n// is position:fixed with z-index:auto it becomes a stacking context and\n// can trap the nav under later page sections, so lift it.\nReact.useEffect(()=>{if(typeof window===\"undefined\"||isStatic)return;let p=rootRef.current?.parentElement??null;for(let i=0;p&&p!==document.body&&i<12;i++,p=p.parentElement){const s=window.getComputedStyle(p);if((s.position===\"fixed\"||s.position===\"sticky\")&&(s.zIndex===\"auto\"||parseInt(s.zIndex)<900)){p.style.zIndex=\"950\";}}setPath(window.location.pathname.replace(/\\/$/,\"\")||\"/\");},[isStatic]);React.useEffect(()=>{if(typeof window===\"undefined\"||isStatic)return;const onScroll=()=>React.startTransition(()=>setCompact(window.scrollY>40));onScroll();window.addEventListener(\"scroll\",onScroll,{passive:true});return()=>window.removeEventListener(\"scroll\",onScroll);},[isStatic]);// Menu open: Esc closes, page behind doesn't scroll.\nReact.useEffect(()=>{if(typeof window===\"undefined\"||!open)return;const onKey=e=>e.key===\"Escape\"&&setOpen(false);const prev=document.documentElement.style.overflow;document.documentElement.style.overflow=\"hidden\";window.addEventListener(\"keydown\",onKey);return()=>{document.documentElement.style.overflow=prev;window.removeEventListener(\"keydown\",onKey);};},[open]);const isCurrent=h=>!!path&&h!==\"#\"&&(path===h||h!==\"/\"&&path.startsWith(h+\"/\"));const glassBg=compact?\"rgba(255,255,255,.8)\":\"rgba(255,255,255,.55)\";const pill={display:\"inline-flex\",alignItems:\"center\",height:38,padding:\"0 20px\",borderRadius:19,...MONO_10,fontSize:11,textDecoration:\"none\"};return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{width:\"100%\",height:1,...style},children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsxs(\"nav\",{\"aria-label\":\"Main\",className:\"qn\",style:{position:isStatic?\"absolute\":\"fixed\",top:topOffset,left:0,right:0,zIndex:900,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:8,padding:\"0 clamp(20px, 4.4vw, 64px)\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"a\",{href:\"/\",\"aria-label\":`${logo} — home`,style:{...pill,background:\"rgba(14,14,12,.94)\",color:BONE,flex:\"0 0 auto\",boxShadow:\"0 6px 24px rgba(14,14,12,.14)\",pointerEvents:\"auto\"},children:logo}),/*#__PURE__*/_jsx(\"div\",{className:\"qn-links\",style:{display:\"flex\",alignItems:\"center\",gap:2,height:38,padding:\"0 4px\",borderRadius:19,...GLASS,background:glassBg,transition:\"background 300ms\",pointerEvents:\"auto\"},children:items.map((it,i)=>{const h=hrefOf(it.link,it.label);return /*#__PURE__*/_jsx(\"a\",{href:h,className:\"qn-link\",\"aria-current\":isCurrent(h)?\"page\":undefined,style:{display:\"inline-flex\",alignItems:\"center\",height:30,padding:\"0 14px\",borderRadius:15,color:INK,font:\"500 13px/1 Archivo, system-ui, sans-serif\",letterSpacing:\"-0.01em\",textDecoration:\"none\",transition:\"background .2s ease\"},children:it.label},i);})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,flex:\"0 0 auto\",pointerEvents:\"auto\"},children:[showAvailability&&/*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",alignItems:\"center\",gap:9,height:38,padding:\"0 18px\",borderRadius:19,...GLASS,background:glassBg,transition:\"background 300ms\",color:INK,...MONO_10,whiteSpace:\"nowrap\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{width:7,height:7,borderRadius:\"50%\",background:SIGNAL,display:\"inline-block\"}}),availability]}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",\"aria-label\":\"Open menu\",\"aria-expanded\":open,onClick:()=>setOpen(true),className:\"qn-burger\",style:{width:38,height:38,borderRadius:\"50%\",...GLASS,background:glassBg,display:\"none\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:4,cursor:\"pointer\",padding:0},children:[/*#__PURE__*/_jsx(\"span\",{style:{width:16,height:1.4,background:INK,display:\"block\"}}),/*#__PURE__*/_jsx(\"span\",{style:{width:16,height:1.4,background:INK,display:\"block\"}})]})]})]}),/*#__PURE__*/_jsx(AnimatePresence,{children:open&&/*#__PURE__*/_jsxs(motion.div,{className:\"qn-menu\",role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Menu\",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:reduced?0:.26},style:{position:\"fixed\",inset:0,zIndex:9999,background:\"rgba(14,14,12,.94)\",WebkitBackdropFilter:\"blur(18px)\",backdropFilter:\"blur(18px)\",color:BONE,padding:`${topOffset}px clamp(20px, 6vw, 40px) 40px`,display:\"flex\",flexDirection:\"column\",overflowY:\"auto\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\"},children:[/*#__PURE__*/_jsx(\"a\",{href:\"/\",style:{...pill,background:BONE,color:INK},children:logo}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Close menu\",onClick:()=>setOpen(false),style:{width:38,height:38,borderRadius:\"50%\",border:\"1px solid rgba(247,246,243,.24)\",background:\"transparent\",color:BONE,display:\"grid\",placeItems:\"center\",cursor:\"pointer\",padding:0},children:/*#__PURE__*/_jsx(\"svg\",{width:\"15\",height:\"15\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M6 6l12 12M18 6L6 18\",stroke:\"currentColor\",strokeWidth:\"1.6\",strokeLinecap:\"round\"})})})]}),/*#__PURE__*/_jsx(\"ul\",{style:{listStyle:\"none\",margin:\"56px 0 0\",padding:0,borderTop:\"1px solid rgba(247,246,243,.16)\"},children:items.map((it,i)=>{const h=hrefOf(it.link,it.label);return /*#__PURE__*/_jsx(motion.li,{initial:{opacity:0,y:reduced?0:16},animate:{opacity:1,y:0},transition:{duration:reduced?0:.34,delay:reduced?0:.06*i,ease:[.22,1,.36,1]},style:{borderBottom:\"1px solid rgba(247,246,243,.16)\"},children:/*#__PURE__*/_jsxs(\"a\",{href:h,\"aria-current\":isCurrent(h)?\"page\":undefined,onClick:()=>setOpen(false),style:{display:\"flex\",alignItems:\"baseline\",gap:20,padding:\"18px 0\",textDecoration:\"none\",color:BONE},children:[/*#__PURE__*/_jsx(\"span\",{style:{...MONO_10,opacity:.5},children:String(i+1).padStart(2,\"0\")}),/*#__PURE__*/_jsx(\"span\",{style:{font:\"300 clamp(30px, 9vw, 40px)/1.1 'Fraunces', Georgia, serif\"},children:it.label})]})},i);})}),/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:\"auto\",paddingTop:48},children:[showAvailability&&/*#__PURE__*/_jsxs(\"p\",{style:{...MONO_10,margin:\"0 0 14px\",display:\"flex\",alignItems:\"center\",gap:8},children:[/*#__PURE__*/_jsx(\"span\",{style:{width:6,height:6,borderRadius:\"50%\",background:SIGNAL,display:\"inline-block\"}}),availability]}),email&&/*#__PURE__*/_jsx(\"a\",{href:`mailto:${email}`,style:{display:\"block\",margin:\"0 0 6px\",font:\"400 15px/1.5 Archivo, system-ui, sans-serif\",color:BONE,textDecoration:\"none\"},children:email}),address&&/*#__PURE__*/_jsx(\"p\",{style:{margin:\"0 0 18px\",font:\"400 13px/1.5 Archivo, system-ui, sans-serif\",color:\"rgba(247,246,243,.6)\"},children:address}),socials&&/*#__PURE__*/_jsx(\"p\",{style:{...MONO_10,margin:0,color:\"rgba(247,246,243,.6)\"},children:socials})]})]})})]});}addPropertyControls(QuireNav,{logo:{type:ControlType.String,title:\"Logo\",defaultValue:\"QUIRE\"},links:{type:ControlType.Array,title:\"Links\",control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Work\"},link:{type:ControlType.Link,title:\"Link\"}}},defaultValue:DEFAULT_LINKS,maxCount:6},showAvailability:{type:ControlType.Boolean,title:\"Badge\",defaultValue:true},availability:{type:ControlType.String,title:\"Status\",defaultValue:\"Open for Q1\",hidden:p=>!p.showAvailability},topOffset:{type:ControlType.Number,title:\"Top\",min:0,max:80,step:1,unit:\"px\",defaultValue:22},email:{type:ControlType.String,title:\"Menu email\",defaultValue:\"studio@marasandor.com\"},address:{type:ControlType.String,title:\"Menu address\",defaultValue:\"Gammel Kongevej 21, 1610 K\\xf8benhavn\"},socials:{type:ControlType.String,title:\"Menu socials\",defaultValue:\"Instagram \\xb7 Are.na \\xb7 LinkedIn\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"QuireNav\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"38\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QuireNav.map","// Quire reel: the wall-strip band from the Figma footer — a paper band of\n// image plates drifting sideways forever, with soft edge fades. Pauses when\n// off-screen and stands still under reduced motion or on the Framer canvas.\n//\n// v2 PERF: the strip is driven by a CSS keyframe animation instead of a\n// per-frame JS (framer-motion) tween. CSS transform animations run on the\n// compositor thread, so the band costs the main thread NOTHING per frame and\n// can no longer fight the user's scroll — this was the \"freeze on footer\".\n// Off-screen it is paused via animation-play-state (no work at all), and the\n// plate images are requested at the size they actually render instead of a\n// flat 480px, so the footer decodes far fewer pixels.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useReducedMotion}from\"framer-motion\";const U=(id,w=480)=>`https://images.unsplash.com/${id}?auto=format&fit=crop&w=${w}&q=80`;const srcOf=v=>typeof v===\"string\"?v:v&&(v.src||v.url)||\"\";const DEFAULT_IMAGES=[U(\"photo-1595142545813-06fee27f3dcb\"),U(\"photo-1504625709867-b4e45e3bb9dd\"),U(\"photo-1644426358812-879f02d1d867\"),U(\"photo-1531347058246-6dfef49b7b7b\"),U(\"photo-1626320290598-03656e931a31\"),U(\"photo-1519748771451-a94c596fad67\"),U(\"photo-1592966719124-2ca2978ba325\"),U(\"photo-1596382940920-9f73b2d15901\"),U(\"photo-1635776062127-d379bfcba9f8\"),U(\"photo-1467951591042-f388365db261\"),U(\"photo-1531591022136-eb8b0da1e6d0\"),U(\"photo-1716249738093-623a70ad6531\")];/**\n * @framerIntrinsicHeight 170\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function QuireReel(props){const{images,plateHeight=118,gap=10,speed=32,dark=false,reverse=false,style}=props;const isStatic=useIsStaticRenderer();const reduced=useReducedMotion();const ref=React.useRef(null);const[inView,setInView]=React.useState(true);React.useEffect(()=>{if(typeof window===\"undefined\")return;const el=ref.current;if(!el)return;const io=new IntersectionObserver(([e])=>React.startTransition(()=>setInView(e.isIntersecting)),{rootMargin:\"80px\"});io.observe(el);return()=>io.disconnect();},[]);// ask Unsplash for roughly what the widest plate renders at, @2x\nconst reqW=Math.min(800,Math.max(240,Math.round(plateHeight*1.5*2/20)*20));const sized=React.useCallback(u=>u.indexOf(\"images.unsplash.com\")>=0?u.replace(/([?&])w=\\d+/,`$1w=${reqW}`):u,[reqW]);const list=React.useMemo(()=>{const raw=images&&images.length?images:DEFAULT_IMAGES;const out=raw.map(srcOf).filter(Boolean).map(sized);return out.length?out:DEFAULT_IMAGES.map(sized);},[images,sized]);// widths cycle so the strip reads like the wall, not a carousel\nconst aspects=[.78,1.35,1,.85,1.5,1.1];const run=React.useMemo(()=>[...list,...list],[list]);const still=isStatic||reduced;const bg=dark?\"#0e0e0c\":\"#f7f6f3\";const duration=Math.max(14,list.length*(plateHeight*1.1+gap)/speed);return /*#__PURE__*/_jsxs(\"div\",{ref:ref,\"aria-hidden\":\"true\",style:{position:\"relative\",width:\"100%\",overflow:\"hidden\",background:bg,padding:\"26px 0\",...style},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                @keyframes quire-reel-slide {\n                    from { transform: translate3d(0, 0, 0); }\n                    to { transform: translate3d(-50%, 0, 0); }\n                }\n            `}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",width:\"max-content\",alignItems:\"center\",gap,willChange:\"transform\",animationName:still?\"none\":\"quire-reel-slide\",animationDuration:`${duration.toFixed(2)}s`,animationTimingFunction:\"linear\",animationIterationCount:\"infinite\",animationDirection:reverse?\"reverse\":\"normal\",animationPlayState:inView?\"running\":\"paused\"},children:run.map((src,i)=>/*#__PURE__*/_jsx(\"div\",{style:{width:Math.round(plateHeight*aspects[i%aspects.length]),height:plateHeight,borderRadius:2,overflow:\"hidden\",flex:\"0 0 auto\",backgroundColor:dark?\"#1c1a17\":\"#eceae4\"},children:/*#__PURE__*/_jsx(\"img\",{src:src,alt:\"\",loading:\"lazy\",decoding:\"async\",draggable:false,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"}})},i))}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,bottom:0,left:0,width:120,pointerEvents:\"none\",background:`linear-gradient(to right, ${bg}, ${dark?\"rgba(14,14,12,0)\":\"rgba(247,246,243,0)\"})`}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,bottom:0,right:0,width:120,pointerEvents:\"none\",background:`linear-gradient(to left, ${bg}, ${dark?\"rgba(14,14,12,0)\":\"rgba(247,246,243,0)\"})`}})]});}addPropertyControls(QuireReel,{images:{type:ControlType.Array,title:\"Images\",control:{type:ControlType.ResponsiveImage},defaultValue:DEFAULT_IMAGES,maxCount:24},plateHeight:{type:ControlType.Number,title:\"Height\",min:60,max:260,step:2,defaultValue:118},gap:{type:ControlType.Number,title:\"Gap\",min:2,max:40,step:1,defaultValue:10},speed:{type:ControlType.Number,title:\"Speed\",min:8,max:120,step:1,unit:\"px/s\",defaultValue:32},dark:{type:ControlType.Boolean,title:\"Ink\",defaultValue:false},reverse:{type:ControlType.Boolean,title:\"Reverse\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"QuireReel\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"170\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QuireReel.map","// Generated by Framer (f9faa6c)\nexport default function metadata(params,activeLocale){return{description:\"Quire is a portfolio template for art directors, designers and photographers, built on one idea: show the work, not a paragraph about the work.\",favicon:\"https://framerusercontent.com/assets/PmFw3JxEy9IyBQq6PvTwI8zpG6k.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/pdmOcfkv91hz7IOmEy3NtbfebYQ.jpg\",title:\"Quire\"};}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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"}