{"version":3,"file":"shared-lib.D9FeNFDW.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/vqzNuBEVsmngc2AyEBY3/qvlu2dtrn4WU3GLhyWS6/SiteFooter.js","https:/framerusercontent.com/modules/mlUP9wYPS01Oxw2fAMv5/lE3Fzx9weatcSBiVMhhd/SiteNav.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Hue Kind site footer\n * Charcoal band with brand, links, and contact. Also injects the site-wide\n * film-grain overlay, smooth scrolling, and neutral link-color inheritance\n * for Framer text links (always-present component).\n * NOTE: never target text INSIDE linked frames (`a .framer-text`, or\n * `a[href] .framer-text{color:unset}`) — both make button text inherit the\n * anchor's default blue. Only style anchors that ARE text links.\n *\n * The <style> block is set with dangerouslySetInnerHTML, not as a text child.\n * As a child, Framer's pre-render HTML-escapes the quotes, and a <style>\n * element never decodes entities: `@import url('https://fonts…')` reached the\n * browser as `url(&#x27;https://…`, which it read as a relative URL ending at\n * the `#`, so every page made a failed stylesheet request to huekind.design/&.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */const INSTAGRAM_URL=\"https://www.instagram.com/huekind.design/\";export default function SiteFooter(props){const year=new Date().getFullYear();// Hidden until the account has posts: an empty profile reads as unfinished\n// to a prospective client. Existing instances receive this prop as\n// undefined, so only an explicit true shows the link.\nconst showInstagram=props.showInstagram===true;const grain=\"url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E\\\")\";const css=`\n                @import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Mulish:wght@400;600;700&display=swap');\n                html{scroll-behavior:smooth}\n                .framer-text a, a.framer-text{color:inherit !important;text-decoration:none !important}\n                .hk-grain{position:fixed;inset:0;z-index:990;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:${grain}}\n                .hk-footer{background:#2C2A25;color:#FBF7EF;font-family:'Mulish',sans-serif}\n                .hk-footer .inner{max-width:1180px;margin:0 auto;padding:64px 34px 40px;display:flex;flex-wrap:wrap;gap:44px;justify-content:space-between}\n                .hk-f-brand{display:flex;align-items:center;gap:12px;font-family:'DM Serif Display',serif;font-size:26px;color:#FBF7EF}\n                .hk-f-tag{margin-top:12px;font-size:14.5px;color:rgba(251,247,239,.62);max-width:30ch;line-height:1.6}\n                .hk-f-col h4{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:#EF8354;margin:0 0 14px}\n                .hk-f-col a{display:block;color:rgba(251,247,239,.78);text-decoration:none;font-size:14.5px;font-weight:600;margin-bottom:10px;transition:color .25s}\n                .hk-f-col a:hover{color:#FBF7EF}\n                .hk-f-col a.hk-f-social{display:flex;align-items:center;gap:8px}\n                .hk-f-col a.hk-f-social svg{width:16px;height:16px;flex:0 0 auto}\n                .hk-f-bottom{border-top:1px solid rgba(251,247,239,.14);padding:20px 34px;text-align:center;font-size:12.5px;color:rgba(251,247,239,.5)}\n            `;return /*#__PURE__*/_jsxs(\"footer\",{className:\"hk-footer\",children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),/*#__PURE__*/_jsx(\"div\",{className:\"hk-grain\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"inner\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"hk-f-brand\",children:[/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 80 44\",style:{height:34,width:\"auto\"},\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"ellipse\",{cx:\"22\",cy:\"22\",rx:\"14\",ry:\"21\",fill:\"#948AD4\"}),/*#__PURE__*/_jsx(\"ellipse\",{cx:\"40\",cy:\"22\",rx:\"14\",ry:\"21\",fill:\"#7E97DC\",style:{mixBlendMode:\"screen\"}}),/*#__PURE__*/_jsx(\"ellipse\",{cx:\"58\",cy:\"22\",rx:\"14\",ry:\"21\",fill:\"#B9D1ED\",style:{mixBlendMode:\"screen\"}})]}),\"Hue Kind\"]}),/*#__PURE__*/_jsx(\"p\",{className:\"hk-f-tag\",children:\"Calm, characterful design, from first sketch to shipped product.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"hk-f-col\",children:[/*#__PURE__*/_jsx(\"h4\",{children:\"Explore\"}),/*#__PURE__*/_jsx(\"a\",{href:\"/#work\",children:\"Work\"}),/*#__PURE__*/_jsx(\"a\",{href:\"/#services\",children:\"Services\"}),/*#__PURE__*/_jsx(\"a\",{href:\"/#about\",children:\"About\"}),/*#__PURE__*/_jsx(\"a\",{href:\"/therapists\",children:\"For therapists\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"hk-f-col\",children:[/*#__PURE__*/_jsx(\"h4\",{children:\"Say hello\"}),/*#__PURE__*/_jsx(\"a\",{href:\"mailto:colin@huekind.design\",children:\"colin@huekind.design\"}),showInstagram&&/*#__PURE__*/_jsxs(\"a\",{className:\"hk-f-social\",href:INSTAGRAM_URL,target:\"_blank\",rel:\"noopener noreferrer\",\"aria-label\":\"Hue Kind on Instagram (opens in a new tab)\",children:[/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"3\",width:\"18\",height:\"18\",rx:\"5\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"4\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"17.5\",cy:\"6.5\",r:\"0.6\",fill:\"currentColor\",stroke:\"none\"})]}),\"@huekind.design\"]})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"hk-f-bottom\",children:[\"\\xa9 \",year,\" Hue Kind Design. All rights reserved.\"]})]});}SiteFooter.defaultProps={showInstagram:false};addPropertyControls(SiteFooter,{showInstagram:{type:ControlType.Boolean,title:\"Show Instagram\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SiteFooter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SiteFooter.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Hue Kind site navigation\n * Fixed; transparent over hero, cream blur once scrolled. Mobile: hamburger\n * with full-screen paper overlay, staggered DM Serif links.\n *\n * Hosts the site-wide behaviours so one edit covers every page:\n *   1. per-page document title (pageTitle prop)\n *   2. legacy-URL redirects (see LEGACY_REDIRECTS)\n *   3. section anchor ids + hash scrolling (Framer publishes no #ids)\n *   4. narrow-viewport width guard (see fitToViewport)\n *   5. figure aspect-ratio correction (see fitFigures)\n *   6. scroll reveals (see setupReveals)\n *\n * NOTE: instances placed before a prop existed receive it as `undefined`, so\n * every optional prop is read with an explicit fallback, never truthiness.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n *//**\n * Old Squarespace URLs. Framer's Redirects panel is Pro-only, and Framer serves\n * the HOMEPAGE (with a 404 status) for unmatched paths rather than the /404\n * page — verified live — so a /404-based handler never runs. This nav mounts on\n * that fallback render, so the redirect lives here instead.\n */const LEGACY_REDIRECTS={\"/home\":\"/\",\"/about\":\"/#about\",\"/work\":\"/#work\",\"/cart\":\"/\",\"/eversky-brand-identity\":\"/case-eversky\",\"/thermatlas-app\":\"/case-thermaculture\",\"/steamline-case-study\":\"/#work\",\"/surfline-crowd-feature-study\":\"/#work\",\"/freedom-from-anxiety\":\"/#work\"};function legacyTarget(){try{let p=(window.location.pathname||\"\").toLowerCase();if(p.length>1&&p.endsWith(\"/\"))p=p.slice(0,-1);if(LEGACY_REDIRECTS[p])return LEGACY_REDIRECTS[p];if(p.endsWith(\"/index.html\"))return\"/\";}catch(e){}return null;}const ANCHOR_MAP=[[\"services\",\"a design partner\"],[\"work\",\"a few projects\"],[\"about\",\"from the yoga studio\"],[\"contact\",\"build something that lasts\"]];function assignAnchorIds(){const heads=document.querySelectorAll(\"h1,h2\");for(const[id,marker]of ANCHOR_MAP){if(document.getElementById(id))continue;for(const h of heads){if(h.textContent&&h.textContent.toLowerCase().includes(marker)){h.id=id;h.style.scrollMarginTop=\"110px\";break;}}}}function contentRoot(){return document.getElementById(\"main\")||document.body;}function realChildren(el){const out=[];Array.from(el.children).forEach(c=>{if(c instanceof HTMLElement&&c.offsetHeight>30)out.push(c);});return out;}function findSectionParent(){let node=contentRoot();for(let i=0;i<6;i++){const kids=realChildren(node);if(kids.length===1){node=kids[0];continue;}break;}return node;}/**\n * Figure boxes were authored with fixed pixel heights, which only ever suited\n * one column width. Every other width crops: a 6.66:1 graphic in a 1.92:1 box\n * showed 29% of itself at desktop and 9% at 393px, because a narrower box keeps\n * the same height and object-fit:cover eats the difference. Fixed heights can't\n * be right at 325px, 480px and 1000px at once, so the height is derived from the\n * image's own proportions instead and recomputed whenever the width changes.\n *\n * Framer wraps each image as: sized div > background-image wrapper > img, both\n * ancestors sharing the img's rect. Walk up at most two levels and take the\n * outermost exact rect match — going further would resize a whole section.\n *\n * Very wide diagrams are the exception: honouring the ratio of a 6.66:1 flow\n * chart in a phone column gives a 48px strip, complete but unreadable. Those get\n * a legible fixed height and pan sideways instead.\n */const PAN_MIN_RATIO=2.6// wider than this is a diagram, not a photo\n;const PAN_MIN_HEIGHT=170// below this a fitted figure stops being readable\n;/**\n * naturalWidth/Height report the VARIANT Framer served, which it picks to match\n * the rendered box — so a figure squashed to 48px reports a 48px-tall source,\n * and capping the pan height by it pins the figure at its own broken size. The\n * real source dimensions ride along in the URL (?width=3218&height=483).\n */function sourceSize(img){const src=img.currentSrc||img.src||\"\";const w=/[?&]width=(\\d+)/.exec(src);const h=/[?&]height=(\\d+)/.exec(src);if(w&&h&&+w[1]>0&&+h[1]>0)return{w:+w[1],h:+h[1]};return{w:img.naturalWidth,h:img.naturalHeight};}function fitFigures(){const boxes=new WeakMap;const findBox=img=>{const ir=img.getBoundingClientRect();if(!ir.width||!ir.height)return null;let el=img.parentElement;let best=null;for(let i=0;i<2&&el instanceof HTMLElement;i++){const r=el.getBoundingClientRect();if(Math.abs(r.width-ir.width)>2||Math.abs(r.height-ir.height)>2)break;best=el;el=el.parentElement;}return best;};const apply=()=>{const vw=window.innerWidth;contentRoot().querySelectorAll(\"img\").forEach(img=>{if(!(img instanceof HTMLImageElement))return;if(img.closest(\".hk-nav\"))return;if(!img.naturalWidth||!img.naturalHeight)return;let box=boxes.get(img);if(!box){box=findBox(img);if(!box)return;boxes.set(img,box);}const w=box.getBoundingClientRect().width;if(w<24)return;const src=sourceSize(img);if(!src.w||!src.h)return;const ratio=src.w/src.h;const fitted=Math.round(w/ratio);const wrapper=img.parentElement;const pan=ratio>PAN_MIN_RATIO&&w>=280&&fitted<PAN_MIN_HEIGHT;if(pan&&wrapper instanceof HTMLElement){const h=Math.min(src.h,vw<=820?300:420);box.dataset.hkPan=\"1\";box.style.setProperty(\"height\",h+\"px\",\"important\");box.style.setProperty(\"overflow-x\",\"auto\",\"important\");box.style.setProperty(\"overflow-y\",\"hidden\",\"important\");box.style.setProperty(\"-webkit-overflow-scrolling\",\"touch\");// The wrapper is inset:0; give it the image's true width so the\n// box scrolls across it instead of squashing it.\nwrapper.style.setProperty(\"width\",Math.round(h*ratio)+\"px\",\"important\");wrapper.style.setProperty(\"right\",\"auto\",\"important\");return;}if(box.dataset.hkPan){box.style.removeProperty(\"overflow-x\");box.style.removeProperty(\"overflow-y\");delete box.dataset.hkPan;if(wrapper instanceof HTMLElement){wrapper.style.removeProperty(\"width\");wrapper.style.removeProperty(\"right\");}}if(fitted<24)return;box.dataset.hkFit=\"1\";box.style.setProperty(\"height\",fitted+\"px\",\"important\");});};apply();let t=0;const onResize=()=>{clearTimeout(t);t=setTimeout(apply,120);};window.addEventListener(\"resize\",onResize);window.addEventListener(\"load\",apply);// Framer streams images in; naturalWidth is 0 until each one decodes.\nconst retries=[200,600,1200,2200,3600,5200].map(ms=>setTimeout(apply,ms));return()=>{window.removeEventListener(\"resize\",onResize);window.removeEventListener(\"load\",apply);clearTimeout(t);retries.forEach(clearTimeout);};}/**\n * A pair of PORTRAIT photos (the Ever Sky business cards). One column suits\n * them on a phone, but on a tablet it stacks them at 742x989 each: two full\n * screens of scrolling for one idea. Between 601px and the breakpoint they stay\n * side by side instead.\n *\n * Deliberately narrow. Measured across all five pages at 810px, a broader\n * \"every image-only grid\" rule also caught the three Ever Sky final-identity\n * tiles (which split 2+1), the IA 3.4:1 strips (which dropped into pan mode at\n * half width), and the ThermAtlas 16:10 screenshots (UI text too small to read).\n * Portrait images are the only case where halving the width helps.\n */const GALLERY_MIN_VW=601;function isPortraitPair(grid){const cells=Array.from(grid.children).filter(c=>c instanceof HTMLElement);if(cells.length!==2)return false;return cells.every(c=>{if((c.textContent||\"\").trim())return false;const img=c.querySelector(\"img\");if(!(img instanceof HTMLImageElement))return false;const s=sourceSize(img);return s.w>0&&s.h>0&&s.h>s.w;});}/**\n * Two-up rows use auto-fill + minmax(480px, 1fr) so desktop can't collapse to\n * three columns — but 480px exceeds a phone, so the track overflows and content\n * gets clipped. CSS min(480px,100%) would solve it; Framer's grid controls can't\n * express that, so below the breakpoint we force one column in JS.\n *\n * Do NOT gate this on the computed value containing a space: at 393px, auto-fill\n * yields a SINGLE 480px track (\"480px\", no space), which is precisely the\n * overflowing case. Gating on a space skipped every grid that mattered.\n *\n * Rows need the same treatment. Framer emits `grid-auto-rows: minmax(0, 1fr)`,\n * so once a two-column grid stacks, every row is as tall as the tallest one:\n * the About portrait (350px) sat centred in a 773px row, the height of the text\n * beside it on desktop, with 200px of empty charcoal above and below. Rows go\n * to `auto` so each one hugs its own content.\n *\n * Four passes, in order, because each one changes what the next one measures:\n *   1. collapse grids to one column (portrait photo pairs: two on tablets)\n *   2. let unwrappable text wrap\n *   3. wrap flex rows that still overflow, and re-anchor them to the start edge\n *   4. clamp whatever is still hanging past a viewport edge\n */function fitToViewport(breakpoint){const apply=()=>{const vw=window.innerWidth;const narrow=vw<=breakpoint;const root=contentRoot();root.querySelectorAll(\"*\").forEach(el=>{if(!(el instanceof HTMLElement))return;if(el.closest(\".hk-nav\"))return;// nav manages its own layout\nconst cs=getComputedStyle(el);if(narrow){if(cs.display===\"grid\"){const cols=vw>=GALLERY_MIN_VW&&isPortraitPair(el)?\"repeat(2, minmax(0, 1fr))\":\"1fr\";el.dataset.hkGrid=\"1\";el.style.setProperty(\"grid-template-columns\",cols,\"important\");el.style.setProperty(\"grid-template-rows\",\"none\",\"important\");el.style.setProperty(\"grid-auto-rows\",\"auto\",\"important\");}}else if(el.dataset.hkGrid){el.style.removeProperty(\"grid-template-columns\");el.style.removeProperty(\"grid-template-rows\");el.style.removeProperty(\"grid-auto-rows\");delete el.dataset.hkGrid;}});if(narrow){/**\n             * Text that cannot wrap will overflow any column, and no width or\n             * max-width will save it. Framer emits white-space:pre for text\n             * nodes authored at fit-content width, so a caption sized to its\n             * own natural line runs straight off a phone screen — two on the\n             * IA page carried 563px of text in a 359px box. Only touch leaves\n             * whose content genuinely exceeds their box, so deliberate nowrap\n             * (button labels) is left alone.\n             */root.querySelectorAll(\"*\").forEach(el=>{if(!(el instanceof HTMLElement))return;if(el.closest(\".hk-nav\"))return;if(el.children.length||!el.textContent)return;const ws=getComputedStyle(el).whiteSpace;if(ws!==\"pre\"&&ws!==\"nowrap\")return;if(el.scrollWidth<=el.clientWidth+1)return;el.dataset.hkText=\"1\";el.style.setProperty(\"white-space\",\"pre-wrap\",\"important\");});root.querySelectorAll(\"*\").forEach(el=>{if(!(el instanceof HTMLElement))return;if(el.closest(\".hk-nav\"))return;const cs=getComputedStyle(el);if(cs.display!==\"flex\"&&cs.display!==\"inline-flex\")return;if(cs.flexDirection.indexOf(\"row\")!==0)return;if(cs.flexWrap!==\"nowrap\")return;if(el.scrollWidth<=el.clientWidth+1)return;el.dataset.hkWrap=\"1\";el.style.setProperty(\"flex-wrap\",\"wrap\",\"important\");/**\n                 * Wrapping changes how the row computes its own width. A\n                 * shrink-to-fit row can end up NARROWER than its children, and\n                 * if it is centred it then spills them symmetrically past both\n                 * its edges — the hero buttons rendered at x=5 while the\n                 * headline sat at x=34, visibly outside the text column.\n                 * Re-anchor to the start edge, but only when that is actually\n                 * happening, so deliberately centred rows are left alone.\n                 */const box=el.getBoundingClientRect();let spillsLeft=false;Array.from(el.children).forEach(c=>{if(!(c instanceof HTMLElement))return;const k=c.getBoundingClientRect();if(k.width&&k.left<box.left-1)spillsLeft=true;});if(spillsLeft)el.style.setProperty(\"justify-content\",\"flex-start\",\"important\");});/**\n             * The VIEWPORT is the only constraint here. Do NOT also clamp on\n             * \"wider than parent.clientWidth\": a shrink-to-fit parent takes its\n             * width FROM the child, so that test inverts cause and effect. In\n             * WebKit the hero buttons reported a 36px parent and got clamped to\n             * 36px while their 139px label ran on past the edge — a square\n             * orange chip with the text hanging off it. Chromium reported a\n             * sane parent width and showed nothing wrong, so it only surfaced\n             * on a real iPhone.\n             *\n             * min-width:0 rides along because a flex/grid item defaults to\n             * min-width:auto and refuses to shrink below its content whatever\n             * the max-width says. Two passes: clamping a parent changes what\n             * its children measure.\n             */for(let pass=0;pass<2;pass++){root.querySelectorAll(\"*\").forEach(el=>{if(!(el instanceof HTMLElement))return;if(el.closest(\".hk-nav\"))return;// Pan containers are wider than their box on purpose.\nif(el.dataset.hkPan||el.closest(\"[data-hk-pan]\"))return;const r=el.getBoundingClientRect();if(r.width<40)return;if(r.right<=vw+1&&r.left>=-1)return;const limit=r.left>0?Math.floor(vw-r.left):vw;// An element pinned near the right edge can only be clamped\n// into a sliver — squashing it, not fixing it. That is a\n// row-needs-to-wrap problem, so leave it to the pass above\n// rather than crushing a 149px stat into 80px.\nif(limit<vw*.45)return;el.dataset.hkClamp=\"1\";el.style.setProperty(\"min-width\",\"0\",\"important\");el.style.setProperty(\"max-width\",limit+\"px\",\"important\");});}// Touch targets: text links render 17-25px tall, well under the 44px\n// iOS minimum. Grow the hit area with a pseudo-element rather than\n// padding, so nothing shifts position.\nroot.querySelectorAll(\"a[href]\").forEach(el=>{if(!(el instanceof HTMLElement))return;if(el.closest(\".hk-nav\"))return;const r=el.getBoundingClientRect();if(r.height>0&&r.height<40)el.classList.add(\"hk-tap\");else el.classList.remove(\"hk-tap\");});}else{document.querySelectorAll(\"[data-hk-clamp]\").forEach(el=>{if(!(el instanceof HTMLElement))return;el.style.removeProperty(\"max-width\");el.style.removeProperty(\"min-width\");delete el.dataset.hkClamp;});document.querySelectorAll(\"[data-hk-wrap]\").forEach(el=>{if(!(el instanceof HTMLElement))return;el.style.removeProperty(\"flex-wrap\");el.style.removeProperty(\"justify-content\");delete el.dataset.hkWrap;});document.querySelectorAll(\"[data-hk-text]\").forEach(el=>{if(!(el instanceof HTMLElement))return;el.style.removeProperty(\"white-space\");delete el.dataset.hkText;});document.querySelectorAll(\"a.hk-tap\").forEach(el=>el.classList.remove(\"hk-tap\"));}};apply();let t=0;const onResize=()=>{clearTimeout(t);t=setTimeout(apply,120);};window.addEventListener(\"resize\",onResize);const retries=[250,700,1500,2600].map(ms=>setTimeout(apply,ms));return()=>{window.removeEventListener(\"resize\",onResize);clearTimeout(t);retries.forEach(clearTimeout);};}function setupReveals(distance,duration){if(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return()=>{};const EASE=\"cubic-bezier(.16,.7,.2,1)\";const sections=realChildren(findSectionParent());const targets=[];sections.forEach(section=>{if(section.getBoundingClientRect().top<window.innerHeight*.85)return;const content=realChildren(section);const items=content.length===1?realChildren(content[0]):content;const list=items.length?items:content;list.forEach(child=>{try{child.getAnimations().forEach(a=>a.cancel());}catch(e){}child.style.setProperty(\"opacity\",\"0\",\"important\");child.style.setProperty(\"transform\",\"translateY(\"+distance+\"px)\",\"important\");child.style.setProperty(\"transition\",\"opacity \"+duration+\"s \"+EASE+\", transform \"+duration+\"s \"+EASE);targets.push(child);});});if(!targets.length)return()=>{};const reveal=el=>{el.style.setProperty(\"opacity\",\"1\",\"important\");el.style.setProperty(\"transform\",\"none\",\"important\");};const io=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting){reveal(entry.target);io.unobserve(entry.target);}});},{threshold:.05,rootMargin:\"0px 0px -40px 0px\"});targets.forEach(t=>io.observe(t));const onScroll=()=>{targets.forEach(t=>{if(t.style.opacity===\"0\"&&t.getBoundingClientRect().top<window.innerHeight*.92){reveal(t);io.unobserve(t);}});};window.addEventListener(\"scroll\",onScroll,{passive:true});const failsafe=setTimeout(()=>targets.forEach(reveal),8e3);return()=>{io.disconnect();clearTimeout(failsafe);window.removeEventListener(\"scroll\",onScroll);};}/*\n * Nav CSS. Rendered with dangerouslySetInnerHTML, not as a text child of\n * <style>: as a child, Framer's pre-render HTML-escapes the quotes, and a\n * <style> element never decodes entities. `@import url('https://fonts…')`\n * reached the browser as `url(&#x27;https://…`, which it read as a relative URL\n * ending at the `#`, so every page made a failed stylesheet request to\n * huekind.design/& (three per page, one per component doing this). The same\n * escaping also broke `content:\"\"` until hydration repaired the text.\n *\n * The scrolled cream bar lives on ::before, NOT on .hk-nav itself.\n * backdrop-filter (like transform or filter) turns an element into the\n * containing block for its position:fixed descendants. With the blur on\n * .hk-nav, the full-screen menu (fixed, inset:0) sized itself to the 62px\n * bar instead of the viewport the moment the page was scrolled: no paper\n * background, links spilling over the page content. At the top of the page\n * the bar isn't solid yet, so it only ever broke after scrolling. The\n * pseudo-element has no descendants, so its blur contains nothing.\n *\n * Menu links close faster than the overlay fades (.25s vs .4s) so they never\n * outlive their background; the slower staggered entrance is scoped to .open.\n */const NAV_CSS=`\n                @import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Mulish:wght@400;600;700;800&display=swap');\n                html,body{max-width:100%;overflow-x:hidden}\n                .hk-nav{position:fixed;top:0;left:0;right:0;z-index:900;padding:18px 0;transition:padding .45s cubic-bezier(.22,.61,.36,1)}\n                .hk-nav::before{content:\"\";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;background:rgba(245,239,225,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(51,48,42,.16);transition:opacity .45s cubic-bezier(.22,.61,.36,1)}\n                .hk-nav.solid{padding:10px 0}\n                .hk-nav.solid::before{opacity:1}\n                .hk-nav .inner{max-width:1180px;margin:0 auto;padding:0 34px;display:flex;align-items:center;justify-content:space-between}\n                .hk-brand{display:flex;align-items:center;gap:13px;font-family:'DM Serif Display',serif;font-size:30px;letter-spacing:-.01em;color:#33302A;text-decoration:none}\n                .hk-links{display:flex;align-items:center;gap:32px;font-family:'Mulish',sans-serif;font-size:14.5px;font-weight:600}\n                .hk-links a{color:#6A6458;text-decoration:none;transition:color .25s}\n                .hk-links a:hover{color:#33302A}\n                .hk-cta{background:#E0673A;color:#fff !important;border-radius:8px;padding:10px 20px;font-weight:700;box-shadow:0 6px 16px -8px rgba(224,103,58,.8);transition:filter .25s}\n                .hk-cta:hover{filter:brightness(1.05)}\n                .hk-burger{display:none;position:relative;z-index:960;width:44px;height:40px;background:none;border:0;cursor:pointer;padding:10px}\n                .hk-burger span{display:block;height:2px;background:#33302A;border-radius:2px;transition:transform .4s cubic-bezier(.22,.61,.36,1)}\n                .hk-burger span + span{margin-top:7px}\n                .hk-nav.open .hk-burger span:first-child{transform:translateY(4.5px) rotate(45deg)}\n                .hk-nav.open .hk-burger span:last-child{transform:translateY(-4.5px) rotate(-45deg)}\n                .hk-menu{position:fixed;inset:0;z-index:950;background:#F5EFE1;display:flex;flex-direction:column;justify-content:center;padding:0 34px;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.22,.61,.36,1)}\n                .hk-menu a{font-family:'DM Serif Display',serif;font-size:40px;line-height:1.25;color:#33302A;text-decoration:none;padding:16px 0;border-bottom:1px solid rgba(51,48,42,.16);opacity:0;transform:translateY(16px);transition:opacity .25s cubic-bezier(.22,.61,.36,1),transform .25s cubic-bezier(.22,.61,.36,1)}\n                .hk-menu a:last-child{border-bottom:0}\n                .hk-menu a em{font-style:italic;color:#E0673A}\n                .hk-nav.open .hk-menu{opacity:1;pointer-events:auto}\n                .hk-nav.open .hk-menu a{opacity:1;transform:none;transition-duration:.5s}\n                .hk-nav.open .hk-menu a:nth-child(1){transition-delay:.08s}\n                .hk-nav.open .hk-menu a:nth-child(2){transition-delay:.14s}\n                .hk-nav.open .hk-menu a:nth-child(3){transition-delay:.2s}\n                .hk-nav.open .hk-menu a:nth-child(4){transition-delay:.26s}\n                .hk-nav.open .hk-menu a:nth-child(5){transition-delay:.32s}\n                .hk-brand-wrap{position:relative;z-index:960}\n                a.hk-tap{position:relative}\n                a.hk-tap::after{content:\"\";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:44px;border-radius:8px}\n                [data-hk-pan]{scrollbar-width:thin;scrollbar-color:rgba(51,48,42,.3) transparent}\n                [data-hk-pan]::-webkit-scrollbar{height:6px}\n                [data-hk-pan]::-webkit-scrollbar-thumb{background:rgba(51,48,42,.3);border-radius:3px}\n                @media(max-width:880px){\n                    .hk-links{display:none}\n                    .hk-burger{display:block}\n                    .hk-brand svg{height:42px !important}\n                }\n                .hk-nav.compact .hk-links{display:none}\n                .hk-nav.compact .hk-burger{display:block}\n                .hk-nav.compact .hk-brand svg{height:42px !important}\n            `;export default function SiteNav(props){const{ctaText,pageTitle}=props;// Where the CTA points. Defaults to the homepage contact section; the\n// /therapists page points it at its own request form (#start) instead, so\n// the nav doesn't pull a reader off the page mid-funnel.\nconst ctaHref=typeof props.ctaHref===\"string\"&&props.ctaHref.trim()?props.ctaHref.trim():\"/#contact\";const revealsOn=props.reveals!==false;const figuresOn=props.fitFigures!==false;const distance=typeof props.revealDistance===\"number\"?props.revealDistance:26;const duration=typeof props.revealDuration===\"number\"?props.revealDuration:.9;const[solid,setSolid]=useState(false);const[open,setOpen]=useState(false);const[leaving,setLeaving]=useState(false);/**\n     * Compact layout by the nav's OWN width, not only the viewport. The\n     * @media(max-width:880px) rule is what the live site relies on (it applies\n     * before hydration, so phones never flash the desktop links), but in the\n     * Framer canvas \"the viewport\" is the whole editor window: the 390px Phone\n     * frame drew all five desktop links spilling off its edge, which made the\n     * breakpoints look broken when the published page was fine. Measuring the\n     * element makes the canvas preview match the site.\n     */const rootRef=useRef(null);const[compact,setCompact]=useState(false);useEffect(()=>{const el=rootRef.current;if(!el)return;const measure=()=>{const w=el.offsetWidth;setCompact(w>0&&w<=880);};measure();if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(measure);ro.observe(el);return()=>ro.disconnect();},[]);// Legacy redirects first, before anything else paints or animates.\nuseEffect(()=>{const target=legacyTarget();if(target){setLeaving(true);window.location.replace(target);}},[]);useEffect(()=>{const onScroll=()=>setSolid(window.scrollY>40);onScroll();window.addEventListener(\"scroll\",onScroll,{passive:true});return()=>window.removeEventListener(\"scroll\",onScroll);},[]);useEffect(()=>{if(pageTitle)document.title=pageTitle;},[pageTitle]);useEffect(()=>{if(leaving)return;let cleanup=()=>{};const raf=requestAnimationFrame(()=>{try{cleanup=fitToViewport(820);}catch(e){}});return()=>{cancelAnimationFrame(raf);cleanup();};},[leaving]);// After fitToViewport, so figure widths are already final.\nuseEffect(()=>{if(leaving||!figuresOn)return;let cleanup=()=>{};let raf2=0;const raf1=requestAnimationFrame(()=>{raf2=requestAnimationFrame(()=>{try{cleanup=fitFigures();}catch(e){}});});return()=>{cancelAnimationFrame(raf1);if(raf2)cancelAnimationFrame(raf2);cleanup();};},[leaving,figuresOn]);useEffect(()=>{if(leaving)return;let tries=0;let cancelled=false;const tick=()=>{if(cancelled)return;assignAnchorIds();const hash=window.location.hash;if(hash&&hash.length>1){const el=document.getElementById(hash.slice(1));if(el){const y=el.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:y,behavior:\"smooth\"});return;}}if(++tries<40)setTimeout(tick,150);};requestAnimationFrame(tick);const onHash=()=>{assignAnchorIds();const el=document.getElementById(window.location.hash.slice(1));if(el){const y=el.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:y,behavior:\"smooth\"});}};window.addEventListener(\"hashchange\",onHash);return()=>{cancelled=true;window.removeEventListener(\"hashchange\",onHash);};},[leaving]);useEffect(()=>{if(leaving||!revealsOn)return;if(window.location.hash&&window.location.hash.length>1)return;let cleanup=()=>{};let raf2=0;const raf1=requestAnimationFrame(()=>{raf2=requestAnimationFrame(()=>{try{cleanup=setupReveals(distance,duration);}catch(e){}});});return()=>{cancelAnimationFrame(raf1);if(raf2)cancelAnimationFrame(raf2);cleanup();};},[leaving,revealsOn,distance,duration]);useEffect(()=>{document.body.style.overflow=open?\"hidden\":\"\";const onKey=e=>e.key===\"Escape\"&&setOpen(false);window.addEventListener(\"keydown\",onKey);return()=>{window.removeEventListener(\"keydown\",onKey);document.body.style.overflow=\"\";};},[open]);// Niche landing pages (/therapists) are deliberately NOT here. The top nav\n// speaks to every visitor, and a vertical link in it reads as \"this is what\n// the studio is\". Those pages are reached from search, outreach links, and\n// the footer's Explore column instead.\nconst links=[{label:\"Work\",href:\"/#work\"},{label:\"Services\",href:\"/#services\"},{label:\"About\",href:\"/#about\"}];const Mark=({h})=>/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 80 44\",style:{height:h,width:\"auto\",display:\"block\",transition:\"height .45s cubic-bezier(.22,.61,.36,1)\"},\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"ellipse\",{cx:\"22\",cy:\"22\",rx:\"14\",ry:\"21\",fill:\"#948AD4\"}),/*#__PURE__*/_jsx(\"ellipse\",{cx:\"40\",cy:\"22\",rx:\"14\",ry:\"21\",fill:\"#7E97DC\",style:{mixBlendMode:\"multiply\"}}),/*#__PURE__*/_jsx(\"ellipse\",{cx:\"58\",cy:\"22\",rx:\"14\",ry:\"21\",fill:\"#B9D1ED\",style:{mixBlendMode:\"multiply\"}})]});return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"hk-nav\"+(solid?\" solid\":\"\")+(open?\" open\":\"\")+(compact?\" compact\":\"\"),children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:NAV_CSS}}),/*#__PURE__*/_jsxs(\"div\",{className:\"inner\",children:[/*#__PURE__*/_jsxs(\"a\",{href:\"/\",className:\"hk-brand hk-brand-wrap\",children:[/*#__PURE__*/_jsx(Mark,{h:solid?38:50}),\"Hue Kind\"]}),/*#__PURE__*/_jsxs(\"nav\",{className:\"hk-links\",children:[links.map(l=>/*#__PURE__*/_jsx(\"a\",{href:l.href,children:l.label},l.label)),/*#__PURE__*/_jsx(\"a\",{href:ctaHref,className:\"hk-cta\",children:ctaText})]}),/*#__PURE__*/_jsxs(\"button\",{className:\"hk-burger\",\"aria-label\":\"Menu\",\"aria-expanded\":open,onClick:()=>setOpen(!open),children:[/*#__PURE__*/_jsx(\"span\",{}),/*#__PURE__*/_jsx(\"span\",{})]})]}),/*#__PURE__*/_jsxs(\"nav\",{className:\"hk-menu\",\"aria-hidden\":!open,children:[links.map(l=>/*#__PURE__*/_jsx(\"a\",{href:l.href,onClick:()=>setOpen(false),children:l.label},l.label)),/*#__PURE__*/_jsx(\"a\",{href:ctaHref,onClick:()=>setOpen(false),children:/*#__PURE__*/_jsx(\"em\",{children:ctaText})})]})]});}SiteNav.defaultProps={ctaText:\"Start a project\",ctaHref:\"/#contact\",pageTitle:\"\",reveals:true,fitFigures:true,revealDistance:26,revealDuration:.9};addPropertyControls(SiteNav,{ctaText:{type:ControlType.String,title:\"CTA text\",defaultValue:\"Start a project\"},ctaHref:{type:ControlType.String,title:\"CTA link\",defaultValue:\"/#contact\"},pageTitle:{type:ControlType.String,title:\"Page title\",defaultValue:\"\"},reveals:{type:ControlType.Boolean,title:\"Scroll reveals\",defaultValue:true},fitFigures:{type:ControlType.Boolean,title:\"Fit figures\",defaultValue:true},revealDistance:{type:ControlType.Number,title:\"Rise\",min:0,max:60,defaultValue:26,hidden:p=>p.reveals===false},revealDuration:{type:ControlType.Number,title:\"Duration\",min:.3,max:2,step:.1,defaultValue:.9,hidden:p=>p.reveals===false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SiteNav\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SiteNav.map"],"mappings":"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"}