{"version":3,"file":"script_main.C3Lp2A0h.mjs","names":["NOIRCodePageTransition","NOIRCodeSmoothScroll","NOIRCodeCustomCursor","useRef","React.useId","React.createElement","MainLayout","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder","React.Suspense","React.lazy"],"sources":["https:/framerusercontent.com/modules/o3g4LaN3l4NAgkTK7zmd/TVX2LK2LT1jPISzsnEOO/CustomCursor.js","https:/framerusercontent.com/modules/Ek00wBncMZJvjJm77MeH/LiH7XEV0VPyDmEh8SLdI/PageTransition.js","https:/framerusercontent.com/modules/rGNfp7bwAylrRw5jaixg/DRNBg2b9Aj73dDpdJwG4/SmoothScroll.js","https:/framerusercontent.com/modules/7H1hxRqfjCGFomSC1GtY/iYAv43WVS6lAwSb0uNFu/Cevq7UMkO.js","framer:toplevel/main"],"sourcesContent":["// @ts-nocheck\nimport{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * NOIRÉ — Custom Cursor\n * The champagne cursor: a dot that glides behind the pointer, a ring over links and buttons, and a frosted pill over\n * cards labelled for what they open (View room, Read story, Discover, Explore, Enlarge). The card's photo drifts\n * gently with the pointer while it is hovered. Mouse and trackpad only; touch devices keep their own behaviour.\n *\n * Lives once in the Main Layout. The published site also carries the same cursor in Site Settings → Custom Code, so\n * it starts before the page hydrates; this component then only hands it the labels below. In Framer's Preview, where\n * custom code never runs, this component installs the cursor itself. Edit the labels here: they apply in both.\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 1\n * @framerIntrinsicHeight 1\n */const CSS='/* NOIR\\xc9 cursor (mouse / trackpad only; built by motion script part 7, which adds html.noire-cursor).\\n   Champagne on every surface: it reads on Ink, on Bone and on the dawn sky alike.\\n   \\xb7 rest     14 px champagne dot, gliding a breath behind the pointer\\n   \\xb7 link     the dot opens into a 42 px champagne ring with a faint wash (text links, nav, footer, small controls)\\n   \\xb7 button   a 56 px ring for buttons and CTAs\\n   \\xb7 media    a compact frosted-ink pill over cards, photo links and galleries, labelled for what it opens (View room,\\n              Read story, Discover, Explore, Enlarge) — see \"media pill\" below\\n   \\xb7 press    the whole cursor tightens\\n   Text fields keep the I-beam. (The room cards\\' separate Framer cursor was removed 2026-10-14: one cursor everywhere.) */\\nhtml.noire-cursor, html.noire-cursor body { cursor: none; }\\nhtml.noire-cursor [data-nc-hide], html.noire-cursor [data-nc-hide] * { cursor: none !important; }\\nhtml.noire-cursor input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"submit\"]):not([type=\"button\"]),\\nhtml.noire-cursor textarea, html.noire-cursor [contenteditable=\"true\"] { cursor: text !important; }\\n\\n/* The follow is driven per display frame by the motion script (exponential glide), so no transform transition\\n   here: a transition retargeted on every pointer event restarts its curve each time and stutters. */\\n.noire-cursor-el {\\n  position: fixed; left: 0; top: 0; width: 0; height: 0; z-index: 2147483000; pointer-events: none;\\n  opacity: 0; will-change: transform, opacity; backface-visibility: hidden; contain: layout style;\\n  transition: opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1);\\n}\\n.noire-cursor-el.is-on { opacity: 1; }\\n.noire-cursor-el.is-off { opacity: 0; }\\n.nc-press { position: absolute; left: 0; top: 0; transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); }\\n.noire-cursor-el.is-down .nc-press { transform: scale(0.82); }\\n.nc-dot {\\n  position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%;\\n  background: #B9966A; box-shadow: 0 0 0 1px rgba(13, 12, 10, 0.2);\\n  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s;\\n}\\n.nc-ring {\\n  position: absolute; left: -28px; top: -28px; width: 56px; height: 56px; border-radius: 50%;\\n  border: 1px solid rgba(185, 150, 106, 0.95); background: rgba(185, 150, 106, 0.1);\\n  opacity: 0; transform: scale(0.15);\\n  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.4s;\\n}\\n/* The media pill (cards, photo links, galleries): a compact frosted-ink pill, 38 px tall, centred on the pointer.\\n   It opens from a 38 px bead into the pill (clip-path), the label\\'s letters rise in one by one, and a champagne arrow\\n   (a plus over galleries) slides in after them. Dark glass with a hairline edge reads on every photograph. */\\n.nc-view {\\n  position: absolute; left: 0; top: 0; height: 38px; padding: 0 15px 0 18px; border-radius: 19px; box-sizing: border-box;\\n  display: flex; flex-direction: row; align-items: center; gap: 10px;\\n  background: rgba(13, 12, 10, 0.46); color: #F4EFE6;\\n  -webkit-backdrop-filter: blur(14px) saturate(1.15); backdrop-filter: blur(14px) saturate(1.15);\\n  box-shadow: inset 0 0 0 1px rgba(244, 239, 230, 0.2), 0 14px 32px -16px rgba(13, 12, 10, 0.6);\\n  font: 500 12px/1 \"Satoshi\", sans-serif; letter-spacing: 0.14em; text-transform: uppercase; white-space: nowrap;\\n  opacity: 0; transform: translate(-50%, -50%) scale(0.5);\\n  clip-path: inset(0 calc(50% - 19px) round 19px);\\n  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1),\\n    clip-path 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.04s;\\n}\\n.nc-label { display: flex; }\\n.nc-label span { display: inline-block; opacity: 0; transform: translateY(6px);\\n  transition: opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1), transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);\\n  transition-delay: calc(var(--i, 0) * 18ms + 120ms); }\\n.nc-icon { flex: none; width: 12px; height: 12px; color: #B9966A; opacity: 0; transform: translate(-4px, 4px);\\n  transition: opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1) 0.3s, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.3s; }\\n.nc-icon-plus { display: none; transform: rotate(-90deg) scale(0.6); }\\n.noire-cursor-el.nc-plus .nc-icon-arrow { display: none; }\\n.noire-cursor-el.nc-plus .nc-icon-plus { display: block; }\\n.noire-cursor-el.is-media .nc-label span { opacity: 1; transform: none; }\\n.noire-cursor-el.is-media .nc-icon { opacity: 1; transform: none; }\\n.noire-cursor-el:not(.is-media) .nc-label span, .noire-cursor-el:not(.is-media) .nc-icon { transition-delay: 0s; transition-duration: 0.15s; }\\n.noire-cursor-el.is-link .nc-dot, .noire-cursor-el.is-button .nc-dot, .noire-cursor-el.is-media .nc-dot { transform: scale(0); opacity: 0; }\\n.noire-cursor-el.is-link .nc-ring { opacity: 1; transform: scale(0.75); }\\n.noire-cursor-el.is-button .nc-ring { opacity: 1; transform: scale(1); background-color: rgba(185, 150, 106, 0.06); }\\n.noire-cursor-el.is-media .nc-view { opacity: 1; transform: translate(-50%, -50%) scale(1); clip-path: inset(0 0 round 19px); }\\n.noire-cursor-el.is-down .nc-view { background: rgba(13, 12, 10, 0.6); }\\n@media (prefers-reduced-motion: reduce) {\\n  .nc-dot, .nc-ring, .nc-view, .nc-press, .nc-label span, .nc-icon { transition-duration: 0.01s !important; transition-delay: 0s !important; }\\n  .noire-cursor-el { transition: opacity 0.2s; }\\n}';function install(L){if(typeof window===\"undefined\")return;const doc=document,root=document.documentElement;if(root.classList.contains(\"noire-cursor\")||window.__noireCursorComponent)return;window.__noireCursorComponent=true;if(!doc.querySelector('style[data-noire=\"cursor\"]')){const s=doc.createElement(\"style\");s.setAttribute(\"data-noire\",\"cursor\");s.textContent=CSS;doc.head.appendChild(s);}(function(){if(!window.matchMedia(\"(hover: hover) and (pointer: fine)\").matches)return;var el=doc.createElement(\"div\");el.className=\"noire-cursor-el\";el.setAttribute(\"aria-hidden\",\"true\");el.innerHTML='<div class=\"nc-press\"><div class=\"nc-dot\"></div><div class=\"nc-ring\"></div><div class=\"nc-view\"><span class=\"nc-label\"></span>'+'<svg class=\"nc-icon nc-icon-arrow\" viewBox=\"0 0 14 14\" aria-hidden=\"true\"><path d=\"M3.5 10.5 10.5 3.5M5 3.5h5.5V9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.25\"/></svg>'+'<svg class=\"nc-icon nc-icon-plus\" viewBox=\"0 0 14 14\" aria-hidden=\"true\"><path d=\"M7 2.5v9M2.5 7h9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.25\"/></svg></div></div>';var labelEl=el.querySelector(\".nc-label\"),curLabel=\"\";// The media disc's label, one span per letter (they rise in one after another, see \"NOIRÉ cursor\").\nvar setLabel=function(t,icon){el.classList.toggle(\"nc-plus\",icon===\"plus\");if(t===curLabel)return;curLabel=t;labelEl.textContent=\"\";t.split(\"\").forEach(function(ch,i){var s=doc.createElement(\"span\");s.textContent=ch===\" \"?\"\\xa0\":ch;s.style.setProperty(\"--i\",i);labelEl.appendChild(s);});};var mount=function(){if(!el.isConnected)doc.body.appendChild(el);};var kind=\"\";// The glide: once per display frame, a two-stage exponential follow (frame-rate independent). The pointer\n// target is eased first, then the dot eases towards that, so the uneven rhythm of mouse events (two in one\n// frame, one in the next) is filtered out and the dot's speed changes continuously. It never restarts or steps\n// the way a transition retargeted on every pointer event does; the loop sleeps once the dot has landed.\n// Same follow with reduced motion: tracking the pointer is not decorative motion, and a tighter follow would let\n// the uneven event rhythm through as stutter.\nvar TAU=.075;var tx=0,ty=0,ex=0,ey=0,cx=0,cy=0,raf=0,last=0;var draw=function(){el.style.transform=\"translate3d(\"+cx.toFixed(2)+\"px,\"+cy.toFixed(2)+\"px,0)\";};var step=function(now){var dt=Math.min(Math.max(now-last,1),64)/1e3;last=now;var T=kind===\"media\"?TAU*1.3:TAU;// the pill follows with a touch more weight\nvar k1=1-Math.exp(-dt/(T*.4)),k2=1-Math.exp(-dt/(T*.6));ex+=(tx-ex)*k1;ey+=(ty-ey)*k1;cx+=(ex-cx)*k2;cy+=(ey-cy)*k2;if(Math.abs(tx-cx)<.05&&Math.abs(ty-cy)<.05&&Math.abs(tx-ex)<.05&&Math.abs(ty-ey)<.05){cx=ex=tx;cy=ey=ty;draw();raf=0;return;}draw();raf=requestAnimationFrame(step);};var place=function(x,y,jump){tx=x;ty=y;if(jump){cx=ex=x;cy=ey=y;draw();return;}if(!raf){last=performance.now();raf=requestAnimationFrame(step);}};var setKind=function(k,label,icon){if(k===\"media\")setLabel(label||L.other,icon||\"\");if(k===kind)return;kind=k;el.classList.toggle(\"is-link\",k===\"link\");el.classList.toggle(\"is-button\",k===\"button\");el.classList.toggle(\"is-media\",k===\"media\");el.classList.toggle(\"is-off\",k===\"off\");};var classify=function(t){var node=t&&t.nodeType===1?t:t&&t.parentElement;if(!node||!node.closest)return\"\";if(node.closest(\"[data-framer-cursor]\"))return\"off\";var marked=node.closest(\"[data-nc]\");if(marked)return marked.getAttribute(\"data-nc\");var c=getComputedStyle(node).cursor;if(c===\"text\")return\"off\";// gallery photos (zoom-in): the disc with L.gallery and a plus\nif(c===\"zoom-in\"){var z=node;while(z.parentElement&&z.parentElement!==doc.body&&getComputedStyle(z.parentElement).cursor===\"zoom-in\")z=z.parentElement;// only what really opens (a button, a link or a focusable control); a zoom-in cursor on a static image gets the plain dot\nif(!z.closest('button, a[href], [role=\"button\"], [tabindex]:not([tabindex=\"-1\"])')){z.setAttribute(\"data-nc\",\"\");z.setAttribute(\"data-nc-hide\",\"\");return\"\";}z.setAttribute(\"data-nc\",\"media\");z.setAttribute(\"data-nc-label\",L.gallery);z.setAttribute(\"data-nc-icon\",\"plus\");z.setAttribute(\"data-nc-hide\",\"\");return\"media\";}if(c!==\"pointer\")return\"\";// the clickable root: the outermost ancestor that still shows the hand\nvar r=node;while(r.parentElement&&r.parentElement!==doc.body&&getComputedStyle(r.parentElement).cursor===\"pointer\")r=r.parentElement;var box=r.getBoundingClientRect();var media=box.width>=160&&box.height>=120&&!!r.querySelector(\"img,video,canvas\")||!!r.closest('[data-framer-name=\"Experience Row\"]');// experience rows are cards too (they open an experience), however short\nvar button=!media&&(r.tagName===\"BUTTON\"||r.getAttribute(\"role\")===\"button\"||r.hasAttribute(\"data-noire-roll-root\")||box.height>=40&&box.width>=96&&getComputedStyle(r).backgroundColor!==\"rgba(0, 0, 0, 0)\");var k=media?\"media\":button?\"button\":\"link\";r.setAttribute(\"data-nc\",k);r.setAttribute(\"data-nc-hide\",\"\");if(media)r.setAttribute(\"data-nc-label\",r.closest('[data-framer-name=\"Room Card\"]')?L.room:r.closest('[data-framer-name=\"Journal Card\"]')?L.story:r.closest('[data-framer-name=\"Offer Invitation\"],[data-framer-name=\"Offer Row\"]')?L.offer:r.closest('[data-framer-name=\"Experience Row\"]')?L.experience:L.other);return k;};var lx=-1,ly=-1;// last pointer position (viewport)\ndoc.addEventListener(\"pointermove\",function(e){if(e.pointerType!==\"mouse\")return;lx=e.clientX;ly=e.clientY;mount();if(!el.classList.contains(\"is-on\")){// arriving (first move, back into the window): appear where the pointer is, no glide from the old spot\nplace(e.clientX,e.clientY,true);el.classList.add(\"is-on\");return;}place(e.clientX,e.clientY);},{passive:true});// What is under the pointer decides the cursor's state (pill over cards, ring over links, dot elsewhere).\nvar settle=function(n){var k=classify(n);var lab=n&&n.closest?n.closest(\"[data-nc-label]\"):null;setKind(k,lab&&lab.getAttribute(\"data-nc-label\"),lab&&lab.getAttribute(\"data-nc-icon\"));depthTarget(n);};doc.addEventListener(\"pointerover\",function(e){if(e.pointerType!==\"mouse\")return;settle(e.target&&e.target.nodeType===1?e.target:e.target&&e.target.parentElement);},{passive:true});// Scrolling with a still mouse moves the page under the pointer without any pointer event, so the pill would ride\n// along off the card. On every scroll frame the element under the last pointer position is looked up again: the\n// pill becomes the dot the moment the card has scrolled out from under the pointer (and returns over the next one).\nvar scrollRaf=0;var recheck=function(){scrollRaf=0;if(lx<0||!el.classList.contains(\"is-on\"))return;settle(doc.elementFromPoint(lx,ly));};window.addEventListener(\"scroll\",function(){if(!scrollRaf)scrollRaf=requestAnimationFrame(recheck);},{passive:true,capture:true});// Photo depth: the hovered card's photo drifts gently opposite the cursor inside its frame (a window you look\n// through), eased per frame. The drift is clamped every frame to the margin the photo's current zoom leaves in its\n// frame, so no edge ever shows — including while the zoom returns after the pointer leaves.\nvar CARD='[data-framer-name=\"Room Card\"],[data-framer-name=\"Journal Card\"],[data-framer-name=\"Offer Invitation\"],[data-framer-name=\"Offer Row\"]';var still=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;var D={card:null,img:null,layer:null,nx:0,ny:0,x:0,y:0,raf:0,last:0,leaving:[]};var photoOf=function(card){var best=null,area=0;[].forEach.call(card.querySelectorAll(\"img\"),function(i){var r=i.getBoundingClientRect();if(r.width*r.height>area){area=r.width*r.height;best=i;}});if(!best)return null;var layer=best;while(layer&&layer!==card&&layer.getAttribute(\"data-framer-name\")!==\"Image\")layer=layer.parentElement;return{img:best,layer:layer&&layer!==card?layer:best.parentElement};};var zoomOf=function(layer){var m=getComputedStyle(layer).transform;if(!m||m===\"none\")return 1;var v=m.match(/matrix\\(([^,]+)/);return v?parseFloat(v[1]):1;};var depthStep=function(now){var dt=Math.min(Math.max(now-D.last,1),64)/1e3;D.last=now;var k=1-Math.exp(-dt/.22);var busy=false;var drive=function(s,tx,ty){s.x+=(tx-s.x)*k;s.y+=(ty-s.y)*k;var z=zoomOf(s.layer),w=s.layer.offsetWidth,h=s.layer.offsetHeight;var mx=Math.max(0,(z-1)*w/(2*z))*.8,my=Math.max(0,(z-1)*h/(2*z))*.8;s.x=Math.max(-mx,Math.min(mx,s.x));s.y=Math.max(-my,Math.min(my,s.y));s.img.style.translate=s.x.toFixed(2)+\"px \"+s.y.toFixed(2)+\"px\";return Math.abs(tx-s.x)>.05||Math.abs(ty-s.y)>.05||z>1.0005;};if(D.card&&D.img){var z=zoomOf(D.layer),w=D.layer.offsetWidth,h=D.layer.offsetHeight;var mx=Math.max(0,(z-1)*w/(2*z))*.8,my=Math.max(0,(z-1)*h/(2*z))*.8;if(drive(D,-D.nx*mx,-D.ny*my))busy=true;}D.leaving=D.leaving.filter(function(s){var go=drive(s,0,0);if(!go)s.img.style.translate=\"\";return go;});if(D.leaving.length)busy=true;D.raf=busy?requestAnimationFrame(depthStep):0;};var depthKick=function(){if(!D.raf){D.last=performance.now();D.raf=requestAnimationFrame(depthStep);}};var depthTarget=function(n){if(still)return;var card=n&&n.closest?n.closest(CARD):null;if(card===D.card)return;if(D.card&&D.img)D.leaving.push({img:D.img,layer:D.layer,x:D.x,y:D.y});D.card=card;D.img=null;D.x=D.y=0;if(card){var p=photoOf(card);if(p){D.img=p.img;D.layer=p.layer;}}depthKick();};doc.addEventListener(\"pointermove\",function(e){if(e.pointerType!==\"mouse\"||!D.card||!D.layer)return;var r=D.layer.getBoundingClientRect();D.nx=Math.max(-1,Math.min(1,((e.clientX-r.left)/r.width-.5)*2));D.ny=Math.max(-1,Math.min(1,((e.clientY-r.top)/r.height-.5)*2));depthKick();},{passive:true});doc.addEventListener(\"pointerdown\",function(e){if(e.pointerType===\"mouse\")el.classList.add(\"is-down\");},{passive:true});doc.addEventListener(\"pointerup\",function(){el.classList.remove(\"is-down\");},{passive:true});doc.addEventListener(\"mouseout\",function(e){if(!e.relatedTarget)el.classList.remove(\"is-on\");});window.addEventListener(\"blur\",function(){el.classList.remove(\"is-on\",\"is-down\");});// after a page change the element under a still pointer is new: forget the old state\naddEventListener(\"popstate\",function(){setKind(\"\");});root.classList.add(\"noire-cursor\");})();}export default function CustomCursor(props){const{room=\"View room\",story=\"Read story\",offer=\"Discover\",experience=\"Explore\",gallery=\"Enlarge\",other=\"View\"}=props;React.useEffect(()=>{if(RenderTarget.current()===RenderTarget.canvas)return;const L={room,story,offer,experience,gallery,other};window.__noireCursorLabels=L;document.querySelectorAll(\"[data-nc-label]\").forEach(n=>{if(!n.hasAttribute(\"data-nc-icon\"))n.removeAttribute(\"data-nc\");});install(L);},[room,story,offer,experience,gallery,other]);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{width:1,height:1,pointerEvents:\"none\"}});}CustomCursor.displayName=\"NOIR\\xc9/Code/Custom Cursor\";addPropertyControls(CustomCursor,{room:{type:ControlType.String,title:\"Room cards\",defaultValue:\"View room\"},story:{type:ControlType.String,title:\"Journal cards\",defaultValue:\"Read story\"},offer:{type:ControlType.String,title:\"Offer cards\",defaultValue:\"Discover\"},experience:{type:ControlType.String,title:\"Experiences\",defaultValue:\"Explore\"},gallery:{type:ControlType.String,title:\"Gallery\",defaultValue:\"Enlarge\",description:\"Photos that open full screen.\"},other:{type:ControlType.String,title:\"Other cards\",defaultValue:\"View\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CustomCursor\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CustomCursor.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const EASE=\"cubic-bezier(0.76, 0, 0.24, 1)\";const MAX_WAIT=8e3// ms the curtain waits for the new page before lifting regardless (only a broken load gets here)\n;const fontsHref=\"https://api.fontshare.com/v2/css?f[]=boska@300&display=swap\";function pageKey(url){return url.pathname.replace(/\\/+$/,\"\")+url.search;}export default function PageTransition(props){const{color=\"#0D0C0A\",line=\"#B9966A\",wordmark=\"NOIR\\xc9\",wordmarkColor=\"#EEE8DD\",duration=.4,reducedMotion=\"fade\"}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;React.useEffect(()=>{if(typeof window===\"undefined\"||isCanvas)return;const reduce=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const fade=reduce&&reducedMotion===\"fade\";const inT=Math.max(.2,duration)// cover\n;const outT=inT*.8// uncover: brisk, so the new page is there almost as soon as it is ready\n;if(wordmark&&!document.querySelector(\"link[data-noire-pt-font]\")){const l=document.createElement(\"link\");l.rel=\"stylesheet\";l.href=fontsHref;l.setAttribute(\"data-noire-pt-font\",\"\");document.head.appendChild(l);}// The curtain: a fixed panel above the page (below the custom cursor), parked off-screen until needed.\nconst curtain=document.createElement(\"div\");curtain.setAttribute(\"aria-hidden\",\"true\");curtain.setAttribute(\"data-noire-page-transition\",\"\");Object.assign(curtain.style,{position:\"fixed\",left:\"0\",top:\"0\",width:\"100%\",height:\"100lvh\",zIndex:\"2147482000\",background:color,pointerEvents:\"none\",visibility:\"hidden\",willChange:\"transform, opacity\",transform:fade?\"none\":\"translate3d(0,100%,0)\",opacity:fade?\"0\":\"1\",display:\"grid\",placeItems:\"center\",contain:\"strict\"});const edge=document.createElement(\"div\");Object.assign(edge.style,{position:\"absolute\",left:\"0\",right:\"0\",top:\"0\",height:\"1px\",background:line,opacity:fade?\"0\":\"0.9\"});const mark=document.createElement(\"div\");mark.textContent=wordmark;Object.assign(mark.style,{font:'300 clamp(22px, 2.2vw, 30px)/1 \"Boska\", \"Times New Roman\", serif',letterSpacing:\"0.32em\",textIndent:\"0.32em\",color:wordmarkColor,opacity:\"0\",transform:\"translate3d(0,12px,0)\",whiteSpace:\"nowrap\"});curtain.append(edge,mark);document.body.appendChild(curtain);let busy=false;let bypass=false;let anims=[];let coverAnim=null// the curtain's closing animation (finished early if the page swaps)\n;const stopAnims=()=>{anims.forEach(a=>{try{a.commitStyles();}catch(e){}a.cancel();});anims=[];};const play=(el,frames,ms,delay=0,easing=EASE)=>{const a=el.animate(frames,{duration:ms,delay,easing,fill:\"forwards\"});anims.push(a);return a.finished.catch(()=>{});};const cover=()=>{stopAnims();curtain.style.visibility=\"visible\";curtain.style.pointerEvents=\"auto\"// no second click mid-transition\n;const ms=inT*1e3;if(fade){play(mark,[{opacity:0,transform:\"none\"},{opacity:1,transform:\"none\"}],ms*.8,ms*.3,\"ease-out\");const done=play(curtain,[{opacity:0},{opacity:1}],ms,0,\"ease-in-out\");coverAnim=anims[anims.length-1];return done;}play(mark,[{opacity:0,transform:\"translate3d(0,12px,0)\"},{opacity:1,transform:\"none\"}],ms*.9,ms*.45,\"cubic-bezier(0.22, 1, 0.36, 1)\");const done=play(curtain,[{transform:\"translate3d(0,100%,0)\"},{transform:\"none\"}],ms);coverAnim=anims[anims.length-1];return done;};const uncover=async()=>{const ms=outT*1e3;stopAnims();if(fade){play(mark,[{opacity:1},{opacity:0}],ms*.5,0,\"ease-in\");await play(curtain,[{opacity:1},{opacity:0}],ms,ms*.15,\"ease-in-out\");}else{play(mark,[{opacity:1,transform:\"none\"},{opacity:0,transform:\"translate3d(0,-10px,0)\"}],ms*.45,0,\"ease-in\");await play(curtain,[{transform:\"none\"},{transform:\"translate3d(0,-100%,0)\"}],ms);}stopAnims();curtain.style.visibility=\"hidden\";curtain.style.pointerEvents=\"none\";if(!fade)curtain.style.transform=\"translate3d(0,100%,0)\";mark.style.opacity=\"0\";busy=false;};// The page on screen is recognised by its H1 (one per page); without one, by its first named layer. Framer\n// changes the address *before* the new page has loaded and rendered (a heavy page such as Home can take\n// seconds), so the address alone must never lift the curtain: the old page's marker has to be gone.\nconst markerOf=()=>document.querySelector(\"#main h1\")||document.querySelector(\"#main [data-framer-name]\");let marker=markerOf();// Images in the first screen of the new page (and the fonts) get a moment to be ready before it is shown.\nconst firstScreenReady=cap=>new Promise(resolve=>{const imgs=Array.from(document.querySelectorAll(\"#main img\")).filter(img=>{const r=img.getBoundingClientRect();return r.bottom>0&&r.top<window.innerHeight&&r.width>0&&!img.complete;});const fonts=document.fonts?.ready||Promise.resolve();const all=Promise.all([fonts,...imgs.map(img=>new Promise(r=>{img.addEventListener(\"load\",r,{once:true});img.addEventListener(\"error\",r,{once:true});}))]);Promise.race([all,new Promise(r=>setTimeout(r,cap))]).then(()=>resolve());});// Resolves once the new page has replaced the old one, rendered and gone quiet (or the cap is hit).\nconst whenArrived=(fromKey,old)=>new Promise(resolve=>{const t0=performance.now();let lastMut=performance.now();const strong=!!old&&old.tagName===\"H1\"// an H1 is a reliable marker; a named layer may be shared\n    ;const root=document.getElementById(\"main\")||document.body;const mo=new MutationObserver(()=>lastMut=performance.now());mo.observe(root,{childList:true,subtree:true});const check=()=>{const now=performance.now();const moved=pageKey(new URL(location.href))!==fromKey;const swapped=!old||!old.isConnected;const quiet=now-lastMut;const ready=moved&&(swapped?quiet>50:!strong&&quiet>600);if(ready||now-t0>MAX_WAIT||!moved&&now-t0>1500){mo.disconnect();firstScreenReady(100).then(()=>// two frames so the new page is painted before it is uncovered\n        requestAnimationFrame(()=>requestAnimationFrame(()=>resolve())));return;}requestAnimationFrame(check);};requestAnimationFrame(check);});// Pages reached through the transition open already composed: the curtain was their entrance. The flag lets\n// the site's own first-load openings (Site Settings → Custom Code, \"NOIRÉ arrival\") skip themselves; a fresh\n// load of any page has no flag and keeps its full opening.\nconst markArrival=()=>document.documentElement.setAttribute(\"data-noire-arrival\",\"\");// Home: resolves true the moment the new page (the old marker gone) contains the Horizon hero. Runs inside a\n// MutationObserver callback, i.e. before the inserted page is first painted, so removing the arrival flag here\n// means Home's opening is never skipped, not even for one frame.\nconst HERO='#main [data-framer-name=\"Horizon Media\"]';const whenHero=old=>new Promise(resolve=>{const root=document.getElementById(\"main\")||document.body;let done=false;const hit=()=>{if(done||old&&old.isConnected||!document.querySelector(HERO))return false;done=true;document.documentElement.removeAttribute(\"data-noire-arrival\");mo.disconnect();clearTimeout(timer);resolve(true);return true;};const mo=new MutationObserver(hit);mo.observe(root,{childList:true,subtree:true});const timer=setTimeout(()=>{if(!done){done=true;mo.disconnect();resolve(false);}},MAX_WAIT);hit();});// The curtain leaves Home at once: a short fade (Ink over Ink, only the wordmark visibly goes), so the opening\n// underneath is seen from its start. The lockup script re-measures the horizon line for the opening's logo.\nconst revealHome=async()=>{lastKey=pageKey(new URL(location.href));marker=markerOf();stopAnims();requestAnimationFrame(()=>window.dispatchEvent(new Event(\"resize\")));play(mark,[{opacity:Number(getComputedStyle(mark).opacity)||1},{opacity:0}],160,0,\"ease-out\");await play(curtain,[{opacity:1},{opacity:0}],220,0,\"ease-out\");stopAnims();curtain.style.visibility=\"hidden\";curtain.style.pointerEvents=\"none\";curtain.style.opacity=fade?\"0\":\"1\";if(!fade)curtain.style.transform=\"translate3d(0,100%,0)\";mark.style.opacity=\"0\";busy=false;};// Decides whether a click is a page change this component takes over. Returns true when it has (the caller\n// then stops the click from reaching Framer's router until the curtain is closed).\nconst takeOver=e=>{if(bypass||e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return false;const a=e.target?.closest?.(\"a[href]\");if(!a||a.hasAttribute(\"download\")||a.hasAttribute(\"data-no-transition\"))return false;if(a.target&&a.target!==\"_self\")return false;let url;try{url=new URL(a.href,location.href);}catch(err){return false;}if(url.origin!==location.origin||!/^https?:$/.test(url.protocol))return false;const fromKey=pageKey(new URL(location.href));if(pageKey(url)===fromKey)return false// same page (#anchor, or the page you're on): leave it alone\n;if(busy)return true;busy=true;// The route starts at 75 % of the closing time, while the curtain is finishing its last few pixels: Framer\n// always takes longer than that to swap the page (≥ 150 ms measured), so the swap still lands under a closed\n// curtain and the black hold is that much shorter. Guard: should the old page ever leave while the curtain\n// is still closing, the curtain is completed in the same mutation callback, i.e. before that frame paints.\nconst covered=cover();const early=new Promise(r=>setTimeout(r,inT*1e3*.75));Promise.race([covered,early]).then(()=>{const old=marker&&marker.isConnected?marker:markerOf();const closing=coverAnim;const guard=new MutationObserver(()=>{if(old&&!old.isConnected){try{if(closing&&closing.playState===\"running\")closing.finish();}catch(err){}guard.disconnect();}});guard.observe(document.getElementById(\"main\")||document.body,{childList:true,subtree:true});covered.then(()=>guard.disconnect());markArrival();// Hand the click back to Framer's own link handling (it routes, closes menus, scrolls to top).\nbypass=true;try{a.click();}finally{bypass=false;}let handled=false;whenHero(old).then(async home=>{if(!home||handled)return;handled=true;await covered;revealHome();});whenArrived(fromKey,old).then(async()=>{if(handled)return;handled=true;await covered;lastKey=pageKey(new URL(location.href));marker=markerOf();return uncover();});});return true;};// Framer's router listens for link clicks on window in the capture phase, registered before any component\n// mounts, so a component's own listener would hear the click too late. The \"NOIRÉ page transition\" snippet in\n// Site Settings → Custom Code (start of <head>) registers first and asks this hook. Without the snippet the\n// component listens itself (works wherever Framer doesn't take the click first).\nconst w=window;w.__noirePageTransition=takeOver;const onClick=e=>{if(takeOver(e)){e.preventDefault();e.stopImmediatePropagation();}};if(!w.__noirePageTransitionHook)window.addEventListener(\"click\",onClick,true);// Back / forward: the new page is already on its way, so start closed and lift. Only a change of page counts\n// (a #anchor on the same page also fires popstate).\nlet lastKey=pageKey(new URL(location.href));const onPop=()=>{const key=pageKey(new URL(location.href));if(key===lastKey)return;lastKey=key;if(busy)return;busy=true;stopAnims();curtain.style.visibility=\"visible\";curtain.style.pointerEvents=\"auto\";curtain.style.transform=\"none\";curtain.style.opacity=\"1\";mark.style.opacity=\"1\";mark.style.transform=\"none\";markArrival();// the marker remembered from the page we are leaving (Framer may already be swapping it out)\nlet handled=false;whenHero(marker).then(home=>{if(!home||handled)return;handled=true;revealHome();});whenArrived(\"\\x00\",marker).then(()=>{if(handled)return;handled=true;marker=markerOf();return uncover();});};// Leaving through a full page load (a plain link, or one Framer doesn't route): reset if the page is restored\n// from the back/forward cache with the curtain still closed.\nconst onShow=e=>{if(e.persisted){stopAnims();busy=false;curtain.style.visibility=\"hidden\";curtain.style.pointerEvents=\"none\";}};window.addEventListener(\"popstate\",onPop);window.addEventListener(\"pageshow\",onShow);return()=>{if(w.__noirePageTransition===takeOver)delete w.__noirePageTransition;window.removeEventListener(\"click\",onClick,true);window.removeEventListener(\"popstate\",onPop);window.removeEventListener(\"pageshow\",onShow);stopAnims();curtain.remove();};},[isCanvas,color,line,wordmark,wordmarkColor,duration,reducedMotion]);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{...props.style,width:1,height:1,pointerEvents:\"none\"}});}PageTransition.displayName=\"NOIR\\xc9/Code/Page Transition\";addPropertyControls(PageTransition,{color:{type:ControlType.Color,title:\"Curtain\",defaultValue:\"#0D0C0A\"},line:{type:ControlType.Color,title:\"Edge line\",defaultValue:\"#B9966A\"},wordmark:{type:ControlType.String,title:\"Wordmark\",defaultValue:\"NOIR\\xc9\",placeholder:\"Leave empty to hide\"},wordmarkColor:{type:ControlType.Color,title:\"Wordmark colour\",defaultValue:\"#EEE8DD\",hidden:p=>!p.wordmark},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:.4,min:.2,max:1.5,step:.05,unit:\"s\",description:\"Time for the curtain to close; it opens a little slower.\"},reducedMotion:{type:ControlType.Enum,title:\"Reduced motion\",options:[\"fade\",\"same\"],optionTitles:[\"Fade\",\"Same\"],defaultValue:\"fade\",displaySegmentedControl:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PageTransition\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PageTransition.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{frame,cancelFrame}from\"framer-motion\";// ENGINE START — plain JS on purpose: the QA script runs this exact block on the live site before publishing.\nfunction createSmoothScroll(o){const LINE_HEIGHT=100/6;const SCROLL_KEYS=new Set([\"ArrowUp\",\"ArrowDown\",\"PageUp\",\"PageDown\",\"Home\",\"End\",\" \",\"Spacebar\"]);const root=document.documentElement;const smoothTime=o.reduce?.06:Math.min(.32,Math.max(.04,o.intensity*.0065));let mode=\"idle\"// \"glide\" (wheel/keys, exponential) | \"tween\" (anchor links/Home/End, timed curve)\n;let current=window.scrollY;let target=current;let eased=current;let lastSet=current;let tau=smoothTime;let lastWheel=0;let tw={from:0,to:0,t:0,dur:1};const css=document.createElement(\"style\");css.setAttribute(\"data-smooth-scroll\",\"\");css.textContent=\"html.lenis-smooth{scroll-behavior:auto!important}\";document.head.appendChild(css);root.classList.add(\"lenis\",\"lenis-smooth\");try{history.scrollRestoration=\"manual\";}catch(e){}const limit=()=>Math.max(0,root.scrollHeight-window.innerHeight);const isLocked=()=>getComputedStyle(root).overflow===\"hidden\"||getComputedStyle(document.body).overflow===\"hidden\"||!!document.querySelector(\"[data-frameruni-stop-scroll]\");const nestedScrollCanTake=(node,dy)=>{node=node instanceof Element?node:null;while(node&&node!==document.body&&node!==root){if(node.hasAttribute(\"data-lenis-prevent\"))return true;const oy=getComputedStyle(node).overflowY;if((oy===\"auto\"||oy===\"scroll\")&&node.scrollHeight>node.clientHeight+1){if(dy<0&&node.scrollTop>0)return true;if(dy>0&&node.scrollTop+node.clientHeight<node.scrollHeight-1)return true;}node=node.parentElement;}return false;};// slow-in, slow-out (cubic): calm departure, unhurried arrival, gentle peak speed\nconst easeInOut=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;const stop=()=>{mode=\"idle\";o.cancel(tick);};const halt=()=>{stop();current=target=eased=lastSet=window.scrollY;};const write=y=>{const dpr=window.devicePixelRatio||1;lastSet=Math.round(y*dpr)/dpr;window.scrollTo({top:lastSet,left:window.scrollX,behavior:\"instant\"});lastSet=window.scrollY;};function tick(info){if(mode===\"idle\")return;if(Math.abs(window.scrollY-lastSet)>2)return halt()// someone else moved the page: yield\n;const dt=Math.min(Math.max(info&&info.delta||16.7,1),50)/1e3;if(mode===\"tween\"){tw.t=Math.min(1,tw.t+dt/tw.dur);current=tw.from+(tw.to-tw.from)*easeInOut(tw.t);write(current);if(tw.t>=1){current=target=eased=tw.to;stop();}return;}const k1=1-Math.exp(-dt/(tau*.2));eased+=(target-eased)*k1;const k2=1-Math.exp(-dt/(tau*.8));let step=(eased-current)*k2;// The tail never drops below one device pixel per frame: slower than that the page would round to 1, 0, 1, 0 px\n// (a visible stutter as it lands). It arrives at an even 1 px per frame instead, and stops exactly on target.\nconst px=1/(window.devicePixelRatio||1);const left=target-current;if(Math.abs(step)<px)step=Math.sign(left)*Math.min(px,Math.abs(left));current+=step;const done=Math.abs(target-current)<.01;if(done)current=eased=target;write(current);if(done)stop();}const run=m=>{const was=mode;mode=m;if(was===\"idle\")o.schedule(tick);};const glideBy=dy=>{if(mode!==\"glide\")current=target=eased=lastSet=window.scrollY;target=Math.max(0,Math.min(limit(),target+dy));// a fast spin may lead the page by at most 1.5 screens: the page never coasts on long after the hand stops\nconst lead=window.innerHeight*1.5;if(Math.abs(target-current)>lead)target=current+Math.sign(target-current)*lead;run(\"glide\");};// Timed travel. Long trips (more than ~2.5 screens) first cut to 1.6 screens from the destination, then glide the\n// rest: a calm, readable arrival instead of the whole page streaking past (and no heavy frames on the way).\nconst tweenTo=(y,fixedDur)=>{const to=Math.max(0,Math.min(limit(),y));let from=window.scrollY;const vh=window.innerHeight;if(!o.reduce&&Math.abs(to-from)>vh*2.5){from=to+Math.sign(from-to)*vh*1.6;write(from);}const d=Math.abs(to-from);if(d<1)return;tw={from,to,t:0,dur:o.reduce?.12:fixedDur||Math.min(1.2,.65+d/4e3)};current=eased=lastSet=from;target=to;run(\"tween\");};const onWheel=e=>{if(e.ctrlKey||e.defaultPrevented||isLocked())return;let dy=e.deltaY;let dx=e.deltaX;if(e.deltaMode===1){dy*=LINE_HEIGHT;dx*=LINE_HEIGHT;}else if(e.deltaMode===2){dy*=window.innerHeight;dx*=window.innerWidth;}if(dy===0||Math.abs(dx)>Math.abs(dy))return;if(nestedScrollCanTake(e.target,dy))return;e.preventDefault();const now=performance.now();const fine=e.deltaMode===0&&Math.abs(dy)<40&&now-lastWheel<80;lastWheel=now;tau+=((fine?smoothTime*.4:smoothTime)-tau)*.35;glideBy(dy);};const onScroll=()=>{if(mode===\"idle\")current=target=eased=lastSet=window.scrollY;};const onKey=e=>{if(!SCROLL_KEYS.has(e.key)||e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||isLocked())return;const el=document.activeElement;if(el&&(el.isContentEditable||/^(INPUT|TEXTAREA|SELECT|BUTTON|A)$/.test(el.tagName)||el.closest(\"[role='slider'],[role='listbox'],[data-lenis-prevent]\"))){if(mode!==\"idle\")halt();return;}const vh=window.innerHeight;const space=e.key===\" \"||e.key===\"Spacebar\";e.preventDefault();if(e.key===\"Home\")return tweenTo(0);if(e.key===\"End\")return tweenTo(limit());tau=smoothTime;if(e.key===\"ArrowDown\"||e.key===\"ArrowUp\")return glideBy(e.key===\"ArrowDown\"?120:-120);// a screen-sized jump gets its own short timed glide (gentle start and landing), not the wheel glide, whose\n// quick answer suits a 100 px notch but would lurch over 800 px\nconst from=mode===\"tween\"?tw.to:window.scrollY;tweenTo(from+(e.key===\"PageDown\"||space&&!e.shiftKey?vh*.88:-vh*.88),.55);};const onPointerDown=()=>{if(mode!==\"idle\")halt();};// Same-page anchor links (\"Back to top\", \"./#offers\"…): glide there instead of jumping. Returns true when taken.\nconst anchorGlide=e=>{if(!o.anchorLinks||e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||isLocked())return false;const a=e.target?.closest?.(\"a[href]\");if(!a||a.target&&a.target!==\"_self\"||a.hasAttribute(\"download\")||a.hasAttribute(\"data-no-smooth\"))return false;let url;try{url=new URL(a.href,location.href);}catch(err){return false;}if(url.origin!==location.origin||url.pathname.replace(/\\/+$/,\"\")!==location.pathname.replace(/\\/+$/,\"\")||url.search!==location.search)return false;const id=decodeURIComponent(url.hash.slice(1));let y=null;if(!id||id===\"top\")y=0;const el=id?document.getElementById(id):null;if(el)y=el.getBoundingClientRect().top+window.scrollY-(parseFloat(getComputedStyle(el).scrollMarginTop)||0);if(y===null)return false;tweenTo(y);return true;};window.__noireAnchorGlide=anchorGlide;const onClick=e=>{if(anchorGlide(e)){e.preventDefault();e.stopImmediatePropagation();}};if(!window.__noirePageTransitionHook)window.addEventListener(\"click\",onClick,true);// Page changes: stop, so no target survives into the next page. Only a real change of page counts (Framer calls\n// replaceState while you scroll to save the position; halting on those would cut every glide short).\nconst push=history.pushState;const replace=history.replaceState;const pathOf=url=>{if(url===undefined||url===null||url===\"\")return location.pathname;try{return new URL(String(url),location.href).pathname;}catch(err){return location.pathname;}};const wrap=fn=>function(...args){if(pathOf(args[2])!==location.pathname)halt();return fn.apply(this,args);};history.pushState=wrap(push);history.replaceState=wrap(replace);window.addEventListener(\"wheel\",onWheel,{passive:false});window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"keydown\",onKey);window.addEventListener(\"pointerdown\",onPointerDown,{passive:true});window.addEventListener(\"touchstart\",onPointerDown,{passive:true});window.addEventListener(\"popstate\",halt);return()=>{stop();history.pushState=push;history.replaceState=replace;if(window.__noireAnchorGlide===anchorGlide)delete window.__noireAnchorGlide;window.removeEventListener(\"click\",onClick,true);window.removeEventListener(\"wheel\",onWheel);window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"keydown\",onKey);window.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"touchstart\",onPointerDown);window.removeEventListener(\"popstate\",halt);root.classList.remove(\"lenis\",\"lenis-smooth\");css.remove();};}// ENGINE END\nexport default function SmoothScroll(props){const{intensity=26,anchorLinks=true,respectReducedMotion=true}=props;React.useEffect(()=>{if(typeof window===\"undefined\")return;if(RenderTarget.current()===RenderTarget.canvas)return;if(window.matchMedia(\"(hover: none) and (pointer: coarse)\").matches)return;const reduce=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;if(respectReducedMotion&&reduce)return;return createSmoothScroll({intensity,anchorLinks,reduce,schedule:fn=>frame.read(fn,true),cancel:fn=>cancelFrame(fn)});},[intensity,anchorLinks,respectReducedMotion]);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{...props.style,width:1,height:1,pointerEvents:\"none\"}});}SmoothScroll.displayName=\"NOIR\\xc9/Code/Smooth Scroll\";addPropertyControls(SmoothScroll,{intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:26,min:1,max:49,step:1,description:\"How long the page glides after each wheel step (higher = longer, softer). 26 ≈ 0.55 s.\"},anchorLinks:{type:ControlType.Boolean,title:\"Anchor links\",defaultValue:true,enabledTitle:\"Glide\",disabledTitle:\"Jump\"},respectReducedMotion:{type:ControlType.Boolean,title:\"Reduced motion\",defaultValue:true,enabledTitle:\"Native\",disabledTitle:\"Smooth\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll.map","// Generated by Framer (f8e97a5)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,RenderTarget,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import NOIRCodeCustomCursor from\"#framer/local/codeFile/vxsvJuP/CustomCursor.js\";import NOIRCodePageTransition from\"#framer/local/codeFile/qvLCa0p/PageTransition.js\";import NOIRCodeSmoothScroll from\"#framer/local/codeFile/nwr44bG/SmoothScroll.js\";const NOIRCodePageTransitionFonts=getFonts(NOIRCodePageTransition);const NOIRCodeSmoothScrollFonts=getFonts(NOIRCodeSmoothScroll);const NOIRCodeCustomCursorFonts=getFonts(NOIRCodeCustomCursor);const breakpoints={doDilubyu:\"(min-width: 810px) and (max-width: 1199.98px)\",fsCShB2a5:\"(min-width: 1200px)\",JwtX3YlKX:\"(max-width: 809.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-6gvSW\";const variantClassNames={doDilubyu:\"framer-v-lf9738\",fsCShB2a5:\"framer-v-1d1ximd\",JwtX3YlKX:\"framer-v-11uos42\"};const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\".framer-6gvSW.framer-emon5l, .framer-6gvSW .framer-emon5l { display: block; }\",\".framer-6gvSW.framer-1d1ximd { align-content: center; align-items: center; background-color: var(--token-332fb990-f25e-41e5-a301-aca512a4245a); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-6gvSW .framer-w04byw-container { flex: none; height: 1px; left: 0px; order: -1000; pointer-events: none; position: absolute; top: 0px; width: 1px; }\",\".framer-6gvSW .framer-aaeoo4-container { flex: none; height: 1px; left: 0px; order: -999; pointer-events: none; position: absolute; top: 0px; width: 1px; }\",\".framer-6gvSW .framer-7bt2l9 { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-6gvSW .framer-bs4kuh-container { flex: none; height: 1px; left: 0px; order: 1003; pointer-events: none; position: absolute; top: 0px; width: 1px; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={doDilubyu:\"(min-width: 810px) and (max-width: 1199.98px)\",fsCShB2a5:\"(min-width: 1200px)\",JwtX3YlKX:\"(max-width: 809.98px)\"};const humanReadableVariantMap={Desktop:\"fsCShB2a5\",Phone:\"JwtX3YlKX\",Tablet:\"doDilubyu\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"fsCShB2a5\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"fsCShB2a5\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-332fb990-f25e-41e5-a301-aca512a4245a); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1d1ximd\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-w04byw-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Page Transition\",isAuthoredByUser:true,name:\"Page Transition\",nodeId:\"UIbeqvUkv\",scopeId:\"Cevq7UMkO\",children:/*#__PURE__*/_jsx(NOIRCodePageTransition,{color:\"rgb(13, 12, 10)\",duration:.3,height:\"100%\",id:\"UIbeqvUkv\",layoutId:\"UIbeqvUkv\",line:\"rgb(185, 150, 106)\",name:\"Page Transition\",reducedMotion:\"fade\",style:{height:\"100%\",width:\"100%\"},width:\"100%\",wordmark:\"NOIR\\xc9\",wordmarkColor:\"rgb(238, 232, 221)\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-aaeoo4-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Smooth Scroll\",isAuthoredByUser:true,name:\"Smooth Scroll\",nodeId:\"biNMi0WQY\",scopeId:\"Cevq7UMkO\",children:/*#__PURE__*/_jsx(NOIRCodeSmoothScroll,{anchorLinks:true,height:\"100%\",id:\"biNMi0WQY\",intensity:18,layoutId:\"biNMi0WQY\",name:\"Smooth Scroll\",respectReducedMotion:false,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-7bt2l9\"}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-bs4kuh-container\",\"data-code-component-plugin-id\":\"api\",\"data-framer-name\":\"Custom Cursor\",isAuthoredByUser:true,name:\"Custom Cursor\",nodeId:\"nIbl8fwp3\",scopeId:\"Cevq7UMkO\",children:/*#__PURE__*/_jsx(NOIRCodeCustomCursor,{experience:\"Explore\",gallery:\"Enlarge\",height:\"100%\",id:\"nIbl8fwp3\",layoutId:\"nIbl8fwp3\",name:\"Custom Cursor\",offer:\"Discover\",other:\"View\",room:\"View room\",story:\"Read story\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 2538\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"doDilubyu\":{\"layout\":[\"fixed\",\"fixed\"]},\"JwtX3YlKX\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"fsCShB2a5\":[\".framer-w04byw-container\",\".framer-aaeoo4-container\",\".framer-bs4kuh-container\"],\"doDilubyu\":[\".framer-w04byw-container\",\".framer-aaeoo4-container\",\".framer-bs4kuh-container\"],\"JwtX3YlKX\":[\".framer-w04byw-container\",\".framer-aaeoo4-container\",\".framer-bs4kuh-container\"]}\n * @framerBreakpoints {\"fsCShB2a5\":{\"min\":1200,\"canvasClassName\":\"framer-1d1ximd-override\",\"minHeight\":2538,\"viewportHeight\":800,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"doDilubyu\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-lf9738-override\",\"minHeight\":2538,\"viewportHeight\":800,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"JwtX3YlKX\":{\"max\":809,\"canvasClassName\":\"framer-11uos42-override\",\"minHeight\":2538,\"viewportHeight\":800,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant fsCShB2a5\n * @framerLayoutTemplate true\n */const FramerCevq7UMkO=withCSS(Component,css,\"framer-6gvSW\");export default FramerCevq7UMkO;FramerCevq7UMkO.displayName=\"Main Layout\";FramerCevq7UMkO.defaultProps={height:2538,width:1200};addFonts(FramerCevq7UMkO,[{explicitInter:true,fonts:[]},...NOIRCodePageTransitionFonts,...NOIRCodeSmoothScrollFonts,...NOIRCodeCustomCursorFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerCevq7UMkO\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerDefaultVariant\":\"fsCShB2a5\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"doDilubyu\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"JwtX3YlKX\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicWidth\":\"1200\",\"framerColorSyntax\":\"true\",\"framerBreakpoints\":\"{\\\"fsCShB2a5\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-1d1ximd-override\\\",\\\"minHeight\\\":2538,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"doDilubyu\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-lf9738-override\\\",\\\"minHeight\\\":2538,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"JwtX3YlKX\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-11uos42-override\\\",\\\"minHeight\\\":2538,\\\"viewportHeight\\\":800,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerLayoutTemplate\":\"true\",\"framerHitTargets\":\"{\\\"fsCShB2a5\\\":[\\\".framer-w04byw-container\\\",\\\".framer-aaeoo4-container\\\",\\\".framer-bs4kuh-container\\\"],\\\"doDilubyu\\\":[\\\".framer-w04byw-container\\\",\\\".framer-aaeoo4-container\\\",\\\".framer-bs4kuh-container\\\"],\\\"JwtX3YlKX\\\":[\\\".framer-w04byw-container\\\",\\\".framer-aaeoo4-container\\\",\\\".framer-bs4kuh-container\\\"]}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"2538\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport MainLayout from \"https://framerusercontent.com/modules/7H1hxRqfjCGFomSC1GtY/iYAv43WVS6lAwSb0uNFu/Cevq7UMkO.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {Cf3nGmRx0: \"exp-spa\", dVldaeEqn: \"hero\", G7vif99Kq: \"exp-boat\", gHdz94yCj: \"exp-dining\", kqs2fCeme: \"the-lake\", LfvgmNjjV: \"nav-solid\", N3BItDAFr: \"offers\", NQR09c0IJ: \"gallery\", oAJeopGnA: \"rooms-runway\", p4iq5kSDA: \"exp-hike\", u3WZfhuP6: \"experiences\", wJjEJhdrb: \"intro\", wS_JR0Yb1: \"hero-end\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/uxZHXU95Jo05SWOGofMm/xLwK5lpIDkDmT0KcB3VG/augiA20Il.js\")), path: \"/\"}, M9F_txVfg: {elements: {Vu5_3jUQD: \"top\", wK3sItich: \"nav-solid\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/aZxGy7rFWEpMp49wuJNU/IgAJG4pxQ3m0cYn21wm3/M9F_txVfg.js\")), path: \"/room\"}, Hfp8IuCQF: {elements: {i5poW8fsw: \"dining\", reWVfJmqs: \"nav-solid\", sCmGOCPmW: \"top\", sSC5F49ML: \"spa\", Zdt_UDNfq: \"lake\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/2jHq8fHNaZ8NQO2veX3v/cqZxJPhlkFxqYwvKhETo/Hfp8IuCQF.js\")), path: \"/experiences\"}, l92ibublC: {elements: {mo3nMbmms: \"nav-solid\", sNYgV_W75: \"top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/C6UuCnFaDmikaFu9UMhc/prcSg46UuE8saCDNvsyR/l92ibublC.js\")), path: \"/journal\"}, bUs8eidXV: {elements: {c1JTV6O6a: \"tl-1968\", jhli5RePB: \"sustainability\", NhsJDBcKd: \"nav-solid\", ny0NDkaVX: \"tl-2019\", OLp_D2Y2q: \"tl-today\", xHoEy05Py: \"tl-1911\", Ys6Pru8Ir: \"top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/73MMW2MNNDUk1dzmNd94/OPBewkGpJSIj9ZEgrRV7/bUs8eidXV.js\")), path: \"/about\"}, KzYnJhMku: {elements: {bDjqb4CkW: \"top\", CI3HFUxx4: \"nav-solid\", TsZ0JoS2A: \"getting-here\", zXQ9W6wSd: \"enquire\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/VNUI3lRnOxInkByNGWaR/fdB3xa7ZNJDVVEf9y64E/KzYnJhMku.js\")), path: \"/contact\"}, F9jUarUfZ: {elements: {E8DiRIu0M: \"nav-solid\", Ff1XwKQfL: \"privacy\", fy87U9f6y: \"terms\", LLt0Q2Wyr: \"top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/v66Ii3l29T6C2U9ypyuh/yeW3pUA3MSvFY4PapaAG/F9jUarUfZ.js\")), path: \"/legal\"}, Gzv6q8AuI: {elements: {hM7SS8ioM: \"nav-solid\", U_j8ISdNY: \"top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/67wH5tU6k6KUC7GSKYtM/107yu0w1A1EHgQuyMRDA/Gzv6q8AuI.js\")), path: \"/start-here\"}, mc3lojApS: {elements: {q6zNmc07h: \"top\", u9yi9mApB: \"nav-solid\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pfykR3MQH6LC4lFE2YAm/bNh3JkA2Sj2jIiaulBCc/mc3lojApS.js\")), path: \"/404\"}, EJ1vsbvE8: {collectionId: \"HodSfGgxw\", elements: {i60fuV6NX: \"top\", Nypx1J2cY: \"nav-solid\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/6r3aYsdiTe1Hr4Bex3Aa/CfUc7fMNuhgbgIR8QkkC/EJ1vsbvE8.js\")), path: \"/room/:sHDVx6I7_\"}, UuaubrY74: {collectionId: \"c10wA44pn\", elements: {GeGOCJFBW: \"nav-solid\", ZnW6VH_a0: \"top\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/l9x3yY0EJm2L4KRkq1Dn/PzAhX5oRVwDjOMOx8QzY/UuaubrY74.js\")), path: \"/experiences/:HHy9n5NEa\"}, kusA4Vke4: {collectionId: \"eF4uC5KnV\", elements: {RbYnW8DcE: \"top\", ZvWg1cy_7: \"nav-solid\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Hf7RA1Yt4iOJ5j7sefHO/fMVfp6PrrKOg62pzKuuy/kusA4Vke4.js\")), path: \"/journal/:tm3Cekoci\"}, L_DvBARLW: {collectionId: \"QSaZVZ7EC\", elements: {HubIWQpi3: \"top\", JoJLhbels: \"nav-solid\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/omU1XqqbOB0zQY4vJTB2/sDlxTN3HRj0L1KaYf0Je/L_DvBARLW.js\")), path: \"/offers/:rwBjCSqXu\"}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {c10wA44pn: async () => (await import(\"https://framerusercontent.com/modules/BzOXFIRNqgNvO15vyO5v/czBjHySg5q2kpYmjbgju/c10wA44pn.js\"))?.[\"utils\"], eF4uC5KnV: async () => (await import(\"https://framerusercontent.com/modules/EavtC02BvpSnoeYCgiTM/mqFELT9s3VSRDGC0MPXT/eF4uC5KnV.js\"))?.[\"utils\"], HodSfGgxw: async () => (await import(\"https://framerusercontent.com/modules/iE8UuvV6d03EdVDIJyGu/HTG8cWmtswW6A5cAtaWb/HodSfGgxw.js\"))?.[\"utils\"], QSaZVZ7EC: async () => (await import(\"https://framerusercontent.com/modules/AH4rNz97nZNyODYpARyZ/DSvu0kjKTIgdsvF1iUkU/QSaZVZ7EC.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"20ed1499f0424720277258aa38bba7c859dcb68c91c88b90522073a248c8ee14\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"M9F_txVfg\":\r\ncase \"Hfp8IuCQF\":\r\ncase \"l92ibublC\":\r\ncase \"bUs8eidXV\":\r\ncase \"KzYnJhMku\":\r\ncase \"F9jUarUfZ\":\r\ncase \"Gzv6q8AuI\":\r\ncase \"mc3lojApS\":\r\ncase \"EJ1vsbvE8\":\r\ncase \"UuaubrY74\":\r\ncase \"kusA4Vke4\":\r\ncase \"L_DvBARLW\":\r\nreturn React.createElement(MainLayout, {...props, key: \"MainLayout\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"M9F_txVfg\":\r\ncase \"Hfp8IuCQF\":\r\ncase \"l92ibublC\":\r\ncase \"bUs8eidXV\":\r\ncase \"KzYnJhMku\":\r\ncase \"F9jUarUfZ\":\r\ncase \"Gzv6q8AuI\":\r\ncase \"mc3lojApS\":\r\ncase \"EJ1vsbvE8\":\r\ncase \"UuaubrY74\":\r\ncase \"kusA4Vke4\":\r\ncase \"L_DvBARLW\":\r\nreturn [{hash: \"11uos42\", mediaQuery: \"(max-width: 809.98px)\"}, {hash: \"lf9738\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"1d1ximd\", mediaQuery: \"(min-width: 1200px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/pfykR3MQH6LC4lFE2YAm/bNh3JkA2Sj2jIiaulBCc/mc3lojApS.js\")),\r\n\t\t\t\t\tisReducedMotion: true,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: undefined,\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: true,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/3VirTZp0XLXcAeEaa7bF/5MLFKdULAblAvG58RSAs/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t\tinitialContentLocaleIdOverride: contentLocaleId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: content\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\t\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\t// Note: HTTPArchive also uses this function to detect Framer sites; see https://github.com/HTTPArchive/wappalyzer/blob/371a17583f74fd9171b9077f59a5619b24062891/src/technologies/f.json#L1722-L1748.\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, contentLocaleId, pathVariables, canonicalPathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tcontentLocaleId = routeData.contentLocaleId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tcanonicalPathVariables = routeData.canonicalPathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\t\t\t\t\tconst serverRoute = performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tcontentLocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\tcollectionItemId: shouldHydrate ? routeData?.collectionItemId : undefined,\r\n\t\t\t\t\tshouldResolveInitialRouteContentState: !shouldHydrate,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\t\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\tconst utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\tconst [slug] = Object.values(pathVariables)\r\n\t\t\tif (utils && typeof slug === \"string\") {\r\n\t\t\t\tcollectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tFramer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\t;(function () {\r\n\t\t\tif (!isBrowser) return\r\n\r\n\t\t\tReact.startTransition(() => {\r\n\t\t\t\tReactDOM.hydrateRoot(\r\n\t\t\t\t\tdocument.getElementById(\"__framer-badge-container\"),\r\n\t\t\t\t\tReact.createElement(React.Suspense, {}, React.createElement(React.lazy(() => import(\"__framer-badge\"))))\r\n\t\t\t\t)\r\n\t\t\t})\r\n\t\t})()\r\n\t"],"mappings":"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"}